@cjcoding-git/gamelib 1.1.2 → 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/ISSUE_TEMPLATE/bug_report.md +38 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
- package/.github/dependabot.yml +6 -0
- package/.github/workflows/build.yml +54 -0
- package/.github/workflows/release.yml +79 -0
- package/LICENSE +21 -0
- package/README.md +7 -0
- package/assets/test-frog.gltf +1921 -0
- package/assets/test-frog.gml +0 -0
- package/buildtime.txt +1 -0
- package/buildversion.txt +1 -0
- package/dist/GameLib.js +71599 -0
- package/dist/GameLib.min.js +8 -0
- package/docs/2D/API.md +1 -0
- package/docs/2D/GETTING_STARTED.md +1 -0
- package/docs/3D/API.md +1 -0
- package/docs/3D/GETTING_STARTED.md +23 -0
- package/docs/Core/API.md +1 -0
- package/docs/Core/GETTING_STARTED.md +1 -0
- package/docs/README.md +32 -0
- package/package.json +12 -13
- package/scripts/gltf2gml.html +312 -0
- package/src/2D/Box.js +42 -0
- package/src/2D/Coord.js +17 -0
- package/src/2D/GameLib.js +317 -0
- package/src/2D/Renderable.js +31 -0
- package/src/2D/Rotation.js +42 -0
- package/src/2D/Size.js +17 -0
- package/src/2D/Sprite.js +56 -0
- package/src/2D/UI/Button.js +52 -0
- package/src/2D/UI/TextInput.js +77 -0
- package/src/2D/UI/UIElement.js +10 -0
- package/src/2D/UI/index.js +15 -0
- package/src/2D/index.js +24 -0
- package/src/3D/Camera.js +25 -0
- package/src/3D/GameLib.js +202 -0
- package/src/3D/Geometry/Box.js +39 -0
- package/src/3D/Geometry/Cone.js +45 -0
- package/src/3D/Geometry/ModelLoaders/GLBLoader.js +12 -0
- package/src/3D/Geometry/ModelLoaders/GLTFLoader.js +12 -0
- package/src/3D/Geometry/ModelLoaders/GMLLoader.js +114 -0
- package/src/3D/Geometry/ModelLoaders/OBJLoader.js +12 -0
- package/src/3D/Geometry/ModelLoaders/index.js +17 -0
- package/src/3D/Geometry/Pyramid.js +55 -0
- package/src/3D/Geometry/Sphere.js +37 -0
- package/src/3D/Geometry/index.js +19 -0
- package/src/3D/Lighting/AmbientLight.js +17 -0
- package/src/3D/Lighting/DirectionalLight.js +17 -0
- package/src/3D/Lighting/PointLight.js +17 -0
- package/src/3D/Lighting/index.js +15 -0
- package/src/3D/Material.js +181 -0
- package/src/3D/Mesh.js +142 -0
- package/src/3D/Object.js +13 -0
- package/src/3D/Position.js +15 -0
- package/src/3D/Rotation.js +21 -0
- package/src/3D/Scale.js +10 -0
- package/src/3D/ShaderFactory/FunctionParam.js +14 -0
- package/src/3D/ShaderFactory/Modifiers/Variable.js +85 -0
- package/src/3D/ShaderFactory/Modifiers/index.js +11 -0
- package/src/3D/ShaderFactory/Node.js +25 -0
- package/src/3D/ShaderFactory/NodeTypes/A.js +9 -0
- package/src/3D/ShaderFactory/NodeTypes/Add.js +13 -0
- package/src/3D/ShaderFactory/NodeTypes/AssignVariable.js +11 -0
- package/src/3D/ShaderFactory/NodeTypes/Clamp.js +14 -0
- package/src/3D/ShaderFactory/NodeTypes/Constant.js +9 -0
- package/src/3D/ShaderFactory/NodeTypes/Define.js +11 -0
- package/src/3D/ShaderFactory/NodeTypes/Divide.js +13 -0
- package/src/3D/ShaderFactory/NodeTypes/Dot.js +14 -0
- package/src/3D/ShaderFactory/NodeTypes/Exp2.js +9 -0
- package/src/3D/ShaderFactory/NodeTypes/Function.js +36 -0
- package/src/3D/ShaderFactory/NodeTypes/Group.js +9 -0
- package/src/3D/ShaderFactory/NodeTypes/Header.js +12 -0
- package/src/3D/ShaderFactory/NodeTypes/Length.js +9 -0
- package/src/3D/ShaderFactory/NodeTypes/MainFunction.js +7 -0
- package/src/3D/ShaderFactory/NodeTypes/Max.js +14 -0
- package/src/3D/ShaderFactory/NodeTypes/Mix.js +14 -0
- package/src/3D/ShaderFactory/NodeTypes/Multiply.js +13 -0
- package/src/3D/ShaderFactory/NodeTypes/Negative.js +9 -0
- package/src/3D/ShaderFactory/NodeTypes/NodeTypes.js +9 -0
- package/src/3D/ShaderFactory/NodeTypes/Normalize.js +10 -0
- package/src/3D/ShaderFactory/NodeTypes/Precision.js +11 -0
- package/src/3D/ShaderFactory/NodeTypes/RGB.js +9 -0
- package/src/3D/ShaderFactory/NodeTypes/Subtract.js +13 -0
- package/src/3D/ShaderFactory/NodeTypes/Symbol.js +9 -0
- package/src/3D/ShaderFactory/NodeTypes/Texture2D.js +10 -0
- package/src/3D/ShaderFactory/NodeTypes/Variable.js +22 -0
- package/src/3D/ShaderFactory/NodeTypes/Vector.js +15 -0
- package/src/3D/ShaderFactory/NodeTypes/XYZ.js +9 -0
- package/src/3D/ShaderFactory/NodeTypes/index.js +32 -0
- package/src/3D/ShaderFactory/PrecisionTypes.js +8 -0
- package/src/3D/ShaderFactory/Program.js +41 -0
- package/src/3D/ShaderFactory/VariableTypes.js +49 -0
- package/src/3D/ShaderFactory/index.js +45 -0
- package/src/3D/Texture.js +59 -0
- package/src/3D/TextureFactory.js +22 -0
- package/src/3D/Transform.js +35 -0
- package/src/3D/UI/UIImage.js +24 -0
- package/src/3D/UI/UILoading.js +41 -0
- package/src/3D/UI/UIObject.js +16 -0
- package/src/3D/UI/UIPath.js +25 -0
- package/src/3D/UI/UIRenderer.js +207 -0
- package/src/3D/UI/UIText.js +35 -0
- package/src/3D/UI/index.js +19 -0
- package/src/3D/Utils.js +9 -0
- package/src/3D/index.js +43 -0
- package/src/Core/AssetManager.js +116 -0
- package/src/Core/AudioManager.js +151 -0
- package/src/Core/Error.js +9 -0
- package/src/Core/FullscreenManager.js +49 -0
- package/src/Core/GameLibBase.js +29 -0
- package/src/Core/InputManager.js +195 -0
- package/src/Core/Loading.js +111 -0
- package/src/Core/Matrix/index.js +11 -0
- package/src/Core/Matrix/mat4.js +178 -0
- package/src/Core/Multiplayer.js +54 -0
- package/src/Core/Network/PeerNetwork.js +410 -0
- package/src/Core/Network/index.js +11 -0
- package/src/Core/Storage.js +45 -0
- package/src/Core/Store.js +45 -0
- package/src/Core/Utils.js +34 -0
- package/src/Core/index.js +30 -0
- package/src/Lib/Ammo.js +72 -0
- package/src/Lib/Matter.js +1 -0
- package/src/Shaders/Material/Fragment/GL1.glsl +49 -0
- package/src/Shaders/Material/Fragment/GL2.glsl +51 -0
- package/src/Shaders/Material/Vertex/GL1.glsl +19 -0
- package/src/Shaders/Material/Vertex/GL2.glsl +20 -0
- package/src/Shaders/UI/Fragment/GL1.glsl +5 -0
- package/src/Shaders/UI/Fragment/GL2.glsl +7 -0
- package/src/Shaders/UI/Vertex/GL1.glsl +10 -0
- package/src/Shaders/UI/Vertex/GL2.glsl +11 -0
- package/src/Shaders/UITexture/Fragment/GL1.glsl +6 -0
- package/src/Shaders/UITexture/Fragment/GL2.glsl +8 -0
- package/src/Shaders/UITexture/Vertex/GL1.glsl +10 -0
- package/src/Shaders/UITexture/Vertex/GL2.glsl +11 -0
- package/src/index.js +19 -0
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
(()=>{var i=(i=>"undefined"!=typeof require?require:"undefined"!=typeof Proxy?new Proxy(i,{get:(i,t)=>("undefined"!=typeof require?require:i)[t]}):i)(function(i){if("undefined"!=typeof require)return require.apply(this,arguments);throw Error('Dynamic require of "'+i+'" is not supported')}),t=class extends Error{constructor(i,t){super(i),this.name="GameLibError"}},e=class{constructor(){if(_.InputManager.o)return _.InputManager.o;console.log("[GameLib] No InputManager instance found. Creating new instance..."),this.u=[],this._={},this.p={},this.k=!1,this.T=-1,this.V=-1,this.U=[],this.bindEvents(),_.InputManager.o=this}static KEYS={ESCAPE:27,BACKTICK:192,ONE:49,TWO:50,THREE:51,FOUR:52,FIVE:53,SIX:54,SEVEN:55,EIGHT:56,NINE:57,ZERO:48,MINUS:189,EQUALS:187,TAB:9,LEFTBRACKET:219,RIGHTBRACKET:221,BACKSLASH:220,META:91,SEMICOLON:186,APOSTROPE:222,ENTER:13,SHIFT:16,COMMA:188,PERIOD:190,SLASH:191,CONTROL:17,ALT:18,UP:38,DOWN:40,LEFT:37,RIGHT:39,SPACE:32,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,W:87,X:88,Y:89,Z:90};get keys(){return this.u}setActive(i){this.k=i}clearKeys(){this.u=[]}keyUp(i){this.k&&(this.u=this.u.filter(t=>t!=i.keyCode),this.$(i.keyCode,"up"))}keyDown(i){this.k&&(-1==this.u.indexOf(i.keyCode)&&this.u.push(i.keyCode),this.$(i.keyCode,"down"))}q(i){for(var t=0;t<this.U.length;t++){var e=this.U[t];e.type===i&&e.callback&&"function"==typeof e.callback&&e.callback()}}mouseMove(i){this.T=i.clientX,this.V=i.clientY,this.q("move")}mouseDown(i){this.T=i.clientX,this.V=i.clientY,this.q("down")}mouseUp(i){this.T=i.clientX,this.V=i.clientY,this.q("up")}click(i){this.T=i.clientX,this.V=i.clientY,this.q("click")}getMousePos(){return[this.T,this.V]}getCanvasMousePos(i){var t=i.getBoundingClientRect();return[this.T-t.x,this.V-t.y]}ii(i){if(this.p[i])for(var t=0;t<this.p[i].length;t++){var e=this.p[i][t];e&&"function"==typeof e&&e()}}$(i,t){if(this._[i])for(var e=0;e<this._.length;e++){this._[e].type===t&&this.ti(this._[e].name)}}isKeyDown(i){return-1!=this.u.indexOf(i)}bindKey(i,t,e){this._[i]||(this._[i]=[]),this._[i].push({name:e,type:t})}registerKeyBindCallback(i,t){this.p[i]||(this.p[i]=[]),this.p[i].push({callback:t})}static isKeyDown(i){if(null!=_.InputManager.o)return-1!=_.InputManager.o.u.indexOf(i);throw new _.Error("An InputManager instance must exist to use GameLibCore.InputManager.isKeyDown(key)!")}addMouseListener(i,t){this.U.push({type:i,callback:t})}bindEvents(){window.addEventListener("keyup",this.keyUp.bind(this),!1),window.addEventListener("keydown",this.keyDown.bind(this),!1),window.addEventListener("mousemove",this.mouseMove.bind(this),!1),window.addEventListener("mousedown",this.mouseDown.bind(this),!1),window.addEventListener("mouseup",this.mouseUp.bind(this),!1),window.addEventListener("click",this.click.bind(this),!1)}},n=class{constructor(){if(_.AudioManager.o)return _.AudioManager.o;console.log("[GameLib] No AudioManager instance found. Creating new instance..."),this.ei=[],this.ni={},this.ri={},this.oi={},this.fi=null,this.ai=!0,this.si=null,this.ci=0,this.ui=0,this.hi=new AudioContext,this.bindEvents(),_.AudioManager.o=this}bindEvents(){window.addEventListener("click",this.resumeMusic.bind(this),!1),document.addEventListener("visibilitychange",this.visibilityChange.bind(this),!1)}visibilityChange(){"visible"!=document.visibilityState?this.hi.suspend():this.hi.resume()}async loadLoopingSound(i,t){var e=await _.AssetManager.shared.loadArrayBuffer(t);this.ni[i]=await this.hi.decodeAudioData(e.slice(0))}playLoopingSound(i){if(null!=this.ni[i]){var t=this.hi.createBufferSource();t.loop=!0,t.buffer=this.ni[i],t.connect(this.hi.destination),this.oi[i]=t,t.start(0)}else console.warn("[GameLib] Attempted to play a looping sound that does not exist!")}stopLoopingSound(i){null!=this.oi[i]&&(this.oi[i].stop(),delete this.oi[i])}async addSong(i){var t=await _.AssetManager.shared.loadArrayBuffer(i),e=await this.hi.decodeAudioData(t.slice(0));this.ei.push(e)}stopCurrentMusicSource(){if(null!=this.si){this.si.onended=null;try{this.si.stop()}catch(i){}this.si.disconnect(),this.si=null}}startCurrentMusic(){if(null!=this.fi&&!this.ai&&null==this.si){var i=this.hi.createBufferSource();i.buffer=this.fi,i.connect(this.hi.destination),i.onended=()=>{this.si===i&&(this.si=null,this.ci=0,this.ai||this.nextSong())},this.si=i,this.ui=this.hi.currentTime,i.start(0,this.ci)}}nextSong(){if(this.ei.length<=0)throw new _.Error("Music Pool is empty!");this.stopCurrentMusicSource(),this.fi=_.Utils.getRandomListItem(this.ei),this.ci=0,this.startCurrentMusic()}async playMusic(){if(this.ai=!1,null==this.fi){if(this.ei.length<=0)throw this.ai=!0,new _.Error("Music Pool is empty!");this.fi=_.Utils.getRandomListItem(this.ei),this.ci=0}"suspended"===this.hi.state&&await this.hi.resume(),this.startCurrentMusic()}async resumeMusic(){"suspended"===this.hi.state&&await this.hi.resume(),this.ai||this.startCurrentMusic()}pauseMusic(){this.ai=!0,null!=this.si&&(this.ci+=this.hi.currentTime-this.ui,this.ci%=this.fi.duration,this.stopCurrentMusicSource())}async loadSfx(i,t){var e=await _.AssetManager.shared.loadArrayBuffer(t);this.ri[i]=await this.hi.decodeAudioData(e.slice(0))}playSfx(i,t=1,e=1.5){if(this.ri[i]){var n=this.hi.createBufferSource();n.buffer=this.ri[i],n.playbackRate.value=t;var r=this.hi.createGain();r.gain.setValueAtTime(e,0),r.connect(this.hi.destination),n.connect(r),n.start(0)}else console.warn("[GameLib] Attempted to play SFX that does not exist!")}},r=class i{constructor(){throw new _.Error("Class Utils may not be constructed!")}static createCanvas(i,t){var e=document.createElement("canvas");e.width=i,e.height=t}static getRandomListItem(i){return i[Math.floor(Math.random()*i.length)]}static getRandomInt(i,t){return Math.floor(Math.random()*(t-i))+i}static getRandomDigits(t){for(var e="0123456789",n="",r=0;r<t;r++){var o=i.getRandomInt(0,10);n+=e.substring(o,o+1)}return n}static UUID(){return crypto.randomUUID()}},o=class{constructor(){this.k=!0,this.li=!0,this.di={}}setActive(i){this.k=i}setRendering(i){this.li=i}addHook(i,t){this.di[i]||(this.di[i]=[]),this.di[i].push(t)}callHook(i){if(this.di[i])for(var t=this.di[i],e=0;e<t.length;e++)t[e]()}},f=class{constructor(i,...t){this.bi=indexedDB.open(i,1),this._i=i,this.wi=t,this.pi={},this.wi.forEach(function(i){this.pi[i.name]=i,i.setStorage(this)}.bind(this)),this.onload=null,this.bi.onupgradeneeded=function(i){this.wi.forEach(function(t){var e=i.currentTarget.result.createObjectStore(t.name,{keyPath:"key",autoIncrement:!1});e.createIndex("key","key",{unique:!0}),t.indexes.forEach(function(i){e.createIndex(i,i,{unique:!1})}.bind(this))}.bind(this))}.bind(this),this.mi=null,this.bi.onsuccess=function(i){this.mi=i.target.result,this.wi.forEach(function(i){i.setGet(function(i){return this.yi.mi.transaction(i,"readwrite").objectStore(i)})}),console.log("[GameLib] Initialized Database: "+this._i),this.onload&&this.onload()}.bind(this)}delete(){indexedDB.deleteDatabase(this._i)}getStore(i){return this.pi[i]}},a=class{constructor(i,...t){this._i=i,this.ki=t,this.gi=null,this.yi=null}get name(){return this._i}get indexes(){return this.ki}setStorage(i){this.yi=i}setGet(i){this.gi=i}set(i){this.gi(this._i).put(i)}delete(i){this.gi(this._i).delete(i)}add(i){this.gi(this._i).add(i)}get(i){return new Promise(function(t,e){this.gi(this._i).get(i).onsuccess=function(i){if(i.target.result){if(!i.target.result.value)throw new _.Error('IndexedDB get() result is missing "value" property!');t(i.target.result.value)}else t(null)}}.bind(this))}},s=class{constructor(){this.Ci=0,this.ji=!1,this.bindEvents()}bindEvents(){window.addEventListener("click",this.fullscreen.bind(this),!1)}async fullscreen(){if(this.ji&&null==document.pointerLockElement&&document.documentElement.requestPointerLock().catch(function(i){}),this.Ci>0&&null==document.fullscreenElement&&document.documentElement.requestFullscreen().catch(function(i){}),2==this.Ci&&null==document.fullscreenElement)try{await navigator.keyboard.lock(["Escape"])}catch(i){}}setFullscreen(i,t=!1){i?(document.documentElement.requestFullscreen(),t?(this.Ci=2,navigator.keyboard.lock(["Escape"])):this.Ci=1):(this.Ci=0,document.exitFullscreen())}setPointerLocked(i){1==i?(this.ji=!0,document.documentElement.requestPointerLock()):(this.ji=!1,document.exitPointerLock())}},c={iceServers:[{urls:"stun:stun.l.google.com:19302"}]},u=JSON.stringify({Si:{type:"close"}}),h=class i{constructor(t={}){this.options=t,this.id=t.id||i.xi(),this.token=t.token||i.Mi(),this.socket=null,this.peers=new Map,this.links=new Map,this.listeners=new Map,this.candidates=new Map,this.state="idle",this.Ei=null,this.Ti=null,this.Li=null,this.Ii=!1}on(i,t){if("function"!=typeof t)throw new TypeError("listener must be a function");return this.listeners.has(i)||this.listeners.set(i,new Set),this.listeners.get(i).add(t),this}off(i,t){return this.listeners.has(i)&&this.listeners.get(i).delete(t),this}start(){if(this.Ii)return Promise.reject(new Error("Network has been closed"));if("ready"===this.state)return Promise.resolve(this.id);if(this.Ei)return this.Ei;var i=this.options.WebSocket||globalThis.WebSocket;if(!i)return Promise.reject(new Error("WebSocket is unavailable"));this.state="connecting";var t=this;return this.Ei=new Promise(function(e,n){var r=!1;try{t.socket=new i(t.Ai())}catch(i){return t.state="idle",t.Ei=null,void n(i)}var o=t.socket;t.Ti=function(i){r||(r=!0,t.state="idle",t.Ei=null,t.Ti=null,n(i),o.close())},o.onopen=function(){t.Li=setInterval(function(){t.Di({type:"HEARTBEAT"})},t.options.heartbeatInterval||5e3)},o.onmessage=function(i){var n;try{n=JSON.parse(i.data)}catch(i){return void t.Oi("error",new Error("Invalid broker message"))}if("OPEN"===n.type){if(r)return;return r=!0,t.state="ready",t.Ei=null,t.Ti=null,t.Oi("ready",t.id),void e(t.id)}if(!r&&["ERROR","INVALID-KEY","ID-TAKEN"].includes(n.type))return t.Ti(new Error(n.payload?.msg||n.type)),void t.Oi("error",new Error(n.payload?.msg||n.type));t.Ri(n)},o.onerror=function(i){t.Oi("error",i),r||t.Ti(i instanceof Error?i:new Error("Could not connect to signaling server"))},o.onclose=function(i){clearInterval(t.Li),t.Li=null,t.socket===o&&(t.socket=null);var e="ready"===t.state;t.state=t.Ii?"closed":"idle",r||(r=!0,t.Ei=null,t.Ti=null,n(new Error("Signaling socket closed before registration ("+(i.code||"closed")+")"))),e&&!t.Ii&&t.Oi("serverclose",i)}}),this.Ei}async connect(t,e={}){if(!t)throw new TypeError("peerId is required");if(this.Ii)throw new Error("Network has been closed");await this.start();var n=e.connectionId||"dc_"+i.Mi(),r=this.Pi(t,n,e);r.channel=r.pc.createDataChannel(e.label||n,{ordered:!1!==e.reliable,...null==e.maxRetransmits?{}:{maxRetransmits:e.maxRetransmits}}),this.Ni(r);var o=new Promise(function(i,e){r.once("open",function(){i(r)}),r.once("error",e),r.once("close",function(){e(new Error("Connection to "+t+" closed before opening"))})});try{var f=await r.pc.createOffer();await r.pc.setLocalDescription(f),this.Di({type:"OFFER",dst:t,payload:{type:"data",connectionId:n,sdp:r.pc.localDescription,label:r.label,reliable:r.reliable,serialization:r.serialization,metadata:r.metadata}})}catch(i){throw this.Bi(r,i),i}return o}getConnectedIds(){return Array.from(this.peers.keys())}send(i,t){var e=this.peers.get(i);return!(!e||!e.open)&&(e.send(t),!0)}broadcast(i){var t=0;return this.peers.forEach(function(e){e.open&&(e.send(i),t++)}),t}close(i){return null==i?Array.from(this.links.values()).forEach(i=>this.Fi(i,!0)):this.links.forEach(t=>{t.peerId===i&&this.Fi(t,!0)}),this}destroy(){if(this.Ii)return this;this.Ii=!0,this.Ti&&this.Ti(new Error("Network has been closed")),this.close(),clearInterval(this.Li),this.Li=null;var i=this.socket;return this.socket=null,i&&(i.onopen=i.onmessage=i.onerror=i.onclose=null,i.readyState<2&&i.close()),this.state="closed",this.Oi("close"),this.listeners.clear(),this}Ai(){var i=globalThis.location,t=this.options.host||i?.hostname||"0.peerjs.com",e=this.options.secure??("0.peerjs.com"===t||"https:"===i?.protocol),n=this.options.port??(e?443:9e3),r=this.options.path||"/";r.startsWith("/")||(r="/"+r),r.endsWith("/")||(r+="/");var o=new URL((e?"wss:":"ws:")+"//"+t+":"+n+r+"peerjs");return o.searchParams.set("key",this.options.key||"peerjs"),o.searchParams.set("id",this.id),o.searchParams.set("token",this.token),o.searchParams.set("version","1.5.5"),o.href}Di(i){this.socket&&1===this.socket.readyState&&this.socket.send(JSON.stringify(i))}Ri(i){var t=i.payload||{};switch(i.type){case"OFFER":"data"===t.type&&this.Vi(i.src,t);break;case"ANSWER":this.Ui(t);break;case"CANDIDATE":this.Gi(t);break;case"LEAVE":Array.from(this.links.values()).forEach(t=>{t.peerId===i.src&&this.Fi(t,!1)});break;case"EXPIRE":this.Oi("error",new Error("Peer unavailable: "+(i.src||"unknown")));break;case"ID-TAKEN":case"INVALID-KEY":case"ERROR":this.Oi("error",new Error(t.msg||i.type));break;default:this.Oi("signal",i)}}Pi(i,t,e={}){var n=this.options.RTCPeerConnection||globalThis.RTCPeerConnection;if(!n)throw new Error("WebRTC is unavailable");var r=new n(e.config||this.options.config||c),o=new Map,f=this,a={peerId:i,connectionId:t,label:e.label||t,metadata:e.metadata,serialization:e.serialization||"json",reliable:!1!==e.reliable,pc:r,channel:null,open:!1,on:function(i,t){return o.has(i)||o.set(i,new Set),o.get(i).add(t),this},once:function(i,t){var e=function(){this.off(i,e),t.apply(null,arguments)}.bind(this);return this.on(i,e)},off:function(i,t){return o.has(i)&&o.get(i).delete(t),this},emit:function(i){var t=Array.prototype.slice.call(arguments,1);Array.from(o.get(i)||[]).forEach(function(i){i.apply(null,t)})},send:function(i){if(!this.open||!this.channel||"open"!==this.channel.readyState)throw new Error("Connection is not open");this.channel.send("json"===this.serialization?JSON.stringify(i):i)},close:function(){f.Fi(a,!0)}};return this.links.set(t,a),r.onicecandidate=function(e){e.candidate&&e.candidate.candidate&&f.Di({type:"CANDIDATE",dst:i,payload:{type:"data",connectionId:t,candidate:e.candidate}})},r.ondatachannel=function(i){a.channel=i.channel,a.label=i.channel.label,f.Ni(a)},r.onconnectionstatechange=function(){"failed"===r.connectionState?f.Bi(a,new Error("WebRTC connection failed")):"closed"===r.connectionState&&f.Fi(a,!1)},a}Ni(i){var t=i.channel;t.onopen=()=>{i.open||i.Wi||(i.open=!0,this.peers.set(i.peerId,i),i.emit("open",i),this.Oi("connection",i))},t.onmessage=t=>{var e=t.data;if("json"===i.serialization&&"string"==typeof e)try{e=JSON.parse(e)}catch(i){}e&&e.Si&&"close"===e.Si.type?this.Fi(i,!1):(i.emit("data",e),this.Oi("data",e,i))},t.onerror=t=>this.Bi(i,t),t.onclose=()=>this.Fi(i,!1)}async Vi(i,t){if(i&&t.connectionId&&t.sdp){var e=this.links.get(t.connectionId);e&&this.Fi(e,!1);var n=this.Pi(i,t.connectionId,t);n.label=t.label||t.connectionId,n.metadata=t.metadata,n.serialization=t.serialization||"json",n.reliable=!1!==t.reliable;try{await n.pc.setRemoteDescription(t.sdp),await this.zi(n);var r=await n.pc.createAnswer();await n.pc.setLocalDescription(r),this.Di({type:"ANSWER",dst:i,payload:{type:"data",connectionId:n.connectionId,sdp:n.pc.localDescription}})}catch(i){this.Bi(n,i)}}}async Ui(i){var t=this.links.get(i.connectionId);if(t&&i.sdp)try{await t.pc.setRemoteDescription(i.sdp),await this.zi(t)}catch(i){this.Bi(t,i)}}async Gi(i){if(i.connectionId&&i.candidate){var t=this.links.get(i.connectionId);if(!t||!t.pc.remoteDescription)return this.candidates.has(i.connectionId)||this.candidates.set(i.connectionId,[]),void this.candidates.get(i.connectionId).push(i.candidate);try{await t.pc.addIceCandidate(i.candidate)}catch(i){this.Oi("error",i,t)}}}async zi(i){var t=this.candidates.get(i.connectionId)||[];this.candidates.delete(i.connectionId);for(var e=0;e<t.length;e++)await i.pc.addIceCandidate(t[e])}Bi(i,t){i.emit("error",t),this.Oi("error",t,i),this.Fi(i,!1)}Fi(i,t){if(i&&!i.Wi){if(i.Wi=!0,t&&i.channel&&"open"===i.channel.readyState)try{i.channel.send(u)}catch(i){}if(i.open=!1,i.channel&&"closed"!==i.channel.readyState){i.channel.onopen=i.channel.onmessage=i.channel.onerror=i.channel.onclose=null;try{i.channel.close()}catch(i){}}if("closed"!==i.pc.signalingState){i.pc.onicecandidate=i.pc.ondatachannel=i.pc.onconnectionstatechange=null;try{i.pc.close()}catch(i){}}this.links.delete(i.connectionId),this.peers.get(i.peerId)===i&&this.peers.delete(i.peerId),this.candidates.delete(i.connectionId),i.emit("close"),this.Oi("connectionclose",i)}}Oi(i){var t=Array.prototype.slice.call(arguments,1);Array.from(this.listeners.get(i)||[]).forEach(function(i){try{i.apply(null,t)}catch(i){setTimeout(function(){throw i},0)}})}static xi(){return String(Math.floor(1e5+9e5*Math.random()))}static Mi(){return globalThis.crypto&&globalThis.crypto.randomUUID?globalThis.crypto.randomUUID().replace(/-/g,""):Date.now().toString(36)+Math.random().toString(36).slice(2)}},l=class{constructor(i={}){this.network=new h(i)}getPeerId(){return this.network.id}getConnectedIds(){return this.network.getConnectedIds()}bindDataCallback(i){return this.network.off("data",this.Xi),this.Xi=(t,e)=>i(t,e),this.network.on("data",this.Xi),this}setConnectPeerCallback(i){return this.network.off("connection",this.$i),this.$i=t=>i(t),this.network.on("connection",this.$i),this}setPeerCloseCallback(i){return this.network.off("connectionclose",this.Hi),this.Hi=t=>i(t),this.network.on("connectionclose",this.Hi),this}createPeer(i={}){return this.network.options=Object.assign({},this.network.options,i),this.network.start()}connectPeer(i,t={}){return this.network.options=Object.assign({},this.network.options,t),this.network.connect(i)}sendToAll(i){return this.network.broadcast(i)}sendToPeer(i,t){return null==t?this.network.broadcast(i):this.network.send(t,i)}closePeer(i){return this.network.close(i)}isPeerDisconnected(){return"ready"!==this.network.state}destroy(){return this.network.destroy()}},d=class i{static qi=null;static get shared(){return i.qi||(i.qi=new i),i.qi}constructor(){this.Ki=new Map,this.Yi=new Map,this.registerLoader("image",(i,e={})=>new Promise((n,r)=>{const o=new Image;void 0!==e.crossOrigin&&(o.crossOrigin=e.crossOrigin),o.onload=()=>n(o),o.onerror=()=>r(new t(`Failed to load image: ${i}`)),o.src=i})),this.registerLoader("json",async(i,e={})=>{const n=await fetch(i,e.fetchOptions);if(!n.ok)throw new t(`Failed to load JSON "${i}": ${n.status}`);return n.json()}),this.registerLoader("text",async(i,e={})=>{const n=await fetch(i,e.fetchOptions);if(!n.ok)throw new t(`Failed to load text "${i}": ${n.status}`);return n.text()}),this.registerLoader("arrayBuffer",async(i,e={})=>{const n=await fetch(i,e.fetchOptions);if(!n.ok)throw new t(`Failed to load data "${i}": ${n.status}`);return n.arrayBuffer()})}registerLoader(i,t){if("function"!=typeof t)throw new TypeError("Asset loader must be a function");return this.Yi.set(i,t),this}load(i,e,n={}){const r=this.Yi.get(i);if(!r)return Promise.reject(new t(`No asset loader registered for type "${i}"`));const o=`${i}:${e}`;if(this.Ki.has(o))return this.Ki.get(o);const f=Promise.resolve().then(()=>r(e,n)).catch(i=>{throw this.Ki.delete(o),i});return this.Ki.set(o,f),f}loadImage(i,t){return this.load("image",i,t)}loadJSON(i,t){return this.load("json",i,t)}loadText(i,t){return this.load("text",i,t)}loadArrayBuffer(i,t){return this.load("arrayBuffer",i,t)}async loadBatch(i,t=null){const e=i.length;let n=0;const r=await Promise.all(i.map(async i=>{try{const t=await this.load(i.type,i.url,i.options);return[i.name,t]}finally{n++,t&&t({completed:n,total:e,progress:0===e?1:n/e,asset:i})}}));return Object.fromEntries(r)}has(i,t){return this.Ki.has(`${i}:${t}`)}unload(i,t){return this.Ki.delete(`${i}:${t}`)}clear(){this.Ki.clear()}},v=class i{varructor(){throw new t("Class mat4 may not be varructed!")}static EPSILON=1e-6;static blank(){return new Float32Array(16)}static create(t=i.blank()){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}static multiply(i,t,e){for(var n=Array.from(t),r=Array.from(e),o=0;o<4;o++)for(var f=0;f<4;f++){for(var a=0,s=0;s<4;s++)a+=n[4*s+f]*r[4*o+s];i[4*o+f]=a}return i}static translate(i,t,e){var n=e[0],r=e[1],o=e[2];if(i!==t)for(var f=0;f<12;f++)i[f]=t[f];return i[12]=t[0]*n+t[4]*r+t[8]*o+t[12],i[13]=t[1]*n+t[5]*r+t[9]*o+t[13],i[14]=t[2]*n+t[6]*r+t[10]*o+t[14],i[15]=t[3]*n+t[7]*r+t[11]*o+t[15],i}static rotateX(i,t,e){var n=Math.sin(e),r=Math.cos(e),o=t[4],f=t[5],a=t[6],s=t[7],c=t[8],u=t[9],h=t[10],l=t[11];return i!==t&&(i[0]=t[0],i[1]=t[1],i[2]=t[2],i[3]=t[3],i[12]=t[12],i[13]=t[13],i[14]=t[14],i[15]=t[15]),i[4]=o*r+c*n,i[5]=f*r+u*n,i[6]=a*r+h*n,i[7]=s*r+l*n,i[8]=c*r-o*n,i[9]=u*r-f*n,i[10]=h*r-a*n,i[11]=l*r-s*n,i}static rotateY(i,t,e){var n=Math.sin(e),r=Math.cos(e),o=t[0],f=t[1],a=t[2],s=t[3],c=t[8],u=t[9],h=t[10],l=t[11];return i!==t&&(i[4]=t[4],i[5]=t[5],i[6]=t[6],i[7]=t[7],i[12]=t[12],i[13]=t[13],i[14]=t[14],i[15]=t[15]),i[0]=o*r-c*n,i[1]=f*r-u*n,i[2]=a*r-h*n,i[3]=s*r-l*n,i[8]=o*n+c*r,i[9]=f*n+u*r,i[10]=a*n+h*r,i[11]=s*n+l*r,i}static rotateZ(i,t,e){var n=Math.sin(e),r=Math.cos(e),o=t[0],f=t[1],a=t[2],s=t[3],c=t[4],u=t[5],h=t[6],l=t[7];return i!==t&&(i[8]=t[8],i[9]=t[9],i[10]=t[10],i[11]=t[11],i[12]=t[12],i[13]=t[13],i[14]=t[14],i[15]=t[15]),i[0]=o*r+c*n,i[1]=f*r+u*n,i[2]=a*r+h*n,i[3]=s*r+l*n,i[4]=c*r-o*n,i[5]=u*r-f*n,i[6]=h*r-a*n,i[7]=l*r-s*n,i}static scale(i,t,e){var n=e[0],r=e[1],o=e[2];return i[0]=t[0]*n,i[1]=t[1]*n,i[2]=t[2]*n,i[3]=t[3]*n,i[4]=t[4]*r,i[5]=t[5]*r,i[6]=t[6]*r,i[7]=t[7]*r,i[8]=t[8]*o,i[9]=t[9]*o,i[10]=t[10]*o,i[11]=t[11]*o,i[12]=t[12],i[13]=t[13],i[14]=t[14],i[15]=t[15],i}static transpose(i,t){for(var e=Array.from(t),n=0;n<4;n++)for(var r=0;r<4;r++)i[4*n+r]=e[4*r+n];return i}static invert(i,t){var e=t[0],n=t[1],r=t[2],o=t[3],f=t[4],a=t[5],s=t[6],c=t[7],u=t[8],h=t[9],l=t[10],d=t[11],v=t[12],b=t[13],_=t[14],w=t[15],p=e*a-n*f,m=e*s-r*f,y=e*c-o*f,k=n*s-r*a,g=n*c-o*a,C=r*c-o*s,j=u*b-h*v,S=u*_-l*v,x=u*w-d*v,M=h*_-l*b,E=h*w-d*b,T=l*w-d*_,L=p*T-m*E+y*M+k*x-g*S+C*j;return 0===L?null:(L=1/L,i[0]=(a*T-s*E+c*M)*L,i[1]=(r*E-n*T-o*M)*L,i[2]=(b*C-_*g+w*k)*L,i[3]=(l*g-h*C-d*k)*L,i[4]=(s*x-f*T-c*S)*L,i[5]=(e*T-r*x+o*S)*L,i[6]=(_*y-v*C-w*m)*L,i[7]=(u*C-l*y+d*m)*L,i[8]=(f*E-a*x+c*j)*L,i[9]=(n*x-e*E-o*j)*L,i[10]=(v*g-b*y+w*p)*L,i[11]=(h*y-u*g-d*p)*L,i[12]=(a*S-f*M-s*j)*L,i[13]=(e*M-n*S+r*j)*L,i[14]=(b*m-v*k-_*p)*L,i[15]=(u*k-h*m+l*p)*L,i)}static perspective(i,t,e,n,r){var o=1/Math.tan(t/2);if(i[0]=o/e,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=o,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[11]=-1,i[12]=0,i[13]=0,i[15]=0,null==r||r===1/0)i[10]=-1,i[14]=-2*n;else{var f=1/(n-r);i[10]=(r+n)*f,i[14]=2*r*n*f}return i}},b=class{constructor(){throw new t("Class Matrix may not be constructed!")}static mat4=v},_=class{constructor(){throw new t("Class GameLibCore may not be constructed!")}static Error=t;static Utils=r;static InputManager=e;static AudioManager=n;static GameLibBase=o;static Storage=f;static Store=a;static FullscreenManager=s;static Multiplayer=l;static AssetManager=d;static Matrix=b},w=class{constructor(i,t){this.x=i,this.y=t}move(i,t){this.x+=i,this.y+=t}moveTo(i,t){this.x=i,this.y=t}},p=class{constructor(i,t){this.width=i,this.height=t}mod(i,t){this.width+=i,this.height+=t}modTo(i,t){this.width=i,this.height=t}},m=class{constructor(i,t){this.coord=i,this.size=t}move(i,t){this.coord.move(i,t)}moveTo(i,t){this.coord.moveTo(i,t)}resize(i,t){this.size.mod(i,t)}resizeTo(i,t){this.size.modTo(i,t)}get x(){return this.coord.x}get y(){return this.coord.y}get width(){return this.size.width}get height(){return this.size.height}checkCollision(i){var t,e,n,r,o,f,a,s;return t=this.coord.x,e=this.coord.y,n=this.size.width,r=this.size.height,o=i.x,f=i.y,a=i.width,s=i.height,t<o+a&&t+n>o&&e<f+s&&e+r>f}},y=class{constructor(i){this.Qi=i,this.rotateTo(this.Qi)}static d2r(i){return i*Math.PI/180}static r2d(i){return i*(180/Math.PI)}rotate(i){this.rotateTo(this.Qi+i)}rotateTo(i){this.Qi=i,this.Qi>=360&&this.rotateTo(this.Qi-360),this.Qi<0&&this.rotateTo(this.Qi+360)}valueOf(){return this.Qi}get degrees(){return this.Qi}get radians(){return GameLib2D.Rotation.d2r(this.Qi)}getVelocityMod(){var i=GameLib2D.Rotation.d2r(this.Qi);return[Math.sin(i),-Math.cos(i)]}},k=class extends m{constructor(i,t,e){super(i,t),this.scene=e,this.image=null,this.fillColor="#000000",this.gameLib=new C,this.gameLib.addSprite(this),this.ctx=this.gameLib.ctx,this.triggers=[]}update(){}draw(){null!=this.image?this.ctx.drawImage(this.image,this.x,this.y,this.width,this.height):(this.ctx.fillStyle=this.fillColor,this.ctx.fillRect(this.x,this.y,this.width,this.height))}addTrigger(i,t){this.triggers[i]=t}trigger(i){this.triggers[i]&&this.triggers[i]()}checkBounds(){this.x<0&&(this.moveTo(0,this.y),this.trigger("bounds")),this.x>this.gameLib.canvas.width-this.width&&(this.moveTo(this.gameLib.canvas.width-this.width,this.y),this.trigger("bounds")),this.y<0&&(this.moveTo(this.x,0),this.trigger("bounds")),this.y>this.gameLib.canvas.height-this.height&&(this.moveTo(this.x,this.gameLib.canvas.height-this.height),this.trigger("bounds"))}drawHitbox(){this.ctx.strokeStyle=this.fillColor,this.ctx.strokeRect(this.x,this.y,this.width,this.height)}},g=class i{constructor(){throw new _.Error("Class Loading may not be constructed!")}static DEFAULT_CONFIG={background:"#10131c",logo:null,status:"Loading…",progress:null,textColor:"#ffffff",mutedTextColor:"#aab3c5",progressTrackColor:"#343b4d",progressColor:"#78e0a3",accentColor:"#78e0a3",font:"16px sans-serif",title:"LOADING",titleFont:"bold 36px sans-serif",progressWidth:280,progressHeight:12,logoWidth:96,logoHeight:96,padding:24};static render(t,e,n={}){if(t&&e){var r={...i.DEFAULT_CONFIG,...n||{}},o=t.width,f=t.height,a=o/2,s=f/2,c=Math.max(1,r.progressHeight),u=Number.isFinite(r.progress)?42:0,h=u>0?12:0,l=Math.max(0,o-2*r.padding-u-h),d=Math.min(Math.max(0,r.progressWidth),l),v=a-d/2,b=s+36,_=c/2;e.save(),e.fillStyle=r.background||i.DEFAULT_CONFIG.background,e.fillRect(0,0,o,f),r.backgroundImage&&!1!==r.backgroundImage.complete&&(e.save(),e.globalAlpha=null==r.backgroundImageOpacity?1:r.backgroundImageOpacity,e.drawImage(r.backgroundImage,0,0,o,f),e.restore());var w=s-30;if(r.logo&&!1!==r.logo.complete){var p=Math.min(r.logoWidth,Math.max(0,o-2*r.padding)),m=Math.min(r.logoHeight,Math.max(0,f-2*r.padding));e.drawImage(r.logo,a-p/2,s-112,p,m),w=s+10}if(r.title&&(e.fillStyle=r.textColor,e.font=r.titleFont,e.textAlign="center",e.textBaseline="middle",e.fillText(r.title,a,w)),e.fillStyle=r.progressTrackColor,e.beginPath(),e.roundRect(v,b,d,c,_),e.fill(),Number.isFinite(r.progress)){var y=Math.min(1,Math.max(0,r.progress)),k=d*y;k>0&&(e.fillStyle=r.progressColor,e.beginPath(),e.roundRect(v,b,k,c,Math.min(_,k/2)),e.fill()),e.fillStyle=r.mutedTextColor,e.font="12px sans-serif",e.textAlign="left",e.textBaseline="middle",e.fillText(`${Math.round(100*y)}%`,v+d+h,b+c/2)}else{var g=Math.max(24,.28*d),C=d+g,j=v+Date.now()/8%C-g;e.save(),e.beginPath(),e.roundRect(v,b,d,c,_),e.clip(),e.fillStyle=r.progressColor,e.beginPath(),e.roundRect(j,b,g,c,_),e.fill(),e.restore()}r.status&&(e.fillStyle=r.mutedTextColor,e.font=r.font,e.textAlign="center",e.textBaseline="top",e.fillText(r.status,a,b+c+14)),e.restore()}}},C=class i extends _.GameLibBase{constructor(t,n,r,o){if(null!=T.GameLib.o)return T.GameLib.o;super(),console.log("[GameLib] No GameLib instance found. Creating new instance."),this.Zi="loading",this.Ji=[],this.clearColor="#dddddd",t.setAttribute("style","image-rendering: pixelated;"),this.it=t,this.tt=n,r.setAttribute("style","image-rendering: pixelated;"),this.et=r,this.nt=o,this.rt=new m(new w(0,0),new p(this.et.width,this.et.height)),this.ot=[],this.ft={},this.st=g.DEFAULT_CONFIG,this.oncontextmenu=null,this.inputManager=new e,this.inputManager.addMouseListener("move",this.hoverButtons.bind(this),!1),this.inputManager.addMouseListener("click",this.checkButtons.bind(this),!1),window.addEventListener("contextmenu",this.contextMenu.bind(this),!1),this.ct={},this.registerMainloop(),i.o=this}contextMenu(i){i.preventDefault(),i.returnValue="",this.oncontextmenu&&this.oncontextmenu(i)}static cursor(i){document.body.setAttribute("style","cursor: "+i+";")}hoverButtons(t){var e=this.inputManager.getCanvasMousePos(this.et),n=this.ot.filter(i=>"function"==typeof i.handleClick&&"function"==typeof i.handleHover),r=new w(e[0],e[1]);if(r.x<=canvasRect.width&&r.y<=canvasRect.height){var o=!1;n.forEach(function(i){this.Zi==i.scene&&i.shouldRender()&&i.isActive()&&i.handleHover(t,r)&&(o=!0)}.bind(this)),o||i.cursor("default")}}checkButtons(i){var t=this.inputManager.getCanvasMousePos(this.et),e=this.ot.filter(i=>"function"==typeof i.handleClick&&"function"==typeof i.handleHover),n=new w(t[0],t[1]);if(n.x<=canvasRect.width&&n.y<=canvasRect.height){var r=!1;e.forEach(function(t){!r&&this.Zi==t.scene&&t.shouldRender()&&t.isActive()&&t.handleClick(i,n)&&(r=!0)}.bind(this)),this.hoverButtons(i)}}setScene(t){this.Zi=t,i.cursor("default")}getScene(){return this.Zi}static getContext(i){return i.getContext("2d",{willReadFrequently:!0})}static spriteImage(i,t){return _.AssetManager.shared.loadImage(t).then(t=>(i.image=t,t))}addRenderable(i){if(!(i instanceof j))throw new _.Error("Parameter renderable must be an instance of Renderable");this.ot.push(i)}get sprites(){return this.Ji}get renderables(){return this.ot}get canvas(){return this.it}get ctx(){return this.tt}get viewportCanvas(){return this.et}get viewportCtx(){return this.nt}moveViewport(i,t){this.rt.move(i,t)}moveViewportTo(i,t){this.rt.moveTo(i,t)}moveViewportToSprite(i){if(!(i instanceof k))throw new _.Error("Parameter sprite must be an instance of Sprite!");var t=i.x-this.et.width/2,e=i.y-this.et.height/2,n=this.et.width,r=this.et.height;t<0?t=0:t+n>this.it.width&&(t=this.it.width-n),e<0?e=0:e+r>this.it.height&&(e=this.it.height-r),this.rt.moveTo(t,e)}renderViewport(){var i=this.tt.getImageData(this.rt.x,this.rt.y,this.rt.width,this.rt.height);this.nt.putImageData(i,0,0)}getSpritesOfType(i){return this.Ji.filter(t=>t instanceof i)}getRenderablesOfType(i){return this.ot.filter(t=>t instanceof i)}clearRenderablesOfType(i){this.ot=this.ot.filter(t=>!(t instanceof i))}addSprite(i){if(!(i instanceof k))throw new _.Error("Parameter sprite must be an instance of Sprite");this.Ji.push(i)}clearCanvas(i=!0){this.tt.fillStyle=this.clearColor,this.tt.fillRect(0,0,this.it.width,this.it.height),i&&(this.nt.fillStyle=this.clearColor,this.nt.fillRect(0,0,this.et.width,this.et.height))}resizeViewPort(i){this.rt.size=i}mainloop(){this.update(),this.draw(),this.registerMainloop()}stopLoading(){this.Zi="init"}update(){this.k&&(this.callHook("pre-update"),this.Ji.forEach(function(i){this.Zi==i.scene&&i.update()}.bind(this)),this.callHook("post-update"))}setBackground(i,t,e="repeat"){this.ft[t]=this.tt.createPattern(i,e)}setClearColor(i){this.clearColor=i}renderBackground(){null!=this.ft[this.Zi]&&(this.tt.fillStyle=this.ft[this.Zi],this.tt.fillRect(0,0,this.it.width,this.it.height))}drawGrid(i,t){this.ut=t;for(var e=0;e<this.it.height;e+=i)this.ht(),this.lt(0,e),this.dt(this.it.width,e),this.vt(),this.bt();for(e=0;e<this.it.width;e+=i)this.ht(),this.lt(e,0),this.dt(e,this.it.height),this.vt(),this.bt()}draw(){this.li&&(this.clearCanvas(!1),this.callHook("pre-render"),this.renderBackground(),this.Ji.forEach(function(i){i.checkCollision(this.rt)&&this.Zi==i.scene&&i.draw()}.bind(this)),this.ot.forEach(function(i){i.overlay||i.isActive()&&i.shouldRender()&&this.Zi==i.scene&&i.draw()}.bind(this)),this.callHook("post-render"),this.renderViewport(),this.ot.forEach(function(i){i.overlay&&(i.isActive()&&i.shouldRender()&&this.Zi==i.scene?i.draw():i.overlaySkipped())}.bind(this)),"loading"==this.Zi&&g.render(this.et,this.nt,this.st))}registerMainloop(){window.requestAnimationFrame(this.mainloop.bind(this))}setLoadingScreen(i){this.st=i}listen(i,t){this.ct[i]||(this.ct[i]=[]),this.ct[i].push(t)}_t(i){if(this.ct[i])for(var t=0;t<this.ct[i].length;t++){var e=this.ct[i][t];e&&"function"==typeof e&&e()}}resizeToWindow(){this.et.width=window.innerWidth,this.et.height=window.innerHeight,this.rt.size=new p(window.innerWidth,window.innerHeight),this.et.style.position="fixed",this.et.style.top="0",this.et.style.left="0",this._t("resize")}fillWindow(){window.addEventListener("resize",this.resizeToWindow.bind(this),!1),this.resizeToWindow()}},j=class{constructor(i){this.gameLib=new C,this.gameLib.addRenderable(this),this.k=!0,this.wt=this.gameLib.canvas,this.yt=this.gameLib.ctx,this.overlay=!1,this.scene=i}makeOverlay(){this.overlay=!0,this.wt=this.gameLib.viewportCanvas,this.yt=this.gameLib.viewportCtx}overlaySkipped(){}shouldRender(){return!0}isActive(){return this.k}setActive(i){this.k=i}draw(){}},S=class extends j{constructor(i){super(i),this.makeOverlay()}},x=class extends j{constructor(i,t,e){super(e),this.overlay=!0,this.wt=this.gameLib.viewportCanvas,this.yt=this.gameLib.viewportCtx,this.kt=new Box(i,t),this.hover=!1,this.cursor="default"}moveTo(i,t){this.kt.moveTo(i,t)}get x(){return this.kt.x}get y(){return this.kt.y}get width(){return this.kt.width}get height(){return this.kt.height}handleClick(i,t){return t.x>=this.kt.x&&t.y>=this.kt.y&&t.x<=this.kt.x+this.kt.width&&t.y<=this.kt.y+this.kt.height&&(this.clicked(),!0)}handleHover(i,t){return t.x>=this.kt.x&&t.y>=this.kt.y&&t.x<=this.kt.x+this.kt.width&&t.y<=this.kt.y+this.kt.height?(this.hover=!0,C.cursor(this.cursor),!0):(this.hover=!1,!1)}clicked(){this.hover=!1,C.cursor("default")}},M=class extends j{constructor(i,t,e){super(e),this.overlay=!0,this.wt=this.gameLib.viewportCanvas,this.gt=this.wt.getBoundingClientRect(),this.canvasX=this.gt.x,this.canvasY=this.gt.y,this.yt=this.gameLib.viewportCtx,this.kt=new Box(i,t),this.k=!1,this.Ct=null,this.jt=null}createElement(){this.jt=document.createElement("input"),this.jt.setAttribute("style",this.getStyle()),this.jt.setAttribute("type","text"),document.body.appendChild(this.jt)}getStyle(){return"box-sizing: border-box;padding-left: 5px;padding-right: 5px;z-index: 999;display: block;position: absolute;left: "+(this.canvasX+this.x)+"px;top: "+(this.canvasY+this.y)+"px;width: "+this.width+"px;height: "+this.height+"px;outline: none;background: transparent;border: 0;"}draw(){this.jt?(this.gt=this.wt.getBoundingClientRect(),this.canvasX=this.gt.x,this.canvasY=this.gt.y,this.jt.setAttribute("style",this.getStyle())):this.createElement(),this.yt.fillStyle="#ffffff",this.yt.fillRect(this.x,this.y,this.width,this.height)}get value(){if(this.jt)return this.jt.value}overlaySkipped(){this.jt&&this.removeElement()}removeElement(){this.jt.remove(),this.jt=null}setActive(i){super.setActive(i),i?this.createElement():this.removeElement()}moveTo(i,t){this.kt.moveTo(i,t)}get x(){return this.kt.x}get y(){return this.kt.y}get width(){return this.kt.width}get height(){return this.kt.height}},E=class{constructor(){throw new _.Error("Class UI may not be constructed!")}static UIElement=S;static Button=x;static TextInput=M},T=class{constructor(){throw new GameLibCore.Error("Wrapper class GameLib2D may not be constructed!")}static Coord=w;static Size=p;static Box=m;static Rotation=y;static Renderable=j;static Sprite=k;static GameLib=C;static UI=E},L=class{constructor(){throw new t("Class GameLib3D.Utils may not be constructed!")}},I=class{constructor(i,t){this.St=i,this.xt=this.St.webgl,this.scene=t}setup(){}update(i){}draw(i){}},A=class{constructor(){this.canHaveChildren=!1,this.canAddNode=!1,this.canAddVar=!1,this.canAddHeader=!1,this.Mt=[],this.Et=null,this.text=null}addNode(i){if(!i.canAddNode)throw new _.Error("Cannot add a GameLib3D.ShaderFactory.Node that has canAddNode set to false!");if(!this.canHaveChildren)throw new _.Error("Trying to add children to a GameLib3D.ShaderFactory.Node that cannot contain children!");i.Et=this,this.Mt.push(i)}},D=class{constructor({input:i=!1,output:t=!1,uniform:e=!1,attribute:n=!1,varying:r=!1,constant:o=!1,precision:f=null}={}){this.Tt=i,this.Lt=t,this.It=e,this.At=n,this.Dt=r,this.Ot=o,this.Rt=f,this.text=null,this.update()}update(){for(var i=["_input","_output","_uniform","_attribute","_varying"],t=0,e=0;e<i.length;e++){this[i[e]]&&(t+=1)}if(t>1)throw new _.Error("Class GameLib3D.ShaderFactory.Modifiers.Variable has conflicting properties!");this.text="",this.Ot&&(this.text+="const "),this.Tt&&(this.text+="in "),this.Lt&&(this.text+="out "),this.It&&(this.text+="uniform "),this.At&&(this.text+="attribute "),this.Dt&&(this.text+="varying "),this.Rt&&(this.text+=`${this.Rt} `)}get input(){return this.Tt}set input(i){this.Tt=i,this.update()}get output(){return this.Lt}set output(i){this.Lt=i,this.update()}get uniform(){return this.It}set uniform(i){this.It=i,this.update()}get attribute(){return this.At}set attribute(i){this.At=i,this.update()}get varying(){return this.Dt}set varying(i){this.Dt=i,this.update()}get constant(){return this.Ot}set constant(i){this.Ot=i,this.update()}get precision(){return this.Rt}set precision(i){this.Rt=i,this.update()}},O=class{constructor(){throw new _.Error("Class GameLib3D.ShaderFactory.Modifiers may not be constructed!")}static Variable=D},R=class{constructor(i,t,e){e&&O.Variable||(e=new O.Variable),e.update(),this.Pt=i,this._i=t,this.Nt=e,this.text=`${this.Nt.text}${this.Pt} ${this._i}`}},P={VECTOR:{FLOAT:{2:"vec2",3:"vec3",4:"vec4"},DOUBLE:{2:"dvec2",3:"dvec3",4:"dvec4"},INT:{2:"ivec2",3:"ivec3",4:"ivec4"},UINT:{2:"uvec2",3:"uvec3",4:"uvec4"},BOOL:{2:"bvec2",3:"bvec3",4:"bvec4"}},MATRIX:{2:"mat2",3:"mat3",4:"mat4",custom:function(i,t){return`mat${i}x${t}`}},FLOAT:"float",DOUBLE:"double",INT:"int",UINT:"uint",BOOL:"bool",VOID:"void",SAMPLER:{"2D":"sampler2D"}},N={LOW:"lowp",MEDIUM:"mediump",HIGH:"highp"},B=class{constructor(){throw new _.Error("Class GameLib3D.ShaderFactory.NodeTypes may not be constructed!")}};B.Header=class extends A{constructor(i,...t){super(),this.canAddHeader=!0,this.Pt=i,this.Bt=t;var e=this.Bt.join(" ");this.text=`#${this.Pt} ${e}`}},B.Variable=class extends A{constructor(i,t,e=null,n=null){super(),e&&e instanceof O.Variable||(e=new O.Variable),e.update(),this.canAddNode=!0,this.canAddVar=!0,this.Pt=i,this._i=t,this.Nt=e,this.Ft=n;var r="";null!==this.Ft&&(r=` = ${this.Ft.text}`);this.text=`${this.Nt.text}${this.Pt} ${this._i}${r};`}},B.Function=class extends A{constructor(i,t,e){super(),this.canAddNode=!0,this.canHaveChildren=!0,this.Pt=i,this._i=t,this.Vt=e;var n=this.Vt.join(", ");this.Ut=`${this.Pt} ${this._i}(${n}) {\n`,this.Gt="\n}",this.update()}update(){for(var i=[],t=0;t<this.Mt.length;t++)i.push(this.Mt[t].text);var e=i.join("\n");this.text=`${this.Ut}${e}${this.Gt}`}addNode(i){if(!i.canAddNode)throw new _.Error("Cannot add a GameLib3D.ShaderFactory.Node that has canAddNode set to false!");if(!this.canHaveChildren)throw new _.Error("Trying to add children to a GameLib3D.ShaderFactory.Node that cannot contain children!");i.Et=this,this.Mt.push(i),this.update()}},B.MainFunction=class extends B.Function{constructor(){super(P.VOID,"main",[])}},B.AssignVariable=class extends A{constructor(i,t){super(),this.Wt=i,this.zt=t,this.canAddNode=!0,this.text=`${this.Wt} = ${this.zt.text};`}},B.Constant=class extends A{constructor(i){super(),this.Ct=i,this.text=i}},B.Symbol=class extends A{constructor(i){super(),this._i=i,this.text=i}},B.Add=class extends A{constructor(...i){super(),this.Xt=i;for(var t=[],e=0;e<this.Xt.length;e++)t.push(this.Xt[e].text);this.text=t.join(" + ")}},B.Subtract=class extends A{constructor(...i){super(),this.Xt=i;for(var t=[],e=0;e<this.Xt.length;e++)t.push(this.Xt[e].text);this.text=t.join(" - ")}},B.Multiply=class extends A{constructor(...i){super(),this.Xt=i;for(var t=[],e=0;e<this.Xt.length;e++)t.push(this.Xt[e].text);this.text=t.join(" * ")}},B.Divide=class extends A{constructor(...i){super(),this.Xt=i;for(var t=[],e=0;e<this.Xt.length;e++)t.push(this.Xt[e].text);this.text=t.join(" / ")}},B.Vector=class extends A{constructor(i,...t){super(),this.Pt=i,this.Xt=t;for(var e=[],n=0;n<this.Xt.length;n++)e.push(this.Xt[n].text);var r=e.join(", ");this.text=`${this.Pt}(${r})`}},B.Normalize=class extends A{constructor(i){super(),this.Ct=i;var t=this.Ct.text;this.text=`normalize(${t})`}},B.Precision=class extends A{constructor(i,t){super(),this.canAddHeader=!0,this.Pt=i,this.Rt=t,this.text=`precision ${this.Rt} ${this.Pt};`}},B.Dot=class extends A{constructor(...i){super(),this.Xt=i;for(var t=[],e=0;e<this.Xt.length;e++)t.push(this.Xt[e].text);var n=t.join(", ");this.text=`dot(${n})`}},B.Max=class extends A{constructor(...i){super(),this.Xt=i;for(var t=[],e=0;e<this.Xt.length;e++)t.push(this.Xt[e].text);var n=t.join(", ");this.text=`max(${n})`}},B.XYZ=class extends A{constructor(i){super(),this.Ct=i,this.text=`(${this.Ct.text}).xyz`}},B.Group=class extends A{constructor(i){super(),this.Ct=i,this.text=`(${this.Ct.text})`}},B.Texture2D=class extends A{constructor(i,t){super(),this.$t=i,this.Ht=t,this.text=`texture2D(${i.text}, ${t.text})`}},B.RGB=class extends A{constructor(i){super(),this.Ct=i,this.text=`(${this.Ct.text}).rgb`}},B.A=class extends A{constructor(i){super(),this.Ct=i,this.text=`(${this.Ct.text}).a`}},B.Length=class extends A{constructor(i){super(),this.Ct=i,this.text=`length(${this.Ct.text})`}},B.Exp2=class extends A{constructor(i){super(),this.Ct=i,this.text=`exp2(${this.Ct.text})`}},B.Define=class extends A{constructor(i,t){super(),this.canAddNode=!0,this._i=i,this.Ct=t,this.text=`#define ${this._i} ${this.Ct.text}`}},B.Negative=class extends A{constructor(i){super(),this.Ct=i,this.text=`-${this.Ct.text}`}},B.Clamp=class extends A{constructor(...i){super(),this.Xt=i;for(var t=[],e=0;e<this.Xt.length;e++)t.push(this.Xt[e].text);var n=t.join(", ");this.text=`clamp(${n})`}},B.Mix=class extends A{constructor(...i){super(),this.Xt=i;for(var t=[],e=0;e<this.Xt.length;e++)t.push(this.Xt[e].text);var n=t.join(", ");this.text=`mix(${n})`}};var F,V,U=class{constructor(){this.qt=[],this.Kt=[],this.Mt=[]}get header(){return this.qt}get vars(){return this.Kt}get nodes(){return this.Mt}addNode(i){if(!i.canAddNode)throw new _.Error("Cannot add a GameLib3D.ShaderFactory.Node that has canAddNode set to false!");i.Et=this,this.Mt.push(i)}addVar(i){if(!i.canAddVar)throw new _.Error("Cannot add a GameLib3D.ShaderFactory.Node as a variable that has canAddVar set to false!");i.Et=this,this.Kt.push(i)}addHeader(i){if(!i.canAddHeader)throw new _.Error("Cannot add a GameLib3D.ShaderFactory.Node as a header that has canAddHeader set to false!");i.Et=this,this.qt.push(i)}},G=class{constructor(){throw new _.Error("Class GameLib3D.ShaderFactory may not be constructed!")}static Node=A;static Modifiers=O;static FunctionParam=R;static VariableTypes=P;static PrecisionTypes=N;static NodeTypes=B;static Program=U;static compileFactory(i){for(var t=i.header,e=[],n=0;n<t.length;n++)e.push(t[n].text);var r=e.join("\n"),o=i.vars,f=[];for(n=0;n<o.length;n++)f.push(o[n].text);var a=f.join("\n"),s=i.nodes,c=[];for(n=0;n<s.length;n++)c.push(s[n].text);return`${r}\n${a}\n${c.join("\n")}`}},W=class{constructor(i){this.St=i,this.Yt=[],this.Qt=[],this.Zt=null,this.Jt=null,this.ie=null,this.te=null,this.ee=null,this.ne=null,this.re=null,this.oe=null,this.fe=null,this.ae=null,this.se=null}ce(i){return i?"#version 300 es\nin vec2 aPosition;\nin vec4 aColor;\nuniform vec2 uResolution;\nout vec4 vColor;\nvoid main() {\n vec2 clipPosition = (aPosition / uResolution) * 2.0 - 1.0;\n clipPosition.y *= -1.0;\n gl_Position = vec4(clipPosition, 0.0, 1.0);\n vColor = aColor;\n}\n":"attribute vec2 aPosition;\nattribute vec4 aColor;\nuniform vec2 uResolution;\nvarying vec4 vColor;\nvoid main() {\n vec2 clipPosition = (aPosition / uResolution) * 2.0 - 1.0;\n clipPosition.y *= -1.0;\n gl_Position = vec4(clipPosition, 0.0, 1.0);\n vColor = aColor;\n}\n"}ue(i){return i?"#version 300 es\nprecision mediump float;\nin vec4 vColor;\nout vec4 outColor;\nvoid main() {\n outColor = vColor;\n}\n":"precision mediump float;\nvarying vec4 vColor;\nvoid main() {\n gl_FragColor = vColor;\n}\n"}he(i){return i?"#version 300 es\nin vec2 aPosition;\nin vec2 aUV;\nuniform vec2 uResolution;\nout vec2 vUV;\nvoid main() {\n vec2 clipPosition = (aPosition / uResolution) * 2.0 - 1.0;\n clipPosition.y *= -1.0;\n gl_Position = vec4(clipPosition, 0.0, 1.0);\n vUV = aUV;\n}\n":"attribute vec2 aPosition;\nattribute vec2 aUV;\nuniform vec2 uResolution;\nvarying vec2 vUV;\nvoid main() {\n vec2 clipPosition = (aPosition / uResolution) * 2.0 - 1.0;\n clipPosition.y *= -1.0;\n gl_Position = vec4(clipPosition, 0.0, 1.0);\n vUV = aUV;\n}\n"}le(i){return i?"#version 300 es\nprecision mediump float;\nin vec2 vUV;\nuniform sampler2D uTexture;\nout vec4 outColor;\nvoid main() {\n outColor = texture(uTexture, vUV);\n}\n":"precision mediump float;\nvarying vec2 vUV;\nuniform sampler2D uTexture;\nvoid main() {\n gl_FragColor = texture2D(uTexture, vUV);\n}\n"}de(){if(this.ne)return!0;var i=this.St.webgl,t=!this.St.options||!1!==this.St.options.webGL2,e=this.he(t),n=this.le(t),r=this.St.compileShader(i.VERTEX_SHADER,e),o=this.St.compileShader(i.FRAGMENT_SHADER,n);return!(!r||!o)&&(this.ne=this.St.createProgram(r,o),!!this.ne&&(this.re=i.createBuffer(),this.oe=i.getAttribLocation(this.ne,"aPosition"),this.fe=i.getAttribLocation(this.ne,"aUV"),this.ae=i.getUniformLocation(this.ne,"uResolution"),this.se=i.getUniformLocation(this.ne,"uTexture"),Boolean(this.re)))}ve(i){var t=this.St.webgl,e=i.source;if(e&&this.de()&&this.ne&&this.re){i.be||(i.be=t.createTexture(),i.textureDirty=!0,t.bindTexture(t.TEXTURE_2D,i.be),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR)),t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,i.be),i.textureDirty&&!1!==e.complete&&(t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,!1),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,e),i.textureDirty=!1);var n=i.x,r=i.y,o=n+i.width,f=r+i.height,a=new Float32Array([n,r,0,0,o,r,1,0,n,f,0,1,n,f,0,1,o,r,1,0,o,f,1,1]);t.useProgram(this.ne),t.bindBuffer(t.ARRAY_BUFFER,this.re),t.bufferData(t.ARRAY_BUFFER,a,t.DYNAMIC_DRAW);var s=4*Float32Array.BYTES_PER_ELEMENT;t.enableVertexAttribArray(this.oe),t.vertexAttribPointer(this.oe,2,t.FLOAT,!1,s,0),t.enableVertexAttribArray(this.fe),t.vertexAttribPointer(this.fe,2,t.FLOAT,!1,s,2*Float32Array.BYTES_PER_ELEMENT),t.uniform2f(this.ae,t.drawingBufferWidth,t.drawingBufferHeight),t.uniform1i(this.se,0),t.disable(t.DEPTH_TEST),t.depthMask(!1),t.enable(t.BLEND),t.blendFunc(t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA),t.drawArrays(t.TRIANGLES,0,6),t.depthMask(!0),t.enable(t.DEPTH_TEST)}}addObject(i){return i.id=_.Utils.UUID(),this.Yt.push(i),i.id}getObjects(){return this.Yt}removeObject(i){this.Yt=this.Yt.filter(t=>t.id!==i)}_e(){if(this.Zt)return!0;var i=this.St.webgl,t=!this.St.options||!1!==this.St.options.webGL2,e=this.ce(t),n=this.ue(t),r=this.St.compileShader(i.VERTEX_SHADER,e),o=this.St.compileShader(i.FRAGMENT_SHADER,n);return!(!r||!o)&&(this.Zt=this.St.createProgram(r,o),!!this.Zt&&(this.Jt=i.createBuffer(),this.ie=i.getAttribLocation(this.Zt,"aPosition"),this.te=i.getAttribLocation(this.Zt,"aColor"),this.ee=i.getUniformLocation(this.Zt,"uResolution"),Boolean(this.Jt)))}render(i){this.Qt=[];for(var t=0;t<this.Yt.length;t++){var e=this.Yt[t];e.scene===i&&!1!==e.visible&&(e.update&&"function"==typeof e.update&&e.update(),this.renderObject(e))}if(0!==this.Qt.length&&this._e()){var n=this.St.webgl,r=new Float32Array(this.Qt),o=Float32Array.BYTES_PER_ELEMENT,f=6*o;n.useProgram(this.Zt),n.bindBuffer(n.ARRAY_BUFFER,this.Jt),n.bufferData(n.ARRAY_BUFFER,r,n.DYNAMIC_DRAW),n.enableVertexAttribArray(this.ie),n.vertexAttribPointer(this.ie,2,n.FLOAT,!1,f,0),n.enableVertexAttribArray(this.te),n.vertexAttribPointer(this.te,4,n.FLOAT,!1,f,2*o),n.uniform2f(this.ee,n.drawingBufferWidth,n.drawingBufferHeight),n.disable(n.DEPTH_TEST),n.depthMask(!1),n.enable(n.BLEND),n.blendFunc(n.SRC_ALPHA,n.ONE_MINUS_SRC_ALPHA),n.drawArrays(n.TRIANGLES,0,r.length/6),n.depthMask(!0),n.enable(n.DEPTH_TEST)}}renderObject(i){if(i.update&&"function"==typeof i.update&&i.update(),i.isTexturedUI)return this.ve(i);var t=i.x,e=i.y,n=i.width,r=i.height,o=i.color||[1,1,1,1],f=o[0],a=o[1],s=o[2],c=o[3],u=(i,t)=>{this.Qt.push(i,t,f,a,s,c)};u(t,e),u(t+n,e),u(t,e+r),u(t,e+r),u(t+n,e),u(t+n,e+r)}},z=class{constructor(i,t,e,n,r,o,f){this.St=i,this.scene=t,this.x=e,this.y=n,this.width=r,this.height=o,this.color=f,this.visible=!0}update(){}},X=class extends z{constructor(i){var t=i.wt.width,e=i.wt.height;super(i,"loading",0,0,t,e,[1,1,1,1]),this.isTexturedUI=!0,this.source=document.createElement("canvas"),this.source.width=t,this.source.height=e,this.textureDirty=!0,this.config={},this.setConfig(this.config),this.update()}setConfig(i){this.config=i}update(){g.render(this.source,this.source.getContext("2d"),this.config),this.textureDirty=!0,this.width!==this.St.wt.width&&(this.width=this.St.wt.width),this.height!==this.St.wt.height&&(this.height=this.St.wt.height),this.source.width!==this.width&&(this.source.width=this.width),this.source.height!==this.height&&(this.source.height=this.height)}},$=class extends _.GameLibBase{constructor(i,t,e){if(super(),null!=ki.GameLib.o)return ki.GameLib.o;console.log("[GameLib] No GameLib3D instance found. Creating new instance."),this.wt=i,this.xt=t,this.we=[],this.pe=e,this.me=[0,0,0,1],this.ye=null,this.Zt=null,this.ke=new W(this),this.Zi="loading",this.ge={},this.Ce=new X(this),this.Ce.setConfig(this.ge),this.ke.addObject(this.Ce),this.ct={},this.registerMainloop(),ki.GameLib.o=this}setLoadingConfig(i){this.ge=i,this.Ce.setConfig(i)}static getContext(i,t=!0){return t?i.getContext("webgl2"):i.getContext("webgl")}get webgl(){return this.xt}get options(){return this.pe}setClearColor(i){this.me=i}compileShader(i,t){"string"==typeof i&&("vertex"==i&&(i=this.xt.VERTEX_SHADER),"fragment"==i&&(i=this.xt.FRAGMENT_SHADER));var e=this.xt.createShader(i);return this.xt.shaderSource(e,t),this.xt.compileShader(e),this.xt.getShaderParameter(e,this.xt.COMPILE_STATUS)?e:(console.warn("[GameLib] Shader compilation failed:",this.xt.getShaderInfoLog(e)),this.xt.deleteShader(e),null)}createProgram(...i){for(var t=this.xt.createProgram(),e=0;e<i.length;e++)this.xt.attachShader(t,i[e]);return this.xt.linkProgram(t),this.xt.getProgramParameter(t,this.xt.LINK_STATUS)?t:(console.warn("[GameLib] Program linking failed:",this.xt.getProgramInfoLog(t)),null)}useProgram(i){this.Zt=i,this.xt.useProgram(i)}setCamera(i){this.ye=i}getAttributeLocation(i,t,e=null){var n;return(!e&&t.startsWith("a")||"attribute"==e)&&(n=this.xt.getAttribLocation(i,t)),(!e&&t.startsWith("u")||"uniform"==e)&&(n=this.xt.getUniformLocation(i,t)),n}setProgramAttribute(i,t,e,n,r,o=!1,f=0,a=0,s=null){r||(r=this.xt.FLOAT);var c=this.getAttributeLocation(i,t,s);null!==c&&-1!==c&&(this.xt.bindBuffer(this.xt.ARRAY_BUFFER,e),this.xt.vertexAttribPointer(c,n,r,o,f,a),this.xt.enableVertexAttribArray(c))}addObject(i){if(!(i instanceof I))throw new _.Error("GameLib3D.GameLib.addObject(object) must be passed an instance of Object!");i.setup(),this.we.push(i)}update(){if(this.k){this.callHook("pre-update");for(var i=0;i<this.we.length;i++)this.we[i].update(this.ye);this.callHook("post-update")}}clearCanvas(){this.xt.clearColor(...this.me),this.xt.clearDepth(1),this.xt.enable(this.xt.DEPTH_TEST),this.xt.depthFunc(this.xt.LEQUAL),this.xt.enable(this.xt.BLEND),this.xt.blendFunc(this.xt.SRC_ALPHA,this.xt.ONE_MINUS_SRC_ALPHA),this.xt.clear(this.xt.COLOR_BUFFER_BIT|this.xt.DEPTH_BUFFER_BIT)}draw(){if(this.li){this.clearCanvas(),this.callHook("pre-render");for(var i=0;i<this.we.length;i++)this.we[i].scene===this.Zi&&this.we[i].draw(this.ye);this.ke.render(this.Zi),this.callHook("post-render")}}addUIObject(i){return this.ke.addObject(i)}getUIObjects(){return this.ke.getObjects()}removeUIObject(i){this.ke.removeObject(i)}mainloop(){this.update(),this.draw(),this.registerMainloop()}registerMainloop(){window.requestAnimationFrame(this.mainloop.bind(this))}stopLoading(){this.Zi="init"}setScene(i){this.Zi=i}listen(i,t){this.ct[i]||(this.ct[i]=[]),this.ct[i].push(t)}_t(i){if(this.ct[i])for(var t=0;t<this.ct[i].length;t++){var e=this.ct[i][t];e&&"function"==typeof e&&e()}}resizeToWindow(){this.wt.width=window.innerWidth,this.wt.height=window.innerHeight,this.wt.style.position="fixed",this.wt.style.top="0",this.wt.style.left="0",this.xt.viewport(0,0,this.wt.width,this.wt.height),this._t("resize")}fillWindow(){window.addEventListener("resize",this.resizeToWindow.bind(this),!1),this.resizeToWindow()}getLights(i){return i||(i=this.Zi),this.we.filter(t=>t.isLight&&t.scene===i)}},H=class{constructor(i=0,t=0,e=0){this.x=i,this.y=t,this.z=e}translate(i,t,e){this.x+=i,this.y+=t,this.z+=e}},q=class{constructor(i=0,t=0,e=0){this.x=i,this.y=t,this.z=e}static d2r(i){return i*Math.PI/180}static r2d(i){return i*(180/Math.PI)}rotate(i,t,e){this.x+=i,this.y+=t,this.z+=e}},K=class{constructor(i=1,t=1,e=1){this.x=i,this.y=t,this.z=e}},Y=class{constructor(i=new H,t=new q,e=new K){this.position=i,this.rotation=t,this.scale=e}translate(i,t,e){this.position.translate(i,t,e)}rotate(i,t,e){this.rotation.rotate(i,t,e)}getModelMatrix(){var i=v.create();return v.translate(i,i,[this.position.x,this.position.y,this.position.z]),v.rotateX(i,i,this.rotation.x),v.rotateY(i,i,this.rotation.y),v.rotateZ(i,i,this.rotation.z),v.scale(i,i,[this.scale.x,this.scale.y,this.scale.x]),i}getNormalMatrix(i){var t=v.create();return v.invert(t,i),v.transpose(t,t),t}},Q=class{constructor(i=45,t=.1,e=100){this.transform=new Y(new H(0,0,0)),this.fov=q.d2r(i),this.near=t,this.far=e}getProjectionMatrix(i){var t=v.create();return v.perspective(t,this.fov,i,this.near,this.far),t}getViewMatrix(){var i=this.transform.getModelMatrix();return v.invert(i,i),i}},Z=class{constructor(i=1,t=1,e=1){for(var n=i/2,r=t/2,o=e/2,f=[-n,-r,o,n,-r,o,n,r,o,-n,r,o,-n,-r,-o,-n,r,-o,n,r,-o,n,-r,-o,-n,r,-o,-n,r,o,n,r,o,n,r,-o,-n,-r,-o,n,-r,-o,n,-r,o,-n,-r,o,n,-r,-o,n,r,-o,n,r,o,n,-r,o,-n,-r,-o,-n,-r,o,-n,r,o,-n,r,-o],a=[],s=0;s<6;s++)a.push(0,0,1,0,1,1,0,1);var c=[];for(s=0;s<6;s++){var u=4*s;c.push(u,u+1,u+2,u,u+2,u+3)}this.positions=f,this.normals=[0,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0],this.uv=a,this.indices=c}},J=class{constructor(i=1,t=24,e=24){for(var n=[],r=[],o=[],f=[],a=0;a<=t;a++)for(var s=a*Math.PI/t,c=Math.sin(s),u=Math.cos(s),h=0;h<=e;h++){var l=2*h*Math.PI/e,d=Math.cos(l)*c,v=u,b=Math.sin(l)*c;r.push(d,v,b),o.push(1-h/e,1-a/t),n.push(i*d,i*v,i*b)}for(a=0;a<t;a++)for(h=0;h<e;h++){var _=a*(e+1)+h,w=_+e+1;f.push(_,_+1,w),f.push(w,_+1,w+1)}this.positions=n,this.normals=r,this.uv=o,this.indices=f}},ii=class{constructor(i=1,t=2,e=24){var n=[],r=[],o=[],f=[],a=t/2;n.push(0,a,0),r.push(0,1,0),o.push(.5,1);for(var s=0;s<=e;s++){var c=2*s*Math.PI/e,u=Math.sin(c),h=Math.cos(c);n.push(i*u,-a,i*h);var l=Math.sqrt(i*i+t*t);r.push(t/l*u,i/l,t/l*h),o.push(s/e,0)}for(s=0;s<=e;s++)f.push(0,s,s+1);var d=n.length/3;n.push(0,-a,0),r.push(0,-1,0),o.push(.5,.5);var v=n.length/3;for(s=0;s<=e;s++){c=2*s*Math.PI/e;n.push(i*Math.cos(c),-a,i*Math.sin(c)),r.push(0,-1,0),o.push(.5+.5*Math.cos(c),.5+.5*Math.sin(c))}for(s=0;s<e;s++)f.push(d,v+s+1,v+s);this.positions=n,this.normals=r,this.uv=o,this.indices=f}},ti=class{constructor(i=1,t=1,e=1,n=4){t/=2,n=Math.max(3,Math.floor(n));for(var r=[],o=[],f=[],a=[],s=i/2,c=t/2,u=e/2,h=0;h<n;h++){var l=2*h*Math.PI/n,d=2*(h+1)*Math.PI/n,v=s*Math.cos(l),b=u*Math.sin(l),_=s*Math.cos(d),w=u*Math.sin(d),p=(v+_)/2,m=Math.hypot(t*p,c*(b-w)),y=t*p/m,k=c*(b-w)/m,g=c*(_-v)/m,C=r.length/3;r.push(v,-c,b,_,-c,w,0,c,0);for(var j=0;j<3;j++)o.push(y,k,g);f.push(0,0,1,0,.5,1),a.push(C,C+1,C+2)}var S=r.length/3;r.push(0,-c,0),o.push(0,-1,0),f.push(.5,.5);for(var x=r.length/3,M=0;M<n;M++){var E=2*M*Math.PI/n;r.push(s*Math.cos(E),-c,u*Math.sin(E)),o.push(0,-1,0),f.push(.5+.5*Math.cos(E),.5+.5*Math.sin(E))}for(var T=0;T<n;T++)a.push(S,x+(T+1)%n,x+T);this.positions=r,this.normals=o,this.uv=f,this.indices=a}},ei=class i{constructor(){throw new _.Error("Class GMLLoader may not be constructed!")}static MAGIC="GML1";static VERSION=1;static async load(t,e={}){if("function"!=typeof fetch)throw new _.Error("GMLLoader.load requires fetch support.");const n=await fetch(t,e);if(!n.ok)throw new _.Error(`Failed to load model (${n.status} ${n.statusText}): ${t}`);return i.parse(await n.arrayBuffer())}static parse(t){let e;if(t instanceof ArrayBuffer)e=t;else{if(!ArrayBuffer.isView(t))throw new _.Error("GMLLoader.parse expects an ArrayBuffer or typed-array view.");e=t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}const n=new DataView(e);let r=0;const o=i=>{if(!Number.isSafeInteger(i)||i<0||r+i>n.byteLength)throw new _.Error("Invalid or truncated GML1 model data.")},f=()=>{o(2);const i=n.getUint16(r,!0);return r+=2,i},a=()=>{o(4);const i=n.getUint32(r,!0);return r+=4,i},s=i=>{o(4*i);const t=new Float32Array(i);for(let e=0;e<i;e++)t[e]=n.getFloat32(r,!0),r+=4;return t};o(8);if(String.fromCharCode(n.getUint8(0),n.getUint8(1),n.getUint8(2),n.getUint8(3))!==i.MAGIC)throw new _.Error(`Invalid native model signature: expected ${i.MAGIC}.`);r=4;const c=f();if(c!==i.VERSION)throw new _.Error(`Unsupported GML1 model version: ${c}.`);const u=f(),h=new TextDecoder,l=[];for(let i=0;i<u;i++){const t=f();o(t);const n=h.decode(new Uint8Array(e,r,t));r+=t;const c=a(),u=a();if(0===c||0===u||u%3!=0)throw new _.Error(`Invalid vertex or triangle index count in GML1 mesh ${i}.`);const d=s(4),v=s(3*c),b=s(3*c),w=s(2*c);s(0);o(4*u);const p=new Uint32Array(u);for(let t=0;t<u;t++){const e=a();if(e>=c)throw new _.Error(`GML1 mesh ${i} contains an out-of-range index.`);p[t]=e}l.push({name:n,positions:v,normals:b,uv:w,indices:p,material:{color:d}})}if(r!==n.byteLength)throw new _.Error("Unexpected trailing bytes in GML1 model data.");return{format:i.MAGIC,version:c,meshes:l}}},ni=class{constructor(){throw new _.Error("Class GLBLoader may not be constructed!")}static load(i,t={}){throw new _.Error("Loading GLB files is not yet implemented.")}},ri=class{constructor(){throw new _.Error("Class GLTFLoader may not be constructed!")}static load(i,t={}){throw new _.Error("Loading GLTF files is not yet implemented.")}},oi=class{constructor(){throw new _.Error("Class OBJLoader may not be constructed!")}static load(i,t={}){throw new _.Error("Loading OBJ files is not yet implemented.")}},fi=class{constructor(){throw new _.Error("Class ModelLoaders may not be constructed!")}static GMLLoader=ei;static GLBLoader=ni;static GLTFLoader=ri;static OBJLoader=oi},ai=class{constructor(){throw new _.Error("Class Geometry may not be constructed!")}static Box=Z;static Sphere=J;static Cone=ii;static Pyramid=ti;static ModelLoaders=fi},si=function(){var t;(t=this)||(t=(void 0!==t?t:null)||{});var e={};for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);var r="object"==typeof process&&"function"==typeof i,o="object"==typeof window,f="function"==typeof importScripts,a=!o&&!r&&!f;if(r){t.print||(t.print=function(i){process.stdout.write(i+"\n")}),t.printErr||(t.printErr=function(i){process.stderr.write(i+"\n")});var s=i("fs"),c=i("path");t.read=function(i,t){i=c.normalize(i);var e=s.readFileSync(i);return e||i==c.resolve(i)||(i=path.join(__dirname,"..","src",i),e=s.readFileSync(i)),e&&!t&&(e=e.toString()),e},t.readBinary=function(i){return t.read(i,!0)},t.load=function(i){u(read(i))},t.thisProgram=process.argv[1],t.arguments=process.argv.slice(2),"undefined"!=typeof module&&(module.exports=t)}else if(a)t.print||(t.print=print),"undefined"!=typeof printErr&&(t.printErr=printErr),"undefined"!=typeof read?t.read=read:t.read=function(){throw"no read() available (jsc?)"},t.readBinary=function(i){return read(i,"binary")},"undefined"!=typeof scriptArgs?t.arguments=scriptArgs:void 0!==arguments&&(t.arguments=arguments),this.Module=t;else{if(!o&&!f)throw"Unknown runtime environment. Where are we?";if(t.read=function(i){var t=new XMLHttpRequest;return t.open("GET",i,!1),t.send(null),t.responseText},void 0!==arguments&&(t.arguments=arguments),"undefined"!=typeof console)t.print||(t.print=function(i){console.log(i)}),t.printErr||(t.printErr=function(i){console.log(i)});else{t.print||(t.print=function(i){})}o?window.Module=t:t.load=importScripts}function u(i){throw"NO_DYNAMIC_EXECUTION was set, cannot eval"}for(var n in"undefined"==!t.load&&t.read&&(t.load=function(i){u(t.read(i))}),t.print||(t.print=function(){}),t.printErr||(t.printErr=t.print),t.arguments||(t.arguments=[]),t.thisProgram||(t.thisProgram="./this.program"),t.print=t.print,t.printErr=t.printErr,t.preRun=[],t.postRun=[],e)e.hasOwnProperty(n)&&(t[n]=e[n]);var h={setTempRet0:function(i){v=i},getTempRet0:function(){return v},stackSave:function(){return P},stackRestore:function(i){P=i},forceAlign:function(i,t){return 1==(t=t||4)?i:isNumber(i)&&isNumber(t)?Math.ceil(i/t)*t:isNumber(t)&&isPowerOfTwo(t)?"((("+i+")+"+(t-1)+")&"+-t+")":"Math.ceil(("+i+")/"+t+")*"+t},isNumberType:function(i){return i in h.INT_TYPES||i in h.FLOAT_TYPES},isPointerType:function(i){return"*"==i[i.length-1]},isStructType:function(i){return!isPointerType(i)&&(!!isArrayType(i)||(!!/<?\{ ?[^}]* ?\}>?/.test(i)||"%"==i[0]))},INT_TYPES:{i1:0,i8:0,i16:0,i32:0,i64:0},FLOAT_TYPES:{float:0,double:0},or64:function(i,t){return(0|i|t)+4294967296*(Math.round(i/4294967296)|Math.round(t/4294967296))},and64:function(i,t){return(i&(0|t))+4294967296*(Math.round(i/4294967296)&Math.round(t/4294967296))},xor64:function(i,t){return(i^(0|t))+4294967296*(Math.round(i/4294967296)^Math.round(t/4294967296))},getNativeTypeSize:function(i){switch(i){case"i1":case"i8":return 1;case"i16":return 2;case"i32":case"float":return 4;case"i64":case"double":return 8;default:if("*"===i[i.length-1])return h.QUANTUM_SIZE;if("i"===i[0]){var t=parseInt(i.substr(1));return _(t%8==0),t/8}return 0}},getNativeFieldSize:function(i){return Math.max(h.getNativeTypeSize(i),h.QUANTUM_SIZE)},dedup:function(i,t){var e={};return t?i.filter(function(i){return!e[i[t]]&&(e[i[t]]=!0,!0)}):i.filter(function(i){return!e[i]&&(e[i]=!0,!0)})},set:function(){for(var i="object"==typeof arguments[0]?arguments[0]:arguments,t={},e=0;e<i.length;e++)t[i[e]]=0;return t},STACK_ALIGN:8,getAlignSize:function(i,t,e){return e||"i64"!=i&&"double"!=i?i?Math.min(t||(i?h.getNativeFieldSize(i):0),h.QUANTUM_SIZE):Math.min(t,8):8},calculateStructAlignment:function(i){i.flatSize=0,i.alignSize=0;var t=[],e=-1;return i.flatIndexes=i.fields.map(function(n){var r,o;h.isNumberType(n)||h.isPointerType(n)?(r=h.getNativeTypeSize(n),o=h.getAlignSize(n,r)):h.isStructType(n)?"0"===n[1]?(r=0,o=Types.types[n]?h.getAlignSize(null,Types.types[n].alignSize):i.alignSize||QUANTUM_SIZE):(r=Types.types[n].flatSize,o=h.getAlignSize(null,Types.types[n].alignSize)):"b"==n[0]?(r=0|n.substr(1),o=1):"<"===n[0]?r=o=Types.types[n].flatSize:"i"===n[0]?_((r=o=parseInt(n.substr(1))/8)%1==0,"cannot handle non-byte-size field "+n):_(!1,"invalid type for calculateStructAlignment"),i.packed&&(o=1),i.alignSize=Math.max(i.alignSize,o);var f=h.alignMemory(i.flatSize,o);return i.flatSize=f+r,e>=0&&t.push(f-e),e=f,f}),i.name_&&"["===i.name_[0]&&(i.flatSize=parseInt(i.name_.substr(1))*i.flatSize/2),i.flatSize=h.alignMemory(i.flatSize,i.alignSize),0==t.length?i.flatFactor=i.flatSize:1==h.dedup(t).length&&(i.flatFactor=t[0]),i.needsFlattening=1!=i.flatFactor,i.flatIndexes},generateStructInfo:function(i,t,e){var n;if(t){if(e=e||0,!(r=("undefined"==typeof Types?h.typeInfo:Types.types)[t]))return null;if(r.fields.length!=i.length)return printErr("Number of named fields must match the type for "+t+": possibly duplicate struct names. Cannot return structInfo"),null;n=r.flatIndexes}else{var r={fields:i.map(function(i){return i[0]})};n=h.calculateStructAlignment(r)}var o={je:r.flatSize};return t?i.forEach(function(i,t){if("string"==typeof i)o[i]=n[t]+e;else{var f;for(var a in i)f=a;o[f]=h.generateStructInfo(i[f],r.fields[t],n[t])}}):i.forEach(function(i,t){o[i[1]]=n[t]}),o},dynCall:function(i,e,n){return n&&n.length?(n.splice||(n=Array.prototype.slice.call(n)),n.splice(0,0,e),t["dynCall_"+i].apply(null,n)):t["dynCall_"+i].call(null,e)},functionPointers:[],addFunction:function(i){for(var t=0;t<h.functionPointers.length;t++)if(!h.functionPointers[t])return h.functionPointers[t]=i,2*(1+t);throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."},removeFunction:function(i){h.functionPointers[(i-2)/2]=null},getAsmConst:function(i,t){h.asmConstCache||(h.asmConstCache={});var e=h.asmConstCache[i];if(e)return e;for(var n=[],r=0;r<t;r++)n.push(String.fromCharCode(36)+r);var o=C(i);return'"'===o[0]&&(o.indexOf('"',1)===o.length-1?o=o.substr(1,o.length-2):qa("invalid EM_ASM input |"+o+"|. Please use EM_ASM(..code..) (no quotes) or EM_ASM({ ..code($0).. }, input) (to input values)")),qa("NO_DYNAMIC_EXECUTION was set, cannot eval, so EM_ASM is not functional"),h.asmConstCache[i]=evalled},warnOnce:function(i){h.warnOnce.shown||(h.warnOnce.shown={}),h.warnOnce.shown[i]||(h.warnOnce.shown[i]=1,t.printErr(i))},funcWrappers:{},getFuncWrapper:function(i,t){_(t),h.funcWrappers[t]||(h.funcWrappers[t]={});var e=h.funcWrappers[t];return e[i]||(e[i]=function(){return h.dynCall(t,i,arguments)}),e[i]},UTF8Processor:function(){var i=[],t=0;this.processCChar=function(e){if(e&=255,0==i.length)return 128&e?(i.push(e),t=192==(224&e)?1:224==(240&e)?2:3,""):String.fromCharCode(e);if(t&&(i.push(e),--t>0))return"";var n,r=i[0],o=i[1],f=i[2],a=i[3];if(2==i.length)n=String.fromCharCode((31&r)<<6|63&o);else if(3==i.length)n=String.fromCharCode((15&r)<<12|(63&o)<<6|63&f);else{var s=(7&r)<<18|(63&o)<<12|(63&f)<<6|63&a;n=String.fromCharCode(Math.floor((s-65536)/1024)+55296,(s-65536)%1024+56320)}return i.length=0,n},this.processJSString=function(i){i=unescape(encodeURIComponent(i));for(var t=[],e=0;e<i.length;e++)t.push(i.charCodeAt(e));return t}},getCompilerSetting:function(i){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"},stackAlloc:function(i){var t=P;return P=(P=P+i|0)+7&-8,t},staticAlloc:function(i){var t=R;return R=(R=R+i|0)+7&-8,t},dynamicAlloc:function(i){var t=N;return(N=(N=N+i|0)+7&-8)>=F&&qa("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+F+", (2) compile with ALLOW_MEMORY_GROWTH which adjusts the size at runtime but prevents some optimizations, or (3) set Module.TOTAL_MEMORY before the program runs."),t},alignMemory:function(i,t){return i=Math.ceil(i/(t||8))*(t||8)},makeBigInt:function(i,t,e){return e?+(i>>>0)+4294967296*+(t>>>0):+(i>>>0)+4294967296*+(0|t)},GLOBAL_BASE:8,QUANTUM_SIZE:4,Se:0};t.Runtime=h;var l,d,v,b=!1;function _(i,t){i||qa("Assertion failed: "+t)}var w,p;function m(i){var e=t["_"+i];return e||qa("NO_DYNAMIC_EXECUTION was set, cannot eval - ccall/cwrap are not functional"),_(e,"Cannot call unknown function "+i+" (perhaps LLVM optimizations or closure removed it?)"),e}function y(i,t,e,n){switch("*"===(e=e||"i8").charAt(e.length-1)&&(e="i32"),e){case"i1":case"i8":x[i|0]=t;break;case"i16":E[i>>1]=t;break;case"i32":L[i>>2]=t;break;case"i64":d=[t>>>0,(l=t,+ni(l)>=1?l>0?(0|li(+ui(l/4294967296),4294967295))>>>0:~~+ci((l-+(~~l>>>0))/4294967296)>>>0:0)],L[i>>2]=d[0],L[i+4>>2]=d[1];break;case"float":A[i>>2]=t;break;case"double":D[i>>3]=t;break;default:qa("invalid type for setValue: "+e)}}function k(i,t,e){switch("*"===(t=t||"i8").charAt(t.length-1)&&(t="i32"),t){case"i1":case"i8":return x[i|0];case"i16":return E[i>>1];case"i32":case"i64":return L[i>>2];case"float":return A[i>>2];case"double":return D[i>>3];default:qa("invalid type for setValue: "+t)}return null}!function(){var i=0,t={stackSave:function(){i=h.stackSave()},stackRestore:function(){h.stackRestore(i)},arrayToC:function(i){var t=h.stackAlloc(i.length);return ii(i,t),t},stringToC:function(i){var t=0;return null!=i&&0!==i&&J(i,t=h.stackAlloc(i.length+1)),t}},e={string:t.stringToC,array:t.arrayToC};p=function(n,r,o,f){var a=m(n),s=[];if(f)for(var c=0;c<f.length;c++){var u=e[o[c]];u?(0===i&&(i=h.stackSave()),s[c]=u(f[c])):s[c]=f[c]}var l=a.apply(null,s);return"string"===r&&(l=C(l)),0!==i&&t.stackRestore(),l};var n=/^function\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/;function r(i){var t=i.toString().match(n).slice(1);return{arguments:t[0],body:t[1],returnValue:t[2]}}var o={};for(var f in t)t.hasOwnProperty(f)&&(o[f]=r(t[f]));w=function(i,t,e){e=e||[];var n=m(i),f=e.every(function(i){return"number"===i}),a="string"!==t;if(a&&f)return n;var s=e.map(function(i,t){return"$"+t}),c=(s.join(","),e.length);if(!f){o.stackSave.body+";";for(var u=0;u<c;u++){var h=s[u],l=e[u];if("number"!==l){var d=o[l+"ToC"];"var "+d.arguments+" = "+h+";",d.body+";",h+"="+d.returnValue+";"}}}("var ret = "+r(function(){return n}).returnValue+"("+s.join(",")+");",a)||r(function(){return C}).returnValue;f||o.stackRestore.body,qa("NO_DYNAMIC_EXECUTION was set, cannot eval - ccall is not functional")}}(),t.cwrap=w,t.ccall=p,t.setValue=y,t.getValue=k;function g(i,t,e,n){var r,o;"number"==typeof i?(r=!0,o=i):(r=!1,o=i.length);var f,a="string"==typeof t?t:null;if(f=4==e?n:[Qi,h.stackAlloc,h.staticAlloc,h.dynamicAlloc][void 0===e?2:e](Math.max(o,a?1:t.length)),r){var s;n=f;for(_(!(3&f)),s=f+(-4&o);n<s;n+=4)L[n>>2]=0;for(s=f+o;n<s;)x[n++|0]=0;return f}if("i8"===a)return i.subarray||i.slice?M.set(i,f):M.set(new Uint8Array(i),f),f;for(var c,u,l,d=0;d<o;){var v=i[d];"function"==typeof v&&(v=h.getFunctionIndex(v)),0!==(c=a||t[d])?("i64"==c&&(c="i32"),y(f+d,v,c),l!==c&&(u=h.getNativeTypeSize(c),l=c),d+=u):d++}return f}function C(i,t){for(var e,n=!1,r=0;;){if((e=M[i+r|0])>=128)n=!0;else if(0==e&&!t)break;if(r++,t&&r==t)break}t||(t=r);var o="";if(!n){for(var f,a=1024;t>0;)f=String.fromCharCode.apply(String,M.subarray(i,i+Math.min(t,a))),o=o?o+f:f,i+=a,t-=a;return o}var s=new h.UTF8Processor;for(r=0;r<t;r++)e=M[i+r|0],o+=s.processCChar(e);return o}function j(i){var e=!!t.xe;if(e)try{var n=Qi(i.length);J(i.substr(1),n);var r=Qi(4),o=t.xe(n,0,0,r);if(0===k(r,"i32")&&o)return C(o)}catch(i){}finally{n&&Jn(n),r&&Jn(r),o&&Jn(o)}var f=3,a={v:"void",b:"bool",c:"char",s:"short",i:"int",l:"long",f:"float",d:"double",w:"wchar_t",a:"signed char",h:"unsigned char",t:"unsigned short",j:"unsigned int",m:"unsigned long",x:"long long",y:"unsigned long long",z:"..."},s=[],c=!0;var u=i;try{if("Object._main"==i||"_main"==i)return"main()";if("number"==typeof i&&(i=C(i)),"_"!==i[0])return i;if("_"!==i[1])return i;if("Z"!==i[2])return i;switch(i[3]){case"n":return"operator new()";case"d":return"operator delete()"}u=function t(e,n,r){n=n||1/0;var o,u="",h=[];if("N"===i[f]){if(o=function(){f++,"K"===i[f]&&f++;for(var t=[];"E"!==i[f];)if("S"!==i[f])if("C"!==i[f]){var e=parseInt(i.substr(f)),n=e.toString().length;if(!e||!n){f--;break}var r=i.substr(f+n,e);t.push(r),s.push(r),f+=n+e}else t.push(t[t.length-1]),f+=2;else{f++;var o=i.indexOf("_",f),a=i.substring(f,o)||0;t.push(s[a]||"?"),f=o+1}return f++,t}().join("::"),0===--n)return e?[o]:o}else if(("K"===i[f]||c&&"L"===i[f])&&f++,b=parseInt(i.substr(f))){var l=b.toString().length;o=i.substr(f+l,b),f+=l+b}if(c=!1,"I"===i[f]){f++;var d=t(!0);u+=t(!0,1,!0)[0]+" "+o+"<"+d.join(", ")+">"}else u=o;i:for(;f<i.length&&n-- >0;){var v=i[f++];if(v in a)h.push(a[v]);else switch(v){case"P":h.push(t(!0,1,!0)[0]+"*");break;case"R":h.push(t(!0,1,!0)[0]+"&");break;case"L":f++;var b=i.indexOf("E",f)-f;h.push(i.substr(f,b)),f+=b+2;break;case"A":if(b=parseInt(i.substr(f)),f+=b.toString().length,"_"!==i[f])throw"?";f++,h.push(t(!0,1,!0)[0]+" ["+b+"]");break;case"E":break i;default:u+="?"+v;break i}}return r||1!==h.length||"void"!==h[0]||(h=[]),e?(u&&h.push(u+"?"),h):u+"("+h.join(", ")+")"}()}catch(i){u+="?"}return u.indexOf("?")>=0&&!e&&h.warnOnce("warning: a problem occurred in builtin C++ name demangling; build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),u}function S(){return function(){var i=new Error;if(!i.stack){try{throw new Error(0)}catch(t){i=t}if(!i.stack)return"(no stack trace available)"}return i.stack.toString()}().replace(/__Z[\w\d_]+/g,function(i){var t=j(i);return i===t?i:i+" ["+t+"]"})}t.ALLOC_NORMAL=0,t.ALLOC_STACK=1,t.ALLOC_STATIC=2,t.ALLOC_DYNAMIC=3,t.ALLOC_NONE=4,t.allocate=g,t.Pointer_stringify=C,t.UTF16ToString=function(i){for(var t=0,e="";;){var n=E[i+2*t>>1];if(0==n)return e;++t,e+=String.fromCharCode(n)}},t.stringToUTF16=function(i,t){for(var e=0;e<i.length;++e){var n=i.charCodeAt(e);E[t+2*e>>1]=n}E[t+2*i.length>>1]=0},t.UTF32ToString=function(i){for(var t=0,e="";;){var n=L[i+4*t>>2];if(0==n)return e;if(++t,n>=65536){var r=n-65536;e+=String.fromCharCode(55296|r>>10,56320|1023&r)}else e+=String.fromCharCode(n)}},t.stringToUTF32=function(i,t){for(var e=0,n=0;n<i.length;++n){var r=i.charCodeAt(n);if(r>=55296&&r<=57343)r=65536+((1023&r)<<10)|1023&i.charCodeAt(++n);L[t+4*e>>2]=r,++e}L[t+4*e>>2]=0},t.stackTrace=S;var x,M,E,T,L,I,A,D;var O,R=0,P=0,N=0;for(var B=t.TOTAL_STACK||5242880,F=t.TOTAL_MEMORY||67108864,V=(t.FAST_MEMORY,4096);V<F||V<2*B;)V<16777216?V*=2:V+=16777216;V!==F&&(t.printErr("increasing TOTAL_MEMORY to "+V+" to be more reasonable"),F=V),_("undefined"!=typeof Int32Array&&"undefined"!=typeof Float64Array&&!!new Int32Array(1).subarray&&!!new Int32Array(1).set,"JS engine does not provide full typed array support");var U=new ArrayBuffer(F);function G(i){for(;i.length>0;){var t=i.shift();if("function"!=typeof t){var e=t.func;"number"==typeof e?void 0===t.arg?h.dynCall("v",e):h.dynCall("vi",e,[t.arg]):e(void 0===t.arg?null:t.arg)}else t()}}x=new Int8Array(U),E=new Int16Array(U),L=new Int32Array(U),M=new Uint8Array(U),T=new Uint16Array(U),I=new Uint32Array(U),A=new Float32Array(U),D=new Float64Array(U),L[0]=255,_(255===M[0]&&0===M[3],"Typed arrays 2 must be run on a little-endian system"),t.HEAP=void 0,t.HEAP8=x,t.HEAP16=E,t.HEAP32=L,t.HEAPU8=M,t.HEAPU16=T,t.HEAPU32=I,t.HEAPF32=A,t.HEAPF64=D;var W=[],z=[],X=[],$=[],H=[],q=!1;function K(){q||(q=!0,G(z))}function Y(i){W.unshift(i)}function Q(i){H.unshift(i)}function Z(i,t,e){var n=(new h.UTF8Processor).processJSString(i);return e&&(n.length=e),t||n.push(0),n}function J(i,t,e){for(var n=Z(i,e),r=0;r<n.length;){var o=n[r];x[t+r|0]=o,r+=1}}function ii(i,t){for(var e=0;e<i.length;e++)x[t+e|0]=i[e]}function ti(i,t,e){return i>=0?i:t<=32?2*Math.abs(1<<t-1)+i:Math.pow(2,t)+i}function ei(i,t,e){if(i<=0)return i;var n=t<=32?Math.abs(1<<t-1):Math.pow(2,t-1);return i>=n&&(t<=32||i>n)&&(i=-2*n+i),i}t.addOnPreRun=t.addOnPreRun=Y,t.addOnInit=t.addOnInit=function(i){z.unshift(i)},t.addOnPreMain=t.addOnPreMain=function(i){X.unshift(i)},t.addOnExit=t.addOnExit=function(i){$.unshift(i)},t.addOnPostRun=t.addOnPostRun=Q,t.intArrayFromString=Z,t.intArrayToString=function(i){for(var t=[],e=0;e<i.length;e++){var n=i[e];n>255&&(n&=255),t.push(String.fromCharCode(n))}return t.join("")},t.writeStringToMemory=J,t.writeArrayToMemory=ii,t.writeAsciiToMemory=function(i,t,e){for(var n=0;n<i.length;n++)x[t+n|0]=i.charCodeAt(n);e||(x[t+i.length|0]=0)},Math.imul&&-5===Math.imul(4294967295,5)||(Math.imul=function(i,t){var e=65535&i,n=65535&t;return e*n+((i>>>16)*n+e*(t>>>16)<<16)|0}),Math.imul=Math.imul;var ni=Math.abs,ri=Math.cos,oi=Math.sin,fi=(Math.tan,Math.acos),ai=(Math.asin,Math.atan,Math.atan2),si=(Math.exp,Math.log,Math.sqrt),ci=Math.ceil,ui=Math.floor,hi=Math.pow,li=(Math.imul,Math.fround,Math.min),di=0,vi=null,bi=null;function _i(i){di++,t.monitorRunDependencies&&t.monitorRunDependencies(di)}function wi(i){if(di--,t.monitorRunDependencies&&t.monitorRunDependencies(di),0==di&&(null!==vi&&(clearInterval(vi),vi=null),bi)){var e=bi;bi=null,e()}}t.addRunDependency=_i,t.removeRunDependency=wi,t.preloadedImages={},t.preloadedAudios={};var pi=null;R=8+h.alignMemory(19803),z.push({func:function(){Va()}}),g([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,49,55,98,116,84,121,112,101,100,67,111,110,115,116,114,97,105,110,116,0,0,0,0,0,49,51,98,116,84,121,112,101,100,79,98,106,101,99,116,0,144,74,0,0,136,0,0,0,24,75,0,0,112,0,0,0,0,0,0,0,1,0,0,0,152,0,0,0,2,4,0,0,49,56,98,116,86,101,104,105,99,108,101,82,97,121,99,97,115,116,101,114,0,0,0,0,144,74,0,0,184,0,0,0,0,0,0,0,80,1,0,0,4,0,0,0,5,0,0,0,1,0,0,0,1,0,0,0,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,50,52,67,108,111,115,101,115,116,82,97,121,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,0,0,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,49,55,82,97,121,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,0,144,74,0,0,32,1,0,0,184,74,0,0,240,0,0,0,72,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,2,0,0,6,0,0,0,7,0,0,0,1,0,0,0,2,0,0,0,50,48,98,116,68,101,102,97,117,108,116,77,111,116,105,111,110,83,116,97,116,101,0,0,49,51,98,116,77,111,116,105,111,110,83,116,97,116,101,0,144,74,0,0,16,2,0,0,184,74,0,0,248,1,0,0,32,2,0,0,0,0,0,0,0,0,0,0,168,2,0,0,8,0,0,0,9,0,0,0,2,0,0,0,1,0,0,0,50,57,67,111,110,99,114,101,116,101,67,111,110,116,97,99,116,82,101,115,117,108,116,67,97,108,108,98,97,99,107,0,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,50,49,67,111,110,116,97,99,116,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,0,0,0,0,0,144,74,0,0,112,2,0,0,184,74,0,0,80,2,0,0,160,2,0,0,0,0,0,0,123,32,118,97,114,32,115,101,108,102,32,61,32,77,111,100,117,108,101,91,39,103,101,116,67,97,99,104,101,39,93,40,77,111,100,117,108,101,91,39,67,111,110,99,114,101,116,101,67,111,110,116,97,99,116,82,101,115,117,108,116,67,97,108,108,98,97,99,107,39,93,41,91,36,48,93,59,32,105,102,32,40,33,115,101,108,102,46,104,97,115,79,119,110,80,114,111,112,101,114,116,121,40,39,97,100,100,83,105,110,103,108,101,82,101,115,117,108,116,39,41,41,32,116,104,114,111,119,32,39,97,32,74,83,73,109,112,108,101,109,101,110,116,97,116,105,111,110,32,109,117,115,116,32,105,109,112,108,101,109,101,110,116,32,97,108,108,32,102,117,110,99,116,105,111,110,115,44,32,121,111,117,32,102,111,114,103,111,116,32,67,111,110,99,114,101,116,101,67,111,110,116,97,99,116,82,101,115,117,108,116,67,97,108,108,98,97,99,107,58,58,97,100,100,83,105,110,103,108,101,82,101,115,117,108,116,46,39,59,32,114,101,116,117,114,110,32,115,101,108,102,46,97,100,100,83,105,110,103,108,101,82,101,115,117,108,116,40,36,49,44,36,50,44,36,51,44,36,52,44,36,53,44,36,54,41,59,32,125,0,0,0,0,0,0,0,0,0,0,0,48,4,0,0,10,0,0,0,11,0,0,0,12,0,0,0,1,0,0,0,3,0,0,0,4,0,0,0,2,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,1,0,0,0,50,49,98,116,67,111,110,101,84,119,105,115,116,67,111,110,115,116,114,97,105,110,116,0,184,74,0,0,24,4,0,0,160,0,0,0,0,0,0,0,98,116,67,111,110,101,84,119,105,115,116,67,111,110,115,116,114,97,105,110,116,68,97,116,97,0,0,0,0,0,0,0,0,0,0,0,40,7,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,5,0,0,0,3,0,0,0,17,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,6,0,0,0,18,0,0,0,7,0,0,0,1,0,0,0,2,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,19,0,0,0,13,0,0,0,4,0,0,0,14,0,0,0,15,0,0,0,4,0,0,0,5,0,0,0,3,0,0,0,4,0,0,0,6,0,0,0,20,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,1,0,0,0,2,0,0,0,21,0,0,0,20,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,22,0,0,0,21,0,0,0,6,0,0,0,0,0,0,0,100,101,98,117,103,68,114,97,119,87,111,114,108,100,0,0,115,121,110,99,104,114,111,110,105,122,101,77,111,116,105,111,110,83,116,97,116,101,115,0,115,116,101,112,83,105,109,117,108,97,116,105,111,110,0,0,105,110,116,101,114,110,97,108,83,105,110,103,108,101,83,116,101,112,83,105,109,117,108,97,116,105,111,110,0,0,0,0,117,112,100,97,116,101,65,99,116,105,111,110,115,0,0,0,117,112,100,97,116,101,65,99,116,105,118,97,116,105,111,110,83,116,97,116,101,0,0,0,115,111,108,118,101,67,111,110,115,116,114,97,105,110,116,115,0,0,0,0,0,0,0,0,99,97,108,99,117,108,97,116,101,83,105,109,117,108,97,116,105,111,110,73,115,108,97,110,100,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,114,101,97,116,101,80,114,101,100,105,99,116,105,118,101,67,111,110,116,97,99,116,115,0,0,0,0,0,0,0,0,114,101,108,101,97,115,101,32,112,114,101,100,105,99,116,105,118,101,32,99,111,110,116,97,99,116,32,109,97,110,105,102,111,108,100,115,0,0,0,0,112,114,101,100,105,99,116,105,118,101,32,99,111,110,118,101,120,83,119,101,101,112,84,101,115,116,0,0,0,0,0,0,105,110,116,101,103,114,97,116,101,84,114,97,110,115,102,111,114,109,115,0,0,0,0,0,67,67,68,32,109,111,116,105,111,110,32,99,108,97,109,112,105,110,103,0,0,0,0,0,97,112,112,108,121,32,115,112,101,99,117,108,97,116,105,118,101,32,99,111,110,116,97,99,116,32,114,101,115,116,105,116,117,116,105,111,110,0,0,0,112,114,101,100,105,99,116,85,110,99,111,110,115,116,114,97,105,110,116,77,111,116,105,111,110,0,0,0,0,0,0,0,98,116,68,121,110,97,109,105,99,115,87,111,114,108,100,70,108,111,97,116,68,97,116,97,0,0,0,0,0,0,0,0,50,51,98,116,68,105,115,99,114,101,116,101,68,121,110,97,109,105,99,115,87,111,114,108,100,0,0,0,0,0,0,0,49,53,98,116,68,121,110,97,109,105,99,115,87,111,114,108,100,0,0,0,0,0,0,0,184,74,0,0,0,7,0,0,176,26,0,0,0,0,0,0,184,74,0,0,224,6,0,0,24,7,0,0,0,0,0,0,98,116,67,111,110,118,101,120,73,110,116,101,114,110,97,108,83,104,97,112,101,68,97,116,97,0,0,0,0,0,0,0,83,80,72,69,82,69,0,0,0,0,0,0,32,8,0,0,23,0,0,0,24,0,0,0,5,0,0,0,3,0,0,0,51,52,98,116,67,108,111,115,101,115,116,78,111,116,77,101,67,111,110,118,101,120,82,101,115,117,108,116,67,97,108,108,98,97,99,107,0,0,0,0,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,50,55,67,108,111,115,101,115,116,67,111,110,118,101,120,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,0,0,0,0,0,0,0,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,50,48,67,111,110,118,101,120,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,0,0,0,0,0,0,144,74,0,0,216,7,0,0,184,74,0,0,160,7,0,0,8,8,0,0,0,0,0,0,184,74,0,0,120,7,0,0,16,8,0,0,0,0,0,0,0,0,0,0,16,8,0,0,25,0,0,0,26,0,0,0,6,0,0,0,4,0,0,0,0,0,0,0,184,8,0,0,27,0,0,0,28,0,0,0,1,0,0,0,0,0,0,0,50,55,73,110,112,108,97,99,101,83,111,108,118,101,114,73,115,108,97,110,100,67,97,108,108,98,97,99,107,0,0,0,78,50,53,98,116,83,105,109,117,108,97,116,105,111,110,73,115,108,97,110,100,77,97,110,97,103,101,114,49,52,73,115,108,97,110,100,67,97,108,108,98,97,99,107,69,0,0,0,144,74,0,0,128,8,0,0,184,74,0,0,96,8,0,0,176,8,0,0,0,0,0,0,0,0,0,0,32,9,0,0,29,0,0,0,30,0,0,0,31,0,0,0,1,0,0,0,22,0,0,0,23,0,0,0,1,0,0,0,2,0,0,0,5,0,0,0,7,0,0,0,3,0,0,0,0,0,0,0,50,51,98,116,80,111,105,110,116,50,80,111,105,110,116,67,111,110,115,116,114,97,105,110,116,0,0,0,0,0,0,0,184,74,0,0,0,9,0,0,160,0,0,0,0,0,0,0,98,116,80,111,105,110,116,50,80,111,105,110,116,67,111,110,115,116,114,97,105,110,116,70,108,111,97,116,68,97,116,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,32,0,0,0,33,0,0,0,1,0,0,0,24,0,0,0,7,0,0,0,8,0,0,0,5,0,0,0,0,0,0,0,49,54,98,116,82,97,121,99,97,115,116,86,101,104,105,99,108,101,0,0,0,0,0,0,49,55,98,116,65,99,116,105,111,110,73,110,116,101,114,102,97,99,101,0,0,0,0,0,144,74,0,0,8,12,0,0,184,74,0,0,240,11,0,0,32,12,0,0,0,0,0,0,0,0,0,0,112,12,0,0,34,0,0,0,35,0,0,0,1,0,0,0,0,0,0,0,50,53,98,116,68,101,102,97,117,108,116,86,101,104,105,99,108,101,82,97,121,99,97,115,116,101,114,0,0,0,0,0,184,74,0,0,80,12,0,0,208,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,12,0,0,7,0,0,0,36,0,0,0,37,0,0,0,25,0,0,0,8,0,0,0,4,0,0,0,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,98,116,82,105,103,105,100,66,111,100,121,70,108,111,97,116,68,97,116,97,0,0,0,0,49,49,98,116,82,105,103,105,100,66,111,100,121,0,0,0,184,74,0,0,208,12,0,0,152,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,216,13,0,0,38,0,0,0,39,0,0,0,3,0,0,0,1,0,0,0,4,0,0,0,40,0,0,0,9,0,0,0,6,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,115,111,108,118,101,71,114,111,117,112,67,97,99,104,101,70,114,105,101,110,100,108,121,83,101,116,117,112,0,0,0,0,115,111,108,118,101,71,114,111,117,112,67,97,99,104,101,70,114,105,101,110,100,108,121,73,116,101,114,97,116,105,111,110,115,0,0,0,0,0,0,0,115,111,108,118,101,71,114,111,117,112,0,0,0,0,0,0,51,53,98,116,83,101,113,117,101,110,116,105,97,108,73,109,112,117,108,115,101,67,111,110,115,116,114,97,105,110,116,83,111,108,118,101,114,0,0,0,49,56,98,116,67,111,110,115,116,114,97,105,110,116,83,111,108,118,101,114,0,0,0,0,144,74,0,0,184,13,0,0,184,74,0,0,144,13,0,0,208,13,0,0,0,0,0,0,98,116,84,121,112,101,100,67,111,110,115,116,114,97,105,110,116,70,108,111,97,116,68,97,116,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,0,0,41,0,0,0,42,0,0,0,1,0,0,0,5,0,0,0,1,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,27,0,0,0,10,0,0,0,11,0,0,0,6,0,0,0,28,0,0,0,43,0,0,0,49,50,98,116,65,120,105,115,83,119,101,101,112,51,0,0,50,48,98,116,65,120,105,115,83,119,101,101,112,51,73,110,116,101,114,110,97,108,73,116,69,0,0,0,0,0,0,0,50,49,98,116,66,114,111,97,100,112,104,97,115,101,73,110,116,101,114,102,97,99,101,0,144,74,0,0,232,16,0,0,184,74,0,0,200,16,0,0,0,17,0,0,0,0,0,0,184,74,0,0,184,16,0,0,8,17,0,0,0,0,0,0,0,0,0,0,8,17,0,0,44,0,0,0,45,0,0,0,1,0,0,0,5,0,0,0,1,0,0,0,7,0,0,0,2,0,0,0,8,0,0,0,27,0,0,0,10,0,0,0,11,0,0,0,6,0,0,0,28,0,0,0,43,0,0,0,0,0,0,0,40,18,0,0,46,0,0,0,47,0,0,0,5,0,0,0,2,0,0,0,7,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,8,0,0,0,15,0,0,0,9,0,0,0,29,0,0,0,10,0,0,0,6,0,0,0,16,0,0,0,30,0,0,0,31,0,0,0,0,0,0,0,49,53,98,116,78,117,108,108,80,97,105,114,67,97,99,104,101,0,0,0,0,0,0,0,50,50,98,116,79,118,101,114,108,97,112,112,105,110,103,80,97,105,114,67,97,99,104,101,0,0,0,0,0,0,0,0,50,53,98,116,79,118,101,114,108,97,112,112,105,110,103,80,97,105,114,67,97,108,108,98,97,99,107,0,0,0,0,0,144,74,0,0,240,17,0,0,184,74,0,0,208,17,0,0,16,18,0,0,0,0,0,0,184,74,0,0,184,17,0,0,24,18,0,0,0,0,0,0,0,0,0,0,208,18,0,0,48,0,0,0,49,0,0,0,9,0,0,0,11,0,0,0,1,0,0,0,1,0,0,0,32,0,0,0,17,0,0,0,1,0,0,0,18,0,0,0,33,0,0,0,9,0,0,0,2,0,0,0,19,0,0,0,7,0,0,0,34,0,0,0,12,0,0,0,13,0,0,0,2,0,0,0,10,0,0,0,11,0,0,0,20,0,0,0,14,0,0,0,8,0,0,0,21,0,0,0,22,0,0,0,12,0,0,0,15,0,0,0,23,0,0,0,13,0,0,0,1,0,0,0,16,0,0,0,49,48,98,116,66,111,120,83,104,97,112,101,0,0,0,0,184,74,0,0,192,18,0,0,48,56,0,0,0,0,0,0,66,111,120,0,0,0,0,0,0,0,0,0,128,19,0,0,50,0,0,0,51,0,0,0,14,0,0,0,11,0,0,0,1,0,0,0,1,0,0,0,35,0,0,0,24,0,0,0,2,0,0,0,25,0,0,0,33,0,0,0,10,0,0,0,3,0,0,0,26,0,0,0,8,0,0,0,34,0,0,0,15,0,0,0,17,0,0,0,18,0,0,0,36,0,0,0,37,0,0,0,0,0,0,0,98,116,84,114,105,97,110,103,108,101,77,101,115,104,83,104,97,112,101,68,97,116,97,0,50,50,98,116,66,118,104,84,114,105,97,110,103,108,101,77,101,115,104,83,104,97,112,101,0,0,0,0,0,0,0,0,184,74,0,0,96,19,0,0,72,61,0,0,0,0,0,0,66,86,72,84,82,73,65,78,71,76,69,77,69,83,72,0,0,0,0,0,72,20,0,0,52,0,0,0,53,0,0,0,19,0,0,0,0,0,0,0,90,78,75,50,50,98,116,66,118,104,84,114,105,97,110,103,108,101,77,101,115,104,83,104,97,112,101,49,57,112,114,111,99,101,115,115,65,108,108,84,114,105,97,110,103,108,101,115,69,80,49,56,98,116,84,114,105,97,110,103,108,101,67,97,108,108,98,97,99,107,82,75,57,98,116,86,101,99,116,111,114,51,83,52,95,69,50,49,77,121,78,111,100,101,79,118,101,114,108,97,112,67,97,108,108,98,97,99,107,0,0,0,50,49,98,116,78,111,100,101,79,118,101,114,108,97,112,67,97,108,108,98,97,99,107,0,144,74,0,0,40,20,0,0,184,74,0,0,184,19,0,0,64,20,0,0,0,0,0,0,0,0,0,0,232,20,0,0,54,0,0,0,55,0,0,0,20,0,0,0,0,0,0,0,90,78,50,50,98,116,66,118,104,84,114,105,97,110,103,108,101,77,101,115,104,83,104,97,112,101,49,55,112,101,114,102,111,114,109,67,111,110,118,101,120,99,97,115,116,69,80,49,56,98,116,84,114,105,97,110,103,108,101,67,97,108,108,98,97,99,107,82,75,57,98,116,86,101,99,116,111,114,51,83,52,95,83,52,95,83,52,95,69,50,49,77,121,78,111,100,101,79,118,101,114,108,97,112,67,97,108,108,98,97,99,107,0,0,0,0,0,0,0,0,184,74,0,0,112,20,0,0,64,20,0,0,0,0,0,0,0,0,0,0,120,21,0,0,56,0,0,0,57,0,0,0,21,0,0,0,0,0,0,0,90,78,50,50,98,116,66,118,104,84,114,105,97,110,103,108,101,77,101,115,104,83,104,97,112,101,49,52,112,101,114,102,111,114,109,82,97,121,99,97,115,116,69,80,49,56,98,116,84,114,105,97,110,103,108,101,67,97,108,108,98,97,99,107,82,75,57,98,116,86,101,99,116,111,114,51,83,52,95,69,50,49,77,121,78,111,100,101,79,118,101,114,108,97,112,67,97,108,108,98,97,99,107,0,184,74,0,0,16,21,0,0,64,20,0,0,0,0,0,0,0,0,0,0,216,22,0,0,58,0,0,0,59,0,0,0,16,0,0,0,11,0,0,0,1,0,0,0,1,0,0,0,38,0,0,0,17,0,0,0,3,0,0,0,27,0,0,0,39,0,0,0,11,0,0,0,2,0,0,0,28,0,0,0,9,0,0,0,34,0,0,0,22,0,0,0,23,0,0,0,2,0,0,0,17,0,0,0,11,0,0,0,29,0,0,0,24,0,0,0,0,0,0,0,0,0,0,0,0,23,0,0,60,0,0,0,61,0,0,0,16,0,0,0,11,0,0,0,1,0,0,0,1,0,0,0,38,0,0,0,17,0,0,0,3,0,0,0,30,0,0,0,39,0,0,0,11,0,0,0,2,0,0,0,28,0,0,0,9,0,0,0,34,0,0,0,22,0,0,0,23,0,0,0,2,0,0,0,17,0,0,0,11,0,0,0,29,0,0,0,24,0,0,0,0,0,0,0,0,0,0,0,40,23,0,0,62,0,0,0,63,0,0,0,16,0,0,0,11,0,0,0,1,0,0,0,1,0,0,0,38,0,0,0,17,0,0,0,3,0,0,0,31,0,0,0,39,0,0,0,11,0,0,0,2,0,0,0,28,0,0,0,9,0,0,0,34,0,0,0,22,0,0,0,23,0,0,0,2,0,0,0,17,0,0,0,11,0,0,0,29,0,0,0,24,0,0,0,0,0,0,0,49,52,98,116,67,97,112,115,117,108,101,83,104,97,112,101,0,0,0,0,0,0,0,0,184,74,0,0,192,22,0,0,64,37,0,0,0,0,0,0,49,53,98,116,67,97,112,115,117,108,101,83,104,97,112,101,88,0,0,0,0,0,0,0,184,74,0,0,232,22,0,0,216,22,0,0,0,0,0,0,49,53,98,116,67,97,112,115,117,108,101,83,104,97,112,101,90,0,0,0,0,0,0,0,184,74,0,0,16,23,0,0,216,22,0,0,0,0,0,0,67,97,112,115,117,108,101,90,0,0,0,0,0,0,0,0,67,97,112,115,117,108,101,88,0,0,0,0,0,0,0,0,98,116,67,97,112,115,117,108,101,83,104,97,112,101,68,97,116,97,0,0,0,0,0,0,67,97,112,115,117,108,101,83,104,97,112,101,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,232,23,0,0,64,0,0,0,65,0,0,0,3,0,0,0,10,0,0,0,40,0,0,0,41,0,0,0,11,0,0,0,12,0,0,0,18,0,0,0,32,0,0,0,9,0,0,0,33,0,0,0,34,0,0,0,35,0,0,0,10,0,0,0,42,0,0,0,50,49,98,116,67,111,108,108,105,115,105,111,110,68,105,115,112,97,116,99,104,101,114,0,184,74,0,0,208,23,0,0,32,45,0,0,0,0,0,0,0,0,0,0,80,24,0,0,66,0,0,0,67,0,0,0,11,0,0,0,0,0,0,0,50,51,98,116,67,111,108,108,105,115,105,111,110,80,97,105,114,67,97,108,108,98,97,99,107,0,0,0,0,0,0,0,49,55,98,116,79,118,101,114,108,97,112,67,97,108,108,98,97,99,107,0,0,0,0,0,144,74,0,0,48,24,0,0,184,74,0,0,16,24,0,0,72,24,0,0,0,0,0,0,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,70,108,111,97,116,68,97,116,97,0,0,0,0,0,0,49,55,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,0,0,0,0,0,144,74,0,0,128,24,0,0,98,116,67,111,108,108,105,115,105,111,110,83,104,97,112,101,68,97,116,97,0,0,0,0,49,54,98,116,67,111,108,108,105,115,105,111,110,83,104,97,112,101,0,0,0,0,0,0,144,74,0,0,184,24,0,0,0,0,0,0,176,26,0,0,68,0,0,0,69,0,0,0,15,0,0,0,16,0,0,0,5,0,0,0,3,0,0,0,70,0,0,0,1,0,0,0,2,0,0,0,19,0,0,0,43,0,0,0,18,0,0,0,44,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,79,118,101,114,102,108,111,119,32,105,110,32,65,65,66,66,44,32,111,98,106,101,99,116,32,114,101,109,111,118,101,100,32,102,114,111,109,32,115,105,109,117,108,97,116,105,111,110,0,0,0,0,0,0,0,0,73,102,32,121,111,117,32,99,97,110,32,114,101,112,114,111,100,117,99,101,32,116,104,105,115,44,32,112,108,101,97,115,101,32,101,109,97,105,108,32,98,117,103,115,64,99,111,110,116,105,110,117,111,117,115,112,104,121,115,105,99,115,46,99,111,109,10,0,0,0,0,0,80,108,101,97,115,101,32,105,110,99,108,117,100,101,32,97,98,111,118,101,32,105,110,102,111,114,109,97,116,105,111,110,44,32,121,111,117,114,32,80,108,97,116,102,111,114,109,44,32,118,101,114,115,105,111,110,32,111,102,32,79,83,46,10,0,0,0,0,0,0,0,0,84,104,97,110,107,115,46,10,0,0,0,0,0,0,0,0,117,112,100,97,116,101,65,97,98,98,115,0,0,0,0,0,99,97,108,99,117,108,97,116,101,79,118,101,114,108,97,112,112,105,110,103,80,97,105,114,115,0,0,0,0,0,0,0,112,101,114,102,111,114,109,68,105,115,99,114,101,116,101,67,111,108,108,105,115,105,111,110,68,101,116,101,99,116,105,111,110,0,0,0,0,0,0,0,100,105,115,112,97,116,99,104,65,108,108,67,111,108,108,105,115,105,111,110,80,97,105,114,115,0,0,0,0,0,0,0,99,111,110,118,101,120,83,119,101,101,112,67,111,109,112,111,117,110,100,0,0,0,0,0,99,111,110,118,101,120,83,119,101,101,112,84,101,115,116,0,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,0,0,0,0,0,0,144,74,0,0,152,26,0,0,0,0,0,0,0,27,0,0,71,0,0,0,72,0,0,0,20,0,0,0,21,0,0,0,252,255,255,255,0,27,0,0,73,0,0,0,74,0,0,0,22,0,0,0,0,0,0,0,49,55,68,101,98,117,103,68,114,97,119,99,97,108,108,98,97,99,107,0,0,0,0,0,24,75,0,0,232,26,0,0,0,0,0,0,2,0,0,0,48,60,0,0,2,0,0,0,96,60,0,0,2,4,0,0,50,52,98,116,66,114,111,97,100,112,104,97,115,101,65,97,98,98,67,97,108,108,98,97,99,107,0,0,0,0,0,0,144,74,0,0,32,27,0,0,0,0,0,0,168,27,0,0,75,0,0,0,76,0,0,0,12,0,0,0,0,0,0,0,50,49,98,116,83,105,110,103,108,101,83,119,101,101,112,67,97,108,108,98,97,99,107,0,50,51,98,116,66,114,111,97,100,112,104,97,115,101,82,97,121,67,97,108,108,98,97,99,107,0,0,0,0,0,0,0,184,74,0,0,120,27,0,0,64,27,0,0,0,0,0,0,184,74,0,0,96,27,0,0,152,27,0,0,0,0,0,0,0,0,0,0,232,27,0,0,77,0,0,0,78,0,0,0,13,0,0,0,0,0,0,0,49,57,98,116,83,105,110,103,108,101,82,97,121,67,97,108,108,98,97,99,107,0,0,0,184,74,0,0,208,27,0,0,152,27,0,0,0,0,0,0,0,0,0,0,176,28,0,0,79,0,0,0,80,0,0,0,14,0,0,0,6,0,0,0,90,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,50,53,111,98,106,101,99,116,81,117,101,114,121,83,105,110,103,108,101,73,110,116,101,114,110,97,108,69,80,75,49,51,98,116,67,111,110,118,101,120,83,104,97,112,101,82,75,49,49,98,116,84,114,97,110,115,102,111,114,109,83,53,95,80,75,50,52,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,87,114,97,112,112,101,114,82,78,83,95,50,48,67,111,110,118,101,120,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,102,69,49,52,76,111,99,97,108,73,110,102,111,65,100,100,101,114,95,49,0,0,184,74,0,0,16,28,0,0,8,8,0,0,0,0,0,0,0,0,0,0,144,29,0,0,81,0,0,0,82,0,0,0,23,0,0,0,1,0,0,0,90,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,50,53,111,98,106,101,99,116,81,117,101,114,121,83,105,110,103,108,101,73,110,116,101,114,110,97,108,69,80,75,49,51,98,116,67,111,110,118,101,120,83,104,97,112,101,82,75,49,49,98,116,84,114,97,110,115,102,111,114,109,83,53,95,80,75,50,52,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,87,114,97,112,112,101,114,82,78,83,95,50,48,67,111,110,118,101,120,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,102,69,51,50,66,114,105,100,103,101,84,114,105,97,110,103,108,101,67,111,110,118,101,120,99,97,115,116,67,97,108,108,98,97,99,107,95,48,0,0,0,0,0,0,0,0,184,74,0,0,216,28,0,0,88,57,0,0,0,0,0,0,0,0,0,0,104,30,0,0,83,0,0,0,84,0,0,0,23,0,0,0,2,0,0,0,90,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,50,53,111,98,106,101,99,116,81,117,101,114,121,83,105,110,103,108,101,73,110,116,101,114,110,97,108,69,80,75,49,51,98,116,67,111,110,118,101,120,83,104,97,112,101,82,75,49,49,98,116,84,114,97,110,115,102,111,114,109,83,53,95,80,75,50,52,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,87,114,97,112,112,101,114,82,78,83,95,50,48,67,111,110,118,101,120,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,102,69,51,50,66,114,105,100,103,101,84,114,105,97,110,103,108,101,67,111,110,118,101,120,99,97,115,116,67,97,108,108,98,97,99,107,0,0,184,74,0,0,184,29,0,0,88,57,0,0,0,0,0,0,0,0,0,0,24,31,0,0,85,0,0,0,86,0,0,0,15,0,0,0,7,0,0,0,90,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,50,49,114,97,121,84,101,115,116,83,105,110,103,108,101,73,110,116,101,114,110,97,108,69,82,75,49,49,98,116,84,114,97,110,115,102,111,114,109,83,50,95,80,75,50,52,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,87,114,97,112,112,101,114,82,78,83,95,49,55,82,97,121,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,69,49,53,76,111,99,97,108,73,110,102,111,65,100,100,101,114,50,0,0,0,0,184,74,0,0,144,30,0,0,72,1,0,0,0,0,0,0,0,0,0,0,240,31,0,0,87,0,0,0,88,0,0,0,25,0,0,0,45,0,0,0,2,0,0,0,16,0,0,0,17,0,0,0,0,0,0,0,90,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,50,49,114,97,121,84,101,115,116,83,105,110,103,108,101,73,110,116,101,114,110,97,108,69,82,75,49,49,98,116,84,114,97,110,115,102,111,114,109,83,50,95,80,75,50,52,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,87,114,97,112,112,101,114,82,78,83,95,49,55,82,97,121,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,69,57,82,97,121,84,101,115,116,101,114,95,49,0,78,54,98,116,68,98,118,116,56,73,67,111,108,108,105,100,101,69,0,0,0,0,0,0,144,74,0,0,208,31,0,0,184,74,0,0,80,31,0,0,232,31,0,0,0,0,0,0,0,0,0,0,176,32,0,0,89,0,0,0,90,0,0,0,24,0,0,0,1,0,0,0,90,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,50,49,114,97,121,84,101,115,116,83,105,110,103,108,101,73,110,116,101,114,110,97,108,69,82,75,49,49,98,116,84,114,97,110,115,102,111,114,109,83,50,95,80,75,50,52,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,87,114,97,112,112,101,114,82,78,83,95,49,55,82,97,121,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,69,50,57,66,114,105,100,103,101,84,114,105,97,110,103,108,101,82,97,121,99,97,115,116,67,97,108,108,98,97,99,107,95,48,0,0,0,0,184,74,0,0,24,32,0,0,40,57,0,0,0,0,0,0,0,0,0,0,112,33,0,0,91,0,0,0,92,0,0,0,24,0,0,0,2,0,0,0,90,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,50,49,114,97,121,84,101,115,116,83,105,110,103,108,101,73,110,116,101,114,110,97,108,69,82,75,49,49,98,116,84,114,97,110,115,102,111,114,109,83,50,95,80,75,50,52,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,87,114,97,112,112,101,114,82,78,83,95,49,55,82,97,121,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,69,50,57,66,114,105,100,103,101,84,114,105,97,110,103,108,101,82,97,121,99,97,115,116,67,97,108,108,98,97,99,107,0,0,0,0,0,0,184,74,0,0,216,32,0,0,40,57,0,0,0,0,0,0,0,0,0,0,192,33,0,0,12,0,0,0,46,0,0,0,26,0,0,0,93,0,0,0,94,0,0,0,0,0,0,0,78,49,50,98,116,67,111,110,118,101,120,67,97,115,116,49,48,67,97,115,116,82,101,115,117,108,116,69,0,0,0,0,144,74,0,0,160,33,0,0,0,0,0,0,104,34,0,0,95,0,0,0,96,0,0,0,25,0,0,0,11,0,0,0,1,0,0,0,1,0,0,0,47,0,0,0,36,0,0,0,4,0,0,0,37,0,0,0,33,0,0,0,13,0,0,0,4,0,0,0,38,0,0,0,13,0,0,0,34,0,0,0,48,0,0,0,97,0,0,0,98,116,67,111,109,112,111,117,110,100,83,104,97,112,101,67,104,105,108,100,68,97,116,97,0,0,0,0,0,0,0,0,98,116,67,111,109,112,111,117,110,100,83,104,97,112,101,68,97,116,97,0,0,0,0,0,49,53,98,116,67,111,109,112,111,117,110,100,83,104,97,112,101,0,0,0,0,0,0,0,184,74,0,0,80,34,0,0,208,24,0,0,0,0,0,0,67,111,109,112,111,117,110,100,0,0,0,0,0,0,0,0,0,0,0,0,208,35,0,0,98,0,0,0,99,0,0,0,26,0,0,0,11,0,0,0,1,0,0,0,1,0,0,0,49,0,0,0,17,0,0,0,5,0,0,0,39,0,0,0,50,0,0,0,14,0,0,0,2,0,0,0,40,0,0,0,14,0,0,0,34,0,0,0,27,0,0,0,28,0,0,0,2,0,0,0,27,0,0,0,11,0,0,0,29,0,0,0,24,0,0,0,0,0,0,0,0,0,0,0,240,35,0,0,100,0,0,0,101,0,0,0,26,0,0,0,11,0,0,0,1,0,0,0,1,0,0,0,49,0,0,0,17,0,0,0,5,0,0,0,41,0,0,0,51,0,0,0,14,0,0,0,2,0,0,0,40,0,0,0,14,0,0,0,34,0,0,0,27,0,0,0,28,0,0,0,2,0,0,0,27,0,0,0,11,0,0,0,29,0,0,0,24,0,0,0,0,0,0,0,0,0,0,0,16,36,0,0,102,0,0,0,103,0,0,0,26,0,0,0,11,0,0,0,1,0,0,0,1,0,0,0,49,0,0,0,17,0,0,0,5,0,0,0,42,0,0,0,52,0,0,0,14,0,0,0,2,0,0,0,40,0,0,0,14,0,0,0,34,0,0,0,27,0,0,0,28,0,0,0,2,0,0,0,27,0,0,0,11,0,0,0,29,0,0,0,24,0,0,0,0,0,0,0,49,49,98,116,67,111,110,101,83,104,97,112,101,0,0,0,184,74,0,0,192,35,0,0,64,37,0,0,0,0,0,0,49,50,98,116,67,111,110,101,83,104,97,112,101,90,0,0,184,74,0,0,224,35,0,0,208,35,0,0,0,0,0,0,49,50,98,116,67,111,110,101,83,104,97,112,101,88,0,0,184,74,0,0,0,36,0,0,208,35,0,0,0,0,0,0,67,111,110,101,88,0,0,0,67,111,110,101,90,0,0,0,98,116,67,111,110,101,83,104,97,112,101,68,97,116,97,0,67,111,110,101,0,0,0,0,0,0,0,0,128,36,0,0,104,0,0,0,105,0,0,0,1,0,0,0,0,0,0,0,50,55,98,116,67,111,110,116,105,110,117,111,117,115,67,111,110,118,101,120,67,111,108,108,105,115,105,111,110,0,0,0,184,74,0,0,96,36,0,0,32,37,0,0,0,0,0,0,0,0,0,0,0,37,0,0,106,0,0,0,107,0,0,0,29,0,0,0,30,0,0,0,3,0,0,0,0,0,0,0,49,54,98,116,80,111,105,110,116,67,111,108,108,101,99,116,111,114,0,0,0,0,0,0,78,51,54,98,116,68,105,115,99,114,101,116,101,67,111,108,108,105,115,105,111,110,68,101,116,101,99,116,111,114,73,110,116,101,114,102,97,99,101,54,82,101,115,117,108,116,69,0,144,74,0,0,200,36,0,0,184,74,0,0,176,36,0,0,248,36,0,0,0,0,0,0,49,50,98,116,67,111,110,118,101,120,67,97,115,116,0,0,144,74,0,0,16,37,0,0,50,49,98,116,67,111,110,118,101,120,73,110,116,101,114,110,97,108,83,104,97,112,101,0,184,74,0,0,40,37,0,0,96,37,0,0,0,0,0,0,49,51,98,116,67,111,110,118,101,120,83,104,97,112,101,0,184,74,0,0,80,37,0,0,208,24,0,0,0,0,0,0,0,0,0,0,192,38,0,0,108,0,0,0,109,0,0,0,28,0,0,0,11,0,0,0,1,0,0,0,1,0,0,0,53,0,0,0,17,0,0,0,6,0,0,0,43,0,0,0,54,0,0,0,15,0,0,0,2,0,0,0,44,0,0,0,15,0,0,0,34,0,0,0,31,0,0,0,32,0,0,0,2,0,0,0,29,0,0,0,11,0,0,0,29,0,0,0,24,0,0,0,5,0,0,0,0,0,0,0,232,38,0,0,110,0,0,0,111,0,0,0,28,0,0,0,11,0,0,0,1,0,0,0,1,0,0,0,53,0,0,0,17,0,0,0,6,0,0,0,45,0,0,0,54,0,0,0,15,0,0,0,2,0,0,0,44,0,0,0,15,0,0,0,34,0,0,0,31,0,0,0,33,0,0,0,2,0,0,0,30,0,0,0,11,0,0,0,29,0,0,0,24,0,0,0,6,0,0,0,0,0,0,0,16,39,0,0,112,0,0,0,113,0,0,0,28,0,0,0,11,0,0,0,1,0,0,0,1,0,0,0,53,0,0,0,17,0,0,0,6,0,0,0,46,0,0,0,54,0,0,0,15,0,0,0,2,0,0,0,44,0,0,0,15,0,0,0,34,0,0,0,31,0,0,0,34,0,0,0,2,0,0,0,31,0,0,0,11,0,0,0,29,0,0,0,24,0,0,0,7,0,0,0,49,53,98,116,67,121,108,105,110,100,101,114,83,104,97,112,101,0,0,0,0,0,0,0,184,74,0,0,168,38,0,0,64,37,0,0,0,0,0,0,49,54,98,116,67,121,108,105,110,100,101,114,83,104,97,112,101,88,0,0,0,0,0,0,184,74,0,0,208,38,0,0,192,38,0,0,0,0,0,0,49,54,98,116,67,121,108,105,110,100,101,114,83,104,97,112,101,90,0,0,0,0,0,0,184,74,0,0,248,38,0,0,192,38,0,0,0,0,0,0,67,121,108,105,110,100,101,114,90,0,0,0,0,0,0,0,67,121,108,105,110,100,101,114,88,0,0,0,0,0,0,0,98,116,67,121,108,105,110,100,101,114,83,104,97,112,101,68,97,116,97,0,0,0,0,0,67,121,108,105,110,100,101,114,89,0,0,0,0,0,0,0,0,0,0,0,192,39,0,0,114,0,0,0,115,0,0,0,2,0,0,0,35,0,0,0,3,0,0,0,32,0,0,0,3,0,0,0,33,0,0,0,55,0,0,0,47,0,0,0,48,0,0,0,36,0,0,0,56,0,0,0,116,0,0,0,49,54,98,116,68,98,118,116,66,114,111,97,100,112,104,97,115,101,0,0,0,0,0,0,184,74,0,0,168,39,0,0,0,17,0,0,0,0,0,0,0,0,0,0,16,40,0,0,117,0,0,0,118,0,0,0,25,0,0,0,57,0,0,0,2,0,0,0,16,0,0,0,17,0,0,0,0,0,0,0,50,48,66,114,111,97,100,112,104,97,115,101,65,97,98,98],"i8",4,h.GLOBAL_BASE),g([84,101,115,116,101,114,0,0,184,74,0,0,248,39,0,0,232,31,0,0,0,0,0,0,0,0,0,0,96,40,0,0,119,0,0,0,120,0,0,0,25,0,0,0,58,0,0,0,2,0,0,0,16,0,0,0,17,0,0,0,0,0,0,0,49,57,66,114,111,97,100,112,104,97,115,101,82,97,121,84,101,115,116,101,114,0,0,0,184,74,0,0,72,40,0,0,232,31,0,0,0,0,0,0,0,0,0,0,176,40,0,0,121,0,0,0,122,0,0,0,37,0,0,0,59,0,0,0,2,0,0,0,16,0,0,0,17,0,0,0,0,0,0,0,49,56,98,116,68,98,118,116,84,114,101,101,67,111,108,108,105,100,101,114,0,0,0,0,184,74,0,0,152,40,0,0,232,31,0,0,0,0,0,0,0,0,0,0,48,41,0,0,123,0,0,0,124,0,0,0,49,0,0,0,50,0,0,0,16,0,0,0,51,0,0,0,51,49,98,116,68,101,102,97,117,108,116,67,111,108,108,105,115,105,111,110,67,111,110,102,105,103,117,114,97,116,105,111,110,0,0,0,0,0,0,0,50,52,98,116,67,111,108,108,105,115,105,111,110,67,111,110,102,105,103,117,114,97,116,105,111,110,0,0,0,0,0,0,144,74,0,0,8,41,0,0,184,74,0,0,224,40,0,0,40,41,0,0,0,0,0,0,0,0,0,0,184,41,0,0,125,0,0,0,126,0,0,0,4,0,0,0,0,0,0,0,78,51,49,98,116,67,111,110,118,101,120,80,108,97,110,101,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,49,48,67,114,101,97,116,101,70,117,110,99,69,0,51,48,98,116,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,67,114,101,97,116,101,70,117,110,99,0,0,0,0,0,0,0,0,144,74,0,0,136,41,0,0,184,74,0,0,88,41,0,0,176,41,0,0,0,0,0,0,0,0,0,0,16,42,0,0,127,0,0,0,128,0,0,0,5,0,0,0,0,0,0,0,78,50,54,98,116,66,111,120,66,111,120,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,49,48,67,114,101,97,116,101,70,117,110,99,69,0,0,0,0,0,0,184,74,0,0,224,41,0,0,176,41,0,0,0,0,0,0,0,0,0,0,112,42,0,0,129,0,0,0,130,0,0,0,6,0,0,0,0,0,0,0,78,51,52,98,116,83,112,104,101,114,101,84,114,105,97,110,103,108,101,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,49,48,67,114,101,97,116,101,70,117,110,99,69,0,0,0,0,0,0,184,74,0,0,56,42,0,0,176,41,0,0,0,0,0,0,0,0,0,0,208,42,0,0,131,0,0,0,132,0,0,0,7,0,0,0,0,0,0,0,78,51,50,98,116,83,112,104,101,114,101,83,112,104,101,114,101,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,49,48,67,114,101,97,116,101,70,117,110,99,69,0,0,0,0,0,0,0,0,184,74,0,0,152,42,0,0,176,41,0,0,0,0,0,0,0,0,0,0,32,43,0,0,133,0,0,0,134,0,0,0,8,0,0,0,0,0,0,0,78,49,54,98,116,69,109,112,116,121,65,108,103,111,114,105,116,104,109,49,48,67,114,101,97,116,101,70,117,110,99,69,0,0,0,0,0,0,0,0,184,74,0,0,248,42,0,0,176,41,0,0,0,0,0,0,0,0,0,0,128,43,0,0,135,0,0,0,136,0,0,0,9,0,0,0,0,0,0,0,78,50,56,98,116,67,111,109,112,111,117,110,100,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,49,55,83,119,97,112,112,101,100,67,114,101,97,116,101,70,117,110,99,69,0,0,0,0,0,184,74,0,0,72,43,0,0,176,41,0,0,0,0,0,0,0,0,0,0,224,43,0,0,137,0,0,0,138,0,0,0,10,0,0,0,0,0,0,0,78,51,54,98,116,67,111,109,112,111,117,110,100,67,111,109,112,111,117,110,100,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,49,48,67,114,101,97,116,101,70,117,110,99,69,0,0,0,0,184,74,0,0,168,43,0,0,176,41,0,0,0,0,0,0,0,0,0,0,56,44,0,0,139,0,0,0,140,0,0,0,11,0,0,0,0,0,0,0,78,50,56,98,116,67,111,109,112,111,117,110,100,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,49,48,67,114,101,97,116,101,70,117,110,99,69,0,0,0,0,184,74,0,0,8,44,0,0,176,41,0,0,0,0,0,0,0,0,0,0,160,44,0,0,141,0,0,0,142,0,0,0,12,0,0,0,0,0,0,0,78,51,51,98,116,67,111,110,118,101,120,67,111,110,99,97,118,101,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,49,55,83,119,97,112,112,101,100,67,114,101,97,116,101,70,117,110,99,69,0,0,0,0,0,0,0,0,184,74,0,0,96,44,0,0,176,41,0,0,0,0,0,0,0,0,0,0,0,45,0,0,143,0,0,0,144,0,0,0,13,0,0,0,0,0,0,0,78,51,51,98,116,67,111,110,118,101,120,67,111,110,99,97,118,101,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,49,48,67,114,101,97,116,101,70,117,110,99,69,0,0,0,0,0,0,0,184,74,0,0,200,44,0,0,176,41,0,0,0,0,0,0,49,50,98,116,68,105,115,112,97,116,99,104,101,114,0,0,144,74,0,0,16,45,0,0,0,0,0,0,128,45,0,0,145,0,0,0,146,0,0,0,4,0,0,0,1,0,0,0,60,0,0,0,0,0,0,0,49,54,98,116,69,109,112,116,121,65,108,103,111,114,105,116,104,109,0,0,0,0,0,0,50,48,98,116,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,0,0,144,74,0,0,96,45,0,0,184,74,0,0,72,45,0,0,120,45,0,0,0,0,0,0,0,0,0,0,192,45,0,0,147,0,0,0,148,0,0,0,2,0,0,0,0,0,0,0,49,53,98,116,71,106,107,67,111,110,118,101,120,67,97,115,116,0,0,0,0,0,0,0,184,74,0,0,168,45,0,0,32,37,0,0,0,0,0,0,0,0,0,0,64,46,0,0,149,0,0,0,150,0,0,0,1,0,0,0,0,0,0,0,51,48,98,116,71,106,107,69,112,97,80,101,110,101,116,114,97,116,105,111,110,68,101,112,116,104,83,111,108,118,101,114,0,0,0,0,0,0,0,0,51,48,98,116,67,111,110,118,101,120,80,101,110,101,116,114,97,116,105,111,110,68,101,112,116,104,83,111,108,118,101,114,0,0,0,0,0,0,0,0,144,74,0,0,16,46,0,0,184,74,0,0,232,45,0,0,56,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,46,0,0,151,0,0,0,152,0,0,0,5,0,0,0,0,0,0,0,49,55,98,116,71,106,107,80,97,105,114,68,101,116,101,99,116,111,114,0,0,0,0,0,51,54,98,116,68,105,115,99,114,101,116,101,67,111,108,108,105,115,105,111,110,68,101,116,101,99,116,111,114,73,110,116,101,114,102,97,99,101,0,0,144,74,0,0,144,46,0,0,184,74,0,0,120,46,0,0,184,46,0,0,0,0,0,0,0,0,0,0,8,47,0,0,153,0,0,0,154,0,0,0,38,0,0,0,39,0,0,0,4,0,0,0,0,0,0,0,49,54,98,116,77,97,110,105,102,111,108,100,82,101,115,117,108,116,0,0,0,0,0,0,184,74,0,0,240,46,0,0,248,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,51,0,0,155,0,0,0,156,0,0,0,2,0,0,0,0,0,0,0,51,51,98,116,77,105,110,107,111,119,115,107,105,80,101,110,101,116,114,97,116,105,111,110,68,101,112,116,104,83,111,108,118,101,114,0,0,0,0,0,184,74,0,0,24,51,0,0,56,46,0,0,0,0,0,0,0,0,0,0,32,52,0,0,157,0,0,0,158,0,0,0,40,0,0,0,41,0,0,0,5,0,0,0,0,0,0,0,90,78,51,51,98,116,77,105,110,107,111,119,115,107,105,80,101,110,101,116,114,97,116,105,111,110,68,101,112,116,104,83,111,108,118,101,114,49,50,99,97,108,99,80,101,110,68,101,112,116,104,69,82,50,50,98,116,86,111,114,111,110,111,105,83,105,109,112,108,101,120,83,111,108,118,101,114,80,75,49,51,98,116,67,111,110,118,101,120,83,104,97,112,101,83,52,95,82,75,49,49,98,116,84,114,97,110,115,102,111,114,109,83,55,95,82,57,98,116,86,101,99,116,111,114,51,83,57,95,83,57,95,80,49,50,98,116,73,68,101,98,117,103,68,114,97,119,69,50,48,98,116,73,110,116,101,114,109,101,100,105,97,116,101,82,101,115,117,108,116,0,0,0,0,0,0,184,74,0,0,112,51,0,0,248,36,0,0,0,0,0,0,0,0,0,0,112,52,0,0,159,0,0,0,160,0,0,0,14,0,0,0,52,0,0,0,17,0,0,0,61,0,0,0,62,0,0,0,15,0,0,0,49,52,98,116,79,112,116,105,109,105,122,101,100,66,118,104,0,0,0,0,0,0,0,0,184,74,0,0,88,52,0,0,232,56,0,0,0,0,0,0,0,0,0,0,248,52,0,0,161,0,0,0,162,0,0,0,34,0,0,0,0,0,0,0,90,78,49,52,98,116,79,112,116,105,109,105,122,101,100,66,118,104,53,98,117,105,108,100,69,80,50,51,98,116,83,116,114,105,100,105,110,103,77,101,115,104,73,110,116,101,114,102,97,99,101,98,82,75,57,98,116,86,101,99,116,111,114,51,83,52,95,69,50,48,78,111,100,101,84,114,105,97,110,103,108,101,67,97,108,108,98,97,99,107,95,48,0,0,0,0,184,74,0,0,152,52,0,0,96,60,0,0,0,0,0,0,0,0,0,0,136,53,0,0,163,0,0,0,164,0,0,0,35,0,0,0,0,0,0,0,90,78,49,52,98,116,79,112,116,105,109,105,122,101,100,66,118,104,53,98,117,105,108,100,69,80,50,51,98,116,83,116,114,105,100,105,110,103,77,101,115,104,73,110,116,101,114,102,97,99,101,98,82,75,57,98,116,86,101,99,116,111,114,51,83,52,95,69,50,57,81,117,97,110,116,105,122,101,100,78,111,100,101,84,114,105,97,110,103,108,101,67,97,108,108,98,97,99,107,0,0,0,0,0,184,74,0,0,32,53,0,0,96,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,54,0,0,165,0,0,0,166,0,0,0,18,0,0,0,16,0,0,0,42,0,0,0,53,0,0,0,54,0,0,0,55,0,0,0,43,0,0,0,56,0,0,0,44,0,0,0,63,0,0,0,45,0,0,0,19,0,0,0,57,0,0,0,64,0,0,0,65,0,0,0,0,0,0,0,50,56,98,116,72,97,115,104,101,100,79,118,101,114,108,97,112,112,105,110,103,80,97,105,114,67,97,99,104,101,0,0,184,74,0,0,8,54,0,0,24,18,0,0,0,0,0,0,0,0,0,0,216,54,0,0,167,0,0,0,168,0,0,0,18,0,0,0,0,0,0,0,90,78,50,56,98,116,72,97,115,104,101,100,79,118,101,114,108,97,112,112,105,110,103,80,97,105,114,67,97,99,104,101,51,55,114,101,109,111,118,101,79,118,101,114,108,97,112,112,105,110,103,80,97,105,114,115,67,111,110,116,97,105,110,105,110,103,80,114,111,120,121,69,80,49,55,98,116,66,114,111,97,100,112,104,97,115,101,80,114,111,120,121,80,49,50,98,116,68,105,115,112,97,116,99,104,101,114,69,49,56,82,101,109,111,118,101,80,97,105,114,67,97,108,108,98,97,99,107,0,0,0,0,0,0,0,0,184,74,0,0,80,54,0,0,72,24,0,0,0,0,0,0,0,0,0,0,112,55,0,0,169,0,0,0,170,0,0,0,19,0,0,0,0,0,0,0,90,78,50,56,98,116,72,97,115,104,101,100,79,118,101,114,108,97,112,112,105,110,103,80,97,105,114,67,97,99,104,101,49,57,99,108,101,97,110,80,114,111,120,121,70,114,111,109,80,97,105,114,115,69,80,49,55,98,116,66,114,111,97,100,112,104,97,115,101,80,114,111,120,121,80,49,50,98,116,68,105,115,112,97,116,99,104,101,114,69,49,55,67,108,101,97,110,80,97,105,114,67,97,108,108,98,97,99,107,0,0,0,184,74,0,0,0,55,0,0,72,24,0,0,0,0,0,0,10,215,163,60,0,0,0,0,0,0,0,0,48,56,0,0,171,0,0,0,172,0,0,0,26,0,0,0,11,0,0,0,1,0,0,0,1,0,0,0,66,0,0,0,17,0,0,0,7,0,0,0,1,0,0,0,33,0,0,0,14,0,0,0,2,0,0,0,19,0,0,0,7,0,0,0,34,0,0,0,22,0,0,0,46,0,0,0,2,0,0,0,36,0,0,0,11,0,0,0,29,0,0,0,24,0,0,0,8,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,50,51,98,116,80,111,108,121,104,101,100,114,97,108,67,111,110,118,101,120,83,104,97,112,101,0,0,0,0,0,0,0,184,74,0,0,16,56,0,0,64,37,0,0,0,0,0,0,0,0,0,0,232,56,0,0,173,0,0,0,174,0,0,0,14,0,0,0,52,0,0,0,17,0,0,0,61,0,0,0,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,98,116,79,112,116,105,109,105,122,101,100,66,118,104,78,111,100,101,68,97,116,97,0,0,98,116,81,117,97,110,116,105,122,101,100,66,118,104,78,111,100,101,68,97,116,97,0,0,98,116,66,118,104,83,117,98,116,114,101,101,73,110,102,111,68,97,116,97,0,0,0,0,98,116,81,117,97,110,116,105,122,101,100,66,118,104,70,108,111,97,116,68,97,116,97,0,49,52,98,116,81,117,97,110,116,105,122,101,100,66,118,104,0,0,0,0,0,0,0,0,144,74,0,0,208,56,0,0,0,0,0,0,88,57,0,0,175,0,0,0,176,0,0,0,23,0,0,0,1,0,0,0,50,53,98,116,84,114,105,97,110,103,108,101,82,97,121,99,97,115,116,67,97,108,108,98,97,99,107,0,0,0,0,0,184,74,0,0,8,57,0,0,48,60,0,0,0,0,0,0,50,56,98,116,84,114,105,97,110,103,108,101,67,111,110,118,101,120,99,97,115,116,67,97,108,108,98,97,99,107,0,0,184,74,0,0,56,57,0,0,48,60,0,0,0,0,0,0,0,0,0,0,8,58,0,0,177,0,0,0,178,0,0,0,37,0,0,0,11,0,0,0,1,0,0,0,1,0,0,0,66,0,0,0,17,0,0,0,8,0,0,0,58,0,0,0,33,0,0,0,14,0,0,0,2,0,0,0,19,0,0,0,7,0,0,0,34,0,0,0,22,0,0,0,47,0,0,0,2,0,0,0,38,0,0,0,11,0,0,0,59,0,0,0,48,0,0,0,8,0,0,0,60,0,0,0,61,0,0,0,39,0,0,0,49,0,0,0,62,0,0,0,40,0,0,0,2,0,0,0,41,0,0,0,49,53,98,116,84,114,105,97,110,103,108,101,83,104,97,112,101,0,0,0,0,0,0,0,184,74,0,0,240,57,0,0,48,56,0,0,0,0,0,0,84,114,105,97,110,103,108,101,0,0,0,0,0,0,0,0,0,0,0,0,144,58,0,0,179,0,0,0,180,0,0,0,50,0,0,0,67,0,0,0,105,115,108,97,110,100,85,110,105,111,110,70,105,110,100,65,110,100,81,117,105,99,107,83,111,114,116,0,0,0,0,0,112,114,111,99,101,115,115,73,115,108,97,110,100,115,0,0,50,53,98,116,83,105,109,117,108,97,116,105,111,110,73,115,108,97,110,100,77,97,110,97,103,101,114,0,0,0,0,0,144,74,0,0,112,58,0,0,0,0,0,0,16,59,0,0,181,0,0,0,182,0,0,0,42,0,0,0,11,0,0,0,1,0,0,0,1,0,0,0,66,0,0,0,17,0,0,0,9,0,0,0,63,0,0,0,33,0,0,0,16,0,0,0,8,0,0,0,19,0,0,0,7,0,0,0,34,0,0,0,51,0,0,0,52,0,0,0,2,0,0,0,43,0,0,0,11,0,0,0,29,0,0,0,24,0,0,0,0,0,0,0,49,51,98,116,83,112,104,101,114,101,83,104,97,112,101,0,184,74,0,0,0,59,0,0,64,37,0,0,0,0,0,0,0,0,0,0,104,59,0,0,183,0,0,0,184,0,0,0,6,0,0,0,2,0,0,0,68,0,0,0,0,0,0,0,51,50,98,116,83,112,104,101,114,101,83,112,104,101,114,101,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,0,0,0,0,0,0,184,74,0,0,64,59,0,0,168,62,0,0,0,0,0,0,0,0,0,0,192,59,0,0,185,0,0,0,186,0,0,0,7,0,0,0,3,0,0,0,69,0,0,0,0,0,0,0,51,52,98,116,83,112,104,101,114,101,84,114,105,97,110,103,108,101,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,0,0,0,0,184,74,0,0,152,59,0,0,168,62,0,0,0,0,0,0,0,0,0,0,8,60,0,0,187,0,0,0,188,0,0,0,3,0,0,0,0,0,0,0,50,50,98,116,83,117,98,115,105,109,112,108,101,120,67,111,110,118,101,120,67,97,115,116,0,0,0,0,0,0,0,0,184,74,0,0,232,59,0,0,32,37,0,0,0,0,0,0,49,56,98,116,84,114,105,97,110,103,108,101,67,97,108,108,98,97,99,107,0,0,0,0,144,74,0,0,24,60,0,0,51,49,98,116,73,110,116,101,114,110,97,108,84,114,105,97,110,103,108,101,73,110,100,101,120,67,97,108,108,98,97,99,107,0,0,0,0,0,0,0,144,74,0,0,56,60,0,0,0,0,0,0,200,60,0,0,189,0,0,0,190,0,0,0,44,0,0,0,1,0,0,0,2,0,0,0,70,0,0,0,71,0,0,0,64,0,0,0,72,0,0,0,73,0,0,0,65,0,0,0,53,0,0,0,54,0,0,0,66,0,0,0,20,0,0,0,0,0,0,0,49,52,98,116,84,114,105,97,110,103,108,101,77,101,115,104,0,0,0,0,0,0,0,0,184,74,0,0,176,60,0,0,248,70,0,0,0,0,0,0,0,0,0,0,72,61,0,0,191,0,0,0,192,0,0,0,14,0,0,0,11,0,0,0,1,0,0,0,1,0,0,0,74,0,0,0,24,0,0,0,2,0,0,0,67,0,0,0,33,0,0,0,10,0,0,0,3,0,0,0,68,0,0,0,21,0,0,0,34,0,0,0,45,0,0,0,17,0,0,0,18,0,0,0,0,0,0,0,49,57,98,116,84,114,105,97,110,103,108,101,77,101,115,104,83,104,97,112,101,0,0,0,184,74,0,0,48,61,0,0,192,64,0,0,0,0,0,0,84,82,73,65,78,71,76,69,77,69,83,72,0,0,0,0,0,0,0,0,152,61,0,0,193,0,0,0,194,0,0,0,46,0,0,0,0,0,0,0,50,49,83,117,112,112,111,114,116,86,101,114,116,101,120,67,97,108,108,98,97,99,107,0,184,74,0,0,128,61,0,0,48,60,0,0,0,0,0,0,0,0,0,0,40,62,0,0,195,0,0,0,196,0,0,0,47,0,0,0,0,0,0,0,90,78,75,49,57,98,116,84,114,105,97,110,103,108,101,77,101,115,104,83,104,97,112,101,49,57,112,114,111,99,101,115,115,65,108,108,84,114,105,97,110,103,108,101,115,69,80,49,56,98,116,84,114,105,97,110,103,108,101,67,97,108,108,98,97,99,107,82,75,57,98,116,86,101,99,116,111,114,51,83,52,95,69,49,54,70,105,108,116,101,114,101,100,67,97,108,108,98,97,99,107,0,0,0,184,74,0,0,192,61,0,0,96,60,0,0,0,0,0,0,0,0,0,0,112,62,0,0,197,0,0,0,198,0,0,0,8,0,0,0,0,0,0,0,50,50,83,112,104,101,114,101,84,114,105,97,110,103,108,101,68,101,116,101,99,116,111,114,0,0,0,0,0,0,0,0,184,74,0,0,80,62,0,0,184,46,0,0,0,0,0,0,51,48,98,116,65,99,116,105,118,97,116,105,110,103,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,0,0,0,0,0,0,0,0,184,74,0,0,128,62,0,0,120,45,0,0,0,0,0,0,0,0,0,0,248,62,0,0,199,0,0,0,200,0,0,0,9,0,0,0,4,0,0,0,75,0,0,0,0,0,0,0,50,54,98,116,66,111,120,66,111,120,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,0,0,0,0,184,74,0,0,216,62,0,0,168,62,0,0,0,0,0,0,0,0,0,0,56,63,0,0,201,0,0,0,202,0,0,0,10,0,0,0,0,0,0,0,49,54,98,116,66,111,120,66,111,120,68,101,116,101,99,116,111,114,0,0,0,0,0,0,184,74,0,0,32,63,0,0,184,46,0,0,0,0,0,0,0,0,0,0,136,63,0,0,203,0,0,0,204,0,0,0,11,0,0,0,5,0,0,0,76,0,0,0,0,0,0,0,50,56,98,116,67,111,109,112,111,117,110,100,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,0,0,184,74,0,0,104,63,0,0,168,62,0,0,0,0,0,0,0,0,0,0,224,63,0,0,205,0,0,0,206,0,0,0,25,0,0,0,77,0,0,0,2,0,0,0,16,0,0,0,17,0,0,0,0,0,0,0,50,50,98,116,67,111,109,112,111,117,110,100,76,101,97,102,67,97,108,108,98,97,99,107,0,0,0,0,0,0,0,0,184,74,0,0,192,63,0,0,232,31,0,0,0,0,0,0,0,0,0,0,56,64,0,0,207,0,0,0,208,0,0,0,12,0,0,0,6,0,0,0,78,0,0,0,0,0,0,0,51,54,98,116,67,111,109,112,111,117,110,100,67,111,109,112,111,117,110,100,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,0,0,184,74,0,0,16,64,0,0,168,62,0,0,0,0,0,0,0,0,0,0,152,64,0,0,209,0,0,0,210,0,0,0,55,0,0,0,79,0,0,0,2,0,0,0,16,0,0,0,17,0,0,0,0,0,0,0,51,48,98,116,67,111,109,112,111,117,110,100,67,111,109,112,111,117,110,100,76,101,97,102,67,97,108,108,98,97,99,107,0,0,0,0,0,0,0,0,184,74,0,0,112,64,0,0,232,31,0,0,0,0,0,0,49,52,98,116,67,111,110,99,97,118,101,83,104,97,112,101,0,0,0,0,0,0,0,0,184,74,0,0,168,64,0,0,208,24,0,0,0,0,0,0,0,0,0,0,48,65,0,0,211,0,0,0,212,0,0,0,13,0,0,0,7,0,0,0,80,0,0,0,0,0,0,0,0,0,0,0,96,65,0,0,213,0,0,0,214,0,0,0,48,0,0,0,0,0,0,0,51,51,98,116,67,111,110,118,101,120,67,111,110,99,97,118,101,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,0,0,0,0,0,184,74,0,0,8,65,0,0,168,62,0,0,0,0,0,0,50,52,98,116,67,111,110,118,101,120,84,114,105,97,110,103,108,101,67,97,108,108,98,97,99,107,0,0,0,0,0,0,184,74,0,0,64,65,0,0,48,60,0,0,0,0,0,0,0,0,0,0,40,66,0,0,215,0,0,0,216,0,0,0,49,0,0,0,0,0,0,0,90,78,51,51,98,116,67,111,110,118,101,120,67,111,110,99,97,118,101,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,50,49,99,97,108,99,117,108,97,116,101,84,105,109,101,79,102,73,109,112,97,99,116,69,80,49,55,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,83,49,95,82,75,49,54,98,116,68,105,115,112,97,116,99,104,101,114,73,110,102,111,80,49,54,98,116,77,97,110,105,102,111,108,100,82,101,115,117,108,116,69,51,49,76,111,99,97,108,84,114,105,97,110,103,108,101,83,112,104,101,114,101,67,97,115,116,67,97,108,108,98,97,99,107,0,0,0,184,74,0,0,136,65,0,0,48,60,0,0,0,0,0,0,0,0,0,0,200,66,0,0,217,0,0,0,218,0,0,0,17,0,0,0,0,0,0,0,0,0,0,0,144,66,0,0,219,0,0,0,220,0,0,0,14,0,0,0,8,0,0,0,81,0,0,0,0,0,0,0,50,51,98,116,67,111,110,118,101,120,67,111,110,118,101,120,65,108,103,111,114,105,116,104,109,0,0,0,0,0,0,0,184,74,0,0,112,66,0,0,168,62,0,0,0,0,0,0,78,50,51,98,116,67,111,110,118,101,120,67,111,110,118,101,120,65,108,103,111,114,105,116,104,109,49,48,67,114,101,97,116,101,70,117,110,99,69,0,184,74,0,0,160,66,0,0,176,41,0,0,0,0,0,0,0,0,0,0,24,67,0,0,221,0,0,0,222,0,0,0,38,0,0,0,39,0,0,0,6,0,0,0,0,0,0,0,50,52,98,116,80,101,114,116,117,114,98,101,100,67,111,110,116,97,99,116,82,101,115,117,108,116,0,0,0,0,0,0,184,74,0,0,248,66,0,0,8,47,0,0,0,0,0,0,0,0,0,0,216,67,0,0,223,0,0,0,224,0,0,0,56,0,0,0,57,0,0,0,7,0,0,0,0,0,0,0,90,78,50,51,98,116,67,111,110,118,101,120,67,111,110,118,101,120,65,108,103,111,114,105,116,104,109,49,54,112,114,111,99,101,115,115,67,111,108,108,105,115,105,111,110,69,80,75,50,52,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,87,114,97,112,112,101,114,83,50,95,82,75,49,54,98,116,68,105,115,112,97,116,99,104,101,114,73,110,102,111,80,49,54,98,116,77,97,110,105,102,111,108,100,82,101,115,117,108,116,69,50,49,98,116,87,105,116,104,111,117,116,77,97,114,103,105,110,82,101,115,117,108,116,95,48,0,0,184,74,0,0,72,67,0,0,248,36,0,0,0,0,0,0,0,0,0,0,144,68,0,0,225,0,0,0,226,0,0,0,58,0,0,0,59,0,0,0,8,0,0,0,0,0,0,0,90,78,50,51,98,116,67,111,110,118,101,120,67,111,110,118,101,120,65,108,103,111,114,105,116,104,109,49,54,112,114,111,99,101,115,115,67,111,108,108,105,115,105,111,110,69,80,75,50,52,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,87,114,97,112,112,101,114,83,50,95,82,75,49,54,98,116,68,105,115,112,97,116,99,104,101,114,73,110,102,111,80,49,54,98,116,77,97,110,105,102,111,108,100,82,101,115,117,108,116,69,49,51,98,116,68,117,109,109,121,82,101,115,117,108,116,0,0,0,0,184,74,0,0,8,68,0,0,248,36,0,0,0,0,0,0,0,0,0,0,232,68,0,0,227,0,0,0,228,0,0,0,15,0,0,0,9,0,0,0,82,0,0,0,0,0,0,0,51,49,98,116,67,111,110,118,101,120,80,108,97,110,101,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,0,0,0,0,0,0,0,184,74,0,0,192,68,0,0,120,45,0,0,0,0,0,0,0,0,0,0,32,69,0,0,229,0,0,0,230,0,0,0,49,56,98,116,67,111,110,118,101,120,80,111,108,121,104,101,100,114,111,110,0,0,0,0,144,74,0,0,8,69,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,69,0,0,231,0,0,0,232,0,0,0,22,0,0,0,23,0,0,0,69,0,0,0,0,0,0,0,50,51,98,116,72,97,115,104,101,100,83,105,109,112,108,101,80,97,105,114,67,97,99,104,101,0,0,0,0,0,0,0,144,74,0,0,128,69,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,98,116,73,110,116,73,110,100,101,120,68,97,116,97,0,0,98,116,83,104,111,114,116,73,110,116,73,110,100,101,120,84,114,105,112,108,101,116,68,97,116,97,0,0,0,0,0,0,98,116,67,104,97,114,73,110,100,101,120,84,114,105,112,108,101,116,68,97,116,97,0,0,98,116,86,101,99,116,111,114,51,70,108,111,97,116,68,97,116,97,0,0,0,0,0,0,98,116,86,101,99,116,111,114,51,68,111,117,98,108,101,68,97,116,97,0,0,0,0,0,98,116,77,101,115,104,80,97,114,116,68,97,116,97,0,0,98,116,83,116,114,105,100,105,110,103,77,101,115,104,73,110,116,101,114,102,97,99,101,68,97,116,97,0,0,0,0,0,50,51,98,116,83,116,114,105,100,105,110,103,77,101,115,104,73,110,116,101,114,102,97,99,101,0,0,0,0,0,0,0,144,74,0,0,104,70,0,0,0,0,0,0,248,70,0,0,233,0,0,0,234,0,0,0,44,0,0,0,1,0,0,0,2,0,0,0,70,0,0,0,71,0,0,0,64,0,0,0,83,0,0,0,84,0,0,0,65,0,0,0,53,0,0,0,54,0,0,0,66,0,0,0,20,0,0,0,0,0,0,0,50,54,98,116,84,114,105,97,110,103,108,101,73,110,100,101,120,86,101,114,116,101,120,65,114,114,97,121,0,0,0,0,184,74,0,0,216,70,0,0,136,70,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,111,111,116,0,0,0,0,32,71,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,117,110,99,97,117,103,104,116,0,0,0,0,0,0,0,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,58,32,37,115,0,0,0,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,0,0,0,0,0,0,0,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,102,111,114,101,105,103,110,32,101,120,99,101,112,116,105,111,110,0,0,0,116,101,114,109,105,110,97,116,105,110,103,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,116,104,114,101,97,100,95,111,110,99,101,32,102,97,105,108,117,114,101,32,105,110,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,95,102,97,115,116,40,41,0,0,0,0,0,0,0,0,99,97,110,110,111,116,32,99,114,101,97,116,101,32,112,116,104,114,101,97,100,32,107,101,121,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,0,0,0,0,0,0,99,97,110,110,111,116,32,122,101,114,111,32,111,117,116,32,116,104,114,101,97,100,32,118,97,108,117,101,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,0,0,0,0,0,0,0,0,73,0,0,235,0,0,0,236,0,0,0,70,0,0,0,0,0,0,0,115,116,100,58,58,98,97,100,95,97,108,108,111,99,0,0,83,116,57,98,97,100,95,97,108,108,111,99,0,0,0,0,184,74,0,0,240,72,0,0,136,73,0,0,0,0,0,0,116,101,114,109,105,110,97,116,101,95,104,97,110,100,108,101,114,32,117,110,101,120,112,101,99,116,101,100,108,121,32,114,101,116,117,114,110,101,100,0,116,101,114,109,105,110,97,116,101,95,104,97,110,100,108,101,114,32,117,110,101,120,112,101,99,116,101,100,108,121,32,116,104,114,101,119,32,97,110,32,101,120,99,101,112,116,105,111,110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,116,57,101,120,99,101,112,116,105,111,110,0,0,0,0,144,74,0,0,120,73,0,0,83,116,57,116,121,112,101,95,105,110,102,111,0,0,0,0,144,74,0,0,144,73,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,54,95,95,115,104,105,109,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,0,0,0,0,184,74,0,0,168,73,0,0,160,73,0,0,0,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,0,0,0,184,74,0,0,224,73,0,0,208,73,0,0,0,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,57,95,95,112,111,105,110,116,101,114,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,112,98,97,115,101,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,0,0,0,184,74,0,0,64,74,0,0,208,73,0,0,0,0,0,0,184,74,0,0,24,74,0,0,104,74,0,0,0,0,0,0,0,0,0,0,8,74,0,0,237,0,0,0,238,0,0,0,239,0,0,0,240,0,0,0,24,0,0,0,4,0,0,0,16,0,0,0,50,0,0,0,0,0,0,0,0,75,0,0,237,0,0,0,241,0,0,0,239,0,0,0,240,0,0,0,24,0,0,0,5,0,0,0,17,0,0,0,51,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,48,95,95,115,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,184,74,0,0,216,74,0,0,8,74,0,0,0,0,0,0,0,0,0,0,96,75,0,0,237,0,0,0,242,0,0,0,239,0,0,0,240,0,0,0,24,0,0,0,6,0,0,0,18,0,0,0,52,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,49,95,95,118,109,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,0,0,184,74,0,0,56,75,0,0,8,74,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"i8",4,h.GLOBAL_BASE+10240);var mi=h.alignMemory(g(12,"i8",2),8);_(mi%8==0);var yi=ri;t.Me=Nn;var ki=ni,gi=0;function Ci(i){return L[gi>>2]=i,i}var ji={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function Si(){return!!Si.uncaught_exception}var xi=0;t.Ee=ea;var Mi=fi;t.Te=kr;var Ei=si,Ti={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"},Li={splitPath:function(i){return/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(i).slice(1)},normalizeArray:function(i,t){for(var e=0,n=i.length-1;n>=0;n--){var r=i[n];"."===r?i.splice(n,1):".."===r?(i.splice(n,1),e++):e&&(i.splice(n,1),e--)}if(t)for(;e--;e)i.unshift("..");return i},normalize:function(i){var t="/"===i.charAt(0),e="/"===i.substr(-1);return(i=Li.normalizeArray(i.split("/").filter(function(i){return!!i}),!t).join("/"))||t||(i="."),i&&e&&(i+="/"),(t?"/":"")+i},dirname:function(i){var t=Li.splitPath(i),e=t[0],n=t[1];return e||n?(n&&(n=n.substr(0,n.length-1)),e+n):"."},basename:function(i){if("/"===i)return"/";var t=i.lastIndexOf("/");return-1===t?i:i.substr(t+1)},extname:function(i){return Li.splitPath(i)[3]},join:function(){var i=Array.prototype.slice.call(arguments,0);return Li.normalize(i.join("/"))},join2:function(i,t){return Li.normalize(i+"/"+t)},resolve:function(){for(var i="",t=!1,e=arguments.length-1;e>=-1&&!t;e--){var n=e>=0?arguments[e]:Ni.cwd();if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");if(!n)return"";i=n+"/"+i,t="/"===n.charAt(0)}return(t?"/":"")+(i=Li.normalizeArray(i.split("/").filter(function(i){return!!i}),!t).join("/"))||"."},relative:function(i,t){function e(i){for(var t=0;t<i.length&&""===i[t];t++);for(var e=i.length-1;e>=0&&""===i[e];e--);return t>e?[]:i.slice(t,e-t+1)}i=Li.resolve(i).substr(1),t=Li.resolve(t).substr(1);for(var n=e(i.split("/")),r=e(t.split("/")),o=Math.min(n.length,r.length),f=o,a=0;a<o;a++)if(n[a]!==r[a]){f=a;break}var s=[];for(a=f;a<n.length;a++)s.push("..");return(s=s.concat(r.slice(f))).join("/")}},Ii={ttys:[],init:function(){},shutdown:function(){},register:function(i,t){Ii.ttys[i]={input:[],output:[],ops:t},Ni.registerDevice(i,Ii.stream_ops)},stream_ops:{open:function(i){var t=Ii.ttys[i.node.rdev];if(!t)throw new Ni.ErrnoError(ji.ENODEV);i.tty=t,i.seekable=!1},close:function(i){i.tty.output.length&&i.tty.ops.put_char(i.tty,10)},read:function(i,t,e,n,r){if(!i.tty||!i.tty.ops.get_char)throw new Ni.ErrnoError(ji.ENXIO);for(var o=0,f=0;f<n;f++){var a;try{a=i.tty.ops.get_char(i.tty)}catch(i){throw new Ni.ErrnoError(ji.EIO)}if(void 0===a&&0===o)throw new Ni.ErrnoError(ji.EAGAIN);if(null==a)break;o++,t[e+f]=a}return o&&(i.node.timestamp=Date.now()),o},write:function(i,t,e,n,r){if(!i.tty||!i.tty.ops.put_char)throw new Ni.ErrnoError(ji.ENXIO);for(var o=0;o<n;o++)try{i.tty.ops.put_char(i.tty,t[e+o])}catch(i){throw new Ni.ErrnoError(ji.EIO)}return n&&(i.node.timestamp=Date.now()),o}},default_tty_ops:{get_char:function(i){if(!i.input.length){var t=null;if(r){if(!(t=process.stdin.read()))return process.stdin._readableState&&process.stdin._readableState.ended?null:void 0}else"undefined"!=typeof window&&"function"==typeof window.prompt?null!==(t=window.prompt("Input: "))&&(t+="\n"):"function"==typeof readline&&null!==(t=readline())&&(t+="\n");if(!t)return null;i.input=Z(t,!0)}return i.input.shift()},put_char:function(i,e){null===e||10===e?(t.print(i.output.join("")),i.output=[]):i.output.push(Ii.utf8.processCChar(e))}},default_tty1_ops:{put_char:function(i,e){null===e||10===e?(t.printErr(i.output.join("")),i.output=[]):i.output.push(Ii.utf8.processCChar(e))}}},Ai={ops_table:null,mount:function(i){return Ai.createNode(null,"/",16895,0)},createNode:function(i,t,e,n){if(Ni.isBlkdev(e)||Ni.isFIFO(e))throw new Ni.ErrnoError(ji.EPERM);Ai.ops_table||(Ai.ops_table={dir:{node:{getattr:Ai.node_ops.getattr,setattr:Ai.node_ops.setattr,lookup:Ai.node_ops.lookup,mknod:Ai.node_ops.mknod,rename:Ai.node_ops.rename,unlink:Ai.node_ops.unlink,rmdir:Ai.node_ops.rmdir,readdir:Ai.node_ops.readdir,symlink:Ai.node_ops.symlink},stream:{llseek:Ai.stream_ops.llseek}},file:{node:{getattr:Ai.node_ops.getattr,setattr:Ai.node_ops.setattr},stream:{llseek:Ai.stream_ops.llseek,read:Ai.stream_ops.read,write:Ai.stream_ops.write,allocate:Ai.stream_ops.allocate,mmap:Ai.stream_ops.mmap}},link:{node:{getattr:Ai.node_ops.getattr,setattr:Ai.node_ops.setattr,readlink:Ai.node_ops.readlink},stream:{}},chrdev:{node:{getattr:Ai.node_ops.getattr,setattr:Ai.node_ops.setattr},stream:Ni.chrdev_stream_ops}});var r=Ni.createNode(i,t,e,n);return Ni.isDir(r.mode)?(r.node_ops=Ai.ops_table.dir.node,r.stream_ops=Ai.ops_table.dir.stream,r.contents={}):Ni.isFile(r.mode)?(r.node_ops=Ai.ops_table.file.node,r.stream_ops=Ai.ops_table.file.stream,r.usedBytes=0,r.contents=null):Ni.isLink(r.mode)?(r.node_ops=Ai.ops_table.link.node,r.stream_ops=Ai.ops_table.link.stream):Ni.isChrdev(r.mode)&&(r.node_ops=Ai.ops_table.chrdev.node,r.stream_ops=Ai.ops_table.chrdev.stream),r.timestamp=Date.now(),i&&(i.contents[t]=r),r},getFileDataAsRegularArray:function(i){if(i.contents&&i.contents.subarray){for(var t=[],e=0;e<i.usedBytes;++e)t.push(i.contents[e]);return t}return i.contents},getFileDataAsTypedArray:function(i){return i.contents&&i.contents.subarray?i.contents.subarray(0,i.usedBytes):new Uint8Array(i.contents)},expandFileStorage:function(i,t){if(i.contents&&i.contents.subarray&&t>i.contents.length&&(i.contents=Ai.getFileDataAsRegularArray(i),i.usedBytes=i.contents.length),!i.contents||i.contents.subarray){var e=i.contents?i.contents.buffer.byteLength:0;if(e>=t)return;t=Math.max(t,e*(e<1048576?2:1.125)|0),0!=e&&(t=Math.max(t,256));var n=i.contents;return i.contents=new Uint8Array(t),void(i.usedBytes>0&&i.contents.set(n.subarray(0,i.usedBytes),0))}for(!i.contents&&t>0&&(i.contents=[]);i.contents.length<t;)i.contents.push(0)},resizeFileStorage:function(i,t){if(i.usedBytes!=t){if(0==t)return i.contents=null,void(i.usedBytes=0);if(!i.contents||i.contents.subarray){var e=i.contents;return i.contents=new Uint8Array(new ArrayBuffer(t)),e&&i.contents.set(e.subarray(0,Math.min(t,i.usedBytes))),void(i.usedBytes=t)}if(i.contents||(i.contents=[]),i.contents.length>t)i.contents.length=t;else for(;i.contents.length<t;)i.contents.push(0);i.usedBytes=t}},node_ops:{getattr:function(i){var t={};return t.dev=Ni.isChrdev(i.mode)?i.id:1,t.ino=i.id,t.mode=i.mode,t.nlink=1,t.uid=0,t.gid=0,t.rdev=i.rdev,Ni.isDir(i.mode)?t.size=4096:Ni.isFile(i.mode)?t.size=i.usedBytes:Ni.isLink(i.mode)?t.size=i.link.length:t.size=0,t.atime=new Date(i.timestamp),t.mtime=new Date(i.timestamp),t.ctime=new Date(i.timestamp),t.blksize=4096,t.blocks=Math.ceil(t.size/t.blksize),t},setattr:function(i,t){void 0!==t.mode&&(i.mode=t.mode),void 0!==t.timestamp&&(i.timestamp=t.timestamp),void 0!==t.size&&Ai.resizeFileStorage(i,t.size)},lookup:function(i,t){throw Ni.genericErrors[ji.ENOENT]},mknod:function(i,t,e,n){return Ai.createNode(i,t,e,n)},rename:function(i,t,e){if(Ni.isDir(i.mode)){var n;try{n=Ni.lookupNode(t,e)}catch(i){}if(n)for(var r in n.contents)throw new Ni.ErrnoError(ji.ENOTEMPTY)}delete i.parent.contents[i.name],i.name=e,t.contents[e]=i,i.parent=t},unlink:function(i,t){delete i.contents[t]},rmdir:function(i,t){var e=Ni.lookupNode(i,t);for(var n in e.contents)throw new Ni.ErrnoError(ji.ENOTEMPTY);delete i.contents[t]},readdir:function(i){var t=[".",".."];for(var e in i.contents)i.contents.hasOwnProperty(e)&&t.push(e);return t},symlink:function(i,t,e){var n=Ai.createNode(i,t,41471,0);return n.link=e,n},readlink:function(i){if(!Ni.isLink(i.mode))throw new Ni.ErrnoError(ji.EINVAL);return i.link}},stream_ops:{read:function(i,t,e,n,r){var o=i.node.contents;if(r>=i.node.usedBytes)return 0;var f=Math.min(i.node.usedBytes-r,n);if(_(f>=0),f>8&&o.subarray)t.set(o.subarray(r,r+f),e);else for(var a=0;a<f;a++)t[e+a]=o[r+a];return f},write:function(i,t,e,n,r,o){if(!n)return 0;var f=i.node;if(f.timestamp=Date.now(),t.subarray&&(!f.contents||f.contents.subarray)){if(o)return f.contents=t.subarray(e,e+n),f.usedBytes=n,n;if(0===f.usedBytes&&0===r)return f.contents=new Uint8Array(t.subarray(e,e+n)),f.usedBytes=n,n;if(r+n<=f.usedBytes)return f.contents.set(t.subarray(e,e+n),r),n}if(Ai.expandFileStorage(f,r+n),f.contents.subarray&&t.subarray)f.contents.set(t.subarray(e,e+n),r);else for(var a=0;a<n;a++)f.contents[r+a]=t[e+a];return f.usedBytes=Math.max(f.usedBytes,r+n),n},llseek:function(i,t,e){var n=t;if(1===e?n+=i.position:2===e&&Ni.isFile(i.node.mode)&&(n+=i.node.usedBytes),n<0)throw new Ni.ErrnoError(ji.EINVAL);return i.ungotten=[],i.position=n,n},allocate:function(i,t,e){Ai.expandFileStorage(i.node,t+e),i.node.usedBytes=Math.max(i.node.usedBytes,t+e)},mmap:function(i,t,e,n,r,o,f){if(!Ni.isFile(i.node.mode))throw new Ni.ErrnoError(ji.ENODEV);var a,s,c=i.node.contents;if(2&f||c.buffer!==t&&c.buffer!==t.buffer){if((r>0||r+n<i.node.usedBytes)&&(c=c.subarray?c.subarray(r,r+n):Array.prototype.slice.call(c,r,r+n)),s=!0,!(a=Qi(n)))throw new Ni.ErrnoError(ji.ENOMEM);t.set(c,a)}else s=!1,a=c.byteOffset;return{ptr:a,allocated:s}}}},Di={isWindows:!1,staticInit:function(){Di.isWindows=!!process.platform.match(/^win/)},mount:function(i){return _(r),Di.createNode(null,"/",Di.getMode(i.opts.root),0)},createNode:function(i,t,e,n){if(!Ni.isDir(e)&&!Ni.isFile(e)&&!Ni.isLink(e))throw new Ni.ErrnoError(ji.EINVAL);var r=Ni.createNode(i,t,e);return r.node_ops=Di.node_ops,r.stream_ops=Di.stream_ops,r},getMode:function(i){var t;try{t=et.lstatSync(i),Di.isWindows&&(t.mode=t.mode|(146&t.mode)>>1)}catch(i){if(!i.code)throw i;throw new Ni.ErrnoError(ji[i.code])}return t.mode},realPath:function(i){for(var t=[];i.parent!==i;)t.push(i.name),i=i.parent;return t.push(i.mount.opts.root),t.reverse(),Li.join.apply(null,t)},flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:function(i){return i in Di.flagsToPermissionStringMap?Di.flagsToPermissionStringMap[i]:i},node_ops:{getattr:function(i){var t,e=Di.realPath(i);try{t=et.lstatSync(e)}catch(i){if(!i.code)throw i;throw new Ni.ErrnoError(ji[i.code])}return Di.isWindows&&!t.blksize&&(t.blksize=4096),Di.isWindows&&!t.blocks&&(t.blocks=(t.size+t.blksize-1)/t.blksize|0),{dev:t.dev,ino:t.ino,mode:t.mode,nlink:t.nlink,uid:t.uid,gid:t.gid,rdev:t.rdev,size:t.size,atime:t.atime,mtime:t.mtime,ctime:t.ctime,blksize:t.blksize,blocks:t.blocks}},setattr:function(i,t){var e=Di.realPath(i);try{if(void 0!==t.mode&&(et.chmodSync(e,t.mode),i.mode=t.mode),void 0!==t.timestamp){var n=new Date(t.timestamp);et.utimesSync(e,n,n)}void 0!==t.size&&et.truncateSync(e,t.size)}catch(i){if(!i.code)throw i;throw new Ni.ErrnoError(ji[i.code])}},lookup:function(i,t){var e=Li.join2(Di.realPath(i),t),n=Di.getMode(e);return Di.createNode(i,t,n)},mknod:function(i,t,e,n){var r=Di.createNode(i,t,e,n),o=Di.realPath(r);try{Ni.isDir(r.mode)?et.mkdirSync(o,r.mode):et.writeFileSync(o,"",{mode:r.mode})}catch(i){if(!i.code)throw i;throw new Ni.ErrnoError(ji[i.code])}return r},rename:function(i,t,e){var n=Di.realPath(i),r=Li.join2(Di.realPath(t),e);try{et.renameSync(n,r)}catch(i){if(!i.code)throw i;throw new Ni.ErrnoError(ji[i.code])}},unlink:function(i,t){var e=Li.join2(Di.realPath(i),t);try{et.unlinkSync(e)}catch(i){if(!i.code)throw i;throw new Ni.ErrnoError(ji[i.code])}},rmdir:function(i,t){var e=Li.join2(Di.realPath(i),t);try{et.rmdirSync(e)}catch(i){if(!i.code)throw i;throw new Ni.ErrnoError(ji[i.code])}},readdir:function(i){var t=Di.realPath(i);try{return et.readdirSync(t)}catch(i){if(!i.code)throw i;throw new Ni.ErrnoError(ji[i.code])}},symlink:function(i,t,e){var n=Li.join2(Di.realPath(i),t);try{et.symlinkSync(e,n)}catch(i){if(!i.code)throw i;throw new Ni.ErrnoError(ji[i.code])}},readlink:function(i){var t=Di.realPath(i);try{return et.readlinkSync(t)}catch(i){if(!i.code)throw i;throw new Ni.ErrnoError(ji[i.code])}}},stream_ops:{open:function(i){var t=Di.realPath(i.node);try{Ni.isFile(i.node.mode)&&(i.nfd=et.openSync(t,Di.flagsToPermissionString(i.flags)))}catch(i){if(!i.code)throw i;throw new Ni.ErrnoError(ji[i.code])}},close:function(i){try{Ni.isFile(i.node.mode)&&i.nfd&&et.closeSync(i.nfd)}catch(i){if(!i.code)throw i;throw new Ni.ErrnoError(ji[i.code])}},read:function(i,t,e,n,r){var o,f=new Buffer(n);try{o=et.readSync(i.nfd,f,0,n,r)}catch(i){throw new Ni.ErrnoError(ji[i.code])}if(o>0)for(var a=0;a<o;a++)t[e+a]=f[a];return o},write:function(i,t,e,n,r){var o,f=new Buffer(t.subarray(e,e+n));try{o=et.writeSync(i.nfd,f,0,n,r)}catch(i){throw new Ni.ErrnoError(ji[i.code])}return o},llseek:function(i,t,e){var n=t;if(1===e)n+=i.position;else if(2===e&&Ni.isFile(i.node.mode))try{n+=et.fstatSync(i.nfd).size}catch(i){throw new Ni.ErrnoError(ji[i.code])}if(n<0)throw new Ni.ErrnoError(ji.EINVAL);return i.position=n,n}}},Oi=g(1,"i32*",2),Ri=g(1,"i32*",2),Pi=g(1,"i32*",2);var Ni={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},handleFSError:function(i){if(!(i instanceof Ni.ErrnoError))throw i+" : "+S();return Ci(i.errno)},lookupPath:function(i,t){if(t=t||{},!(i=Li.resolve(Ni.cwd(),i)))return{path:"",node:null};var e={follow_mount:!0,recurse_count:0};for(var n in e)void 0===t[n]&&(t[n]=e[n]);if(t.recurse_count>8)throw new Ni.ErrnoError(ji.ELOOP);for(var r=Li.normalizeArray(i.split("/").filter(function(i){return!!i}),!1),o=Ni.root,f="/",a=0;a<r.length;a++){var s=a===r.length-1;if(s&&t.parent)break;if(o=Ni.lookupNode(o,r[a]),f=Li.join2(f,r[a]),Ni.isMountpoint(o)&&(!s||s&&t.follow_mount)&&(o=o.mounted.root),!s||t.follow)for(var c=0;Ni.isLink(o.mode);){var u=Ni.readlink(f);if(f=Li.resolve(Li.dirname(f),u),o=Ni.lookupPath(f,{recurse_count:t.recurse_count}).node,c++>40)throw new Ni.ErrnoError(ji.ELOOP)}}return{path:f,node:o}},getPath:function(i){for(var t;;){if(Ni.isRoot(i)){var e=i.mount.mountpoint;return t?"/"!==e[e.length-1]?e+"/"+t:e+t:e}t=t?i.name+"/"+t:i.name,i=i.parent}},hashName:function(i,t){for(var e=0,n=0;n<t.length;n++)e=(e<<5)-e+t.charCodeAt(n)|0;return(i+e>>>0)%Ni.nameTable.length},hashAddNode:function(i){var t=Ni.hashName(i.parent.id,i.name);i.name_next=Ni.nameTable[t],Ni.nameTable[t]=i},hashRemoveNode:function(i){var t=Ni.hashName(i.parent.id,i.name);if(Ni.nameTable[t]===i)Ni.nameTable[t]=i.name_next;else for(var e=Ni.nameTable[t];e;){if(e.name_next===i){e.name_next=i.name_next;break}e=e.name_next}},lookupNode:function(i,t){var e=Ni.mayLookup(i);if(e)throw new Ni.ErrnoError(e);for(var n=Ni.hashName(i.id,t),r=Ni.nameTable[n];r;r=r.name_next){var o=r.name;if(r.parent.id===i.id&&o===t)return r}return Ni.lookup(i,t)},createNode:function(i,t,e,n){if(!Ni.FSNode){Ni.FSNode=function(i,t,e,n){i||(i=this),this.parent=i,this.mount=i.mount,this.mounted=null,this.id=Ni.nextInode++,this.name=t,this.mode=e,this.node_ops={},this.stream_ops={},this.rdev=n},Ni.FSNode.prototype={};var r=365,o=146;Object.defineProperties(Ni.FSNode.prototype,{read:{get:function(){return(this.mode&r)===r},set:function(i){i?this.mode|=r:this.mode&=-366}},write:{get:function(){return(this.mode&o)===o},set:function(i){i?this.mode|=o:this.mode&=-147}},isFolder:{get:function(){return Ni.isDir(this.mode)}},isDevice:{get:function(){return Ni.isChrdev(this.mode)}}})}var f=new Ni.FSNode(i,t,e,n);return Ni.hashAddNode(f),f},destroyNode:function(i){Ni.hashRemoveNode(i)},isRoot:function(i){return i===i.parent},isMountpoint:function(i){return!!i.mounted},isFile:function(i){return 32768==(61440&i)},isDir:function(i){return 16384==(61440&i)},isLink:function(i){return 40960==(61440&i)},isChrdev:function(i){return 8192==(61440&i)},isBlkdev:function(i){return 24576==(61440&i)},isFIFO:function(i){return 4096==(61440&i)},isSocket:function(i){return!(49152&~i)},flagModes:{r:0,rs:1052672,"r+":2,w:577,wx:705,xw:705,"w+":578,"wx+":706,"xw+":706,a:1089,ax:1217,xa:1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function(i){var t=Ni.flagModes[i];if(void 0===t)throw new Error("Unknown file open mode: "+i);return t},flagsToPermissionString:function(i){var t=["r","w","rw"][2097155&i];return 512&i&&(t+="w"),t},nodePermissions:function(i,t){return Ni.ignorePermissions||(-1===t.indexOf("r")||292&i.mode)&&(-1===t.indexOf("w")||146&i.mode)&&(-1===t.indexOf("x")||73&i.mode)?0:ji.EACCES},mayLookup:function(i){var t=Ni.nodePermissions(i,"x");return t||(i.node_ops.lookup?0:ji.EACCES)},mayCreate:function(i,t){try{Ni.lookupNode(i,t);return ji.EEXIST}catch(i){}return Ni.nodePermissions(i,"wx")},mayDelete:function(i,t,e){var n;try{n=Ni.lookupNode(i,t)}catch(i){return i.errno}var r=Ni.nodePermissions(i,"wx");if(r)return r;if(e){if(!Ni.isDir(n.mode))return ji.ENOTDIR;if(Ni.isRoot(n)||Ni.getPath(n)===Ni.cwd())return ji.EBUSY}else if(Ni.isDir(n.mode))return ji.EISDIR;return 0},mayOpen:function(i,t){return i?Ni.isLink(i.mode)?ji.ELOOP:Ni.isDir(i.mode)&&(2097155&t||512&t)?ji.EISDIR:Ni.nodePermissions(i,Ni.flagsToPermissionString(t)):ji.ENOENT},MAX_OPEN_FDS:4096,nextfd:function(i,t){i=i||0,t=t||Ni.MAX_OPEN_FDS;for(var e=i;e<=t;e++)if(!Ni.streams[e])return e;throw new Ni.ErrnoError(ji.EMFILE)},getStream:function(i){return Ni.streams[i]},createStream:function(i,t,e){Ni.FSStream||(Ni.FSStream=function(){},Ni.FSStream.prototype={},Object.defineProperties(Ni.FSStream.prototype,{object:{get:function(){return this.node},set:function(i){this.node=i}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return!!(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}}}));var n=new Ni.FSStream;for(var r in i)n[r]=i[r];i=n;var o=Ni.nextfd(t,e);return i.fd=o,Ni.streams[o]=i,i},closeStream:function(i){Ni.streams[i]=null},getStreamFromPtr:function(i){return Ni.streams[i-1]},getPtrForStream:function(i){return i?i.fd+1:0},chrdev_stream_ops:{open:function(i){var t=Ni.getDevice(i.node.rdev);i.stream_ops=t.stream_ops,i.stream_ops.open&&i.stream_ops.open(i)},llseek:function(){throw new Ni.ErrnoError(ji.ESPIPE)}},major:function(i){return i>>8},minor:function(i){return 255&i},makedev:function(i,t){return i<<8|t},registerDevice:function(i,t){Ni.devices[i]={stream_ops:t}},getDevice:function(i){return Ni.devices[i]},getMounts:function(i){for(var t=[],e=[i];e.length;){var n=e.pop();t.push(n),e.push.apply(e,n.mounts)}return t},syncfs:function(i,t){"function"==typeof i&&(t=i,i=!1);var e=Ni.getMounts(Ni.root.mount),n=0;function r(i){if(i)return r.errored?void 0:(r.errored=!0,t(i));++n>=e.length&&t(null)}e.forEach(function(t){if(!t.type.syncfs)return r(null);t.type.syncfs(t,i,r)})},mount:function(i,t,e){var n,r="/"===e,o=!e;if(r&&Ni.root)throw new Ni.ErrnoError(ji.EBUSY);if(!r&&!o){var f=Ni.lookupPath(e,{follow_mount:!1});if(e=f.path,n=f.node,Ni.isMountpoint(n))throw new Ni.ErrnoError(ji.EBUSY);if(!Ni.isDir(n.mode))throw new Ni.ErrnoError(ji.ENOTDIR)}var a={type:i,opts:t,mountpoint:e,mounts:[]},s=i.mount(a);return s.mount=a,a.root=s,r?Ni.root=s:n&&(n.mounted=a,n.mount&&n.mount.mounts.push(a)),s},unmount:function(i){var t=Ni.lookupPath(i,{follow_mount:!1});if(!Ni.isMountpoint(t.node))throw new Ni.ErrnoError(ji.EINVAL);var e=t.node,n=e.mounted,r=Ni.getMounts(n);Object.keys(Ni.nameTable).forEach(function(i){for(var t=Ni.nameTable[i];t;){var e=t.name_next;-1!==r.indexOf(t.mount)&&Ni.destroyNode(t),t=e}}),e.mounted=null;var o=e.mount.mounts.indexOf(n);_(-1!==o),e.mount.mounts.splice(o,1)},lookup:function(i,t){return i.node_ops.lookup(i,t)},mknod:function(i,t,e){var n=Ni.lookupPath(i,{parent:!0}).node,r=Li.basename(i);if(!r||"."===r||".."===r)throw new Ni.ErrnoError(ji.EINVAL);var o=Ni.mayCreate(n,r);if(o)throw new Ni.ErrnoError(o);if(!n.node_ops.mknod)throw new Ni.ErrnoError(ji.EPERM);return n.node_ops.mknod(n,r,t,e)},create:function(i,t){return t=void 0!==t?t:438,t&=4095,t|=32768,Ni.mknod(i,t,0)},mkdir:function(i,t){return t=void 0!==t?t:511,t&=1023,t|=16384,Ni.mknod(i,t,0)},mkdev:function(i,t,e){return void 0===e&&(e=t,t=438),t|=8192,Ni.mknod(i,t,e)},symlink:function(i,t){if(!Li.resolve(i))throw new Ni.ErrnoError(ji.ENOENT);var e=Ni.lookupPath(t,{parent:!0}).node;if(!e)throw new Ni.ErrnoError(ji.ENOENT);var n=Li.basename(t),r=Ni.mayCreate(e,n);if(r)throw new Ni.ErrnoError(r);if(!e.node_ops.symlink)throw new Ni.ErrnoError(ji.EPERM);return e.node_ops.symlink(e,n,i)},rename:function(i,t){var e,n,r=Li.dirname(i),o=Li.dirname(t),f=Li.basename(i),a=Li.basename(t);try{e=Ni.lookupPath(i,{parent:!0}).node,n=Ni.lookupPath(t,{parent:!0}).node}catch(i){throw new Ni.ErrnoError(ji.EBUSY)}if(!e||!n)throw new Ni.ErrnoError(ji.ENOENT);if(e.mount!==n.mount)throw new Ni.ErrnoError(ji.EXDEV);var s,c=Ni.lookupNode(e,f),u=Li.relative(i,o);if("."!==u.charAt(0))throw new Ni.ErrnoError(ji.EINVAL);if("."!==(u=Li.relative(t,r)).charAt(0))throw new Ni.ErrnoError(ji.ENOTEMPTY);try{s=Ni.lookupNode(n,a)}catch(i){}if(c!==s){var h=Ni.isDir(c.mode),l=Ni.mayDelete(e,f,h);if(l)throw new Ni.ErrnoError(l);if(l=s?Ni.mayDelete(n,a,h):Ni.mayCreate(n,a))throw new Ni.ErrnoError(l);if(!e.node_ops.rename)throw new Ni.ErrnoError(ji.EPERM);if(Ni.isMountpoint(c)||s&&Ni.isMountpoint(s))throw new Ni.ErrnoError(ji.EBUSY);if(n!==e&&(l=Ni.nodePermissions(e,"w")))throw new Ni.ErrnoError(l);try{Ni.trackingDelegate.willMovePath&&Ni.trackingDelegate.willMovePath(i,t)}catch(e){console.log("FS.trackingDelegate['willMovePath']('"+i+"', '"+t+"') threw an exception: "+e.message)}Ni.hashRemoveNode(c);try{e.node_ops.rename(c,n,a)}catch(i){throw i}finally{Ni.hashAddNode(c)}try{Ni.trackingDelegate.onMovePath&&Ni.trackingDelegate.onMovePath(i,t)}catch(e){console.log("FS.trackingDelegate['onMovePath']('"+i+"', '"+t+"') threw an exception: "+e.message)}}},rmdir:function(i){var t=Ni.lookupPath(i,{parent:!0}).node,e=Li.basename(i),n=Ni.lookupNode(t,e),r=Ni.mayDelete(t,e,!0);if(r)throw new Ni.ErrnoError(r);if(!t.node_ops.rmdir)throw new Ni.ErrnoError(ji.EPERM);if(Ni.isMountpoint(n))throw new Ni.ErrnoError(ji.EBUSY);try{Ni.trackingDelegate.willDeletePath&&Ni.trackingDelegate.willDeletePath(i)}catch(t){console.log("FS.trackingDelegate['willDeletePath']('"+i+"') threw an exception: "+t.message)}t.node_ops.rmdir(t,e),Ni.destroyNode(n);try{Ni.trackingDelegate.onDeletePath&&Ni.trackingDelegate.onDeletePath(i)}catch(t){console.log("FS.trackingDelegate['onDeletePath']('"+i+"') threw an exception: "+t.message)}},readdir:function(i){var t=Ni.lookupPath(i,{follow:!0}).node;if(!t.node_ops.readdir)throw new Ni.ErrnoError(ji.ENOTDIR);return t.node_ops.readdir(t)},unlink:function(i){var t=Ni.lookupPath(i,{parent:!0}).node,e=Li.basename(i),n=Ni.lookupNode(t,e),r=Ni.mayDelete(t,e,!1);if(r)throw r===ji.EISDIR&&(r=ji.EPERM),new Ni.ErrnoError(r);if(!t.node_ops.unlink)throw new Ni.ErrnoError(ji.EPERM);if(Ni.isMountpoint(n))throw new Ni.ErrnoError(ji.EBUSY);try{Ni.trackingDelegate.willDeletePath&&Ni.trackingDelegate.willDeletePath(i)}catch(t){console.log("FS.trackingDelegate['willDeletePath']('"+i+"') threw an exception: "+t.message)}t.node_ops.unlink(t,e),Ni.destroyNode(n);try{Ni.trackingDelegate.onDeletePath&&Ni.trackingDelegate.onDeletePath(i)}catch(t){console.log("FS.trackingDelegate['onDeletePath']('"+i+"') threw an exception: "+t.message)}},readlink:function(i){var t=Ni.lookupPath(i).node;if(!t)throw new Ni.ErrnoError(ji.ENOENT);if(!t.node_ops.readlink)throw new Ni.ErrnoError(ji.EINVAL);return t.node_ops.readlink(t)},stat:function(i,t){var e=Ni.lookupPath(i,{follow:!t}).node;if(!e)throw new Ni.ErrnoError(ji.ENOENT);if(!e.node_ops.getattr)throw new Ni.ErrnoError(ji.EPERM);return e.node_ops.getattr(e)},lstat:function(i){return Ni.stat(i,!0)},chmod:function(i,t,e){var n;"string"==typeof i?n=Ni.lookupPath(i,{follow:!e}).node:n=i;if(!n.node_ops.setattr)throw new Ni.ErrnoError(ji.EPERM);n.node_ops.setattr(n,{mode:4095&t|-4096&n.mode,timestamp:Date.now()})},lchmod:function(i,t){Ni.chmod(i,t,!0)},fchmod:function(i,t){var e=Ni.getStream(i);if(!e)throw new Ni.ErrnoError(ji.EBADF);Ni.chmod(e.node,t)},chown:function(i,t,e,n){var r;"string"==typeof i?r=Ni.lookupPath(i,{follow:!n}).node:r=i;if(!r.node_ops.setattr)throw new Ni.ErrnoError(ji.EPERM);r.node_ops.setattr(r,{timestamp:Date.now()})},lchown:function(i,t,e){Ni.chown(i,t,e,!0)},fchown:function(i,t,e){var n=Ni.getStream(i);if(!n)throw new Ni.ErrnoError(ji.EBADF);Ni.chown(n.node,t,e)},truncate:function(i,t){if(t<0)throw new Ni.ErrnoError(ji.EINVAL);var e;"string"==typeof i?e=Ni.lookupPath(i,{follow:!0}).node:e=i;if(!e.node_ops.setattr)throw new Ni.ErrnoError(ji.EPERM);if(Ni.isDir(e.mode))throw new Ni.ErrnoError(ji.EISDIR);if(!Ni.isFile(e.mode))throw new Ni.ErrnoError(ji.EINVAL);var n=Ni.nodePermissions(e,"w");if(n)throw new Ni.ErrnoError(n);e.node_ops.setattr(e,{size:t,timestamp:Date.now()})},ftruncate:function(i,t){var e=Ni.getStream(i);if(!e)throw new Ni.ErrnoError(ji.EBADF);if(!(2097155&e.flags))throw new Ni.ErrnoError(ji.EINVAL);Ni.truncate(e.node,t)},utime:function(i,t,e){var n=Ni.lookupPath(i,{follow:!0}).node;n.node_ops.setattr(n,{timestamp:Math.max(t,e)})},open:function(i,e,n,r,o){if(""===i)throw new Ni.ErrnoError(ji.ENOENT);var f;if(n=void 0===n?438:n,n=64&(e="string"==typeof e?Ni.modeStringToFlags(e):e)?4095&n|32768:0,"object"==typeof i)f=i;else{i=Li.normalize(i);try{f=Ni.lookupPath(i,{follow:!(131072&e)}).node}catch(i){}}var a=!1;if(64&e)if(f){if(128&e)throw new Ni.ErrnoError(ji.EEXIST)}else f=Ni.mknod(i,n,0),a=!0;if(!f)throw new Ni.ErrnoError(ji.ENOENT);if(Ni.isChrdev(f.mode)&&(e&=-513),!a){var s=Ni.mayOpen(f,e);if(s)throw new Ni.ErrnoError(s)}512&e&&Ni.truncate(f,0),e&=-641;var c=Ni.createStream({node:f,path:Ni.getPath(f),flags:e,seekable:!0,position:0,stream_ops:f.stream_ops,ungotten:[],error:!1},r,o);c.stream_ops.open&&c.stream_ops.open(c),!t.logReadFiles||1&e||(Ni.readFiles||(Ni.readFiles={}),i in Ni.readFiles||(Ni.readFiles[i]=1,t.printErr("read file: "+i)));try{if(Ni.trackingDelegate.onOpenFile){var u=0;1!=(2097155&e)&&(u|=Ni.tracking.openFlags.READ),2097155&e&&(u|=Ni.tracking.openFlags.WRITE),Ni.trackingDelegate.onOpenFile(i,u)}}catch(t){console.log("FS.trackingDelegate['onOpenFile']('"+i+"', flags) threw an exception: "+t.message)}return c},close:function(i){try{i.stream_ops.close&&i.stream_ops.close(i)}catch(i){throw i}finally{Ni.closeStream(i.fd)}},llseek:function(i,t,e){if(!i.seekable||!i.stream_ops.llseek)throw new Ni.ErrnoError(ji.ESPIPE);return i.stream_ops.llseek(i,t,e)},read:function(i,t,e,n,r){if(n<0||r<0)throw new Ni.ErrnoError(ji.EINVAL);if(1==(2097155&i.flags))throw new Ni.ErrnoError(ji.EBADF);if(Ni.isDir(i.node.mode))throw new Ni.ErrnoError(ji.EISDIR);if(!i.stream_ops.read)throw new Ni.ErrnoError(ji.EINVAL);var o=!0;if(void 0===r)r=i.position,o=!1;else if(!i.seekable)throw new Ni.ErrnoError(ji.ESPIPE);var f=i.stream_ops.read(i,t,e,n,r);return o||(i.position+=f),f},write:function(i,t,e,n,r,o){if(n<0||r<0)throw new Ni.ErrnoError(ji.EINVAL);if(!(2097155&i.flags))throw new Ni.ErrnoError(ji.EBADF);if(Ni.isDir(i.node.mode))throw new Ni.ErrnoError(ji.EISDIR);if(!i.stream_ops.write)throw new Ni.ErrnoError(ji.EINVAL);1024&i.flags&&Ni.llseek(i,0,2);var f=!0;if(void 0===r)r=i.position,f=!1;else if(!i.seekable)throw new Ni.ErrnoError(ji.ESPIPE);var a=i.stream_ops.write(i,t,e,n,r,o);f||(i.position+=a);try{i.path&&Ni.trackingDelegate.onWriteToFile&&Ni.trackingDelegate.onWriteToFile(i.path)}catch(i){console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: "+i.message)}return a},allocate:function(i,t,e){if(t<0||e<=0)throw new Ni.ErrnoError(ji.EINVAL);if(!(2097155&i.flags))throw new Ni.ErrnoError(ji.EBADF);if(!Ni.isFile(i.node.mode)&&!Ni.isDir(node.mode))throw new Ni.ErrnoError(ji.ENODEV);if(!i.stream_ops.allocate)throw new Ni.ErrnoError(ji.EOPNOTSUPP);i.stream_ops.allocate(i,t,e)},mmap:function(i,t,e,n,r,o,f){if(1==(2097155&i.flags))throw new Ni.ErrnoError(ji.EACCES);if(!i.stream_ops.mmap)throw new Ni.ErrnoError(ji.ENODEV);return i.stream_ops.mmap(i,t,e,n,r,o,f)},ioctl:function(i,t,e){if(!i.stream_ops.ioctl)throw new Ni.ErrnoError(ji.ENOTTY);return i.stream_ops.ioctl(i,t,e)},readFile:function(i,t){if((t=t||{}).flags=t.flags||"r",t.encoding=t.encoding||"binary","utf8"!==t.encoding&&"binary"!==t.encoding)throw new Error('Invalid encoding type "'+t.encoding+'"');var e,n=Ni.open(i,t.flags),r=Ni.stat(i).size,o=new Uint8Array(r);if(Ni.read(n,o,0,r,0),"utf8"===t.encoding){e="";for(var f=new h.UTF8Processor,a=0;a<r;a++)e+=f.processCChar(o[a])}else"binary"===t.encoding&&(e=o);return Ni.close(n),e},writeFile:function(i,t,e){if((e=e||{}).flags=e.flags||"w",e.encoding=e.encoding||"utf8","utf8"!==e.encoding&&"binary"!==e.encoding)throw new Error('Invalid encoding type "'+e.encoding+'"');var n=Ni.open(i,e.flags,e.mode);if("utf8"===e.encoding){var r=new h.UTF8Processor,o=new Uint8Array(r.processJSString(t));Ni.write(n,o,0,o.length,0,e.canOwn)}else"binary"===e.encoding&&Ni.write(n,t,0,t.length,0,e.canOwn);Ni.close(n)},cwd:function(){return Ni.currentPath},chdir:function(i){var t=Ni.lookupPath(i,{follow:!0});if(!Ni.isDir(t.node.mode))throw new Ni.ErrnoError(ji.ENOTDIR);var e=Ni.nodePermissions(t.node,"x");if(e)throw new Ni.ErrnoError(e);Ni.currentPath=t.path},createDefaultDirectories:function(){Ni.mkdir("/tmp"),Ni.mkdir("/home"),Ni.mkdir("/home/web_user")},createDefaultDevices:function(){var t;if(Ni.mkdir("/dev"),Ni.registerDevice(Ni.makedev(1,3),{read:function(){return 0},write:function(){return 0}}),Ni.mkdev("/dev/null",Ni.makedev(1,3)),Ii.register(Ni.makedev(5,0),Ii.default_tty_ops),Ii.register(Ni.makedev(6,0),Ii.default_tty1_ops),Ni.mkdev("/dev/tty",Ni.makedev(5,0)),Ni.mkdev("/dev/tty1",Ni.makedev(6,0)),"undefined"!=typeof crypto){var e=new Uint8Array(1);t=function(){return crypto.getRandomValues(e),e[0]}}else t=r?function(){return i("crypto").randomBytes(1)[0]}:function(){return Math.floor(256*Math.random())};Ni.createDevice("/dev","random",t),Ni.createDevice("/dev","urandom",t),Ni.mkdir("/dev/shm"),Ni.mkdir("/dev/shm/tmp")},createStandardStreams:function(){t.stdin?Ni.createDevice("/dev","stdin",t.stdin):Ni.symlink("/dev/tty","/dev/stdin"),t.stdout?Ni.createDevice("/dev","stdout",null,t.stdout):Ni.symlink("/dev/tty","/dev/stdout"),t.stderr?Ni.createDevice("/dev","stderr",null,t.stderr):Ni.symlink("/dev/tty1","/dev/stderr");var i=Ni.open("/dev/stdin","r");L[Oi>>2]=Ni.getPtrForStream(i),_(0===i.fd,"invalid handle for stdin ("+i.fd+")");var e=Ni.open("/dev/stdout","w");L[Ri>>2]=Ni.getPtrForStream(e),_(1===e.fd,"invalid handle for stdout ("+e.fd+")");var n=Ni.open("/dev/stderr","w");L[Pi>>2]=Ni.getPtrForStream(n),_(2===n.fd,"invalid handle for stderr ("+n.fd+")")},ensureErrnoError:function(){Ni.ErrnoError||(Ni.ErrnoError=function(i){for(var t in this.errno=i,ji)if(ji[t]===i){this.code=t;break}this.message=Ti[i]},Ni.ErrnoError.prototype=new Error,Ni.ErrnoError.prototype.constructor=Ni.ErrnoError,[ji.ENOENT].forEach(function(i){Ni.genericErrors[i]=new Ni.ErrnoError(i),Ni.genericErrors[i].stack="<generic error, no stack>"}))},staticInit:function(){Ni.ensureErrnoError(),Ni.nameTable=new Array(4096),Ni.mount(Ai,{},"/"),Ni.createDefaultDirectories(),Ni.createDefaultDevices()},init:function(i,e,n){_(!Ni.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)"),Ni.init.initialized=!0,Ni.ensureErrnoError(),t.stdin=i||t.stdin,t.stdout=e||t.stdout,t.stderr=n||t.stderr,Ni.createStandardStreams()},quit:function(){Ni.init.initialized=!1;for(var i=0;i<Ni.streams.length;i++){var t=Ni.streams[i];t&&Ni.close(t)}},getMode:function(i,t){var e=0;return i&&(e|=365),t&&(e|=146),e},joinPath:function(i,t){var e=Li.join.apply(null,i);return t&&"/"==e[0]&&(e=e.substr(1)),e},absolutePath:function(i,t){return Li.resolve(t,i)},standardizePath:function(i){return Li.normalize(i)},findObject:function(i,t){var e=Ni.analyzePath(i,t);return e.exists?e.object:(Ci(e.error),null)},analyzePath:function(i,t){try{i=(n=Ni.lookupPath(i,{follow:!t})).path}catch(i){}var e={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var n=Ni.lookupPath(i,{parent:!0});e.parentExists=!0,e.parentPath=n.path,e.parentObject=n.node,e.name=Li.basename(i),n=Ni.lookupPath(i,{follow:!t}),e.exists=!0,e.path=n.path,e.object=n.node,e.name=n.node.name,e.isRoot="/"===n.path}catch(i){e.error=i.errno}return e},createFolder:function(i,t,e,n){var r=Li.join2("string"==typeof i?i:Ni.getPath(i),t),o=Ni.getMode(e,n);return Ni.mkdir(r,o)},createPath:function(i,t,e,n){i="string"==typeof i?i:Ni.getPath(i);for(var r=t.split("/").reverse();r.length;){var o=r.pop();if(o){var f=Li.join2(i,o);try{Ni.mkdir(f)}catch(i){}i=f}}return f},createFile:function(i,t,e,n,r){var o=Li.join2("string"==typeof i?i:Ni.getPath(i),t),f=Ni.getMode(n,r);return Ni.create(o,f)},createDataFile:function(i,t,e,n,r,o){var f=t?Li.join2("string"==typeof i?i:Ni.getPath(i),t):i,a=Ni.getMode(n,r),s=Ni.create(f,a);if(e){if("string"==typeof e){for(var c=new Array(e.length),u=0,h=e.length;u<h;++u)c[u]=e.charCodeAt(u);e=c}Ni.chmod(s,146|a);var l=Ni.open(s,"w");Ni.write(l,e,0,e.length,0,o),Ni.close(l),Ni.chmod(s,a)}return s},createDevice:function(i,t,e,n){var r=Li.join2("string"==typeof i?i:Ni.getPath(i),t),o=Ni.getMode(!!e,!!n);Ni.createDevice.major||(Ni.createDevice.major=64);var f=Ni.makedev(Ni.createDevice.major++,0);return Ni.registerDevice(f,{open:function(i){i.seekable=!1},close:function(i){n&&n.buffer&&n.buffer.length&&n(10)},read:function(i,t,n,r,o){for(var f=0,a=0;a<r;a++){var s;try{s=e()}catch(i){throw new Ni.ErrnoError(ji.EIO)}if(void 0===s&&0===f)throw new Ni.ErrnoError(ji.EAGAIN);if(null==s)break;f++,t[n+a]=s}return f&&(i.node.timestamp=Date.now()),f},write:function(i,t,e,r,o){for(var f=0;f<r;f++)try{n(t[e+f])}catch(i){throw new Ni.ErrnoError(ji.EIO)}return r&&(i.node.timestamp=Date.now()),f}}),Ni.mkdev(r,o,f)},createLink:function(i,t,e,n,r){var o=Li.join2("string"==typeof i?i:Ni.getPath(i),t);return Ni.symlink(e,o)},forceLoadFile:function(i){if(i.isDevice||i.isFolder||i.link||i.contents)return!0;var e=!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(!t.read)throw new Error("Cannot load without read() or XMLHttpRequest.");try{i.contents=Z(t.read(i.url),!0),i.usedBytes=i.contents.length}catch(i){e=!1}return e||Ci(ji.EIO),e},createLazyFile:function(i,t,e,n,r){function o(){this.lengthKnown=!1,this.chunks=[]}if(o.prototype.get=function(i){if(!(i>this.length-1||i<0)){var t=i%this.chunkSize,e=Math.floor(i/this.chunkSize);return this.getter(e)[t]}},o.prototype.setDataGetter=function(i){this.getter=i},o.prototype.cacheLength=function(){var i=new XMLHttpRequest;if(i.open("HEAD",e,!1),i.send(null),!(i.status>=200&&i.status<300||304===i.status))throw new Error("Couldn't load "+e+". Status: "+i.status);var t,n=Number(i.getResponseHeader("Content-length")),r=(t=i.getResponseHeader("Accept-Ranges"))&&"bytes"===t,o=1048576;r||(o=n);var f=this;f.setDataGetter(function(i){var t=i*o,r=(i+1)*o-1;if(r=Math.min(r,n-1),void 0===f.chunks[i]&&(f.chunks[i]=function(i,t){if(i>t)throw new Error("invalid range ("+i+", "+t+") or no bytes requested!");if(t>n-1)throw new Error("only "+n+" bytes available! programmer error!");var r=new XMLHttpRequest;if(r.open("GET",e,!1),n!==o&&r.setRequestHeader("Range","bytes="+i+"-"+t),"undefined"!=typeof Uint8Array&&(r.responseType="arraybuffer"),r.overrideMimeType&&r.overrideMimeType("text/plain; charset=x-user-defined"),r.send(null),!(r.status>=200&&r.status<300||304===r.status))throw new Error("Couldn't load "+e+". Status: "+r.status);return void 0!==r.response?new Uint8Array(r.response||[]):Z(r.responseText||"",!0)}(t,r)),void 0===f.chunks[i])throw new Error("doXHR failed!");return f.chunks[i]}),this.Le=n,this.Ie=o,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest){if(!f)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var a=new o;Object.defineProperty(a,"length",{get:function(){return this.lengthKnown||this.cacheLength(),this.Le}}),Object.defineProperty(a,"chunkSize",{get:function(){return this.lengthKnown||this.cacheLength(),this.Ie}});var s={isDevice:!1,contents:a}}else s={isDevice:!1,url:e};var c=Ni.createFile(i,t,s,n,r);s.contents?c.contents=s.contents:s.url&&(c.contents=null,c.url=s.url),Object.defineProperty(c,"usedBytes",{get:function(){return this.contents.length}});var u={};return Object.keys(c.stream_ops).forEach(function(i){var t=c.stream_ops[i];u[i]=function(){if(!Ni.forceLoadFile(c))throw new Ni.ErrnoError(ji.EIO);return t.apply(null,arguments)}}),u.read=function(i,t,e,n,r){if(!Ni.forceLoadFile(c))throw new Ni.ErrnoError(ji.EIO);var o=i.node.contents;if(r>=o.length)return 0;var f=Math.min(o.length-r,n);if(_(f>=0),o.slice)for(var a=0;a<f;a++)t[e+a]=o[r+a];else for(a=0;a<f;a++)t[e+a]=o.get(r+a);return f},c.stream_ops=u,c},createPreloadedFile:function(i,e,n,r,o,f,a,s,c){$i.init();var u=e?Li.resolve(Li.join2(i,e)):i;function h(n){function h(t){s||Ni.createDataFile(i,e,t,r,o,c),f&&f(),wi()}var l=!1;t.preloadPlugins.forEach(function(i){l||i.canHandle(u)&&(i.handle(n,u,h,function(){a&&a(),wi()}),l=!0)}),l||h(n)}_i(),"string"==typeof n?$i.asyncLoad(n,function(i){h(i)},a):h(n)},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:function(){return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function(i,t,e){t=t||function(){},e=e||function(){};var n=Ni.indexedDB();try{var r=n.open(Ni.DB_NAME(),Ni.DB_VERSION)}catch(i){return e(i)}r.onupgradeneeded=function(){console.log("creating db"),r.result.createObjectStore(Ni.DB_STORE_NAME)},r.onsuccess=function(){var n=r.result.transaction([Ni.DB_STORE_NAME],"readwrite"),o=n.objectStore(Ni.DB_STORE_NAME),f=0,a=0,s=i.length;function c(){0==a?t():e()}i.forEach(function(i){var t=o.put(Ni.analyzePath(i).object.contents,i);t.onsuccess=function(){++f+a==s&&c()},t.onerror=function(){a++,f+a==s&&c()}}),n.onerror=e},r.onerror=e},loadFilesFromDB:function(i,t,e){t=t||function(){},e=e||function(){};var n=Ni.indexedDB();try{var r=n.open(Ni.DB_NAME(),Ni.DB_VERSION)}catch(i){return e(i)}r.onupgradeneeded=e,r.onsuccess=function(){var n=r.result;try{var o=n.transaction([Ni.DB_STORE_NAME],"readonly")}catch(i){return void e(i)}var f=o.objectStore(Ni.DB_STORE_NAME),a=0,s=0,c=i.length;function u(){0==s?t():e()}i.forEach(function(i){var t=f.get(i);t.onsuccess=function(){Ni.analyzePath(i).exists&&Ni.unlink(i),Ni.createDataFile(Li.dirname(i),Li.basename(i),t.result,!0,!0,!0),++a+s==c&&u()},t.onerror=function(){s++,a+s==c&&u()}}),o.onerror=e},r.onerror=e}};function Bi(){throw"TODO"}var Fi={mount:function(i){return t.websocket=t.websocket&&"object"==typeof t.websocket?t.websocket:{},t.websocket.Ae={},t.websocket.on=function(i,t){return"function"==typeof t&&(this.Ae[i]=t),this},t.websocket.emit=function(i,t){"function"==typeof this.Ae[i]&&this.Ae[i].call(this,t)},Ni.createNode(null,"/",16895,0)},createSocket:function(i,t,e){e&&_(1==t==(6==e));var n={family:i,type:t,protocol:e,server:null,error:null,peers:{},pending:[],recv_queue:[],sock_ops:Fi.websocket_sock_ops},r=Fi.nextname(),o=Ni.createNode(Fi.root,r,49152,0);o.sock=n;var f=Ni.createStream({path:r,node:o,flags:Ni.modeStringToFlags("r+"),seekable:!1,stream_ops:Fi.stream_ops});return n.stream=f,n},getSocket:function(i){var t=Ni.getStream(i);return t&&Ni.isSocket(t.node.mode)?t.node.sock:null},stream_ops:{poll:function(i){var t=i.node.sock;return t.sock_ops.poll(t)},ioctl:function(i,t,e){var n=i.node.sock;return n.sock_ops.ioctl(n,t,e)},read:function(i,t,e,n,r){var o=i.node.sock,f=o.sock_ops.recvmsg(o,n);return f?(t.set(f.buffer,e),f.buffer.length):0},write:function(i,t,e,n,r){var o=i.node.sock;return o.sock_ops.sendmsg(o,t,e,n)},close:function(i){var t=i.node.sock;t.sock_ops.close(t)}},nextname:function(){return Fi.nextname.current||(Fi.nextname.current=0),"socket["+Fi.nextname.current+++"]"},websocket_sock_ops:{createPeer:function(e,n,o){var f;if("object"==typeof n&&(f=n,n=null,o=null),f)if(f.De)n=f.De.remoteAddress,o=f.De.remotePort;else{var a=/ws[s]?:\/\/([^:]+):(\d+)/.exec(f.url);if(!a)throw new Error("WebSocket URL must be in the format ws(s)://address:port");n=a[1],o=parseInt(a[2],10)}else try{var s=t.websocket&&"object"==typeof t.websocket,c="ws:#".replace("#","//");s&&"string"==typeof t.websocket.url&&(c=t.websocket.url),"ws://"!==c&&"wss://"!==c||(c=c+n+":"+o);var u="binary";s&&"string"==typeof t.websocket.subprotocol&&(u=t.websocket.subprotocol),u=u.replace(/^ +| +$/g,"").split(/ *, */);var h=r?{protocol:u.toString()}:u;(f=new(r?i("ws"):window.WebSocket)(c,h)).binaryType="arraybuffer"}catch(i){throw new Ni.ErrnoError(ji.EHOSTUNREACH)}var l={addr:n,port:o,socket:f,dgram_send_queue:[]};return Fi.websocket_sock_ops.addPeer(e,l),Fi.websocket_sock_ops.handlePeerEvents(e,l),2===e.type&&void 0!==e.sport&&l.dgram_send_queue.push(new Uint8Array([255,255,255,255,"p".charCodeAt(0),"o".charCodeAt(0),"r".charCodeAt(0),"t".charCodeAt(0),(65280&e.sport)>>8,255&e.sport])),l},getPeer:function(i,t,e){return i.peers[t+":"+e]},addPeer:function(i,t){i.peers[t.addr+":"+t.port]=t},removePeer:function(i,t){delete i.peers[t.addr+":"+t.port]},handlePeerEvents:function(i,e){var n=!0,o=function(){t.websocket.emit("open",i.stream.fd);try{for(var n=e.dgram_send_queue.shift();n;)e.socket.send(n),n=e.dgram_send_queue.shift()}catch(i){e.socket.close()}};function f(r){_("string"!=typeof r&&void 0!==r.byteLength),r=new Uint8Array(r);var o=n;if(n=!1,o&&10===r.length&&255===r[0]&&255===r[1]&&255===r[2]&&255===r[3]&&r[4]==="p".charCodeAt(0)&&r[5]==="o".charCodeAt(0)&&r[6]==="r".charCodeAt(0)&&r[7]==="t".charCodeAt(0)){var f=r[8]<<8|r[9];return Fi.websocket_sock_ops.removePeer(i,e),e.port=f,void Fi.websocket_sock_ops.addPeer(i,e)}i.recv_queue.push({addr:e.addr,port:e.port,data:r}),t.websocket.emit("message",i.stream.fd)}r?(e.socket.on("open",o),e.socket.on("message",function(i,t){t.binary&&f(new Uint8Array(i).buffer)}),e.socket.on("close",function(){t.websocket.emit("close",i.stream.fd)}),e.socket.on("error",function(e){i.error=ji.ECONNREFUSED,t.websocket.emit("error",[i.stream.fd,i.error,"ECONNREFUSED: Connection refused"])})):(e.socket.onopen=o,e.socket.onclose=function(){t.websocket.emit("close",i.stream.fd)},e.socket.onmessage=function(i){f(i.data)},e.socket.onerror=function(e){i.error=ji.ECONNREFUSED,t.websocket.emit("error",[i.stream.fd,i.error,"ECONNREFUSED: Connection refused"])})},poll:function(i){if(1===i.type&&i.server)return i.pending.length?65:0;var t=0,e=1===i.type?Fi.websocket_sock_ops.getPeer(i,i.daddr,i.dport):null;return(i.recv_queue.length||!e||e&&e.socket.readyState===e.socket.CLOSING||e&&e.socket.readyState===e.socket.CLOSED)&&(t|=65),(!e||e&&e.socket.readyState===e.socket.OPEN)&&(t|=4),(e&&e.socket.readyState===e.socket.CLOSING||e&&e.socket.readyState===e.socket.CLOSED)&&(t|=16),t},ioctl:function(i,t,e){if(21531===t){var n=0;return i.recv_queue.length&&(n=i.recv_queue[0].data.length),L[e>>2]=n,0}return ji.EINVAL},close:function(i){if(i.server){try{i.server.close()}catch(i){}i.server=null}for(var t=Object.keys(i.peers),e=0;e<t.length;e++){var n=i.peers[t[e]];try{n.socket.close()}catch(i){}Fi.websocket_sock_ops.removePeer(i,n)}return 0},bind:function(i,t,e){if(void 0!==i.saddr||void 0!==i.sport)throw new Ni.ErrnoError(ji.EINVAL);if(i.saddr=t,i.sport=e||Bi(),2===i.type){i.server&&(i.server.close(),i.server=null);try{i.sock_ops.listen(i,0)}catch(i){if(!(i instanceof Ni.ErrnoError))throw i;if(i.errno!==ji.EOPNOTSUPP)throw i}}},connect:function(i,t,e){if(i.server)throw new Ni.ErrnoError(ji.EOPNOTSUPP);if(void 0!==i.daddr&&void 0!==i.dport){var n=Fi.websocket_sock_ops.getPeer(i,i.daddr,i.dport);if(n)throw n.socket.readyState===n.socket.CONNECTING?new Ni.ErrnoError(ji.EALREADY):new Ni.ErrnoError(ji.EISCONN)}var r=Fi.websocket_sock_ops.createPeer(i,t,e);throw i.daddr=r.addr,i.dport=r.port,new Ni.ErrnoError(ji.EINPROGRESS)},listen:function(e,n){if(!r)throw new Ni.ErrnoError(ji.EOPNOTSUPP);if(e.server)throw new Ni.ErrnoError(ji.EINVAL);var o=i("ws").Server,f=e.saddr;e.server=new o({host:f,port:e.sport}),t.websocket.emit("listen",e.stream.fd),e.server.on("connection",function(i){if(1===e.type){var n=Fi.createSocket(e.family,e.type,e.protocol),r=Fi.websocket_sock_ops.createPeer(n,i);n.daddr=r.addr,n.dport=r.port,e.pending.push(n),t.websocket.emit("connection",n.stream.fd)}else Fi.websocket_sock_ops.createPeer(e,i),t.websocket.emit("connection",e.stream.fd)}),e.server.on("closed",function(){t.websocket.emit("close",e.stream.fd),e.server=null}),e.server.on("error",function(i){e.error=ji.EHOSTUNREACH,t.websocket.emit("error",[e.stream.fd,e.error,"EHOSTUNREACH: Host is unreachable"])})},accept:function(i){if(!i.server)throw new Ni.ErrnoError(ji.EINVAL);var t=i.pending.shift();return t.stream.flags=i.stream.flags,t},getname:function(i,t){var e,n;if(t){if(void 0===i.daddr||void 0===i.dport)throw new Ni.ErrnoError(ji.ENOTCONN);e=i.daddr,n=i.dport}else e=i.saddr||0,n=i.sport||0;return{addr:e,port:n}},sendmsg:function(i,t,e,n,r,o){if(2===i.type){if(void 0!==r&&void 0!==o||(r=i.daddr,o=i.dport),void 0===r||void 0===o)throw new Ni.ErrnoError(ji.EDESTADDRREQ)}else r=i.daddr,o=i.dport;var f,a=Fi.websocket_sock_ops.getPeer(i,r,o);if(1===i.type){if(!a||a.socket.readyState===a.socket.CLOSING||a.socket.readyState===a.socket.CLOSED)throw new Ni.ErrnoError(ji.ENOTCONN);if(a.socket.readyState===a.socket.CONNECTING)throw new Ni.ErrnoError(ji.EAGAIN)}if(f=t instanceof Array||t instanceof ArrayBuffer?t.slice(e,e+n):t.buffer.slice(t.byteOffset+e,t.byteOffset+e+n),2===i.type&&(!a||a.socket.readyState!==a.socket.OPEN))return a&&a.socket.readyState!==a.socket.CLOSING&&a.socket.readyState!==a.socket.CLOSED||(a=Fi.websocket_sock_ops.createPeer(i,r,o)),a.dgram_send_queue.push(f),n;try{return a.socket.send(f),n}catch(i){throw new Ni.ErrnoError(ji.EINVAL)}},recvmsg:function(i,t){if(1===i.type&&i.server)throw new Ni.ErrnoError(ji.ENOTCONN);var e=i.recv_queue.shift();if(!e){if(1===i.type){var n=Fi.websocket_sock_ops.getPeer(i,i.daddr,i.dport);if(n){if(n.socket.readyState===n.socket.CLOSING||n.socket.readyState===n.socket.CLOSED)return null;throw new Ni.ErrnoError(ji.EAGAIN)}throw new Ni.ErrnoError(ji.ENOTCONN)}throw new Ni.ErrnoError(ji.EAGAIN)}var r=e.data.byteLength||e.data.length,o=e.data.byteOffset||0,f=e.data.buffer||e.data,a=Math.min(t,r),s={buffer:new Uint8Array(f,o,a),addr:e.addr,port:e.port};if(1===i.type&&a<r){var c=r-a;e.data=new Uint8Array(f,o+a,c),i.recv_queue.unshift(e)}return s}}};function Vi(i,t,e){var n=Ni.getStream(i);if(!n)return Ci(ji.EBADF),-1;try{var r=x;return Ni.write(n,r,t,e)}catch(i){return Ni.handleFSError(i),-1}}function Ui(i){return(i=Ni.getStreamFromPtr(i))?i.fd:-1}function Gi(i,t){var e=ti(255&i);if(x[Gi.ret|0]=e,-1==Vi(Ui(t),Gi.ret,1)){var n=Ni.getStreamFromPtr(t);return n&&(n.error=!0),-1}return e}var Wi={};t.Oe=$o;var zi=1;var Xi=hi,$i={mainLoop:{scheduler:null,method:"",shouldPause:!1,paused:!1,queue:[],pause:function(){$i.mainLoop.shouldPause=!0},resume:function(){$i.mainLoop.paused&&($i.mainLoop.paused=!1,$i.mainLoop.scheduler()),$i.mainLoop.shouldPause=!1},updateStatus:function(){if(t.setStatus){var i=t.statusMessage||"Please wait...",e=$i.mainLoop.remainingBlockers,n=$i.mainLoop.expectedBlockers;e?e<n?t.setStatus(i+" ("+(n-e)+"/"+n+")"):t.setStatus(i):t.setStatus("")}},runIter:function(i){if(!b){if(t.preMainLoop)if(!1===t.preMainLoop())return;try{i()}catch(i){if(i instanceof za)return;throw i&&"object"==typeof i&&i.stack&&t.printErr("exception thrown: "+[i,i.stack]),i}t.postMainLoop&&t.postMainLoop()}}},isFullScreen:!1,pointerLock:!1,moduleContextCreatedCallbacks:[],workers:[],init:function(){if(t.preloadPlugins||(t.preloadPlugins=[]),!$i.initted){$i.initted=!0;try{new Blob,$i.hasBlobConstructor=!0}catch(i){$i.hasBlobConstructor=!1,console.log("warning: no blob constructor, cannot create blobs with mimetypes")}$i.BlobBuilder="undefined"!=typeof MozBlobBuilder?MozBlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:$i.hasBlobConstructor?null:console.log("warning: no BlobBuilder"),$i.URLObject="undefined"!=typeof window?window.URL?window.URL:window.webkitURL:void 0,t.noImageDecoding||void 0!==$i.URLObject||(console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),t.noImageDecoding=!0);var i={canHandle:function(i){return!t.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(i)},handle:function(i,e,n,r){var o=null;if($i.hasBlobConstructor)try{(o=new Blob([i],{type:$i.getMimetype(e)})).size!==i.length&&(o=new Blob([new Uint8Array(i).buffer],{type:$i.getMimetype(e)}))}catch(i){h.warnOnce("Blob constructor present but fails: "+i+"; falling back to blob builder")}if(!o){var f=new $i.BlobBuilder;f.append(new Uint8Array(i).buffer),o=f.getBlob()}var a=$i.URLObject.createObjectURL(o),s=new Image;s.onload=function(){_(s.complete,"Image "+e+" could not be decoded");var r=document.createElement("canvas");r.width=s.width,r.height=s.height,r.getContext("2d").drawImage(s,0,0),t.preloadedImages[e]=r,$i.URLObject.revokeObjectURL(a),n&&n(i)},s.onerror=function(i){console.log("Image "+a+" could not be decoded"),r&&r()},s.src=a}};t.preloadPlugins.push(i);var e={canHandle:function(i){return!t.noAudioDecoding&&i.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},handle:function(i,e,n,r){var o=!1;function f(r){o||(o=!0,t.preloadedAudios[e]=r,n&&n(i))}function a(){o||(o=!0,t.preloadedAudios[e]=new Audio,r&&r())}if(!$i.hasBlobConstructor)return a();try{var s=new Blob([i],{type:$i.getMimetype(e)})}catch(i){return a()}var c=$i.URLObject.createObjectURL(s),u=new Audio;u.addEventListener("canplaythrough",function(){f(u)},!1),u.onerror=function(t){o||(console.log("warning: browser could not fully decode audio "+e+", trying slower base64 approach"),u.src="data:audio/x-"+e.substr(-3)+";base64,"+function(i){for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",e="",n=0,r=0,o=0;o<i.length;o++)for(n=n<<8|i[o],r+=8;r>=6;){var f=n>>r-6&63;r-=6,e+=t[f]}return 2==r?(e+=t[(3&n)<<4],e+="=="):4==r&&(e+=t[(15&n)<<2],e+="="),e}(i),f(u))},u.src=c,$i.safeSetTimeout(function(){f(u)},1e4)}};t.preloadPlugins.push(e);var n=t.canvas;n&&(n.requestPointerLock=n.requestPointerLock||n.mozRequestPointerLock||n.webkitRequestPointerLock||n.msRequestPointerLock||function(){},n.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},n.exitPointerLock=n.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",r,!1),document.addEventListener("mozpointerlockchange",r,!1),document.addEventListener("webkitpointerlockchange",r,!1),document.addEventListener("mspointerlockchange",r,!1),t.elementPointerLock&&n.addEventListener("click",function(i){!$i.pointerLock&&n.requestPointerLock&&(n.requestPointerLock(),i.preventDefault())},!1))}function r(){$i.pointerLock=document.pointerLockElement===n||document.mozPointerLockElement===n||document.webkitPointerLockElement===n||document.msPointerLockElement===n}},createContext:function(i,e,n,r){if(e&&t.ctx&&i==t.canvas)return t.ctx;var o,f;if(e){var a={antialias:!1,alpha:!1};if(r)for(var s in r)a[s]=r[s];f=GL.createContext(i,a),o=GL.getContext(f).GLctx,i.style.backgroundColor="black"}else o=i.getContext("2d");return o?(n&&(e||_("undefined"==typeof GLctx,"cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),t.ctx=o,e&&GL.makeContextCurrent(f),t.useWebGL=e,$i.moduleContextCreatedCallbacks.forEach(function(i){i()}),$i.init()),o):null},destroyContext:function(i,t,e){},fullScreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullScreen:function(i,e){$i.lockPointer=i,$i.resizeCanvas=e,void 0===$i.lockPointer&&($i.lockPointer=!0),void 0===$i.resizeCanvas&&($i.resizeCanvas=!1);var n=t.canvas;function r(){$i.isFullScreen=!1;var i=n.parentNode;(document.webkitFullScreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.mozFullscreenElement||document.fullScreenElement||document.fullscreenElement||document.msFullScreenElement||document.msFullscreenElement||document.webkitCurrentFullScreenElement)===i?(n.cancelFullScreen=document.cancelFullScreen||document.mozCancelFullScreen||document.webkitCancelFullScreen||document.msExitFullscreen||document.exitFullscreen||function(){},n.cancelFullScreen=n.cancelFullScreen.bind(document),$i.lockPointer&&n.requestPointerLock(),$i.isFullScreen=!0,$i.resizeCanvas&&$i.setFullScreenCanvasSize()):(i.parentNode.insertBefore(n,i),i.parentNode.removeChild(i),$i.resizeCanvas&&$i.setWindowedCanvasSize()),t.onFullScreen&&t.onFullScreen($i.isFullScreen),$i.updateCanvasDimensions(n)}$i.fullScreenHandlersInstalled||($i.fullScreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",r,!1),document.addEventListener("mozfullscreenchange",r,!1),document.addEventListener("webkitfullscreenchange",r,!1),document.addEventListener("MSFullscreenChange",r,!1));var o=document.createElement("div");n.parentNode.insertBefore(o,n),o.appendChild(n),o.requestFullScreen=o.requestFullScreen||o.mozRequestFullScreen||o.msRequestFullscreen||(o.webkitRequestFullScreen?function(){o.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),o.requestFullScreen()},nextRAF:0,fakeRequestAnimationFrame:function(i){var t=Date.now();if(0===$i.nextRAF)$i.nextRAF=t+1e3/60;else for(;t+2>=$i.nextRAF;)$i.nextRAF+=1e3/60;var e=Math.max($i.nextRAF-t,0);setTimeout(i,e)},requestAnimationFrame:function(i){"undefined"==typeof window?$i.fakeRequestAnimationFrame(i):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||$i.fakeRequestAnimationFrame),window.requestAnimationFrame(i))},safeCallback:function(i){return function(){if(!b)return i.apply(null,arguments)}},safeRequestAnimationFrame:function(i){return $i.requestAnimationFrame(function(){b||i()})},safeSetTimeout:function(i,e){return t.noExitRuntime=!0,setTimeout(function(){b||i()},e)},safeSetInterval:function(i,e){return t.noExitRuntime=!0,setInterval(function(){b||i()},e)},getMimetype:function(i){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[i.substr(i.lastIndexOf(".")+1)]},getUserMedia:function(i){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(i)},getMovementX:function(i){return i.movementX||i.mozMovementX||i.webkitMovementX||0},getMovementY:function(i){return i.movementY||i.mozMovementY||i.webkitMovementY||0},getMouseWheelDelta:function(i){var t=0;switch(i.type){case"DOMMouseScroll":t=i.detail;break;case"mousewheel":t=-i.wheelDelta;break;case"wheel":t=i.deltaY;break;default:throw"unrecognized mouse wheel event: "+i.type}return Math.max(-1,Math.min(1,t))},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(i){if($i.pointerLock)"mousemove"!=i.type&&"mozMovementX"in i?$i.mouseMovementX=$i.mouseMovementY=0:($i.mouseMovementX=$i.getMovementX(i),$i.mouseMovementY=$i.getMovementY(i)),"undefined"!=typeof SDL?($i.mouseX=SDL.mouseX+$i.mouseMovementX,$i.mouseY=SDL.mouseY+$i.mouseMovementY):($i.mouseX+=$i.mouseMovementX,$i.mouseY+=$i.mouseMovementY);else{var e=t.canvas.getBoundingClientRect(),n=t.canvas.width,r=t.canvas.height,o=void 0!==window.scrollX?window.scrollX:window.pageXOffset,f=void 0!==window.scrollY?window.scrollY:window.pageYOffset;if("touchstart"===i.type||"touchend"===i.type||"touchmove"===i.type){var a=i.touch;if(void 0===a)return;var s=a.pageX-(o+e.left),c=a.pageY-(f+e.top),u={x:s*=n/e.width,y:c*=r/e.height};return void("touchstart"===i.type?($i.lastTouches[a.identifier]=u,$i.touches[a.identifier]=u):"touchend"!==i.type&&"touchmove"!==i.type||($i.lastTouches[a.identifier]=$i.touches[a.identifier],$i.touches[a.identifier]={x:s,y:c}))}var h=i.pageX-(o+e.left),l=i.pageY-(f+e.top);h*=n/e.width,l*=r/e.height,$i.mouseMovementX=h-$i.mouseX,$i.mouseMovementY=l-$i.mouseY,$i.mouseX=h,$i.mouseY=l}},xhrLoad:function(i,t,e){var n=new XMLHttpRequest;n.open("GET",i,!0),n.responseType="arraybuffer",n.onload=function(){200==n.status||0==n.status&&n.response?t(n.response):e()},n.onerror=e,n.send(null)},asyncLoad:function(i,t,e,n){$i.xhrLoad(i,function(e){_(e,'Loading data file "'+i+'" failed (no arrayBuffer).'),t(new Uint8Array(e)),n||wi()},function(t){if(!e)throw'Loading data file "'+i+'" failed.';e()}),n||_i()},resizeListeners:[],updateResizeListeners:function(){var i=t.canvas;$i.resizeListeners.forEach(function(t){t(i.width,i.height)})},setCanvasSize:function(i,e,n){var r=t.canvas;$i.updateCanvasDimensions(r,i,e),n||$i.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullScreenCanvasSize:function(){if("undefined"!=typeof SDL){var i=I[SDL.screen+0*h.QUANTUM_SIZE>>2];i|=8388608,L[SDL.screen+0*h.QUANTUM_SIZE>>2]=i}$i.updateResizeListeners()},setWindowedCanvasSize:function(){if("undefined"!=typeof SDL){var i=I[SDL.screen+0*h.QUANTUM_SIZE>>2];i&=-8388609,L[SDL.screen+0*h.QUANTUM_SIZE>>2]=i}$i.updateResizeListeners()},updateCanvasDimensions:function(i,e,n){e&&n?(i.widthNative=e,i.heightNative=n):(e=i.widthNative,n=i.heightNative);var r=e,o=n;if(t.forcedAspectRatio&&t.forcedAspectRatio>0&&(r/o<t.forcedAspectRatio?r=Math.round(o*t.forcedAspectRatio):o=Math.round(r/t.forcedAspectRatio)),(document.webkitFullScreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.mozFullscreenElement||document.fullScreenElement||document.fullscreenElement||document.msFullScreenElement||document.msFullscreenElement||document.webkitCurrentFullScreenElement)===i.parentNode&&"undefined"!=typeof screen){var f=Math.min(screen.width/r,screen.height/o);r=Math.round(r*f),o=Math.round(o*f)}$i.resizeCanvas?(i.width!=r&&(i.width=r),i.height!=o&&(i.height=o),void 0!==i.style&&(i.style.removeProperty("width"),i.style.removeProperty("height"))):(i.width!=e&&(i.width=e),i.height!=n&&(i.height=n),void 0!==i.style&&(r!=e||o!=n?(i.style.setProperty("width",r+"px","important"),i.style.setProperty("height",o+"px","important")):(i.style.removeProperty("width"),i.style.removeProperty("height"))))}};function Hi(i,t){return i%t}var qi=ai;var Ki=[];var Yi=oi;function Qi(i){return h.dynamicAlloc(i+8)+8&4294967288}t.Re=df,t.Pe=wr,t.Ne=Qi,t.Be=Hf;function Zi(i,t,e,n){var r=e*t;if(0==r)return 0;var o=Vi(Ui(n),i,r);if(-1==o){var f=Ni.getStreamFromPtr(n);return f&&(f.error=!0),0}return Math.floor(o/t)}function Ji(i){return i<0||0===i&&1/i==-1/0}function it(i,t){var e=i,n=0;function r(i){var e;return"double"===i?(L[mi>>2]=L[t+n>>2],L[mi+4>>2]=L[t+(n+4)>>2],e=+D[mi>>3]):"i64"==i?e=[L[t+n>>2],L[t+(n+4)>>2]]:(i="i32",e=L[t+n>>2]),n+=h.getNativeFieldSize(i),e}for(var o,f,a=[];;){var s=e;if(0===(o=x[e|0]))break;if(f=x[e+1|0],37==o){var c=!1,u=!1,l=!1,d=!1,v=!1;i:for(;;){switch(f){case 43:c=!0;break;case 45:u=!0;break;case 35:l=!0;break;case 48:if(d)break i;d=!0;break;case 32:v=!0;break;default:break i}e++,f=x[e+1|0]}var b=0;if(42==f)b=r("i32"),e++,f=x[e+1|0];else for(;f>=48&&f<=57;)b=10*b+(f-48),e++,f=x[e+1|0];var _,w=!1,p=-1;if(46==f){if(p=0,w=!0,e++,42==(f=x[e+1|0]))p=r("i32"),e++;else for(;;){var m=x[e+1|0];if(m<48||m>57)break;p=10*p+(m-48),e++}f=x[e+1|0]}switch(p<0&&(p=6,w=!1),String.fromCharCode(f)){case"h":104==x[e+2|0]?(e++,_=1):_=2;break;case"l":108==x[e+2|0]?(e++,_=8):_=4;break;case"L":case"q":case"j":_=8;break;case"z":case"t":case"I":_=4;break;default:_=null}switch(_&&e++,f=x[e+1|0],String.fromCharCode(f)){case"d":case"i":case"u":case"o":case"x":case"X":case"p":var y=100==f||105==f,k=I=r("i"+8*(_=_||4));if(8==_&&(I=h.makeBigInt(I[0],I[1],117==f)),_<=4)I=(y?ei:ti)(I&Math.pow(256,_)-1,8*_);var g=Math.abs(I),C="";if(100==f||105==f)T=8==_&&Ga?Ga.stringify(k[0],k[1],null):ei(I,8*_).toString(10);else if(117==f)T=8==_&&Ga?Ga.stringify(k[0],k[1],!0):ti(I,8*_).toString(10),I=Math.abs(I);else if(111==f)T=(l?"0":"")+g.toString(8);else if(120==f||88==f){if(C=l&&0!=I?"0x":"",8==_&&Ga)if(k[1]){T=(k[1]>>>0).toString(16);for(var j=(k[0]>>>0).toString(16);j.length<8;)j="0"+j;T+=j}else T=(k[0]>>>0).toString(16);else if(I<0){I=-I,T=(g-1).toString(16);for(var S=[],E=0;E<T.length;E++)S.push((15-parseInt(T[E],16)).toString(16));for(T=S.join("");T.length<2*_;)T="f"+T}else T=g.toString(16);88==f&&(C=C.toUpperCase(),T=T.toUpperCase())}else 112==f&&(0===g?T="(nil)":(C="0x",T=g.toString(16)));if(w)for(;T.length<p;)T="0"+T;for(I>=0&&(c?C="+"+C:v&&(C=" "+C)),"-"==T.charAt(0)&&(C="-"+C,T=T.substr(1));C.length+T.length<b;)u?T+=" ":d?T="0"+T:C=" "+C;(T=C+T).split("").forEach(function(i){a.push(i.charCodeAt(0))});break;case"f":case"F":case"e":case"E":case"g":case"G":var T,I=r("double");if(isNaN(I))T="nan",d=!1;else if(isFinite(I)){var A=!1,O=Math.min(p,20);if(103==f||71==f){A=!0,p=p||1;var R=parseInt(I.toExponential(O).split("e")[1],10);p>R&&R>=-4?(f=(103==f?"f":"F").charCodeAt(0),p-=R+1):(f=(103==f?"e":"E").charCodeAt(0),p--),O=Math.min(p,20)}101==f||69==f?(T=I.toExponential(O),/[eE][-+]\d$/.test(T)&&(T=T.slice(0,-1)+"0"+T.slice(-1))):102!=f&&70!=f||(T=I.toFixed(O),0===I&&Ji(I)&&(T="-"+T));var P=T.split("e");if(A&&!l)for(;P[0].length>1&&-1!=P[0].indexOf(".")&&("0"==P[0].slice(-1)||"."==P[0].slice(-1));)P[0]=P[0].slice(0,-1);else for(l&&-1==T.indexOf(".")&&(P[0]+=".");p>O++;)P[0]+="0";T=P[0]+(P.length>1?"e"+P[1]:""),69==f&&(T=T.toUpperCase()),I>=0&&(c?T="+"+T:v&&(T=" "+T))}else T=(I<0?"-":"")+"inf",d=!1;for(;T.length<b;)u?T+=" ":T=!d||"-"!=T[0]&&"+"!=T[0]?(d?"0":" ")+T:T[0]+"0"+T.slice(1);f<97&&(T=T.toUpperCase()),T.split("").forEach(function(i){a.push(i.charCodeAt(0))});break;case"s":var N=r("i8*"),B=N?kr(N):6;if(w&&(B=Math.min(B,p)),!u)for(;B<b--;)a.push(32);if(N)for(E=0;E<B;E++)a.push(M[N++|0]);else a=a.concat(Z("(null)".substr(0,B),!0));if(u)for(;B<b--;)a.push(32);break;case"c":for(u&&a.push(r("i8"));--b>0;)a.push(32);u||a.push(r("i8"));break;case"n":var F=r("i32*");L[F>>2]=a.length;break;case"%":a.push(o);break;default:for(E=s;E<e+2;E++)a.push(x[E|0])}e+=2}else a.push(o),e+=1}return a}function tt(i,t,e){var n=it(t,e),r=h.stackSave(),o=Zi(g(n,"i8",1),1,n.length,i);return h.stackRestore(r),o}if(gi=h.staticAlloc(4),L[gi>>2]=0,Gi.ret=g([0],"i8",2),Ni.staticInit(),z.unshift({func:function(){t.noFSInit||Ni.init.initialized||Ni.init()}}),X.push({func:function(){Ni.ignorePermissions=!1}}),$.push({func:function(){Ni.quit()}}),t.FS_createFolder=Ni.createFolder,t.FS_createPath=Ni.createPath,t.FS_createDataFile=Ni.createDataFile,t.FS_createPreloadedFile=Ni.createPreloadedFile,t.FS_createLazyFile=Ni.createLazyFile,t.FS_createLink=Ni.createLink,t.FS_createDevice=Ni.createDevice,z.unshift({func:function(){Ii.init()}}),$.push({func:function(){Ii.shutdown()}}),Ii.utf8=new h.UTF8Processor,r){var et=i("fs");Di.staticInit()}z.push({func:function(){Fi.root=Ni.mount(Fi,{},null)}}),t.requestFullScreen=function(i,t){$i.requestFullScreen(i,t)},t.requestAnimationFrame=function(i){$i.requestAnimationFrame(i)},t.setCanvasSize=function(i,t,e){$i.setCanvasSize(i,t,e)},t.pauseMainLoop=function(){$i.mainLoop.pause()},t.resumeMainLoop=function(){$i.mainLoop.resume()},t.getUserMedia=function(){$i.getUserMedia()},O=(P=h.alignMemory(R))+5242880,_((N=h.alignMemory(O))<F,"TOTAL_MEMORY not big enough for stack");var nt=g([8,7,6,6,5,5,5,5,4,4,4,4,4,4,4,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"i8",3),rt=g([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0],"i8",3);li=Math.min;var ot=function(i,t,e){var n=new i.Int8Array(e),r=new i.Int16Array(e),o=new i.Int32Array(e),f=new i.Uint8Array(e),a=new i.Uint16Array(e),s=(new i.Uint32Array(e),new i.Float32Array(e)),c=new i.Float64Array(e),u=0|t.STACKTOP,h=0|t.Fe,l=0,d=+t.NaN,v=0,b=(i.Math.floor,i.Math.abs),_=i.Math.sqrt,w=i.Math.pow,p=i.Math.cos,m=i.Math.sin,y=(i.Math.tan,i.Math.acos),k=(i.Math.asin,i.Math.atan,i.Math.atan2),g=(i.Math.exp,i.Math.log,i.Math.ceil,i.Math.imul),C=t.abort,j=t.Ve,S=t.Ue,x=t.Ge,M=t.We,E=t.ze,T=t.Xe,L=t.$e,I=t.He,A=t.qe,D=t.Ke,O=t.Ye,R=t.Qe,P=t.Ze,N=t.Je,B=t.tn,F=t.en,V=t.nn,U=t.rn,G=t.fn,W=t.an,z=t.sn;function X(i,t,e){t|=0,e|=0;var f,c=0,h=0,l=0,d=0,v=0,b=0,_=0,w=0,p=0,m=0,y=0,k=0,g=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0,L=0,I=0,A=0,D=0,O=0,R=0,P=0,N=0,B=0,F=0,V=0;if(f=u,u=u+128|0,l=0|o[(i|=0)+56>>2],1==(e-t|0)){if(0|n[i+60|0])N=(0|o[i+136>>2])+(l<<4)|0,P=(0|o[i+116>>2])+(t<<4)|0,o[N+0>>2]=o[P+0>>2],o[N+4>>2]=o[P+4>>2],o[N+8>>2]=o[P+8>>2],o[N+12>>2]=o[P+12>>2];else{w=(0|o[i+96>>2])+(l<<6)+0|0,A=(0|o[i+76>>2])+(t<<6)+0|0,L=w+64|0;do{o[w>>2]=o[A>>2],w=w+4|0,A=A+4|0}while((0|w)<(0|L))}return o[i+56>>2]=1+(0|o[i+56>>2]),void(u=f)}if((0|t)<(0|e)){v=!(0|n[i+60|0]),x=0,y=0,m=0,b=t;do{v?(N=0|o[i+76>>2],j=+s[N+(b<<6)>>2],g=+s[N+(b<<6)+4>>2],M=+s[N+(b<<6)+8>>2],S=+s[N+(b<<6)+16>>2],C=+s[N+(b<<6)+20>>2],p=+s[N+(b<<6)+24>>2]):(N=0|o[i+116>>2],E=+s[i+36>>2],T=+s[i+40>>2],I=+s[i+44>>2],S=+s[i+4>>2],C=+s[i+8>>2],p=+s[i+12>>2],j=+(0|a[N+(b<<4)>>1])/E+S,g=+(0|a[N+(b<<4)+2>>1])/T+C,M=+(0|a[N+(b<<4)+4>>1])/I+p,S=+(0|a[N+(b<<4)+6>>1])/E+S,C=+(0|a[N+(b<<4)+8>>1])/T+C,p=+(0|a[N+(b<<4)+10>>1])/I+p),x+=.5*(S+j),m+=.5*(C+g),y+=.5*(p+M),b=b+1|0}while((0|b)!=(0|e));if(p=x*(I=1/+(e-t|0)),m*=I,y*=I,v){v=0|o[i+76>>2],g=0,C=0,I=0,b=t;do{g+=(M=.5*(+s[v+(b<<6)+16>>2]+ +s[v+(b<<6)>>2])-p)*M,C+=(E=.5*(+s[v+(b<<6)+20>>2]+ +s[v+(b<<6)+4>>2])-m)*E,I+=(T=.5*(+s[v+(b<<6)+24>>2]+ +s[v+(b<<6)+8>>2])-y)*T,b=b+1|0}while((0|b)!=(0|e));p=+(e-t|0)}else{b=0|o[i+116>>2],j=+s[i+36>>2],x=+s[i+40>>2],M=+s[i+44>>2],T=+s[i+4>>2],S=+s[i+8>>2],E=+s[i+12>>2],g=0,C=0,I=0,v=t;do{g+=(V=.5*(+(0|a[b+(v<<4)+6>>1])/j+T+(+(0|a[b+(v<<4)>>1])/j+T))-p)*V,C+=(F=.5*(+(0|a[b+(v<<4)+8>>1])/x+S+(+(0|a[b+(v<<4)+2>>1])/x+S))-m)*F,I+=(B=.5*(+(0|a[b+(v<<4)+10>>1])/M+E+(+(0|a[b+(v<<4)+4>>1])/M+E))-y)*B,v=v+1|0}while((0|v)!=(0|e));p=+(e-t|0)}}else I=0,C=0,g=0,p=+(e-t|0);if(p=g*(y=1/(p+-1)),m=C*y,y*=I,v=p<m?m<y?2:1:p<y?2:0,o[f+16>>2]=0,o[f+20>>2]=0,o[f+24>>2]=0,o[f+28>>2]=0,(0|t)<(0|e)){b=!(0|n[i+60|0]),y=0,m=0,p=0,_=t;do{b?(N=0|o[i+76>>2],S=+s[N+(_<<6)+16>>2],C=+s[N+(_<<6)+20>>2],M=+s[N+(_<<6)+24>>2],j=+s[N+(_<<6)>>2],g=+s[N+(_<<6)+4>>2],x=+s[N+(_<<6)+8>>2]):(N=0|o[i+116>>2],B=+s[i+36>>2],F=+s[i+40>>2],V=+s[i+44>>2],j=+s[i+4>>2],g=+s[i+8>>2],x=+s[i+12>>2],S=+(0|a[N+(_<<4)+6>>1])/B+j,C=+(0|a[N+(_<<4)+8>>1])/F+g,M=+(0|a[N+(_<<4)+10>>1])/V+x,j=+(0|a[N+(_<<4)>>1])/B+j,g=+(0|a[N+(_<<4)+2>>1])/F+g,x=+(0|a[N+(_<<4)+4>>1])/V+x),y+=.5*(S+j),m=.5*(C+g)+m,p=.5*(M+x)+p,_=_+1|0}while((0|_)!=(0|e));s[f+16>>2]=y,s[f+20>>2]=m,s[f+24>>2]=p}else y=0,m=0,p=0;if(s[f+16>>2]=1/+(e-t|0)*y,s[f+20>>2]=1/+(e-t|0)*m,s[f+24>>2]=1/+(e-t|0)*p,p=+s[f+16+(v<<2)>>2],(0|t)<(0|e)){v=f+(v<<2)|0,_=t,b=t;do{if((w=!(0|n[i+60|0]))?(N=0|o[i+76>>2],j=+s[N+(_<<6)+16>>2],g=+s[N+(_<<6)+20>>2],S=+s[N+(_<<6)+24>>2],C=+s[N+(_<<6)>>2],y=+s[N+(_<<6)+4>>2],m=+s[N+(_<<6)+8>>2]):(N=0|o[i+116>>2],B=+s[i+36>>2],F=+s[i+40>>2],V=+s[i+44>>2],C=+s[i+4>>2],y=+s[i+8>>2],m=+s[i+12>>2],j=+(0|a[N+(_<<4)+6>>1])/B+C,g=+(0|a[N+(_<<4)+8>>1])/F+y,S=+(0|a[N+(_<<4)+10>>1])/V+m,C=+(0|a[N+(_<<4)>>1])/B+C,y=+(0|a[N+(_<<4)+2>>1])/F+y,m=+(0|a[N+(_<<4)+4>>1])/V+m),s[f>>2]=.5*(j+C),s[f+4>>2]=.5*(g+y),s[f+8>>2]=.5*(S+m),s[f+12>>2]=0,+s[v>>2]>p){if(w){A=(k=(D=0|o[i+76>>2])+(_<<6)|0)+0|0,L=(w=f+32|0)+64|0;do{o[w>>2]=o[A>>2],w=w+4|0,A=A+4|0}while((0|w)<(0|L));A=D+(b<<6)+0|0,L=(w=k+0|0)+64|0;do{o[w>>2]=o[A>>2],w=w+4|0,A=A+4|0}while((0|w)<(0|L));A=f+32|0,L=(w=(0|o[i+76>>2])+(b<<6)+0|0)+64|0;do{o[w>>2]=o[A>>2],w=w+4|0,A=A+4|0}while((0|w)<(0|L))}else N=(P=0|o[i+116>>2])+(_<<4)|0,o[f+96>>2]=o[N+0>>2],o[f+100>>2]=o[N+4>>2],o[f+104>>2]=o[N+8>>2],o[f+108>>2]=o[N+12>>2],P=P+(b<<4)|0,o[N+0>>2]=o[P+0>>2],o[N+4>>2]=o[P+4>>2],o[N+8>>2]=o[P+8>>2],o[N+12>>2]=o[P+12>>2],N=(0|o[i+116>>2])+(b<<4)|0,o[N+0>>2]=o[f+96>>2],o[N+4>>2]=o[f+100>>2],o[N+8>>2]=o[f+104>>2],o[N+12>>2]=o[f+108>>2];b=b+1|0}_=_+1|0}while((0|_)!=(0|e))}else b=t;(0|b)>(((e-t|0)/3|0)+t|0)&&(0|b)<(e+-1-((e-t|0)/3|0)|0)||(b=(e-t>>1)+t|0),v=0|o[i+56>>2];do{if(!(0|n[i+60|0])){if(_=(0|o[i+96>>2])+(v<<6)|0,o[_+0>>2]=o[i+20>>2],o[_+4>>2]=o[i+24>>2],o[_+8>>2]=o[i+28>>2],o[_+12>>2]=o[i+32>>2],_=0|o[i+56>>2],0|n[i+60|0]){g=+s[i+8>>2],m=+s[i+12>>2],C=+s[i+36>>2],y=+s[i+40>>2],p=+s[i+44>>2],w=0|o[i+136>>2],k=i+4|0,d=46;break}_=(0|o[i+96>>2])+(_<<6)+16|0,o[_+0>>2]=o[i+4>>2],o[_+4>>2]=o[i+8>>2],o[_+8>>2]=o[i+12>>2],o[_+12>>2]=o[i+16>>2],_=0|o[i+56>>2];break}w=0|o[i+136>>2],g=+s[i+8>>2],m=+s[i+12>>2],C=+s[i+36>>2],y=+s[i+40>>2],F=(+s[i+24>>2]-g)*y,p=+s[i+44>>2],V=(+s[i+28>>2]-m)*p,r[w+(v<<4)>>1]=65534&(+s[i+20>>2]-+s[i+4>>2])*C,r[w+(v<<4)+2>>1]=65534&F,r[w+(v<<4)+4>>1]=65534&V,_=v,k=i+4|0,d=46}while(0);if(46==(0|d)&&(V=+s[k>>2],r[w+(_<<4)+6>>1]=(V-V)*C+1&65535|1,r[w+(_<<4)+8>>1]=(g-g)*y+1&65535|1,r[w+(_<<4)+10>>1]=(m-m)*p+1&65535|1),(0|t)<(0|e)){w=0|n[i+60|0],d=t;do{w<<24>>24?(k=0|o[i+116>>2],g=+s[i+36>>2],x=+s[i+40>>2],I=+s[i+44>>2],C=+s[i+4>>2],M=+s[i+8>>2],B=+s[i+12>>2],j=+s[i+4>>2],E=+s[i+8>>2],F=+s[i+12>>2],S=+s[i+36>>2],T=+s[i+40>>2],V=+s[i+44>>2],N=65534&(+(0|a[k+(d<<4)>>1])/g+C-j)*S,O=65534&(+(0|a[k+(d<<4)+2>>1])/x+M-E)*T,L=65534&(+(0|a[k+(d<<4)+4>>1])/I+B-F)*V,R=65535&(+(0|a[k+(d<<4)+6>>1])/g+C-j)*S+1|1,D=65535&(+(0|a[k+(d<<4)+8>>1])/x+M-E)*T+1|1,k=65535&(+(0|a[k+(d<<4)+10>>1])/I+B-F)*V+1|1,A=0|o[i+136>>2],(0|a[(P=A+(_<<4)|0)>>1])>(65535&N)&&(r[P>>1]=N),(0|a[(P=A+(_<<4)+6|0)>>1])<(65535&R)&&(r[P>>1]=R),(0|a[(R=A+(_<<4)+2|0)>>1])>(65535&O)&&(r[R>>1]=O),(0|a[(O=A+(_<<4)+8|0)>>1])<(65535&D)&&(r[O>>1]=D),(0|a[(D=A+(_<<4)+4|0)>>1])>(65535&L)&&(r[D>>1]=L),(0|a[(L=A+(_<<4)+10|0)>>1])<(65535&k)&&(r[L>>1]=k)):(k=0|o[i+76>>2],x=+s[k+(d<<6)>>2],S=+s[k+(d<<6)+4>>2],j=+s[k+(d<<6)+8>>2],C=+s[k+(d<<6)+12>>2],g=+s[k+(d<<6)+16>>2],y=+s[k+(d<<6)+20>>2],m=+s[k+(d<<6)+24>>2],p=+s[k+(d<<6)+28>>2],k=0|o[i+96>>2],x<+s[(L=k+(_<<6)|0)>>2]&&(s[L>>2]=x),S<+s[(L=k+(_<<6)+4|0)>>2]&&(s[L>>2]=S),j<+s[(L=k+(_<<6)+8|0)>>2]&&(s[L>>2]=j),C<+s[(L=k+(_<<6)+12|0)>>2]&&(s[L>>2]=C),+s[(L=k+(_<<6)+16|0)>>2]<g&&(s[L>>2]=g),+s[(L=k+(_<<6)+20|0)>>2]<y&&(s[L>>2]=y),+s[(L=k+(_<<6)+24|0)>>2]<m&&(s[L>>2]=m),+s[(k=k+(_<<6)+28|0)>>2]<p&&(s[k>>2]=p)),d=d+1|0}while((0|d)!=(0|e))}_=_+1|0,o[i+56>>2]=_,X(i,t,b),t=0|o[i+56>>2],X(i,b,e),e=(0|o[i+56>>2])-l|0;do{if(0|n[i+60|0]){if(e<<4>2048){if(d=0|o[i+136>>2],b=(0|(b=0|o[d+(_<<4)+12>>2]))>-1?1:0-b|0,l=(0|(l=0|o[d+(t<<4)+12>>2]))>-1?1:0-l|0,b<<4<2049){if((0|(w=0|o[i+152>>2]))==(0|o[i+156>>2])&&(0|w)<(0|(h=0|w?w<<1:1))){if(0|h?(o[4546]=1+(0|o[4546]),0|(k=0|ye(h<<5|19))?(o[(k+19&-16)-4>>2]=k,k=k+19&-16):k=0,L=0|o[i+152>>2]):(L=w,k=0),(0|L)>0){A=0;do{N=k+(A<<5)|0,P=(0|o[i+160>>2])+(A<<5)|0,o[N+0>>2]=o[P+0>>2],o[N+4>>2]=o[P+4>>2],o[N+8>>2]=o[P+8>>2],o[N+12>>2]=o[P+12>>2],o[N+16>>2]=o[P+16>>2],o[N+20>>2]=o[P+20>>2],o[N+24>>2]=o[P+24>>2],o[N+28>>2]=o[P+28>>2],A=A+1|0}while((0|A)!=(0|L))}0|(L=0|o[i+160>>2])&&(0|n[i+164|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[L+-4>>2])),o[i+160>>2]=0),n[i+164|0]=1,o[i+160>>2]=k,o[i+156>>2]=h,h=0|o[i+152>>2]}else h=w;o[i+152>>2]=h+1,N=(0|o[i+160>>2])+(w<<5)|0,o[N+0>>2]=o[f+96>>2],o[N+4>>2]=o[f+100>>2],o[N+8>>2]=o[f+104>>2],o[N+12>>2]=o[f+108>>2],o[N+16>>2]=o[f+112>>2],o[N+20>>2]=o[f+116>>2],o[N+24>>2]=o[f+120>>2],o[N+28>>2]=o[f+124>>2],N=0|o[i+160>>2],r[N+(w<<5)>>1]=0|r[d+(_<<4)>>1],r[N+(w<<5)+2>>1]=0|r[d+(_<<4)+2>>1],r[N+(w<<5)+4>>1]=0|r[d+(_<<4)+4>>1],r[N+(w<<5)+6>>1]=0|r[d+(_<<4)+6>>1],r[N+(w<<5)+8>>1]=0|r[d+(_<<4)+8>>1],r[N+(w<<5)+10>>1]=0|r[d+(_<<4)+10>>1],o[N+(w<<5)+12>>2]=_,o[N+(w<<5)+16>>2]=b,b=i+152|0}else b=i+152|0;if(l<<4<2049){if((0|(h=0|o[b>>2]))==(0|o[i+156>>2])&&(0|h)<(0|(c=0|h?h<<1:1))){if(0|c?(o[4546]=1+(0|o[4546]),0|(_=0|ye(c<<5|19))?(o[(_+19&-16)-4>>2]=_,w=_+19&-16):w=0,_=0|o[b>>2]):(_=h,w=0),(0|_)>0){k=0;do{N=w+(k<<5)|0,P=(0|o[i+160>>2])+(k<<5)|0,o[N+0>>2]=o[P+0>>2],o[N+4>>2]=o[P+4>>2],o[N+8>>2]=o[P+8>>2],o[N+12>>2]=o[P+12>>2],o[N+16>>2]=o[P+16>>2],o[N+20>>2]=o[P+20>>2],o[N+24>>2]=o[P+24>>2],o[N+28>>2]=o[P+28>>2],k=k+1|0}while((0|k)!=(0|_))}0|(_=0|o[i+160>>2])&&(0|n[i+164|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[_+-4>>2])),o[i+160>>2]=0),n[i+164|0]=1,o[i+160>>2]=w,o[i+156>>2]=c,c=0|o[b>>2]}else c=h;o[b>>2]=c+1,N=(0|o[i+160>>2])+(h<<5)|0,o[N+0>>2]=o[f+32>>2],o[N+4>>2]=o[f+36>>2],o[N+8>>2]=o[f+40>>2],o[N+12>>2]=o[f+44>>2],o[N+16>>2]=o[f+48>>2],o[N+20>>2]=o[f+52>>2],o[N+24>>2]=o[f+56>>2],o[N+28>>2]=o[f+60>>2],N=0|o[i+160>>2],r[N+(h<<5)>>1]=0|r[d+(t<<4)>>1],r[N+(h<<5)+2>>1]=0|r[d+(t<<4)+2>>1],r[N+(h<<5)+4>>1]=0|r[d+(t<<4)+4>>1],r[N+(h<<5)+6>>1]=0|r[d+(t<<4)+6>>1],r[N+(h<<5)+8>>1]=0|r[d+(t<<4)+8>>1],r[N+(h<<5)+10>>1]=0|r[d+(t<<4)+10>>1],o[N+(h<<5)+12>>2]=t,o[N+(h<<5)+16>>2]=l}if(o[i+168>>2]=o[b>>2],!(0|n[i+60|0]))break;i=i+136|0}else i=i+136|0;return o[(0|o[i>>2])+(v<<4)+12>>2]=0-e,void(u=f)}}while(0);o[(0|o[i+96>>2])+(v<<6)+32>>2]=e,u=f}function $(i){var t,e=0;if(t=u,o[(i|=0)>>2]=14408,0|(e=0|o[i+160>>2])&&(0|n[i+164|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+160>>2]=0),n[i+164|0]=1,o[i+160>>2]=0,o[i+152>>2]=0,o[i+156>>2]=0,0|(e=0|o[i+136>>2])&&(0|n[i+140|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+136>>2]=0),n[i+140|0]=1,o[i+136>>2]=0,o[i+128>>2]=0,o[i+132>>2]=0,0|(e=0|o[i+116>>2])&&(0|n[i+120|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+116>>2]=0),n[i+120|0]=1,o[i+116>>2]=0,o[i+108>>2]=0,o[i+112>>2]=0,0|(e=0|o[i+96>>2])&&(0|n[i+100|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+96>>2]=0),n[i+100|0]=1,o[i+96>>2]=0,o[i+88>>2]=0,o[i+92>>2]=0,!(0|(e=0|o[i+76>>2])))return n[i+80|0]=1,o[i+76>>2]=0,o[i+68>>2]=0,o[(e=i+72|0)>>2]=0,void(u=t);0|n[i+80|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+76>>2]=0,n[i+80|0]=1,o[i+76>>2]=0,o[i+68>>2]=0,o[(e=i+72|0)>>2]=0,u=t}function H(i,t,e,n){i|=0,t|=0,e|=0,n|=0;var r,f=0,s=0;for(r=u;;){if(s=0|o[i+12>>2],!(((0|a[n>>1])>=(0|a[i>>1])?(0|a[e>>1])<=(0|a[i+6>>1]):0)&(0|a[e+4>>1])<=(0|a[i+10>>1])&(0|a[n+4>>1])>=(0|a[i+4>>1])&(0|a[e+2>>1])<=(0|a[i+8>>1])&(0|a[n+2>>1])>=(0|a[i+2>>1]))){f=8;break}if((0|s)>-1)break;H(i+16|0,t,e,n),(0|(s=0|o[i+28>>2]))>-1?i=i+32|0:i=i+(1-s<<4)|0}8!=(0|f)?(Pn[63&o[8+(0|o[t>>2])>>2]](t,s>>21,2097151&s),u=r):u=r}function q(i,t,e,n,r,f,a,c){i|=0,t|=0,n=+n,r=+r,f=+f,a|=0,c|=0;var h,l,d,v,b,w,p,m,y,k,g,C,j,S,x=0,M=0,E=0,T=0,L=0,I=0,A=0,D=0,O=0,R=0,P=0,N=0,B=0,F=0,V=0,U=0,G=0,W=0,z=0,X=0,$=0,H=0,q=0,K=0,Y=0;h=u,u=u+32|0,d=+s[(e|=0)>>2],v=+s[e+4>>2],S=+s[e+8>>2],y=(d>n?n:d)+(z=+s[a>>2]),b=(v>r?r:v)+(X=+s[a+4>>2]),p=(S>f?f:S)+($=+s[a+8>>2]),k=(d<n?n:d)+(U=+s[c>>2]),w=(v<r?r:v)+(G=+s[c+4>>2]),m=(S<f?f:S)+(W=+s[c+8>>2]),C=(T=(n-d)*(l=1/+_(+((n-d)*(n-d)+(r-v)*(r-v)+(f-S)*(f-S))))==0?0xde0b6b000000000:1/((n-d)*l))<0&1,g=(E=(r-v)*l==0?0xde0b6b000000000:1/((r-v)*l))<0&1,j=(M=(f-S)*l==0?0xde0b6b000000000:1/((f-S)*l))<0&1,V=0|o[i+56>>2];i:do{if((0|V)>0)for(B=0,F=0|o[i+96>>2],N=1;;){if(o[h+0>>2]=o[F+0>>2],o[h+4>>2]=o[F+4>>2],o[h+8>>2]=o[F+8>>2],o[h+12>>2]=o[F+12>>2],Y=F+16|0,o[h+16>>2]=o[Y+0>>2],o[h+20>>2]=o[Y+4>>2],o[h+24>>2]=o[Y+8>>2],o[h+28>>2]=o[Y+12>>2],s[h>>2]=+s[h>>2]-U,s[h+4>>2]=+s[h+4>>2]-G,s[h+8>>2]=+s[h+8>>2]-W,s[h+16>>2]=+s[h+16>>2]-z,s[h+20>>2]=+s[h+20>>2]-X,s[h+24>>2]=+s[h+24>>2]-$,H=y>+s[Y>>2]||k<+s[F>>2]?0:1,(p>+s[F+24>>2]||m<+s[F+8>>2])&&(H=0),!(b>+s[F+20>>2]||w<+s[F+4>>2]|1^H||(P=+s[e>>2],R=T*(+s[h+(C<<4)>>2]-P),P=T*(+s[h+((1^C)<<4)>>2]-P),x=+s[e+4>>2],O=E*(+s[h+(g<<4)+4>>2]-x),x=E*(+s[h+((1^g)<<4)+4>>2]-x),R>x|O>P)||(D=O>R?O:R,I=x<P?x:P,L=+s[e+8>>2],A=M*(+s[h+(j<<4)+8>>2]-L),L=M*(+s[h+((1^j)<<4)+8>>2]-L),D>L|A>I))&&(A>D?A:D)<(f-S)*(f-S)*l+((n-d)*(n-d)*l+(r-v)*(r-v)*l)?(Y=(L<I?L:I)>0,-1==(0|(H=0|o[F+32>>2]))&Y?(Pn[63&o[8+(0|o[t>>2])>>2]](t,0|o[F+36>>2],0|o[F+40>>2]),V=0|o[i+56>>2],H=24):(q=H,K=-1==(0|H),H=23)):(q=K=0|o[F+32>>2],K=-1==(0|K),Y=0,H=23),23==(0|H)&&(H=0,Y|K?H=24:(B=q+B|0,F=F+(q<<6)|0)),24==(0|H)&&(B=B+1|0,F=F+64|0),(0|B)>=(0|V))break i;U=+s[c>>2],G=+s[c+4>>2],W=+s[c+8>>2],z=+s[a>>2],X=+s[a+4>>2],$=+s[a+8>>2],N=N+1|0}else N=0}while(0);(0|o[3610])>=(0|N)||(o[3610]=N),u=h}function K(i,t,e,n,f,c,h,l,d){i|=0,t|=0,n=+n,f=+f,c=+c,h|=0,l|=0,d|=0;var v,b,w,p,m,y,k,g,C,j,S,x,M,E,T,L,I,A,D,O,R,P,N=0,B=0,F=0,V=0,U=0,G=0,W=0,z=0,X=0,$=0,H=0,q=0,K=0,Y=0,Q=0,Z=0,J=0,ii=0,ti=0,ei=0,ni=0,ri=0,oi=0,fi=0,ai=0,si=0,ci=0,ui=0,hi=0;if(v=u,u=u+32|0,p=+s[(e|=0)>>2],m=+s[e+4>>2],k=+s[e+8>>2],b=(X=(n-p)*(w=1/+_(+((n-p)*(n-p)+(f-m)*(f-m)+(c-k)*(c-k))))==0?0xde0b6b000000000:1/((n-p)*w))<0&1,g=($=(f-m)*w==0?0xde0b6b000000000:1/((f-m)*w))<0&1,y=(H=(c-k)*w==0?0xde0b6b000000000:1/((c-k)*w))<0&1,hi=(p>n?n:p)+ +s[h>>2],ui=(m>f?f:m)+ +s[h+4>>2],ci=(k>c?c:k)+ +s[h+8>>2],ai=(p<n?n:p)+ +s[l>>2],fi=(m<f?f:m)+ +s[l+4>>2],oi=(k<c?c:k)+ +s[l+8>>2],hi=hi<(P=+s[i+4>>2])?P:hi,ui=ui<(D=+s[i+8>>2])?D:ui,ci=ci<(L=+s[i+12>>2])?L:ci,si=+s[i+20>>2],O=+s[i+24>>2],I=+s[i+28>>2],j=65534&((si<hi?si:hi)-P)*(R=+s[i+36>>2]),M=65534&((O<ui?O:ui)-D)*(A=+s[i+40>>2]),S=65534&((I<ci?I:ci)-L)*(T=+s[i+44>>2]),C=65535&((si<(ai=ai<P?P:ai)?si:ai)-P)*R+1|1,E=65535&((O<(fi=fi<D?D:fi)?O:fi)-D)*A+1|1,x=65535&((I<(oi=oi<L?L:oi)?I:oi)-L)*T+1|1,(0|d)>0){q=0,Y=0|o[i+136>>2],K=0;do{K=K+1|0,J=Y+6|0,ni=0|r[Y>>1],ri=Y+10|0,ti=0|r[Y+4>>1],ii=Y+8|0,ei=0|r[Y+2>>1],Z=(0|o[(Q=Y+12|0)>>2])>-1,!(!(((65535&C)>=(65535&ni)?(65535&j)<=(0|a[J>>1]):0)&(65535&S)<=(0|a[ri>>1])&(65535&x)>=(65535&ti)&(65535&M)<=(0|a[ii>>1])&(65535&E)>=(65535&ei))||(ai=+s[i+36>>2],ci=+s[i+40>>2],hi=+s[i+44>>2],si=+s[i+4>>2],ui=+s[i+8>>2],U=+s[i+12>>2],s[v+12>>2]=0,W=+(0|a[J>>1])/ai+si,G=+(0|a[ii>>1])/ci+ui,z=+(0|a[ri>>1])/hi+U,s[v+28>>2]=0,s[v>>2]=+(65535&ni)/ai+si-+s[l>>2],s[v+4>>2]=+(65535&ei)/ci+ui-+s[l+4>>2],s[v+8>>2]=+(65535&ti)/hi+U-+s[l+8>>2],s[v+16>>2]=W-+s[h>>2],s[v+20>>2]=G-+s[h+4>>2],s[v+24>>2]=z-+s[h+8>>2],z=+s[e>>2],G=X*(+s[v+(b<<4)>>2]-z),z=X*(+s[v+((1^b)<<4)>>2]-z),W=+s[e+4>>2],U=$*(+s[v+(g<<4)+4>>2]-W),W=$*(+s[v+((1^g)<<4)+4>>2]-W),G>W|U>z)||(V=U>G?U:G,B=W<z?W:z,N=+s[e+8>>2],F=H*(+s[v+(y<<4)+8>>2]-N),N=H*(+s[v+((1^y)<<4)+8>>2]-N),V>N|F>B))&&(F>V?F:V)<(c-k)*(c-k)*w+((n-p)*(n-p)*w+(f-m)*(f-m)*w)?(ii=!((N<B?N:B)>0))|1^Z?J=15:(J=0|o[Q>>2],Pn[63&o[8+(0|o[t>>2])>>2]](t,J>>21,2097151&J),J=16):(ii=1,J=15),15==(0|J)&&(J=0,Z|1^ii?J=16:(q=q-(ri=0|o[Q>>2])|0,Y=Y+(0-ri<<4)|0)),16==(0|J)&&(q=q+1|0,Y=Y+16|0)}while((0|q)<(0|d))}else K=0;(0|o[3610])>=(0|K)||(o[3610]=K),u=v}function Y(i,t,e,f){t|=0,e|=0,f|=0;var c=0,h=0,l=0,d=0,v=0,b=0,_=0;if(e=u,o[(i|=0)+168>>2]=o[i+152>>2],o[t>>2]=14408,o[t+52>>2]=282,n[t+60|0]=0,n[t+80|0]=1,o[t+76>>2]=0,o[t+68>>2]=0,o[t+72>>2]=0,n[t+100|0]=1,o[t+96>>2]=0,o[t+88>>2]=0,o[t+92>>2]=0,n[t+120|0]=1,o[t+116>>2]=0,o[t+108>>2]=0,o[t+112>>2]=0,n[t+140|0]=1,o[t+136>>2]=0,o[t+128>>2]=0,o[t+132>>2]=0,o[t+144>>2]=0,n[t+164|0]=1,o[t+160>>2]=0,o[t+152>>2]=0,o[t+156>>2]=0,o[t+168>>2]=0,s[t+4>>2]=-34028234663852886e22,s[t+8>>2]=-34028234663852886e22,s[t+12>>2]=-34028234663852886e22,s[t+16>>2]=0,s[t+20>>2]=34028234663852886e22,s[t+24>>2]=34028234663852886e22,s[t+28>>2]=34028234663852886e22,s[t+32>>2]=0,c=0|o[i+56>>2],f?(o[t+56>>2]=0|Me(0|c),n[t+4|0]=0|n[i+7|0],n[t+5|0]=0|n[i+6|0],n[t+6|0]=0|n[i+5|0],n[t+7|0]=0|n[i+4|0],n[t+8|0]=0|n[i+11|0],n[t+9|0]=0|n[i+10|0],n[t+10|0]=0|n[i+9|0],n[t+11|0]=0|n[i+8|0],n[t+12|0]=0|n[i+15|0],n[t+13|0]=0|n[i+14|0],n[t+14|0]=0|n[i+13|0],n[t+15|0]=0|n[i+12|0],n[t+16|0]=0|n[i+19|0],n[t+17|0]=0|n[i+18|0],n[t+18|0]=0|n[i+17|0],n[t+19|0]=0|n[i+16|0],n[t+20|0]=0|n[i+23|0],n[t+21|0]=0|n[i+22|0],n[t+22|0]=0|n[i+21|0],n[t+23|0]=0|n[i+20|0],n[t+24|0]=0|n[i+27|0],n[t+25|0]=0|n[i+26|0],n[t+26|0]=0|n[i+25|0],n[t+27|0]=0|n[i+24|0],n[t+28|0]=0|n[i+31|0],n[t+29|0]=0|n[i+30|0],n[t+30|0]=0|n[i+29|0],n[t+31|0]=0|n[i+28|0],n[t+32|0]=0|n[i+35|0],n[t+33|0]=0|n[i+34|0],n[t+34|0]=0|n[i+33|0],n[t+35|0]=0|n[i+32|0],n[t+36|0]=0|n[i+39|0],n[t+37|0]=0|n[i+38|0],n[t+38|0]=0|n[i+37|0],n[t+39|0]=0|n[i+36|0],n[t+40|0]=0|n[i+43|0],n[t+41|0]=0|n[i+42|0],n[t+42|0]=0|n[i+41|0],n[t+43|0]=0|n[i+40|0],n[t+44|0]=0|n[i+47|0],n[t+45|0]=0|n[i+46|0],n[t+46|0]=0|n[i+45|0],n[t+47|0]=0|n[i+44|0],n[t+48|0]=0|n[i+51|0],n[t+49|0]=0|n[i+50|0],n[t+50|0]=0|n[i+49|0],n[t+51|0]=0|n[i+48|0],o[t+144>>2]=0|Me(0|o[i+144>>2]),c=0|Me(0|o[i+168>>2])):(o[t+56>>2]=c,o[t+4>>2]=o[i+4>>2],o[t+8>>2]=o[i+8>>2],o[t+12>>2]=o[i+12>>2],o[t+16>>2]=o[i+16>>2],o[t+20>>2]=o[i+20>>2],o[t+24>>2]=o[i+24>>2],o[t+28>>2]=o[i+28>>2],o[t+32>>2]=o[i+32>>2],o[t+36>>2]=o[i+36>>2],o[t+40>>2]=o[i+40>>2],o[t+44>>2]=o[i+44>>2],o[t+48>>2]=o[i+48>>2],o[t+144>>2]=o[i+144>>2],c=0|o[i+168>>2]),o[t+168>>2]=c,n[t+60|0]=0|n[i+60|0],c=0|o[i+56>>2],0|n[i+60|0]){if(0|(h=0|o[t+136>>2])&&(0|n[t+140|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[h+-4>>2])),o[t+136>>2]=0),o[t+128>>2]=0,o[t+132>>2]=0,o[t+136>>2]=0,n[t+140|0]=0,o[t+136>>2]=t+172,o[t+128>>2]=c,o[t+132>>2]=c,f){if((0|c)>0){h=0|o[i+136>>2],l=0;do{_=0|a[h+(l<<4)>>1],r[t+172+(l<<4)>>1]=_>>>8|_<<8,_=0|a[h+(l<<4)+2>>1],r[t+172+(l<<4)+2>>1]=_>>>8|_<<8,_=0|a[h+(l<<4)+4>>1],r[t+172+(l<<4)+4>>1]=_>>>8|_<<8,_=0|a[h+(l<<4)+6>>1],r[t+172+(l<<4)+6>>1]=_>>>8|_<<8,_=0|a[h+(l<<4)+8>>1],r[t+172+(l<<4)+8>>1]=_>>>8|_<<8,_=0|a[h+(l<<4)+10>>1],r[t+172+(l<<4)+10>>1]=_>>>8|_<<8,o[t+172+(l<<4)+12>>2]=0|Me(0|o[h+(l<<4)+12>>2]),l=l+1|0}while((0|l)!=(0|c))}}else if((0|c)>0){h=0|o[i+136>>2],l=0;do{r[t+172+(l<<4)>>1]=0|r[h+(l<<4)>>1],r[t+172+(l<<4)+2>>1]=0|r[h+(l<<4)+2>>1],r[t+172+(l<<4)+4>>1]=0|r[h+(l<<4)+4>>1],r[t+172+(l<<4)+6>>1]=0|r[h+(l<<4)+6>>1],r[t+172+(l<<4)+8>>1]=0|r[h+(l<<4)+8>>1],r[t+172+(l<<4)+10>>1]=0|r[h+(l<<4)+10>>1],o[t+172+(l<<4)+12>>2]=o[h+(l<<4)+12>>2],l=l+1|0}while((0|l)!=(0|c))}o[t+128>>2]=0,o[t+132>>2]=0,o[t+136>>2]=0,n[t+140|0]=0,c<<=4}else{if(0|(h=0|o[t+96>>2])&&(0|n[t+100|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[h+-4>>2])),o[t+96>>2]=0),o[t+88>>2]=0,o[t+92>>2]=0,o[t+96>>2]=0,n[t+100|0]=0,o[t+96>>2]=t+172,o[t+88>>2]=c,o[t+92>>2]=c,f)if((0|c)>0){h=0|o[i+96>>2],d=t+172|0,l=0;do{v=h+(l<<6)|0,n[(_=d+(l<<6)|0)|0]=0|n[v+3|0],n[_+1|0]=0|n[v+2|0],n[_+2|0]=0|n[v+1|0],n[_+3|0]=0|n[v|0],_=h+(l<<6)+4|0,n[(v=d+(l<<6)+4|0)|0]=0|n[_+3|0],n[v+1|0]=0|n[_+2|0],n[v+2|0]=0|n[_+1|0],n[v+3|0]=0|n[_|0],v=h+(l<<6)+8|0,n[(_=d+(l<<6)+8|0)|0]=0|n[v+3|0],n[_+1|0]=0|n[v+2|0],n[_+2|0]=0|n[v+1|0],n[_+3|0]=0|n[v|0],_=h+(l<<6)+12|0,n[(d=d+(l<<6)+12|0)|0]=0|n[_+3|0],n[d+1|0]=0|n[_+2|0],n[d+2|0]=0|n[_+1|0],n[d+3|0]=0|n[_|0],_=(d=0|o[i+96>>2])+(l<<6)+16|0,v=0|o[t+96>>2],n[(b=v+(l<<6)+16|0)|0]=0|n[_+3|0],n[b+1|0]=0|n[_+2|0],n[b+2|0]=0|n[_+1|0],n[b+3|0]=0|n[_|0],b=d+(l<<6)+20|0,n[(_=v+(l<<6)+20|0)|0]=0|n[b+3|0],n[_+1|0]=0|n[b+2|0],n[_+2|0]=0|n[b+1|0],n[_+3|0]=0|n[b|0],_=d+(l<<6)+24|0,n[(b=v+(l<<6)+24|0)|0]=0|n[_+3|0],n[b+1|0]=0|n[_+2|0],n[b+2|0]=0|n[_+1|0],n[b+3|0]=0|n[_|0],d=d+(l<<6)+28|0,n[(v=v+(l<<6)+28|0)|0]=0|n[d+3|0],n[v+1|0]=0|n[d+2|0],n[v+2|0]=0|n[d+1|0],n[v+3|0]=0|n[d|0],h=0|o[i+96>>2],v=0|Me(0|o[h+(l<<6)+32>>2]),d=0|o[t+96>>2],o[d+(l<<6)+32>>2]=v,o[d+(l<<6)+36>>2]=0|Me(0|o[h+(l<<6)+36>>2]),o[d+(l<<6)+40>>2]=0|Me(0|o[h+(l<<6)+40>>2]),l=l+1|0}while((0|l)!=(0|c))}else d=t+172|0;else if((0|c)>0){d=t+172|0,h=0|o[i+96>>2],l=0;do{_=h+(l<<6)|0,o[(d=d+(l<<6)|0)+0>>2]=o[_+0>>2],o[d+4>>2]=o[_+4>>2],o[d+8>>2]=o[_+8>>2],o[d+12>>2]=o[_+12>>2],d=(0|o[t+96>>2])+(l<<6)+16|0,_=(0|o[i+96>>2])+(l<<6)+16|0,o[d+0>>2]=o[_+0>>2],o[d+4>>2]=o[_+4>>2],o[d+8>>2]=o[_+8>>2],o[d+12>>2]=o[_+12>>2],h=0|o[i+96>>2],d=0|o[t+96>>2],o[d+(l<<6)+32>>2]=o[h+(l<<6)+32>>2],o[d+(l<<6)+36>>2]=o[h+(l<<6)+36>>2],o[d+(l<<6)+40>>2]=o[h+(l<<6)+40>>2],l=l+1|0}while((0|l)!=(0|c))}else d=t+172|0;0|d&&(0|n[t+100|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[d+-4>>2])),o[t+96>>2]=0),o[t+88>>2]=0,o[t+92>>2]=0,o[t+96>>2]=0,n[t+100|0]=0,c<<=6}if(c=t+(c+172)|0,l=0|o[i+168>>2],0|(h=0|o[t+160>>2])&&(0|n[t+164|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[h+-4>>2])),o[t+160>>2]=0),o[t+152>>2]=0,o[t+156>>2]=0,o[t+160>>2]=0,n[t+164|0]=0,o[t+160>>2]=c,o[t+152>>2]=l,o[t+156>>2]=l,h=(0|o[i+168>>2])>0,f){if(!h)return o[t>>2]=0,o[t+152>>2]=0,o[t+156>>2]=0,o[t+160>>2]=0,n[t+164|0]=0,u=e,1;h=0|o[i+160>>2],f=0;do{_=0|a[h+(f<<5)>>1],r[c+(f<<5)>>1]=_>>>8|_<<8,_=0|a[h+(f<<5)+2>>1],r[c+(f<<5)+2>>1]=_>>>8|_<<8,_=0|a[h+(f<<5)+4>>1],r[c+(f<<5)+4>>1]=_>>>8|_<<8,_=0|a[h+(f<<5)+6>>1],r[c+(f<<5)+6>>1]=_>>>8|_<<8,_=0|a[h+(f<<5)+8>>1],r[c+(f<<5)+8>>1]=_>>>8|_<<8,_=0|a[h+(f<<5)+10>>1],r[c+(f<<5)+10>>1]=_>>>8|_<<8,o[c+(f<<5)+12>>2]=0|Me(0|o[h+(f<<5)+12>>2]),o[c+(f<<5)+16>>2]=0|Me(0|o[h+(f<<5)+16>>2]),f=f+1|0}while((0|f)<(0|o[i+168>>2]));return o[t>>2]=0,o[t+152>>2]=0,o[t+156>>2]=0,o[t+160>>2]=0,n[t+164|0]=0,u=e,1}if(!h)return o[t>>2]=0,o[t+152>>2]=0,o[t+156>>2]=0,o[t+160>>2]=0,n[t+164|0]=0,u=e,1;f=0|o[i+160>>2],h=0;do{r[c+(h<<5)>>1]=0|r[f+(h<<5)>>1],r[c+(h<<5)+2>>1]=0|r[f+(h<<5)+2>>1],r[c+(h<<5)+4>>1]=0|r[f+(h<<5)+4>>1],r[c+(h<<5)+6>>1]=0|r[f+(h<<5)+6>>1],r[c+(h<<5)+8>>1]=0|r[f+(h<<5)+8>>1],r[c+(h<<5)+10>>1]=0|r[f+(h<<5)+10>>1],o[c+(h<<5)+12>>2]=o[f+(h<<5)+12>>2],o[c+(h<<5)+16>>2]=o[f+(h<<5)+16>>2],o[c+(h<<5)+20>>2]=0,o[c+(h<<5)+24>>2]=0,o[c+(h<<5)+28>>2]=0,h=h+1|0}while((0|h)<(0|o[i+168>>2]));return o[t>>2]=0,o[t+152>>2]=0,o[t+156>>2]=0,o[t+160>>2]=0,n[t+164|0]=0,u=e,1}function Q(i){var t,e=0;if(t=u,o[(i|=0)>>2]=14896,0|(e=0|o[i+56>>2])&&(0|n[i+60|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+56>>2]=0),n[i+60|0]=1,o[i+56>>2]=0,o[i+48>>2]=0,o[i+52>>2]=0,0|(e=0|o[i+36>>2])&&(0|n[i+40|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+36>>2]=0),n[i+40|0]=1,o[i+36>>2]=0,o[i+28>>2]=0,o[i+32>>2]=0,!(0|(e=0|o[i+16>>2])))return e=i+12|0,n[i+20|0]=1,o[i+16>>2]=0,o[i+8>>2]=0,o[e>>2]=0,void(u=t);0|n[i+20|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+16>>2]=0,e=i+12|0,n[i+20|0]=1,o[i+16>>2]=0,o[i+8>>2]=0,o[e>>2]=0,u=t}function Z(i,t,e){i|=0,t|=0,e|=0;var n,r=0,f=0,a=0,s=0,c=0,h=0,l=0,d=0;for(n=u;;){for(r=0|o[i+12>>2],f=0|o[r+((t+e|0)/2<<2)>>2],h=t,c=e;;){if((0|(a=0|o[208+(0|o[f+740>>2])>>2]))>-1)for(;s=0|o[r+(h<<2)>>2],(0|(l=0|o[208+(0|o[s+740>>2])>>2]))>-1||(l=0|o[208+(0|o[s+744>>2])>>2]),(0|l)<(0|a);)h=h+1|0;else for(l=0|o[208+(0|o[f+744>>2])>>2];s=0|o[r+(h<<2)>>2],(0|(d=0|o[208+(0|o[s+740>>2])>>2]))>-1||(d=0|o[208+(0|o[s+744>>2])>>2]),(0|d)<(0|l);)h=h+1|0;if((0|a)>-1)for(;l=0|o[r+(c<<2)>>2],(0|(d=0|o[208+(0|o[l+740>>2])>>2]))>-1||(d=0|o[208+(0|o[l+744>>2])>>2]),(0|a)<(0|d);)c=c+-1|0;else for(a=0|o[208+(0|o[f+744>>2])>>2];l=0|o[r+(c<<2)>>2],(0|(d=0|o[208+(0|o[l+740>>2])>>2]))>-1||(d=0|o[208+(0|o[l+744>>2])>>2]),(0|a)<(0|d);)c=c+-1|0;if((0|h)<=(0|c)&&(o[r+(h<<2)>>2]=l,o[(0|o[i+12>>2])+(c<<2)>>2]=s,h=h+1|0,c=c+-1|0),(0|h)>(0|c))break;r=0|o[i+12>>2]}if((0|c)>(0|t)&&Z(i,t,c),!((0|h)<(0|e)))break;t=h}u=n}function J(i,t,e,r,f,a){t|=0,e|=0,r|=0,f|=0,a|=0;var c,h,l,d,v,b,w,p,m,y,k,g,C,j,S,x,M,E,T,L=0,I=0,A=0,D=0,O=0,R=0,P=0,N=0,B=0,F=0,V=0,U=0,G=0,W=0,z=0,X=0,$=0,H=0,q=0,K=0,Y=0,Q=0,Z=0,J=0,ii=0,ti=0,ei=0,ni=0,ri=0,oi=0,fi=0;c=u,u=u+128|0,oi=0|o[(i|=0)+4>>2],n[oi+312|0]=0,o[oi>>2]=0,n[oi+356|0]=1,s[oi+292>>2]=0xde0b6b000000000,s[oi+296>>2]=0xde0b6b000000000,s[oi+300>>2]=0xde0b6b000000000,s[oi+304>>2]=0,o[oi+336>>2]=0,o[oi+340>>2]=0,o[oi+344>>2]=0,o[oi+348>>2]=0,n[oi+352|0]=0,n[oi+332|0]=-16&n[oi+332|0],U=+s[t+48>>2],H=+s[t+52>>2],W=+s[t+56>>2],Y=+s[r+48>>2],q=+s[r+52>>2],G=+s[r+56>>2],M=+s[t>>2],I=+s[t+4>>2],v=+s[t+8>>2],E=+s[t+16>>2],C=+s[t+20>>2],b=+s[t+24>>2],y=+s[t+32>>2],A=+s[t+36>>2],w=+s[t+40>>2],p=+s[r>>2],k=+s[r+4>>2],j=+s[r+8>>2],m=+s[r+16>>2],g=+s[r+20>>2],S=+s[r+24>>2],T=+s[r+32>>2],L=+s[r+36>>2],x=+s[r+40>>2],l=+s[e+48>>2]-U-(+s[f+48>>2]-Y),h=+s[e+52>>2]-H-(+s[f+52>>2]-q),d=+s[e+56>>2]-W-(+s[f+56>>2]-G),oi=0|o[i+8>>2],ni=0|o[64+(0|o[oi>>2])>>2],s[c+96>>2]=M*-l+E*-h+y*-d,s[c+100>>2]=I*-l+C*-h+A*-d,s[c+104>>2]=v*-l+b*-h+w*-d,s[c+108>>2]=0,Pn[63&ni](c+112|0,oi,c+96|0),ii=+s[c+112>>2],ri=+s[c+116>>2],K=+s[c+120>>2],Q=ii*+s[t>>2]+ri*+s[t+4>>2]+K*+s[t+8>>2]+ +s[t+48>>2],Z=ii*+s[t+16>>2]+ri*+s[t+20>>2]+K*+s[t+24>>2]+ +s[t+52>>2],K=ii*+s[t+32>>2]+ri*+s[t+36>>2]+K*+s[t+40>>2]+ +s[t+56>>2],oi=0|o[i+12>>2],ni=0|o[64+(0|o[oi>>2])>>2],ri=l*+s[r+4>>2]+h*+s[r+20>>2]+d*+s[r+36>>2],ii=l*+s[r+8>>2]+h*+s[r+24>>2]+d*+s[r+40>>2],s[c+64>>2]=l*+s[r>>2]+h*+s[r+16>>2]+d*+s[r+32>>2],s[c+68>>2]=ri,s[c+72>>2]=ii,s[c+76>>2]=0,Pn[63&ni](c+80|0,oi,c+64|0),ii=+s[c+80>>2],ri=+s[c+84>>2],J=+s[c+88>>2],Q-=ii*+s[r>>2]+ri*+s[r+4>>2]+J*+s[r+8>>2]+ +s[r+48>>2],Z-=ii*+s[r+16>>2]+ri*+s[r+20>>2]+J*+s[r+24>>2]+ +s[r+52>>2],J=K-(ii*+s[r+32>>2]+ri*+s[r+36>>2]+J*+s[r+40>>2]+ +s[r+56>>2]);i:do{if(Q*Q+Z*Z+J*J>9999999747378752e-20){for(z=0,$=0,K=0,X=0,O=0,D=32,ii=0;;){if(!(0|D))break i;if(D=D+-1|0,oi=0|o[i+8>>2],ni=0|o[64+(0|o[oi>>2])>>2],R=-Q,fi=-Z,ri=-J,s[c+32>>2]=M*R+E*fi+y*ri,s[c+36>>2]=I*R+C*fi+A*ri,s[c+40>>2]=v*R+b*fi+w*ri,s[c+44>>2]=0,Pn[63&ni](c+48|0,oi,c+32|0),P=U+(M*(ri=+s[c+48>>2])+I*(fi=+s[c+52>>2])+v*(R=+s[c+56>>2])),B=H+(E*ri+C*fi+b*R),R=W+(y*ri+A*fi+w*R),oi=0|o[i+12>>2],ni=0|o[64+(0|o[oi>>2])>>2],s[c>>2]=p*Q+m*Z+T*J,s[c+4>>2]=k*Q+g*Z+L*J,s[c+8>>2]=j*Q+S*Z+x*J,s[c+12>>2]=0,Pn[63&ni](c+16|0,oi,c),ri=Q*(P-(N=Y+(p*(fi=+s[c+16>>2])+k*(ri=+s[c+20>>2])+j*(F=+s[c+24>>2]))))+Z*(B-(V=q+(m*fi+g*ri+S*F)))+J*(R-(F=G+(T*fi+L*ri+x*F))),O>1){a=0,f=24;break}if(ri>0){if((U=l*Q+h*Z+d*J)>=-14210854715202004e-30){a=0,f=24;break}W=(1-(O-=ri/U))*+s[t+56>>2]+O*+s[e+56>>2],H=(1-O)*+s[t+52>>2]+O*+s[e+52>>2],U=+s[t+48>>2]*(1-O)+O*+s[e+48>>2],G=(1-O)*+s[r+56>>2]+O*+s[f+56>>2],q=(1-O)*+s[r+52>>2]+O*+s[f+52>>2],Y=(1-O)*+s[r+48>>2]+O*+s[f+48>>2],X=ii,K=J,$=Z,z=Q}if(ti=0|o[i+4>>2],(0|(ei=0|o[ti>>2]))>0){Q=+s[ti+308>>2],oi=0,ni=0;do{oi|=(ii=P-N-+s[ti+(ni<<4)+4>>2])*ii+(ri=B-V-+s[ti+(ni<<4)+8>>2])*ri+(fi=R-F-+s[ti+(ni<<4)+12>>2])*fi<=Q,ni=ni+1|0}while((0|ni)!=(0|ei))}else oi=0;if((ni=0==+s[ti+304>>2]&&R-F==+s[ti+300>>2]&&B-V==+s[ti+296>>2]?P-N==+s[ti+292>>2]:0)|oi||(s[ti+292>>2]=P-N,s[ti+296>>2]=B-V,s[ti+300>>2]=R-F,s[ti+304>>2]=0,n[ti+356|0]=1,s[ti+(ei<<4)+4>>2]=P-N,s[ti+(ei<<4)+8>>2]=B-V,s[ti+(ei<<4)+12>>2]=R-F,s[ti+(ei<<4)+16>>2]=0,oi=0|o[ti>>2],s[ti+(oi<<4)+84>>2]=P,s[ti+(oi<<4)+88>>2]=B,s[ti+(oi<<4)+92>>2]=R,s[ti+(oi<<4)+96>>2]=0,oi=0|o[ti>>2],s[ti+(oi<<4)+164>>2]=N,s[ti+(oi<<4)+168>>2]=V,s[ti+(oi<<4)+172>>2]=F,s[ti+(oi<<4)+176>>2]=0,o[ti>>2]=1+(0|o[ti>>2]),ti=0|o[i+4>>2]),oi=0|ai(ti),Q=+s[ti+276>>2],Z=+s[ti+280>>2],J=+s[ti+284>>2],!oi)break i;if(!(Q*Q+Z*Z+J*J>9999999747378752e-20))break i;ii=+s[ti+288>>2]}if(24==(0|f))return u=c,0|a}else X=0,K=0,$=0,z=0,O=0}while(0);return s[a+164>>2]=O,(L=K*K+($*$+z*z))>=14210854715202004e-30?(L=z*(I=1/+_(+L)),A=$*I,I*=K,s[a+132>>2]=L,s[a+136>>2]=A,s[a+140>>2]=I,s[a+144>>2]=X):(o[a+132>>2]=0,o[a+136>>2]=0,o[a+140>>2]=0,o[a+144>>2]=0,L=0,A=0,I=0),l*L+h*A+d*I>=-+s[a+172>>2]?(u=c,0|(oi=0)):(ai(oi=0|o[i+4>>2]),xe(a+148|0,oi+260|0,16),u=c,0|(oi=1))}function ii(i,t,e){t|=0,e|=0;var r,f=0,a=0,c=0;if(r=u,s[(i|=0)+4>>2]=1,s[i+8>>2]=1,s[i+12>>2]=1,s[i+16>>2]=0,n[i+36|0]=1,o[i+32>>2]=0,o[i+24>>2]=0,o[i+28>>2]=0,o[i+48>>2]=0,o[i>>2]=15472,n[i+100|0]=1,o[i+96>>2]=0,o[i+88>>2]=0,o[i+92>>2]=0,n[i+120|0]=1,o[i+116>>2]=0,o[i+108>>2]=0,o[i+112>>2]=0,n[i+140|0]=1,o[i+136>>2]=0,o[i+128>>2]=0,o[i+132>>2]=0,n[i+160|0]=1,o[i+156>>2]=0,o[i+148>>2]=0,o[i+152>>2]=0,n[i+164|0]=1&t,n[i+165|0]=1&e,s[i+168>>2]=0,o[4546]=1+(0|o[4546]),0|(e=0|ye(51))?(o[(e+19&-16)-4>>2]=e,e=e+19&-16):e=0,(0|(t=0|o[i+24>>2]))>0){f=0;do{a=e+(f<<5)|0,c=(0|o[i+32>>2])+(f<<5)|0,o[a+0>>2]=o[c+0>>2],o[a+4>>2]=o[c+4>>2],o[a+8>>2]=o[c+8>>2],o[a+12>>2]=o[c+12>>2],o[a+16>>2]=o[c+16>>2],o[a+20>>2]=o[c+20>>2],o[a+24>>2]=o[c+24>>2],o[a+28>>2]=o[c+28>>2],f=f+1|0}while((0|f)!=(0|t))}return 0|(t=0|o[i+32>>2])&&(0|n[i+36|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[t+-4>>2])),o[i+32>>2]=0),n[i+36|0]=1,o[i+32>>2]=e,o[i+28>>2]=1,c=0|o[i+24>>2],o[e+(c<<5)>>2]=0,o[e+(c<<5)+4>>2]=0,o[e+(c<<5)+8>>2]=12,o[e+(c<<5)+12>>2]=0,o[e+(c<<5)+16>>2]=0,o[e+(c<<5)+20>>2]=16,o[e+(c<<5)+24>>2]=2,o[e+(c<<5)+28>>2]=0,o[i+24>>2]=1+(0|o[i+24>>2]),0|n[i+164|0]?(e=0|o[i+32>>2],o[e>>2]=(0|o[i+128>>2])/3|0,o[e+4>>2]=0,e=0|o[i+32>>2],o[e+24>>2]=2,o[e+8>>2]=12):(e=0|o[i+32>>2],o[e>>2]=(0|o[i+148>>2])/3|0,o[e+4>>2]=0,e=0|o[i+32>>2],o[e+24>>2]=3,o[e+8>>2]=6),0|n[i+165|0]?(o[e+12>>2]=o[i+88>>2],o[e+16>>2]=0,o[20+(0|o[i+32>>2])>>2]=16,void(u=r)):(o[e+12>>2]=(0|o[i+108>>2])/3|0,o[e+16>>2]=0,o[20+(0|o[i+32>>2])>>2]=12,void(u=r))}function ti(i,t){t|=0;var e,f=0,a=0,s=0,c=0,h=0;if(e=u,0|n[(i|=0)+164|0]){if((0|(s=0|o[i+128>>2]))==(0|o[i+132>>2])&&(0|s)<(0|(a=0|s?s<<1:1))){if(0|a?(o[4546]=1+(0|o[4546]),0|(f=0|ye(16+(a<<2|3)|0))?(o[(f+19&-16)-4>>2]=f,f=f+19&-16):f=0,s=0|o[i+128>>2]):f=0,(0|s)>0){c=0;do{0|(h=f+(c<<2)|0)&&(o[h>>2]=o[(0|o[i+136>>2])+(c<<2)>>2]),c=c+1|0}while((0|c)!=(0|s))}0|(s=0|o[i+136>>2])&&(0|n[i+140|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[s+-4>>2])),o[i+136>>2]=0),n[i+140|0]=1,o[i+136>>2]=f,o[i+132>>2]=a,s=0|o[i+128>>2]}return 0|(a=(f=0|o[i+136>>2])+(s<<2)|0)&&(o[a>>2]=t,s=0|o[i+128>>2]),o[i+128>>2]=s+1,o[4+(0|o[i+32>>2])>>2]=f,void(u=e)}if((0|(s=0|o[i+148>>2]))==(0|o[i+152>>2])&&(0|s)<(0|(f=0|s?s<<1:1))){if(0|f?(o[4546]=1+(0|o[4546]),0|(a=0|ye(19+(f<<1)|0))?(o[(a+19&-16)-4>>2]=a,a=a+19&-16):a=0,s=0|o[i+148>>2]):a=0,(0|s)>0){h=0;do{0|(c=a+(h<<1)|0)&&(r[c>>1]=0|r[(0|o[i+156>>2])+(h<<1)>>1]),h=h+1|0}while((0|h)!=(0|s))}0|(c=0|o[i+156>>2])&&(0|n[i+160|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[c+-4>>2]),s=0|o[i+148>>2]),o[i+156>>2]=0),n[i+160|0]=1,o[i+156>>2]=a,o[i+152>>2]=f}return 0|(a=(f=0|o[i+156>>2])+(s<<1)|0)&&(r[a>>1]=t),o[i+148>>2]=s+1,o[4+(0|o[i+32>>2])>>2]=f,void(u=e)}function ei(i,t,e){t|=0,e|=0;var r,f=0,a=0,c=0,h=0,l=0,d=0,v=0,b=0,_=0,w=0,p=0,m=0;if(r=u,0|n[(i|=0)+165|0]){i:do{if(e&&(0|(a=0|o[i+88>>2]))>0){for(c=0|o[i+96>>2],d=+s[t>>2],v=+s[t+4>>2],b=+s[t+8>>2],h=+s[i+168>>2],e=0;!((m=+s[c+(e<<4)>>2]-d)*m+(p=+s[c+(e<<4)+4>>2]-v)*p+(w=+s[c+(e<<4)+8>>2]-b)*w<=h);)if((0|(e=e+1|0))>=(0|a))break i;return u=r,0|e}}while(0);if(a=12+(0|o[i+32>>2])|0,o[a>>2]=1+(0|o[a>>2]),(0|(a=0|o[i+88>>2]))==(0|o[i+92>>2])&&(0|a)<(0|(f=0|a?a<<1:1))){if(0|f?(o[4546]=1+(0|o[4546]),0|(a=0|ye(16+(f<<4|3)|0))?(o[(a+19&-16)-4>>2]=a,e=a+19&-16):e=0,a=0|o[i+88>>2]):e=0,(0|a)>0){c=0;do{_=e+(c<<4)|0,l=(0|o[i+96>>2])+(c<<4)|0,o[_+0>>2]=o[l+0>>2],o[_+4>>2]=o[l+4>>2],o[_+8>>2]=o[l+8>>2],o[_+12>>2]=o[l+12>>2],c=c+1|0}while((0|c)!=(0|a))}0|(a=0|o[i+96>>2])&&(0|n[i+100|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[a+-4>>2])),o[i+96>>2]=0),n[i+100|0]=1,o[i+96>>2]=e,o[i+92>>2]=f,a=0|o[i+88>>2]}return _=(0|o[i+96>>2])+(a<<4)|0,o[_+0>>2]=o[t+0>>2],o[_+4>>2]=o[t+4>>2],o[_+8>>2]=o[t+8>>2],o[_+12>>2]=o[t+12>>2],_=0|o[i+88>>2],o[i+88>>2]=_+1,o[16+(0|o[i+32>>2])>>2]=o[i+96>>2],u=r,0|_}a=0|o[i+108>>2];i:do{if((0|a)>0&e){for(c=0|o[i+116>>2],h=+s[t>>2],d=+s[t+4>>2],v=+s[t+8>>2],b=+s[i+168>>2],e=0;f=e+3|0,!((w=+s[c+(e<<2)>>2]-h)*w+(p=+s[c+(e+1<<2)>>2]-d)*p+(m=+s[c+(e+2<<2)>>2]-v)*m<=b);){if(!((0|f)<(0|a))){f=t;break i}e=f}return u=r,0|(_=(0|e)/3|0)}f=t}while(0);if((0|a)==(0|(e=0|o[i+112>>2])))if((0|a)<(0|(e=0|a?a<<1:1))){if(0|e?(o[4546]=1+(0|o[4546]),0|(a=0|ye(16+(e<<2|3)|0))?(o[(a+19&-16)-4>>2]=a,c=a+19&-16):c=0,a=0|o[i+108>>2]):c=0,(0|a)>0){l=0;do{0|(_=c+(l<<2)|0)&&(s[_>>2]=+s[(0|o[i+116>>2])+(l<<2)>>2]),l=l+1|0}while((0|l)!=(0|a))}0|(l=0|o[i+116>>2])&&(0|n[i+120|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[l+-4>>2]),a=0|o[i+108>>2]),o[i+116>>2]=0),n[i+120|0]=1,o[i+116>>2]=c,o[i+112>>2]=e,l=a}else l=a,e=a;else l=a;if(0|(a=(c=0|o[i+116>>2])+(l<<2)|0)&&(s[a>>2]=+s[f>>2]),a=l+1|0,o[i+108>>2]=a,(0|a)==(0|e))if((0|e)<(0|(f=0|e?e<<1:1))){if(0|f?(o[4546]=1+(0|o[4546]),0|(a=0|ye(16+(f<<2|3)|0))?(o[(a+19&-16)-4>>2]=a,c=a+19&-16):c=0,e=0|o[i+108>>2]):c=0,(0|e)>0){l=0;do{0|(a=c+(l<<2)|0)&&(s[a>>2]=+s[(0|o[i+116>>2])+(l<<2)>>2]),l=l+1|0}while((0|l)!=(0|e))}0|(a=0|o[i+116>>2])&&(0|n[i+120|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[a+-4>>2]),e=0|o[i+108>>2]),o[i+116>>2]=0),n[i+120|0]=1,o[i+116>>2]=c,o[i+112>>2]=f,a=e}else a=e,f=e;else f=e;if(0|(e=c+(a<<2)|0)&&(s[e>>2]=+s[t+4>>2]),a=a+1|0,o[i+108>>2]=a,(0|a)==(0|f)){if((0|f)<(0|(a=0|f?f<<1:1))){if(0|a?(o[4546]=1+(0|o[4546]),0|(f=0|ye(16+(a<<2|3)|0))?(o[(f+19&-16)-4>>2]=f,c=f+19&-16):c=0,f=0|o[i+108>>2]):c=0,(0|f)>0){l=0;do{0|(e=c+(l<<2)|0)&&(s[e>>2]=+s[(0|o[i+116>>2])+(l<<2)>>2]),l=l+1|0}while((0|l)!=(0|f))}0|(e=0|o[i+116>>2])&&(0|n[i+120|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2]),f=0|o[i+108>>2]),o[i+116>>2]=0),n[i+120|0]=1,o[i+116>>2]=c,o[i+112>>2]=a}}else f=a;return 0|(a=c+(f<<2)|0)&&(s[a>>2]=+s[t+8>>2]),o[i+108>>2]=f+1,_=0|o[i+32>>2],o[_+12>>2]=1+(0|o[_+12>>2]),o[_+16>>2]=c,_=((0|o[i+108>>2])/3|0)-1|0,u=r,0|_}function ni(i){var t,e=0;if(t=u,o[(i|=0)>>2]=15472,0|(e=0|o[i+156>>2])&&(0|n[i+160|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+156>>2]=0),n[i+160|0]=1,o[i+156>>2]=0,o[i+148>>2]=0,o[i+152>>2]=0,0|(e=0|o[i+136>>2])&&(0|n[i+140|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+136>>2]=0),n[i+140|0]=1,o[i+136>>2]=0,o[i+128>>2]=0,o[i+132>>2]=0,0|(e=0|o[i+116>>2])&&(0|n[i+120|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+116>>2]=0),n[i+120|0]=1,o[i+116>>2]=0,o[i+108>>2]=0,o[i+112>>2]=0,0|(e=0|o[i+96>>2])&&(0|n[i+100|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+96>>2]=0),n[i+100|0]=1,o[i+96>>2]=0,o[i+88>>2]=0,o[i+92>>2]=0,o[i>>2]=18072,!(0|(e=0|o[i+32>>2])))return n[i+36|0]=1,o[i+32>>2]=0,o[i+24>>2]=0,o[(e=i+28|0)>>2]=0,void(u=t);0|n[i+36|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+32>>2]=0,n[i+36|0]=1,o[i+32>>2]=0,o[i+24>>2]=0,o[(e=i+28|0)>>2]=0,u=t}function ri(i,t){t|=0;var e,n;e=u,u=u+48|0,n=4+(0|o[(i|=0)+48>>2])|0,o[n+0>>2]=o[t+0>>2],o[n+4>>2]=o[t+4>>2],o[n+8>>2]=o[t+8>>2],o[n+12>>2]=o[t+12>>2],o[e+32>>2]=0,o[e+36>>2]=0,o[e+40>>2]=0,o[e+44>>2]=0,s[e+32>>2]=1,Pn[63&o[68+(0|o[i>>2])>>2]](e+16|0,i,e+32|0),s[i+32>>2]=+s[e+16>>2]+ +s[i+12>>2],s[e+32>>2]=-1,Pn[63&o[68+(0|o[i>>2])>>2]](e,i,e+32|0),o[e+16>>2]=o[e+0>>2],o[e+20>>2]=o[e+4>>2],o[e+24>>2]=o[e+8>>2],o[e+28>>2]=o[e+12>>2],s[i+16>>2]=+s[e+16>>2]-+s[i+12>>2],o[e+32>>2]=0,o[e+36>>2]=0,o[e+40>>2]=0,o[e+44>>2]=0,s[e+36>>2]=1,Pn[63&o[68+(0|o[i>>2])>>2]](e+16|0,i,e+32|0),s[i+36>>2]=+s[e+20>>2]+ +s[i+12>>2],s[e+36>>2]=-1,Pn[63&o[68+(0|o[i>>2])>>2]](e,i,e+32|0),o[e+16>>2]=o[e+0>>2],o[e+20>>2]=o[e+4>>2],o[e+24>>2]=o[e+8>>2],o[e+28>>2]=o[e+12>>2],s[i+20>>2]=+s[e+20>>2]-+s[i+12>>2],o[e+32>>2]=0,o[e+36>>2]=0,o[e+40>>2]=0,o[e+44>>2]=0,s[e+40>>2]=1,Pn[63&o[68+(0|o[i>>2])>>2]](e+16|0,i,e+32|0),s[i+40>>2]=+s[e+24>>2]+ +s[i+12>>2],s[e+40>>2]=-1,Pn[63&o[68+(0|o[i>>2])>>2]](e,i,e+32|0),o[e+16>>2]=o[e+0>>2],o[e+20>>2]=o[e+4>>2],o[e+24>>2]=o[e+8>>2],o[e+28>>2]=o[e+12>>2],s[i+24>>2]=+s[e+24>>2]-+s[i+12>>2],u=e}function oi(i,t,e){i|=0,t|=0,e|=0;var n,r=0,f=0,a=0,s=0,c=0,h=0,l=0,d=0,v=0;for(n=u;;){for(r=0|o[i+12>>2],f=0|o[r+((t+e|0)/2<<3)>>2],c=t,a=e;;){for(;;){if(h=c+1|0,!((0|o[r+(c<<3)>>2])<(0|f))){s=a;break}c=h}for(;a=s+-1|0,(0|f)<(0|o[(l=r+(s<<3)|0)>>2]);)s=a;if((0|c)>(0|s)?a=s:(d=0|o[(c=r+(c<<3)|0)>>2],r=0|o[c+4>>2],v=0|o[l+4>>2],o[c>>2]=o[l>>2],o[c+4>>2]=v,c=(0|o[i+12>>2])+(s<<3)|0,o[c>>2]=d,o[c+4>>2]=r,c=h),(0|c)>(0|a))break;r=0|o[i+12>>2]}if((0|a)>(0|t)&&oi(i,t,a),!((0|c)<(0|e)))break;t=c}u=n}function fi(i,t){t|=0;var e,r=0,f=0,a=0;e=u,(0|(a=0|o[(i|=0)>>2]))>3?8&(f=0|n[t|0])?r=6:(o[i>>2]=a+-1,r=i+(a+-1<<4)+4|0,o[i+52>>2]=o[r+0>>2],o[i+56>>2]=o[r+4>>2],o[i+60>>2]=o[r+8>>2],o[i+64>>2]=o[r+12>>2],r=i+(a+-1<<4)+84|0,o[i+132>>2]=o[r+0>>2],o[i+136>>2]=o[r+4>>2],o[i+140>>2]=o[r+8>>2],o[i+144>>2]=o[r+12>>2],r=i+(a+-1<<4)+164|0,o[i+212>>2]=o[r+0>>2],o[i+216>>2]=o[r+4>>2],o[i+220>>2]=o[r+8>>2],o[i+224>>2]=o[r+12>>2],a=a+-1|0,r=4):r=4,4==(0|r)&&((0|a)>2?(f=0|n[t|0],r=6):f=a),6==(0|r)&&(4&f?f=a:(f=a+-1|0,o[i>>2]=f,o[i+36>>2]=o[i+(f<<4)+4>>2],o[i+40>>2]=o[i+(f<<4)+8>>2],o[i+44>>2]=o[i+(f<<4)+12>>2],o[i+48>>2]=o[i+(f<<4)+16>>2],o[i+116>>2]=o[i+(f<<4)+84>>2],o[i+120>>2]=o[i+(f<<4)+88>>2],o[i+124>>2]=o[i+(f<<4)+92>>2],o[i+128>>2]=o[i+(f<<4)+96>>2],o[i+196>>2]=o[i+(f<<4)+164>>2],o[i+200>>2]=o[i+(f<<4)+168>>2],o[i+204>>2]=o[i+(f<<4)+172>>2],o[i+208>>2]=o[i+(f<<4)+176>>2])),(0|f)>1?2&(a=0|n[t|0])?t=a:(f=f+-1|0,o[i>>2]=f,o[i+20>>2]=o[i+(f<<4)+4>>2],o[i+24>>2]=o[i+(f<<4)+8>>2],o[i+28>>2]=o[i+(f<<4)+12>>2],o[i+32>>2]=o[i+(f<<4)+16>>2],o[i+100>>2]=o[i+(f<<4)+84>>2],o[i+104>>2]=o[i+(f<<4)+88>>2],o[i+108>>2]=o[i+(f<<4)+92>>2],o[i+112>>2]=o[i+(f<<4)+96>>2],o[i+180>>2]=o[i+(f<<4)+164>>2],o[i+184>>2]=o[i+(f<<4)+168>>2],o[i+188>>2]=o[i+(f<<4)+172>>2],o[i+192>>2]=o[i+(f<<4)+176>>2],r=11):r=11;do{if(11==(0|r)){if((0|f)>0){t=0|n[t|0];break}return void(u=e)}}while(0);1&t||(a=f+-1|0,o[i>>2]=a,o[i+4>>2]=o[i+(a<<4)+4>>2],o[i+8>>2]=o[i+(a<<4)+8>>2],o[i+12>>2]=o[i+(a<<4)+12>>2],o[i+16>>2]=o[i+(a<<4)+16>>2],o[i+84>>2]=o[i+(a<<4)+84>>2],o[i+88>>2]=o[i+(a<<4)+88>>2],o[i+92>>2]=o[i+(a<<4)+92>>2],o[i+96>>2]=o[i+(a<<4)+96>>2],o[i+164>>2]=o[i+(a<<4)+164>>2],o[i+168>>2]=o[i+(a<<4)+168>>2],o[i+172>>2]=o[i+(a<<4)+172>>2],o[i+176>>2]=o[i+(a<<4)+176>>2]),u=e}function ai(i){var t,e=0,r=0,f=0,a=0,c=0,h=0,l=0,d=0,v=0,b=0,_=0,w=0,p=0,m=0,y=0,k=0,g=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0,L=0,I=0,A=0,D=0,O=0,R=0,P=0,N=0,B=0,F=0,V=0,U=0,G=0,W=0,z=0;if(t=u,u=u+80|0,!(0|n[(i|=0)+356|0]))return z=0|n[i+312|0],u=t,0|(z=!!(z<<24>>24));switch(o[i+336>>2]=0,o[i+340>>2]=0,o[i+344>>2]=0,o[i+348>>2]=0,n[i+352|0]=0,E=0|n[i+332|0],n[i+332|0]=-16&E,n[i+356|0]=0,0|o[i>>2]){case 3:return o[t+16>>2]=0,o[t+20>>2]=0,o[t+24>>2]=0,o[t+28>>2]=0,si(t+16|0,i+4|0,i+20|0,i+36|0,i+316|0),P=+s[i+336>>2],N=+s[i+340>>2],W=+s[i+344>>2],B=+s[i+84>>2]*P+ +s[i+100>>2]*N+ +s[i+116>>2]*W,V=P*+s[i+88>>2]+N*+s[i+104>>2]+W*+s[i+120>>2],G=P*+s[i+92>>2]+N*+s[i+108>>2]+W*+s[i+124>>2],s[i+244>>2]=B,s[i+248>>2]=V,s[i+252>>2]=G,s[i+256>>2]=0,F=+s[i+164>>2]*P+ +s[i+180>>2]*N+ +s[i+196>>2]*W,U=P*+s[i+168>>2]+N*+s[i+184>>2]+W*+s[i+200>>2],W=P*+s[i+172>>2]+N*+s[i+188>>2]+W*+s[i+204>>2],s[i+260>>2]=F,s[i+264>>2]=U,s[i+268>>2]=W,s[i+272>>2]=0,s[i+276>>2]=B-F,s[i+280>>2]=V-U,s[i+284>>2]=G-W,s[i+288>>2]=0,fi(i,i+332|0),a=+s[i+336>>2]>=0&&+s[i+340>>2]>=0&&+s[i+344>>2]>=0?+s[i+348>>2]>=0&1:0,n[i+312|0]=a,u=t,0|(z=!!((z=a)<<24>>24));case 2:l=+s[i+4>>2],c=+s[i+8>>2],f=+s[i+12>>2],h=+s[i+20>>2]-l,r=+s[i+24>>2]-c,e=+s[i+28>>2]-f;do{if((0-l)*h+(0-c)*r+(0-f)*e>0){if((0-l)*h+(0-c)*r+(0-f)*e<h*h+r*r+e*e){n[i+332|0]=-16&E|3,e=((0-l)*h+(0-c)*r+(0-f)*e)/(h*h+r*r+e*e);break}n[i+332|0]=-16&E|2,e=1;break}n[i+332|0]=-16&E|1,e=0}while(0);return s[i+336>>2]=1-e,s[i+340>>2]=e,s[i+344>>2]=0,s[i+348>>2]=0,B=+s[i+84>>2],V=+s[i+88>>2],G=+s[i+92>>2],B+=e*(+s[i+100>>2]-B),V+=e*(+s[i+104>>2]-V),G+=e*(+s[i+108>>2]-G),s[i+244>>2]=B,s[i+248>>2]=V,s[i+252>>2]=G,s[i+256>>2]=0,F=+s[i+164>>2],U=+s[i+168>>2],W=+s[i+172>>2],F+=e*(+s[i+180>>2]-F),U+=e*(+s[i+184>>2]-U),W+=e*(+s[i+188>>2]-W),s[i+260>>2]=F,s[i+264>>2]=U,s[i+268>>2]=W,s[i+272>>2]=0,s[i+276>>2]=B-F,s[i+280>>2]=V-U,s[i+284>>2]=G-W,s[i+288>>2]=0,fi(i,i+332|0),a=+s[i+336>>2]>=0&&+s[i+340>>2]>=0&&+s[i+344>>2]>=0?+s[i+348>>2]>=0&1:0,n[i+312|0]=a,u=t,0|(z=!!((z=a)<<24>>24));case 4:return o[t+0>>2]=0,o[t+4>>2]=0,o[t+8>>2]=0,o[t+12>>2]=0,n[(a=t+48|0)|0]=0,o[i+316>>2]=o[t+0>>2],o[i+320>>2]=o[t+4>>2],o[i+324>>2]=o[t+8>>2],o[i+328>>2]=o[t+12>>2],n[i+332|0]=15|E,B=+s[i+20>>2],G=+s[i+4>>2],A=+s[i+24>>2],V=+s[i+8>>2],P=+s[i+28>>2],U=+s[i+12>>2],N=+s[i+36>>2],L=+s[i+40>>2],D=+s[i+44>>2],T=(W=((F=+s[i+52>>2])-G)*((A-V)*(D-U)-(P-U)*(L-V))+((I=+s[i+56>>2])-V)*((P-U)*(N-G)-(B-G)*(D-U))+((B-G)*(L-V)-(A-V)*(N-G))*((O=+s[i+60>>2])-U))*W<9.99999905104687e-9?-1:W*(((P-U)*(N-G)-(B-G)*(D-U))*(0-V)+((A-V)*(D-U)-(P-U)*(L-V))*(0-G)+((B-G)*(L-V)-(A-V)*(N-G))*(0-U))<0&1,((E=(W=(B-G)*((L-V)*(O-U)-(D-U)*(I-V))+(A-V)*((D-U)*(F-G)-(N-G)*(O-U))+((N-G)*(I-V)-(L-V)*(F-G))*(P-U))*W<9.99999905104687e-9?-1:W*(((D-U)*(F-G)-(N-G)*(O-U))*(0-V)+((L-V)*(O-U)-(D-U)*(I-V))*(0-G)+((N-G)*(I-V)-(L-V)*(F-G))*(0-U))<0&1)|T|(R=(W=(N-G)*((I-V)*(P-U)-(O-U)*(A-V))+(L-V)*((O-U)*(B-G)-(F-G)*(P-U))+((F-G)*(A-V)-(I-V)*(B-G))*(D-U))*W<9.99999905104687e-9?-1:W*(((O-U)*(B-G)-(F-G)*(P-U))*(0-V)+((I-V)*(P-U)-(O-U)*(A-V))*(0-G)+((F-G)*(A-V)-(I-V)*(B-G))*(0-U))<0&1)|(z=(V=(G-B)*((I-A)*(D-P)-(O-P)*(L-A))+(V-A)*((O-P)*(N-B)-(F-B)*(D-P))+((F-B)*(L-A)-(I-A)*(N-B))*(U-P))*V<9.99999905104687e-9?-1:V*(((O-P)*(N-B)-(F-B)*(D-P))*(0-A)+((I-A)*(D-P)-(O-P)*(L-A))*(0-B)+((F-B)*(L-A)-(I-A)*(N-B))*(0-P))<0&1)|0)<0?(n[i+352|0]=1,n[i+312|0]=0,u=t,0|(z=!!((z=0)<<24>>24))):(E=!(0|E))&(1^(T=!!(0|T)))&(R=!(0|R))&(z=!(0|z))?(n[i+312|0]=1,o[i+276>>2]=0,o[i+280>>2]=0,o[i+284>>2]=0,o[i+288>>2]=0,u=t,0|(z=!!((z=1)<<24>>24))):(T&&(si(t,i+4|0,i+20|0,i+36|0,t+32|0),M=+s[t+32>>2],g=+s[t+36>>2],C=+s[t+40>>2],(j=M-+s[t>>2])*j+(S=g-+s[t+4>>2])*S+(x=C-+s[t+8>>2])*x<34028234663852886e22)?(W=+s[t+44>>2],s[i+316>>2]=M,s[i+320>>2]=g,s[i+324>>2]=C,s[i+328>>2]=W,T=0|n[a|0],n[i+332|0]=1&T|-16&n[i+332|0]|2&T|4&T,W=+s[t+56>>2],g=+s[t+60>>2],s[i+336>>2]=+s[t+52>>2],s[i+340>>2]=W,s[i+344>>2]=g,s[i+348>>2]=0,g=j*j+S*S+x*x):g=34028234663852886e22,!E&&(si(t,i+4|0,i+36|0,i+52|0,t+32|0),w=+s[t+32>>2],y=+s[t+36>>2],_=+s[t+40>>2],(k=w-+s[t>>2])*k+(p=y-+s[t+4>>2])*p+(m=_-+s[t+8>>2])*m<g)&&(W=+s[t+44>>2],s[i+316>>2]=w,s[i+320>>2]=y,s[i+324>>2]=_,s[i+328>>2]=W,T=0|n[a|0],n[i+332|0]=T<<1&4|1&T|-16&n[i+332|0]|T<<1&8,W=+s[t+56>>2],g=+s[t+60>>2],s[i+336>>2]=+s[t+52>>2],s[i+340>>2]=0,s[i+344>>2]=W,s[i+348>>2]=g,g=k*k+p*p+m*m),!R&&(si(t,i+4|0,i+52|0,i+20|0,t+32|0),c=+s[t+32>>2],h=+s[t+36>>2],l=+s[t+40>>2],(d=c-+s[t>>2])*d+(v=h-+s[t+4>>2])*v+(b=l-+s[t+8>>2])*b<g)&&(W=+s[t+44>>2],s[i+316>>2]=c,s[i+320>>2]=h,s[i+324>>2]=l,s[i+328>>2]=W,R=0|n[a|0],n[i+332|0]=(255&R)>>>1&2|1&R|-16&n[i+332|0]|R<<2&8,W=+s[t+60>>2],g=+s[t+56>>2],s[i+336>>2]=+s[t+52>>2],s[i+340>>2]=W,s[i+344>>2]=0,s[i+348>>2]=g,g=d*d+v*v+b*b),!z&&(si(t,i+20|0,i+52|0,i+36|0,t+32|0),r=+s[t+32>>2],e=+s[t+36>>2],f=+s[t+40>>2],(U=r-+s[t>>2])*U+(G=e-+s[t+4>>2])*G+(W=f-+s[t+8>>2])*W<g)&&(U=+s[t+44>>2],s[i+316>>2]=r,s[i+320>>2]=e,s[i+324>>2]=f,s[i+328>>2]=U,z=0|n[a|0],n[i+332|0]=z<<1&2|-16&n[i+332|0]|4&z|z<<2&8,U=+s[t+52>>2],G=+s[t+60>>2],W=+s[t+56>>2],s[i+336>>2]=0,s[i+340>>2]=U,s[i+344>>2]=G,s[i+348>>2]=W),O=+s[i+336>>2],P=+s[i+340>>2],N=+s[i+344>>2],W=+s[i+348>>2],B=+s[i+84>>2]*O+ +s[i+100>>2]*P+ +s[i+116>>2]*N+ +s[i+132>>2]*W,V=O*+s[i+88>>2]+P*+s[i+104>>2]+N*+s[i+120>>2]+W*+s[i+136>>2],G=O*+s[i+92>>2]+P*+s[i+108>>2]+N*+s[i+124>>2]+W*+s[i+140>>2],s[i+244>>2]=B,s[i+248>>2]=V,s[i+252>>2]=G,s[i+256>>2]=0,F=+s[i+164>>2]*O+ +s[i+180>>2]*P+ +s[i+196>>2]*N+ +s[i+212>>2]*W,U=O*+s[i+168>>2]+P*+s[i+184>>2]+N*+s[i+200>>2]+W*+s[i+216>>2],W=O*+s[i+172>>2]+P*+s[i+188>>2]+N*+s[i+204>>2]+W*+s[i+220>>2],s[i+260>>2]=F,s[i+264>>2]=U,s[i+268>>2]=W,s[i+272>>2]=0,s[i+276>>2]=B-F,s[i+280>>2]=V-U,s[i+284>>2]=G-W,s[i+288>>2]=0,fi(i,i+332|0),a=+s[i+336>>2]>=0&&+s[i+340>>2]>=0&&+s[i+344>>2]>=0?+s[i+348>>2]>=0&1:0,n[i+312|0]=a,u=t,0|(z=!!((z=a)<<24>>24)));case 0:default:return n[i+312|0]=0,u=t,0|(z=!!((z=0)<<24>>24));case 1:return o[i+244>>2]=o[i+84>>2],o[i+248>>2]=o[i+88>>2],o[i+252>>2]=o[i+92>>2],o[i+256>>2]=o[i+96>>2],o[i+260>>2]=o[i+164>>2],o[i+264>>2]=o[i+168>>2],o[i+268>>2]=o[i+172>>2],o[i+272>>2]=o[i+176>>2],G=+s[i+248>>2]-+s[i+264>>2],W=+s[i+252>>2]-+s[i+268>>2],s[i+276>>2]=+s[i+244>>2]-+s[i+260>>2],s[i+280>>2]=G,s[i+284>>2]=W,s[i+288>>2]=0,o[i+336>>2]=0,o[i+340>>2]=0,o[i+344>>2]=0,o[i+348>>2]=0,n[i+352|0]=0,n[i+332|0]=-16&E,s[i+336>>2]=1,s[i+340>>2]=0,s[i+344>>2]=0,s[i+348>>2]=0,n[i+312|0]=1,u=t,0|(z=!!((z=1)<<24>>24))}return 0}function si(i,t,e,r,f){i|=0,t|=0,e|=0,r|=0;var a,c,h,l,d,v,b,_,w,p,m,y,k,g,C,j=0,S=0,x=0,M=0;return w=u,v=-16&n[(f|=0)+16|0],n[f+16|0]=v,h=+s[e>>2],c=+s[t>>2],d=+s[e+4>>2],l=+s[t+4>>2],b=+s[e+8>>2],a=+s[t+8>>2],_=+s[r>>2],p=+s[r+4>>2],m=+s[r+8>>2],!((y=(h-c)*((j=+s[i>>2])-c)+(d-l)*((S=+s[i+4>>2])-l)+(b-a)*((x=+s[i+8>>2])-a))<=0)|!((k=(_-c)*(j-c)+(p-l)*(S-l)+(m-a)*(x-a))<=0)?!((g=(h-c)*(j-h)+(d-l)*(S-d)+(b-a)*(x-b))>=0)|!((C=(_-c)*(j-h)+(p-l)*(S-d)+(m-a)*(x-b))<=g)?(y>=0?!(y*C-g*k<=0):1)|!(g<=0)?(M=(h-c)*(j-_)+(d-l)*(S-p)+(b-a)*(x-m),!((j=(_-c)*(j-_)+(p-l)*(S-p)+(m-a)*(x-m))>=0)|!(M<=j)?(k>=0?!(M*k-y*j<=0):1)|!(j<=0)?g*j-M*C<=0&&C-g>=0&&M-j>=0?(M=(C-g)/(C-g+(M-j)),s[f>>2]=h+(_-h)*M,s[f+4>>2]=d+(p-d)*M,s[f+8>>2]=b+(m-b)*M,s[f+12>>2]=0,n[f+16|0]=6|v,s[f+20>>2]=0,s[f+24>>2]=1-M,s[f+28>>2]=M,s[f+32>>2]=0,void(u=w)):(x=(M*k-y*j)*(S=1/(y*C-g*k+(g*j-M*C+(M*k-y*j)))),M=(y*C-g*k)*S,s[f>>2]=(_-c)*M+(c+(h-c)*x),s[f+4>>2]=(p-l)*M+(l+(d-l)*x),s[f+8>>2]=(m-a)*M+((b-a)*x+a),s[f+12>>2]=0,n[f+16|0]=7|v,s[f+20>>2]=1-x-M,s[f+24>>2]=x,s[f+28>>2]=M,s[f+32>>2]=0,void(u=w)):(s[f>>2]=c+k/(k-j)*(_-c),s[f+4>>2]=l+k/(k-j)*(p-l),s[f+8>>2]=a+k/(k-j)*(m-a),s[f+12>>2]=0,n[f+16|0]=5|v,s[f+20>>2]=1-k/(k-j),s[f+24>>2]=0,s[f+28>>2]=k/(k-j),s[f+32>>2]=0,void(u=w)):(o[f+0>>2]=o[r+0>>2],o[f+4>>2]=o[r+4>>2],o[f+8>>2]=o[r+8>>2],o[f+12>>2]=o[r+12>>2],n[f+16|0]=4|v,s[f+20>>2]=0,s[f+24>>2]=0,s[f+28>>2]=1,s[f+32>>2]=0,void(u=w))):(s[f>>2]=c+y/(y-g)*(h-c),s[f+4>>2]=l+y/(y-g)*(d-l),s[f+8>>2]=a+y/(y-g)*(b-a),s[f+12>>2]=0,n[f+16|0]=3|v,s[f+20>>2]=1-y/(y-g),s[f+24>>2]=y/(y-g),s[f+28>>2]=0,s[f+32>>2]=0,void(u=w)):(o[f+0>>2]=o[e+0>>2],o[f+4>>2]=o[e+4>>2],o[f+8>>2]=o[e+8>>2],o[f+12>>2]=o[e+12>>2],n[f+16|0]=2|v,s[f+20>>2]=0,s[f+24>>2]=1,s[f+28>>2]=0,s[f+32>>2]=0,void(u=w)):(o[f+0>>2]=o[t+0>>2],o[f+4>>2]=o[t+4>>2],o[f+8>>2]=o[t+8>>2],o[f+12>>2]=o[t+12>>2],n[f+16|0]=1|v,s[f+20>>2]=1,s[f+24>>2]=0,s[f+28>>2]=0,s[f+32>>2]=0,void(u=w))}function ci(i,t,e,n,r){i|=0,e|=0,n|=0,r|=0;var f=0,a=0,c=0,h=0,l=0,d=0,v=0,b=0,w=0,p=0,m=0,y=0,k=0,g=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0,L=0,I=0,A=0;if(n=u,u=u+96|0,b=+s[(t|=0)+48>>2]-+s[t+112>>2],f=+s[t+52>>2]-+s[t+116>>2],a=+s[t+56>>2]-+s[t+120>>2],v=b*+s[t+64>>2]+f*+s[t+80>>2]+a*+s[t+96>>2],l=b*+s[t+68>>2]+f*+s[t+84>>2]+a*+s[t+100>>2],a=b*+s[t+72>>2]+f*+s[t+88>>2]+a*+s[t+104>>2],w=0|o[i+8>>2],k=0|o[i+4>>2],b=(f=+s[k+28>>2]*+s[k+12>>2])+ +s[i+12>>2],x=+s[w+72>>2],m=+s[w+56>>2],g=+s[w+76>>2],S=+s[w+60>>2],j=+s[w+80>>2],y=+s[w+64>>2],C=+s[w+88>>2],M=+s[w+92>>2],E=+s[w+96>>2],(p=(v-m)*(T=1/+_(+((d=(x-m)*(M-S)-(g-S)*(C-m))*d+((h=(g-S)*(E-y)-(j-y)*(M-S))*h+(c=(j-y)*(C-m)-(x-m)*(E-y))*c))))*h+T*c*(l-S)+T*d*(a-y))<0?(p*=-1,h=T*h*-1,c=T*c*-1,d=T*d*-1):(h*=T,c*=T,d*=T),p<b){if(!((T=(a-y)*((x-m)*c-(g-S)*h)+((v-m)*((g-S)*d-(j-y)*c)+(l-S)*((j-y)*h-(x-m)*d)))>0&(L=(a-j)*((C-x)*c-(M-g)*h)+((v-x)*((M-g)*d-(E-j)*c)+(l-g)*((E-j)*h-(C-x)*d)))>0&(I=(a-E)*((m-C)*c-(S-M)*h)+((v-C)*((S-M)*d-(y-E)*c)+(l-M)*((y-E)*h-(m-C)*d)))>0)&&!(T<=0)|!(L<=0)|!(I<=0)){if((0|an[127&o[100+(0|o[w>>2])>>2]](w))<=0)return void(u=n);k=0,w=0,y=0,m=0,p=0;do{A=0|o[i+8>>2],Vn[63&o[104+(0|o[A>>2])>>2]](A,w,n+80|0,n+64|0),E=+s[n+80>>2],g=+s[n+84>>2],x=+s[n+88>>2],M=+s[n+64>>2]-E,C=+s[n+68>>2]-g,S=+s[n+72>>2]-x;do{if((v-E)*M+(l-g)*C+(a-x)*S>0){if((v-E)*M+(l-g)*C+(a-x)*S<M*M+C*C+S*S){L=v-E-M*(j=((v-E)*M+(l-g)*C+(a-x)*S)/(M*M+C*C+S*S)),T=l-g-C*j,I=a-x-S*j;break}L=v-E-M,T=l-g-C,I=a-x-S,j=1;break}L=v-E,T=l-g,I=a-x,j=0}while(0);I*I+(T*T+L*L)<b*b&&(k=1,y=E+M*j,m=x+S*j,p=g+C*j),w=w+1|0,A=0|o[i+8>>2]}while((0|w)<(0|an[127&o[100+(0|o[A>>2])>>2]](A)));if(!(1&k))return void(u=n);b*=b}else b*=b,y=v-h*p,m=a-d*p,p=l-c*p;if((v-=y)*v+(l-=p)*l+(a-=m)*a<b)return v*v+l*l+a*a>1.1920928955078125e-7&&(f-=d=+_(+(v*v+l*l+a*a)),h=v*(1/d),c=l*(1/d),d=a*(1/d)),f=-f,r?(T=(x=+s[t+64>>2])*h+(M=+s[t+68>>2])*c+(E=+s[t+72>>2])*d,L=h*(v=+s[t+80>>2])+c*(b=+s[t+84>>2])+d*(g=+s[t+88>>2]),I=h*(C=+s[t+96>>2])+c*(j=+s[t+100>>2])+d*(S=+s[t+104>>2]),s[n+48>>2]=-T,s[n+52>>2]=-L,s[n+56>>2]=-I,s[n+60>>2]=0,L=y*v+p*b+m*g+ +s[t+116>>2]+L*f,I=y*C+p*j+m*S+ +s[t+120>>2]+I*f,s[n+32>>2]=y*x+p*M+m*E+ +s[t+112>>2]+T*f,s[n+36>>2]=L,s[n+40>>2]=I,s[n+44>>2]=0,Rn[15&o[16+(0|o[e>>2])>>2]](e,n+48|0,n+32|0,f),void(u=n)):(A=0|o[16+(0|o[e>>2])>>2],M=+s[t+64>>2],E=+s[t+68>>2],T=+s[t+72>>2],C=+s[t+80>>2],j=+s[t+84>>2],L=+s[t+88>>2],S=+s[t+96>>2],x=+s[t+100>>2],I=+s[t+104>>2],s[n+16>>2]=M*h+E*c+T*d,s[n+20>>2]=h*C+c*j+d*L,s[n+24>>2]=h*S+c*x+d*I,s[n+28>>2]=0,L=y*C+p*j+m*L+ +s[t+116>>2],I=y*S+p*x+m*I+ +s[t+120>>2],s[n>>2]=y*M+p*E+m*T+ +s[t+112>>2],s[n+4>>2]=L,s[n+8>>2]=I,s[n+12>>2]=0,Rn[15&A](e,n+16|0,n,f),void(u=n));u=n}else u=n}function ui(i,t,e){t|=0,e|=0;var r;r=u,u=u+32|0,o[(i|=0)+4>>2]=t,o[i>>2]=64,o[i+8>>2]=-1,o[i+12>>2]=-1,s[i+16>>2]=34028234663852886e22,n[i+20|0]=1,n[i+21|0]=0,o[i+24>>2]=-1,o[i+28>>2]=e,!(0|n[4208])&&0|j(4208)&&(o[r+16>>2]=0,o[r+20>>2]=0,o[r+24>>2]=0,o[r+28>>2]=0,Vt(3592,0,0,0,r+16|0),x(4208)),o[r+0>>2]=0,o[r+4>>2]=0,o[r+8>>2]=0,o[r+12>>2]=0,Ut(3592,0,r),o[i+32>>2]=3592,s[i+36>>2]=0,s[i+40>>2]=.30000001192092896,o[i+44>>2]=0,u=r}function hi(i,t,e){i|=0,e|=0;var n,r,a=0;if(n=u,o[(t|=0)>>2]=0|Sn[31&o[28+(0|o[e>>2])>>2]](e,0|o[i+28>>2]),o[t+4>>2]=0|Sn[31&o[28+(0|o[e>>2])>>2]](e,0|o[i+32>>2]),a=0|Sn[31&o[40+(0|o[e>>2])>>2]](e,i),r=0|Sn[31&o[28+(0|o[e>>2])>>2]](e,a),o[t+8>>2]=r,0|r&&on[127&o[48+(0|o[e>>2])>>2]](e,a),o[t+12>>2]=o[i+4>>2],o[t+24>>2]=0|f[i+21|0],o[t+40>>2]=o[i+24>>2],s[t+44>>2]=+s[i+16>>2],o[t+48>>2]=0|f[i+20|0],o[t+20>>2]=o[i+12>>2],o[t+16>>2]=o[i+8>>2],s[t+28>>2]=+s[i+36>>2],s[t+32>>2]=+s[i+40>>2],o[t+36>>2]=0,a=0|o[i+28>>2],(0|o[a+488>>2])>0){e=0;do{(0|o[(0|o[a+496>>2])+(e<<2)>>2])==(0|i)&&(o[t+36>>2]=1,a=0|o[i+28>>2]),e=e+1|0}while((0|e)<(0|o[a+488>>2]))}if(a=0|o[i+32>>2],!((0|o[a+488>>2])>0))return u=n,3560;e=0;do{(0|o[(0|o[a+496>>2])+(e<<2)>>2])==(0|i)&&(o[t+36>>2]=1,a=0|o[i+32>>2]),e=e+1|0}while((0|e)<(0|o[a+488>>2]));return u=n,3560}function li(i,t,e,f,c,h){t|=0,e|=0,f|=0,c|=0,h|=0;var l,d,v,b,_=0;if(l=u,o[(i|=0)>>2]=4400,r[i+4>>1]=-2,r[i+6>>1]=-1,o[i+92>>2]=c,o[i+96>>2]=0,n[i+100|0]=0,o[i+104>>2]=0,o[i+108>>2]=0,0|c||(o[4546]=1+(0|o[4546]),0|(c=0|ye(95))&&(o[(c+19&-16)-4>>2]=c,c+19&-16)?(at(c+19&-16),c=c+19&-16):c=0,o[i+92>>2]=c,n[i+100|0]=1),h||(o[4546]=1+(0|o[4546]),0|(h=0|ye(43))&&(o[(_=h+19&-16)+-4>>2]=h,h+19&-16)?(o[_+0>>2]=0,o[_+4>>2]=0,o[_+8>>2]=0,o[_+12>>2]=0,o[_+16>>2]=0,o[_+20>>2]=0,o[(h+19&-16)>>2]=4464,n[_+20|0]=1,o[_+16>>2]=0,o[_+8>>2]=0,o[_+12>>2]=0,_=h+19&-16):_=0,o[i+112>>2]=_,o[4546]=1+(0|o[4546]),0|(_=0|ye(215))&&(o[(_+19&-16)-4>>2]=_,_+19&-16)?(Li(_+19&-16,0|o[i+112>>2]),_=_+19&-16):_=0,o[i+108>>2]=_,n[_+193|0]=1),o[i+8>>2]=o[t+0>>2],o[i+12>>2]=o[t+4>>2],o[i+16>>2]=o[t+8>>2],o[i+20>>2]=o[t+12>>2],o[i+24>>2]=o[e+0>>2],o[i+28>>2]=o[e+4>>2],o[i+32>>2]=o[e+8>>2],o[i+36>>2]=o[e+12>>2],v=(b=+(0|a[i+6>>1]))/(+s[i+28>>2]-+s[i+12>>2]),d=b/(+s[i+32>>2]-+s[i+16>>2]),s[i+40>>2]=b/(+s[i+24>>2]-+s[i+8>>2]),s[i+44>>2]=v,s[i+48>>2]=d,s[i+52>>2]=0,t=1+(65535&f)&65535,o[4546]=1+(0|o[4546]),0|(e=0|ye(t<<6|19))?(o[(e+19&-16)-4>>2]=e,e=e+19&-16):e=0,0|t){_=e+(t<<6)|0,h=e;do{o[h>>2]=0,o[h+8>>2]=0,h=h+64|0}while((0|h)!=(0|_))}if(o[i+60>>2]=e,r[i+58>>1]=1+(65535&f),r[i+56>>1]=0,r[i+64>>1]=1,t>>>0>1){f=1,_=1;do{r[e+(f<<6)+48>>1]=f+1,f=65535&(_=_+1<<16>>16)}while(f>>>0<t>>>0)}r[e+(t+-1<<6)+48>>1]=0,o[4546]=1+(0|o[4546]),0|(f=0|ye(16+(t<<3|3)|0))?(o[(f+19&-16)-4>>2]=f,o[i+80>>2]=f+19&-16,f=f+19&-16?f+19&-16:0):(o[i+80>>2]=0,f=0),o[i+68>>2]=f,o[4546]=1+(0|o[4546]),0|(f=0|ye(16+(t<<3|3)|0))?(o[(f+19&-16)-4>>2]=f,o[i+84>>2]=f+19&-16,f=f+19&-16?f+19&-16:0):(o[i+84>>2]=0,f=0),o[i+72>>2]=f,o[4546]=1+(0|o[4546]),0|(f=0|ye(16+(t<<3|3)|0))?(o[(f+19&-16)-4>>2]=f,o[i+88>>2]=f+19&-16,f=f+19&-16?f+19&-16:0):(o[i+88>>2]=0,f=0),o[i+76>>2]=f,o[o[i+60>>2]>>2]=0,c=0|o[i+60>>2],r[c+48>>1]=0,r[c+54>>1]=1,h=0|o[i+68>>2],r[h>>1]=0,r[h+2>>1]=0,r[h+4>>1]=0|r[i+6>>1],r[h+6>>1]=0,r[c+50>>1]=0,r[c+56>>1]=1,h=0|o[i+72>>2],r[h>>1]=0,r[h+2>>1]=0,r[h+4>>1]=0|r[i+6>>1],r[h+6>>1]=0,r[c+52>>1]=0,r[c+58>>1]=1,c=0|o[i+76>>2],r[c>>1]=0,r[c+2>>1]=0,r[c+4>>1]=0|r[i+6>>1],r[c+6>>1]=0,o[i>>2]=4224,u=l}function di(i,t,e){t|=0,e|=0;var r,f=0,a=0,s=0,c=0,h=0;if(r=u,!((0|(f=0|o[(i|=0)+4>>2]))<=(0|t)&(0|f)<(0|t)))return o[i+4>>2]=t,void(u=r);if((0|o[i+8>>2])<(0|t)){if(0|t?(o[4546]=1+(0|o[4546]),0|(a=0|ye(16+(t<<4|3)|0))?(o[(a+19&-16)-4>>2]=a,a=a+19&-16):a=0,s=0|o[i+4>>2]):(a=0,s=f),(0|s)>0){c=0;do{h=0|o[i+12>>2],o[a+(c<<4)>>2]=o[h+(c<<4)>>2],o[a+(c<<4)+4>>2]=o[h+(c<<4)+4>>2],o[a+(c<<4)+8>>2]=o[h+(c<<4)+8>>2],o[a+(c<<4)+12>>2]=o[h+(c<<4)+12>>2],c=c+1|0}while((0|c)!=(0|s))}0|(s=0|o[i+12>>2])&&(0|n[i+16|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[s+-4>>2])),o[i+12>>2]=0),n[i+16|0]=1,o[i+12>>2]=a,o[i+8>>2]=t,a=i+12|0}else a=i+12|0;do{h=0|o[a>>2],o[h+(f<<4)>>2]=o[e>>2],o[h+(f<<4)+4>>2]=o[e+4>>2],o[h+(f<<4)+8>>2]=o[e+8>>2],o[h+(f<<4)+12>>2]=o[e+12>>2],f=f+1|0}while((0|f)!=(0|t));o[i+4>>2]=t,u=r}function vi(i,t,e){i|=0,t|=0,e|=0;var n,r=0,f=0,a=0,s=0,c=0,h=0,l=0,d=0,v=0,b=0,_=0,w=0,p=0,m=0;for(n=u;;){for(s=(t+e|0)/2|0,f=0|o[i+12>>2],a=0|o[f+(s<<4)>>2],r=0|o[f+(s<<4)+4>>2],s=0|o[f+(s<<4)+8>>2],c=t,v=e;;){i:for(;;){_=0|(l=0|o[f+(c<<4)>>2])?0|o[l+12>>2]:-1,d=0|a?0|o[a+12>>2]:-1,w=0|(h=0|o[f+(c<<4)+4>>2])?0|o[h+12>>2]:-1,b=0|r?0|o[r+12>>2]:-1;do{if((0|_)<=(0|d)){if((d=(0|l)==(0|a)&(0|w)>(0|b))|(0|l)==(0|a)^1){if(d)break;break i}if((0|h)!=(0|r))break i;if(!((0|o[f+(c<<4)+8>>2])>>>0>s>>>0))break i}}while(0);c=c+1|0}i:do{if(0|a)for(d=0|o[a+12>>2],_=v;;){m=0|(b=0|o[f+(_<<4)>>2])?0|o[b+12>>2]:-1,w=0|r?0|o[r+12>>2]:-1,p=0|(v=0|o[f+(_<<4)+4>>2])?0|o[v+12>>2]:-1;do{if((0|d)<=(0|m)){if((w=(0|a)==(0|b)&(0|w)>(0|p))|(0|a)==(0|b)^1){if(w)break;v=_;break i}if((0|r)!=(0|v)){v=_;break i}if(!(s>>>0>(0|o[f+(_<<4)+8>>2])>>>0)){v=_;break i}}}while(0);_=_+-1|0}else for(;;){w=0|(b=0|o[f+(v<<4)>>2])?0|o[b+12>>2]:-1,p=0|r?0|o[r+12>>2]:-1,_=0|(d=0|o[f+(v<<4)+4>>2])?0|o[d+12>>2]:-1;do{if(!((0|w)<-1)){if((_=!(0|b)&(0|p)>(0|_))|1^!(0|b)){if(_)break;break i}if((0|r)!=(0|d))break i;if(!(s>>>0>(0|o[f+(v<<4)+8>>2])>>>0))break i}}while(0);v=v+-1|0}}while(0);if((0|c)<=(0|v)&&(m=f+(c<<4)|0,w=0|o[f+(c<<4)+8>>2],p=0|o[f+(c<<4)+12>>2],_=f+(v<<4)|0,o[m+0>>2]=o[_+0>>2],o[m+4>>2]=o[_+4>>2],o[m+8>>2]=o[_+8>>2],o[m+12>>2]=o[_+12>>2],m=0|o[i+12>>2],o[m+(v<<4)>>2]=l,o[m+(v<<4)+4>>2]=h,o[m+(v<<4)+8>>2]=w,o[m+(v<<4)+12>>2]=p,c=c+1|0,v=v+-1|0),(0|c)>(0|v))break;f=0|o[i+12>>2]}if((0|v)>(0|t)&&vi(i,t,v),!((0|c)<(0|e)))break;t=c}u=n}function bi(i,t,e,n,o,f){t|=0,n=+n,o=+o,f|=0;var a,c=0;a=u,e=((e=+e)-+s[(i|=0)+8>>2])*+s[i+40>>2],n=(n-+s[i+12>>2])*+s[i+44>>2],o=(o-+s[i+16>>2])*+s[i+48>>2];do{if(!(e<=0)){if(e>=+(65535&(c=0|r[i+6>>1]))){c=r[i+4>>1]&c&65535|f;break}c=65535&r[i+4>>1]&e&65535|f;break}c=f}while(0);r[t>>1]=c;do{if(!(n<=0)){if(n>=+(65535&(c=0|r[i+6>>1]))){c=r[i+4>>1]&c&65535|f;break}c=65535&r[i+4>>1]&n&65535|f;break}c=f}while(0);return r[t+2>>1]=c,o<=0?(f&=65535,r[(c=t+4|0)>>1]=f,void(u=a)):o>=+(65535&(c=0|r[i+6>>1]))?(f=r[i+4>>1]&c&65535|f,f&=65535,r[(c=t+4|0)>>1]=f,void(u=a)):(f=65535&r[i+4>>1]&o&65535|f,f&=65535,r[(c=t+4|0)>>1]=f,void(u=a))}function _i(i,t,e){e|=0;var n,f,s,c=0,h=0,l=0,d=0,v=0,b=0;if(s=u,b=0|o[(i|=0)+((t|=0)<<2)+68>>2],n=0|o[i+60>>2],f=0|a[b+((65535&e)<<2)+2>>1],d=0|r[b+((65535&e)-1<<2)>>1],(0|a[b+((65535&e)<<2)>>1])<(65535&d)){for(l=n,v=b+((65535&e)<<2)|0,b=b+((65535&e)-1<<2)|0;e=0|a[b+2>>1],1&d?((0|a[n+(f<<6)+((1<<t&3)<<1)+54>>1])>=(0|a[l+(e<<6)+((1<<t&3)<<1)+48>>1])&&(0|a[l+(e<<6)+((1<<t&3)<<1)+54>>1])>=(0|a[n+(f<<6)+((1<<t&3)<<1)+48>>1])&&(0|a[n+(f<<6)+((1<<(1<<t&3)&3)<<1)+54>>1])>=(0|a[l+(e<<6)+((1<<(1<<t&3)&3)<<1)+48>>1])&&(0|a[l+(e<<6)+((1<<(1<<t&3)&3)<<1)+54>>1])>=(0|a[n+(f<<6)+((1<<(1<<t&3)&3)<<1)+48>>1])&&(c=0|o[i+92>>2],h=l+(e<<6)|0,_n[31&o[8+(0|o[c>>2])>>2]](c,n+(f<<6)|0,h),0|(c=0|o[i+96>>2]))&&_n[31&o[8+(0|o[c>>2])>>2]](c,n+(f<<6)|0,h),r[(e=l+(e<<6)+(t<<1)+54|0)>>1]=1+(0|r[e>>1])<<16>>16):r[(e=l+(e<<6)+(t<<1)+48|0)>>1]=1+(0|r[e>>1])<<16>>16,r[n+(f<<6)+(t<<1)+48>>1]=(0|r[n+(f<<6)+(t<<1)+48>>1])-1<<16>>16,d=a[v>>1]|a[v+2>>1]<<16,e=a[b>>1]|a[b+2>>1]<<16,r[v>>1]=e,r[v+2>>1]=e>>>16,r[b>>1]=d,r[b+2>>1]=d>>>16,v=v+-4|0,d=0|r[(b=b+-4|0)>>1],(0|a[v>>1])<(65535&d);)l=0|o[i+60>>2];u=s}else u=s}function wi(i,t,e,n){e|=0,n|=0;var f,s,c=0,h=0,l=0,d=0,v=0,b=0,_=0;if(s=u,_=0|o[(i|=0)+((t|=0)<<2)+68>>2],v=0|r[_+((65535&e)-1<<2)>>1],(0|a[_+((65535&e)<<2)>>1])<(65535&v)){for(f=(d=0|o[i+60>>2])+(a[_+((65535&e)<<2)+2>>1]<<6)+(t<<1)+54|0,b=_+((65535&e)<<2)|0,_=_+((65535&e)-1<<2)|0;e=0|a[_+2>>1],1&v?r[(e=d+(e<<6)+(t<<1)+54|0)>>1]=1+(0|r[e>>1])<<16>>16:(v=0|a[b+2>>1],(0|a[d+(v<<6)+((1<<t&3)<<1)+54>>1])>=(0|a[d+(e<<6)+((1<<t&3)<<1)+48>>1])&&(0|a[d+(e<<6)+((1<<t&3)<<1)+54>>1])>=(0|a[d+(v<<6)+((1<<t&3)<<1)+48>>1])&&(0|a[d+(v<<6)+((1<<(1<<t&3)&3)<<1)+54>>1])>=(0|a[d+(e<<6)+((1<<(1<<t&3)&3)<<1)+48>>1])&&(0|a[d+(e<<6)+((1<<(1<<t&3)&3)<<1)+54>>1])>=(0|a[d+(v<<6)+((1<<(1<<t&3)&3)<<1)+48>>1])&&(h=0|o[i+92>>2],l=d+(v<<6)|0,c=d+(e<<6)|0,hn[31&o[12+(0|o[h>>2])>>2]](h,l,c,n),0|(h=0|o[i+96>>2]))&&hn[31&o[12+(0|o[h>>2])>>2]](h,l,c,n),r[(e=d+(e<<6)+(t<<1)+48|0)>>1]=1+(0|r[e>>1])<<16>>16),r[f>>1]=(0|r[f>>1])-1<<16>>16,v=a[b>>1]|a[b+2>>1]<<16,e=a[_>>1]|a[_+2>>1]<<16,r[b>>1]=e,r[b+2>>1]=e>>>16,r[_>>1]=v,r[_+2>>1]=v>>>16,b=b+-4|0,v=0|r[(_=_+-4|0)>>1],(0|a[b>>1])<(65535&v);)d=0|o[i+60>>2];u=s}else u=s}function pi(i){var t,e=0;t=u,o[(i|=0)>>2]=4400,0|o[i+108>>2]&&(e=0|o[i+112>>2],nn[255&o[o[e>>2]>>2]](e),0|(e=0|o[i+112>>2])&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),e=0|o[i+108>>2],nn[255&o[o[e>>2]>>2]](e),0|(e=0|o[i+108>>2])&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2]))),0|(e=0|o[i+88>>2])&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),0|(e=0|o[i+84>>2])&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),0|(e=0|o[i+80>>2])&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),0|(e=0|o[i+60>>2])&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),0|n[i+100|0]?(e=0|o[i+92>>2],nn[255&o[o[e>>2]>>2]](e),0|(i=0|o[i+92>>2])?(o[4548]=1+(0|o[4548]),ke(0|o[i+-4>>2]),u=t):u=t):u=t}function mi(i){return+ +s[(i|=0)+44>>2]}function yi(i,t,e,r){t|=0,e|=0,r|=0;var f;f=u,u=u+48|0,o[(i|=0)+8>>2]=0,s[i+12>>2]=0,o[i>>2]=15584,o[i+48>>2]=t,o[i+4>>2]=21,0|an[127&o[40+(0|o[t>>2])>>2]](t)?Pn[63&o[48+(0|o[t>>2])>>2]](t,i+16|0,i+32|0):(o[f+32>>2]=0,o[f+36>>2]=0,o[f+40>>2]=0,o[f+44>>2]=0,s[f+32>>2]=1,Pn[63&o[68+(0|o[i>>2])>>2]](f+16|0,i,f+32|0),s[i+32>>2]=+s[f+16>>2]+ +s[i+12>>2],s[f+32>>2]=-1,Pn[63&o[68+(0|o[i>>2])>>2]](f,i,f+32|0),o[f+16>>2]=o[f+0>>2],o[f+20>>2]=o[f+4>>2],o[f+24>>2]=o[f+8>>2],o[f+28>>2]=o[f+12>>2],s[i+16>>2]=+s[f+16>>2]-+s[i+12>>2],o[f+32>>2]=0,o[f+36>>2]=0,o[f+40>>2]=0,o[f+44>>2]=0,s[f+36>>2]=1,Pn[63&o[68+(0|o[i>>2])>>2]](f+16|0,i,f+32|0),s[i+36>>2]=+s[f+20>>2]+ +s[i+12>>2],s[f+36>>2]=-1,Pn[63&o[68+(0|o[i>>2])>>2]](f,i,f+32|0),o[f+16>>2]=o[f+0>>2],o[f+20>>2]=o[f+4>>2],o[f+24>>2]=o[f+8>>2],o[f+28>>2]=o[f+12>>2],s[i+20>>2]=+s[f+20>>2]-+s[i+12>>2],o[f+32>>2]=0,o[f+36>>2]=0,o[f+40>>2]=0,o[f+44>>2]=0,s[f+40>>2]=1,Pn[63&o[68+(0|o[i>>2])>>2]](f+16|0,i,f+32|0),s[i+40>>2]=+s[f+24>>2]+ +s[i+12>>2],s[f+40>>2]=-1,Pn[63&o[68+(0|o[i>>2])>>2]](f,i,f+32|0),o[f+16>>2]=o[f+0>>2],o[f+20>>2]=o[f+4>>2],o[f+24>>2]=o[f+8>>2],o[f+28>>2]=o[f+12>>2],s[i+24>>2]=+s[f+24>>2]-+s[i+12>>2]),o[i>>2]=4848,o[i+52>>2]=0,o[i+56>>2]=0,n[i+60|0]=1&e,n[i+61|0]=0,o[i+4>>2]=21,r?(o[4546]=1+(0|o[4546]),0|(e=0|ye(191))?(o[(e+19&-16)-4>>2]=e,e=e+19&-16):e=0,o[e+52>>2]=282,n[e+60|0]=0,n[e+80|0]=1,o[e+76>>2]=0,o[e+68>>2]=0,o[e+72>>2]=0,n[e+100|0]=1,o[e+96>>2]=0,o[e+88>>2]=0,o[e+92>>2]=0,n[e+120|0]=1,o[e+116>>2]=0,o[e+108>>2]=0,o[e+112>>2]=0,n[e+140|0]=1,o[e+136>>2]=0,o[e+128>>2]=0,o[e+132>>2]=0,o[e+144>>2]=0,n[e+164|0]=1,o[e+160>>2]=0,o[e+152>>2]=0,o[e+156>>2]=0,o[e+168>>2]=0,s[e+4>>2]=-34028234663852886e22,s[e+8>>2]=-34028234663852886e22,s[e+12>>2]=-34028234663852886e22,s[e+16>>2]=0,s[e+20>>2]=34028234663852886e22,s[e+24>>2]=34028234663852886e22,s[e+28>>2]=34028234663852886e22,s[e+32>>2]=0,o[e>>2]=13368,o[i+52>>2]=e,ft(e,0|o[i+48>>2],!!(0|n[i+60|0]),i+16|0,i+32|0),n[i+61|0]=1,u=f):u=f}function ki(i,t,e,r){t|=0,e|=0,r|=0;var f,a=0,c=0,h=0,l=0,d=0,v=0,b=0,_=0,w=0,p=0,m=0,y=0,k=0,g=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0,L=0,I=0,A=0,D=0,O=0,R=0,P=0,N=0,B=0,F=0,V=0;return f=u,u=u+288|0,0|o[(i|=0)+16>>2]?(F=0|o[i+4>>2],n[F+312|0]=0,o[F>>2]=0,n[F+356|0]=1,s[F+292>>2]=0xde0b6b000000000,s[F+296>>2]=0xde0b6b000000000,s[F+300>>2]=0xde0b6b000000000,s[F+304>>2]=0,o[F+336>>2]=0,o[F+340>>2]=0,o[F+344>>2]=0,o[F+348>>2]=0,n[F+352|0]=0,n[F+332|0]=-16&n[F+332|0],F=0|o[i+12>>2],B=0|o[i+16>>2],N=0|o[F+4>>2],P=0|o[B+4>>2],O=+mn[15&o[48+(0|o[F>>2])>>2]](F),V=0|o[i+16>>2],R=+mn[15&o[48+(0|o[V>>2])>>2]](V),V=0|o[i+4>>2],i=0|o[i+8>>2],o[f+200>>2]=11880,s[f+204>>2]=0,s[f+208>>2]=1,s[f+212>>2]=0,s[f+216>>2]=0,o[f+220>>2]=i,o[f+224>>2]=V,o[f+228>>2]=F,o[f+232>>2]=B,o[f+236>>2]=N,o[f+240>>2]=P,s[f+244>>2]=O,s[f+248>>2]=R,n[f+252|0]=0,o[f+260>>2]=-1,o[f+272>>2]=1,o[f+276>>2]=1,s[f+192>>2]=0xde0b6b000000000,o[f+64>>2]=o[t+0>>2],o[f+68>>2]=o[t+4>>2],o[f+72>>2]=o[t+8>>2],o[f+76>>2]=o[t+12>>2],o[f+80>>2]=o[t+16>>2],o[f+84>>2]=o[t+20>>2],o[f+88>>2]=o[t+24>>2],o[f+92>>2]=o[t+28>>2],o[f+96>>2]=o[t+32>>2],o[f+100>>2]=o[t+36>>2],o[f+104>>2]=o[t+40>>2],o[f+108>>2]=o[t+44>>2],o[f+112>>2]=o[t+48>>2],o[f+116>>2]=o[t+52>>2],o[f+120>>2]=o[t+56>>2],o[f+124>>2]=o[t+60>>2],o[f+128>>2]=o[e+0>>2],o[f+132>>2]=o[e+4>>2],o[f+136>>2]=o[e+8>>2],o[f+140>>2]=o[e+12>>2],o[f+144>>2]=o[e+16>>2],o[f+148>>2]=o[e+20>>2],o[f+152>>2]=o[e+24>>2],o[f+156>>2]=o[e+28>>2],o[f+160>>2]=o[e+32>>2],o[f+164>>2]=o[e+36>>2],o[f+168>>2]=o[e+40>>2],o[f+172>>2]=o[e+44>>2],o[f+176>>2]=o[e+48>>2],o[f+180>>2]=o[e+52>>2],o[f+184>>2]=o[e+56>>2],o[f+188>>2]=o[e+60>>2],Ni(f+200|0,f+64|0,r,0,0),void(u=f)):(P=0|o[i+12>>2],i=0|o[i+20>>2],d=+s[t>>2],_=+s[t+4>>2],y=+s[t+8>>2],c=+s[t+16>>2],w=+s[t+20>>2],a=+s[t+24>>2],l=+s[t+32>>2],p=+s[t+36>>2],h=+s[t+40>>2],I=+s[t+48>>2],L=+s[t+52>>2],T=+s[t+56>>2],R=+s[e>>2],O=+s[e+16>>2],j=+s[e+32>>2],D=+s[e+4>>2],A=+s[e+20>>2],g=+s[e+36>>2],k=+s[e+8>>2],S=+s[e+24>>2],C=+s[e+40>>2],E=-+s[e+48>>2],M=-+s[e+52>>2],b=-+s[e+56>>2],t=0|o[64+(0|o[P>>2])>>2],x=-+s[i+48>>2],m=-+s[i+52>>2],v=-+s[i+56>>2],s[f+32>>2]=(d*R+c*O+l*j)*x+(d*D+c*A+l*g)*m+(d*k+c*S+l*C)*v,s[f+36>>2]=(_*R+w*O+p*j)*x+(_*D+w*A+p*g)*m+(_*k+w*S+p*C)*v,s[f+40>>2]=(y*R+a*O+h*j)*x+(y*D+a*A+h*g)*m+(y*k+a*S+h*C)*v,s[f+44>>2]=0,Pn[63&t](f+48|0,P,f+32|0),j=I*R+L*O+T*j+(R*E+O*M+j*b)+((d*R+c*O+l*j)*(v=+s[f+48>>2])+(_*R+w*O+p*j)*(m=+s[f+52>>2])+(y*R+a*O+h*j)*(x=+s[f+56>>2])),g=I*D+L*A+T*g+(D*E+A*M+g*b)+((d*D+c*A+l*g)*v+(_*D+w*A+p*g)*m+(y*D+a*A+h*g)*x),x=I*k+L*S+T*C+(k*E+S*M+C*b)+((d*k+c*S+l*C)*v+(_*k+w*S+p*C)*m+(y*k+a*S+h*C)*x),C=+s[i+48>>2],h=+s[i+52>>2],a=(S=+s[i+56>>2])*x+(C*j+h*g)-+s[i+64>>2],k=+s[e>>2],y=+s[e+4>>2],m=+s[e+8>>2],p=+s[e+16>>2],w=+s[e+20>>2],_=+s[e+24>>2],v=+s[e+32>>2],l=+s[e+36>>2],c=+s[e+40>>2],d=p*(j-C*a)+(g-h*a)*w+(x-S*a)*_+ +s[e+52>>2],b=(j-C*a)*v+(g-h*a)*l+(x-S*a)*c+ +s[e+56>>2],s[f+16>>2]=m*(x-S*a)+(k*(j-C*a)+y*(g-h*a))+ +s[e+48>>2],s[f+20>>2]=d,s[f+24>>2]=b,s[f+28>>2]=0,b=+s[i+48>>2],d=+s[i+52>>2],h=+s[i+56>>2],s[f>>2]=k*b+y*d+m*h,s[f+4>>2]=b*p+d*w+h*_,s[f+8>>2]=b*v+d*l+h*c,s[f+12>>2]=0,Rn[15&o[16+(0|o[r>>2])>>2]](r,f,f+16|0,a),void(u=f))}function gi(i,t,e,r,f,a){i|=0,t|=0,r|=0,f|=0,a|=0;var c,h,l,d,v,b,w,p=0,m=0,y=0,k=0,g=0,C=0,j=0,S=0,x=0;if(c=u,u=u+304|0,h=+s[(e|=0)+48>>2]-+s[t+48>>2],d=+s[e+52>>2]-+s[t+52>>2],l=+s[e+56>>2]-+s[t+56>>2],wt(t,e,c+256|0,c+192|0),y=+s[c+192>>2],m=+s[c+256>>2]*y,p=y*+s[c+260>>2],y*=+s[c+264>>2],s[c+176>>2]=m,s[c+180>>2]=p,s[c+184>>2]=y,s[c+188>>2]=0,v=+s[f+48>>2]-+s[r+48>>2],w=+s[f+52>>2]-+s[r+52>>2],b=+s[f+56>>2]-+s[r+56>>2],wt(r,f,c+256|0,c+192|0),g=+s[c+192>>2],k=+s[c+256>>2]*g,C=g*+s[c+260>>2],g*=+s[c+264>>2],s[c+160>>2]=k,s[c+164>>2]=C,s[c+168>>2]=g,s[c+172>>2]=0,f=0|o[i+12>>2],j=+mn[15&o[16+(0|o[f>>2])>>2]](f),S=0|(f=0|o[i+16>>2])?+mn[15&o[16+(0|o[f>>2])>>2]](f):0,(m=j*+_(+(m*m+p*p+y*y))+S*+_(+(k*k+C*C+g*g)))+ +_(+((v-h)*(v-h)+(w-d)*(w-d)+(b-l)*(b-l)))==0)return u=c,0|(e=0);if(o[c+256>>2]=9368,s[c+292>>2]=0xde0b6b000000000,n[c+296|0]=0,ki(i,t,r,c+256|0),e=!(0|n[c+296|0]),o[c+144>>2]=o[c+276>>2],o[c+148>>2]=o[c+280>>2],o[c+152>>2]=o[c+284>>2],o[c+156>>2]=o[c+288>>2],e)return u=c,0|(e=0);if(m+((v-h)*(g=+s[c+260>>2])+(w-d)*(C=+s[c+264>>2])+(b-l)*(j=+s[c+268>>2]))<=1.1920928955078125e-7)return u=c,0|(e=0);for(k=+s[c+272>>2],y=+s[c+292>>2]+ +s[a+172>>2],p=0,f=0;;){if(!(y>.0010000000474974513)){t=18;break}if(0|(e=0|o[a+168>>2])&&(x=0|o[20+(0|o[e>>2])>>2],s[c+128>>2]=1,s[c+132>>2]=1,s[c+136>>2]=1,s[c+140>>2]=0,sn[3&x](e,c+144|0,.20000000298023224,c+128|0)),(k=m+((b-l)*j+((w-d)*C+(v-h)*g)))<=1.1920928955078125e-7){a=0,t=19;break}if(!(!((g=p+y/k)<0)&!(g>1)&!(g<=p))){a=0,t=19;break}if(bt(t,h,d,l,c+176|0,g,c+192|0),bt(r,v,w,b,c+160|0,g,c+64|0),0|(e=0|o[a+168>>2])&&(x=0|o[20+(0|o[e>>2])>>2],s[c+48>>2]=1,s[c+52>>2]=0,s[c+56>>2]=0,s[c+60>>2]=0,sn[3&x](e,c+240|0,.20000000298023224,c+48|0)),en[31&o[o[a>>2]>>2]](a,g),o[c>>2]=9368,s[c+36>>2]=0xde0b6b000000000,n[c+40|0]=0,ki(i,c+192|0,c+64|0,c),!(0|n[c+40|0])){t=16;break}if(y=+s[c+36>>2]+ +s[a+172>>2],o[c+144>>2]=o[c+20>>2],o[c+148>>2]=o[c+24>>2],o[c+152>>2]=o[c+28>>2],o[c+156>>2]=o[c+32>>2],e=f+1|0,(0|f)>63){t=17;break}k=+s[c+16>>2],p=g,g=+s[c+4>>2],C=+s[c+8>>2],j=+s[c+12>>2],f=e}return 16==(0|t)?(Pn[63&o[8+(0|o[a>>2])>>2]](a,-1,f),u=c,0|(x=0)):17==(0|t)?(Pn[63&o[8+(0|o[a>>2])>>2]](a,-2,e),u=c,0|(x=0)):18==(0|t)?(s[a+164>>2]=p,s[a+132>>2]=g,s[a+136>>2]=C,s[a+140>>2]=j,s[a+144>>2]=k,o[a+148>>2]=o[c+144>>2],o[a+152>>2]=o[c+148>>2],o[a+156>>2]=o[c+152>>2],o[a+160>>2]=o[c+156>>2],u=c,0|(x=1)):19==(0|t)?(u=c,0|a):0}function Ci(i,t,e){i|=0,e|=0;var n,r=0,f=0,a=0,c=0,h=0,l=0,d=0,v=0,b=0,w=0,p=0,m=0,y=0,k=0,g=0,C=0,j=0;switch(n=u,u=u+80|0,0|o[(t|=0)+4>>2]){case 0:return m=+s[t+28>>2],k=+s[t+32>>2],k=+s[e+4>>2]>=0?k:-k,g=+s[t+36>>2],g=+s[e+8>>2]>=0?g:-g,s[i>>2]=+s[e>>2]>=0?m:-m,s[i+4>>2]=k,s[i+8>>2]=g,s[i+12>>2]=0,void(u=n);case 8:return o[i+0>>2]=0,o[i+4>>2]=0,o[i+8>>2]=0,o[i+12>>2]=0,void(u=n);case 4:if(y=0|o[t+104>>2],C=0|o[t+96>>2],r=+s[t+12>>2],f=+s[t+16>>2],a=+s[t+20>>2],h=+s[e>>2]*r,c=+s[e+4>>2]*f,v=+s[e+8>>2]*a,(0|C)>0)for(e=0,l=-34028234663852886e22,j=-1;j=(t=(d=h*+s[y+(e<<4)>>2]+c*+s[y+(e<<4)+4>>2]+v*+s[y+(e<<4)+8>>2])>l)?e:j,(0|(e=e+1|0))!=(0|C);)l=t?d:l;else j=-1;return k=f*+s[y+(j<<4)+4>>2],g=a*+s[y+(j<<4)+8>>2],s[i>>2]=r*+s[y+(j<<4)>>2],s[i+4>>2]=k,s[i+8>>2]=g,s[i+12>>2]=0,void(u=n);case 5:if(y=0|o[t+92>>2],C=0|o[t+96>>2],f=+s[t+12>>2],r=+s[t+16>>2],a=+s[t+20>>2],h=+s[e>>2]*f,c=+s[e+4>>2]*r,d=+s[e+8>>2]*a,(0|C)>0)for(t=0,l=-34028234663852886e22,j=-1;j=(e=(v=h*+s[y+(t<<4)>>2]+c*+s[y+(t<<4)+4>>2]+d*+s[y+(t<<4)+8>>2])>l)?t:j,(0|(t=t+1|0))!=(0|C);)l=e?v:l;else j=-1;return k=r*+s[y+(j<<4)+4>>2],g=a*+s[y+(j<<4)+8>>2],s[i>>2]=f*+s[y+(j<<4)>>2],s[i+4>>2]=k,s[i+8>>2]=g,s[i+12>>2]=0,void(u=n);case 1:return k=+s[e>>2],g=+s[e+4>>2],a=+s[e+8>>2],f=k*+s[t+56>>2]+g*+s[t+60>>2]+a*+s[t+64>>2],r=k*+s[t+72>>2]+g*+s[t+76>>2]+a*+s[t+80>>2],a=k*+s[t+88>>2]+g*+s[t+92>>2]+a*+s[t+96>>2],k=+s[t+56+((e=f<r?r<a?2:1:f<a?2:0)<<4)+4>>2],g=+s[t+56+(e<<4)+8>>2],s[i>>2]=+s[t+56+(e<<4)>>2],s[i+4>>2]=k,s[i+8>>2]=g,s[i+12>>2]=0,void(u=n);case 10:return f=+s[e>>2],a=+s[e+4>>2],c=+s[e+8>>2],e=0|o[t+52>>2],r=+s[t+(e<<2)+28>>2],d=+s[t+((e+2|0)%3<<2)+28>>2],f*f+a*a+c*c<9999999747378752e-20?(f=1,a=0,h=0):(f*=h=1/+_(+(f*f+a*a+c*c)),a*=h,h*=c),o[n+16>>2]=0,o[n+20>>2]=0,o[n+24>>2]=0,o[n+28>>2]=0,s[n+16+(e<<2)>>2]=r,c=d*f,l=d*a,d*=h,w=f*(v=+s[t+44>>2]),b=a*v,v*=h,k=+s[n+16>>2]+c-w,m=l+ +s[n+20>>2]-b,(p=h*(g=d+ +s[n+24>>2]-v)+(f*k+a*m))>-0xde0b6b000000000||(p=-0xde0b6b000000000,k=0,g=0,m=0),o[n+0>>2]=0,o[n+4>>2]=0,o[n+8>>2]=0,o[n+12>>2]=0,s[n+(e<<2)>>2]=-r,c=c+ +s[n>>2]-w,b=l+ +s[n+4>>2]-b,j=h*(w=d+ +s[n+8>>2]-v)+(f*c+a*b)>p,s[i>>2]=j?c:k,s[i+4>>2]=j?b:m,s[i+8>>2]=j?w:g,s[i+12>>2]=0,void(u=n);case 13:return o[n+64>>2]=o[t+28>>2],o[n+68>>2]=o[t+32>>2],o[n+72>>2]=o[t+36>>2],o[n+76>>2]=o[t+40>>2],s[n+48>>2]=+s[e>>2],r=+s[e+4>>2],s[n+52>>2]=r,f=+s[e+8>>2],s[n+56>>2]=f,s[n+60>>2]=0,1==(0|(C=0|o[t+52>>2]))?(y=0,t=C,e=2):2==(0|C)?(f=r,y=0,t=C,e=1):(y=1,t=0,e=2),r=+s[n+64+(y<<2)>>2],c=+s[n+64+(C<<2)>>2],h=+s[n+48+(y<<2)>>2],0!=(a=+_(+(h*h+f*f)))?(s[n+32+(y<<2)>>2]=h*(r/a),+s[n+48+(t<<2)>>2]<0&&(c=-c),s[n+32+(t<<2)>>2]=c,s[n+32+(e<<2)>>2]=r/a*f,s[i>>2]=+s[n+32>>2],s[i+4>>2]=+s[n+36>>2],s[i+8>>2]=+s[n+40>>2],s[i+12>>2]=0,void(u=n)):(s[n+32+(y<<2)>>2]=r,+s[n+48+(t<<2)>>2]<0&&(c=-c),s[n+32+(t<<2)>>2]=c,s[n+32+(e<<2)>>2]=0,s[i>>2]=+s[n+32>>2],s[i+4>>2]=+s[n+36>>2],s[i+8>>2]=+s[n+40>>2],s[i+12>>2]=0,void(u=n));default:return Pn[63&o[68+(0|o[t>>2])>>2]](i,t,e),void(u=n)}}function ji(i,t){t|=0;var e,n=0,r=0,f=0,a=0,c=0,h=0;e=u,o[(i|=0)+4>>2]=35,o[i+8>>2]=0,s[i+12>>2]=1,s[i+16>>2]=1,s[i+20>>2]=1,s[i+24>>2]=0,s[i+44>>2]=.03999999910593033,o[i>>2]=9592,o[i+52>>2]=1,r=+s[t>>2],f=+s[t+4>>2],n=+s[t+8>>2],(n=.10000000149011612*+s[t+((a=r<f?r<n?0:2:f<n?1:2)<<2)>>2])<.03999999910593033?(h=+mi(i),c=+mn[15&o[48+(0|o[i>>2])>>2]](i),f=+mn[15&o[48+(0|o[i>>2])>>2]](i),h+=+s[i+28>>2],c+=+s[i+32>>2],f+=+s[i+36>>2],s[i+44>>2]=n,n=+mn[15&o[48+(0|o[i>>2])>>2]](i),r=+mn[15&o[48+(0|o[i>>2])>>2]](i),f-=+mn[15&o[48+(0|o[i>>2])>>2]](i),s[i+28>>2]=h-n,s[i+32>>2]=c-r,s[i+36>>2]=f,s[i+40>>2]=0,a=0|o[i>>2]):a=9592,f=+mn[15&o[a+48>>2]](i),c=+mn[15&o[48+(0|o[i>>2])>>2]](i),h=+mn[15&o[48+(0|o[i>>2])>>2]](i),c=+s[t+4>>2]*+s[i+16>>2]-c,h=+s[t+8>>2]*+s[i+20>>2]-h,s[i+28>>2]=+s[t>>2]*+s[i+12>>2]-f,s[i+32>>2]=c,s[i+36>>2]=h,s[i+40>>2]=0,o[i+4>>2]=13,u=e}function Si(i){var t,e=0;return t=u,0|(e=0|o[(i|=0)>>2])&&xi(i,e),0|(e=0|o[i+4>>2])&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+4>>2]=0,o[i+8>>2]=-1,0|(e=0|o[i+32>>2])&&(0|n[i+36|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+32>>2]=0),n[i+36|0]=1,o[i+32>>2]=0,o[i+24>>2]=0,o[i+28>>2]=0,o[i+16>>2]=0,0|(e=0|o[i+52>>2])&&0|n[i+56|0]?(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2]),e=0|o[i+32>>2],n[i+56|0]=1,o[i+52>>2]=0,o[i+44>>2]=0,o[i+48>>2]=0,0|e?(0|n[i+36|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+32>>2]=0,n[i+36|0]=1,o[i+32>>2]=0,o[i+24>>2]=0,o[i+28>>2]=0,void(u=t)):(n[i+36|0]=1,o[i+32>>2]=0,o[i+24>>2]=0,o[i+28>>2]=0,void(u=t))):(n[i+56|0]=1,o[i+52>>2]=0,o[i+44>>2]=0,o[i+48>>2]=0,n[i+36|0]=1,o[i+32>>2]=0,o[i+24>>2]=0,o[i+28>>2]=0,void(u=t))}function xi(i,t){i|=0;var e,n;if(e=u,0|o[(t|=0)+40>>2]&&(xi(i,0|o[t+36>>2]),xi(i,0|o[t+40>>2])),(0|o[i>>2])==(0|t)&&(o[i>>2]=0),!(0|(n=0|o[i+4>>2])))return o[i+4>>2]=t,void(u=e);o[4548]=1+(0|o[4548]),ke(0|o[n+-4>>2]),o[i+4>>2]=t,u=e}function Mi(i,t){i|=0;var e,n=0,r=0,f=0,a=0,s=0,c=0,h=0,l=0,d=0;if(e=u,u=u+32|0,(0|(t|=0))<0&&(t=0|o[i+12>>2]),!!(0|(s=0|o[i>>2]))&(0|t)>0){for(;;){r=s+40|0;i:do{if(0|o[r>>2])for(n=0;;){if(f=(0|o[i+16>>2])>>>n&1,(a=0|o[(c=s+32|0)>>2])>>>0>s>>>0?(h=(0|o[a+40>>2])==(0|s)&1,l=0|o[a+((1^h)<<2)+36>>2],0|(d=0|o[a+32>>2])?o[d+(((0|o[d+40>>2])==(0|a)&1)<<2)+36>>2]=s:o[i>>2]=s,o[l+32>>2]=s,o[a+32>>2]=s,o[c>>2]=d,d=s+36|0,o[a+36>>2]=o[d>>2],o[a+40>>2]=o[r>>2],o[32+(0|o[d>>2])>>2]=a,o[32+(0|o[r>>2])>>2]=a,o[s+(h<<2)+36>>2]=a,o[s+((1^h)<<2)+36>>2]=l,o[e+0>>2]=o[a+0>>2],o[e+4>>2]=o[a+4>>2],o[e+8>>2]=o[a+8>>2],o[e+12>>2]=o[a+12>>2],o[e+16>>2]=o[a+16>>2],o[e+20>>2]=o[a+20>>2],o[e+24>>2]=o[a+24>>2],o[e+28>>2]=o[a+28>>2],o[a+0>>2]=o[s+0>>2],o[a+4>>2]=o[s+4>>2],o[a+8>>2]=o[s+8>>2],o[a+12>>2]=o[s+12>>2],o[a+16>>2]=o[s+16>>2],o[a+20>>2]=o[s+20>>2],o[a+24>>2]=o[s+24>>2],o[a+28>>2]=o[s+28>>2],o[s+0>>2]=o[e+0>>2],o[s+4>>2]=o[e+4>>2],o[s+8>>2]=o[e+8>>2],o[s+12>>2]=o[e+12>>2],o[s+16>>2]=o[e+16>>2],o[s+20>>2]=o[e+20>>2],o[s+24>>2]=o[e+24>>2],o[s+28>>2]=o[e+28>>2]):a=s,s=0|o[a+(f<<2)+36>>2],!(0|o[s+40>>2]))break i;r=s+40|0,n=n+1&31}}while(0);if(Ei(i,n=0|Ti(i,s)?0|o[i>>2]:0,s),o[i+16>>2]=1+(0|o[i+16>>2]),!(0|(t=t+-1|0)))break;s=0|o[i>>2]}u=e}else u=e}function Ei(i,t,e){t|=0,e|=0;var n,r,f=0,a=0,c=0,h=0,l=0,d=0,v=0,_=0,w=0,p=0,m=0;if(n=u,!(0|o[(i|=0)>>2]))return o[i>>2]=e,o[e+32>>2]=0,void(u=n);if(0|(f=0|o[t+40>>2])){h=+s[e>>2]+ +s[e+16>>2],c=+s[e+4>>2]+ +s[e+20>>2],a=+s[e+8>>2]+ +s[e+24>>2];do{p=0|o[t+36>>2],_=+b(+(h-(+s[p>>2]+ +s[p+16>>2])))+ +b(+(c-(+s[p+4>>2]+ +s[p+20>>2])))+ +b(+(a-(+s[p+8>>2]+ +s[p+24>>2]))),t=0|o[t+((1&!(_<+b(+(h-(+s[f>>2]+ +s[f+16>>2])))+ +b(+(c-(+s[f+4>>2]+ +s[f+20>>2])))+ +b(+(a-(+s[f+8>>2]+ +s[f+24>>2])))))<<2)+36>>2],f=0|o[t+40>>2]}while(0|f)}if(f=0|o[(r=t+32|0)>>2],0|(p=0|o[i+4>>2]))o[i+4>>2]=0;else if(o[4546]=1+(0|o[4546]),0|(p=0|ye(63))&&(o[(p+19&-16)-4>>2]=p,p+19&-16)){w=(v=0+(p+19&-16)|0)+44|0;do{o[v>>2]=0,v=v+4|0}while((0|v)<(0|w));p=p+19&-16}else p=0;if(o[p+32>>2]=f,o[(v=p+36|0)>>2]=0,o[(w=p+40|0)>>2]=0,_=(m=+s[e>>2])<(_=+s[t>>2])?m:_,s[p>>2]=_,h=(m=+s[e+16>>2])>(h=+s[t+16>>2])?m:h,s[p+16>>2]=h,d=(m=+s[e+4>>2])<(d=+s[t+4>>2])?m:d,s[p+4>>2]=d,c=(m=+s[e+20>>2])>(c=+s[t+20>>2])?m:c,s[p+20>>2]=c,l=(m=+s[e+8>>2])<(l=+s[t+8>>2])?m:l,s[p+8>>2]=l,a=(m=+s[e+24>>2])>(a=+s[t+24>>2])?m:a,s[p+24>>2]=a,!(0|f))return o[v>>2]=t,o[r>>2]=p,o[w>>2]=e,o[e+32>>2]=p,o[i>>2]=p,void(u=n);for(o[f+(((0|o[40+(0|o[r>>2])>>2])==(0|t)&1)<<2)+36>>2]=p,o[v>>2]=t,o[r>>2]=p,o[w>>2]=e,o[e+32>>2]=p;;){if(e=f+4|0,+s[f>>2]<=_&&+s[e>>2]<=d&&+s[f+8>>2]<=l&&+s[f+16>>2]>=h&&+s[f+20>>2]>=c&&+s[f+24>>2]>=a){e=21;break}if(w=0|o[f+36>>2],p=0|o[f+40>>2],_=(m=+s[w>>2])<(_=+s[p>>2])?m:_,s[f>>2]=_,h=(m=+s[w+16>>2])>(h=+s[p+16>>2])?m:h,s[f+16>>2]=h,d=(m=+s[w+4>>2])<(d=+s[p+4>>2])?m:d,s[e>>2]=d,c=(m=+s[w+20>>2])>(c=+s[p+20>>2])?m:c,s[f+20>>2]=c,l=(m=+s[w+8>>2])<(l=+s[p+8>>2])?m:l,s[f+8>>2]=l,a=(m=+s[w+24>>2])>(a=+s[p+24>>2])?m:a,s[f+24>>2]=a,!(0|(f=0|o[f+32>>2]))){e=21;break}}21!=(0|e)||(u=n)}function Ti(i,t){t|=0;var e,n=0,r=0,f=0,a=0,c=0,h=0,l=0,d=0,v=0,b=0,_=0,w=0,p=0,m=0,y=0,k=0,g=0,C=0,j=0,S=0,x=0;if(e=u,(0|o[(i|=0)>>2])==(0|t))return o[i>>2]=0,u=e,0|(t=0);if(r=0|o[t+32>>2],f=0|o[r+32>>2],t=0|o[r+(((0|o[r+40>>2])!=(0|t)&1)<<2)+36>>2],!(0|f))return o[i>>2]=t,o[t+32>>2]=0,0|(n=0|o[i+4>>2])&&(o[4548]=1+(0|o[4548]),ke(0|o[n+-4>>2])),o[i+4>>2]=r,t=0|o[i>>2],u=e,0|t;o[f+(((0|o[f+40>>2])==(0|r)&1)<<2)+36>>2]=t,o[t+32>>2]=f,0|(t=0|o[i+4>>2])&&(o[4548]=1+(0|o[4548]),ke(0|o[t+-4>>2])),o[i+4>>2]=r;do{if(y=+s[f>>2],p=+s[(S=f+4|0)>>2],_=+s[(C=f+8|0)>>2],v=+s[(x=f+16|0)>>2],l=+s[(j=f+20|0)>>2],c=+s[(t=f+24|0)>>2],g=0|o[f+36>>2],r=0|o[f+40>>2],m=(k=+s[g>>2])<(m=+s[r>>2])?k:m,s[f>>2]=m,d=(k=+s[g+16>>2])>(d=+s[r+16>>2])?k:d,s[x>>2]=d,w=(k=+s[g+4>>2])<(w=+s[r+4>>2])?k:w,s[S>>2]=w,h=(k=+s[g+20>>2])>(h=+s[r+20>>2])?k:h,s[j>>2]=h,b=(k=+s[g+8>>2])<(b=+s[r+8>>2])?k:b,s[C>>2]=b,a=(k=+s[g+24>>2])>(a=+s[r+24>>2])?k:a,s[t>>2]=a,!(y!=m|p!=w|_!=b|v!=d)&&!(l!=h|c!=a)){n=14;break}f=0|o[f+32>>2]}while(0|f);return 14==(0|n)?(u=e,0|f):(x=0|o[i>>2],u=e,0|x)}function Li(i,t){t|=0;var e,r=0;e=u,o[(i|=0)>>2]=10096,r=i+4|0;do{n[r+36|0]=1,o[r+32>>2]=0,o[r+24>>2]=0,o[r+28>>2]=0,n[r+56|0]=1,o[r+52>>2]=0,o[r+44>>2]=0,o[r+48>>2]=0,o[r>>2]=0,o[r+4>>2]=0,o[r+8>>2]=-1,o[r+12>>2]=0,o[r+16>>2]=0,r=r+60|0}while((0|r)!=(i+124|0));if(n[i+193|0]=0,n[i+194|0]=1,n[i+192|0]=1^!!(0|t),s[i+140>>2]=0,o[i+144>>2]=0,o[i+164>>2]=0,o[i+148>>2]=1,o[i+152>>2]=0,o[i+156>>2]=10,o[i+160>>2]=1,o[i+168>>2]=0,o[i+172>>2]=0,s[i+176>>2]=0,0|t)return o[(r=i+136|0)>>2]=t,o[(r=i+188|0)>>2]=0,o[(r=i+180|0)>>2]=0,o[(r=i+184|0)>>2]=0,o[(r=i+124|0)+0>>2]=0,o[r+4>>2]=0,o[r+8>>2]=0,void(u=e);o[4546]=1+(0|o[4546]),0|(t=0|ye(95))&&(o[(t+19&-16)-4>>2]=t,t+19&-16)?(at(t+19&-16),t=t+19&-16):t=0,o[(r=i+136|0)>>2]=t,o[(r=i+188|0)>>2]=0,o[(r=i+180|0)>>2]=0,o[(r=i+184|0)>>2]=0,o[(r=i+124|0)+0>>2]=0,o[r+4>>2]=0,o[r+8>>2]=0,u=e}function Ii(i,t,e){t|=0,e|=0;var n,r,f,a,c,h,l,d=0,v=0,b=0,_=0,w=0,p=0,m=0,y=0,k=0,g=0;if(r=u,0|(i|=0)){n=+s[t>>2],c=+s[t+4>>2],h=+s[t+8>>2],f=+s[t+16>>2],a=+s[t+20>>2],l=+s[t+24>>2],o[4546]=1+(0|o[4546]),0|(_=0|ye(275))?(o[(_+19&-16)-4>>2]=_,t=_+19&-16,_+19&-16&&(o[t>>2]=i)):t=0,m=64,i=1;do{_=0|o[t+((w=i+-1|0)<<2)>>2];do{if(+s[_>>2]<=f&&+s[_+16>>2]>=n&&+s[_+4>>2]<=a&&+s[_+20>>2]>=c&&+s[_+8>>2]<=l&&+s[_+24>>2]>=h){if(!(0|o[_+40>>2])){on[127&o[12+(0|o[e>>2])>>2]](e,_),i=w;break}if(p=0|o[_+36>>2],(0|w)==(0|m)&&(0|i)<=(0|(d=0|m?m<<1:1))){if(0|d&&(o[4546]=1+(0|o[4546]),0|(b=0|ye(16+(d<<2|3)|0)))?(o[(b+19&-16)-4>>2]=b,y=b+19&-16):y=0,(0|m)>0){g=0;do{0|(k=y+(g<<2)|0)&&(o[k>>2]=o[t+(g<<2)>>2]),g=g+1|0}while((0|g)!=(0|m))}0|t?(o[4548]=1+(0|o[4548]),ke(0|o[t+-4>>2]),m=d,t=y):(m=d,t=y)}if(0|(w=t+(w<<2)|0)&&(o[w>>2]=p),_=0|o[_+40>>2],(0|i)==(0|m))if((0|i)<(0|(m=0|i?i<<1:1))){if(0|m&&(o[4546]=1+(0|o[4546]),0|(v=0|ye(16+(m<<2|3)|0)))?(o[(v+19&-16)-4>>2]=v,w=v+19&-16):w=0,(0|i)>0){p=0;do{0|(y=w+(p<<2)|0)&&(o[y>>2]=o[t+(p<<2)>>2]),p=p+1|0}while((0|p)!=(0|i))}0|t?(o[4548]=1+(0|o[4548]),ke(0|o[t+-4>>2]),t=w):t=w}else m=i;0|(w=t+(i<<2)|0)&&(o[w>>2]=_),i=i+1|0}else i=w}while(0)}while((0|i)>0);0|t?(o[4548]=1+(0|o[4548]),ke(0|o[t+-4>>2]),u=r):u=r}else u=r}function Ai(i,t,e,r,f,a,c,h,l){i|=0,e|=0,r|=0,f|=0,a=+a,c|=0,h|=0,l|=0;var d,v=0,b=0,_=0,w=0,p=0,m=0,y=0,k=0,g=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0,L=0;if(d=u,u=u+32|0,0|(t|=0)){if((0|(p=0|o[i+44>>2]))<128){if((0|o[i+48>>2])<128){if(o[4546]=1+(0|o[4546]),0|(m=0|ye(531))?(o[(m+19&-16)-4>>2]=m,m=m+19&-16):m=0,(0|(k=0|o[i+44>>2]))>0){y=0;do{0|(g=m+(y<<2)|0)&&(o[g>>2]=o[(0|o[i+52>>2])+(y<<2)>>2]),y=y+1|0}while((0|y)!=(0|k))}0|(y=0|o[i+52>>2])&&(0|n[i+56|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[y+-4>>2])),o[i+52>>2]=0),n[i+56|0]=1,o[i+52>>2]=m,o[i+48>>2]=128,m=i+52|0}else m=i+52|0;do{0|(y=(0|o[m>>2])+(p<<2)|0)&&(o[y>>2]=0),p=p+1|0}while(128!=(0|p));p=i+48|0}else p=i+48|0;o[i+44>>2]=128,o[o[i+52>>2]>>2]=t,t=1,k=126;do{m=t+-1|0,g=0|o[i+52>>2],y=0|o[g+(m<<2)>>2],j=+s[y+4>>2]-+s[h+4>>2],C=+s[y+8>>2]-+s[h+8>>2],s[d>>2]=+s[y>>2]-+s[h>>2],s[d+4>>2]=j,s[d+8>>2]=C,s[d+12>>2]=0,C=+s[y+20>>2]-+s[c+4>>2],j=+s[y+24>>2]-+s[c+8>>2],s[d+16>>2]=+s[y+16>>2]-+s[c>>2],s[d+20>>2]=C,s[d+24>>2]=j,s[d+28>>2]=0,T=0|o[f>>2],j=+s[e>>2],C=+s[r>>2],S=(+s[d+(T<<4)>>2]-j)*C,j=C*(+s[d+(1-T<<4)>>2]-j),T=0|o[f+4>>2],C=+s[e+4>>2],L=+s[r+4>>2],x=(+s[d+(T<<4)+4>>2]-C)*L,C=L*(+s[d+(1-T<<4)+4>>2]-C);do{if(!(S>C|x>j||(b=x>S?x:S,w=C<j?C:j,T=0|o[f+8>>2],_=+s[e+8>>2],L=+s[r+8>>2],v=(+s[d+(T<<4)+8>>2]-_)*L,_=L*(+s[d+(1-T<<4)+8>>2]-_),b>_|v>w))&&(v>b?v:b)<a&&(_<w?_:w)>0){if(!(0|o[y+40>>2])){on[127&o[12+(0|o[l>>2])>>2]](l,y),t=m;break}if((0|m)>(0|k)){if((0|(k=0|o[i+44>>2]))<k<<1){if((0|o[p>>2])<k<<1){if(0|k){if(o[4546]=1+(0|o[4546]),0|(g=0|ye(16+(k<<3|3)|0))?(o[(g+19&-16)-4>>2]=g,g=g+19&-16):g=0,(0|(E=0|o[i+44>>2]))>0){M=0;do{0|(T=g+(M<<2)|0)&&(o[T>>2]=o[(0|o[i+52>>2])+(M<<2)>>2]),M=M+1|0}while((0|M)!=(0|E))}}else g=0;0|(M=0|o[i+52>>2])&&(0|n[i+56|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[M+-4>>2])),o[i+52>>2]=0),n[i+56|0]=1,o[i+52>>2]=g,o[p>>2]=k<<1,M=k}else M=k;do{0|(g=g+(M<<2)|0)&&(o[g>>2]=0),M=M+1|0,g=0|o[i+52>>2]}while((0|M)!=k<<1)}o[i+44>>2]=k<<1,k=(k<<1)-2|0}o[g+(m<<2)>>2]=o[y+36>>2],o[(0|o[i+52>>2])+(t<<2)>>2]=o[y+40>>2],t=t+1|0}else t=m}while(0)}while(0|t);u=d}else u=d}function Di(i,t,e,r){i|=0,r|=0;var f,a=0,c=0,h=0,l=0,d=0,v=0,b=0,_=0,w=0,p=0;if(f=u,!(0|(t|=0))|!(0|(e|=0)))u=f;else{if((0|o[i+24>>2])<128&&(0|o[i+28>>2])<128){if(o[4546]=1+(0|o[4546]),0|(a=0|ye(1043))?(o[(a+19&-16)-4>>2]=a,a=a+19&-16):a=0,(0|(l=0|o[i+24>>2]))>0){h=0;do{0|(c=a+(h<<3)|0)&&(b=(0|o[i+32>>2])+(h<<3)|0,_=0|o[b+4>>2],o[c>>2]=o[b>>2],o[c+4>>2]=_),h=h+1|0}while((0|h)!=(0|l))}0|(c=0|o[i+32>>2])&&(0|n[i+36|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[c+-4>>2])),o[i+32>>2]=0),n[i+36|0]=1,o[i+32>>2]=a,o[i+28>>2]=128,a=i+28|0}else a=i+28|0;o[i+24>>2]=128,l=0|o[i+32>>2],o[l>>2]=t,o[l+4>>2]=e,e=1,l=124;do{if(h=e+-1|0,v=0|o[i+32>>2],c=0|o[v+(h<<3)>>2],t=0|o[v+(h<<3)+4>>2],(0|h)>(0|l)){if((0|(l=0|o[i+24>>2]))<l<<1&&(0|o[a>>2])<l<<1){if(0|l)if(o[4546]=1+(0|o[4546]),0|(d=0|ye(16+(l<<4|3)|0))?(o[(d+19&-16)-4>>2]=d,_=d+19&-16):_=0,(0|(v=0|o[i+24>>2]))>0){d=0;do{0|(b=_+(d<<3)|0)&&(p=(0|o[i+32>>2])+(d<<3)|0,w=0|o[p+4>>2],o[b>>2]=o[p>>2],o[b+4>>2]=w),d=d+1|0}while((0|d)!=(0|v));v=_}else v=_;else v=0;0|(d=0|o[i+32>>2])&&(0|n[i+36|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[d+-4>>2])),o[i+32>>2]=0),n[i+36|0]=1,o[i+32>>2]=v,o[a>>2]=l<<1}o[i+24>>2]=l<<1,l=(l<<1)-4|0}do{if((0|c)==(0|t))0|o[c+40>>2]?(w=0|o[c+36>>2],o[(p=v+(h<<3)|0)>>2]=w,o[p+4>>2]=w,p=0|o[c+40>>2],w=(0|o[i+32>>2])+(e<<3)|0,o[w>>2]=p,o[w+4>>2]=p,w=0|o[c+40>>2],p=(0|o[i+32>>2])+(e+1<<3)|0,o[p>>2]=o[c+36>>2],o[p+4>>2]=w,e=e+2|0):e=h;else{if(+s[c>>2]<=+s[t+16>>2]&&+s[c+16>>2]>=+s[t>>2]&&+s[c+4>>2]<=+s[t+20>>2]&&+s[c+20>>2]>=+s[t+4>>2]&&+s[c+8>>2]<=+s[t+24>>2]&&+s[c+24>>2]>=+s[t+8>>2]){if(d=!!(0|o[t+40>>2]),0|o[c+40>>2]){if(h=v+(h<<3)|0,v=0|o[c+36>>2],d){w=0|o[t+36>>2],o[h>>2]=v,o[h+4>>2]=w,w=0|o[t+36>>2],p=(0|o[i+32>>2])+(e<<3)|0,o[p>>2]=o[c+40>>2],o[p+4>>2]=w,p=0|o[t+40>>2],w=(0|o[i+32>>2])+(e+1<<3)|0,o[w>>2]=o[c+36>>2],o[w+4>>2]=p,w=0|o[t+40>>2],p=(0|o[i+32>>2])+(e+2<<3)|0,o[p>>2]=o[c+40>>2],o[p+4>>2]=w,e=e+3|0;break}o[h>>2]=v,o[h+4>>2]=t,p=(0|o[i+32>>2])+(e<<3)|0,o[p>>2]=o[c+40>>2],o[p+4>>2]=t,e=e+1|0;break}if(d){p=0|o[t+36>>2],o[(w=v+(h<<3)|0)>>2]=c,o[w+4>>2]=p,w=0|o[t+40>>2],p=(0|o[i+32>>2])+(e<<3)|0,o[p>>2]=c,o[p+4>>2]=w,e=e+1|0;break}Pn[63&o[8+(0|o[r>>2])>>2]](r,c,t),e=h;break}e=h}}while(0)}while(0|e);u=f}}function Oi(i,t){t|=0;var e,r=0,f=0,a=0,c=0,h=0,l=0,d=0,v=0;if(e=u,o[(i|=0)>>2]=10440,o[4546]=1+(0|o[4546]),0|(c=0|ye(379))?(o[(c+19&-16)-4>>2]=c,c=c+19&-16):c=0,s[c+308>>2]=9999999747378752e-20,n[(h=c+332|0)|0]=-16&n[h|0],o[i+24>>2]=c,c=!(0|o[t+20>>2]),o[4546]=1+(0|o[4546]),0|(h=0|ye(23))?(o[(h+19&-16)-4>>2]=h,l=h+19&-16):l=0,h=!(0|l),c?(h?l=0:o[l>>2]=13064,o[i+28>>2]=l):(h?l=0:o[l>>2]=11736,o[i+28>>2]=l),o[4546]=1+(0|o[4546]),0|(c=0|ye(43))&&(o[(a=c+19&-16)+-4>>2]=c,c+19&-16)?(l=0|o[i+24>>2],d=0|o[i+28>>2],n[a+4|0]=0,o[(c+19&-16)>>2]=16960,o[a+16>>2]=0,o[a+20>>2]=3,o[a+12>>2]=l,o[a+8>>2]=d,a=c+19&-16):a=0,o[i+32>>2]=a,o[4546]=1+(0|o[4546]),0|(a=0|ye(27))&&(o[(a+19&-16)-4>>2]=a,a+19&-16)?(n[4+(a+19&-16)|0]=0,o[(a+19&-16)>>2]=11448,a=a+19&-16):a=0,o[i+36>>2]=a,o[4546]=1+(0|o[4546]),0|(a=0|ye(27))&&(o[(a+19&-16)-4>>2]=a,a+19&-16)?(n[4+(a+19&-16)|0]=0,o[(a+19&-16)>>2]=11344,a=a+19&-16):a=0,o[i+40>>2]=a,o[4546]=1+(0|o[4546]),0|(a=0|ye(27))&&(o[(a+19&-16)-4>>2]=a,a+19&-16)?(n[4+(a+19&-16)|0]=0,o[(a+19&-16)>>2]=11256,a=a+19&-16):a=0,o[i+44>>2]=a,o[4546]=1+(0|o[4546]),0|(a=0|ye(27))&&(o[(a+19&-16)-4>>2]=a,a+19&-16)?(n[4+(a+19&-16)|0]=0,o[(a+19&-16)>>2]=11160,a=a+19&-16):a=0,o[i+48>>2]=a,o[4546]=1+(0|o[4546]),0|(a=0|ye(27))&&(o[(a+19&-16)-4>>2]=a,a+19&-16)?(n[4+(a+19&-16)|0]=0,o[(a+19&-16)>>2]=11064,a=a+19&-16):a=0,o[i+52>>2]=a,o[4546]=1+(0|o[4546]),0|(a=0|ye(27))&&(o[(a+19&-16)-4>>2]=a,a+19&-16)?(n[4+(a+19&-16)|0]=0,o[(a+19&-16)>>2]=10984,a=a+19&-16):a=0,o[i+56>>2]=a,o[4546]=1+(0|o[4546]),0|(a=0|ye(27))&&(o[(a+19&-16)-4>>2]=a,a+19&-16)?(n[4+(a+19&-16)|0]=0,o[(a+19&-16)>>2]=10888,a=a+19&-16):a=0,o[i+60>>2]=a,o[4546]=1+(0|o[4546]),0|(a=0|ye(27))&&(o[(a+19&-16)-4>>2]=a,a+19&-16)?(n[4+(a+19&-16)|0]=0,o[(a+19&-16)>>2]=10792,a=a+19&-16):a=0,o[i+76>>2]=a,o[4546]=1+(0|o[4546]),0|(a=0|ye(27))&&(o[(a+19&-16)-4>>2]=a,a+19&-16)?(n[4+(a+19&-16)|0]=0,o[(a+19&-16)>>2]=10792,a=a+19&-16):a=0,o[i+80>>2]=a,n[a+4|0]=1,o[4546]=1+(0|o[4546]),0|(a=0|ye(27))&&(o[(a+19&-16)-4>>2]=a,a+19&-16)?(n[4+(a+19&-16)|0]=0,o[(a+19&-16)>>2]=10704,a=a+19&-16):a=0,o[i+72>>2]=a,o[4546]=1+(0|o[4546]),0|(a=0|ye(35))&&(o[(f=a+19&-16)+-4>>2]=a,a+19&-16)?(n[f+4|0]=0,o[(a+19&-16)>>2]=10568,o[f+8>>2]=1,o[f+12>>2]=0,f=a+19&-16):f=0,o[i+88>>2]=f,o[4546]=1+(0|o[4546]),0|(f=0|ye(35))&&(o[(r=f+19&-16)+-4>>2]=f,f+19&-16)?(n[r+4|0]=0,o[(f+19&-16)>>2]=10568,o[r+8>>2]=1,o[r+12>>2]=0,r=f+19&-16):r=0,o[i+84>>2]=r,n[r+4|0]=1,r=(0|(r=(0|(r=(0|(r=0|o[t+16>>2]))<36?36:r))>80?r:80))>44?r:44,0|(f=0|o[t>>2]))n[i+12|0]=0,o[i+8>>2]=f;else{n[i+12|0]=1,o[4546]=1+(0|o[4546]),f=0|ye(39);do{if(0|f){if(o[(h=f+19&-16)+-4>>2]=f,!(f+19&-16)){f=0;break}if(a=0|o[t+8>>2],o[(f+19&-16)>>2]=772,o[h+4>>2]=a,o[4546]=1+(0|o[4546]),0|(a=0|ye(16+(772*a|3)|0))?(o[(a+19&-16)-4>>2]=a,c=a+19&-16):c=0,o[h+16>>2]=c,o[h+12>>2]=c,a=0|o[h+4>>2],o[h+8>>2]=a,a+-1|0){d=0|o[(f+19&-16)>>2],l=a+-1|0,h=c;do{v=h,h=h+d|0,o[v>>2]=h,l=l+-1|0}while(0|l);c=c+(0|g(d,a+-1|0))|0}o[c>>2]=0,f=f+19&-16}else f=0}while(0);o[i+8>>2]=f}if(0|(f=0|o[t+4>>2]))return n[i+20|0]=0,o[i+16>>2]=f,void(u=e);n[i+20|0]=1,o[4546]=1+(0|o[4546]),f=0|ye(39);do{if(0|f){if(o[(a=f+19&-16)+-4>>2]=f,!(f+19&-16)){t=0;break}if(t=0|o[t+12>>2],o[(f+19&-16)>>2]=r,o[a+4>>2]=t,t=0|g(t,r),o[4546]=1+(0|o[4546]),0|(t=0|ye(t+19|0))?(o[(t+19&-16)-4>>2]=t,r=t+19&-16):r=0,o[a+16>>2]=r,o[a+12>>2]=r,t=0|o[a+4>>2],o[a+8>>2]=t,t+-1|0){c=0|o[(f+19&-16)>>2],a=t+-1|0,h=r;do{v=h,h=h+c|0,o[v>>2]=h,a=a+-1|0}while(0|a);r=r+(0|g(c,t+-1|0))|0}o[r>>2]=0,t=f+19&-16}else t=0}while(0);o[i+16>>2]=t,u=e}function Ri(i){var t,e=0,r=0;t=u,o[(i|=0)>>2]=10440,0|n[i+20|0]&&(e=0|o[i+16>>2],0|(r=0|o[e+16>>2])&&(o[4548]=1+(0|o[4548]),ke(0|o[r+-4>>2]),e=0|o[i+16>>2]),0|e&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2]))),0|n[i+12|0]&&(e=0|o[i+8>>2],0|(r=0|o[e+16>>2])&&(o[4548]=1+(0|o[4548]),ke(0|o[r+-4>>2]),e=0|o[i+8>>2]),0|e&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2]))),e=0|o[i+32>>2],nn[255&o[o[e>>2]>>2]](e),0|(e=0|o[i+32>>2])&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),e=0|o[i+36>>2],nn[255&o[o[e>>2]>>2]](e),0|(e=0|o[i+36>>2])&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),e=0|o[i+40>>2],nn[255&o[o[e>>2]>>2]](e),0|(e=0|o[i+40>>2])&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),e=0|o[i+44>>2],nn[255&o[o[e>>2]>>2]](e),0|(e=0|o[i+44>>2])&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),e=0|o[i+48>>2],nn[255&o[o[e>>2]>>2]](e),0|(e=0|o[i+48>>2])&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),e=0|o[i+52>>2],nn[255&o[o[e>>2]>>2]](e),0|(e=0|o[i+52>>2])&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),e=0|o[i+56>>2],nn[255&o[o[e>>2]>>2]](e),0|(e=0|o[i+56>>2])&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),e=0|o[i+60>>2],nn[255&o[o[e>>2]>>2]](e),0|(e=0|o[i+60>>2])&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),e=0|o[i+76>>2],nn[255&o[o[e>>2]>>2]](e),0|(e=0|o[i+76>>2])&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),e=0|o[i+80>>2],nn[255&o[o[e>>2]>>2]](e),0|(e=0|o[i+80>>2])&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),e=0|o[i+72>>2],nn[255&o[o[e>>2]>>2]](e),0|(e=0|o[i+72>>2])&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),e=0|o[i+88>>2],nn[255&o[o[e>>2]>>2]](e),0|(e=0|o[i+88>>2])&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),e=0|o[i+84>>2],nn[255&o[o[e>>2]>>2]](e),0|(e=0|o[i+84>>2])&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),0|(e=0|o[i+24>>2])&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),r=0|o[i+28>>2],nn[255&o[o[r>>2]>>2]](r),0|(i=0|o[i+28>>2])?(o[4548]=1+(0|o[4548]),ke(0|o[i+-4>>2]),u=t):u=t}function Pi(i,t,e,r,f,a){t|=0,e|=0,r|=0,f|=0,a|=0;var c,h,l,d,v=0,b=0,_=0,w=0,p=0,m=0,y=0,k=0;if(c=u,u=u+288|0,y=0|o[(i|=0)+4>>2],n[y+312|0]=0,o[y>>2]=0,n[y+356|0]=1,s[y+292>>2]=0xde0b6b000000000,s[y+296>>2]=0xde0b6b000000000,s[y+300>>2]=0xde0b6b000000000,s[y+304>>2]=0,o[y+336>>2]=0,o[y+340>>2]=0,o[y+344>>2]=0,o[y+348>>2]=0,n[y+352|0]=0,n[y+332|0]=-16&n[y+332|0],d=+s[e+48>>2]-+s[t+48>>2]-(+s[f+48>>2]-+s[r+48>>2]),l=+s[e+52>>2]-+s[t+52>>2]-(+s[f+52>>2]-+s[r+52>>2]),h=+s[e+56>>2]-+s[t+56>>2]-(+s[f+56>>2]-+s[r+56>>2]),o[c+216>>2]=9368,s[c+252>>2]=0xde0b6b000000000,n[c+256|0]=0,y=0|o[i+8>>2],m=0|o[i+12>>2],i=0|o[i+4>>2],o[c+136>>2]=11880,s[c+140>>2]=0,s[c+144>>2]=1,s[c+148>>2]=0,s[c+152>>2]=0,o[c+156>>2]=0,o[c+160>>2]=i,o[c+164>>2]=y,o[c+168>>2]=m,o[c+172>>2]=o[y+4>>2],o[c+176>>2]=o[m+4>>2],s[c+180>>2]=+mn[15&o[48+(0|o[y>>2])>>2]](y),s[c+184>>2]=+mn[15&o[48+(0|o[m>>2])>>2]](m),n[c+188|0]=0,o[c+196>>2]=-1,o[c+208>>2]=1,o[c+212>>2]=1,s[c+128>>2]=0xde0b6b000000000,o[c+0>>2]=o[t+0>>2],o[c+4>>2]=o[t+4>>2],o[c+8>>2]=o[t+8>>2],o[c+12>>2]=o[t+12>>2],o[c+16>>2]=o[t+16>>2],o[c+20>>2]=o[t+20>>2],o[c+24>>2]=o[t+24>>2],o[c+28>>2]=o[t+28>>2],o[c+32>>2]=o[t+32>>2],o[c+36>>2]=o[t+36>>2],o[c+40>>2]=o[t+40>>2],o[c+44>>2]=o[t+44>>2],o[c+48>>2]=o[t+48>>2],o[c+52>>2]=o[t+52>>2],o[c+56>>2]=o[t+56>>2],o[c+60>>2]=o[t+60>>2],o[c+64>>2]=o[r+0>>2],o[c+68>>2]=o[r+4>>2],o[c+72>>2]=o[r+8>>2],o[c+76>>2]=o[r+12>>2],o[c+80>>2]=o[r+16>>2],o[c+84>>2]=o[r+20>>2],o[c+88>>2]=o[r+24>>2],o[c+92>>2]=o[r+28>>2],o[c+96>>2]=o[r+32>>2],o[c+100>>2]=o[r+36>>2],o[c+104>>2]=o[r+40>>2],o[c+108>>2]=o[r+44>>2],o[c+112>>2]=o[r+48>>2],o[c+116>>2]=o[r+52>>2],o[c+120>>2]=o[r+56>>2],o[c+124>>2]=o[r+60>>2],Ni(c+136|0,c,c+216|0,0,0),m=!(0|n[c+256|0]),i=c+236|0,o[c+264>>2]=o[i+0>>2],o[c+268>>2]=o[i+4>>2],o[c+272>>2]=o[i+8>>2],o[c+276>>2]=o[i+12>>2],m)return u=c,0|(y=0);_=+s[c+252>>2],v=+s[c+220>>2],b=+s[c+224>>2],w=+s[c+228>>2],p=+s[c+232>>2];do{if(_>.0010000000474974513){for(p=_,_=0,m=1;;){if((0|m)>32){a=0,e=13;break}if(k=_,!(!((_-=p/(h*w+(l*b+d*v)))<0)&!(_>1)&!(_<=k))){a=0,e=13;break}if(en[31&o[o[a>>2]>>2]](a,_),k=1-_,s[c+48>>2]=k*+s[t+48>>2]+_*+s[e+48>>2],s[c+52>>2]=k*+s[t+52>>2]+_*+s[e+52>>2],s[c+56>>2]=k*+s[t+56>>2]+_*+s[e+56>>2],s[c+112>>2]=k*+s[r+48>>2]+_*+s[f+48>>2],s[c+116>>2]=k*+s[r+52>>2]+_*+s[f+52>>2],s[c+120>>2]=k*+s[r+56>>2]+_*+s[f+56>>2],Ni(c+136|0,c,c+216|0,0,0),!(0|n[c+256|0])){a=0,e=13;break}if((p=+s[c+252>>2])<0){e=8;break}if(o[c+264>>2]=o[i+0>>2],o[c+268>>2]=o[i+4>>2],o[c+272>>2]=o[i+8>>2],o[c+276>>2]=o[i+12>>2],v=+s[c+220>>2],b=+s[c+224>>2],w=+s[c+228>>2],!(p>.0010000000474974513)){e=10;break}m=m+1|0}if(8==(0|e))return s[a+164>>2]=_,w=+s[c+224>>2],p=+s[c+228>>2],k=+s[c+232>>2],s[a+132>>2]=+s[c+220>>2],s[a+136>>2]=w,s[a+140>>2]=p,s[a+144>>2]=k,o[a+148>>2]=o[i+0>>2],o[a+152>>2]=o[i+4>>2],o[a+156>>2]=o[i+8>>2],o[a+160>>2]=o[i+12>>2],u=c,0|(y=1);if(10==(0|e)){p=+s[c+232>>2];break}if(13==(0|e))return u=c,0|a}else _=0}while(0);return h*w+(l*b+d*v)>=-+s[a+172>>2]?(u=c,0|(y=0)):(s[a+164>>2]=_,s[a+132>>2]=v,s[a+136>>2]=b,s[a+140>>2]=w,s[a+144>>2]=p,o[a+148>>2]=o[c+264>>2],o[a+152>>2]=o[c+268>>2],o[a+156>>2]=o[c+272>>2],o[a+160>>2]=o[c+276>>2],u=c,0|(y=1))}function Ni(i,t,e,r,f){t|=0,e|=0,r|=0,f|=0;var a,c,h,l,d,v,b,w,p=0,m=0,y=0,k=0,g=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0,L=0,I=0,A=0,D=0,O=0,R=0,P=0,N=0,B=0,F=0,V=0,U=0;f=u,u=u+288|0,s[(i|=0)+56>>2]=0,h=f+276|0,l=f+280|0,o[f+272>>2]=0,o[f+276>>2]=0,o[f+280>>2]=0,o[f+284>>2]=0,o[f+208>>2]=o[t+0>>2],o[f+212>>2]=o[t+4>>2],o[f+216>>2]=o[t+8>>2],o[f+220>>2]=o[t+12>>2],o[f+224>>2]=o[t+16>>2],o[f+228>>2]=o[t+20>>2],o[f+232>>2]=o[t+24>>2],o[f+236>>2]=o[t+28>>2],o[f+240>>2]=o[t+32>>2],o[f+244>>2]=o[t+36>>2],o[f+248>>2]=o[t+40>>2],o[f+252>>2]=o[t+44>>2],o[(V=f+256|0)+0>>2]=o[t+48>>2],o[V+4>>2]=o[t+52>>2],o[V+8>>2]=o[t+56>>2],o[V+12>>2]=o[t+60>>2],o[f+144>>2]=o[t+64>>2],o[f+148>>2]=o[t+68>>2],o[f+152>>2]=o[t+72>>2],o[f+156>>2]=o[t+76>>2],o[f+160>>2]=o[t+80>>2],o[f+164>>2]=o[t+84>>2],o[f+168>>2]=o[t+88>>2],o[f+172>>2]=o[t+92>>2],o[f+176>>2]=o[t+96>>2],o[f+180>>2]=o[t+100>>2],o[f+184>>2]=o[t+104>>2],o[f+188>>2]=o[t+108>>2],o[(U=f+192|0)+0>>2]=o[t+112>>2],o[U+4>>2]=o[t+116>>2],o[U+8>>2]=o[t+120>>2],o[U+12>>2]=o[t+124>>2],d=+s[V>>2],v=+s[U>>2],b=+s[f+260>>2],w=+s[f+196>>2],a=+s[f+264>>2],c=+s[f+200>>2],s[V>>2]=d-.5*(d+v),s[f+260>>2]=b-.5*(b+w),s[f+264>>2]=a-.5*(a+c),s[U>>2]=v-.5*(d+v),s[f+196>>2]=w-.5*(b+w),s[f+200>>2]=c-.5*(a+c),S=((0|o[4+(0|o[i+28>>2])>>2])-17|0)>>>0<2?((0|o[4+(0|o[i+32>>2])>>2])-17|0)>>>0<2:0,C=+s[i+44>>2],g=+s[i+48>>2],o[2966]=1+(0|o[2966]),g=(U=!(0|n[i+52|0]))?g:0,o[i+64>>2]=0,s[i+4>>2]=0,s[i+8>>2]=1,s[i+12>>2]=0,s[i+16>>2]=0,o[i+68>>2]=0,o[i+60>>2]=-1,C=(U?C:0)+g,U=0|o[i+24>>2],n[U+312|0]=0,o[U>>2]=0,n[U+356|0]=1,s[U+292>>2]=0xde0b6b000000000,s[U+296>>2]=0xde0b6b000000000,s[U+300>>2]=0xde0b6b000000000,s[U+304>>2]=0,o[U+336>>2]=0,o[U+340>>2]=0,o[U+344>>2]=0,o[U+348>>2]=0,n[U+352|0]=0,n[U+332|0]=-16&n[U+332|0],M=+s[i+4>>2],E=+s[i+8>>2],I=+s[i+12>>2];i:do{if(S)for(x=0xde0b6b000000000;;){if(N=-M,B=-E,T=-I,A=+s[t+4>>2]*N+ +s[t+20>>2]*B+ +s[t+36>>2]*T,F=+s[t+8>>2]*N+ +s[t+24>>2]*B+ +s[t+40>>2]*T,s[f+128>>2]=+s[t>>2]*N+ +s[t+16>>2]*B+ +s[t+32>>2]*T,s[f+132>>2]=A,s[f+136>>2]=F,s[f+140>>2]=0,F=M*+s[t+68>>2]+E*+s[t+84>>2]+I*+s[t+100>>2],A=M*+s[t+72>>2]+E*+s[t+88>>2]+I*+s[t+104>>2],s[f+112>>2]=+s[t+64>>2]*M+ +s[t+80>>2]*E+ +s[t+96>>2]*I,s[f+116>>2]=F,s[f+120>>2]=A,s[f+124>>2]=0,Ci(f+96|0,0|o[i+28>>2],f+128|0),Ci(f+80|0,0|o[i+32>>2],f+112|0),A=+s[f+96>>2],F=+s[f+100>>2],E=+s[f+104>>2],I=A*+s[f+208>>2]+F*+s[f+212>>2]+E*+s[f+216>>2]+ +s[f+256>>2],E=A*+s[f+224>>2]+F*+s[f+228>>2]+E*+s[f+232>>2]+ +s[f+260>>2],F=+s[f+80>>2],A=+s[f+84>>2],T=+s[f+88>>2],M=F*+s[f+144>>2]+A*+s[f+148>>2]+T*+s[f+152>>2]+ +s[f+192>>2],T=F*+s[f+160>>2]+A*+s[f+164>>2]+T*+s[f+168>>2]+ +s[f+196>>2],(A=+s[i+4>>2]*(I-M)+ +s[i+8>>2]*(E-T)+0*+s[i+12>>2])>0&&A*A>x*+s[t+128>>2]){p=22;break i}if(S=0|o[i+24>>2],(0|(L=0|o[S>>2]))>0){D=+s[S+308>>2],U=0,V=0;do{U|=(N=I-M-+s[S+(V<<4)+4>>2])*N+(B=E-T-+s[S+(V<<4)+8>>2])*B+(F=0-+s[S+(V<<4)+12>>2])*F<=D,V=V+1|0}while((0|V)!=(0|L))}else U=0;if((V=0==+s[S+304>>2]&&0==+s[S+300>>2]&&E-T==+s[S+296>>2]?I-M==+s[S+292>>2]:0)|U){p=31;break i}if((O=x-A)<=9.999999974752427e-7*x){p=33;break i}if(s[S+292>>2]=I-M,s[S+296>>2]=E-T,s[S+300>>2]=0,s[S+304>>2]=0,n[S+356|0]=1,s[S+(L<<4)+4>>2]=I-M,s[S+(L<<4)+8>>2]=E-T,s[S+(L<<4)+12>>2]=0,s[S+(L<<4)+16>>2]=0,V=0|o[S>>2],s[S+(V<<4)+84>>2]=I,s[S+(V<<4)+88>>2]=E,s[S+(V<<4)+92>>2]=0,s[S+(V<<4)+96>>2]=0,V=0|o[S>>2],s[S+(V<<4)+164>>2]=M,s[S+(V<<4)+168>>2]=T,s[S+(V<<4)+172>>2]=0,s[S+(V<<4)+176>>2]=0,o[S>>2]=1+(0|o[S>>2]),U=0|ai(V=0|o[i+24>>2]),M=+s[V+276>>2],E=+s[V+280>>2],I=+s[V+284>>2],A=+s[V+288>>2],!U){p=35;break i}if(T=x,(x=M*M+E*E+I*I)<9.999999974752427e-7){x=T,p=37;break i}if(T-x<=1.1920928955078125e-7*T){p=39;break i}if(s[i+4>>2]=M,s[i+8>>2]=E,s[i+12>>2]=I,s[i+16>>2]=A,U=0|o[i+64>>2],o[i+64>>2]=U+1,(0|U)>1e3){x=0,S=0,M=0,E=0,T=0;break i}if(4==(0|o[o[i+24>>2]>>2])){p=42;break}}else for(x=0xde0b6b000000000;;){if(D=-M,T=-E,A=-I,O=+s[t+4>>2]*D+ +s[t+20>>2]*T+ +s[t+36>>2]*A,F=+s[t+8>>2]*D+ +s[t+24>>2]*T+ +s[t+40>>2]*A,s[f+128>>2]=+s[t>>2]*D+ +s[t+16>>2]*T+ +s[t+32>>2]*A,s[f+132>>2]=O,s[f+136>>2]=F,s[f+140>>2]=0,F=M*+s[t+68>>2]+E*+s[t+84>>2]+I*+s[t+100>>2],O=M*+s[t+72>>2]+E*+s[t+88>>2]+I*+s[t+104>>2],s[f+112>>2]=+s[t+64>>2]*M+ +s[t+80>>2]*E+ +s[t+96>>2]*I,s[f+116>>2]=F,s[f+120>>2]=O,s[f+124>>2]=0,Ci(f+96|0,0|o[i+28>>2],f+128|0),Ci(f+80|0,0|o[i+32>>2],f+112|0),O=+s[f+96>>2],F=+s[f+100>>2],A=+s[f+104>>2],E=O*+s[f+208>>2]+F*+s[f+212>>2]+A*+s[f+216>>2]+ +s[f+256>>2],T=O*+s[f+224>>2]+F*+s[f+228>>2]+A*+s[f+232>>2]+ +s[f+260>>2],A=O*+s[f+240>>2]+F*+s[f+244>>2]+A*+s[f+248>>2]+ +s[f+264>>2],F=+s[f+80>>2],O=+s[f+84>>2],I=+s[f+88>>2],M=F*+s[f+144>>2]+O*+s[f+148>>2]+I*+s[f+152>>2]+ +s[f+192>>2],D=F*+s[f+160>>2]+O*+s[f+164>>2]+I*+s[f+168>>2]+ +s[f+196>>2],I=F*+s[f+176>>2]+O*+s[f+180>>2]+I*+s[f+184>>2]+ +s[f+200>>2],(O=+s[i+4>>2]*(E-M)+ +s[i+8>>2]*(T-D)+ +s[i+12>>2]*(A-I))>0&&O*O>x*+s[t+128>>2]){p=22;break i}if(L=0|o[i+24>>2],(0|(S=0|o[L>>2]))>0){R=+s[L+308>>2],U=0,V=0;do{U|=(N=E-M-+s[L+(V<<4)+4>>2])*N+(B=T-D-+s[L+(V<<4)+8>>2])*B+(F=A-I-+s[L+(V<<4)+12>>2])*F<=R,V=V+1|0}while((0|V)!=(0|S))}else U=0;if((V=0==+s[L+304>>2]&&A-I==+s[L+300>>2]&&T-D==+s[L+296>>2]?E-M==+s[L+292>>2]:0)|U){p=31;break i}if((O=x-O)<=9.999999974752427e-7*x){p=33;break i}if(s[L+292>>2]=E-M,s[L+296>>2]=T-D,s[L+300>>2]=A-I,s[L+304>>2]=0,n[L+356|0]=1,s[L+(S<<4)+4>>2]=E-M,s[L+(S<<4)+8>>2]=T-D,s[L+(S<<4)+12>>2]=A-I,s[L+(S<<4)+16>>2]=0,V=0|o[L>>2],s[L+(V<<4)+84>>2]=E,s[L+(V<<4)+88>>2]=T,s[L+(V<<4)+92>>2]=A,s[L+(V<<4)+96>>2]=0,V=0|o[L>>2],s[L+(V<<4)+164>>2]=M,s[L+(V<<4)+168>>2]=D,s[L+(V<<4)+172>>2]=I,s[L+(V<<4)+176>>2]=0,o[L>>2]=1+(0|o[L>>2]),U=0|ai(V=0|o[i+24>>2]),M=+s[V+276>>2],E=+s[V+280>>2],I=+s[V+284>>2],A=+s[V+288>>2],!U){p=35;break i}if(T=x,(x=M*M+E*E+I*I)<9.999999974752427e-7){x=T,p=37;break i}if(T-x<=1.1920928955078125e-7*T){p=39;break i}if(s[i+4>>2]=M,s[i+8>>2]=E,s[i+12>>2]=I,s[i+16>>2]=A,U=0|o[i+64>>2],o[i+64>>2]=U+1,(0|U)>1e3){x=0,S=0,M=0,E=0,T=0;break i}if(4==(0|o[o[i+24>>2]>>2])){p=42;break}}}while(0);22==(0|p)?(o[i+68>>2]=10,p=43):31==(0|p)?(o[i+68>>2]=1,p=43):33==(0|p)?(o[i+68>>2]=O<=0?2:11,p=43):35==(0|p)?(o[i+68>>2]=3,p=43):37==(0|p)?(s[i+4>>2]=M,s[i+8>>2]=E,s[i+12>>2]=I,s[i+16>>2]=A,o[i+68>>2]=6,p=43):39==(0|p)?(o[i+68>>2]=12,p=43):42==(0|p)&&(o[i+68>>2]=13,x=0,S=0,M=0,E=0,T=0);do{if(43==(0|p)){if(ai(U=0|o[i+24>>2]),M=+s[U+260>>2],E=+s[U+264>>2],T=+s[U+268>>2],o[f+272>>2]=o[i+4>>2],o[f+276>>2]=o[i+8>>2],o[f+280>>2]=o[i+12>>2],o[f+284>>2]=o[i+16>>2],(D=+s[i+4>>2])*D+(A=+s[i+8>>2])*A+(I=+s[i+12>>2])*I<1e-4&&(o[i+68>>2]=5),D*D+A*A+I*I>14210854715202004e-30){B=1/+_(+(D*D+A*A+I*I)),s[f+272>>2]=B*+s[f+272>>2],s[h>>2]=B*+s[h>>2],s[l>>2]=B*+s[l>>2],F=g/+_(+x),o[i+60>>2]=1,x=1/B-C,S=1,M=F*D+M,E=F*A+E,T=F*I+T;break}o[i+60>>2]=2,x=0,S=0;break}}while(0);V=0|o[i+72>>2]&&0|o[i+20>>2]&&0|o[i+68>>2]?C+x<.01:0,L=1^S;do{if(V|L&&0|(j=0|o[i+20>>2])){if(o[2964]=1+(0|o[2964]),o[i+4>>2]=0,o[i+8>>2]=0,o[i+12>>2]=0,o[i+16>>2]=0,!(0|fn[3&o[8+(0|o[j>>2])>>2]](j,0|o[i+24>>2],0|o[i+28>>2],0|o[i+32>>2],f+208|0,f+144|0,i+4|0,f+64|0,f+48|0,r))){if(!((P=+s[i+4>>2])*P+(D=+s[i+8>>2])*D+(I=+s[i+12>>2])*I>0)){p=66;break}if(R=+s[f+48>>2],N=+s[f+64>>2]-R,O=+s[f+52>>2],B=+s[f+68>>2]-O,A=+s[f+56>>2],F=+s[f+72>>2]-A,(C=+_(+(N*N+B*B+F*F))-C)<x|L){o[f+272>>2]=o[i+4>>2],o[f+276>>2]=o[i+8>>2],o[f+280>>2]=o[i+12>>2],o[f+284>>2]=o[i+16>>2],T=+s[f+272>>2],E=+s[h>>2],M=+s[l>>2],x=1/+_(+(T*T+E*E+M*M)),s[f+272>>2]=T*x,s[h>>2]=E*x,s[l>>2]=M*x,o[i+60>>2]=6,x=C,M=g*P+R,E=g*D+O,T=g*I+A;break}if(o[i+60>>2]=5,S)break;return void(u=f)}if(((I=+s[f+48>>2])-(B=+s[f+64>>2]))*(I-B)+((C=+s[f+52>>2])-(N=+s[f+68>>2]))*(C-N)+((g=+s[f+56>>2])-(P=+s[f+72>>2]))*(g-P)<=14210854715202004e-30?(R=+s[i+4>>2],D=+s[i+8>>2],O=+s[i+12>>2],A=+s[i+16>>2],F=R*R+D*D+O*O):(A=0,F=(I-B)*(I-B)+(C-N)*(C-N)+(g-P)*(g-P),R=I-B,O=g-P,D=C-N),!(F>14210854715202004e-30)){if(o[i+60>>2]=9,S)break;return void(u=f)}if(F=1/+_(+F),x>(P=-+_(+((B-I)*(B-I)+(N-C)*(N-C)+(P-g)*(P-g))))|L){s[f+272>>2]=R*F,s[h>>2]=D*F,s[l>>2]=O*F,s[f+284>>2]=A,o[i+60>>2]=3,x=P,M=I,E=C,T=g;break}if(o[i+60>>2]=8,!S)return void(u=f)}else p=66}while(0);(66!=(0|p)||S)&&(x<0||x*x<+s[t+128>>2])?(0|o[i+76>>2]&&(U=0|o[i+28>>2],Vn[63&o[8+(0|o[U>>2])>>2]](U,f+208|0,f+32|0,f+16|0),N=.5*(+s[f+16>>2]+ +s[f+32>>2]),B=.5*(+s[f+20>>2]+ +s[f+36>>2]),F=.5*(+s[f+24>>2]+ +s[f+40>>2]),U=0|o[i+32>>2],Vn[63&o[8+(0|o[U>>2])>>2]](U,f+144|0,f+32|0,f+16|0),m=+s[f+272>>2],y=+s[h>>2],k=+s[l>>2],(N-.5*(+s[f+32>>2]+ +s[f+16>>2]))*m+(B-.5*(+s[f+36>>2]+ +s[f+20>>2]))*y+(F-.5*(+s[f+40>>2]+ +s[f+24>>2]))*k<0)&&(s[f+272>>2]=-1*m,s[h>>2]=-1*y,s[l>>2]=-1*k),o[i+4>>2]=o[f+272>>2],o[i+8>>2]=o[f+276>>2],o[i+12>>2]=o[f+280>>2],o[i+16>>2]=o[f+284>>2],s[i+56>>2]=x,U=0|o[16+(0|o[e>>2])>>2],s[f>>2]=.5*(d+v)+M,s[f+4>>2]=.5*(b+w)+E,s[f+8>>2]=.5*(a+c)+T,s[f+12>>2]=0,Rn[15&U](e,f+272|0,f,x),u=f):u=f}function Bi(i){var t,e=0,r=0,f=0,a=0,s=0;if(t=u,o[(i|=0)>>2]=6368,e=0|o[i+8>>2],f=0|o[i+16>>2],(0|e)>0){r=0;do{a=188+(0|o[f+(r<<2)>>2])|0,0|(s=0|o[a>>2])&&(e=0|o[i+68>>2],e=0|an[127&o[36+(0|o[e>>2])>>2]](e),Pn[63&o[40+(0|o[e>>2])>>2]](e,s,0|o[i+24>>2]),e=0|o[i+68>>2],Pn[63&o[12+(0|o[e>>2])>>2]](e,s,0|o[i+24>>2]),o[a>>2]=0,e=0|o[i+8>>2],f=0|o[i+16>>2]),r=r+1|0}while((0|r)<(0|e))}if(!(0|f))return n[i+20|0]=1,o[i+16>>2]=0,o[i+8>>2]=0,o[(s=i+12|0)>>2]=0,void(u=t);0|n[i+20|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[f+-4>>2])),o[i+16>>2]=0,n[i+20|0]=1,o[i+16>>2]=0,o[i+8>>2]=0,o[(s=i+12|0)>>2]=0,u=t}function Fi(i,t,e,r){t|=0,e|=0,r|=0;var f,a=0,s=0,c=0,h=0,l=0;if(f=u,u=u+96|0,(0|(c=0|o[(i|=0)+8>>2]))==(0|o[i+12>>2])&&(0|c)<(0|(a=0|c?c<<1:1))){if(0|a?(o[4546]=1+(0|o[4546]),0|(s=0|ye(16+(a<<2|3)|0))?(o[(s+19&-16)-4>>2]=s,s=s+19&-16):s=0,c=0|o[i+8>>2]):s=0,(0|c)>0){l=0;do{0|(h=s+(l<<2)|0)&&(o[h>>2]=o[(0|o[i+16>>2])+(l<<2)>>2]),l=l+1|0}while((0|l)!=(0|c))}0|(h=0|o[i+16>>2])&&(0|n[i+20|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[h+-4>>2]),c=0|o[i+8>>2]),o[i+16>>2]=0),n[i+20|0]=1,o[i+16>>2]=s,o[i+12>>2]=a}0|(a=(0|o[i+16>>2])+(c<<2)|0)&&(o[a>>2]=t),o[i+8>>2]=c+1,o[f+32>>2]=o[t+4>>2],o[f+36>>2]=o[t+8>>2],o[f+40>>2]=o[t+12>>2],o[f+44>>2]=o[t+16>>2],o[f+48>>2]=o[t+20>>2],o[f+52>>2]=o[t+24>>2],o[f+56>>2]=o[t+28>>2],o[f+60>>2]=o[t+32>>2],o[f+64>>2]=o[t+36>>2],o[f+68>>2]=o[t+40>>2],o[f+72>>2]=o[t+44>>2],o[f+76>>2]=o[t+48>>2],o[f+80>>2]=o[t+52>>2],o[f+84>>2]=o[t+56>>2],o[f+88>>2]=o[t+60>>2],o[f+92>>2]=o[t+64>>2],l=0|o[t+192>>2],Vn[63&o[8+(0|o[l>>2])>>2]](l,f+32|0,f+16|0,f),l=0|o[i+68>>2],o[t+188>>2]=0|On[3&o[8+(0|o[l>>2])>>2]](l,f+16|0,f,0|o[4+(0|o[t+192>>2])>>2],t,e,r,0|o[i+24>>2],0),u=f}function Vi(i,t){i|=0;var e,n,r=0,f=0,a=0,s=0,c=0;if(e=u,0|(f=0|o[(t|=0)+188>>2])&&(c=0|o[i+68>>2],c=0|an[127&o[36+(0|o[c>>2])>>2]](c),Pn[63&o[40+(0|o[c>>2])>>2]](c,f,0|o[i+24>>2]),c=0|o[i+68>>2],Pn[63&o[12+(0|o[c>>2])>>2]](c,f,0|o[i+24>>2]),o[t+188>>2]=0),(0|(f=0|o[i+8>>2]))<=0)u=e;else{for(n=0|o[i+16>>2],a=0;c=a+1|0,(0|o[(s=n+(a<<2)|0)>>2])!=(0|t);){if(!((0|c)<(0|f))){r=9;break}a=c}9!=(0|r)?((0|a)>=(0|f)||(o[s>>2]=o[n+(f+-1<<2)>>2],o[(0|o[i+16>>2])+(f+-1<<2)>>2]=t,o[i+8>>2]=f+-1),u=e):u=e}}function Ui(i,t,e,f){i|=0,t|=0,e|=0,f|=0;var a,c=0,h=0,l=0,d=0,v=0,b=0,w=0,p=0,m=0,y=0,k=0,g=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0,L=0,I=0,A=0,D=0,O=0,R=0,P=0,N=0,B=0;if(a=u,u=u+1392|0,o[a+1192>>2]=0,s[a+1196>>2]=1,s[a+1200>>2]=1,s[a+1204>>2]=1,s[a+1208>>2]=0,o[a+1184>>2]=15008,o[a+1188>>2]=8,s[a+1212>>2]=0,s[a+1228>>2]=0,x=0|o[e+4>>2],j=0|o[e+12>>2],(0|(M=0|o[x+4>>2]))<20)return o[a+1008>>2]=8584,o[a+1176>>2]=0,s[a+1180>>2]=0,s[a+1172>>2]=+s[f+4>>2],s[a+956>>2]=9999999747378752e-20,n[a+980|0]=0,o[a+632>>2]=15320,o[a+636>>2]=a+648,o[a+640>>2]=a+1184,o[a+644>>2]=x,o[a+616>>2]=11672,o[a+620>>2]=a+648,o[a+624>>2]=a+1184,o[a+628>>2]=x,P=4&o[f+16>>2]?a+632|0:a+616|0,0|yn[3&o[8+(0|o[P>>2])>>2]](P,i,t,j,j,a+1008|0)&&(l=+s[(j=a+1140|0)>>2])*l+(c=+s[a+1144>>2])*c+(d=+s[a+1148>>2])*d>9999999747378752e-20&&(h=+s[a+1172>>2])<+s[f+4>>2]?(O=1/+_(+(l*l+c*c+d*d)),s[j>>2]=l*O,s[a+1144>>2]=c*O,s[a+1148>>2]=d*O,o[a+584>>2]=o[e+8>>2],o[a+588>>2]=0,o[a+592>>2]=o[j+0>>2],o[a+596>>2]=o[j+4>>2],o[a+600>>2]=o[j+8>>2],o[a+604>>2]=o[j+12>>2],s[a+608>>2]=h,xn[7&o[12+(0|o[f>>2])>>2]](f,a+584|0,1),void(u=a)):void(u=a);if((M+-21|0)>>>0<9)return y=+s[j>>2],k=+s[j+16>>2],w=+s[j+32>>2],g=+s[j+4>>2],C=+s[j+20>>2],p=+s[j+36>>2],D=+s[j+8>>2],O=+s[j+24>>2],m=+s[j+40>>2],S=-+s[j+48>>2],I=-+s[j+52>>2],A=-+s[j+56>>2],d=+s[i+48>>2],v=+s[i+52>>2],b=+s[i+56>>2],s[a+568>>2]=y*S+k*I+w*A+(y*d+k*v+w*b),s[a+572>>2]=g*S+C*I+p*A+(g*d+C*v+p*b),s[a+576>>2]=D*S+O*I+m*A+(D*d+O*v+m*b),s[a+580>>2]=0,w=y*S+k*I+w*A+(y*(h=+s[t+48>>2])+k*(c=+s[t+52>>2])+w*(l=+s[t+56>>2])),p=g*S+C*I+p*A+(g*h+C*c+p*l),m=D*S+O*I+m*A+(D*h+O*c+m*l),s[a+552>>2]=w,s[a+556>>2]=p,s[a+560>>2]=m,s[a+564>>2]=0,21==(0|(t=0|o[x+4>>2]))?(P=0|o[e+8>>2],R=0|o[f+16>>2],o[a+436>>2]=o[a+568>>2],o[a+440>>2]=o[a+572>>2],o[a+444>>2]=o[a+576>>2],o[a+448>>2]=o[a+580>>2],o[a+452>>2]=o[a+552>>2],o[a+456>>2]=o[a+556>>2],o[a+460>>2]=o[a+560>>2],o[a+464>>2]=o[a+564>>2],o[a+468>>2]=R,s[a+472>>2]=1,o[a+432>>2]=8392,o[a+476>>2]=f,o[a+480>>2]=P,o[a+484>>2]=x,o[a+488>>2]=o[j+0>>2],o[a+492>>2]=o[j+4>>2],o[a+496>>2]=o[j+8>>2],o[a+500>>2]=o[j+12>>2],o[a+504>>2]=o[j+16>>2],o[a+508>>2]=o[j+20>>2],o[a+512>>2]=o[j+24>>2],o[a+516>>2]=o[j+28>>2],o[a+520>>2]=o[j+32>>2],o[a+524>>2]=o[j+36>>2],o[a+528>>2]=o[j+40>>2],o[a+532>>2]=o[j+44>>2],o[a+536>>2]=o[j+48>>2],o[a+540>>2]=o[j+52>>2],o[a+544>>2]=o[j+56>>2],o[a+548>>2]=o[j+60>>2],s[a+472>>2]=+s[f+4>>2],j=0|o[x+48>>2],o[a+1272>>2]=5376,o[a+1276>>2]=j,o[a+1280>>2]=a+432,j=0|o[x+52>>2],o[a+1328>>2]=0,o[a+1332>>2]=0,o[a+1336>>2]=0,o[a+1340>>2]=0,o[a+1304>>2]=0,o[a+1308>>2]=0,o[a+1312>>2]=0,o[a+1316>>2]=0,0|n[j+60|0]?(K(j,a+1272|0,a+568|0,w,p,m,a+1328|0,a+1304|0,0|o[j+56>>2]),void(u=a)):(q(j,a+1272|0,a+568|0,w,p,m,a+1328|0,a+1304|0),void(u=a))):25==(0|t)?(P=0|o[e+8>>2],R=0|o[f+16>>2],o[a+316>>2]=o[a+568>>2],o[a+320>>2]=o[a+572>>2],o[a+324>>2]=o[a+576>>2],o[a+328>>2]=o[a+580>>2],o[a+332>>2]=o[a+552>>2],o[a+336>>2]=o[a+556>>2],o[a+340>>2]=o[a+560>>2],o[a+344>>2]=o[a+564>>2],o[a+348>>2]=R,s[a+352>>2]=1,o[a+312>>2]=8392,o[a+356>>2]=f,o[a+360>>2]=P,o[a+364>>2]=x,o[a+368>>2]=o[j+0>>2],o[a+372>>2]=o[j+4>>2],o[a+376>>2]=o[j+8>>2],o[a+380>>2]=o[j+12>>2],o[a+384>>2]=o[j+16>>2],o[a+388>>2]=o[j+20>>2],o[a+392>>2]=o[j+24>>2],o[a+396>>2]=o[j+28>>2],o[a+400>>2]=o[j+32>>2],o[a+404>>2]=o[j+36>>2],o[a+408>>2]=o[j+40>>2],o[a+412>>2]=o[j+44>>2],o[a+416>>2]=o[j+48>>2],o[a+420>>2]=o[j+52>>2],o[a+424>>2]=o[j+56>>2],o[a+428>>2]=o[j+60>>2],s[a+352>>2]=+s[f+4>>2],Vn[63&o[144+(0|o[x>>2])>>2]](x,a+312|0,a+568|0,a+552|0),void(u=a)):(B=+s[j>>2],N=+s[j+16>>2],m=+s[j+32>>2],y=+s[j+4>>2],k=+s[j+20>>2],g=+s[j+36>>2],A=+s[j+8>>2],D=+s[j+24>>2],O=+s[j+40>>2],p=B*(C=-+s[j+48>>2])+N*(S=-+s[j+52>>2])+m*(I=-+s[j+56>>2])+(B*d+N*v+m*b),w=y*C+k*S+g*I+(y*d+k*v+g*b),v=A*C+D*S+O*I+(A*d+D*v+O*b),b=B*C+N*S+m*I+(B*h+N*c+m*l),d=y*C+k*S+g*I+(y*h+k*c+g*l),c=A*C+D*S+O*I+(A*h+D*c+O*l),P=0|o[e+8>>2],R=0|o[f+16>>2],s[a+196>>2]=p,s[a+200>>2]=w,s[a+204>>2]=v,s[a+208>>2]=0,s[a+212>>2]=b,s[a+216>>2]=d,s[a+220>>2]=c,s[a+224>>2]=0,o[a+228>>2]=R,s[a+232>>2]=1,o[a+192>>2]=8200,o[a+236>>2]=f,o[a+240>>2]=P,o[a+244>>2]=x,o[a+248>>2]=o[j+0>>2],o[a+252>>2]=o[j+4>>2],o[a+256>>2]=o[j+8>>2],o[a+260>>2]=o[j+12>>2],o[a+264>>2]=o[j+16>>2],o[a+268>>2]=o[j+20>>2],o[a+272>>2]=o[j+24>>2],o[a+276>>2]=o[j+28>>2],o[a+280>>2]=o[j+32>>2],o[a+284>>2]=o[j+36>>2],o[a+288>>2]=o[j+40>>2],o[a+292>>2]=o[j+44>>2],o[a+296>>2]=o[j+48>>2],o[a+300>>2]=o[j+52>>2],o[a+304>>2]=o[j+56>>2],o[a+308>>2]=o[j+60>>2],s[a+232>>2]=+s[f+4>>2],s[a+176>>2]=p,s[a+180>>2]=w,s[a+184>>2]=v,s[a+188>>2]=0,b<p&&(s[a+176>>2]=b),d<w&&(s[a+180>>2]=d),c<v&&(s[a+184>>2]=c),s[a+160>>2]=p,s[a+164>>2]=w,s[a+168>>2]=v,s[a+172>>2]=0,p<b&&(s[a+160>>2]=b),w<d&&(s[a+164>>2]=d),v<c&&(s[a+168>>2]=c),Vn[63&o[64+(0|o[x>>2])>>2]](x,a+192|0,a+176|0,a+160|0),void(u=a));if(31==(0|M))if(M=0|o[x+64>>2],P=0|o[e+8>>2],o[a+128>>2]=7984,o[a+132>>2]=P,o[a+136>>2]=x,o[a+140>>2]=j,o[a+144>>2]=i,o[a+148>>2]=t,o[a+152>>2]=f,0|M)if(Gi(a+64|0,j,i),b=+s[a+112>>2],w=+s[a+116>>2],v=+s[a+120>>2],Gi(a,j,t),0|(x=0|o[M>>2])){p=+s[a+48>>2]-b,y=+s[a+52>>2]-w,k=+s[a+56>>2]-v,f=(g=p*(m=1/+_(+(p*p+y*y+k*k)))==0?0xde0b6b000000000:1/(p*m))<0&1,j=(C=y*m==0?0xde0b6b000000000:1/(y*m))<0&1,e=(S=k*m==0?0xde0b6b000000000:1/(k*m))<0&1,o[4546]=1+(0|o[4546]),0|(t=0|ye(531))?(o[(t+19&-16)-4>>2]=t,L=t+19&-16):L=0,i=0;do{0|(t=L+(i<<2)|0)&&(o[t>>2]=0),i=i+1|0}while(128!=(0|i));o[L>>2]=x,T=128,M=128,x=1,E=126;do{i=0|o[L+((t=x+-1|0)<<2)>>2],o[a+1240>>2]=o[i+0>>2],o[a+1244>>2]=o[i+4>>2],o[a+1248>>2]=o[i+8>>2],o[a+1252>>2]=o[i+12>>2],o[a+1256>>2]=o[i+16>>2],o[a+1260>>2]=o[i+20>>2],o[a+1264>>2]=o[i+24>>2],o[a+1268>>2]=o[i+28>>2],D=g*(+s[a+1240+(f<<4)>>2]-b),I=g*(+s[a+1240+((1^f)<<4)>>2]-b),O=C*(+s[a+1240+(j<<4)+4>>2]-w),A=C*(+s[a+1240+((1^j)<<4)+4>>2]-w);do{if(!(D>A|O>I||(d=O>D?O:D,h=A<I?A:I,l=S*(+s[a+1240+(e<<4)+8>>2]-v),c=S*(+s[a+1240+((1^e)<<4)+8>>2]-v),d>c|l>h))&&(l>d?l:d)<p*m*p+y*m*y+k*m*k&&(c<h?c:h)>0){if(!(0|o[i+40>>2])){on[127&o[12+(0|o[a+128>>2])>>2]](a+128|0,i),x=t;break}if((0|t)>(0|E)){if((0|M)<(0|(E=M<<1))){do{if((0|T)<(0|E)){do{if(0|M){if(o[4546]=1+(0|o[4546]),0|(T=0|ye(16+(M<<3|3)|0))?(o[(T+19&-16)-4>>2]=T,T=T+19&-16):T=0,!((0|M)>0))break;R=0;do{0|(P=T+(R<<2)|0)&&(o[P>>2]=o[L+(R<<2)>>2]),R=R+1|0}while((0|R)!=(0|M))}else T=0}while(0);if(!(0|L)){L=T,T=E;break}o[4548]=1+(0|o[4548]),ke(0|o[L+-4>>2]),L=T,T=E}}while(0);do{0|(R=L+(M<<2)|0)&&(o[R>>2]=0),M=M+1|0}while((0|M)!=(0|E))}M=E,E=E+-2|0}o[L+(t<<2)>>2]=o[i+36>>2],o[L+(x<<2)>>2]=o[i+40>>2],x=x+1|0}else x=t}while(0)}while(0|x);0|L?(o[4548]=1+(0|o[4548]),ke(0|o[L+-4>>2]),u=a):u=a}else u=a;else{if((0|(f=0|o[x+16>>2]))<=0)return void(u=a);for(e=0;P=0|o[x+24>>2],R=0|o[P+(80*e|0)+64>>2],nt(a+1328|0,j,P+(80*e|0)|0),P=0|o[a+132>>2],o[a+1304>>2]=0,o[a+1308>>2]=R,o[a+1312>>2]=P,o[a+1316>>2]=a+1328,o[a+1320>>2]=-1,o[a+1324>>2]=e,P=0|o[a+152>>2],s[a+1276>>2]=1,o[a+1280>>2]=0,r[a+1284>>1]=1,r[a+1286>>1]=-1,o[a+1288>>2]=0,o[a+1272>>2]=7808,o[a+1292>>2]=P,o[a+1296>>2]=e,s[a+1276>>2]=+s[P+4>>2],o[a+1288>>2]=o[P+16>>2],Ui(0|o[a+144>>2],0|o[a+148>>2],a+1304|0,a+1272|0),!((0|(e=e+1|0))>=(0|f));)x=0|o[a+136>>2],j=0|o[a+140>>2];u=a}else u=a}function Gi(i,t,e){i|=0,t|=0;var n,r,o,f,a,c,u,h,l,d,v,b,_,w,p,m,y,k,g,C,j;c=+s[(e|=0)+48>>2]-+s[t+48>>2],f=+s[e+52>>2]-+s[t+52>>2],r=+s[e+56>>2]-+s[t+56>>2],b=+s[t>>2],j=+s[e>>2],v=+s[t+16>>2],C=+s[e+16>>2],d=+s[t+32>>2],g=+s[e+32>>2],k=+s[e+4>>2],y=+s[e+20>>2],m=+s[e+36>>2],p=+s[e+8>>2],w=+s[e+24>>2],_=+s[e+40>>2],l=+s[t+4>>2],h=+s[t+20>>2],u=+s[t+36>>2],a=+s[t+8>>2],o=+s[t+24>>2],n=+s[t+40>>2],s[i>>2]=b*j+v*C+d*g,s[i+4>>2]=b*k+v*y+d*m,s[i+8>>2]=b*p+v*w+d*_,s[i+12>>2]=0,s[i+16>>2]=j*l+C*h+g*u,s[i+20>>2]=k*l+y*h+m*u,s[i+24>>2]=p*l+w*h+_*u,s[i+28>>2]=0,s[i+32>>2]=j*a+C*o+g*n,s[i+36>>2]=k*a+y*o+m*n,s[i+40>>2]=p*a+w*o+_*n,s[i+44>>2]=0,s[i+48>>2]=c*b+f*v+r*d,s[i+52>>2]=c*l+f*h+r*u,s[i+56>>2]=c*a+f*o+r*n,s[i+60>>2]=0}function Wi(i,t,e,f,a,c){i|=0,t|=0,e|=0,a|=0,c=+c;var h,l,d=0,v=0,b=0,w=0,p=0,m=0,y=0,k=0,g=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0,L=0,I=0,A=0,D=0,O=0,R=0,P=0,N=0,B=0,F=0,V=0,U=0;if(h=u,u=u+1664|0,d=0|o[(f|=0)+4>>2],l=0|o[f+12>>2],(0|(L=0|o[d+4>>2]))<20)return o[h+1424>>2]=8584,o[h+1592>>2]=0,s[h+1596>>2]=c,s[h+1588>>2]=+s[a+4>>2],s[h+1372>>2]=9999999747378752e-20,n[h+1396|0]=0,o[h+1056>>2]=11736,o[h+1032>>2]=9296,o[h+1036>>2]=h+1064,o[h+1040>>2]=h+1056,o[h+1044>>2]=i,o[h+1048>>2]=d,o[h+1052>>2]=0,0|gi(h+1032|0,t,e,l,l,h+1424|0)&&(w=+s[(d=h+1556|0)>>2])*w+(b=+s[h+1560>>2])*b+(v=+s[h+1564>>2])*v>9999999747378752e-20&&(c=+s[h+1588>>2])<+s[a+4>>2]?(T=1/+_(+(w*w+b*b+v*v)),s[d>>2]=w*T,s[h+1560>>2]=b*T,s[h+1564>>2]=v*T,o[h+984>>2]=o[f+8>>2],o[h+988>>2]=0,o[h+992>>2]=o[d+0>>2],o[h+996>>2]=o[d+4>>2],o[h+1e3>>2]=o[d+8>>2],o[h+1004>>2]=o[d+12>>2],o[h+1008>>2]=o[h+1572>>2],o[h+1012>>2]=o[h+1576>>2],o[h+1016>>2]=o[h+1580>>2],o[h+1020>>2]=o[h+1584>>2],s[h+1024>>2]=c,xn[7&o[12+(0|o[a>>2])>>2]](a,h+984|0,1),void(u=h)):void(u=h);if(!((L+-21|0)>>>0<9)){if(31!=(0|L))return void(u=h);if(It(6768),(0|o[d+16>>2])>0){L=0;do{A=0|o[d+24>>2],v=+s[A+(80*L|0)>>2],p=+s[A+(80*L|0)+4>>2],k=+s[A+(80*L|0)+8>>2],b=+s[A+(80*L|0)+16>>2],m=+s[A+(80*L|0)+20>>2],C=+s[A+(80*L|0)+24>>2],w=+s[A+(80*L|0)+32>>2],y=+s[A+(80*L|0)+36>>2],S=+s[A+(80*L|0)+40>>2],V=+s[A+(80*L|0)+48>>2],F=+s[A+(80*L|0)+52>>2],T=+s[A+(80*L|0)+56>>2],A=0|o[A+(80*L|0)+64>>2],B=+s[l>>2],N=+s[l+4>>2],P=+s[l+8>>2],R=+s[l+16>>2],O=+s[l+20>>2],D=+s[l+24>>2],g=+s[l+32>>2],j=+s[l+36>>2],x=+s[l+40>>2],M=V*B+F*N+T*P+ +s[l+48>>2],E=V*R+F*O+T*D+ +s[l+52>>2],T=V*g+F*j+T*x+ +s[l+56>>2],s[h+1600>>2]=v*B+b*N+w*P,s[h+1604>>2]=p*B+m*N+y*P,s[h+1608>>2]=k*B+C*N+S*P,s[h+1612>>2]=0,s[h+1616>>2]=v*R+b*O+w*D,s[h+1620>>2]=p*R+m*O+y*D,s[h+1624>>2]=k*R+C*O+S*D,s[h+1628>>2]=0,s[h+1632>>2]=v*g+b*j+w*x,s[h+1636>>2]=p*g+m*j+y*x,s[h+1640>>2]=k*g+C*j+S*x,s[h+1644>>2]=0,s[h+1648>>2]=M,s[h+1652>>2]=E,s[h+1656>>2]=T,s[h+1660>>2]=0,r[h+32>>1]=1,r[h+34>>1]=-1,o[h+24>>2]=7168,o[h+36>>2]=a,o[h+40>>2]=L,s[h+28>>2]=+s[a+4>>2],I=0|o[f+8>>2],o[h>>2]=f,o[h+4>>2]=A,o[h+8>>2]=I,o[h+12>>2]=h+1600,o[h+16>>2]=-1,o[h+20>>2]=L,Wi(i,t,e,h,h+24|0,c),L=L+1|0}while((0|L)<(0|o[d+16>>2]))}if(f=0|o[4564],A=(0|o[f+16>>2])-1|0,o[f+16>>2]=A,0|A)return void(u=h);do{if(0|o[f+4>>2]){if(G(h+1600|0,0),A=0|o[4550],s[f+8>>2]=+(((0|o[h+1604>>2])-(0|o[A+4>>2])+(1e6*((0|o[h+1600>>2])-(0|o[A>>2])|0)|0)-(0|o[f+12>>2])|0)>>>0)/1e3+ +s[f+8>>2],0|o[f+16>>2])return void(u=h);f=0|o[4564];break}}while(0);return o[4564]=o[f+20>>2],void(u=h)}return 21==(0|L)?(g=+s[l>>2],b=+s[l+16>>2],w=+s[l+32>>2],p=+s[l+4>>2],m=+s[l+20>>2],y=+s[l+36>>2],T=+s[l+8>>2],M=+s[l+24>>2],S=+s[l+40>>2],k=-+s[l+48>>2],v=-+s[l+52>>2],C=-+s[l+56>>2],j=+s[t+48>>2],x=+s[t+52>>2],E=+s[t+56>>2],s[h+968>>2]=g*k+b*v+w*C+(g*j+b*x+w*E),s[h+972>>2]=p*k+m*v+y*C+(p*j+m*x+y*E),s[h+976>>2]=T*k+M*v+S*C+(T*j+M*x+S*E),s[h+980>>2]=0,E=+s[e+48>>2],x=+s[e+52>>2],j=+s[e+56>>2],U=+s[e>>2],D=+s[e+16>>2],O=+s[e+32>>2],R=+s[e+4>>2],P=+s[e+20>>2],N=+s[e+36>>2],B=+s[e+8>>2],F=+s[e+24>>2],V=+s[e+40>>2],s[h+904>>2]=g*U+b*D+w*O,s[h+908>>2]=g*R+b*P+w*N,s[h+912>>2]=g*B+b*F+w*V,s[h+916>>2]=0,s[h+920>>2]=p*U+m*D+y*O,s[h+924>>2]=p*R+m*P+y*N,s[h+928>>2]=p*B+m*F+y*V,s[h+932>>2]=0,s[h+936>>2]=T*U+M*D+S*O,s[h+940>>2]=T*R+M*P+S*N,s[h+944>>2]=T*B+M*F+S*V,o[(A=h+948|0)+0>>2]=0,o[A+4>>2]=0,o[A+8>>2]=0,o[A+12>>2]=0,o[A+16>>2]=0,f=0|o[f+8>>2],V=+mn[15&o[48+(0|o[d>>2])>>2]](d),o[h+680>>2]=14584,o[h+684>>2]=i,o[h+688>>2]=o[t+0>>2],o[h+692>>2]=o[t+4>>2],o[h+696>>2]=o[t+8>>2],o[h+700>>2]=o[t+12>>2],o[h+704>>2]=o[t+16>>2],o[h+708>>2]=o[t+20>>2],o[h+712>>2]=o[t+24>>2],o[h+716>>2]=o[t+28>>2],o[h+720>>2]=o[t+32>>2],o[h+724>>2]=o[t+36>>2],o[h+728>>2]=o[t+40>>2],o[h+732>>2]=o[t+44>>2],o[h+736>>2]=o[t+48>>2],o[h+740>>2]=o[t+52>>2],o[h+744>>2]=o[t+56>>2],o[h+748>>2]=o[t+60>>2],o[h+752>>2]=o[e+0>>2],o[h+756>>2]=o[e+4>>2],o[h+760>>2]=o[e+8>>2],o[h+764>>2]=o[e+12>>2],o[h+768>>2]=o[e+16>>2],o[h+772>>2]=o[e+20>>2],o[h+776>>2]=o[e+24>>2],o[h+780>>2]=o[e+28>>2],o[h+784>>2]=o[e+32>>2],o[h+788>>2]=o[e+36>>2],o[h+792>>2]=o[e+40>>2],o[h+796>>2]=o[e+44>>2],o[h+800>>2]=o[e+48>>2],o[h+804>>2]=o[e+52>>2],o[h+808>>2]=o[e+56>>2],o[h+812>>2]=o[e+60>>2],o[h+816>>2]=o[l+0>>2],o[h+820>>2]=o[l+4>>2],o[h+824>>2]=o[l+8>>2],o[h+828>>2]=o[l+12>>2],o[h+832>>2]=o[l+16>>2],o[h+836>>2]=o[l+20>>2],o[h+840>>2]=o[l+24>>2],o[h+844>>2]=o[l+28>>2],o[h+848>>2]=o[l+32>>2],o[h+852>>2]=o[l+36>>2],o[h+856>>2]=o[l+40>>2],o[h+860>>2]=o[l+44>>2],o[h+864>>2]=o[l+48>>2],o[h+868>>2]=o[l+52>>2],o[h+872>>2]=o[l+56>>2],o[h+876>>2]=o[l+60>>2],s[h+884>>2]=V,o[h+680>>2]=7592,o[h+892>>2]=a,o[h+896>>2]=f,o[h+900>>2]=d,s[h+880>>2]=+s[a+4>>2],s[h+888>>2]=c,Vn[63&o[8+(0|o[i>>2])>>2]](i,h+904|0,h+664|0,h+648|0),f=0|o[d+48>>2],o[h+1600>>2]=5216,o[h+1604>>2]=f,o[h+1608>>2]=h+680,f=0|o[d+52>>2],0|n[f+60|0]?(K(f,h+1600|0,h+968|0,g*k+b*v+w*C+(g*E+b*x+w*j),p*k+m*v+y*C+(p*E+m*x+y*j),T*k+M*v+S*C+(T*E+M*x+S*j),h+664|0,h+648|0,0|o[f+56>>2]),void(u=h)):(q(f,h+1600|0,h+968|0,g*k+b*v+w*C+(g*E+b*x+w*j),p*k+m*v+y*C+(p*E+m*x+y*j),T*k+M*v+S*C+(T*E+M*x+S*j),h+664|0,h+648|0),void(u=h))):28==(0|L)?(o[h+472>>2]=8584,o[h+640>>2]=0,s[h+644>>2]=c,s[h+636>>2]=+s[a+4>>2],o[h+448>>2]=9296,o[h+452>>2]=0,o[h+456>>2]=0,o[h+460>>2]=i,o[h+464>>2]=0,o[h+468>>2]=d,0|gi(h+448|0,t,e,l,l,h+472|0)&&(c=+s[(d=h+604|0)>>2])*c+(v=+s[h+608>>2])*v+(b=+s[h+612>>2])*b>9999999747378752e-20&&(w=+s[h+636>>2])<+s[a+4>>2]?(U=1/+_(+(c*c+v*v+b*b)),s[d>>2]=c*U,s[h+608>>2]=v*U,s[h+612>>2]=b*U,o[h+400>>2]=o[f+8>>2],o[h+404>>2]=0,o[h+408>>2]=o[d+0>>2],o[h+412>>2]=o[d+4>>2],o[h+416>>2]=o[d+8>>2],o[h+420>>2]=o[d+12>>2],o[h+424>>2]=o[h+620>>2],o[h+428>>2]=o[h+624>>2],o[h+432>>2]=o[h+628>>2],o[h+436>>2]=o[h+632>>2],s[h+440>>2]=w,xn[7&o[12+(0|o[a>>2])>>2]](a,h+400|0,1),void(u=h)):void(u=h)):(k=+s[l>>2],g=+s[l+16>>2],C=+s[l+32>>2],j=+s[l+4>>2],S=+s[l+20>>2],x=+s[l+36>>2],P=+s[l+8>>2],B=+s[l+24>>2],V=+s[l+40>>2],y=k*(O=-+s[l+48>>2])+g*(D=-+s[l+52>>2])+C*(T=-+s[l+56>>2])+(k*(M=+s[t+48>>2])+g*(E=+s[t+52>>2])+C*(b=+s[t+56>>2])),w=j*O+S*D+x*T+(j*M+S*E+x*b),b=P*O+B*D+V*T+(P*M+B*E+V*b),m=k*O+g*D+C*T+(k*(E=+s[e+48>>2])+g*(M=+s[e+52>>2])+C*(v=+s[e+56>>2])),p=j*O+S*D+x*T+(j*E+S*M+x*v),v=P*O+B*D+V*T+(P*E+B*M+V*v),M=+s[e>>2],E=+s[e+16>>2],T=+s[e+32>>2],D=+s[e+4>>2],O=+s[e+20>>2],R=+s[e+36>>2],N=+s[e+8>>2],F=+s[e+24>>2],U=+s[e+40>>2],s[h+336>>2]=k*M+g*E+C*T,s[h+340>>2]=k*D+g*O+C*R,s[h+344>>2]=k*N+g*F+C*U,s[h+348>>2]=0,s[h+352>>2]=j*M+S*E+x*T,s[h+356>>2]=j*D+S*O+x*R,s[h+360>>2]=j*N+S*F+x*U,s[h+364>>2]=0,s[h+368>>2]=P*M+B*E+V*T,s[h+372>>2]=P*D+B*O+V*R,s[h+376>>2]=P*N+B*F+V*U,o[(A=h+380|0)+0>>2]=0,o[A+4>>2]=0,o[A+8>>2]=0,o[A+12>>2]=0,o[A+16>>2]=0,A=0|o[f+8>>2],U=+mn[15&o[48+(0|o[d>>2])>>2]](d),o[h+112>>2]=14584,o[h+116>>2]=i,o[h+120>>2]=o[t+0>>2],o[h+124>>2]=o[t+4>>2],o[h+128>>2]=o[t+8>>2],o[h+132>>2]=o[t+12>>2],o[h+136>>2]=o[t+16>>2],o[h+140>>2]=o[t+20>>2],o[h+144>>2]=o[t+24>>2],o[h+148>>2]=o[t+28>>2],o[h+152>>2]=o[t+32>>2],o[h+156>>2]=o[t+36>>2],o[h+160>>2]=o[t+40>>2],o[h+164>>2]=o[t+44>>2],o[h+168>>2]=o[t+48>>2],o[h+172>>2]=o[t+52>>2],o[h+176>>2]=o[t+56>>2],o[h+180>>2]=o[t+60>>2],o[h+184>>2]=o[e+0>>2],o[h+188>>2]=o[e+4>>2],o[h+192>>2]=o[e+8>>2],o[h+196>>2]=o[e+12>>2],o[h+200>>2]=o[e+16>>2],o[h+204>>2]=o[e+20>>2],o[h+208>>2]=o[e+24>>2],o[h+212>>2]=o[e+28>>2],o[h+216>>2]=o[e+32>>2],o[h+220>>2]=o[e+36>>2],o[h+224>>2]=o[e+40>>2],o[h+228>>2]=o[e+44>>2],o[h+232>>2]=o[e+48>>2],o[h+236>>2]=o[e+52>>2],o[h+240>>2]=o[e+56>>2],o[h+244>>2]=o[e+60>>2],o[h+248>>2]=o[l+0>>2],o[h+252>>2]=o[l+4>>2],o[h+256>>2]=o[l+8>>2],o[h+260>>2]=o[l+12>>2],o[h+264>>2]=o[l+16>>2],o[h+268>>2]=o[l+20>>2],o[h+272>>2]=o[l+24>>2],o[h+276>>2]=o[l+28>>2],o[h+280>>2]=o[l+32>>2],o[h+284>>2]=o[l+36>>2],o[h+288>>2]=o[l+40>>2],o[h+292>>2]=o[l+44>>2],o[h+296>>2]=o[l+48>>2],o[h+300>>2]=o[l+52>>2],o[h+304>>2]=o[l+56>>2],o[h+308>>2]=o[l+60>>2],s[h+316>>2]=U,o[h+112>>2]=7368,o[h+324>>2]=a,o[h+328>>2]=A,o[h+332>>2]=d,s[h+312>>2]=+s[a+4>>2],s[h+320>>2]=c,Vn[63&o[8+(0|o[i>>2])>>2]](i,h+336|0,h+96|0,h+80|0),s[h+64>>2]=y,s[h+68>>2]=w,s[h+72>>2]=b,s[h+76>>2]=0,m<y?(s[h+64>>2]=m,g=m):g=y,p<w?(s[h+68>>2]=p,k=p):k=w,v<b?(s[h+72>>2]=v,c=v):c=b,s[h+48>>2]=y,s[h+52>>2]=w,s[h+56>>2]=b,s[h+60>>2]=0,y<m?s[h+48>>2]=m:m=y,w<p&&(s[h+52>>2]=p,w=p),b<v?s[h+56>>2]=v:v=b,s[h+64>>2]=+s[h+96>>2]+g,s[h+68>>2]=+s[h+100>>2]+k,s[h+72>>2]=+s[h+104>>2]+c,s[h+48>>2]=+s[h+80>>2]+m,s[h+52>>2]=+s[h+84>>2]+w,s[h+56>>2]=+s[h+88>>2]+v,Vn[63&o[64+(0|o[d>>2])>>2]](d,h+112|0,h+64|0,h+48|0),void(u=h))}function zi(i,t,e,n,r){i|=0,t|=0,e|=0,n|=0,r|=0;var f,a,c,h,l,d,v=0,b=0,w=0,p=0,m=0,y=0,k=0,g=0,C=0,j=0;if(f=u,u=u+384|0,It(6792),o[f+112>>2]=o[e+0>>2],o[f+116>>2]=o[e+4>>2],o[f+120>>2]=o[e+8>>2],o[f+124>>2]=o[e+12>>2],o[f+128>>2]=o[e+16>>2],o[f+132>>2]=o[e+20>>2],o[f+136>>2]=o[e+24>>2],o[f+140>>2]=o[e+28>>2],o[f+144>>2]=o[e+32>>2],o[f+148>>2]=o[e+36>>2],o[f+152>>2]=o[e+40>>2],o[f+156>>2]=o[e+44>>2],o[(v=f+160|0)+0>>2]=o[e+48>>2],o[v+4>>2]=o[e+52>>2],o[v+8>>2]=o[e+56>>2],o[v+12>>2]=o[e+60>>2],o[f+48>>2]=o[n+0>>2],o[f+52>>2]=o[n+4>>2],o[f+56>>2]=o[n+8>>2],o[f+60>>2]=o[n+12>>2],o[f+64>>2]=o[n+16>>2],o[f+68>>2]=o[n+20>>2],o[f+72>>2]=o[n+24>>2],o[f+76>>2]=o[n+28>>2],o[f+80>>2]=o[n+32>>2],o[f+84>>2]=o[n+36>>2],o[f+88>>2]=o[n+40>>2],o[f+92>>2]=o[n+44>>2],o[(a=f+96|0)+0>>2]=o[n+48>>2],o[a+4>>2]=o[n+52>>2],o[a+8>>2]=o[n+56>>2],o[a+12>>2]=o[n+60>>2],wt(f+112|0,f+48|0,f+180|0,f+176|0),b=+s[f+176>>2],h=+s[f+180>>2]*b,c=b*+s[f+184>>2],b*=+s[f+188>>2],s[f+180>>2]=1,o[(j=f+184|0)+0>>2]=0,o[j+4>>2]=0,o[j+8>>2]=0,o[j+12>>2]=0,s[f+200>>2]=1,o[(l=f+204|0)+0>>2]=0,o[l+4>>2]=0,o[l+8>>2]=0,o[l+12>>2]=0,s[f+220>>2]=1,o[(C=f+224|0)+0>>2]=0,o[C+4>>2]=0,o[C+8>>2]=0,o[C+12>>2]=0,o[C+16>>2]=0,it(f+112|0,f),m=(y=+s[f>>2])*(2/(y*y+(p=+s[f+4>>2])*p+(d=+s[f+8>>2])*d+(k=+s[f+12>>2])*k)),w=p*(2/(y*y+p*p+d*d+k*k)),g=d*(2/(y*y+p*p+d*d+k*k)),s[f+180>>2]=1-(p*w+d*g),s[j>>2]=y*w-k*g,s[f+188>>2]=y*g+k*w,s[f+192>>2]=0,s[f+196>>2]=y*w+k*g,s[f+200>>2]=1-(y*m+d*g),s[l>>2]=p*g-k*m,s[f+208>>2]=0,s[f+212>>2]=y*g-k*w,s[f+216>>2]=p*g+k*m,s[f+220>>2]=1-(y*m+p*w),s[C>>2]=0,Vn[63&o[8+(0|o[t>>2])>>2]](t,f+180|0,f+32|0,f+16|0),w=+s[f+20>>2],p=+s[f+24>>2],m=+s[f+16>>2],y=+s[f+32>>2]+0,k=+s[f+36>>2]+0,g=+s[f+40>>2]+0,b=+_(+(h*h+c*c+b*b))*+mn[15&o[16+(0|o[t>>2])>>2]](t),s[f+44>>2]=0,s[f+28>>2]=0,s[f+32>>2]=y-b,s[f+36>>2]=k-b,s[f+40>>2]=g-b,s[f+16>>2]=b+m,s[f+20>>2]=b+w,s[f+24>>2]=b+p,o[f+180>>2]=6992,o[f+216>>2]=o[e+0>>2],o[f+220>>2]=o[e+4>>2],o[f+224>>2]=o[e+8>>2],o[f+228>>2]=o[e+12>>2],o[f+232>>2]=o[e+16>>2],o[f+236>>2]=o[e+20>>2],o[f+240>>2]=o[e+24>>2],o[f+244>>2]=o[e+28>>2],o[f+248>>2]=o[e+32>>2],o[f+252>>2]=o[e+36>>2],o[f+256>>2]=o[e+40>>2],o[f+260>>2]=o[e+44>>2],o[(C=f+264|0)+0>>2]=o[e+48>>2],o[C+4>>2]=o[e+52>>2],o[C+8>>2]=o[e+56>>2],o[C+12>>2]=o[e+60>>2],o[f+280>>2]=o[n+0>>2],o[f+284>>2]=o[n+4>>2],o[f+288>>2]=o[n+8>>2],o[f+292>>2]=o[n+12>>2],o[f+296>>2]=o[n+16>>2],o[f+300>>2]=o[n+20>>2],o[f+304>>2]=o[n+24>>2],o[f+308>>2]=o[n+28>>2],o[f+312>>2]=o[n+32>>2],o[f+316>>2]=o[n+36>>2],o[f+320>>2]=o[n+40>>2],o[f+324>>2]=o[n+44>>2],o[(e=f+328|0)+0>>2]=o[n+48>>2],o[e+4>>2]=o[n+52>>2],o[e+8>>2]=o[n+56>>2],o[e+12>>2]=o[n+60>>2],o[f+360>>2]=i,o[f+364>>2]=r,s[f+368>>2]=0,o[f+372>>2]=t,p=+s[e>>2]-+s[C>>2],b=+s[f+332>>2]-+s[f+268>>2],w=+s[f+336>>2]-+s[f+272>>2],y=p*(m=1/+_(+(p*p+b*b+w*w)))==0?0xde0b6b000000000:1/(p*m),s[f+184>>2]=y,k=b*m==0?0xde0b6b000000000:1/(b*m),s[f+188>>2]=k,g=w*m==0?0xde0b6b000000000:1/(w*m),s[f+192>>2]=g,o[f+200>>2]=y<0&1,o[f+204>>2]=k<0&1,o[f+208>>2]=g<0&1,s[f+212>>2]=w*w*m+(p*p*m+b*b*m),j=0|o[i+68>>2],wn[7&o[24+(0|o[j>>2])>>2]](j,v,a,f+180|0,f+32|0,f+16|0),v=0|o[4564],j=(0|o[v+16>>2])-1|0,o[v+16>>2]=j,0|j)u=f;else{do{if(0|o[v+4>>2]){if(G(f+180|0,0),j=0|o[4550],s[v+8>>2]=+(((0|o[f+184>>2])-(0|o[j+4>>2])+(1e6*((0|o[f+180>>2])-(0|o[j>>2])|0)|0)-(0|o[v+12>>2])|0)>>>0)/1e3+ +s[v+8>>2],0|o[v+16>>2])return void(u=f);v=0|o[4564];break}}while(0);o[4564]=o[v+20>>2],u=f}}function Xi(i){var t,e=0,r=0,f=0,a=0,c=0,h=0,l=0,d=0,v=0,b=0,_=0,w=0;if(t=u,u=u+112|0,0|an[127&o[20+(0|o[(i|=0)>>2])>>2]](i)&&(w=0|an[127&o[20+(0|o[i>>2])>>2]](i),8&an[127&o[48+(0|o[w>>2])>>2]](w))&&(e=0|o[i+24>>2],e=0|an[127&o[36+(0|o[e>>2])>>2]](e),s[t+96>>2]=1,s[t+100>>2]=1,s[t+104>>2]=0,s[t+108>>2]=0,(0|e)>0)){_=0;do{if(f=0|o[i+24>>2],f=0|Sn[31&o[40+(0|o[f>>2])>>2]](f,_),(0|(a=0|o[f+748>>2]))>0){r=0;do{w=0|an[127&o[20+(0|o[i>>2])>>2]](i),rn[0&o[32+(0|o[w>>2])>>2]](w,f+(184*r|0)+36|0,f+(184*r|0)+68|0,+s[f+(184*r|0)+84>>2],0|o[f+(184*r|0)+152>>2],t+96|0),r=r+1|0}while((0|r)!=(0|a))}_=_+1|0}while((0|_)!=(0|e))}if(0|an[127&o[20+(0|o[i>>2])>>2]](i))if(w=0|an[127&o[20+(0|o[i>>2])>>2]](i),3&an[127&o[48+(0|o[w>>2])>>2]](w))if((0|o[i+8>>2])<=0)u=t;else{a=t+84|0,f=t+88|0,r=t+92|0,e=0;do{if(_=0|o[(0|o[i+16>>2])+(e<<2)>>2],!(32&o[_+204>>2])){if(0|an[127&o[20+(0|o[i>>2])>>2]](i)&&(w=0|an[127&o[20+(0|o[i>>2])>>2]](i),1&an[127&o[48+(0|o[w>>2])>>2]](w))){switch(s[t+80>>2]=1,s[a>>2]=1,s[f>>2]=1,s[r>>2]=0,0|o[_+216>>2]){case 1:s[t+80>>2]=1,s[a>>2]=1,s[f>>2]=1,s[r>>2]=0;break;case 4:default:s[t+80>>2]=1,s[a>>2]=0,s[f>>2]=0,s[r>>2]=0;break;case 2:s[t+80>>2]=0,s[a>>2]=1,s[f>>2]=0,s[r>>2]=0;break;case 3:s[t+80>>2]=0,s[a>>2]=1,s[f>>2]=1,s[r>>2]=0;break;case 5:s[t+80>>2]=1,s[a>>2]=1,s[f>>2]=0,s[r>>2]=0}Vn[63&o[28+(0|o[i>>2])>>2]](i,_+4|0,0|o[_+192>>2],t+80|0)}if(0|(w=0|o[i+72>>2])&&2&an[127&o[48+(0|o[w>>2])>>2]](w)){s[t+32>>2]=1,s[t+36>>2]=0,s[t+40>>2]=0,s[t+44>>2]=0,w=0|o[_+192>>2],Vn[63&o[8+(0|o[w>>2])>>2]](w,_+4|0,t+64|0,t+48|0),s[t+64>>2]=+s[t+64>>2]-.019999999552965164,s[t+68>>2]=+s[t+68>>2]-.019999999552965164,s[t+72>>2]=+s[t+72>>2]-.019999999552965164,s[t+48>>2]=+s[t+48>>2]+.019999999552965164,s[t+52>>2]=+s[t+52>>2]+.019999999552965164,s[t+56>>2]=+s[t+56>>2]+.019999999552965164;do{if(0|n[i+44|0]&&2==(0|o[_+236>>2])&&!(3&o[_+204>>2])){if(w=0|o[_+192>>2],Vn[63&o[8+(0|o[w>>2])>>2]](w,_+68|0,t+16|0,t),b=+s[t+16>>2]-.019999999552965164,s[t+16>>2]=b,v=+s[t+20>>2]-.019999999552965164,s[t+20>>2]=v,d=+s[t+24>>2]-.019999999552965164,s[t+24>>2]=d,l=+s[t>>2]+.019999999552965164,s[t>>2]=l,h=+s[t+4>>2]+.019999999552965164,s[t+4>>2]=h,c=+s[t+8>>2]+.019999999552965164,s[t+8>>2]=c,b<+s[t+64>>2]&&(s[t+64>>2]=b),v<+s[t+68>>2]&&(s[t+68>>2]=v),d<+s[t+72>>2]&&(s[t+72>>2]=d),(d=+s[t+28>>2])<+s[t+76>>2]&&(s[t+76>>2]=d),+s[t+48>>2]<l&&(s[t+48>>2]=l),+s[t+52>>2]<h&&(s[t+52>>2]=h),+s[t+56>>2]<c&&(s[t+56>>2]=c),c=+s[t+12>>2],!(+s[t+60>>2]<c))break;s[t+60>>2]=c}}while(0);w=0|o[i+72>>2],Vn[63&o[52+(0|o[w>>2])>>2]](w,t+64|0,t+48|0,t+32|0)}}e=e+1|0}while((0|e)<(0|o[i+8>>2]));u=t}else u=t;else u=t}function $i(i,t){t|=0;var e,r=0,f=0,a=0,s=0,c=0,h=0,l=0,d=0,v=0,b=0,_=0,w=0,p=0,m=0,y=0,k=0,g=0,C=0;if(e=u,u=u+80|0,(0|(w=0|o[(i|=0)+8>>2]))>0){l=0;do{d=0|o[(0|o[i+16>>2])+(l<<2)>>2],1==(0|o[d+236>>2])&&(on[127&o[24+(0|o[d>>2])>>2]](d,t),w=0|o[i+8>>2]),l=l+1|0}while((0|l)<(0|w))}if(n[e+16|0]=1,o[e+12>>2]=0,o[e+4>>2]=0,o[e+8>>2]=0,n[e+36|0]=1,o[e+32>>2]=0,o[e+24>>2]=0,o[e+28>>2]=0,n[e+56|0]=1,o[e+52>>2]=0,o[e+44>>2]=0,o[e+48>>2]=0,n[e+76|0]=1,o[e+72>>2]=0,o[e+64>>2]=0,o[e+68>>2]=0,(0|w)<=0)return Hi(e),void(u=e);for(y=-1,m=0,b=0,p=0,_=0,l=0;;){y&=v=((v=9*((d=0|o[192+(0|o[(0|o[i+16>>2])+(l<<2)>>2])>>2])+~(d<<15)>>10^d+~(d<<15))|0)>>6^v)+~((v>>6^v)<<11)>>16^(v>>6^v)+~((v>>6^v)<<11);i:do{if(y>>>0<m>>>0&&-1!=(0|(s=0|o[b+(y<<2)>>2]))){for(y=0|o[e+72>>2],k=s;(0|d)!=(0|o[y+(k<<3)>>2]);)if(-1==(0|(k=0|o[p+(k<<2)>>2]))){f=15;break i}-1!=(0|k)&&(0|o[e+52>>2])+(k<<2)|0||(f=15)}else f=15}while(0);if(15==(0|f)){f=0,w=v&_+-1;i:do{if(w>>>0<m>>>0&&-1!=(0|(a=0|o[b+(w<<2)>>2]))){for(m=0|o[e+72>>2],y=a;(0|d)!=(0|o[m+(y<<3)>>2]);)if(-1==(0|(y=0|o[p+(y<<2)>>2]))){f=22;break i}-1!=(0|y)?o[(0|o[e+52>>2])+(y<<2)>>2]=d:f=22}else f=22}while(0);if(22==(0|f)){if(f=0,(0|(b=0|o[e+44>>2]))==(0|_))if((0|_)<(0|(p=0|_?_<<1:1))){if(0|p&&(o[4546]=1+(0|o[4546]),0|(h=0|ye(16+(p<<2|3)|0)))?(o[(h+19&-16)-4>>2]=h,m=h+19&-16):m=0,(0|_)>0){y=0;do{0|(k=m+(y<<2)|0)&&(o[k>>2]=o[(0|o[e+52>>2])+(y<<2)>>2]),y=y+1|0}while((0|y)!=(0|_))}0|(y=0|o[e+52>>2])&&(0|n[e+56|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[y+-4>>2])),o[e+52>>2]=0),n[e+56|0]=1,o[e+52>>2]=m,o[e+48>>2]=p,p=_}else p=_;else p=b;if(0|(m=(0|o[e+52>>2])+(p<<2)|0)&&(o[m>>2]=d),o[e+44>>2]=p+1,(0|(m=0|o[e+64>>2]))==(0|o[e+68>>2])&&(0|m)<(0|(c=0|m?m<<1:1))){if(0|c&&(o[4546]=1+(0|o[4546]),0|(r=0|ye(16+(c<<3|3)|0)))?(o[(r+19&-16)-4>>2]=r,p=r+19&-16):p=0,(0|m)>0){k=0;do{0|(y=p+(k<<3)|0)&&(C=(0|o[e+72>>2])+(k<<3)|0,g=0|o[C+4>>2],o[y>>2]=o[C>>2],o[y+4>>2]=g),k=k+1|0}while((0|k)!=(0|m))}0|(m=0|o[e+72>>2])&&(0|n[e+76|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[m+-4>>2])),o[e+72>>2]=0),n[e+76|0]=1,o[e+72>>2]=p,o[e+68>>2]=c,m=0|o[e+64>>2]}if(0|(p=(0|o[e+72>>2])+(m<<3)|0)&&(o[p>>2]=d,o[p+4>>2]=0),o[e+64>>2]=m+1,(0|_)<(0|(p=0|o[e+48>>2]))){_=0|o[e+4>>2];do{if((0|_)<(0|p)){if((0|_)<=(0|p)){if((0|o[e+8>>2])<(0|p)){do{if(0|p){if(o[4546]=1+(0|o[4546]),!(0|(w=0|ye(16+(p<<2|3)|0)))){w=0;break}o[(w+19&-16)-4>>2]=w,w=w+19&-16}else w=0}while(0);if(k=0|o[e+12>>2],(0|_)>0){y=0;do{0|(m=w+(y<<2)|0)&&(o[m>>2]=o[k+(y<<2)>>2]),y=y+1|0}while((0|y)!=(0|_))}0|k&&(0|n[e+16|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[k+-4>>2])),o[e+12>>2]=0),n[e+16|0]=1,o[e+12>>2]=w,o[e+8>>2]=p}else w=0|o[e+12>>2];m=_;do{0|(y=w+(m<<2)|0)&&(o[y>>2]=0),m=m+1|0}while((0|m)!=(0|p))}if(o[e+4>>2]=p,(0|(w=0|o[e+24>>2]))<(0|p)){if((0|o[e+28>>2])<(0|p)){do{if(0|p){if(o[4546]=1+(0|o[4546]),!(0|(m=0|ye(16+(p<<2|3)|0)))){m=0;break}o[(m+19&-16)-4>>2]=m,m=m+19&-16}else m=0}while(0);if(g=0|o[e+32>>2],(0|w)>0){y=0;do{0|(k=m+(y<<2)|0)&&(o[k>>2]=o[g+(y<<2)>>2]),y=y+1|0}while((0|y)!=(0|w))}0|g&&(0|n[e+36|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[g+-4>>2])),o[e+32>>2]=0),n[e+36|0]=1,o[e+32>>2]=m,o[e+28>>2]=p}else m=0|o[e+32>>2];do{0|(y=m+(w<<2)|0)&&(o[y>>2]=0),w=w+1|0}while((0|w)!=(0|p))}if(o[e+24>>2]=p,(0|p)>0&&(Ce(0|o[e+12>>2],-1,p<<2),Ce(0|o[e+32>>2],-1,p<<2)),(0|_)<=0){p=0|o[e+48>>2];break}k=0|o[e+72>>2],y=0|o[e+12>>2],m=0|o[e+32>>2],p=0|o[e+48>>2],w=0;do{C=y+(((((C=9*((C=0|o[k+(w<<3)>>2])+~(C<<15)>>10^C+~(C<<15))|0)>>6^C)+~((C>>6^C)<<11)>>16^(C>>6^C)+~((C>>6^C)<<11))&p+-1)<<2)|0,o[m+(w<<2)>>2]=o[C>>2],o[C>>2]=w,w=w+1|0}while((0|w)!=(0|_))}}while(0);_=p,w=v&p+-1}else _=p;g=(C=0|o[e+12>>2])+(w<<2)|0,p=0|o[e+32>>2],o[p+(b<<2)>>2]=o[g>>2],o[g>>2]=b,b=C}on[127&o[60+(0|o[d>>2])>>2]](d,t),w=0|o[i+8>>2]}if((0|(l=l+1|0))>=(0|w))break;y=_+-1|0,m=0|o[e+4>>2]}Hi(e),u=e}function Hi(i){var t,e=0;if(t=u,0|(e=0|o[(i|=0)+72>>2])&&(0|n[i+76|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+72>>2]=0),n[i+76|0]=1,o[i+72>>2]=0,o[i+64>>2]=0,o[i+68>>2]=0,0|(e=0|o[i+52>>2])&&(0|n[i+56|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+52>>2]=0),n[i+56|0]=1,o[i+52>>2]=0,o[i+44>>2]=0,o[i+48>>2]=0,0|(e=0|o[i+32>>2])&&(0|n[i+36|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+32>>2]=0),n[i+36|0]=1,o[i+32>>2]=0,o[i+24>>2]=0,o[i+28>>2]=0,!(0|(e=0|o[i+12>>2])))return n[i+16|0]=1,o[i+12>>2]=0,o[i+4>>2]=0,o[(e=i+8|0)>>2]=0,void(u=t);0|n[i+16|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+12>>2]=0,n[i+16|0]=1,o[i+12>>2]=0,o[i+4>>2]=0,o[(e=i+8|0)>>2]=0,u=t}function qi(i,t){t|=0;var e,r=0;e=u,o[(i|=0)+8>>2]=0,o[i>>2]=8656,n[i+28|0]=1,o[i+24>>2]=0,o[i+16>>2]=0,o[i+20>>2]=0,s[i+32>>2]=0xde0b6b000000000,s[i+36>>2]=0xde0b6b000000000,s[i+40>>2]=0xde0b6b000000000,s[i+44>>2]=0,s[i+48>>2]=-0xde0b6b000000000,s[i+52>>2]=-0xde0b6b000000000,s[i+56>>2]=-0xde0b6b000000000,s[i+60>>2]=0,o[i+64>>2]=0,o[i+68>>2]=1,s[i+72>>2]=0,s[i+76>>2]=1,s[i+80>>2]=1,s[i+84>>2]=1,s[i+88>>2]=0,o[i+4>>2]=31,t?(o[4546]=1+(0|o[4546]),0|(t=0|ye(79))&&(o[(r=t+19&-16)+-4>>2]=t,t+19&-16)?(n[r+36|0]=1,o[r+32>>2]=0,o[r+24>>2]=0,o[r+28>>2]=0,n[r+56|0]=1,o[r+52>>2]=0,o[r+44>>2]=0,o[r+48>>2]=0,o[(t+19&-16)>>2]=0,o[r+4>>2]=0,o[r+8>>2]=-1,o[r+12>>2]=0,o[r+16>>2]=0,r=t+19&-16):r=0,o[i+64>>2]=r,u=e):u=e}function Ki(i,t,e){i|=0,e|=0;var n,r,f,a,c,h=0,l=0,d=0;return a=u,u=u+48|0,r=.5*+s[(t|=0)+60>>2],n=0|o[t+68>>2],h=+s[e>>2],l=+s[e+4>>2],d=+s[e+8>>2],d=+_(+(h*h+l*l+d*d)),f=0|o[t+64>>2],+s[e+(n<<2)>>2]>d*+s[t+52>>2]?(s[a+32+(f<<2)>>2]=0,s[a+32+(n<<2)>>2]=r,s[a+32+(o[t+72>>2]<<2)>>2]=0,o[i+0>>2]=o[a+32>>2],o[i+4>>2]=o[a+36>>2],o[i+8>>2]=o[a+40>>2],o[i+12>>2]=o[a+44>>2],void(u=a)):(h=+s[e+(f<<2)>>2],c=0|o[t+72>>2],l=+s[e+(c<<2)>>2],(d=+_(+(h*h+l*l)))>1.1920928955078125e-7?(d=+s[t+56>>2]/d,s[a+16+(f<<2)>>2]=h*d,s[a+16+(n<<2)>>2]=-r,s[a+16+(c<<2)>>2]=d*l,o[i+0>>2]=o[a+16>>2],o[i+4>>2]=o[a+20>>2],o[i+8>>2]=o[a+24>>2],o[i+12>>2]=o[a+28>>2],void(u=a)):(s[a+(f<<2)>>2]=0,s[a+(n<<2)>>2]=-r,s[a+(c<<2)>>2]=0,o[i+0>>2]=o[a+0>>2],o[i+4>>2]=o[a+4>>2],o[i+8>>2]=o[a+8>>2],o[i+12>>2]=o[a+12>>2],void(u=a)))}function Yi(i,t,e){t|=0,e|=0;var n,r=0;n=u,o[(i|=0)>>2]=488,r=i+4|0;do{r=r+16|0}while((0|r)!=(i+52|0));o[i+4>>2]=o[t+0>>2],o[i+8>>2]=o[t+4>>2],o[i+12>>2]=o[t+8>>2],o[i+16>>2]=o[t+12>>2],o[i+20>>2]=o[t+16>>2],o[i+24>>2]=o[t+20>>2],o[i+28>>2]=o[t+24>>2],o[i+32>>2]=o[t+28>>2],o[i+36>>2]=o[t+32>>2],o[i+40>>2]=o[t+36>>2],o[i+44>>2]=o[t+40>>2],o[i+48>>2]=o[t+44>>2],o[i+52>>2]=o[t+48>>2],o[i+56>>2]=o[t+52>>2],o[i+60>>2]=o[t+56>>2],o[i+64>>2]=o[t+60>>2],r=i+68|0;do{r=r+16|0}while((0|r)!=(i+116|0));o[i+68>>2]=o[e+0>>2],o[i+72>>2]=o[e+4>>2],o[i+76>>2]=o[e+8>>2],o[i+80>>2]=o[e+12>>2],o[i+84>>2]=o[e+16>>2],o[i+88>>2]=o[e+20>>2],o[i+92>>2]=o[e+24>>2],o[i+96>>2]=o[e+28>>2],o[i+100>>2]=o[e+32>>2],o[i+104>>2]=o[e+36>>2],o[i+108>>2]=o[e+40>>2],o[i+112>>2]=o[e+44>>2],o[i+116>>2]=o[e+48>>2],o[i+120>>2]=o[e+52>>2],o[i+124>>2]=o[e+56>>2],o[i+128>>2]=o[e+60>>2],e=i+132|0;do{e=e+16|0}while((0|e)!=(i+180|0));o[i+132>>2]=o[t+0>>2],o[i+136>>2]=o[t+4>>2],o[i+140>>2]=o[t+8>>2],o[i+144>>2]=o[t+12>>2],o[i+148>>2]=o[t+16>>2],o[i+152>>2]=o[t+20>>2],o[i+156>>2]=o[t+24>>2],o[i+160>>2]=o[t+28>>2],o[i+164>>2]=o[t+32>>2],o[i+168>>2]=o[t+36>>2],o[i+172>>2]=o[t+40>>2],o[i+176>>2]=o[t+44>>2],o[i+180>>2]=o[t+48>>2],o[i+184>>2]=o[t+52>>2],o[i+188>>2]=o[t+56>>2],o[i+192>>2]=o[t+60>>2],o[i+196>>2]=0,u=n}function Qi(){var i,t=0;if(i=u,u=u+48|0,0|n[416])u=i;else if(0|j(416)){!(0|n[472])&&0|j(472)?(s[i+32>>2]=1,s[i+28>>2]=0,s[i+24>>2]=0,s[i+20>>2]=0,s[i+16>>2]=1,s[i+12>>2]=0,s[i+8>>2]=0,s[i+4>>2]=0,s[i>>2]=1,et(424,i+32|0,i+28|0,i+24|0,i+20|0,i+16|0,i+12|0,i+8|0,i+4|0,i),x(472),t=352):t=352;do{t=t+16|0}while(400!=(0|t));o[88]=o[106],o[89]=o[107],o[90]=o[108],o[91]=o[109],o[92]=o[110],o[93]=o[111],o[94]=o[112],o[95]=o[113],o[96]=o[114],o[97]=o[115],o[98]=o[116],o[99]=o[117],o[100]=0,o[101]=0,o[102]=0,o[103]=0,x(416),u=i}else u=i}function Zi(i,t,e){t|=0,e|=0;var n,r,o,f=0,a=0,c=0,h=0,l=0,d=0;n=u,0!=(f=+s[(i|=0)+344>>2])?(a=+s[i+348>>2],h=+s[i+352>>2],l=+s[i+356>>2],d=+s[t+4>>2]*h*f,c=+s[t+8>>2]*l*f,s[i+312>>2]=+s[i+312>>2]+ +s[t>>2]*a*f,s[i+316>>2]=+s[i+316>>2]+d,s[i+320>>2]=+s[i+320>>2]+c,a=+s[t>>2]*a,h=+s[t+4>>2]*h,l=+s[t+8>>2]*l,c=+s[e+4>>2],d=+s[e+8>>2],o=+s[e>>2],r=(+s[i+280>>2]*(c*l-d*h)+ +s[i+284>>2]*(d*a-o*l)+ +s[i+288>>2]*(o*h-c*a))*+s[i+548>>2],f=(+s[i+296>>2]*(c*l-d*h)+ +s[i+300>>2]*(d*a-o*l)+ +s[i+304>>2]*(o*h-c*a))*+s[i+552>>2],s[i+328>>2]=+s[i+328>>2]+(+s[i+264>>2]*(c*l-d*h)+ +s[i+268>>2]*(d*a-o*l)+ +s[i+272>>2]*(o*h-c*a))*+s[i+544>>2],s[i+332>>2]=+s[i+332>>2]+r,s[i+336>>2]=+s[i+336>>2]+f,u=n):u=n}function Ji(i){var t;t=u,s[(i|=0)>>2]=1,o[i+4>>2]=0,o[i+8>>2]=0,o[i+12>>2]=0,o[i+16>>2]=0,s[i+20>>2]=1,o[i+24>>2]=0,o[i+28>>2]=0,o[i+32>>2]=0,o[i+36>>2]=0,s[i+40>>2]=1,s[i+44>>2]=0,o[i+48>>2]=0,o[i+52>>2]=0,o[i+56>>2]=0,o[i+60>>2]=0,u=t}function it(i,t){t|=0;var e,n,r,o=0,f=0,a=0,c=0,h=0;if(e=u,u=u+16|0,(a=+s[(i|=0)>>2])+(f=+s[i+20>>2])+(o=+s[i+40>>2])>0)return a=+_(+(a+f+o+1)),s[e+12>>2]=.5*a,h=(+s[i+36>>2]-+s[i+24>>2])*(.5/a),s[e>>2]=h,o=(+s[i+8>>2]-+s[i+32>>2])*(.5/a),s[e+4>>2]=o,f=(+s[i+16>>2]-+s[i+4>>2])*(.5/a),s[e+8>>2]=f,a*=.5,s[t>>2]=h,s[(c=t+4|0)>>2]=o,s[(c=t+8|0)>>2]=f,s[(c=t+12|0)>>2]=a,void(u=e);r=(((c=a<f?f<o?2:1:a<o?2:0)+1|0)>>>0)%3|0,n=((c+2|0)>>>0)%3|0,o=+_(+(+s[i+(c<<4)+(c<<2)>>2]-+s[i+(r<<4)+(r<<2)>>2]-+s[i+(n<<4)+(n<<2)>>2]+1)),s[e+(c<<2)>>2]=.5*o,s[e+12>>2]=(+s[i+(n<<4)+(r<<2)>>2]-+s[i+(r<<4)+(n<<2)>>2])*(.5/o),s[e+(r<<2)>>2]=(+s[i+(r<<4)+(c<<2)>>2]+ +s[i+(c<<4)+(r<<2)>>2])*(.5/o),s[e+(n<<2)>>2]=(+s[i+(n<<4)+(c<<2)>>2]+ +s[i+(c<<4)+(n<<2)>>2])*(.5/o),o=+s[e>>2],f=+s[e+4>>2],a=+s[e+8>>2],h=+s[e+12>>2],s[t>>2]=o,s[(c=t+4|0)>>2]=f,s[(c=t+8|0)>>2]=a,s[(c=t+12|0)>>2]=h,u=e}function tt(i,t){i|=0;var e,n,r,o,f,a,c;r=(o=+s[(t|=0)>>2])*(2/(o*o+(n=+s[t+4>>2])*n+(c=+s[t+8>>2])*c+(f=+s[t+12>>2])*f)),e=n*(2/(o*o+n*n+c*c+f*f)),a=c*(2/(o*o+n*n+c*c+f*f)),s[i>>2]=1-(n*e+c*a),s[i+4>>2]=o*e-f*a,s[i+8>>2]=o*a+f*e,s[i+12>>2]=0,s[i+16>>2]=o*e+f*a,s[i+20>>2]=1-(o*r+c*a),s[i+24>>2]=n*a-f*r,s[i+28>>2]=0,s[i+32>>2]=o*a-f*e,s[i+36>>2]=n*a+f*r,s[i+40>>2]=1-(o*r+n*e),s[i+44>>2]=0}function et(i,t,e,n,r,o,f,a,c,h){t|=0,e|=0,n|=0,r|=0,o|=0,f|=0,a|=0,c|=0,h|=0;var l,d=0;l=u,d=i|=0;do{d=d+16|0}while((0|d)!=(i+48|0));s[i>>2]=+s[t>>2],s[i+4>>2]=+s[e>>2],s[i+8>>2]=+s[n>>2],s[i+12>>2]=0,s[i+16>>2]=+s[r>>2],s[i+20>>2]=+s[o>>2],s[i+24>>2]=+s[f>>2],s[i+28>>2]=0,s[i+32>>2]=+s[a>>2],s[i+36>>2]=+s[c>>2],s[i+40>>2]=+s[h>>2],s[i+44>>2]=0,u=l}function nt(i,t,e){i|=0,t|=0;var n,r,f,a,c,h,l,d,v=0,b=0,_=0,w=0,p=0;n=u,u=u+96|0,d=+s[(e|=0)>>2],b=+s[t>>2],l=+s[e+16>>2],_=+s[t+4>>2],h=+s[e+32>>2],p=+s[t+8>>2],s[n+80>>2]=d*b+l*_+h*p,c=+s[e+4>>2],a=+s[e+20>>2],f=+s[e+36>>2],s[n+76>>2]=c*b+a*_+f*p,r=+s[e+8>>2],v=+s[e+24>>2],w=+s[e+40>>2],s[n+72>>2]=r*b+v*_+w*p,p=+s[t+16>>2],_=+s[t+20>>2],b=+s[t+24>>2],s[n+68>>2]=d*p+l*_+h*b,s[n+64>>2]=c*p+a*_+f*b,s[n+60>>2]=r*p+v*_+w*b,b=+s[t+32>>2],_=+s[t+36>>2],p=+s[t+40>>2],s[n+56>>2]=d*b+l*_+h*p,s[n+52>>2]=c*b+a*_+f*p,s[n+48>>2]=r*b+v*_+w*p,et(n,n+80|0,n+76|0,n+72|0,n+68|0,n+64|0,n+60|0,n+56|0,n+52|0,n+48|0),p=+s[e+48>>2],w=+s[e+52>>2],_=+s[e+56>>2],v=p*+s[t>>2]+w*+s[t+4>>2]+_*+s[t+8>>2]+ +s[t+48>>2],b=p*+s[t+16>>2]+w*+s[t+20>>2]+_*+s[t+24>>2]+ +s[t+52>>2],_=p*+s[t+32>>2]+w*+s[t+36>>2]+_*+s[t+40>>2]+ +s[t+56>>2],t=i;do{t=t+16|0}while((0|t)!=(i+48|0));o[i+0>>2]=o[n+0>>2],o[i+4>>2]=o[n+4>>2],o[i+8>>2]=o[n+8>>2],o[i+12>>2]=o[n+12>>2],o[i+16>>2]=o[n+16>>2],o[i+20>>2]=o[n+20>>2],o[i+24>>2]=o[n+24>>2],o[i+28>>2]=o[n+28>>2],o[i+32>>2]=o[n+32>>2],o[i+36>>2]=o[n+36>>2],o[i+40>>2]=o[n+40>>2],o[i+44>>2]=o[n+44>>2],s[i+48>>2]=v,s[i+52>>2]=b,s[i+56>>2]=_,s[i+60>>2]=0,u=n}function rt(i,t,e,r,f){t|=0,e|=0,r|=0,f|=0;var a,c,h,l,v,w,g,C,j,S,x,M,E,T,L,I,A,D=0,O=0,R=0,P=0,N=0,B=0,F=0,V=0,U=0,G=0,W=0,z=0,X=0,$=0,H=0,q=0,K=0,Y=0,Q=0,Z=0,J=0,ii=0,ti=0,ei=0,ni=0,ri=0,oi=0,fi=0,ai=0,si=0,ci=0,ui=0,hi=0,li=0;if(a=u,u=u+272|0,s[(i|=0)+504>>2]=0,s[i+500>>2]=0,n[i+525|0]=0,n[i+526|0]=0,0|n[i+552|0]&&!(0|n[i+527|0]))return ri=(si=+s[i+556>>2])*(2/(si*si+(ti=+s[i+560>>2])*ti+(ci=+s[i+564>>2])*ci+(ei=+s[i+568>>2])*ei)),hi=ti*(2/(si*si+ti*ti+ci*ci+ei*ei)),oi=ci*(2/(si*si+ti*ti+ci*ci+ei*ei)),nt(a+208|0,t,i+300|0),nt(a+144|0,e,i+364|0),K=(1-(ti*hi+ci*oi))*(F=+s[a+144>>2])+(si*hi+ei*oi)*(U=+s[a+148>>2])+(si*oi-ei*hi)*(R=+s[a+152>>2]),Y=(si*hi-ei*oi)*F+(1-(si*ri+ci*oi))*U+(ti*oi+ei*ri)*R,Q=(si*oi+ei*hi)*F+(ti*oi-ei*ri)*U+(1-(si*ri+ti*hi))*R,Z=(1-(ti*hi+ci*oi))*(G=+s[a+160>>2])+(si*hi+ei*oi)*(W=+s[a+164>>2])+(si*oi-ei*hi)*(O=+s[a+168>>2]),J=(si*hi-ei*oi)*G+(1-(si*ri+ci*oi))*W+(ti*oi+ei*ri)*O,ii=(si*oi+ei*hi)*G+(ti*oi-ei*ri)*W+(1-(si*ri+ti*hi))*O,ai=(1-(ti*hi+ci*oi))*(z=+s[a+176>>2])+(si*hi+ei*oi)*(X=+s[a+180>>2])+(si*oi-ei*hi)*($=+s[a+184>>2]),ci=(si*hi-ei*oi)*z+(1-(si*ri+ci*oi))*X+(ti*oi+ei*ri)*$,hi=(si*oi+ei*hi)*z+(ti*oi-ei*ri)*X+(1-(si*ri+ti*hi))*$,ti=+s[a+208>>2],ri=+s[a+224>>2],si=+s[a+240>>2],ei=+s[a+212>>2],oi=+s[a+228>>2],ui=+s[a+244>>2],ni=+s[a+216>>2],fi=+s[a+232>>2],li=+s[a+248>>2],H=-+s[a+256>>2],q=-+s[a+260>>2],D=-+s[a+264>>2],R=0*F+0*U+0*R+ +s[a+192>>2]+(Q*(ni*H+fi*q+li*D)+(K*(ti*H+ri*q+si*D)+Y*(ei*H+oi*q+ui*D))),O=0*G+0*W+0*O+ +s[a+196>>2]+(ii*(ni*H+fi*q+li*D)+(Z*(ti*H+ri*q+si*D)+J*(ei*H+oi*q+ui*D))),D=0*z+0*X+0*$+ +s[a+200>>2]+(hi*(ni*H+fi*q+li*D)+(ai*(ti*H+ri*q+si*D)+ci*(ei*H+oi*q+ui*D))),s[a+80>>2]=K*ti+Y*ei+Q*ni,s[a+84>>2]=K*ri+Y*oi+Q*fi,s[a+88>>2]=K*si+Y*ui+Q*li,s[a+92>>2]=0,s[a+96>>2]=Z*ti+J*ei+ii*ni,s[a+100>>2]=Z*ri+J*oi+ii*fi,s[a+104>>2]=Z*si+J*ui+ii*li,s[a+108>>2]=0,s[a+112>>2]=ai*ti+ci*ei+hi*ni,s[a+116>>2]=ai*ri+ci*oi+hi*fi,s[a+120>>2]=ai*si+ci*ui+hi*li,s[a+124>>2]=0,s[a+128>>2]=R,s[a+132>>2]=O,s[a+136>>2]=D,s[a+140>>2]=0,it(a+80|0,a+64|0),D=+s[a+64>>2],O=+s[a+68>>2],R=+s[a+72>>2],+b(+(D*D+O*O+R*R))<1.1920928955078125e-7?void(u=a):(s[i+472>>2]=0,li=1/+_(+(D*D+O*O+R*R)),s[i+460>>2]=D*li,s[i+464>>2]=O*li,s[i+468>>2]=R*li,li=+s[a+76>>2],li=2*+y(+((li=li<-1?-1:li)>1?1:li)),s[i+504>>2]=li,+b(+li)<1.1920928955078125e-7||(n[i+526|0]=1),void(u=a));it(t,a+48|0),it(i+300|0,a+32|0),L=+s[a+60>>2],x=+s[a+32>>2],A=+s[a+48>>2],E=+s[a+44>>2],T=+s[a+52>>2],j=+s[a+40>>2],M=+s[a+56>>2],I=+s[a+36>>2],it(e,a+16|0),it(i+364|0,a),B=((F=(x*M+(E*T+L*I)-A*j)*(D=-((l=+s[a+28>>2])*(O=+s[a>>2])+(w=+s[a+16>>2])*(c=+s[a+12>>2])+(h=+s[a+20>>2])*(g=+s[a+8>>2])-(R=+s[a+24>>2])*(v=+s[a+4>>2])))+((L*j+E*M+A*I-x*T)*(l*c-O*w-h*v-g*R)+(L*E-x*A-T*I-j*M)*(C=-(l*g+c*R+w*v-O*h)))-(L*x+A*E+T*j-M*I)*(S=-(O*R+(c*h+l*v)-w*g)))+0*(H=(L*E-x*A-T*I-j*M)*(l*c-O*w-h*v-g*R)-(L*x+A*E+T*j-M*I)*D-(x*M+(E*T+L*I)-A*j)*S-(L*j+E*M+A*I-x*T)*C)-0*($=(L*x+A*E+T*j-M*I)*(l*c-O*w-h*v-g*R)+(L*E-x*A-T*I-j*M)*D+(L*j+E*M+A*I-x*T)*S-(x*M+(E*T+L*I)-A*j)*C))*-F+(H*(H+0*(X=(L*x+A*E+T*j-M*I)*C+((x*M+(E*T+L*I)-A*j)*(l*c-O*w-h*v-g*R)+(L*E-x*A-T*I-j*M)*S)-(L*j+E*M+A*I-x*T)*D)-0*F)+(P=-$-0*X-0*F)*-$)-(0*H+0*$-X)*-X,W=(0*H+0*$-X)*-$+(H*(F+0*H-0*$)+P*-X)-(H+0*X-0*F)*-F,(G=1/+_(+((P=(H+0*X-0*F)*-X+(H*(0*H+0*$-X)+P*-F)-(F+0*H-0*$)*-$)*P+(B*B+W*W))))*P*0+(G*W*0+G*B)<-.9999998807907104?+b(0)>.7071067690849304?(N=0,P=d,z=d,B=0):(N=-0,P=1,z=0,B=0):(N=1/(li=+_(2*(G*P*0+(G*W*0+G*B)+1)))*(G*P*0-G*W*0),P=1/li*(G*B*0-G*P),z=1/li*(G*W-G*B*0),B=.5*li),G=N*(q=1/+_(+(B*B+(z*z+(P*P+N*N))))),W=P*q,z*=q,B=(li=1/+_(+((H*(q*=B)-$*-G-X*-W-F*-z)*(H*q-$*-G-X*-W-F*-z)+((X*-G+(F*q+H*-z)-$*-W)*(X*-G+(F*q+H*-z)-$*-W)+((F*-W+($*q+H*-G)-X*-z)*(F*-W+($*q+H*-G)-X*-z)+($*-z+(X*q+H*-W)-F*-G)*($*-z+(X*q+H*-W)-F*-G))))))*(F*-W+($*q+H*-G)-X*-z),N=li*($*-z+(X*q+H*-W)-F*-G),P=li*(X*-G+(F*q+H*-z)-$*-W),F=li*(H*q-$*-G-X*-W-F*-z),(X=+s[i+444>>2])>=($=+s[i+456>>2])&&(U=+s[i+448>>2])>=$?(($=2*+y(+(($=q<-1?-1:q)>1?1:$)))>1.1920928955078125e-7?(q=1/+_(+(z*z+(G*G+W*W))),+b(+W*q)>1.1920928955078125e-7?(H=+_(+(z*q*z*q/(W*q*W*q)+1)/(1/(U*U)+z*q*z*q/(W*q*W*q)/(X*X))),G*=q,W*=q,z*=q):(H=X,G*=q,W*=q,z*=q)):(H=0,G=0,W=0,z=0),$>(q=H*(K=+s[i+428>>2]))&&(n[i+526|0]=1,H=$<H&K<.9999998807907104?($-q)/(H-q):1,s[i+528>>2]=H,s[i+504>>2]=$-q,+b(+W)>1.1920928955078125e-7&&(U=+b(+W*-z/W*(U/X)),z<-0||(U=-U),G*=z=1/+_(+(W*W+G*G+U*U)),W*=z,z*=-U),si=(l*c-O*w-h*v-g*R)*(ci=-z)+(l*O+w*c+h*g-R*v)*(ui=-W)-(O*R+(c*h+l*v)-w*g)*(hi=-G),ui=(li=(l*c-O*w-h*v-g*R)*ui+(l*g+c*R+w*v-O*h)*hi-(l*O+w*c+h*g-R*v)*ci)*C+((l*c-O*w-h*v-g*R)*(ai=(O*R+(c*h+l*v)-w*g)*ci+(l*c-O*w-h*v-g*R)*hi-(l*g+c*R+w*v-O*h)*ui)+(ci=-(l*O+w*c+h*g-R*v)*hi-(O*R+(c*h+l*v)-w*g)*ui-(l*g+c*R+w*v-O*h)*ci)*D)-si*S,hi=si*D+((l*c-O*w-h*v-g*R)*li+ci*S)-ai*C,li=ai*S+((l*c-O*w-h*v-g*R)*si+ci*C)-li*D,s[i+460>>2]=ui,s[i+464>>2]=hi,s[i+468>>2]=li,s[i+472>>2]=0,o[i+536>>2]=0,o[i+540>>2]=0,o[i+544>>2]=0,o[i+548>>2]=0,s[i+492>>2]=1/(ui*(+s[r>>2]*ui+ +s[r+16>>2]*hi+ +s[r+32>>2]*li)+hi*(ui*+s[r+4>>2]+hi*+s[r+20>>2]+li*+s[r+36>>2])+li*(ui*+s[r+8>>2]+hi*+s[r+24>>2]+li*+s[r+40>>2])+(ui*(ui*+s[f>>2]+hi*+s[f+16>>2]+li*+s[f+32>>2])+hi*(ui*+s[f+4>>2]+hi*+s[f+20>>2]+li*+s[f+36>>2])+li*(ui*+s[f+8>>2]+hi*+s[f+24>>2]+li*+s[f+40>>2]))))):V=23;i:do{if(23==(0|V)){U=+s[i+300>>2],H=+s[i+316>>2],X=+s[i+332>>2],Y=+s[t>>2],Q=+s[t+4>>2],K=+s[t+8>>2],z=+s[t+16>>2],W=+s[t+20>>2],G=+s[t+24>>2],q=+s[t+32>>2],$=+s[t+36>>2],ni=+s[t+40>>2],fi=+s[i+304>>2],oi=+s[i+320>>2],ri=+s[i+336>>2],ii=+s[i+308>>2],J=+s[i+324>>2],Z=+s[i+340>>2],hi=+s[i+364>>2],ui=+s[i+380>>2],ai=+s[i+396>>2],ui=(U*Y+H*Q+X*K)*(ti=hi*+s[e>>2]+ui*+s[e+4>>2]+ai*+s[e+8>>2])+(U*z+H*W+X*G)*(ei=hi*+s[e+16>>2]+ui*+s[e+20>>2]+ai*+s[e+24>>2])+(U*q+H*$+X*ni)*(ai=hi*+s[e+32>>2]+ui*+s[e+36>>2]+ai*+s[e+40>>2]),hi=(Y*fi+Q*oi+K*ri)*ti+(z*fi+W*oi+G*ri)*ei+(q*fi+$*oi+ni*ri)*ai,si=(Y*ii+Q*J+K*Z)*ti+(z*ii+W*J+G*Z)*ei+(q*ii+$*J+ni*Z)*ai,ci=+s[i+444>>2],li=+s[i+456>>2];do{if(ci<li){if((ci=+s[i+448>>2])<li){if(+b(+hi)<1.1920928955078125e-7&&+b(+si)<1.1920928955078125e-7)break i;n[i+526|0]=1,s[i+460>>2]=-((U*q+H*$+X*ni)*ei-(U*z+H*W+X*G)*ai),s[i+464>>2]=-((U*Y+H*Q+X*K)*ai-(U*q+H*$+X*ni)*ti),s[i+468>>2]=-((U*z+H*W+X*G)*ti-(U*Y+H*Q+X*K)*ei),s[i+472>>2]=0;break i}if(+b(+ui)<1.1920928955078125e-7&&+b(+si)<1.1920928955078125e-7)break;if(n[i+526|0]=1,ci>=li){if((hi=+k(+si,+ui))>ci){ui=+p(+ci),hi=0,si=+m(+ci);break}hi<-ci?(ui=+p(+ci),hi=0,si=-+m(+ci)):hi=0}}else{if(+b(+ui)<1.1920928955078125e-7&&+b(+hi)<1.1920928955078125e-7)break;if(n[i+526|0]=1,ci>=li){if((si=+k(+hi,+ui))>ci){ui=+p(+ci),hi=+m(+ci),si=0;break}si<-ci?(ui=+p(+ci),hi=-+m(+ci),si=0):si=0}}}while(0);ci=(Y*ii+Q*J+K*Z)*si+((Y*fi+Q*oi+K*ri)*hi+(U*Y+H*Q+X*K)*ui),Q=(z*ii+W*J+G*Z)*si+((z*fi+W*oi+G*ri)*hi+(U*z+H*W+X*G)*ui),hi=1/+_(+((ui=(q*ii+$*J+ni*Z)*si+((q*fi+$*oi+ni*ri)*hi+(U*q+H*$+X*ni)*ui))*ui+(ci*ci+Q*Q))),s[i+472>>2]=0,li=+_(+((ei*hi*ui-ai*hi*Q)*(ei*hi*ui-ai*hi*Q)+(ai*hi*ci-ti*hi*ui)*(ai*hi*ci-ti*hi*ui)+(ti*hi*Q-ei*hi*ci)*(ti*hi*Q-ei*hi*ci))),s[i+504>>2]=li,s[i+460>>2]=-1/li*(ei*hi*ui-ai*hi*Q),s[i+464>>2]=-1/li*(ai*hi*ci-ti*hi*ui),s[i+468>>2]=-1/li*(ti*hi*Q-ei*hi*ci)}}while(0);if(!((U=+s[i+452>>2])>=0))return s[i+512>>2]=0,void(u=a);(G=2*+y(+((G=F<-1?-1:F)>1?1:G)))>3.1415927410125732?(F=2*+y(+((F=F>1?-1:-F)>1?1:F)),B=-B,N=-N,P=-P):F=G,s[i+512>>2]=F,F>1.1920928955078125e-7&&(B*=li=1/+_(+(P*P+(N*N+B*B))),N*=li,P*=li),F>U*(W=+s[i+428>>2])&&(n[i+525|0]=1,G=F-U*W,F=F<U&W<.9999998807907104?G/(U-U*W):1,s[i+532>>2]=F,s[i+508>>2]=G,si=(l*c-O*w-h*v-g*R)*(ci=-P)+(l*O+w*c+h*g-R*v)*(ui=-N)-(O*R+(c*h+l*v)-w*g)*(hi=-B),ui=(li=(l*c-O*w-h*v-g*R)*ui+(l*g+c*R+w*v-O*h)*hi-(l*O+w*c+h*g-R*v)*ci)*C+((l*c-O*w-h*v-g*R)*(ai=(O*R+(c*h+l*v)-w*g)*ci+(l*c-O*w-h*v-g*R)*hi-(l*g+c*R+w*v-O*h)*ui)+(ci=-(l*O+w*c+h*g-R*v)*hi-(O*R+(c*h+l*v)-w*g)*ui-(l*g+c*R+w*v-O*h)*ci)*D)-si*S,hi=si*D+((l*c-O*w-h*v-g*R)*li+ci*S)-ai*C,li=ai*S+((l*c-O*w-h*v-g*R)*si+ci*C)-li*D,s[i+476>>2]=ui,s[i+480>>2]=hi,s[i+484>>2]=li,s[i+488>>2]=0,s[i+496>>2]=1/(ui*(+s[r>>2]*ui+ +s[r+16>>2]*hi+ +s[r+32>>2]*li)+hi*(ui*+s[r+4>>2]+hi*+s[r+20>>2]+li*+s[r+36>>2])+li*(ui*+s[r+8>>2]+hi*+s[r+24>>2]+li*+s[r+40>>2])+(ui*(ui*+s[f>>2]+hi*+s[f+16>>2]+li*+s[f+32>>2])+hi*(ui*+s[f+4>>2]+hi*+s[f+20>>2]+li*+s[f+36>>2])+li*(ui*+s[f+8>>2]+hi*+s[f+24>>2]+li*+s[f+40>>2])))),0|n[i+526|0]?(fi=(x*M+(E*T+L*I)-A*j)*(ci=-P)+(L*E-x*A-T*I-j*M)*(ai=-B)-(L*j+E*M+A*I-x*T)*(li=-N),hi=(L*E-x*A-T*I-j*M)*li+(L*j+E*M+A*I-x*T)*ai-(L*x+A*E+T*j-M*I)*ci,si=(L*E-x*A-T*I-j*M)*ci+(L*x+A*E+T*j-M*I)*li-(x*M+(E*T+L*I)-A*j)*ai,ci=-(L*x+A*E+T*j-M*I)*ai-(x*M+(E*T+L*I)-A*j)*li-(L*j+E*M+A*I-x*T)*ci,li=-(L*x+A*E+T*j-M*I),ai=-(x*M+(E*T+L*I)-A*j),ui=-(L*j+E*M+A*I-x*T),s[i+536>>2]=hi*ui+((L*E-x*A-T*I-j*M)*fi+ci*li)-si*ai,s[i+540>>2]=si*li+((L*E-x*A-T*I-j*M)*hi+ci*ai)-fi*ui,s[i+544>>2]=fi*ai+((L*E-x*A-T*I-j*M)*si+ci*ui)-hi*li,s[i+548>>2]=0,u=a):u=a}function ot(){var i;i=u,0|n[13048]?u=i:0|j(13048)?(s[3014]=0,s[3015]=-0,s[3016]=-1,s[3017]=0,s[3018]=.7236080169677734,s[3019]=-.5257250070571899,s[3020]=-.44721901416778564,s[3021]=0,s[3022]=-.2763879895210266,s[3023]=-.8506489992141724,s[3024]=-.44721901416778564,s[3025]=0,s[3026]=-.8944259881973267,s[3027]=-0,s[3028]=-.4472160041332245,s[3029]=0,s[3030]=-.2763879895210266,s[3031]=.8506489992141724,s[3032]=-.44721999764442444,s[3033]=0,s[3034]=.7236080169677734,s[3035]=.5257250070571899,s[3036]=-.44721901416778564,s[3037]=0,s[3038]=.2763879895210266,s[3039]=-.8506489992141724,s[3040]=.44721999764442444,s[3041]=0,s[3042]=-.7236080169677734,s[3043]=-.5257250070571899,s[3044]=.44721901416778564,s[3045]=0,s[3046]=-.7236080169677734,s[3047]=.5257250070571899,s[3048]=.44721901416778564,s[3049]=0,s[3050]=.2763879895210266,s[3051]=.8506489992141724,s[3052]=.44721901416778564,s[3053]=0,s[3054]=.8944259881973267,s[3055]=0,s[3056]=.4472160041332245,s[3057]=0,s[3058]=-0,s[3059]=0,s[3060]=1,s[3061]=0,s[3062]=.4253230094909668,s[3063]=-.3090110123157501,s[3064]=-.8506540060043335,s[3065]=0,s[3066]=-.16245600581169128,s[3067]=-.49999499320983887,s[3068]=-.8506540060043335,s[3069]=0,s[3070]=.2628690004348755,s[3071]=-.8090119957923889,s[3072]=-.525738000869751,s[3073]=0,s[3074]=.4253230094909668,s[3075]=.3090110123157501,s[3076]=-.8506540060043335,s[3077]=0,s[3078]=.8506479859352112,s[3079]=-0,s[3080]=-.5257359743118286,s[3081]=0,s[3082]=-.5257300138473511,s[3083]=-0,s[3084]=-.8506519794464111,s[3085]=0,s[3086]=-.6881899833679199,s[3087]=-.49999698996543884,s[3088]=-.5257359743118286,s[3089]=0,s[3090]=-.16245600581169128,s[3091]=.49999499320983887,s[3092]=-.8506540060043335,s[3093]=0,s[3094]=-.6881899833679199,s[3095]=.49999698996543884,s[3096]=-.5257359743118286,s[3097]=0,s[3098]=.2628690004348755,s[3099]=.8090119957923889,s[3100]=-.525738000869751,s[3101]=0,s[3102]=.9510579705238342,s[3103]=.3090130090713501,s[3104]=0,s[3105]=0,s[3106]=.9510579705238342,s[3107]=-.3090130090713501,s[3108]=0,s[3109]=0,s[3110]=.5877860188484192,s[3111]=-.80901700258255,s[3112]=0,s[3113]=0,s[3114]=0,s[3115]=-1,s[3116]=0,s[3117]=0,s[3118]=-.5877860188484192,s[3119]=-.80901700258255,s[3120]=0,s[3121]=0,s[3122]=-.9510579705238342,s[3123]=-.3090130090713501,s[3124]=-0,s[3125]=0,s[3126]=-.9510579705238342,s[3127]=.3090130090713501,s[3128]=-0,s[3129]=0,s[3130]=-.5877860188484192,s[3131]=.80901700258255,s[3132]=-0,s[3133]=0,s[3134]=-0,s[3135]=1,s[3136]=-0,s[3137]=0,s[3138]=.5877860188484192,s[3139]=.80901700258255,s[3140]=-0,s[3141]=0,s[3142]=.6881899833679199,s[3143]=-.49999698996543884,s[3144]=.5257359743118286,s[3145]=0,s[3146]=-.2628690004348755,s[3147]=-.8090119957923889,s[3148]=.525738000869751,s[3149]=0,s[3150]=-.8506479859352112,s[3151]=0,s[3152]=.5257359743118286,s[3153]=0,s[3154]=-.2628690004348755,s[3155]=.8090119957923889,s[3156]=.525738000869751,s[3157]=0,s[3158]=.6881899833679199,s[3159]=.49999698996543884,s[3160]=.5257359743118286,s[3161]=0,s[3162]=.5257300138473511,s[3163]=0,s[3164]=.8506519794464111,s[3165]=0,s[3166]=.16245600581169128,s[3167]=-.49999499320983887,s[3168]=.8506540060043335,s[3169]=0,s[3170]=-.4253230094909668,s[3171]=-.3090110123157501,s[3172]=.8506540060043335,s[3173]=0,s[3174]=-.4253230094909668,s[3175]=.3090110123157501,s[3176]=.8506540060043335,s[3177]=0,s[3178]=.16245600581169128,s[3179]=.49999499320983887,s[3180]=.8506540060043335,s[3181]=0,x(13048),u=i):u=i}function ft(i,t,e,f,a){t|=0,e|=0,f|=0,a|=0;var c,h=0,l=0,d=0,v=0,b=0,_=0,w=0,p=0,m=0,y=0,k=0,g=0,C=0,j=0;if(c=u,u=u+176|0,n[(i|=0)+60|0]=1&e,e){if(m=+s[f>>2]-1,w=+s[f+4>>2]-1,p=+s[f+8>>2]-1,s[i+4>>2]=m,s[i+8>>2]=w,s[i+12>>2]=p,s[i+16>>2]=0,b=+s[a>>2]+1,d=+s[a+4>>2]+1,l=+s[a+8>>2]+1,s[i+20>>2]=b,s[i+24>>2]=d,s[i+28>>2]=l,s[i+32>>2]=0,s[i+36>>2]=65533/(b-m),s[i+40>>2]=65533/(d-w),s[i+44>>2]=65533/(l-p),s[i+48>>2]=0,n[i+60|0]=1,v=w+ +(65534&65533/(d-w)*(w-w))/(65533/(d-w))+-1,_=p+ +(65534&65533/(l-p)*(p-p))/(65533/(l-p))+-1,(h=m+ +(65534&65533/(b-m)*(m-m))/(65533/(b-m))+-1)<m?s[i+4>>2]=h:h=m,v<w?s[i+8>>2]=v:v=w,_<p?s[i+12>>2]=_:_=p,y=h+ +(65535&65533/(b-m)*(b-h)+1|1)/(65533/(b-m))+1,m=v+ +(65535&65533/(d-w)*(d-v)+1|1)/(65533/(d-w))+1,w=_+ +(65535&65533/(l-p)*(l-_)+1|1)/(65533/(l-p))+1,b<y&&(s[i+20>>2]=y,b=y),d<m&&(s[i+24>>2]=m,d=m),l<w&&(s[i+28>>2]=w,l=w),s[i+36>>2]=65533/(b-h),s[i+40>>2]=65533/(d-v),s[i+44>>2]=65533/(l-_),s[i+48>>2]=0,o[c+152>>2]=13584,o[c+156>>2]=i+104,o[c+160>>2]=i,Vn[63&o[8+(0|o[t>>2])>>2]](t,c+152|0,i+4|0,i+20|0),t=0|o[i+108>>2],o[c+136>>2]=0,o[c+140>>2]=0,o[c+144>>2]=0,o[c+148>>2]=0,(0|(a=0|o[i+128>>2]))<t<<1){if((0|o[i+132>>2])<t<<1){if(0|t?(o[4546]=1+(0|o[4546]),0|(f=0|ye(t<<5|19))?(o[(f+19&-16)-4>>2]=f,e=f+19&-16):e=0,f=0|o[i+128>>2]):(f=a,e=0),(0|f)>0){k=0;do{j=e+(k<<4)|0,C=(0|o[i+136>>2])+(k<<4)|0,o[j+0>>2]=o[C+0>>2],o[j+4>>2]=o[C+4>>2],o[j+8>>2]=o[C+8>>2],o[j+12>>2]=o[C+12>>2],k=k+1|0}while((0|k)!=(0|f))}0|(f=0|o[i+136>>2])&&(0|n[i+140|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[f+-4>>2])),o[i+136>>2]=0),n[i+140|0]=1,o[i+136>>2]=e,o[i+132>>2]=t<<1,f=i+136|0}else f=i+136|0;do{j=(0|o[f>>2])+(a<<4)|0,o[j+0>>2]=o[c+136>>2],o[j+4>>2]=o[c+140>>2],o[j+8>>2]=o[c+144>>2],o[j+12>>2]=o[c+148>>2],a=a+1|0}while((0|a)!=t<<1)}o[i+128>>2]=t<<1}else{o[c+128>>2]=13448,o[c+132>>2]=i+64,s[c+112>>2]=-0xde0b6b000000000,s[c+116>>2]=-0xde0b6b000000000,s[c+120>>2]=-0xde0b6b000000000,s[c+124>>2]=0,s[c+96>>2]=0xde0b6b000000000,s[c+100>>2]=0xde0b6b000000000,s[c+104>>2]=0xde0b6b000000000,s[c+108>>2]=0,Vn[63&o[8+(0|o[t>>2])>>2]](t,c+128|0,c+112|0,c+96|0),t=0|o[i+68>>2],k=(e=c+32|0)+64|0;do{o[e>>2]=0,e=e+4|0}while((0|e)<(0|k));if((0|(a=0|o[i+88>>2]))<t<<1){if((0|o[i+92>>2])<t<<1){if(0|t?(o[4546]=1+(0|o[4546]),0|(f=0|ye(t<<7|19))?(o[(f+19&-16)-4>>2]=f,g=f+19&-16):g=0,C=0|o[i+88>>2]):(C=a,g=0),(0|C)>0){j=0;do{e=g+(j<<6)+0|0,f=(0|o[i+96>>2])+(j<<6)+0|0,k=e+64|0;do{o[e>>2]=o[f>>2],e=e+4|0,f=f+4|0}while((0|e)<(0|k));j=j+1|0}while((0|j)!=(0|C))}0|(f=0|o[i+96>>2])&&(0|n[i+100|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[f+-4>>2])),o[i+96>>2]=0),n[i+100|0]=1,o[i+96>>2]=g,o[i+92>>2]=t<<1,g=i+96|0}else g=i+96|0;do{f=c+32|0,k=(e=(0|o[g>>2])+(a<<6)+0|0)+64|0;do{o[e>>2]=o[f>>2],e=e+4|0,f=f+4|0}while((0|e)<(0|k));a=a+1|0}while((0|a)!=t<<1)}o[i+88>>2]=t<<1}if(o[i+56>>2]=0,X(i,0,t),0|n[i+60|0]&&!(0|o[i+152>>2])){if(0|o[i+156>>2])a=1,t=0|o[i+160>>2];else{if(o[4546]=1+(0|o[4546]),0|(t=0|ye(51))?(o[(t+19&-16)-4>>2]=t,t=t+19&-16):t=0,(0|(f=0|o[i+152>>2]))>0){a=0;do{j=t+(a<<5)|0,C=(0|o[i+160>>2])+(a<<5)|0,o[j+0>>2]=o[C+0>>2],o[j+4>>2]=o[C+4>>2],o[j+8>>2]=o[C+8>>2],o[j+12>>2]=o[C+12>>2],o[j+16>>2]=o[C+16>>2],o[j+20>>2]=o[C+20>>2],o[j+24>>2]=o[C+24>>2],o[j+28>>2]=o[C+28>>2],a=a+1|0}while((0|a)!=(0|f))}0|(a=0|o[i+160>>2])&&(0|n[i+164|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[a+-4>>2])),o[i+160>>2]=0),n[i+164|0]=1,o[i+160>>2]=t,o[i+156>>2]=1,a=1+(0|o[i+152>>2])|0}o[i+152>>2]=a,o[t+0>>2]=o[c+0>>2],o[t+4>>2]=o[c+4>>2],o[t+8>>2]=o[c+8>>2],o[t+12>>2]=o[c+12>>2],o[t+16>>2]=o[c+16>>2],o[t+20>>2]=o[c+20>>2],o[t+24>>2]=o[c+24>>2],o[t+28>>2]=o[c+28>>2],j=0|o[i+160>>2],C=0|o[i+136>>2],r[j>>1]=0|r[C>>1],r[j+2>>1]=0|r[C+2>>1],r[j+4>>1]=0|r[C+4>>1],r[j+6>>1]=0|r[C+6>>1],r[j+8>>1]=0|r[C+8>>1],r[j+10>>1]=0|r[C+10>>1],o[j+12>>2]=0,C=0|o[C+12>>2],o[j+16>>2]=(0|C)>-1?1:0-C|0}if(o[i+168>>2]=o[i+152>>2],0|(t=0|o[i+116>>2])&&(0|n[i+120|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[t+-4>>2])),o[i+116>>2]=0),n[i+120|0]=1,o[i+116>>2]=0,o[i+108>>2]=0,o[i+112>>2]=0,!(0|(t=0|o[i+76>>2])))return n[i+80|0]=1,o[i+76>>2]=0,o[i+68>>2]=0,o[(j=i+72|0)>>2]=0,void(u=c);0|n[i+80|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[t+-4>>2])),o[i+76>>2]=0,n[i+80|0]=1,o[i+76>>2]=0,o[i+68>>2]=0,o[(j=i+72|0)>>2]=0,u=c}function at(i){var t,e=0,r=0,f=0,a=0;if(t=u,o[(i|=0)>>2]=13760,n[i+20|0]=1,o[i+16>>2]=0,o[i+8>>2]=0,o[i+12>>2]=0,o[i+24>>2]=0,n[i+28|0]=0,n[i+48|0]=1,o[i+44>>2]=0,o[i+36>>2]=0,o[i+40>>2]=0,n[i+68|0]=1,o[i+64>>2]=0,o[i+56>>2]=0,o[i+60>>2]=0,o[i+72>>2]=0,o[4546]=1+(0|o[4546]),0|(e=0|ye(51))?(o[(e+19&-16)-4>>2]=e,e=e+19&-16):e=0,(0|(r=0|o[i+8>>2]))>0){f=0;do{a=0|o[i+16>>2],o[e+(f<<4)>>2]=o[a+(f<<4)>>2],o[e+(f<<4)+4>>2]=o[a+(f<<4)+4>>2],o[e+(f<<4)+8>>2]=o[a+(f<<4)+8>>2],o[e+(f<<4)+12>>2]=o[a+(f<<4)+12>>2],f=f+1|0}while((0|f)!=(0|r))}if(!(0|(r=0|o[i+16>>2])))return n[i+20|0]=1,o[i+16>>2]=e,o[i+12>>2]=2,st(i),void(u=t);0|n[i+20|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[r+-4>>2])),o[i+16>>2]=0,n[i+20|0]=1,o[i+16>>2]=e,o[i+12>>2]=2,st(i),u=t}function st(i){var t,e,r=0,f=0,a=0,s=0,c=0,h=0;if(e=u,r=0|o[(i|=0)+12>>2],(0|(t=0|o[i+36>>2]))>=(0|r))u=e;else{if((0|t)<=(0|r)){if((0|o[i+40>>2])<(0|r)){if(0|r?(o[4546]=1+(0|o[4546]),0|(f=0|ye(16+(r<<2|3)|0))?(o[(f+19&-16)-4>>2]=f,f=f+19&-16):f=0,a=0|o[i+36>>2]):(a=t,f=0),(0|a)>0){s=0;do{0|(c=f+(s<<2)|0)&&(o[c>>2]=o[(0|o[i+44>>2])+(s<<2)>>2]),s=s+1|0}while((0|s)!=(0|a))}0|(a=0|o[i+44>>2])&&(0|n[i+48|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[a+-4>>2])),o[i+44>>2]=0),n[i+48|0]=1,o[i+44>>2]=f,o[i+40>>2]=r}else f=0|o[i+44>>2];a=t;do{0|(s=f+(a<<2)|0)&&(o[s>>2]=0),a=a+1|0}while((0|a)!=(0|r))}if(o[i+36>>2]=r,(0|(f=0|o[i+56>>2]))<(0|r)){if((0|o[i+60>>2])<(0|r)){if(0|r?(o[4546]=1+(0|o[4546]),0|(a=0|ye(16+(r<<2|3)|0))?(o[(a+19&-16)-4>>2]=a,s=a+19&-16):s=0,a=0|o[i+56>>2]):(a=f,s=0),(0|a)>0){h=0;do{0|(c=s+(h<<2)|0)&&(o[c>>2]=o[(0|o[i+64>>2])+(h<<2)>>2]),h=h+1|0}while((0|h)!=(0|a))}0|(a=0|o[i+64>>2])&&(0|n[i+68|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[a+-4>>2])),o[i+64>>2]=0),n[i+68|0]=1,o[i+64>>2]=s,o[i+60>>2]=r}else s=0|o[i+64>>2];do{0|(a=s+(f<<2)|0)&&(o[a>>2]=0),f=f+1|0}while((0|f)!=(0|r))}if(o[i+56>>2]=r,(0|r)>0&&(Ce(0|o[i+44>>2],-1,r<<2),Ce(0|o[i+64>>2],-1,r<<2)),(0|t)<=0)u=e;else{a=0|o[i+16>>2],f=0|o[i+44>>2],r=0|o[i+64>>2],s=0;do{h=f+(((((h=9*((h=o[12+(0|o[a+(s<<4)+4>>2])>>2]<<16|o[12+(0|o[a+(s<<4)>>2])>>2])+~(h<<15)>>10^h+~(h<<15))|0)>>6^h)+~((h>>6^h)<<11)>>16^(h>>6^h)+~((h>>6^h)<<11))&(0|o[i+12>>2])-1)<<2)|0,o[r+(s<<2)>>2]=o[h>>2],o[h>>2]=s,s=s+1|0}while((0|s)!=(0|t));u=e}}}function ct(i){var t,e=0;if(t=u,o[(i|=0)>>2]=13760,0|(e=0|o[i+64>>2])&&(0|n[i+68|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+64>>2]=0),n[i+68|0]=1,o[i+64>>2]=0,o[i+56>>2]=0,o[i+60>>2]=0,0|(e=0|o[i+44>>2])&&(0|n[i+48|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+44>>2]=0),n[i+48|0]=1,o[i+44>>2]=0,o[i+36>>2]=0,o[i+40>>2]=0,!(0|(e=0|o[i+16>>2])))return n[i+20|0]=1,o[i+16>>2]=0,o[i+8>>2]=0,o[(e=i+12|0)>>2]=0,void(u=t);0|n[i+20|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+16>>2]=0,n[i+20|0]=1,o[i+16>>2]=0,o[i+8>>2]=0,o[(e=i+12|0)>>2]=0,u=t}function ut(i,t){t|=0;var e,n=0,r=0,f=0,a=0,c=0,h=0,l=0,d=0,v=0,_=0,w=0,p=0,m=0,y=0,k=0,g=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0,L=0,I=0;return e=u,4!=(0|(r=0|o[(i|=0)+748>>2]))?(o[i+748>>2]=r+1,Se(0|(f=i+(184*(j=(f=(0|(j=r))<0)?0:j)|0)+4|0),0|t,184),u=e,0|j):(n=+s[t+80>>2],S=(x=+s[i+84>>2])<n?x:n,g=(C=+s[i+268>>2])<S?C:S,k=+s[i+452>>2],j=(f=+s[i+636>>2]<(k<g?k:g))?3:k<g?2:C<S?1:(x<n^1)<<31>>31,n=+s[t>>2],0|j?(m=+s[i+188>>2],l=+s[t+4>>2],y=+s[i+192>>2],w=+s[t+8>>2],h=+s[i+196>>2],C=+s[i+556>>2],_=+s[i+372>>2],p=((n-m)*((S=+s[i+560>>2])-(k=+s[i+376>>2]))-(l-y)*(C-_))*((n-m)*(S-k)-(l-y)*(C-_))+(((l-y)*((v=+s[i+564>>2])-(g=+s[i+380>>2]))-(w-h)*(S-k))*((l-y)*(v-g)-(w-h)*(S-k))+((w-h)*(C-_)-(n-m)*(v-g))*((w-h)*(C-_)-(n-m)*(v-g))),1==(0|j)?(c=+s[i+4>>2],a=+s[i+8>>2],d=+s[i+12>>2],x=v,v=0,r=7):(x=v,r=6)):(m=+s[i+188>>2],y=+s[i+192>>2],h=+s[i+196>>2],l=+s[t+4>>2],w=+s[t+8>>2],_=+s[i+372>>2],C=+s[i+556>>2],k=+s[i+376>>2],S=+s[i+560>>2],g=+s[i+380>>2],x=+s[i+564>>2],p=0,r=6),6==(0|r)&&(v=((n-(c=+s[i+4>>2]))*(T=S-k)-(L=l-(a=+s[i+8>>2]))*(M=C-_))*((n-c)*T-L*M)+((L*(v=x-g)-(E=w-(d=+s[i+12>>2]))*T)*(L*v-E*T)+(E*M-(n-c)*v)*(E*M-(n-c)*v)),2==(0|j)?(C=0,r=8):r=7),7==(0|r)&&(C=((L=n-c)*(M=S-y)-(I=l-a)*(T=C-m))*(L*M-I*T)+((I*(C=x-h)-(E=w-d)*M)*(I*C-E*M)+(E*T-L*C)*(E*T-L*C)),f?n=0:r=8),8==(0|r)&&(n=((I=n-c)*(E=k-y)-(M=l-a)*(L=_-m))*(I*E-M*L)+((M*(n=g-h)-(T=w-d)*E)*(M*n-T*E)+(T*L-I*n)*(T*L-I*n))),I=+b(+p),T=+b(+v),M=+b(+C),Se(0|(f=i+(184*(j=(f=(0|(j=(x=+b(+n))>(M>(E=T>(L=I>-0xde0b6b000000000?I:-0xde0b6b000000000)?T:L)?M:E)?3:M>E?2:T>L?1:(I>-0xde0b6b000000000^1)<<31>>31))<0)?0:j)|0)+4|0),0|t,184),u=e,0|j)}function ht(i,t,e){t|=0,e|=0;var r,f=0,a=0,c=0,h=0,l=0,d=0,v=0,b=0,_=0,w=0;if(r=u,(0|(f=0|o[(i|=0)+748>>2]))<=0)u=r;else{do{_=+s[i+(184*(f=f+-1|0)|0)+4>>2],w=+s[i+(184*f|0)+8>>2],a=+s[i+(184*f|0)+12>>2],b=_*+s[t>>2]+w*+s[t+4>>2]+a*+s[t+8>>2]+ +s[t+48>>2],d=_*+s[t+16>>2]+w*+s[t+20>>2]+a*+s[t+24>>2]+ +s[t+52>>2],a=_*+s[t+32>>2]+w*+s[t+36>>2]+a*+s[t+40>>2]+ +s[t+56>>2],s[i+(184*f|0)+52>>2]=b,s[i+(184*f|0)+56>>2]=d,s[i+(184*f|0)+60>>2]=a,s[i+(184*f|0)+64>>2]=0,w=+s[i+(184*f|0)+20>>2],_=+s[i+(184*f|0)+24>>2],c=+s[i+(184*f|0)+28>>2],v=w*+s[e>>2]+_*+s[e+4>>2]+c*+s[e+8>>2]+ +s[e+48>>2],l=w*+s[e+16>>2]+_*+s[e+20>>2]+c*+s[e+24>>2]+ +s[e+52>>2],c=w*+s[e+32>>2]+_*+s[e+36>>2]+c*+s[e+40>>2]+ +s[e+56>>2],s[i+(184*f|0)+36>>2]=v,s[i+(184*f|0)+40>>2]=l,s[i+(184*f|0)+44>>2]=c,s[i+(184*f|0)+48>>2]=0,s[i+(184*f|0)+84>>2]=(b-v)*+s[i+(184*f|0)+68>>2]+(d-l)*+s[i+(184*f|0)+72>>2]+(a-c)*+s[i+(184*f|0)+76>>2],o[(h=i+(184*f|0)+152|0)>>2]=1+(0|o[h>>2])}while((0|f)>0);if((0|(t=0|o[i+748>>2]))<=0)u=r;else{e=t;do{f=i+(184*(t=t+-1|0)|0)+4|0,(c=+s[i+(184*t|0)+84>>2])<=(a=+s[i+752>>2])?(b=+s[i+(184*t|0)+36>>2]-(+s[i+(184*t|0)+52>>2]-+s[i+(184*t|0)+68>>2]*c))*b+(_=+s[i+(184*t|0)+40>>2]-(+s[i+(184*t|0)+56>>2]-c*+s[i+(184*t|0)+72>>2]))*_+(w=+s[i+(184*t|0)+44>>2]-(+s[i+(184*t|0)+60>>2]-c*+s[i+(184*t|0)+76>>2]))*w>a*a&&((0|(h=e+-1|0))!=(0|t)&&(Se(0|f,i+(184*h|0)+4|0,184),o[i+(184*h|0)+116>>2]=0,s[i+(184*h|0)+124>>2]=0,n[i+(184*h|0)+120|0]=0,s[i+(184*h|0)+128>>2]=0,s[i+(184*h|0)+132>>2]=0,o[i+(184*h|0)+152>>2]=0,e=0|o[i+748>>2]),e=e+-1|0,o[i+748>>2]=e):((0|(h=e+-1|0))!=(0|t)&&(Se(0|f,i+(184*h|0)+4|0,184),o[i+(184*h|0)+116>>2]=0,s[i+(184*h|0)+124>>2]=0,n[i+(184*h|0)+120|0]=0,s[i+(184*h|0)+128>>2]=0,s[i+(184*h|0)+132>>2]=0,o[i+(184*h|0)+152>>2]=0,e=0|o[i+748>>2]),e=e+-1|0,o[i+748>>2]=e)}while((0|t)>0);u=r}}}function lt(i,t){t|=0;var e,r=0,f=0,a=0,s=0,c=0,h=0,l=0,d=0;if(e=u,(0|o[(i|=0)+8>>2])>=(0|t))u=e;else{if(0|t&&(o[4546]=1+(0|o[4546]),0|(r=0|ye(16+(36*t|3)|0)))?(o[(r+19&-16)-4>>2]=r,r=r+19&-16):r=0,(0|(s=0|o[i+4>>2]))>0){a=0;do{0|(f=r+(36*a|0)|0)&&(dt(f,(d=0|o[i+12>>2])+(36*a|0)|0),d=d+(36*a|0)+20|0,o[f+20>>2]=o[d+0>>2],o[f+24>>2]=o[d+4>>2],o[f+28>>2]=o[d+8>>2],o[f+32>>2]=o[d+12>>2]),a=a+1|0}while((0|a)!=(0|s));if((0|(d=0|o[i+4>>2]))>0){l=0;do{a=(h=0|o[i+12>>2])+(36*l|0)+4|0,c=h+(36*l|0)+16|0,0|(f=0|o[(s=h+(36*l|0)+12|0)>>2])&&(0|n[c|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[f+-4>>2])),o[s>>2]=0),n[c|0]=1,o[s>>2]=0,o[a>>2]=0,o[h+(36*l|0)+8>>2]=0,l=l+1|0}while((0|l)!=(0|d));f=i+12|0}else f=i+12|0}else f=i+12|0;0|(a=0|o[f>>2])&&(0|n[i+16|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[a+-4>>2])),o[f>>2]=0),n[i+16|0]=1,o[f>>2]=r,o[i+8>>2]=t,u=e}}function dt(i,t){t|=0;var e,r,f=0,a=0,s=0,c=0;if(r=u,n[(i|=0)+16|0]=1,o[i+12>>2]=0,o[i+4>>2]=0,o[i+8>>2]=0,(0|(e=0|o[t+4>>2]))<=0)return o[i+4>>2]=e,void(u=r);if(o[4546]=1+(0|o[4546]),0|(f=0|ye(16+(e<<2|3)|0))?(o[(f+19&-16)-4>>2]=f,f=f+19&-16):f=0,(0|(s=0|o[i+4>>2]))>0){a=0;do{0|(c=f+(a<<2)|0)&&(o[c>>2]=o[(0|o[i+12>>2])+(a<<2)>>2]),a=a+1|0}while((0|a)!=(0|s))}0|(a=0|o[i+12>>2])&&(0|n[i+16|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[a+-4>>2])),o[i+12>>2]=0),n[i+16|0]=1,o[i+12>>2]=f,o[i+8>>2]=e,a=0;do{0|(s=f+(a<<2)|0)&&(o[s>>2]=0),a=a+1|0}while((0|a)!=(0|e));o[i+4>>2]=e,i=0;do{0|(a=f+(i<<2)|0)&&(o[a>>2]=o[(0|o[t+12>>2])+(i<<2)>>2]),i=i+1|0}while((0|i)!=(0|e));u=r}function vt(i,t,e,n){t|=0,e|=0,n|=0;var r,f,a,c,h,l,d=0,v=0,b=0,_=0,w=0,p=0,m=0,y=0,k=0,g=0;for(r=u,u=u+32|0,d=0|o[(i|=0)+12>>2],f=+s[d+(24*((n+e|0)/2|0)|0)>>2],a=+s[d+(24*((n+e|0)/2|0)|0)+4>>2],c=+s[d+(24*((n+e|0)/2|0)|0)+8>>2],l=+s[d+(24*((n+e|0)/2|0)|0)+16>>2],h=0|o[d+(24*((n+e|0)/2|0)|0)+20>>2],v=e,b=n;;){i:for(;;){_=+s[d+(24*v|0)+16>>2];do{if(_==l){if(p=+s[t>>2],k=+s[d+(24*v|0)>>2]-p,w=+s[t+4>>2],y=+s[d+(24*v|0)+4>>2]-w,_=+s[t+8>>2],k*k+y*y+(m=+s[d+(24*v|0)+8>>2]-_)*m!=(f-p)*(f-p)+(a-w)*(a-w)+(c-_)*(c-_)){if(k*k+y*y+m*m<(f-p)*(f-p)+(a-w)*(a-w)+(c-_)*(c-_))break;break i}if((0|o[d+(24*v|0)+20>>2])<(0|h))break;break i}if(!(_<l))break i}while(0);v=v+1|0}i:for(;;){_=+s[d+(24*b|0)+16>>2];do{if(l==_){if((f-(w=+s[t>>2]))*(f-w)+(a-(m=+s[t+4>>2]))*(a-m)+(c-(_=+s[t+8>>2]))*(c-_)!=(p=+s[d+(24*b|0)>>2]-w)*p+(y=+s[d+(24*b|0)+4>>2]-m)*y+(k=+s[d+(24*b|0)+8>>2]-_)*k){if((f-w)*(f-w)+(a-m)*(a-m)+(c-_)*(c-_)<p*p+y*y+k*k)break;break i}if((0|h)<(0|o[d+(24*b|0)+20>>2]))break;break i}if(!(l<_))break i}while(0);b=b+-1|0}if((0|v)<=(0|b)&&(g=d+(24*v|0)|0,o[r+0>>2]=o[g+0>>2],o[r+4>>2]=o[g+4>>2],o[r+8>>2]=o[g+8>>2],o[r+12>>2]=o[g+12>>2],o[r+16>>2]=o[g+16>>2],o[r+20>>2]=o[g+20>>2],d=d+(24*b|0)|0,o[g+0>>2]=o[d+0>>2],o[g+4>>2]=o[d+4>>2],o[g+8>>2]=o[d+8>>2],o[g+12>>2]=o[d+12>>2],o[g+16>>2]=o[d+16>>2],o[g+20>>2]=o[d+20>>2],d=(0|o[i+12>>2])+(24*b|0)|0,o[d+0>>2]=o[r+0>>2],o[d+4>>2]=o[r+4>>2],o[d+8>>2]=o[r+8>>2],o[d+12>>2]=o[r+12>>2],o[d+16>>2]=o[r+16>>2],o[d+20>>2]=o[r+20>>2],v=v+1|0,b=b+-1|0),(0|v)>(0|b))break;d=0|o[i+12>>2]}(0|b)>(0|e)&&vt(i,t,e,b),(0|v)>=(0|n)||vt(i,t,v,n),u=r}function bt(i,t,e,n,r,o,f){t=+t,n=+n,r|=0,f|=0;var a,c,h,l,d,v,b,w=0,y=0;a=u,u=u+16|0,e=(e=+e)*(o=+o)+ +s[(i|=0)+52>>2],n=n*o+ +s[i+56>>2],s[f+48>>2]=t*o+ +s[i+48>>2],s[f+52>>2]=e,s[f+56>>2]=n,s[f+60>>2]=0,n=+s[r>>2],t=+s[r+4>>2],e=+s[r+8>>2],(w=+_(+(n*n+t*t+e*e)))*o>.7853981852531433&&(w=.7853981852531433/o),l=(y=w<.0010000000474974513?.5*o-w*o*o*o*.02083333395421505*w:+m(.5*w*o)/w)*n,t*=y,e*=y,v=+p(+w*o*.5),it(i,a),h=+s[a>>2],d=+s[a+12>>2],o=+s[a+8>>2],y=+s[a+4>>2],w=(b=1/+_(+((v*d-l*h-t*y-e*o)*(v*d-l*h-t*y-e*o)+((e*d+v*o+l*y-t*h)*(e*d+v*o+l*y-t*h)+((v*h+l*d+t*o-e*y)*(v*h+l*d+t*o-e*y)+(e*h+(t*d+v*y)-l*o)*(e*h+(t*d+v*y)-l*o))))))*(e*h+(t*d+v*y)-l*o),c=b*(e*d+v*o+l*y-t*h),e=(n=(v*h+l*d+t*o-e*y)*b)*(2/((o=b*(v*d-l*h-t*y-e*o))*o+(c*c+(n*n+w*w)))),y=2/(o*o+(c*c+(n*n+w*w)))*w,t=2/(o*o+(c*c+(n*n+w*w)))*c,s[f>>2]=1-(c*t+w*y),s[f+4>>2]=n*y-o*t,s[f+8>>2]=n*t+o*y,s[f+12>>2]=0,s[f+16>>2]=o*t+n*y,s[f+20>>2]=1-(n*e+c*t),s[f+24>>2]=w*t-o*e,s[f+28>>2]=0,s[f+32>>2]=n*t-o*y,s[f+36>>2]=o*e+w*t,s[f+40>>2]=1-(n*e+w*y),s[f+44>>2]=0,u=a}function _t(i,t,e,n){i|=0,t|=0,n=+n;var r,o,f=0,a=0,c=0,u=0,h=0;r=+p(+(e=+e)),e=+m(+e),f=+s[t+444>>2],+b(+r)>1.1920928955078125e-7?(u=+s[t+448>>2],a=e*e,c=r*r,f=+_(+(e*e/(r*r)+1)/(1/(u*u)+e*e/(r*r)/(f*f)))):(a=e*e,c=r*r),u=+m(+(h=.5*f))/+_(+(c+0+a)),o=(h=+p(+h))*n+r*u*0-e*u*-0,c=0*h-e*u*n-0*u*0,f=0*h+0*u*0-r*u*n,a=-0*u*n-r*u*0-e*u*-0,s[i>>2]=e*u*c+(h*o+a*(-0*u))-f*(-r*u),s[i+4>>2]=f*(-0*u)+(h*c+a*(-r*u))-e*u*o,s[i+8>>2]=o*(-r*u)+(h*f+e*u*a)-c*(-0*u),s[i+12>>2]=0}function wt(i,t,e,n){t|=0,e|=0,n|=0;var r,o,f,a,c,h,l,d,v,b,w,p,m,k,g=0,C=0,j=0,S=0,x=0,M=0;return r=u,u=u+64|0,g=+s[(i|=0)+20>>2],v=+s[i+40>>2],a=+s[i+24>>2],l=+s[i+36>>2],d=+s[i+32>>2],C=+s[i+16>>2],o=1/((g*v-a*l)*(x=+s[i>>2])+(j=+s[i+4>>2])*(a*d-v*C)+(l*C-g*d)*(c=+s[i+8>>2])),M=+s[t>>2],k=+s[t+4>>2],m=+s[t+8>>2],p=+s[t+16>>2],w=+s[t+20>>2],b=+s[t+24>>2],h=+s[t+32>>2],f=+s[t+36>>2],S=+s[t+40>>2],s[r+16>>2]=(g*v-a*l)*o*M+(a*d-v*C)*o*k+(l*C-g*d)*o*m,s[r+20>>2]=M*o*(l*c-v*j)+k*o*(v*x-d*c)+o*(d*j-l*x)*m,s[r+24>>2]=M*o*(a*j-g*c)+k*o*(C*c-a*x)+o*(g*x-C*j)*m,s[r+28>>2]=0,s[r+32>>2]=(g*v-a*l)*o*p+(a*d-v*C)*o*w+(l*C-g*d)*o*b,s[r+36>>2]=o*(l*c-v*j)*p+o*(v*x-d*c)*w+o*(d*j-l*x)*b,s[r+40>>2]=o*(a*j-g*c)*p+o*(C*c-a*x)*w+o*(g*x-C*j)*b,s[r+44>>2]=0,s[r+48>>2]=(g*v-a*l)*o*h+(a*d-v*C)*o*f+(l*C-g*d)*o*S,s[r+52>>2]=o*(l*c-v*j)*h+o*(v*x-d*c)*f+o*(d*j-l*x)*S,s[r+56>>2]=o*(a*j-g*c)*h+o*(C*c-a*x)*f+o*(g*x-C*j)*S,s[r+60>>2]=0,it(r+16|0,r),S=+s[r>>2],j=+s[r+4>>2],C=+s[r+8>>2],x=+s[r+12>>2],g=1/+_(+(S*S+j*j+C*C+x*x)),s[r>>2]=S*g,s[r+4>>2]=j*g,s[r+8>>2]=C*g,s[r+12>>2]=x*g,x=x*g<-1?-1:x*g,s[n>>2]=2*+y(+(x>1?1:x)),s[e>>2]=S*g,s[e+4>>2]=j*g,s[e+8>>2]=C*g,s[e+12>>2]=0,S*g*S*g+j*g*j*g+C*g*C*g<14210854715202004e-30?(s[e>>2]=1,s[e+4>>2]=0,s[e+8>>2]=0,s[e+12>>2]=0,void(u=r)):(M=1/+_(+(S*g*S*g+j*g*j*g+C*g*C*g)),s[e>>2]=S*g*M,s[e+4>>2]=M*j*g,s[e+8>>2]=M*C*g,void(u=r))}function pt(i,t,e,n,r,f,a,c,h,l){t|=0,e|=0,n|=0,r|=0,f|=0,a|=0,c=+c,h|=0,l=+l;var d,v,b,_,w,p,m=0,y=0,k=0,g=0,C=0,j=0,S=0;d=u,o[(i|=0)+0>>2]=o[f+0>>2],o[i+4>>2]=o[f+4>>2],o[i+8>>2]=o[f+8>>2],o[i+12>>2]=o[f+12>>2],g=+s[n+4>>2],k=+s[i+8>>2],y=+s[n+8>>2],j=+s[i+4>>2],m=+s[i>>2],S=+s[n>>2],p=(g*k-y*j)*+s[t>>2]+ +s[t+4>>2]*(y*m-k*S)+(j*S-g*m)*+s[t+8>>2],w=(g*k-y*j)*+s[t+16>>2]+(y*m-k*S)*+s[t+20>>2]+(j*S-g*m)*+s[t+24>>2],g=(g*k-y*j)*+s[t+32>>2]+(y*m-k*S)*+s[t+36>>2]+(j*S-g*m)*+s[t+40>>2],s[i+16>>2]=p,s[i+20>>2]=w,s[i+24>>2]=g,s[i+28>>2]=0,S=+s[r+4>>2],y=+s[r+8>>2],C=+s[r>>2],_=+s[e>>2]*(S*-k-y*-j)+ +s[e+4>>2]*(y*-m-C*-k)+(C*-j-S*-m)*+s[e+8>>2],b=(S*-k-y*-j)*+s[e+16>>2]+(y*-m-C*-k)*+s[e+20>>2]+(C*-j-S*-m)*+s[e+24>>2],m=(S*-k-y*-j)*+s[e+32>>2]+(y*-m-C*-k)*+s[e+36>>2]+(C*-j-S*-m)*+s[e+40>>2],s[i+32>>2]=_,s[i+36>>2]=b,s[i+40>>2]=m,s[i+44>>2]=0,S=+s[a>>2]*p,j=+s[a+4>>2]*w,C=+s[a+8>>2]*g,s[i+48>>2]=S,s[i+52>>2]=j,s[i+56>>2]=C,s[i+60>>2]=0,k=+s[h>>2]*_,y=+s[h+4>>2]*b,v=+s[h+8>>2]*m,s[i+64>>2]=k,s[i+68>>2]=y,s[i+72>>2]=v,s[i+76>>2]=0,s[i+80>>2]=S*p+j*w+C*g+c+l+(k*_+y*b+v*m),u=d}function mt(i){var t,e=0,r=0,f=0;if(t=u,o[(i|=0)>>2]=1128,0|n[i+272|0]&&(f=0|o[i+204>>2],nn[255&o[o[f>>2]>>2]](f),0|(f=0|o[i+204>>2]))&&(o[4548]=1+(0|o[4548]),ke(0|o[f+-4>>2])),0|(f=0|o[i+196>>2])&&(nn[255&o[o[f>>2]>>2]](f),0|(r=0|o[i+196>>2]))&&(o[4548]=1+(0|o[4548]),ke(0|o[r+-4>>2])),0|n[i+273|0]&&(e=0|o[i+200>>2],nn[255&o[o[e>>2]>>2]](e),0|(e=0|o[i+200>>2]))&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),0|(e=0|o[i+316>>2])&&(0|n[i+320|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+316>>2]=0),n[i+320|0]=1,o[i+316>>2]=0,o[i+308>>2]=0,o[i+312>>2]=0,0|(e=0|o[i+288>>2])&&(0|n[i+292|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+288>>2]=0),n[i+292|0]=1,o[i+288>>2]=0,o[i+280>>2]=0,o[i+284>>2]=0,0|(e=0|o[i+240>>2])&&(0|n[i+244|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+240>>2]=0),n[i+244|0]=1,o[i+240>>2]=0,o[i+232>>2]=0,o[i+236>>2]=0,0|(e=0|o[i+220>>2])&&(0|n[i+224|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+220>>2]=0),n[i+224|0]=1,o[i+220>>2]=0,o[i+212>>2]=0,o[i+216>>2]=0,!(0|(e=0|o[i+188>>2])))return n[i+192|0]=1,o[i+188>>2]=0,o[i+180>>2]=0,o[(f=i+184|0)>>2]=0,Bi(i),void(u=t);0|n[i+192|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+188>>2]=0,n[i+192|0]=1,o[i+188>>2]=0,o[i+180>>2]=0,o[(f=i+184|0)>>2]=0,Bi(i),u=t}function yt(i){var t,e,r,f,a=0,s=0,c=0,h=0;if(t=u,s=0|(a=0|o[(i|=0)+32>>2])?0|o[i+40>>2]:0,c=0|(e=0|o[i+52>>2])?0|o[i+60>>2]:0,h=0|(r=0|o[i+72>>2])?0|o[i+80>>2]:0,f=0|o[i+8>>2],Mn[3&o[12+(0|o[f>>2])>>2]](f,s,a,c,e,h,r,0|o[i+4>>2],0|o[i+20>>2],0|o[i+24>>2]),(0|(a=0|o[i+32>>2]))<0){(0|o[i+36>>2])<0&&(0|(s=0|o[i+40>>2])&&(0|n[i+44|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[s+-4>>2])),o[i+40>>2]=0),n[i+44|0]=1,o[i+40>>2]=0,o[i+36>>2]=0);do{0|(s=(0|o[i+40>>2])+(a<<2)|0)&&(o[s>>2]=0),a=a+1|0}while(0|a)}if(o[i+32>>2]=0,(0|(a=0|o[i+52>>2]))<0){(0|o[i+56>>2])<0&&(0|(s=0|o[i+60>>2])&&(0|n[i+64|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[s+-4>>2])),o[i+60>>2]=0),n[i+64|0]=1,o[i+60>>2]=0,o[i+56>>2]=0);do{0|(s=(0|o[i+60>>2])+(a<<2)|0)&&(o[s>>2]=0),a=a+1|0}while(0|a)}if(o[i+52>>2]=0,(0|(a=0|o[i+72>>2]))>=0)return o[i+72>>2]=0,void(u=t);(0|o[i+76>>2])<0?(0|(s=0|o[i+80>>2])&&(0|n[i+84|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[s+-4>>2])),o[i+80>>2]=0),n[i+84|0]=1,o[i+80>>2]=0,o[i+76>>2]=0,s=a):s=a;do{0|(a=(0|o[i+80>>2])+(s<<2)|0)&&(o[a>>2]=0),s=s+1|0}while(0|s);o[i+72>>2]=0,u=t}function kt(i,t,e,r,f,a,c){i|=0,t|=0,e|=0,r|=0,f=+f,a=+a,c|=0;var h,l=0,d=0,v=0,b=0,_=0,w=0,p=0,m=0,y=0,k=0,g=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0,L=0,I=0,A=0,D=0,O=0,R=0,P=0,N=0,B=0,F=0,V=0,U=0,G=0,W=0,z=0,X=0,$=0,H=0,q=0,K=0,Y=0,Q=0,Z=0,J=0,ii=0,ti=0,ei=0,ni=0;if(h=u,u=u+64|0,n[h+48|0]=1,o[h+44>>2]=0,o[h+36>>2]=0,o[h+40>>2]=0,(0|(l=0|o[r+4>>2]))>0?(o[4546]=1+(0|o[4546]),0|(d=0|ye(16+(l<<4|3)|0))?(o[(d+19&-16)-4>>2]=d,k=d+19&-16):k=0,n[h+48|0]=1,o[h+44>>2]=k,o[h+40>>2]=l):k=0,(0|(y=0|o[t+28>>2]))>0){for(d=0|o[t+36>>2],A=+s[e>>2],O=+s[e+4>>2],V=+s[e+8>>2],U=+s[e+16>>2],T=+s[e+20>>2],E=+s[e+24>>2],M=+s[e+32>>2],x=+s[e+36>>2],S=+s[e+40>>2],H=+s[i>>2],G=+s[i+4>>2],X=+s[i+8>>2],l=-1,$=34028234663852886e22,m=0;l=(w=((z=+s[d+(36*m|0)+20>>2])*A+(L=+s[d+(36*m|0)+24>>2])*O+(Y=+s[d+(36*m|0)+28>>2])*V)*H+(z*U+L*T+Y*E)*G+(z*M+L*x+Y*S)*X<$)?m:l,!((0|(m=m+1|0))>=(0|y));)$=w?(z*A+L*O+Y*V)*H+(z*U+L*T+Y*E)*G+(z*M+L*x+Y*S)*X:$;if((0|l)>=0){if((0|(k=0|o[d+(36*l|0)+4>>2]))>0)for(g=d+(36*l|0)+12|0,y=d+(36*l|0)+20|0,m=d+(36*l|0)+24|0,w=d+(36*l|0)+28|0,G=T,z=E,X=M,$=x,H=S,C=0,j=r,r=h+32|0;;){if(I=0|o[g>>2],Q=0|o[I+(C<<2)>>2],D=0|o[t+16>>2],I=0|o[I+(((0|(C=C+1|0))==(0|k)?0:C)<<2)>>2],M=(ii=(J=+s[D+(Q<<4)>>2])-+s[D+(I<<4)>>2])*A+(ti=(Z=+s[D+(Q<<4)+4>>2])-+s[D+(I<<4)+4>>2])*O+(E=(Y=+s[D+(Q<<4)+8>>2])-+s[D+(I<<4)+8>>2])*V,x=ii*U+ti*G+E*z,E=ii*X+ti*$+E*H,L=A*(ti=+s[y>>2])+O*(ii=+s[m>>2])+V*(S=+s[w>>2]),T=U*ti+G*ii+z*S,S=X*ti+$*ii+H*S,O=(J*A+Z*O+Y*V+ +s[e+48>>2])*-(x*S-E*T)+(J*U+Z*G+Y*z+ +s[e+52>>2])*-(E*L-M*S)+(J*X+Z*$+Y*H+ +s[e+56>>2])*-(M*T-x*L),(0|(D=0|o[(I=j+4|0)>>2]))>=2){for(q=0|o[(F=j+12|0)>>2],P=r+4|0,B=r+8|0,R=r+12|0,N=r+16|0,Y=(X=+s[q+(D+-1<<4)>>2])*-(x*S-E*T)+($=+s[q+(D+-1<<4)+4>>2])*-(E*L-M*S)+(H=+s[q+(D+-1<<4)+8>>2])*-(M*T-x*L)-O,W=0;;){A=+s[q+(W<<4)>>2],U=+s[q+(W<<4)+4>>2],G=+s[q+(W<<4)+8>>2],z=+s[q+(W<<4)+12>>2],V=A*-(x*S-E*T)+U*-(E*L-M*S)+G*-(M*T-x*L)-O;do{if(Y<0){if(V<0){if((0|(q=0|o[P>>2]))==(0|o[B>>2])&&(0|q)<(0|(p=0|q?q<<1:1))){if(0|p?(o[4546]=1+(0|o[4546]),0|(q=0|ye(16+(p<<4|3)|0))?(o[(q+19&-16)-4>>2]=q,K=q+19&-16):K=0,q=0|o[P>>2]):K=0,(0|q)>0){Q=0;do{ei=K+(Q<<4)|0,ni=(0|o[R>>2])+(Q<<4)|0,o[ei+0>>2]=o[ni+0>>2],o[ei+4>>2]=o[ni+4>>2],o[ei+8>>2]=o[ni+8>>2],o[ei+12>>2]=o[ni+12>>2],Q=Q+1|0}while((0|Q)!=(0|q))}0|(q=0|o[R>>2])&&(0|n[N|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[q+-4>>2])),o[R>>2]=0),n[N|0]=1,o[R>>2]=K,o[B>>2]=p,q=0|o[P>>2]}ni=0|o[R>>2],s[ni+(q<<4)>>2]=A,s[ni+(q<<4)+4>>2]=U,s[ni+(q<<4)+8>>2]=G,s[ni+(q<<4)+12>>2]=z,o[P>>2]=1+(0|o[P>>2]);break}if(z=X+(A-X)*(ti=Y/(Y-V)),X=$+(U-$)*ti,$=H+(G-H)*ti,(0|(K=0|o[P>>2]))==(0|o[B>>2])&&(0|K)<(0|(b=0|K?K<<1:1))){if(0|b?(o[4546]=1+(0|o[4546]),0|(q=0|ye(16+(b<<4|3)|0))?(o[(q+19&-16)-4>>2]=q,q=q+19&-16):q=0,K=0|o[P>>2]):q=0,(0|K)>0){Q=0;do{ni=q+(Q<<4)|0,ei=(0|o[R>>2])+(Q<<4)|0,o[ni+0>>2]=o[ei+0>>2],o[ni+4>>2]=o[ei+4>>2],o[ni+8>>2]=o[ei+8>>2],o[ni+12>>2]=o[ei+12>>2],Q=Q+1|0}while((0|Q)!=(0|K))}0|(K=0|o[R>>2])&&(0|n[N|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[K+-4>>2])),o[R>>2]=0),n[N|0]=1,o[R>>2]=q,o[B>>2]=b,K=0|o[P>>2]}ni=0|o[R>>2],s[ni+(K<<4)>>2]=z,s[ni+(K<<4)+4>>2]=X,s[ni+(K<<4)+8>>2]=$,s[ni+(K<<4)+12>>2]=0,o[P>>2]=1+(0|o[P>>2]);break}if(V<0){if(X+=(A-X)*(ti=Y/(Y-V)),$+=(U-$)*ti,H+=(G-H)*ti,(0|(q=0|o[P>>2]))==(0|o[B>>2])&&(0|q)<(0|(v=0|q?q<<1:1))){if(0|v?(o[4546]=1+(0|o[4546]),0|(q=0|ye(16+(v<<4|3)|0))?(o[(q+19&-16)-4>>2]=q,K=q+19&-16):K=0,q=0|o[P>>2]):K=0,(0|q)>0){Q=0;do{ni=K+(Q<<4)|0,ei=(0|o[R>>2])+(Q<<4)|0,o[ni+0>>2]=o[ei+0>>2],o[ni+4>>2]=o[ei+4>>2],o[ni+8>>2]=o[ei+8>>2],o[ni+12>>2]=o[ei+12>>2],Q=Q+1|0}while((0|Q)!=(0|q))}0|(q=0|o[R>>2])&&(0|n[N|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[q+-4>>2])),o[R>>2]=0),n[N|0]=1,o[R>>2]=K,o[B>>2]=v,q=0|o[P>>2]}if(K=0|o[R>>2],s[K+(q<<4)>>2]=X,s[K+(q<<4)+4>>2]=$,s[K+(q<<4)+8>>2]=H,s[K+(q<<4)+12>>2]=0,K=1+(0|o[P>>2])|0,o[P>>2]=K,(0|K)==(0|o[B>>2])&&(0|K)<(0|(_=0|K?K<<1:1))){if(0|_?(o[4546]=1+(0|o[4546]),0|(q=0|ye(16+(_<<4|3)|0))?(o[(q+19&-16)-4>>2]=q,q=q+19&-16):q=0,K=0|o[P>>2]):q=0,(0|K)>0){Q=0;do{ni=q+(Q<<4)|0,ei=(0|o[R>>2])+(Q<<4)|0,o[ni+0>>2]=o[ei+0>>2],o[ni+4>>2]=o[ei+4>>2],o[ni+8>>2]=o[ei+8>>2],o[ni+12>>2]=o[ei+12>>2],Q=Q+1|0}while((0|Q)!=(0|K))}0|(K=0|o[R>>2])&&(0|n[N|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[K+-4>>2])),o[R>>2]=0),n[N|0]=1,o[R>>2]=q,o[B>>2]=_,K=0|o[P>>2]}ni=0|o[R>>2],s[ni+(K<<4)>>2]=A,s[ni+(K<<4)+4>>2]=U,s[ni+(K<<4)+8>>2]=G,s[ni+(K<<4)+12>>2]=z,o[P>>2]=1+(0|o[P>>2])}}while(0);if((0|(W=W+1|0))==(0|D))break;q=0|o[F>>2],Y=V,X=A,$=U,H=G}D=0|o[I>>2]}if((0|D)<0){R=j+12|0,(0|o[(B=j+8|0)>>2])<0&&(N=j+16|0,0|(P=0|o[R>>2])&&(0|n[N|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[P+-4>>2])),o[R>>2]=0),n[N|0]=1,o[R>>2]=0,o[B>>2]=0);do{ni=(0|o[R>>2])+(D<<4)|0,o[ni+0>>2]=o[h+16>>2],o[ni+4>>2]=o[h+20>>2],o[ni+8>>2]=o[h+24>>2],o[ni+12>>2]=o[h+28>>2],D=D+1|0}while(0|D)}if(o[I>>2]=0,A=+s[e>>2],O=+s[e+4>>2],V=+s[e+8>>2],U=+s[e+16>>2],T=+s[e+20>>2],E=+s[e+24>>2],M=+s[e+32>>2],x=+s[e+36>>2],S=+s[e+40>>2],(0|C)>=(0|k)){t=e+56|0,v=e+48|0,e=e+52|0;break}ni=r,G=T,z=E,X=M,$=x,H=S,r=j,j=ni}else t=e+56|0,v=e+48|0,e=e+52|0,y=d+(36*l|0)+20|0,m=d+(36*l|0)+24|0,w=d+(36*l|0)+28|0;if(L=(J=+s[y>>2])*A+(ii=+s[m>>2])*O+(ti=+s[w>>2])*V,E=J*U+ii*T+ti*E,S=J*M+ii*x+ti*S,x=+s[d+(36*l|0)+32>>2]-(L*+s[v>>2]+E*+s[e>>2]+S*+s[t>>2]),(0|(v=0|o[(l=r+4|0)>>2]))>0){d=r+12|0,e=0;do{ni=0|o[d>>2],(M=(M=x+(L*+s[(t=ni+(e<<4)|0)>>2]+E*+s[ni+(e<<4)+4>>2]+S*+s[ni+(e<<4)+8>>2]))<=f?f:M)<=a&&(o[h+0>>2]=o[t+0>>2],o[h+4>>2]=o[t+4>>2],o[h+8>>2]=o[t+8>>2],o[h+12>>2]=o[t+12>>2],Rn[15&o[16+(0|o[c>>2])>>2]](c,i,h,M),v=0|o[l>>2]),e=e+1|0}while((0|e)<(0|v))}k=0|o[h+44>>2]}}0|k?(0|n[h+48|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[k+-4>>2])),o[h+44>>2]=0,u=h):u=h}function gt(i,t,e,n,r,f){i|=0,t|=0,e|=0,n|=0,r|=0;var a,s=0,c=0,h=0,l=0,d=0,b=0,_=0;return a=u,(0|(s=0|o[(f|=0)+16>>2]))!=(0|r)?(u=a,0|(h=r-s|0)):0|r?(h=0|o[f+8>>2],d=0|o[f+12>>2],c=0|Ee(0|h,0,0|i,0),s=v,_=0|Ee(0|d,0,0|i,0),l=v,h=0|Ee(0|h,0,0|t,0),i=v,d=0|Ee(0|d,0,0|t,0),b=v,t=0|je(0|_,0,0|h,0),h=v,b=0|je(0|l,0,0|d,0|b),i=0|je(0|b,0|v,0|i,0),h=0|je(0|i,0|v,0|h,0),i=v,s=0|je(0,0|t,0|c,0|s),t=0|je(0|h,0|i,1&((c=v)>>>0<t>>>0|(0|c)==(0|t)&s>>>0<0),0),i=v,h=0|o[f>>2],b=0|o[f+4>>2],d=0|Ee(0|h,0,0|e,0),f=v,l=0|Ee(0|b,0,0|e,0),_=v,h=0|Ee(0|h,0,0|n,0),e=v,b=0|Ee(0|b,0,0|n,0),n=v,h=0|je(0|l,0,0|h,0),l=v,n=0|je(0|_,0,0|b,0|n),n=0|je(0|n,0|v,0|e,0),l=0|je(0|n,0|v,0|l,0),n=v,f=0|je(0,0|h,0|d,0|f),h=0|je(0|l,0|n,1&((e=v)>>>0<h>>>0|(0|e)==(0|h)&f>>>0<0),0),_=0|g(i=i>>>0<(n=v)>>>0|(0|i)==(0|n)&t>>>0<h>>>0?-1:i>>>0>n>>>0|(0|i)==(0|n)&t>>>0>h>>>0?1:c>>>0<e>>>0|(0|c)==(0|e)&s>>>0<f>>>0?-1:1&(c>>>0>e>>>0|(0|c)==(0|e)&s>>>0>f>>>0),r),u=a,0|_):(u=a,0|(h=0))}function Ct(i){var t,e=0,n=0,r=0,f=0,a=0;if(t=u,0|(n=0|o[(i|=0)+8>>2]))o[i+8>>2]=o[n>>2];else{if(0|(f=0|o[i+4>>2])?o[i+4>>2]=o[f+8>>2]:(o[4546]=1+(0|o[4546]),0|(n=0|ye(31))&&(o[(e=n+19&-16)+-4>>2]=n,n+19&-16)?(f=0|o[i+12>>2],o[e+4>>2]=f,o[e+8>>2]=0,o[4546]=1+(0|o[4546]),0|(e=0|ye(16+(24*f|3)|0))?(o[(e+19&-16)-4>>2]=e,e=e+19&-16):e=0,o[(n+19&-16)>>2]=e,f=n+19&-16):f=0,o[f+8>>2]=o[i>>2],o[i>>2]=f),(0|(r=0|o[f+4>>2]))>0){e=0,n=0|o[f>>2];do{e=e+1|0,a=n,n=n+24|0,o[a>>2]=(0|e)<(0|r)?n:0}while((0|e)!=(0|r))}if(n=0|o[f>>2],o[i+8>>2]=o[n>>2],!(0|n))return u=t,0|(a=0)}return o[n+0>>2]=0,o[n+4>>2]=0,o[n+8>>2]=0,o[n+12>>2]=0,o[n+16>>2]=0,o[n+20>>2]=0,u=t,0|(a=n)}function jt(i,t,e,n){i|=0,t|=0,e|=0,n|=0;var r,f=0,a=0,s=0,c=0,h=0,l=0,d=0,b=0,_=0,w=0,p=0,m=0,y=0,k=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0,L=0,I=0,A=0,D=0,O=0,R=0,P=0;r=u,u=u+144|0;do{if(2==(e-t|0)){if(f=0|o[(0|o[i+92>>2])+(t<<2)>>2],a=0|o[f+88>>2],c=0|o[f+200>>2],h=0|o[f+92>>2],d=0|o[f+204>>2],(0|a)==(0|c)){if((0|h)==(0|d)){if((0|o[f+96>>2])==(0|o[f+208>>2]))break;l=h}else l=d;(0|h)==(0|l)?(P=(0|o[f+96>>2])>(0|o[f+208>>2]),o[(a=P?f+112|0:f)>>2]=a,o[a+4>>2]=a,o[n>>2]=a,o[n+4>>2]=a,o[n+8>>2]=a,o[n+12>>2]=a,f=P?f:f+112|0):(d=0,s=9)}else l=d,d=(0|h)==(0|d),s=9;do{if(9==(0|s)){if(s=h-l|0,o[f>>2]=f+112,o[f+4>>2]=f+112,o[f+112>>2]=f,o[f+116>>2]=f,(a-c|0)>=0&&!((0|a)==(0|c)&(0|s)<0)?(o[n>>2]=f+112,o[n+4>>2]=f):(o[n>>2]=f,o[n+4>>2]=f+112),(0|s)<0|d&(a-c|0)<0){o[n+8>>2]=f,o[n+12>>2]=f+112,a=f,f=f+112|0;break}o[n+8>>2]=f+112,o[n+12>>2]=f,a=f,f=f+112|0;break}}while(0);return s=0|Ct(i+48|0),c=0|Ct(i+48|0),o[s+8>>2]=c,o[c+8>>2]=s,o[s+20>>2]=o[i+100>>2],o[c+20>>2]=o[i+100>>2],o[s+12>>2]=f,o[c+12>>2]=a,o[s+16>>2]=0,o[c+16>>2]=0,c=0|o[i+116>>2],o[i+116>>2]=c+1,(0|c)>=(0|o[i+120>>2])&&(o[i+120>>2]=c+1),o[s>>2]=s,o[s+4>>2]=s,o[a+8>>2]=s,P=0|o[s+8>>2],o[P>>2]=P,o[P+4>>2]=P,o[f+8>>2]=P,void(u=r)}if(!(e-t|0))return o[n+0>>2]=0,o[n+4>>2]=0,o[n+8>>2]=0,o[n+12>>2]=0,void(u=r);if(1!=(e-t|0)){c=((e-t|0)/2|0)+t|0,y=0|o[i+92>>2],S=0|o[y+(c+-1<<2)>>2],M=0|o[S+88>>2],k=0|o[S+92>>2],S=0|o[S+96>>2];i:do{if((0|c)<(0|e))for(j=c;;){if(C=0|o[y+(j<<2)>>2],(0|o[C+88>>2])!=(0|M))break i;if((0|o[C+92>>2])!=(0|k))break i;if(x=j+1|0,(0|o[C+96>>2])!=(0|S))break i;if(!((0|x)<(0|e))){j=x;break}j=x}else j=c}while(0);if(jt(i,t,c,n),o[r+96>>2]=0,o[r+100>>2]=0,o[r+104>>2]=0,o[r+108>>2]=0,jt(i,j,e,r+96|0),!(0|(C=0|o[(t=r+100|0)>>2])))return void(u=r);if(!(0|o[n+4>>2]))return o[n+0>>2]=o[r+96>>2],o[n+4>>2]=o[r+100>>2],o[n+8>>2]=o[r+104>>2],o[n+12>>2]=o[r+108>>2],void(u=r);o[i+100>>2]=(0|o[i+100>>2])-1,c=0|o[n+12>>2],e=0|o[r+104>>2],k=0|o[c+88>>2];i:do{if((0|k)==(0|o[e+88>>2])&&(0|o[c+92>>2])==(0|o[e+92>>2])){if((0|(y=0|o[e+4>>2]))==(0|e)){0|(n=0|o[e+8>>2])&&(e=0|o[n+12>>2],k=0|o[e+88>>2]),n=e,S=k+1|0,j=0|o[e+96>>2];break}s=0|o[e>>2],o[y>>2]=s,o[s+4>>2]=y;t:do{if((0|e)==(0|o[r+96>>2])){k=0|o[s+88>>2],c=0|o[y+88>>2];do{if((0|k)>=(0|c)){if((0|k)==(0|c)&&(0|o[s+92>>2])<(0|o[y+92>>2]))break;o[r+96>>2]=y;break t}}while(0);o[r+96>>2]=s}}while(0);if((0|e)==(0|(C=0|o[t>>2]))){e=0|o[s+88>>2],c=0|o[y+88>>2];do{if((0|e)<=(0|c)){if((0|e)==(0|c)&&(0|o[s+92>>2])>(0|o[y+92>>2]))break;o[t>>2]=y,C=y,s=45;break i}}while(0);o[t>>2]=s,C=s,s=45}else s=45}else s=45}while(0);if(45==(0|s)){e=0|o[r+96>>2],k=0,y=1,j=n+4|0,c=0,s=0;i:for(;;)for(M=0|o[j>>2];;){j=0|o[M+88>>2],x=0|g((0|o[C+88>>2])-j|0,y);t:do{if((0|x)<=0){if((0|x)>=0){E=0|o[M+92>>2],S=!!(0|k);e:do{if(S)for(x=M,T=E;;){if((0|(E=0|o[x>>2]))==(0|M)){M=x;break e}if((0|o[E+88>>2])!=(0|j)){M=x;break e}if(P=T,(0|(T=0|o[E+92>>2]))>(0|P)){M=x;break}x=E}else for(x=M;;){if((0|(T=0|o[x+4>>2]))==(0|M)){M=x;break e}if((0|o[T+88>>2])!=(0|j)){M=x;break e}if(P=E,(0|(E=0|o[T+92>>2]))>(0|P)){M=x;break}x=T}}while(0);if(x=0|o[C+92>>2],S)for(S=C;;){if((0|(E=0|o[S+4>>2]))==(0|C))break t;if((0|o[E+88>>2])!=(0|j))break t;if(P=x,(0|(x=0|o[E+92>>2]))<(0|P))break t;S=E}else for(S=C;;){if((0|(E=0|o[S>>2]))==(0|C))break t;if((0|o[E+88>>2])!=(0|j))break t;if(P=x,(0|(x=0|o[E+92>>2]))<(0|P))break t;S=E}}if(j=0|o[C+92>>2],L=0|o[M+92>>2],0|k)for(;;){for(T=(0|(S=0|o[C+4>>2]))==(0|C),E=C+88|0,A=L;;){if(D=M+88|0,I=j-A|0,!T&&(b=0|o[S+88>>2],m=0|g(b-(0|o[E>>2])|0,y),(0|(l=(d=0|o[S+92>>2])-j|0))>-1)){if(!(0|m))break;if((0|m)<0&&(0|g(l,x))<=(0|g(m,I)))break}if((0|(L=0|o[M+4>>2]))==(0|M)){S=C;break t}if(P=0|o[L+88>>2],D=0|g(P-(0|o[D>>2])|0,y),R=(O=0|o[L+92>>2])-A|0,A=x,!((0|(x=0|g((0|o[E>>2])-P|0,y)))<0&(0|R)>0)){S=C;break t}if(0|D){if((0|D)>=0){S=C;break t}if((0|g(R,A))>=(0|g(D,I))){S=C;break t}A=O,M=L}else A=O,M=L}L=A,j=d,x=0|g(b-(0|o[D>>2])|0,y),C=S}else for(;;){for(S=(0|(T=0|o[C>>2]))==(0|C),E=C+88|0;;){if(D=M+88|0,I=j-L|0,!S&&(p=0|o[T+88>>2],_=0|g(p-(0|o[E>>2])|0,y),(0|(h=(w=0|o[T+92>>2])-j|0))>-1)){if(!(0|_))break;if((0|_)<0&&(0|g(h,x))<=(0|g(_,I)))break}if((0|(A=0|o[M>>2]))==(0|M)){S=C;break t}if(P=0|o[A+88>>2],O=0|g(P-(0|o[D>>2])|0,y),L=(D=0|o[A+92>>2])-L|0,R=x,!((0|(x=0|g((0|o[E>>2])-P|0,y)))<0&(0|L)>0)){S=C;break t}if(0|O){if((0|O)>=0){S=C;break t}if((0|g(L,R))>=(0|g(O,I))){S=C;break t}L=D,M=A}else L=D,M=A}j=w,x=0|g(p-(0|o[D>>2])|0,y),C=T}}else for(S=!!(0|k),j=0|o[C+92>>2],L=M;;){M=C+88|0,A=L+88|0,D=j-(T=0|o[L+92>>2])|0,E=0|o[(S?L:L+4)>>2];e:do{if((0|E)==(0|L))T=x,E=L;else for(I=x;;){if(O=0|o[E+88>>2],P=0|g(O-(0|o[A>>2])|0,y),R=T,(0|(R=(T=0|o[E+92>>2])-R|0))>=1){T=I,E=L;break e}if(0|P){if((0|P)>=0){T=I,E=L;break e}if((0|g(R,I))>(0|g(P,D))){T=I,E=L;break e}}if(I=0|g((0|o[M>>2])-O|0,y),A=E+88|0,D=j-T|0,(0|(L=0|o[(S?E:E+4)>>2]))==(0|E)){T=I;break}P=E,E=L,L=P}}while(0);if((0|(I=0|o[(S?C:C+4)>>2]))==(0|C)){M=E,S=C;break t}if(x=0|o[I+88>>2],L=0|g(x-(0|o[M>>2])|0,y),M=j,M=(j=0|o[I+92>>2])-M|0,!((0|(x=0|g(x-(0|o[A>>2])|0,y)))>0&(0|M)<0)){M=E,S=C;break t}if(0|L){if((0|L)>=0){M=E,S=C;break t}if((0|g(M,T))>=(0|g(L,D))){M=E,S=C;break}L=E,C=I}else L=E,C=I}}while(0);if(!(0|k)){k=1,y=-1,j=n,c=M,C=e,s=S;continue i}if(2==(0|(k=k+1|0)))break i;C=S}if(o[M+4>>2]=S,o[S>>2]=M,o[c>>2]=s,o[s+4>>2]=c,h=0|o[r+96>>2],(0|o[h+88>>2])<(0|o[88+(0|o[n>>2])>>2])&&(o[n>>2]=h),h=0|o[t>>2],(0|o[h+88>>2])>=(0|o[88+(0|o[n+4>>2])>>2])&&(o[n+4>>2]=h),o[n+12>>2]=o[r+108>>2],m=0|o[s+88>>2],S=0|o[c+88>>2],l=(((b=0|o[s+92>>2])-(h=0|o[c+92>>2])|0)<0)<<31>>31,t=0|Ee((n=0|o[s+96>>2])-(j=0|o[c+96>>2])|0,((n-j|0)<0)<<31>>31,0|(t=0|ge(0,0,0|(w=0-(m-S)|0),((0|w)<0)<<31>>31)),0|v),y=v,d=0|Ee(n-j|0,((n-j|0)<0)<<31>>31,b-h|0,0|l),_=v,p=0|ge(0|(x=0|Ee(m-S|0,((m-S|0)<0)<<31>>31,0|w,((0|w)<0)<<31>>31)),0|(e=v),0|(p=0|Ee(b-h|0,0|l,b-h|0,0|l)),0|v),e=v,x=0|o[c+8>>2],o[r+140>>2]=0,0|x){C=0|ge(0,0,b-h|0,0|l),k=v,E=0,M=x;do{T=0|o[M+12>>2],I=0|o[T+88>>2],A=0|o[T+92>>2],T=0|o[T+96>>2],O=0|Ee(A-h|0,((A-h|0)<0)<<31>>31,0|w,((0|w)<0)<<31>>31),P=v,R=0|Ee(I-S|0,((I-S|0)<0)<<31>>31,0|C,0|k);do{if((0|O)==(0|R)&(0|P)==(0|v)&&(R=0|Ee(I-S|0,((I-S|0)<0)<<31>>31,0|t,0|y),O=v,O=0|je(0|(P=0|Ee(A-h|0,((A-h|0)<0)<<31>>31,0|d,0|_)),0|v,0|R,0|O),P=0|je(0|O,0|(R=v),0|(P=0|Ee(T-j|0,((T-j|0)<0)<<31>>31,0|p,0|e)),0|v),(0|(R=v))>0|!(0|R)&P>>>0>0)){if(0|E){if(L=(0|o[E+4>>2])==(0|M),(0|o[E>>2])==(0|M)){if(!L)break;O=0|o[E+12>>2],D=0|o[12+(0|o[M+8>>2])>>2],P=0|o[D+88>>2],R=0|o[D+92>>2],D=0|o[D+96>>2],L=(0|o[O+96>>2])-D|0,R=(0|g(T-D|0,(0|o[O+92>>2])-R|0))-(0|g(L,A-R|0))|0,T=(0|g(L,I-P|0))-(0|g(T-D|0,(0|o[O+88>>2])-P|0))|0,T=0|je(0|(R=0|Ee(0|R,((0|R)<0)<<31>>31,b-h|0,0|l)),0|(P=v),0|(T=0|Ee(0|T,((0|T)<0)<<31>>31,0|w,((0|w)<0)<<31>>31)),0|v),T=(0|(P=v))>0|!(0|P)&T>>>0>0?2:1}else T=1&L;if(1!=(0|T))break}o[r+140>>2]=M,E=M}}while(0);M=0|o[M>>2]}while((0|M)!=(0|x))}else E=0;if(j=0|o[s+8>>2],o[r+136>>2]=0,0|j){k=0|ge(0,0,b-h|0,0|l),S=v,L=0,C=j;do{T=0|o[C+12>>2],M=0|o[T+88>>2],x=0|o[T+92>>2],T=0|o[T+96>>2],O=0|Ee(x-b|0,((x-b|0)<0)<<31>>31,0|w,((0|w)<0)<<31>>31),P=v,R=0|Ee(M-m|0,((M-m|0)<0)<<31>>31,0|k,0|S);do{if((0|O)==(0|R)&(0|P)==(0|v)&&(R=0|Ee(M-m|0,((M-m|0)<0)<<31>>31,0|t,0|y),O=v,O=0|je(0|(P=0|Ee(x-b|0,((x-b|0)<0)<<31>>31,0|d,0|_)),0|v,0|R,0|O),P=0|je(0|O,0|(R=v),0|(P=0|Ee(T-n|0,((T-n|0)<0)<<31>>31,0|p,0|e)),0|v),(0|(R=v))>0|!(0|R)&P>>>0>0)){if(0|L){if((0|o[L>>2])!=(0|C))break;if((0|o[L+4>>2])==(0|C)&&(R=0|o[L+12>>2],D=0|o[12+(0|o[C+8>>2])>>2],P=0|o[D+88>>2],O=0|o[D+92>>2],D=0|o[D+96>>2],A=(0|o[R+96>>2])-D|0,O=(0|g(T-D|0,(0|o[R+92>>2])-O|0))-(0|g(A,x-O|0))|0,P=(0|g(A,M-P|0))-(0|g(T-D|0,(0|o[R+88>>2])-P|0))|0,P=0|je(0|(O=0|Ee(0|O,((0|O)<0)<<31>>31,b-h|0,0|l)),0|(R=v),0|(P=0|Ee(0|P,((0|P)<0)<<31>>31,0|w,((0|w)<0)<<31>>31)),0|v),!((0|(R=v))>0|!(0|R)&P>>>0>0)))break}o[r+136>>2]=C,L=C}}while(0);C=0|o[C>>2]}while((0|C)!=(0|j))}else L=0;!(0|E)&!(0|L)||(xt(i,c,s,r+140|0,r+136|0),0|(n=0|o[r+140>>2])&&(c=0|o[n+12>>2]),0|(n=0|o[r+136>>2])&&(s=0|o[n+12>>2])),n=s,S=0|o[s+88>>2],j=1+(0|o[s+96>>2])|0}for(s=k=0|o[n+92>>2],h=c,_=n,l=0,t=0,M=1,m=0,e=0,p=0,y=0,d=0,w=0;;){if(x=h+88|0,D=(0|o[_+88>>2])-(0|o[x>>2])|0,b=s-(0|o[(P=h+92|0)>>2])|0,A=h+96|0,L=(0|o[_+96>>2])-(0|o[A>>2])|0,o[r+120>>2]=D,o[r+124>>2]=b,o[r+128>>2]=L,o[r+132>>2]=-1,x=S-(0|o[x>>2])|0,P=k-(0|o[P>>2])|0,A=j-(0|o[A>>2])|0,I=(0|g(L,P))-(0|g(b,A))|0,A=(0|g(D,A))-(0|g(L,x))|0,P=(0|g(b,x))-(0|g(D,P))|0,o[r+72>>2]=I,o[r+76>>2]=((0|I)<0)<<31>>31,o[r+80>>2]=A,o[r+84>>2]=((0|A)<0)<<31>>31,o[r+88>>2]=P,o[r+92>>2]=((0|P)<0)<<31>>31,O=0|ge(0|(x=0|Ee(0|P,((0|P)<0)<<31>>31,0|b,((0|b)<0)<<31>>31)),0|(R=v),0|(O=0|Ee(0|L,((0|L)<0)<<31>>31,0|A,((0|A)<0)<<31>>31)),0|v),R=v,P=0|ge(0|(L=0|Ee(0|I,((0|I)<0)<<31>>31,0|L,((0|L)<0)<<31>>31)),0|(x=v),0|(P=0|Ee(0|D,((0|D)<0)<<31>>31,0|P,((0|P)<0)<<31>>31)),0|v),x=v,b=0|ge(0|(A=0|Ee(0|D,((0|D)<0)<<31>>31,0|A,((0|A)<0)<<31>>31)),0|(D=v),0|(b=0|Ee(0|I,((0|I)<0)<<31>>31,0|b,((0|b)<0)<<31>>31)),0|v),o[r+48>>2]=O,o[r+52>>2]=R,o[r+56>>2]=P,o[r+60>>2]=x,o[r+64>>2]=b,o[r+68>>2]=v,o[r+24>>2]=0,o[r+28>>2]=0,o[r+32>>2]=0,o[r+36>>2]=0,o[r+40>>2]=0,b=0|St(i,0,h,r+120|0,r+72|0,r+48|0,r+24|0),o[r+0>>2]=0,o[r+4>>2]=0,o[r+8>>2]=0,o[r+12>>2]=0,o[r+16>>2]=0,!(0|(x=0|St(i,1,_,r+120|0,r+72|0,r+48|0,r)))&(1^!!(0|b))){s=138;break}C=!(0|x)|1^!!(0|b)?0|b?-1:1:0|gt(0|o[r+24>>2],0|o[r+28>>2],0|o[r+32>>2],0|o[r+36>>2],0|o[r+40>>2],r);do{if(M)s=150;else{if((0|C)>-1){if((0|o[r+16>>2])>=0){s=150;break}if(!(0|o[r+8>>2])&!(0|o[r+12>>2])){s=157;break}s=150;break}(0|o[r+40>>2])<0&&!(0|o[r+32>>2])&!(0|o[r+36>>2])?(o[r+116>>2]=b,o[r+112>>2]=x,C=b,s=179):s=150}}while(0);150==(0|s)&&(s=0|Ct(i+48|0),M=0|Ct(i+48|0),o[s+8>>2]=M,o[M+8>>2]=s,o[s+20>>2]=o[i+100>>2],o[M+20>>2]=o[i+100>>2],o[s+12>>2]=_,o[M+12>>2]=h,o[s+16>>2]=0,o[M+16>>2]=0,M=0|o[i+116>>2],o[i+116>>2]=M+1,(0|M)>=(0|o[i+120>>2])&&(o[i+120>>2]=M+1),0|p?o[p+4>>2]=s:m=s,o[s>>2]=p,M=0|o[s+8>>2],0|y?o[y>>2]=M:e=M,o[M+4>>2]=y,p=s,y=M,s=157);do{if(157==(0|s)){if(s=0,o[r+116>>2]=b,o[r+112>>2]=x,0|C){if(!((0|C)>-1)){C=b,s=179;break}M=x}else xt(i,h,_,r+116|0,r+112|0),M=0|o[r+112>>2];if(0|M){if((k=!!(0|w))&&(0|(f=0|o[w>>2]))!=(0|x)){j=f;do{S=j,j=0|o[j>>2],E=0|o[S+8>>2],(0|j)==(0|S)?o[8+(0|o[E+12>>2])>>2]=0:(o[j+4>>2]=o[S+4>>2],o[o[S+4>>2]>>2]=j,o[8+(0|o[E+12>>2])>>2]=j),(0|(T=0|o[E>>2]))==(0|E)?o[8+(0|o[S+12>>2])>>2]=0:(o[T+4>>2]=o[E+4>>2],o[o[E+4>>2]>>2]=T,o[8+(0|o[S+12>>2])>>2]=T),o[S+0>>2]=0,o[S+4>>2]=0,o[S+8>>2]=0,o[S+12>>2]=0,o[S+16>>2]=0,o[S>>2]=o[i+56>>2],o[i+56>>2]=S,o[E+0>>2]=0,o[E+4>>2]=0,o[E+8>>2]=0,o[E+12>>2]=0,o[E+16>>2]=0,o[E>>2]=o[i+56>>2],o[i+56>>2]=E,o[i+116>>2]=(0|o[i+116>>2])-1}while((0|j)!=(0|x))}0|y?(k?(o[w>>2]=e,o[e+4>>2]=w,w=x+4|0):(t=0|o[x+4>>2],o[t>>2]=e,o[e+4>>2]=t,t=e,w=x+4|0),o[y>>2]=x,o[w>>2]=y,w=0|o[r+112>>2],e=0):(w=M,t=k?t:x),M=0|o[w+12>>2],y=0,S=0|o[_+88>>2],k=0|o[_+92>>2],j=0|o[_+96>>2],w=0|o[w+8>>2]}else M=_;(0|C)<1?(C=0|o[r+116>>2],_=M,s=179):(x=h,_=M,b=t)}}while(0);if(179==(0|s))if(s=0,0|C){if((k=!!(0|d))&&(0|(a=0|o[d+4>>2]))!=(0|b)){S=a;do{j=S,S=0|o[(M=S+4|0)>>2],E=0|o[j>>2],x=0|o[j+8>>2],(0|E)==(0|j)?o[8+(0|o[x+12>>2])>>2]=0:(o[E+4>>2]=S,o[o[M>>2]>>2]=E,o[8+(0|o[x+12>>2])>>2]=E),(0|(M=0|o[x>>2]))==(0|x)?o[8+(0|o[j+12>>2])>>2]=0:(o[M+4>>2]=o[x+4>>2],o[o[x+4>>2]>>2]=M,o[8+(0|o[j+12>>2])>>2]=M),o[j+0>>2]=0,o[j+4>>2]=0,o[j+8>>2]=0,o[j+12>>2]=0,o[j+16>>2]=0,o[j>>2]=o[i+56>>2],o[i+56>>2]=j,o[x+0>>2]=0,o[x+4>>2]=0,o[x+8>>2]=0,o[x+12>>2]=0,o[x+16>>2]=0,o[x>>2]=o[i+56>>2],o[i+56>>2]=x,o[i+116>>2]=(0|o[i+116>>2])-1}while((0|S)!=(0|b))}0|p?(k?(o[m>>2]=d,o[d+4>>2]=m,d=b):(l=0|o[b>>2],o[m>>2]=l,o[l+4>>2]=m,l=m,d=b),o[d>>2]=p,o[p+4>>2]=b,C=0|o[r+116>>2],m=0):l=k?l:b,x=0|o[C+12>>2],b=t,p=0,S=0|o[h+88>>2],k=0|o[h+92>>2],j=0|o[h+96>>2],d=0|o[C+8>>2]}else x=h,b=t;if((0|x)==(0|c)&(0|_)==(0|n))break;s=0|o[_+92>>2],h=x,t=b,M=0}if(138==(0|s))return a=0|Ct(i+48|0),f=0|Ct(i+48|0),o[a+8>>2]=f,o[f+8>>2]=a,o[a+20>>2]=o[i+100>>2],o[f+20>>2]=o[i+100>>2],o[a+12>>2]=_,o[f+12>>2]=h,o[a+16>>2]=0,o[f+16>>2]=0,f=0|o[i+116>>2],o[i+116>>2]=f+1,(0|f)>=(0|o[i+120>>2])&&(o[i+120>>2]=f+1),o[a>>2]=a,o[a+4>>2]=a,o[h+8>>2]=a,P=0|o[a+8>>2],o[P>>2]=P,o[P+4>>2]=P,o[_+8>>2]=P,void(u=r);if(0|d){if((0|(s=0|o[(f=d+4|0)>>2]))!=(0|l))do{a=s,s=0|o[(_=s+4|0)>>2],h=0|o[a>>2],c=0|o[a+8>>2],(0|h)==(0|a)?o[8+(0|o[c+12>>2])>>2]=0:(o[h+4>>2]=s,o[o[_>>2]>>2]=h,o[8+(0|o[c+12>>2])>>2]=h),(0|(h=0|o[c>>2]))==(0|c)?o[8+(0|o[a+12>>2])>>2]=0:(o[h+4>>2]=o[c+4>>2],o[o[c+4>>2]>>2]=h,o[8+(0|o[a+12>>2])>>2]=h),o[a+0>>2]=0,o[a+4>>2]=0,o[a+8>>2]=0,o[a+12>>2]=0,o[a+16>>2]=0,o[a>>2]=o[i+56>>2],o[i+56>>2]=a,o[c+0>>2]=0,o[c+4>>2]=0,o[c+8>>2]=0,o[c+12>>2]=0,o[c+16>>2]=0,o[c>>2]=o[i+56>>2],o[i+56>>2]=c,o[i+116>>2]=(0|o[i+116>>2])-1}while((0|s)!=(0|l));0|p&&(o[m>>2]=d,o[f>>2]=m,o[l>>2]=p,o[p+4>>2]=l)}else o[m>>2]=p,o[p+4>>2]=m,o[c+8>>2]=p;if(!(0|w))return o[y>>2]=e,o[e+4>>2]=y,o[n+8>>2]=y,void(u=r);if((0|(c=0|o[w>>2]))!=(0|b))do{s=c,c=0|o[c>>2],a=0|o[s+8>>2],(0|c)==(0|s)?o[8+(0|o[a+12>>2])>>2]=0:(o[c+4>>2]=o[s+4>>2],o[o[s+4>>2]>>2]=c,o[8+(0|o[a+12>>2])>>2]=c),(0|(f=0|o[a>>2]))==(0|a)?o[8+(0|o[s+12>>2])>>2]=0:(o[f+4>>2]=o[a+4>>2],o[o[a+4>>2]>>2]=f,o[8+(0|o[s+12>>2])>>2]=f),o[s+0>>2]=0,o[s+4>>2]=0,o[s+8>>2]=0,o[s+12>>2]=0,o[s+16>>2]=0,o[s>>2]=o[i+56>>2],o[i+56>>2]=s,o[a+0>>2]=0,o[a+4>>2]=0,o[a+8>>2]=0,o[a+12>>2]=0,o[a+16>>2]=0,o[a>>2]=o[i+56>>2],o[i+56>>2]=a,o[i+116>>2]=(0|o[i+116>>2])-1}while((0|c)!=(0|b));return 0|y?(o[w>>2]=e,o[e+4>>2]=w,o[y>>2]=b,o[b+4>>2]=y,void(u=r)):void(u=r)}f=0|o[(0|o[i+92>>2])+(t<<2)>>2]}while(0);o[f+8>>2]=0,o[f>>2]=f,o[f+4>>2]=f,o[n>>2]=f,o[n+4>>2]=f,o[n+8>>2]=f,o[n+12>>2]=f,u=r}function St(i,t,e,n,r,f,a){i|=0,t|=0,n|=0,r|=0,f|=0,a|=0;var s,c=0,h=0,l=0,d=0,b=0,_=0,w=0,p=0,m=0,y=0,k=0,C=0,j=0,S=0,x=0,M=0;if(s=u,!(0|(c=0|o[(e|=0)+8>>2])))return u=s,0|(M=0);h=0;do{do{if((0|o[c+20>>2])>(0|o[i+100>>2])){if(_=0|o[c+12>>2],b=(p=0|o[_+88>>2])-(0|o[e+88>>2])|0,l=(w=0|o[_+92>>2])-(0|o[e+92>>2])|0,d=(_=0|o[_+96>>2])-(0|o[e+96>>2])|0,C=0|Ee(0|b,((0|b)<0)<<31>>31,0|o[f>>2],0|o[f+4>>2]),k=v,k=0|je(0|(y=0|Ee(0|l,((0|l)<0)<<31>>31,0|o[f+8>>2],0|o[f+12>>2])),0|v,0|C,0|k),y=0|je(0|k,0|(C=v),0|(y=0|Ee(0|d,((0|d)<0)<<31>>31,0|o[f+16>>2],0|o[f+20>>2])),0|v),C=v,k=0|Ee(0|o[r>>2],0|o[r+4>>2],0|b,((0|b)<0)<<31>>31),M=v,M=0|je(0|(x=0|Ee(0|o[r+8>>2],0|o[r+12>>2],0|l,((0|l)<0)<<31>>31)),0|v,0|k,0|M),x=0|je(0|M,0|(k=v),0|(x=0|Ee(0|o[r+16>>2],0|o[r+20>>2],0|d,((0|d)<0)<<31>>31)),0|v),k=v,(0|C)>0|!(0|C)&y>>>0>0?(m=C,M=1,j=1):(y=0|ge(0,0,0|y,0|C),m=(0|C)<0?v:0,M=(0|C)<0?-1:0,y=(0|C)<0?y:0,j=(0|C)<0?-1:0),(0|k)>0|!(0|k)&x>>>0>0)S=x;else{if((0|k)<0?(j=0-M|0,S=0|ge(0,0,0|x,0|k),C=v,M=j,k=!(0|x)&!(0|k)):(S=0,C=0,k=1),!(0|M)&k)break;k=C}if(!(0|h)){o[a>>2]=y,o[a+4>>2]=m,o[a+8>>2]=S,o[a+12>>2]=k,o[a+16>>2]=j,h=c;break}if((0|(C=0|gt(y,m,S,k,j,a)))<0){o[a>>2]=y,o[a+4>>2]=m,o[a+8>>2]=S,o[a+12>>2]=k,o[a+16>>2]=j,h=c;break}0|C||(m=(0|o[h+4>>2])==(0|c),(0|o[h>>2])==(0|c)?m?(M=0|o[n+8>>2],j=0|g(M,l),k=0|o[n+4>>2],j=j-(0|g(k,d))|0,x=0|o[n>>2],M=(0|g(x,d))-(0|g(b,M))|0,x=(0|g(b,k))-(0|g(x,l))|0,b=0|o[h+12>>2],l=0|o[12+(0|o[c+8>>2])>>2],k=0|o[l+88>>2],y=(0|o[b+88>>2])-k|0,m=0|o[l+92>>2],C=(0|o[b+92>>2])-m|0,l=0|o[l+96>>2],b=(0|o[b+96>>2])-l|0,S=(0|g(_-l|0,C))-(0|g(w-m|0,b))|0,l=(0|g(p-k|0,b))-(0|g(_-l|0,y))|0,C=(0|g(w-m|0,y))-(0|g(p-k|0,C))|0,j=0|Ee(0|S,((0|S)<0)<<31>>31,0|j,((0|j)<0)<<31>>31),S=v,M=0|Ee(0|l,((0|l)<0)<<31>>31,0|M,((0|M)<0)<<31>>31),l=v,x=0|je(0|j,0|S,0|(x=0|Ee(0|C,((0|C)<0)<<31>>31,0|x,((0|x)<0)<<31>>31)),0|v),l=0|je(0|x,0|v,0|M,0|l),l=(0|(M=v))>0|!(0|M)&l>>>0>0?2:1):l=2:l=1&m,h=2==(0|l)^t?h:c)}}while(0);c=0|o[c>>2]}while((0|c)!=(0|o[e+8>>2]));return u=s,0|h}function xt(i,t,e,n,r){i|=0,t|=0,e|=0,r|=0;var f,a,s,c,h=0,l=0,d=0,b=0,_=0,w=0,p=0,m=0,y=0,k=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0,L=0,I=0,A=0,D=0,O=0,R=0,P=0,N=0,B=0,F=0,V=0,U=0,G=0,W=0,z=0,X=0,$=0,H=0,q=0,K=0,Y=0,Q=0,Z=0;if(f=u,u=u+96|0,m=0|o[(n|=0)>>2],a=0|o[r>>2],h=0|m?0|o[m+12>>2]:t,C=0|o[h+88>>2],j=0|o[h+92>>2],S=0|o[h+96>>2],h=0|a?0|o[a+12>>2]:e,x=0|o[h+88>>2],M=0|o[h+92>>2],T=0|o[h+96>>2],b=0|o[t+88>>2],h=(0|o[e+88>>2])-b|0,L=0|o[t+92>>2],s=(0|o[e+92>>2])-L|0,D=0|o[t+96>>2],c=(0|o[e+96>>2])-D|0,d=0|o[(0|m?m:a)+12>>2],_=(0|o[d+88>>2])-b|0,k=(0|o[d+92>>2])-L|0,d=(0|o[d+96>>2])-D|0,e=(0|g(k,c))-(0|g(d,s))|0,d=(0|g(d,h))-(0|g(_,c))|0,k=(0|g(_,s))-(0|g(k,h))|0,b=0|Ee(0|e,((0|e)<0)<<31>>31,0|b,((0|b)<0)<<31>>31),_=v,L=0|Ee(0|d,((0|d)<0)<<31>>31,0|L,((0|L)<0)<<31>>31),I=v,D=0|je(0|b,0|_,0|(D=0|Ee(0|k,((0|k)<0)<<31>>31,0|D,((0|D)<0)<<31>>31)),0|v),I=0|je(0|D,0|v,0|L,0|I),L=v,b=0|ge(0|(D=0|Ee(0|k,((0|k)<0)<<31>>31,0|s,((0|s)<0)<<31>>31)),0|(_=v),0|(b=0|Ee(0|d,((0|d)<0)<<31>>31,0|c,((0|c)<0)<<31>>31)),0|v),_=v,l=0|ge(0|(D=0|Ee(0|e,((0|e)<0)<<31>>31,0|c,((0|c)<0)<<31>>31)),0|(p=v),0|(l=0|Ee(0|k,((0|k)<0)<<31>>31,0|h,((0|h)<0)<<31>>31)),0|v),p=v,t=0|ge(0|(D=0|Ee(0|d,((0|d)<0)<<31>>31,0|h,((0|h)<0)<<31>>31)),0|(w=v),0|(t=0|Ee(0|e,((0|e)<0)<<31>>31,0|s,((0|s)<0)<<31>>31)),0|v),w=v,D=0|Ee(0|b,0|_,0|C,((0|C)<0)<<31>>31),Z=v,Z=0|je(0|(A=0|Ee(0|l,0|p,0|j,((0|j)<0)<<31>>31)),0|v,0|D,0|Z),A=0|je(0|Z,0|(D=v),0|(A=0|Ee(0|t,0|w,0|S,((0|S)<0)<<31>>31)),0|v),D=v,0|m&&0|o[m+12>>2]){for(E=m;E=0|o[4+(0|o[E+8>>2])>>2],O=0|o[(R=E+12|0)>>2],Q=0|Ee(0|(N=0|o[O+88>>2]),((0|N)<0)<<31>>31,0|e,((0|e)<0)<<31>>31),Y=v,Y=0|je(0|(Z=0|Ee(0|(P=0|o[O+92>>2]),((0|P)<0)<<31>>31,0|d,((0|d)<0)<<31>>31)),0|v,0|Q,0|Y),Z=0|je(0|Y,0|(Q=v),0|(Z=0|Ee(0|(O=0|o[O+96>>2]),((0|O)<0)<<31>>31,0|k,((0|k)<0)<<31>>31)),0|v),!((0|(Q=v))<(0|L)|(0|Q)==(0|L)&Z>>>0<I>>>0)&&(0|o[E+20>>2])!=(0|o[i+100>>2])&&(Z=0|Ee(0|N,((0|N)<0)<<31>>31,0|b,0|_),Q=v,Q=0|je(0|(P=0|Ee(0|P,((0|P)<0)<<31>>31,0|l,0|p)),0|v,0|Z,0|Q),P=0|je(0|Q,0|(Z=v),0|(P=0|Ee(0|O,((0|O)<0)<<31>>31,0|t,0|w)),0|v),(0|(O=v))>(0|D)|(0|O)==(0|D)&P>>>0>A>>>0);){if(o[n>>2]=E,Z=0|o[R>>2],C=0|o[Z+88>>2],j=0|o[Z+92>>2],S=0|o[Z+96>>2],!(0|Z)){A=P,D=O;break}D=O,A=P}E=0|o[r>>2]}else E=a;O=0|Ee(0|b,0|_,0|x,((0|x)<0)<<31>>31),Z=v,Z=0|je(0|(R=0|Ee(0|l,0|p,0|M,((0|M)<0)<<31>>31)),0|v,0|O,0|Z),R=0|je(0|Z,0|(O=v),0|(R=0|Ee(0|t,0|w,0|T,((0|T)<0)<<31>>31)),0|v),O=v;i:do{if(0|E)if(0|o[E+12>>2])for(;;){if(P=0|o[o[E+8>>2]>>2],F=0|o[P+12>>2],Q=0|Ee(0|(B=0|o[F+88>>2]),((0|B)<0)<<31>>31,0|e,((0|e)<0)<<31>>31),Y=v,Y=0|je(0|(Z=0|Ee(0|(N=0|o[F+92>>2]),((0|N)<0)<<31>>31,0|d,((0|d)<0)<<31>>31)),0|v,0|Q,0|Y),Z=0|je(0|Y,0|(Q=v),0|(Z=0|Ee(0|(F=0|o[F+96>>2]),((0|F)<0)<<31>>31,0|k,((0|k)<0)<<31>>31)),0|v),(0|(Q=v))<(0|L)|(0|Q)==(0|L)&Z>>>0<I>>>0){L=R;break i}if((0|o[P+20>>2])==(0|o[i+100>>2])){L=R;break i}if(B=0|Ee(0|B,((0|B)<0)<<31>>31,0|b,0|_),Z=v,Z=0|je(0|(N=0|Ee(0|N,((0|N)<0)<<31>>31,0|l,0|p)),0|v,0|B,0|Z),B=0|je(0|Z,0|(N=v),0|(B=0|Ee(0|F,((0|F)<0)<<31>>31,0|t,0|w)),0|v),!((0|(N=v))>(0|O)|(0|N)==(0|O)&B>>>0>R>>>0)){L=R;break i}if(o[r>>2]=P,Z=0|o[P+12>>2],x=0|o[Z+88>>2],M=0|o[Z+92>>2],T=0|o[Z+96>>2],!(0|Z)){L=B,O=N,E=P;break}E=P,O=N,R=B}else L=R;else L=R,E=0}while(0);if(I=0|ge(0|L,0|O,0|A,0|D),(0|(L=v))>0|!(0|L)&I>>>0>0){A=0|ge(0,0,0|k,((0|k)<0)<<31>>31),D=v,B=I,N=L,O=C,R=j,P=S,G=x,U=M,V=T;i:for(;;){t:for(;;){F=(0|g(U-R|0,s))+(0|g(V-P|0,c))+(0|g(G-O|0,h))|0,$=0|o[n>>2];do{if(0|$&&0|o[$+12>>2]&&(y=0|o[8+(0|o[$>>2])>>2],(0|o[y+20>>2])>(0|o[i+100>>2]))){if(z=0|o[y+12>>2],Y=(X=0|o[z+88>>2])-O|0,q=(W=0|o[z+92>>2])-R|0,Q=(z=0|o[z+96>>2])-P|0,Z=0|Ee(0|Y,((0|Y)<0)<<31>>31,0|b,0|_),H=v,H=0|je(0|(K=0|Ee(0|q,((0|q)<0)<<31>>31,0|l,0|p)),0|v,0|Z,0|H),K=0|je(0|H,0|(Z=v),0|(K=0|Ee(0|Q,((0|Q)<0)<<31>>31,0|t,0|w)),0|v),Z=v,Q=(0|g(q,s))+(0|g(Y,h))+(0|g(Q,c))|0,!(0|K)&!(0|Z)){if((0|Q)<0)break t;break}if((0|Z)<0){(0|Q)>0?(Y=1,H=Q,q=((0|Q)<0)<<31>>31,Q=1):(H=0|ge(0,0,0|Q,((0|Q)<0)<<31>>31),Y=(0|Q)<0?-1:0,H=(0|Q)<0?H:0,q=(0|Q)<0?v:0,Q=(0|Q)<0?-1:0),(0|Z)>0|!(0|Z)&K>>>0>0||(K=0|ge(0,0,0|K,0|Z),Z=v,Q=0-Y|0);do{if((0|F)<=0){if((0|F)<0){o[f+88>>2]=-1,Y=0|ge(0,0,0|F,((0|F)<0)<<31>>31),o[f+72>>2]=Y,o[f+76>>2]=v,Y=-1;break}o[f+88>>2]=0,o[f+72>>2]=0,o[f+76>>2]=0,Y=0;break}o[f+88>>2]=1,o[f+72>>2]=F,o[f+76>>2]=((0|F)<0)<<31>>31,Y=1}while(0);do{if(!((0|N)>0|!(0|N)&B>>>0>0)){if((0|N)<0){o[f+88>>2]=0-Y,Y=0|ge(0,0,0|B,0|N),o[f+80>>2]=Y,o[f+84>>2]=v;break}o[f+80>>2]=0,o[f+84>>2]=0;break}o[f+80>>2]=B,o[f+84>>2]=N}while(0);if((0|gt(H,q,K,Z,Q,f+72|0))>-1)break t}}}while(0);if(!(0|(W=0|o[r>>2]))){m=117;break i}if(!(0|o[W+12>>2])){m=117;break i}if(W=0|o[o[W+8>>2]>>2],(0|o[W+20>>2])<=(0|o[i+100>>2])){m=117;break i}if($=0|o[W+12>>2],X=(z=0|o[$+88>>2])-G|0,H=(G=0|o[$+92>>2])-U|0,q=($=0|o[$+96>>2])-V|0,Z=0|Ee(0|X,((0|X)<0)<<31>>31,0|e,((0|e)<0)<<31>>31),Y=v,Y=0|je(0|(Q=0|Ee(0|H,((0|H)<0)<<31>>31,0|d,((0|d)<0)<<31>>31)),0|v,0|Z,0|Y),Z=v,!((0|Y)==(0|(Q=0|Ee(0|q,((0|q)<0)<<31>>31,0|A,0|D)))&(0|Z)==(0|v))){m=117;break i}if(V=0|Ee(0|X,((0|X)<0)<<31>>31,0|b,0|_),Q=v,Q=0|je(0|(U=0|Ee(0|H,((0|H)<0)<<31>>31,0|l,0|p)),0|v,0|V,0|Q),U=0|je(0|Q,0|(V=v),0|(U=0|Ee(0|q,((0|q)<0)<<31>>31,0|t,0|w)),0|v),V=v,q=(0|g(H,s))+(0|g(X,h))+(0|g(q,c))|0,X=z-O|0,Q=G-R|0,z=$-P|0,X=0|Ee(0|X,((0|X)<0)<<31>>31,0|b,0|_),Z=v,Z=0|je(0|(Q=0|Ee(0|Q,((0|Q)<0)<<31>>31,0|l,0|p)),0|v,0|X,0|Z),z=0|je(0|Z,0|(X=v),0|(z=0|Ee(0|z,((0|z)<0)<<31>>31,0|t,0|w)),0|v),!((0|(X=v))>0|!(0|X)&z>>>0>0)){m=117;break i}if(!(0|U)&!(0|V)){if((0|q)>=0){m=117;break i}}else{if((0|V)>=0){m=117;break i}(0|q)>0?(H=1,G=q,$=((0|q)<0)<<31>>31,q=1):(G=0|ge(0,0,0|q,((0|q)<0)<<31>>31),H=(0|q)<0?-1:0,G=(0|q)<0?G:0,$=(0|q)<0?v:0,q=(0|q)<0?-1:0),(0|V)>0|!(0|V)&U>>>0>0||(U=0|ge(0,0,0|U,0|V),V=v,q=0-H|0);do{if((0|F)<=0){if((0|F)<0){o[f+64>>2]=-1,F=0|ge(0,0,0|F,((0|F)<0)<<31>>31),o[f+48>>2]=F,o[f+52>>2]=v,F=-1;break}o[f+64>>2]=0,o[f+48>>2]=0,o[f+52>>2]=0,F=0;break}o[f+64>>2]=1,o[f+48>>2]=F,o[f+52>>2]=((0|F)<0)<<31>>31,F=1}while(0);do{if(!((0|N)>0|!(0|N)&B>>>0>0)){if((0|N)<0){o[f+64>>2]=0-F,Z=0|ge(0,0,0|B,0|N),o[f+56>>2]=Z,o[f+60>>2]=v;break}o[f+56>>2]=0,o[f+60>>2]=0;break}o[f+56>>2]=B,o[f+60>>2]=N}while(0);if((0|gt(G,$,U,V,q,f+48|0))<=0){m=117;break i}}o[r>>2]=W,V=0|o[W+12>>2],N=X,B=z,G=0|o[V+88>>2],U=0|o[V+92>>2],V=0|o[V+96>>2]}R=U-W|0,B=V-z|0,N=0|Ee(0|(N=G-X|0),((0|N)<0)<<31>>31,0|b,0|_),O=v,O=0|je(0|(R=0|Ee(0|R,((0|R)<0)<<31>>31,0|l,0|p)),0|v,0|N,0|O),B=0|je(0|O,0|(N=v),0|(B=0|Ee(0|B,((0|B)<0)<<31>>31,0|t,0|w)),0|v),o[n>>2]=(0|$)==(0|m)?0:y,N=v,O=X,R=W,P=z}if(117==(0|m))return void(u=f)}if((0|L)>=0)u=f;else{for(m=0|ge(0,0,0|k,((0|k)<0)<<31>>31),y=v;;){A=(0|g(M-j|0,s))+(0|g(T-S|0,c))+(0|g(x-C|0,h))|0;i:do{if(0|E)for(k=A,D=((0|A)<0)<<31>>31;;){if(!(0|o[E+12>>2])){E=D;break i}if(N=0|o[8+(0|o[E+4>>2])>>2],(0|o[N+20>>2])<=(0|o[i+100>>2])){E=D;break i}if(O=0|o[N+12>>2],Z=(P=0|o[O+88>>2])-x|0,Q=(R=0|o[O+92>>2])-M|0,W=(O=0|o[O+96>>2])-T|0,G=0|Ee(0|Z,((0|Z)<0)<<31>>31,0|b,0|_),Y=v,Y=0|je(0|(U=0|Ee(0|Q,((0|Q)<0)<<31>>31,0|l,0|p)),0|v,0|G,0|Y),U=0|je(0|Y,0|(G=v),0|(U=0|Ee(0|W,((0|W)<0)<<31>>31,0|t,0|w)),0|v),G=v,W=(0|g(Q,s))+(0|g(Z,h))+(0|g(W,c))|0,!(0|U)&!(0|G)){if((0|W)<=0){E=D;break i}}else{if((0|G)>=0){E=D;break i}(0|W)>0?(V=1,B=W,F=((0|W)<0)<<31>>31,W=1):(B=0|ge(0,0,0|W,((0|W)<0)<<31>>31),V=(0|W)<0?-1:0,B=(0|W)<0?B:0,F=(0|W)<0?v:0,W=(0|W)<0?-1:0),(0|G)>0|!(0|G)&U>>>0>0||(U=0|ge(0,0,0|U,0|G),G=v,W=0-V|0);do{if((0|A)<=0){if((0|A)<0){o[f+40>>2]=-1,V=0|ge(0,0,0|k,0|D),o[f+24>>2]=V,o[f+28>>2]=v,V=-1;break}o[f+40>>2]=0,o[f+24>>2]=0,o[f+28>>2]=0,V=0;break}o[f+40>>2]=1,o[f+24>>2]=k,o[f+28>>2]=D,V=1}while(0);do{if(!((0|L)>0|!(0|L)&I>>>0>0)){if((0|L)<0){o[f+40>>2]=0-V,Z=0|ge(0,0,0|I,0|L),o[f+32>>2]=Z,o[f+36>>2]=v;break}o[f+32>>2]=0,o[f+36>>2]=0;break}o[f+32>>2]=I,o[f+36>>2]=L}while(0);if((0|gt(B,F,U,G,W,f+24|0))>=1){E=D;break i}}if(Q=R-j|0,Z=O-S|0,L=0|Ee(0|(x=P-C|0),((0|x)<0)<<31>>31,0|b,0|_),Y=v,Y=0|je(0|(I=0|Ee(0|Q,((0|Q)<0)<<31>>31,0|l,0|p)),0|v,0|L,0|Y),I=0|je(0|Y,0|(L=v),0|(I=0|Ee(0|Z,((0|Z)<0)<<31>>31,0|t,0|w)),0|v),L=v,E=(0|E)==(0|a)?0:N,o[r>>2]=E,x=(0|g(Q,s))+(0|g(Z,c))+(0|g(x,h))|0,!(0|E)){k=x,E=((0|x)<0)<<31>>31,A=x,x=P,M=R,T=O;break}k=x,D=((0|x)<0)<<31>>31,A=x,x=P,M=R,T=O}else k=A,E=((0|A)<0)<<31>>31}while(0);if(!(0|(D=0|o[n>>2]))){m=117;break}if(!(0|o[D+12>>2])){m=117;break}if(D=0|o[4+(0|o[D+8>>2])>>2],(0|o[D+20>>2])<=(0|o[i+100>>2])){m=117;break}if(B=0|o[D+12>>2],P=(O=0|o[B+88>>2])-C|0,N=(R=0|o[B+92>>2])-j|0,B=(j=0|o[B+96>>2])-S|0,Z=0|Ee(0|P,((0|P)<0)<<31>>31,0|e,((0|e)<0)<<31>>31),Y=v,Y=0|je(0|(Q=0|Ee(0|N,((0|N)<0)<<31>>31,0|d,((0|d)<0)<<31>>31)),0|v,0|Z,0|Y),Z=v,!((0|Y)==(0|(Q=0|Ee(0|B,((0|B)<0)<<31>>31,0|m,0|y)))&(0|Z)==(0|v))){m=117;break}if(C=0|Ee(0|P,((0|P)<0)<<31>>31,0|b,0|_),Z=v,Z=0|je(0|(S=0|Ee(0|N,((0|N)<0)<<31>>31,0|l,0|p)),0|v,0|C,0|Z),S=0|je(0|Z,0|(C=v),0|(S=0|Ee(0|B,((0|B)<0)<<31>>31,0|t,0|w)),0|v),C=v,N=(0|g(N,s))+(0|g(P,h))+(0|g(B,c))|0,Z=x-O|0,Q=M-R|0,O=T-j|0,j=0|Ee(0|Z,((0|Z)<0)<<31>>31,0|b,0|_),Z=v,Z=0|je(0|(Q=0|Ee(0|Q,((0|Q)<0)<<31>>31,0|l,0|p)),0|v,0|j,0|Z),O=0|je(0|Z,0|(j=v),0|(O=0|Ee(0|O,((0|O)<0)<<31>>31,0|t,0|w)),0|v),(0|(j=v))>=0){m=117;break}if(!(0|S)&!(0|C)){if((0|N)<=0){m=117;break}}else{if((0|C)>=0){m=117;break}(0|N)>0?(B=1,R=N,P=((0|N)<0)<<31>>31,N=1):(R=0|ge(0,0,0|N,((0|N)<0)<<31>>31),B=(0|N)<0?-1:0,R=(0|N)<0?R:0,P=(0|N)<0?v:0,N=(0|N)<0?-1:0),(0|C)>0|!(0|C)&S>>>0>0||(S=0|ge(0,0,0|S,0|C),C=v,N=0-B|0);do{if((0|A)<=0){if((0|A)<0){o[f+16>>2]=-1,k=0|ge(0,0,0|k,0|E),o[f>>2]=k,o[f+4>>2]=v,k=-1;break}o[f+16>>2]=0,o[f>>2]=0,o[f+4>>2]=0,k=0;break}o[f+16>>2]=1,o[f>>2]=k,o[f+4>>2]=E,k=1}while(0);do{if(!((0|L)>0|!(0|L)&I>>>0>0)){if((0|L)<0){o[f+16>>2]=0-k,Z=0|ge(0,0,0|I,0|L),o[f+8>>2]=Z,o[f+12>>2]=v;break}o[f+8>>2]=0,o[f+12>>2]=0;break}o[f+8>>2]=I,o[f+12>>2]=L}while(0);if((0|gt(R,P,S,C,N,f))>=0){m=117;break}}o[n>>2]=D,S=0|o[D+12>>2],E=0|o[r>>2],I=O,L=j,C=0|o[S+88>>2],j=0|o[S+92>>2],S=0|o[S+96>>2]}117!=(0|m)||(u=f)}}function Mt(i){var t,e,n=0,r=0,f=0,a=0,s=0;return t=u,u=u+16|0,n=0|o[(i|=0)+8>>2],(0|(e=0|o[i+12>>2]))>-1|-1==(0|e)&n>>>0>4294967295?(r=0x10000000000000000*(+(n>>>0)+4294967296*+(e>>>0))+(+((0|o[i>>2])>>>0)+4294967296*+((0|o[i+4>>2])>>>0)),u=t,+r):(f=0|ge(0,0,0|(s=0|o[i>>2]),0|(a=0|o[i+4>>2])),i=v,n=0|je(!(0|s)&!(0|a)&1,0,0|~n,0|~e),o[t>>2]=f,o[t+4>>2]=i,o[t+8>>2]=n,o[t+12>>2]=v,r=-+Mt(t),u=t,+r)}function Et(i,t,e){i|=0,t|=0;var r,f=0,a=0,c=0,h=0,l=0,d=0,v=0,b=0,_=0,w=0,p=0,m=0,y=0,k=0,g=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0,L=0;if(r=u,u=u+256|0,(0|(e|=0))<1)return 0|(e=0|o[i+12>>2])&&(0|n[i+16|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+12>>2]=0),n[i+16|0]=1,o[i+12>>2]=0,o[i+4>>2]=0,o[i+8>>2]=0,0|(e=0|o[i+32>>2])&&(0|n[i+36|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+32>>2]=0),n[i+36|0]=1,o[i+32>>2]=0,o[i+24>>2]=0,o[i+28>>2]=0,0|(e=0|o[i+52>>2])&&(0|n[i+56|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+52>>2]=0),n[i+56|0]=1,o[i+52>>2]=0,o[i+44>>2]=0,o[i+48>>2]=0,void(u=r);for(o[r+88>>2]=0,o[r+92>>2]=0,o[(c=r+96|0)>>2]=0,o[r+100>>2]=256,o[r+104>>2]=0,o[r+108>>2]=0,o[r+112>>2]=0,o[r+116>>2]=256,o[r+120>>2]=0,o[r+124>>2]=0,o[r+128>>2]=0,o[r+132>>2]=256,n[r+152|0]=1,o[(a=r+148|0)>>2]=0,o[r+140>>2]=0,o[r+144>>2]=0,l=0,y=-1.0000000150474662e30,m=-1.0000000150474662e30,j=-1.0000000150474662e30,k=1.0000000150474662e30,g=1.0000000150474662e30,C=1.0000000150474662e30,d=t;k=(_=+s[d>>2])<k?_:k,g=(w=+s[d+4>>2])<g?w:g,C=(p=+s[d+8>>2])<C?p:C,y=y<_?_:y,m=m<w?w:m,j=j<p?p:j,(0|(l=l+1|0))!=(0|e);)d=d+16|0;if(p=j-C,(_=y-k)<(w=m-g)?(o[r+168>>2]=w<p?2:1,d=_<p?0:2,b=r+168|0):(o[r+168>>2]=_<p?2:0,d=w<p?1:2,b=r+168|0),o[r+160>>2]=d,(0|d)==(0|(l=0|o[b>>2]))&&(d=((d+1|0)>>>0)%3|0,o[r+160>>2]=d,l=0|o[b>>2]),L=3-l-d|0,o[r+164>>2]=L,((L+1|0)%3|0)==(0|o[b>>2])?(_*=9788566967472434e-20,w*=9788566967472434e-20,p*=9788566967472434e-20):(_=9788566967472434e-20*_*-1,w=9788566967472434e-20*w*-1,p=9788566967472434e-20*p*-1),s[r+56>>2]=_,s[r+60>>2]=w,s[r+64>>2]=p,s[r+68>>2]=0,0!=_&&(_=1/_),0!=w&&(w=1/w),0!=p&&(p=1/p),s[r+72>>2]=.5*(k+y),s[r+76>>2]=.5*(g+m),s[r+80>>2]=.5*(C+j),s[r+84>>2]=0,n[(l=r+248|0)|0]=1,o[(d=r+244|0)>>2]=0,o[(v=r+236|0)>>2]=0,o[r+240>>2]=0,(0|e)>0){if(o[4546]=1+(0|o[4546]),0|(S=0|ye(16+(e<<4|3)|0))?(o[(S+19&-16)-4>>2]=S,S=S+19&-16):S=0,(0|(x=0|o[v>>2]))>0){E=0;do{0|(M=S+(E<<4)|0)&&(L=(0|o[d>>2])+(E<<4)|0,o[M+0>>2]=o[L+0>>2],o[M+4>>2]=o[L+4>>2],o[M+8>>2]=o[L+8>>2],o[M+12>>2]=o[L+12>>2]),E=E+1|0}while((0|E)!=(0|x))}for(0|(x=0|o[d>>2])&&(0|n[l|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[x+-4>>2])),o[d>>2]=0),n[l|0]=1,o[d>>2]=S,o[r+240>>2]=e,x=0;0|(S=S+(x<<4)|0)&&(o[S+0>>2]=o[r+216>>2],o[S+4>>2]=o[r+220>>2],o[S+8>>2]=o[r+224>>2],o[S+12>>2]=o[r+228>>2]),(0|(x=x+1|0))!=(0|e);)S=0|o[d>>2];for(o[v>>2]=e,S=0|o[d>>2],y=+s[r+72>>2],k=+s[r+76>>2],m=+s[r+80>>2],x=0;g=+s[t>>2],s[r+200>>2]=g,C=+s[t+4>>2],s[r+204>>2]=C,j=p*(+s[t+8>>2]-m),s[r+200>>2]=_*(g-y),s[r+204>>2]=w*(C-k),s[r+208>>2]=j,s[r+212>>2]=0,o[S+(x<<4)>>2]=~~+s[r+200+(o[r+164>>2]<<2)>>2],o[S+(x<<4)+4>>2]=~~+s[r+200+(o[b>>2]<<2)>>2],o[S+(x<<4)+8>>2]=~~+s[r+200+(o[r+160>>2]<<2)>>2],o[S+(x<<4)+12>>2]=x,(0|(x=x+1|0))!=(0|e);)t=t+16|0;(0|(t=0|o[v>>2]))>1&&Tt(r+232|0,0,t+-1|0)}else o[v>>2]=e;if(o[r+92>>2]=o[r+88>>2],o[c>>2]=0,o[r+100>>2]=e,(0|(t=0|o[r+140>>2]))<(0|e)){if((0|o[r+144>>2])<(0|e)){if(0|e?(o[4546]=1+(0|o[4546]),0|(b=0|ye(16+(e<<2|3)|0))?(o[(b+19&-16)-4>>2]=b,b=b+19&-16):b=0,S=0|o[r+140>>2]):(S=t,b=0),(0|S)>0){M=0;do{0|(x=b+(M<<2)|0)&&(o[x>>2]=o[(0|o[a>>2])+(M<<2)>>2]),M=M+1|0}while((0|M)!=(0|S))}0|(S=0|o[a>>2])&&(0|n[r+152|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[S+-4>>2])),o[a>>2]=0),n[r+152|0]=1,o[a>>2]=b,o[r+144>>2]=e}do{0|(b=(0|o[a>>2])+(t<<2)|0)&&(o[b>>2]=0),t=t+1|0}while((0|t)!=(0|e))}if(o[r+140>>2]=e,(0|e)>0){t=0;do{if(0|(b=0|o[c>>2]))o[c>>2]=o[b>>2],h=85;else{if(0|(M=0|o[r+92>>2])?o[r+92>>2]=o[M+8>>2]:(o[4546]=1+(0|o[4546]),0|(b=0|ye(31))&&(o[(f=b+19&-16)+-4>>2]=b,b+19&-16)?(S=0|o[r+100>>2],o[f+4>>2]=S,o[f+8>>2]=0,o[4546]=1+(0|o[4546]),0|(S=0|ye(16+(112*S|3)|0))?(o[(S+19&-16)-4>>2]=S,S=S+19&-16):S=0,o[(b+19&-16)>>2]=S,M=b+19&-16):M=0,o[M+8>>2]=o[r+88>>2],o[r+88>>2]=M),(0|(x=0|o[M+4>>2]))>0){b=0,S=0|o[M>>2];do{b=b+1|0,L=S,S=S+112|0,o[L>>2]=(0|b)<(0|x)?S:0}while((0|b)!=(0|x))}b=0|o[M>>2],o[c>>2]=o[b>>2],0|b?h=85:b=0}85==(0|h)&&(h=0,L=b+104|0,o[b+0>>2]=0,o[b+4>>2]=0,o[b+8>>2]=0,o[b+12>>2]=0,o[b+16>>2]=0,o[L>>2]=-1),o[b+8>>2]=0,L=b+88|0,T=(0|o[d>>2])+(t<<4)|0,o[L+0>>2]=o[T+0>>2],o[L+4>>2]=o[T+4>>2],o[L+8>>2]=o[T+8>>2],o[L+12>>2]=o[T+12>>2],o[b+104>>2]=-1,o[(0|o[a>>2])+(t<<2)>>2]=b,t=t+1|0}while((0|t)<(0|e))}if(0|(f=0|o[d>>2])&&(0|n[l|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[f+-4>>2])),o[d>>2]=0),n[l|0]=1,o[d>>2]=0,o[v>>2]=0,o[r+240>>2]=0,o[r+108>>2]=o[r+104>>2],o[r+112>>2]=0,o[r+116>>2]=6*e,o[r+172>>2]=0,o[r+176>>2]=0,o[r+156>>2]=-3,o[r+184>>2]=0,o[r+188>>2]=0,o[r+192>>2]=0,o[r+196>>2]=0,jt(r+56|0,0,e,r+184|0),o[r+180>>2]=o[r+184>>2],0|(e=0|o[d>>2])&&(0|n[l|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[d>>2]=0),(0|(e=0|o[i+4>>2]))<0){(0|o[i+8>>2])<0&&(0|(f=0|o[i+12>>2])&&(0|n[i+16|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[f+-4>>2])),o[i+12>>2]=0),n[i+16|0]=1,o[i+12>>2]=0,o[i+8>>2]=0);do{L=(0|o[i+12>>2])+(e<<4)|0,o[L+0>>2]=o[r+40>>2],o[L+4>>2]=o[r+44>>2],o[L+8>>2]=o[r+48>>2],o[L+12>>2]=o[r+52>>2],e=e+1|0}while(0|e)}if(o[i+4>>2]=0,o[r+24>>2]=0,o[r+28>>2]=0,o[r+32>>2]=0,(0|(e=0|o[i+24>>2]))<0){(0|o[i+28>>2])<0&&(0|(f=0|o[i+32>>2])&&(0|n[i+36|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[f+-4>>2])),o[i+32>>2]=0),n[i+36|0]=1,o[i+32>>2]=0,o[i+28>>2]=0);do{0|(f=(0|o[i+32>>2])+(12*e|0)|0)&&(o[f+0>>2]=o[r+24>>2],o[f+4>>2]=o[r+28>>2],o[f+8>>2]=o[r+32>>2]),e=e+1|0}while(0|e)}if(o[i+24>>2]=0,(0|(f=0|o[i+44>>2]))<0){e=0|o[i+52>>2],(0|o[i+48>>2])<0&&(0|e&&(0|n[i+56|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+52>>2]=0),n[i+56|0]=1,o[i+52>>2]=0,o[i+48>>2]=0,e=0);do{0|(a=e+(f<<2)|0)&&(o[a>>2]=0),f=f+1|0}while(0|f)}if(o[i+44>>2]=0,e=0|o[r+180>>2],(0|o[e+104>>2])<0){for(o[e+104>>2]=0,o[4546]=1+(0|o[4546]),0|(f=0|ye(23))?(o[(f+19&-16)-4>>2]=f,v=f+19&-16,f+19&-16&&(o[v>>2]=e)):v=0,h=1,b=1,e=0;;){f=0|o[v+(e<<2)>>2],(0|o[f+100>>2])>-1?(s[r+232+(o[r+164>>2]<<2)>>2]=+(0|o[f+88>>2]),s[r+232+(o[r+168>>2]<<2)>>2]=+(0|o[f+92>>2]),_=+(0|o[f+96>>2])):(_=+Mt(f+24|0),_/=+Mt(f+72|0),s[r+232+(o[r+164>>2]<<2)>>2]=_,_=+Mt(f+40|0),_/=+Mt(f+72|0),s[r+232+(o[r+168>>2]<<2)>>2]=_,_=+Mt(f+56|0),_/=+Mt(f+72|0)),s[r+232+(o[r+160>>2]<<2)>>2]=_,w=+s[r+232>>2]*+s[r+56>>2]+ +s[r+72>>2],_=+s[r+236>>2]*+s[r+60>>2]+ +s[r+76>>2],p=+s[r+240>>2]*+s[r+64>>2]+ +s[r+80>>2],c=0|o[i+4>>2];do{if((0|c)==(0|o[i+8>>2])){if((0|c)>=(0|(a=0|c?c<<1:1)))break;if(0|a?(o[4546]=1+(0|o[4546]),0|(c=0|ye(16+(a<<4|3)|0))?(o[(c+19&-16)-4>>2]=c,l=c+19&-16):l=0,c=0|o[i+4>>2]):l=0,(0|c)>0){d=0;do{L=l+(d<<4)|0,T=(0|o[i+12>>2])+(d<<4)|0,o[L+0>>2]=o[T+0>>2],o[L+4>>2]=o[T+4>>2],o[L+8>>2]=o[T+8>>2],o[L+12>>2]=o[T+12>>2],d=d+1|0}while((0|d)!=(0|c))}0|(c=0|o[i+12>>2])&&(0|n[i+16|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[c+-4>>2])),o[i+12>>2]=0),n[i+16|0]=1,o[i+12>>2]=l,o[i+8>>2]=a,c=0|o[i+4>>2]}}while(0);if(L=0|o[i+12>>2],s[L+(c<<4)>>2]=w,s[L+(c<<4)+4>>2]=_,s[L+(c<<4)+8>>2]=p,s[L+(c<<4)+12>>2]=0,o[i+4>>2]=1+(0|o[i+4>>2]),0|(f=0|o[f+8>>2])){a=f,c=-1,l=-1;do{if((0|(t=0|o[(d=a+20|0)>>2]))<0){t=0|o[i+24>>2],o[r+12>>2]=0,o[r+16>>2]=0,o[r+20>>2]=0,S=0|o[i+28>>2];do{if((0|t)==(0|S)){if((0|t)>=(0|(S=0|t?t<<1:1))){x=t,S=t;break}if(0|S?(o[4546]=1+(0|o[4546]),0|(x=0|ye(16+(12*S|3)|0))?(o[(x+19&-16)-4>>2]=x,M=x+19&-16):M=0,x=0|o[i+24>>2]):(x=t,M=0),(0|x)>0){T=0;do{0|(E=M+(12*T|0)|0)&&(L=(0|o[i+32>>2])+(12*T|0)|0,o[E+0>>2]=o[L+0>>2],o[E+4>>2]=o[L+4>>2],o[E+8>>2]=o[L+8>>2]),T=T+1|0}while((0|T)!=(0|x))}0|(x=0|o[i+32>>2])&&(0|n[i+36|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[x+-4>>2])),o[i+32>>2]=0),n[i+36|0]=1,o[i+32>>2]=M,o[i+28>>2]=S,x=0|o[i+24>>2]}else x=t}while(0);0|(M=(0|o[i+32>>2])+(12*x|0)|0)&&(o[M+0>>2]=o[r+12>>2],o[M+4>>2]=o[r+16>>2],o[M+8>>2]=o[r+20>>2],x=0|o[i+24>>2],S=0|o[i+28>>2]),M=x+1|0,o[i+24>>2]=M,o[r+0>>2]=0,o[r+4>>2]=0,o[r+8>>2]=0;do{if((0|M)==(0|S)){if((0|S)>=(0|(x=0|S?S<<1:1))){M=S;break}if(0|x?(o[4546]=1+(0|o[4546]),0|(S=0|ye(16+(12*x|3)|0))?(o[(S+19&-16)-4>>2]=S,M=S+19&-16):M=0,S=0|o[i+24>>2]):M=0,(0|S)>0){E=0;do{0|(T=M+(12*E|0)|0)&&(L=(0|o[i+32>>2])+(12*E|0)|0,o[T+0>>2]=o[L+0>>2],o[T+4>>2]=o[L+4>>2],o[T+8>>2]=o[L+8>>2]),E=E+1|0}while((0|E)!=(0|S))}0|(S=0|o[i+32>>2])&&(0|n[i+36|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[S+-4>>2])),o[i+32>>2]=0),n[i+36|0]=1,o[i+32>>2]=M,o[i+28>>2]=x,M=0|o[i+24>>2]}}while(0);if(0|(x=(S=0|o[i+32>>2])+(12*M|0)|0)&&(o[x+0>>2]=o[r+0>>2],o[x+4>>2]=o[r+4>>2],o[x+8>>2]=o[r+8>>2],M=0|o[i+24>>2],S=0|o[i+32>>2]),o[i+24>>2]=M+1,o[d>>2]=t,o[20+(0|o[a+8>>2])>>2]=t+1,o[S+(12*t|0)+4>>2]=1,o[S+(12*(t+1|0)|0)+4>>2]=-1,x=0|o[a+12>>2],(0|(M=0|o[x+104>>2]))<0){o[x+104>>2]=h;do{if((0|h)==(0|b)){if((0|b)>=(0|(E=0|b?b<<1:1)))break;do{if(0|E){if(o[4546]=1+(0|o[4546]),!(0|(M=0|ye(16+(E<<2|3)|0)))){M=0;break}o[(M+19&-16)-4>>2]=M,M=M+19&-16}else M=0}while(0);if((0|b)>0){L=0;do{0|(T=M+(L<<2)|0)&&(o[T>>2]=o[v+(L<<2)>>2]),L=L+1|0}while((0|L)!=(0|b))}if(!(0|v)){b=E,v=M;break}o[4548]=1+(0|o[4548]),ke(0|o[v+-4>>2]),b=E,v=M}}while(0);0|(M=v+(h<<2)|0)&&(o[M>>2]=x),x=h+1|0}else x=h,h=M;o[S+(12*t|0)+8>>2]=h,o[S+(12*(t+1|0)|0)+8>>2]=e,t=0|o[d>>2],h=x}(0|l)>-1?(o[(0|o[i+32>>2])+(12*t|0)>>2]=l-t,l=0|o[d>>2]):(l=t,c=t),a=0|o[a>>2]}while((0|a)!=(0|f));o[(0|o[i+32>>2])+(12*c|0)>>2]=l-c}if(!((0|(f=e+1|0))<(0|h)))break;e=f}if((0|e)>-1){a=0;do{if(0|(c=0|o[8+(0|o[v+(a<<2)>>2])>>2])){e=c;do{if((0|o[(h=e+20|0)>>2])>-1){t=0|o[i+44>>2];do{if((0|t)==(0|o[i+48>>2])){if((0|t)>=(0|(l=0|t?t<<1:1)))break;if(0|l?(o[4546]=1+(0|o[4546]),0|(d=0|ye(16+(l<<2|3)|0))?(o[(d+19&-16)-4>>2]=d,d=d+19&-16):d=0,t=0|o[i+44>>2]):d=0,(0|t)>0){b=0;do{0|(S=d+(b<<2)|0)&&(o[S>>2]=o[(0|o[i+52>>2])+(b<<2)>>2]),b=b+1|0}while((0|b)!=(0|t))}0|(t=0|o[i+52>>2])&&(0|n[i+56|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[t+-4>>2])),o[i+52>>2]=0),n[i+56|0]=1,o[i+52>>2]=d,o[i+48>>2]=l,t=0|o[i+44>>2]}}while(0);0|(l=(0|o[i+52>>2])+(t<<2)|0)&&(o[l>>2]=o[h>>2],t=0|o[i+44>>2]),o[i+44>>2]=t+1,h=e;do{o[h+20>>2]=-1,h=0|o[4+(0|o[h+8>>2])>>2]}while((0|h)!=(0|e))}e=0|o[e>>2]}while((0|e)!=(0|c))}a=a+1|0}while((0|a)<(0|f))}0|v&&(o[4548]=1+(0|o[4548]),ke(0|o[v+-4>>2]))}!function(i){i|=0;var t=0,e=0,r=0;t=u,e=0|o[i+92>>2],!(0|e)||(0|n[i+96|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+92>>2]=0);if(n[i+96|0]=1,o[i+92>>2]=0,o[i+84>>2]=0,o[i+88>>2]=0,e=0|o[i+64>>2],!!(0|e))do{o[i+64>>2]=o[e+8>>2],0|(r=0|o[e>>2])&&(o[4548]=1+(0|o[4548]),ke(0|o[r+-4>>2])),o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2]),e=0|o[i+64>>2]}while(0|e);if(r=0|o[i+48>>2],!!(0|r))do{o[i+48>>2]=o[r+8>>2],0|(e=0|o[r>>2])&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[4548]=1+(0|o[4548]),ke(0|o[r+-4>>2]),r=0|o[i+48>>2]}while(0|r);if(e=0|o[i+32>>2],!(0|e))return void(u=t);do{o[i+32>>2]=o[e+8>>2],0|(r=0|o[e>>2])&&(o[4548]=1+(0|o[4548]),ke(0|o[r+-4>>2])),o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2]),e=0|o[i+32>>2]}while(0|e);u=t}(r+56|0),u=r}function Tt(i,t,e){t|=0,e|=0;var n,r,f,a,s=0,c=0,h=0,l=0;for(a=u,u=u+16|0,s=0|o[(i|=0)+12>>2],r=0|o[s+((e+t|0)/2<<4)>>2],f=0|o[s+((e+t|0)/2<<4)+4>>2],n=0|o[s+((e+t|0)/2<<4)+8>>2],c=t,h=e;;){for(;;){if((0|(l=0|o[s+(c<<4)+4>>2]))>=(0|f)){if((0|l)!=(0|f))break;if((0|(l=0|o[s+(c<<4)>>2]))>=(0|r)){if((0|l)!=(0|r))break;if((0|o[s+(c<<4)+8>>2])>=(0|n))break}}c=c+1|0}for(;;){if((0|f)>=(0|(l=0|o[s+(h<<4)+4>>2]))){if((0|f)!=(0|l))break;if((0|r)>=(0|(l=0|o[s+(h<<4)>>2]))){if((0|r)!=(0|l))break;if((0|n)>=(0|o[s+(h<<4)+8>>2]))break}}h=h+-1|0}if((0|c)<=(0|h)&&(l=s+(c<<4)|0,o[a+0>>2]=o[l+0>>2],o[a+4>>2]=o[l+4>>2],o[a+8>>2]=o[l+8>>2],o[a+12>>2]=o[l+12>>2],s=s+(h<<4)|0,o[l+0>>2]=o[s+0>>2],o[l+4>>2]=o[s+4>>2],o[l+8>>2]=o[s+8>>2],o[l+12>>2]=o[s+12>>2],l=(0|o[i+12>>2])+(h<<4)|0,o[l+0>>2]=o[a+0>>2],o[l+4>>2]=o[a+4>>2],o[l+8>>2]=o[a+8>>2],o[l+12>>2]=o[a+12>>2],c=c+1|0,h=h+-1|0),(0|c)>(0|h))break;s=0|o[i+12>>2]}(0|h)>(0|t)&&Tt(i,t,h),(0|c)>=(0|e)||Tt(i,c,e),u=a}function Lt(i){i|=0;var t,e=0;t=u;do{o[i+4>>2]=0,s[i+8>>2]=0,0|(e=0|o[i+24>>2])&&Lt(e),i=0|o[i+28>>2]}while(0|i);u=t}function It(i){i|=0;var t,e=0,n=0,r=0;if(t=u,u=u+16|0,e=0|o[4564],(0|o[e>>2])!=(0|i)){r=0|o[e+24>>2];i:do{if(0|r)for(;;){if((0|o[r>>2])==(0|i)){e=r;break i}if(!(0|(r=0|o[r+28>>2]))){n=5;break}}else n=5}while(0);if(5==(0|n)){n=0|ye(36);i:do{if(!(0|n)){for(;n=0|o[4700],o[4700]=n+0,0|n;)if(Nn[3&n](),0|(n=0|ye(36)))break i;r=0|V(4),o[r>>2]=18640,B(0|r,18688,235)}}while(0);o[n>>2]=i,r=n+20|0,o[(i=n+4|0)+0>>2]=0,o[i+4>>2]=0,o[i+8>>2]=0,o[i+12>>2]=0,o[r>>2]=e,o[n+24>>2]=0,o[(r=n+28|0)>>2]=0,o[n+32>>2]=0,Lt(n),o[r>>2]=o[e+24>>2],o[e+24>>2]=n,e=n}o[4564]=e}o[(n=e+4|0)>>2]=1+(0|o[n>>2]),r=0|o[(n=e+16|0)>>2],o[n>>2]=r+1,0|r||(G(0|t,0),r=0|o[4550],o[e+12>>2]=(0|o[t+4>>2])-(0|o[r+4>>2])+(1e6*((0|o[t>>2])-(0|o[r>>2])|0)|0)),u=t}function At(i,t){i|=0,t|=0;var e;e=u,u=u+16|0,o[e>>2]=t,t=0|o[h>>2],S(0|t,0|i,0|e),N(10,0|t),F()}function Dt(i,t){t|=0;var e,f,a=0,s=0;e=u,u=u+64|0,a=0|o[(i|=0)>>2],f=i+(0|o[a+-8>>2])|0,a=0|o[a+-4>>2],o[e>>2]=t,o[e+4>>2]=i,o[e+8>>2]=18896,i=(s=e+12|0)+40|0;do{o[s>>2]=0,s=s+4|0}while((0|s)<(0|i));if(r[e+52>>1]=0,n[e+54|0]=0,(0|a)==(0|t))return o[e+48>>2]=1,wn[7&o[20+(0|o[a>>2])>>2]](a,e,f,f,1,0),s=1==(0|o[e+24>>2])?f:0,u=e,0|s;if(tn[31&o[24+(0|o[a>>2])>>2]](a,e,f,1,0),1==(0|(t=0|o[e+36>>2]))){if(1!=(0|o[e+24>>2])){if(0|o[e+40>>2])return u=e,0|(s=0);if(1!=(0|o[e+28>>2]))return u=e,0|(s=0);if(1!=(0|o[e+32>>2]))return u=e,0|(s=0)}return s=0|o[e+16>>2],u=e,0|s}return 0|t||1!=(0|o[e+40>>2])||1!=(0|o[e+28>>2])?(u=e,0|(s=0)):(s=1==(0|o[e+32>>2])?0|o[e+20>>2]:0,u=e,0|s)}function Ot(i,t,e){i|=0,t|=0,e|=0;var n,r=0,f=0,a=0,s=0,c=0,h=0,l=0,d=0;for(n=u;;){for(r=0|o[i+12>>2],f=0|o[r+((t+e|0)/2<<2)>>2],h=t,c=e;;){if((0|(a=0|o[208+(0|o[f+28>>2])>>2]))>-1)for(;s=0|o[r+(h<<2)>>2],(0|(l=0|o[208+(0|o[s+28>>2])>>2]))>-1||(l=0|o[208+(0|o[s+32>>2])>>2]),(0|l)<(0|a);)h=h+1|0;else for(l=0|o[208+(0|o[f+32>>2])>>2];s=0|o[r+(h<<2)>>2],(0|(d=0|o[208+(0|o[s+28>>2])>>2]))>-1||(d=0|o[208+(0|o[s+32>>2])>>2]),(0|d)<(0|l);)h=h+1|0;if((0|a)>-1)for(;l=0|o[r+(c<<2)>>2],(0|(d=0|o[208+(0|o[l+28>>2])>>2]))>-1||(d=0|o[208+(0|o[l+32>>2])>>2]),(0|a)<(0|d);)c=c+-1|0;else for(a=0|o[208+(0|o[f+32>>2])>>2];l=0|o[r+(c<<2)>>2],(0|(d=0|o[208+(0|o[l+28>>2])>>2]))>-1||(d=0|o[208+(0|o[l+32>>2])>>2]),(0|a)<(0|d);)c=c+-1|0;if((0|h)<=(0|c)&&(o[r+(h<<2)>>2]=l,o[(0|o[i+12>>2])+(c<<2)>>2]=s,h=h+1|0,c=c+-1|0),(0|h)>(0|c))break;r=0|o[i+12>>2]}if((0|c)>(0|t)&&Ot(i,t,c),!((0|h)<(0|e)))break;t=h}u=n}function Rt(i){var t,e=0;if(t=u,o[(i|=0)>>2]=2128,0|(e=0|o[i+80>>2])&&(0|n[i+84|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+80>>2]=0),n[i+84|0]=1,o[i+80>>2]=0,o[i+72>>2]=0,o[i+76>>2]=0,0|(e=0|o[i+60>>2])&&(0|n[i+64|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+60>>2]=0),n[i+64|0]=1,o[i+60>>2]=0,o[i+52>>2]=0,o[i+56>>2]=0,!(0|(e=0|o[i+40>>2])))return n[i+44|0]=1,o[i+40>>2]=0,o[i+32>>2]=0,o[(e=i+36|0)>>2]=0,void(u=t);0|n[i+44|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+40>>2]=0,n[i+44|0]=1,o[i+40>>2]=0,o[i+32>>2]=0,o[(e=i+36|0)>>2]=0,u=t}function Pt(i){var t,e=0;if(t=u,o[(i|=0)>>2]=3024,0|(e=0|o[i+144>>2])&&(0|n[i+148|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+144>>2]=0),n[i+148|0]=1,o[i+144>>2]=0,o[i+136>>2]=0,o[i+140>>2]=0,0|(e=0|o[i+76>>2])&&(0|n[i+80|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+76>>2]=0),n[i+80|0]=1,o[i+76>>2]=0,o[i+68>>2]=0,o[i+72>>2]=0,0|(e=0|o[i+56>>2])&&(0|n[i+60|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+56>>2]=0),n[i+60|0]=1,o[i+56>>2]=0,o[i+48>>2]=0,o[i+52>>2]=0,0|(e=0|o[i+36>>2])&&(0|n[i+40|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+36>>2]=0),n[i+40|0]=1,o[i+36>>2]=0,o[i+28>>2]=0,o[i+32>>2]=0,!(0|(e=0|o[i+16>>2])))return n[i+20|0]=1,o[i+16>>2]=0,o[i+8>>2]=0,o[(e=i+12|0)>>2]=0,void(u=t);0|n[i+20|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+16>>2]=0,n[i+20|0]=1,o[i+16>>2]=0,o[i+8>>2]=0,o[(e=i+12|0)>>2]=0,u=t}function Nt(i,t,e){i|=0,e|=0;var r,f,a,c,h,l,d,v,b,_,w,p,m=0,y=0,k=0,g=0;r=u,u=u+64|0,n[(t|=0)+84|0]=0,o[r+0>>2]=o[i+4>>2],o[r+4>>2]=o[i+8>>2],o[r+8>>2]=o[i+12>>2],o[r+12>>2]=o[i+16>>2],o[r+16>>2]=o[i+20>>2],o[r+20>>2]=o[i+24>>2],o[r+24>>2]=o[i+28>>2],o[r+28>>2]=o[i+32>>2],o[r+32>>2]=o[i+36>>2],o[r+36>>2]=o[i+40>>2],o[r+40>>2]=o[i+44>>2],o[r+44>>2]=o[i+48>>2],o[r+48>>2]=o[i+52>>2],o[r+52>>2]=o[i+56>>2],o[r+56>>2]=o[i+60>>2],o[r+60>>2]=o[i+64>>2],e&&0|(m=0|o[i+480>>2])&&on[127&o[8+(0|o[m>>2])>>2]](m,r),p=+s[t+156>>2],_=+s[r>>2],w=+s[t+160>>2],b=+s[r+4>>2],g=+s[t+164>>2],v=+s[r+8>>2],d=+s[r+16>>2],l=+s[r+20>>2],h=+s[r+24>>2],c=+s[r+32>>2],a=+s[r+36>>2],f=+s[r+40>>2],k=p*d+w*l+g*h+ +s[r+52>>2],y=p*c+w*a+g*f+ +s[r+56>>2],s[t+36>>2]=p*_+w*b+g*v+ +s[r+48>>2],s[t+40>>2]=k,s[t+44>>2]=y,s[t+48>>2]=0,y=+s[t+172>>2],k=+s[t+176>>2],g=+s[t+180>>2],s[t+52>>2]=_*y+b*k+v*g,s[t+56>>2]=y*d+k*l+g*h,s[t+60>>2]=y*c+k*a+g*f,s[t+64>>2]=0,g=+s[t+188>>2],k=+s[t+192>>2],y=+s[t+196>>2],s[t+68>>2]=_*g+b*k+v*y,s[t+72>>2]=g*d+k*l+y*h,s[t+76>>2]=g*c+k*a+y*f,s[t+80>>2]=0,u=r}function Bt(i,t,e,n){var r,o,f,a,c,h,l,d,v,b,w,y,k,g,C,j,S,x,M,E,T=0,L=0,I=0,A=0,D=0,O=0,R=0,P=0,N=0;r=u,Nt(i|=0,(t|=0)+(284*(e|=0)|0)|0,n|=0),a=+s[t+(284*e|0)+52>>2],I=+s[t+(284*e|0)+56>>2],d=+s[t+(284*e|0)+60>>2],E=+s[t+(284*e|0)+76>>2],N=+s[t+(284*e|0)+72>>2],k=+s[t+(284*e|0)+68>>2],y=(E*-I-N*-d)*(R=1/+_(+((N*-a-k*-I)*(N*-a-k*-I)+((E*-I-N*-d)*(E*-I-N*-d)+(k*-d-E*-a)*(k*-d-E*-a))))),w=R*(k*-d-E*-a),R*=N*-a-k*-I,T=.5*+s[t+(284*e|0)+232>>2],x=1-((A=+m(+T)/+_(+(a*a+I*I+d*d)))*-I*A*-I*(D=2/((T=+p(+T))*T+(A*-d*A*-d+(A*-a*A*-a+A*-I*A*-I))))+A*-d*A*-d*D),S=A*-a*A*-I*D-T*A*-d*D,M=A*-a*A*-d*D+T*A*-I*D,C=A*-a*A*-I*D+T*A*-d*D,g=1-(A*-a*A*-a*D+A*-d*A*-d*D),j=A*-I*A*-d*D-T*A*-a*D,f=A*-a*A*-d*D-T*A*-I*D,T=A*-I*A*-d*D+T*A*-a*D,D=1-(A*-a*A*-a*D+A*-I*A*-I*D),A=-.5*+s[t+(284*e|0)+236>>2],c=1-(N*(P=+m(+A)/+_(+(E*E+(N*N+k*k))))*N*P*(O=2/((A=+p(+A))*A+(E*P*E*P+(k*P*k*P+N*P*N*P))))+E*P*E*P*O),o=k*P*N*P*O-A*E*P*O,b=k*P*E*P*O+A*N*P*O,h=k*P*N*P*O+A*E*P*O,L=1-(k*P*k*P*O+E*P*E*P*O),v=N*P*E*P*O-A*k*P*O,l=k*P*E*P*O-A*N*P*O,A=N*P*E*P*O+A*k*P*O,O=1-(k*P*k*P*O+N*P*N*P*O),P=+s[t+(284*e|0)+72>>2],N=+s[t+(284*e|0)+76>>2],s[t+(284*e|0)+92>>2]=N*(x*b+S*v+M*O)+(k*(M*l+(S*h+x*c))+P*(M*A+(x*o+S*L))),s[t+(284*e|0)+96>>2]=R*(x*b+S*v+M*O)+(y*(M*l+(S*h+x*c))+w*(M*A+(x*o+S*L))),s[t+(284*e|0)+100>>2]=(x*b+S*v+M*O)*-d+((M*l+(S*h+x*c))*-a+(M*A+(x*o+S*L))*-I),s[t+(284*e|0)+104>>2]=0,s[t+(284*e|0)+108>>2]=N*(C*b+g*v+j*O)+(k*(j*l+(g*h+C*c))+P*(j*A+(C*o+g*L))),s[t+(284*e|0)+112>>2]=R*(C*b+g*v+j*O)+(y*(j*l+(g*h+C*c))+w*(j*A+(C*o+g*L))),s[t+(284*e|0)+116>>2]=(C*b+g*v+j*O)*-d+((j*l+(g*h+C*c))*-a+(j*A+(C*o+g*L))*-I),s[t+(284*e|0)+120>>2]=0,s[t+(284*e|0)+124>>2]=N*(f*b+T*v+D*O)+(k*(D*l+(T*h+f*c))+P*(D*A+(f*o+T*L))),s[t+(284*e|0)+128>>2]=R*(f*b+T*v+D*O)+(y*(D*l+(T*h+f*c))+w*(D*A+(f*o+T*L))),s[t+(284*e|0)+132>>2]=(f*b+T*v+D*O)*-d+((D*l+(T*h+f*c))*-a+(D*A+(f*o+T*L))*-I),s[t+(284*e|0)+136>>2]=0,L=(I=+s[t+(284*e|0)+32>>2])*+s[t+(284*e|0)+56>>2]+ +s[t+(284*e|0)+40>>2],T=I*+s[t+(284*e|0)+60>>2]+ +s[t+(284*e|0)+44>>2],s[t+(284*e|0)+140>>2]=+s[t+(284*e|0)+52>>2]*I+ +s[t+(284*e|0)+36>>2],s[t+(284*e|0)+144>>2]=L,s[t+(284*e|0)+148>>2]=T,s[t+(284*e|0)+152>>2]=0,u=r}function Ft(i,t){t|=0;var e,r,f,a,c,h,l,d,v,b,_,w,p,m,y=0,k=0,g=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0;e=u,o[(i|=0)+236>>2]=2,o[i+312>>2]=0,o[i+316>>2]=0,o[i+320>>2]=0,o[i+324>>2]=0,o[i+328>>2]=0,o[i+332>>2]=0,o[i+336>>2]=0,o[i+340>>2]=0,s[i+544>>2]=1,s[i+548>>2]=1,s[i+552>>2]=1,s[i+556>>2]=0,s[i+348>>2]=1,s[i+352>>2]=1,s[i+356>>2]=1,C=(j=i+360|0)+36|0;do{o[j>>2]=0,j=j+4|0}while((0|j)<(0|C));o[i+412>>2]=0,o[i+416>>2]=0,o[i+420>>2]=0,o[i+424>>2]=0,o[i+428>>2]=0,o[i+432>>2]=0,o[i+436>>2]=0,o[i+440>>2]=0,k=+s[t+92>>2],y=+s[t+96>>2],k=k<0?0:k>1?1:k,s[i+444>>2]=k,y=y<0?0:y>1?1:y,s[i+448>>2]=y,s[i+472>>2]=+s[t+112>>2],s[i+476>>2]=+s[t+116>>2],C=0|o[t+4>>2],o[i+480>>2]=C,o[i+608>>2]=0,o[i+612>>2]=0,n[i+452|0]=0|n[t+120|0],s[i+456>>2]=+s[t+124>>2],s[i+460>>2]=+s[t+128>>2],s[i+464>>2]=+s[t+132>>2],s[i+468>>2]=+s[t+136>>2],0|C?(on[127&o[8+(0|o[C>>2])>>2]](C,i+4|0),S=i+20|0,C=i+36|0,x=i+52|0,j=i+4|0):(o[i+4>>2]=o[t+8>>2],o[i+8>>2]=o[t+12>>2],o[i+12>>2]=o[t+16>>2],o[i+16>>2]=o[t+20>>2],o[i+20>>2]=o[t+24>>2],o[i+24>>2]=o[t+28>>2],o[i+28>>2]=o[t+32>>2],o[i+32>>2]=o[t+36>>2],o[i+36>>2]=o[t+40>>2],o[i+40>>2]=o[t+44>>2],o[i+44>>2]=o[t+48>>2],o[i+48>>2]=o[t+52>>2],o[i+52>>2]=o[t+56>>2],o[i+56>>2]=o[t+60>>2],o[i+60>>2]=o[t+64>>2],o[i+64>>2]=o[t+68>>2],S=i+20|0,C=i+36|0,x=i+52|0,j=i+4|0),o[i+68>>2]=o[j+0>>2],o[i+72>>2]=o[j+4>>2],o[i+76>>2]=o[j+8>>2],o[i+80>>2]=o[j+12>>2],o[i+84>>2]=o[S+0>>2],o[i+88>>2]=o[S+4>>2],o[i+92>>2]=o[S+8>>2],o[i+96>>2]=o[S+12>>2],o[i+100>>2]=o[C+0>>2],o[i+104>>2]=o[C+4>>2],o[i+108>>2]=o[C+8>>2],o[i+112>>2]=o[C+12>>2],o[i+116>>2]=o[x+0>>2],o[i+120>>2]=o[x+4>>2],o[i+124>>2]=o[x+8>>2],o[i+128>>2]=o[x+12>>2],o[i+132>>2]=0,o[i+136>>2]=0,o[i+140>>2]=0,o[i+144>>2]=0,o[i+148>>2]=0,o[i+152>>2]=0,o[i+156>>2]=0,o[i+160>>2]=0,s[i+224>>2]=+s[t+100>>2],s[i+232>>2]=+s[t+104>>2],s[i+228>>2]=+s[t+108>>2],on[127&o[12+(0|o[i>>2])>>2]](i,0|o[t+72>>2]),C=0|o[812],o[812]=C+1,o[i+508>>2]=C,k=+s[t>>2],C=0|o[i+204>>2],0==k?(o[i+204>>2]=1|C,s[i+344>>2]=0,y=0):(o[i+204>>2]=-2&C,s[i+344>>2]=1/k,y=1/k),g=k*+s[i+384>>2],M=k*+s[i+388>>2],s[i+364>>2]=k*+s[i+380>>2],s[i+368>>2]=g,s[i+372>>2]=M,s[i+376>>2]=0,k=0!=(k=+s[t+76>>2])?1/k:0,g=0!=(g=+s[t+80>>2])?1/g:0,M=0!=(M=+s[t+84>>2])?1/M:0,s[i+396>>2]=k,s[i+400>>2]=g,s[i+404>>2]=M,s[i+408>>2]=0,T=y*+s[i+352>>2],E=y*+s[i+356>>2],s[i+560>>2]=y*+s[i+348>>2],s[i+564>>2]=T,s[i+568>>2]=E,s[i+572>>2]=0,T=(E=+s[i+4>>2])*k,m=(v=+s[i+8>>2])*g,p=(d=+s[i+12>>2])*M,w=k*(l=+s[i+20>>2]),_=g*(h=+s[i+24>>2]),b=M*(c=+s[i+28>>2]),f=k*(a=+s[i+36>>2]),y=g*(r=+s[i+40>>2]),k=M*(g=+s[i+44>>2]),s[i+264>>2]=E*T+v*m+d*p,s[i+268>>2]=T*l+m*h+p*c,s[i+272>>2]=T*a+m*r+p*g,s[i+276>>2]=0,s[i+280>>2]=E*w+v*_+d*b,s[i+284>>2]=l*w+h*_+c*b,s[i+288>>2]=w*a+_*r+b*g,s[i+292>>2]=0,s[i+296>>2]=E*f+v*y+d*k,s[i+300>>2]=l*f+h*y+c*k,s[i+304>>2]=a*f+r*y+g*k,s[i+308>>2]=0,o[i+504>>2]=0,o[i+512>>2]=0,o[i+516>>2]=0,o[i+520>>2]=0,o[i+524>>2]=0,o[i+528>>2]=0,o[i+532>>2]=0,o[i+536>>2]=0,o[i+540>>2]=0,g=(k=+s[i+344>>2])*+s[i+352>>2],M=k*+s[i+356>>2],s[i+560>>2]=+s[i+348>>2]*k,s[i+564>>2]=g,s[i+568>>2]=M,C=(j=i+572|0)+36|0;do{o[j>>2]=0,j=j+4|0}while((0|j)<(0|C));u=e}function Vt(i,t,e,r,f){t=+t,e|=0,r|=0,f|=0;var a;a=u,u=u+144|0,s[(i|=0)+164>>2]=1,s[i+168>>2]=1,s[i+172>>2]=1,s[i+176>>2]=0,o[i+180>>2]=0,s[i+184>>2]=0xde0b6b000000000,o[i+188>>2]=0,o[i+192>>2]=0,o[i+196>>2]=0,o[i+200>>2]=0,o[i+204>>2]=1,o[i+208>>2]=-1,o[i+212>>2]=-1,o[i+216>>2]=1,s[i+220>>2]=0,s[i+224>>2]=.5,s[i+228>>2]=0,s[i+232>>2]=0,o[i+236>>2]=1,o[i+240>>2]=0,s[i+244>>2]=1,o[i+248>>2]=0,o[i+252>>2]=0,o[i+256>>2]=0,o[i+260>>2]=0,s[i+4>>2]=1,o[i+8>>2]=0,o[i+12>>2]=0,o[i+16>>2]=0,o[i+20>>2]=0,s[i+24>>2]=1,o[i+28>>2]=0,o[i+32>>2]=0,o[i+36>>2]=0,o[i+40>>2]=0,s[i+44>>2]=1,o[i+48>>2]=0,o[i+52>>2]=0,o[i+56>>2]=0,o[i+60>>2]=0,o[i+64>>2]=0,o[i>>2]=3216,n[i+500|0]=1,o[i+496>>2]=0,o[i+488>>2]=0,o[i+492>>2]=0,s[a>>2]=t,o[a+4>>2]=e,o[a+72>>2]=r,o[a+76>>2]=o[f+0>>2],o[a+80>>2]=o[f+4>>2],o[a+84>>2]=o[f+8>>2],o[a+88>>2]=o[f+12>>2],s[a+92>>2]=0,s[a+96>>2]=0,s[a+100>>2]=.5,s[a+104>>2]=0,s[a+108>>2]=0,s[a+112>>2]=.800000011920929,s[a+116>>2]=1,n[a+120|0]=0,s[a+124>>2]=.004999999888241291,s[a+128>>2]=.009999999776482582,s[a+132>>2]=.009999999776482582,s[a+136>>2]=.009999999776482582,s[a+8>>2]=1,o[a+12>>2]=0,o[a+16>>2]=0,o[a+20>>2]=0,o[a+24>>2]=0,s[a+28>>2]=1,o[a+32>>2]=0,o[a+36>>2]=0,o[a+40>>2]=0,o[a+44>>2]=0,s[a+48>>2]=1,o[a+52>>2]=0,o[a+56>>2]=0,o[a+60>>2]=0,o[a+64>>2]=0,o[a+68>>2]=0,Ft(i,a),u=a}function Ut(i,t,e){t=+t,e|=0;var n,r=0,f=0,a=0;n=0|o[(i|=0)+204>>2],0==t?(o[i+204>>2]=1|n,s[i+344>>2]=0,r=0):(o[i+204>>2]=-2&n,s[i+344>>2]=1/t,r=1/t),f=+s[i+384>>2]*t,a=+s[i+388>>2]*t,s[i+364>>2]=+s[i+380>>2]*t,s[i+368>>2]=f,s[i+372>>2]=a,s[i+376>>2]=0,t=0!=(t=+s[e>>2])?1/t:0,f=0!=(f=+s[e+4>>2])?1/f:0,a=0!=(a=+s[e+8>>2])?1/a:0,s[i+396>>2]=t,s[i+400>>2]=f,s[i+404>>2]=a,s[i+408>>2]=0,f=r*+s[i+352>>2],a=r*+s[i+356>>2],s[i+560>>2]=+s[i+348>>2]*r,s[i+564>>2]=f,s[i+568>>2]=a,s[i+572>>2]=0}function Gt(i,t){t|=0;var e,n,r,f,a,c,h,l,d,v,b,_,w,p=0,m=0,y=0,k=0,g=0,C=0,j=0;e=u,2&o[(i|=0)+204>>2]?(o[i+68>>2]=o[i+4>>2],o[i+72>>2]=o[i+8>>2],o[i+76>>2]=o[i+12>>2],o[i+80>>2]=o[i+16>>2],o[i+84>>2]=o[i+20>>2],o[i+88>>2]=o[i+24>>2],o[i+92>>2]=o[i+28>>2],o[i+96>>2]=o[i+32>>2],o[i+100>>2]=o[i+36>>2],o[i+104>>2]=o[i+40>>2],o[i+108>>2]=o[i+44>>2],o[i+112>>2]=o[i+48>>2],o[i+116>>2]=o[i+52>>2],o[i+120>>2]=o[i+56>>2],o[i+124>>2]=o[i+60>>2],o[i+128>>2]=o[i+64>>2],C=t,k=i+20|0,m=t+16|0,p=i+36|0,g=t+32|0,y=i+52|0,t=t+48|0,j=i+4|0):(o[i+68>>2]=o[t+0>>2],o[i+72>>2]=o[t+4>>2],o[i+76>>2]=o[t+8>>2],o[i+80>>2]=o[t+12>>2],o[i+84>>2]=o[t+16>>2],o[i+88>>2]=o[t+20>>2],o[i+92>>2]=o[t+24>>2],o[i+96>>2]=o[t+28>>2],o[i+100>>2]=o[t+32>>2],o[i+104>>2]=o[t+36>>2],o[i+108>>2]=o[t+40>>2],o[i+112>>2]=o[t+44>>2],o[i+116>>2]=o[t+48>>2],o[i+120>>2]=o[t+52>>2],o[i+124>>2]=o[t+56>>2],o[i+128>>2]=o[t+60>>2],C=t,k=i+20|0,m=t+16|0,p=i+36|0,g=t+32|0,y=i+52|0,t=t+48|0,j=i+4|0),o[i+132>>2]=o[i+312>>2],o[i+136>>2]=o[i+316>>2],o[i+140>>2]=o[i+320>>2],o[i+144>>2]=o[i+324>>2],o[i+148>>2]=o[i+328>>2],o[i+152>>2]=o[i+332>>2],o[i+156>>2]=o[i+336>>2],o[i+160>>2]=o[i+340>>2],o[j+0>>2]=o[C+0>>2],o[j+4>>2]=o[C+4>>2],o[j+8>>2]=o[C+8>>2],o[j+12>>2]=o[C+12>>2],o[k+0>>2]=o[m+0>>2],o[k+4>>2]=o[m+4>>2],o[k+8>>2]=o[m+8>>2],o[k+12>>2]=o[m+12>>2],o[p+0>>2]=o[g+0>>2],o[p+4>>2]=o[g+4>>2],o[p+8>>2]=o[g+8>>2],o[p+12>>2]=o[g+12>>2],o[y+0>>2]=o[t+0>>2],o[y+4>>2]=o[t+4>>2],o[y+8>>2]=o[t+8>>2],o[y+12>>2]=o[t+12>>2],w=+s[i+4>>2],h=+s[i+396>>2],_=+s[i+8>>2],a=+s[i+400>>2],b=+s[i+12>>2],r=+s[i+404>>2],v=+s[i+20>>2],d=+s[i+24>>2],l=+s[i+28>>2],c=+s[i+36>>2],f=+s[i+40>>2],n=+s[i+44>>2],s[i+264>>2]=w*w*h+_*_*a+b*b*r,s[i+268>>2]=w*h*v+_*a*d+b*r*l,s[i+272>>2]=w*h*c+_*a*f+b*r*n,s[i+276>>2]=0,s[i+280>>2]=w*h*v+_*a*d+b*r*l,s[i+284>>2]=v*h*v+d*a*d+l*r*l,s[i+288>>2]=h*v*c+a*d*f+r*l*n,s[i+292>>2]=0,s[i+296>>2]=w*h*c+_*a*f+b*r*n,s[i+300>>2]=v*h*c+d*a*f+l*r*n,s[i+304>>2]=c*h*c+f*a*f+n*r*n,s[i+308>>2]=0,u=e}function Wt(i,t){t|=0;var e,r=0,f=0,a=0,s=0,c=0;e=u,a=0|o[(i|=0)+488>>2];i:do{if((0|a)>0){for(c=0|o[i+496>>2],s=0;f=s+1|0,(0|o[c+(s<<2)>>2])!=(0|t);){if(!((0|f)<(0|a)))break i;s=f}if((0|s)!=(0|a))return o[(c=i+256|0)>>2]=1,void(u=e)}}while(0);if((0|a)==(0|o[i+492>>2])&&(0|a)<(0|(r=0|a?a<<1:1))){if(0|r?(o[4546]=1+(0|o[4546]),0|(f=0|ye(16+(r<<2|3)|0))?(o[(f+19&-16)-4>>2]=f,f=f+19&-16):f=0,a=0|o[i+488>>2]):f=0,(0|a)>0){c=0;do{0|(s=f+(c<<2)|0)&&(o[s>>2]=o[(0|o[i+496>>2])+(c<<2)>>2]),c=c+1|0}while((0|c)!=(0|a))}0|(s=0|o[i+496>>2])&&(0|n[i+500|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[s+-4>>2]),a=0|o[i+488>>2]),o[i+496>>2]=0),n[i+500|0]=1,o[i+496>>2]=f,o[i+492>>2]=r}0|(r=(0|o[i+496>>2])+(a<<2)|0)&&(o[r>>2]=t),o[i+488>>2]=a+1,o[(c=i+256|0)>>2]=1,u=e}function zt(i){var t,e=0;if(t=u,o[(i|=0)>>2]=3328,0|(e=0|o[i+176>>2])&&(0|n[i+180|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+176>>2]=0),n[i+180|0]=1,o[i+176>>2]=0,o[i+168>>2]=0,o[i+172>>2]=0,0|(e=0|o[i+156>>2])&&(0|n[i+160|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+156>>2]=0),n[i+160|0]=1,o[i+156>>2]=0,o[i+148>>2]=0,o[i+152>>2]=0,0|(e=0|o[i+136>>2])&&(0|n[i+140|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+136>>2]=0),n[i+140|0]=1,o[i+136>>2]=0,o[i+128>>2]=0,o[i+132>>2]=0,0|(e=0|o[i+116>>2])&&(0|n[i+120|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+116>>2]=0),n[i+120|0]=1,o[i+116>>2]=0,o[i+108>>2]=0,o[i+112>>2]=0,0|(e=0|o[i+96>>2])&&(0|n[i+100|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+96>>2]=0),n[i+100|0]=1,o[i+96>>2]=0,o[i+88>>2]=0,o[i+92>>2]=0,0|(e=0|o[i+76>>2])&&(0|n[i+80|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+76>>2]=0),n[i+80|0]=1,o[i+76>>2]=0,o[i+68>>2]=0,o[i+72>>2]=0,0|(e=0|o[i+56>>2])&&(0|n[i+60|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+56>>2]=0),n[i+60|0]=1,o[i+56>>2]=0,o[i+48>>2]=0,o[i+52>>2]=0,0|(e=0|o[i+36>>2])&&(0|n[i+40|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+36>>2]=0),n[i+40|0]=1,o[i+36>>2]=0,o[i+28>>2]=0,o[i+32>>2]=0,!(0|(e=0|o[i+16>>2])))return n[i+20|0]=1,o[i+16>>2]=0,o[i+8>>2]=0,o[(e=i+12|0)>>2]=0,void(u=t);0|n[i+20|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+16>>2]=0,n[i+20|0]=1,o[i+16>>2]=0,o[i+8>>2]=0,o[(e=i+12|0)>>2]=0,u=t}function Xt(i,t,e){i|=0,t|=0;var n,r,f,a,c=0,h=0,l=0;a=u,c=+s[(e|=0)+100>>2],f=+s[e+16>>2],n=+s[e+20>>2],r=+s[e+24>>2],h=+s[e+108>>2],h=+s[e+112>>2]-c*+s[e+116>>2]-(f*+s[i+64>>2]+n*+s[i+68>>2]+r*+s[i+72>>2]+(+s[e>>2]*+s[i+80>>2]+ +s[e+4>>2]*+s[i+84>>2]+ +s[e+8>>2]*+s[i+88>>2]))*h-h*(+s[e+48>>2]*+s[t+64>>2]+ +s[e+52>>2]*+s[t+68>>2]+ +s[e+56>>2]*+s[t+72>>2]+(+s[e+32>>2]*+s[t+80>>2]+ +s[e+36>>2]*+s[t+84>>2]+ +s[e+40>>2]*+s[t+88>>2])),l=+s[e+120>>2];do{if(!(c+h<l)){if(c+h>(l=+s[e+124>>2])){s[e+100>>2]=l,h=l-c;break}s[e+100>>2]=c+h;break}s[e+100>>2]=l,h=l-c}while(0);0|o[i+240>>2]&&(l=h*+s[i+132>>2]*n*+s[i+116>>2],c=h*+s[i+136>>2]*r*+s[i+120>>2],s[i+64>>2]=+s[i+112>>2]*h*+s[i+128>>2]*f+ +s[i+64>>2],s[i+68>>2]=l+ +s[i+68>>2],s[i+72>>2]=c+ +s[i+72>>2],c=h*+s[i+100>>2]*+s[e+68>>2],l=h*+s[i+104>>2]*+s[e+72>>2],s[i+80>>2]=h*+s[i+96>>2]*+s[e+64>>2]+ +s[i+80>>2],s[i+84>>2]=c+ +s[i+84>>2],s[i+88>>2]=l+ +s[i+88>>2]),0|o[t+240>>2]?(l=h*+s[t+132>>2]*+s[e+52>>2]*+s[t+116>>2],c=h*+s[t+136>>2]*+s[e+56>>2]*+s[t+120>>2],s[t+64>>2]=+s[t+112>>2]*h*+s[t+128>>2]*+s[e+48>>2]+ +s[t+64>>2],s[t+68>>2]=l+ +s[t+68>>2],s[t+72>>2]=c+ +s[t+72>>2],c=h*+s[t+100>>2]*+s[e+84>>2],l=h*+s[t+104>>2]*+s[e+88>>2],s[t+80>>2]=h*+s[t+96>>2]*+s[e+80>>2]+ +s[t+80>>2],s[t+84>>2]=c+ +s[t+84>>2],s[t+88>>2]=l+ +s[t+88>>2],u=a):u=a}function $t(i,t,e){i|=0,t|=0;var n,r,f,a,c=0,h=0,l=0,d=0;a=u,l=+s[(e|=0)+100>>2],f=+s[e+16>>2],n=+s[e+20>>2],r=+s[e+24>>2],d=+s[e+108>>2],l+(d=+s[e+112>>2]-l*+s[e+116>>2]-(f*+s[i+64>>2]+n*+s[i+68>>2]+r*+s[i+72>>2]+(+s[e>>2]*+s[i+80>>2]+ +s[e+4>>2]*+s[i+84>>2]+ +s[e+8>>2]*+s[i+88>>2]))*d-d*(+s[e+48>>2]*+s[t+64>>2]+ +s[e+52>>2]*+s[t+68>>2]+ +s[e+56>>2]*+s[t+72>>2]+(+s[e+32>>2]*+s[t+80>>2]+ +s[e+36>>2]*+s[t+84>>2]+ +s[e+40>>2]*+s[t+88>>2])))<(h=+s[e+120>>2])?c=h-l:(c=d,h=l+d),s[e+100>>2]=h,0|o[i+240>>2]&&(d=c*+s[i+132>>2]*n*+s[i+116>>2],l=c*+s[i+136>>2]*r*+s[i+120>>2],s[i+64>>2]=+s[i+112>>2]*c*+s[i+128>>2]*f+ +s[i+64>>2],s[i+68>>2]=d+ +s[i+68>>2],s[i+72>>2]=l+ +s[i+72>>2],l=c*+s[i+100>>2]*+s[e+68>>2],d=c*+s[i+104>>2]*+s[e+72>>2],s[i+80>>2]=c*+s[i+96>>2]*+s[e+64>>2]+ +s[i+80>>2],s[i+84>>2]=l+ +s[i+84>>2],s[i+88>>2]=d+ +s[i+88>>2]),0|o[t+240>>2]?(d=c*+s[t+132>>2]*+s[e+52>>2]*+s[t+116>>2],l=c*+s[t+136>>2]*+s[e+56>>2]*+s[t+120>>2],s[t+64>>2]=+s[t+112>>2]*c*+s[t+128>>2]*+s[e+48>>2]+ +s[t+64>>2],s[t+68>>2]=d+ +s[t+68>>2],s[t+72>>2]=l+ +s[t+72>>2],l=c*+s[t+100>>2]*+s[e+84>>2],d=c*+s[t+104>>2]*+s[e+88>>2],s[t+80>>2]=c*+s[t+96>>2]*+s[e+80>>2]+ +s[t+80>>2],s[t+84>>2]=l+ +s[t+84>>2],s[t+88>>2]=d+ +s[t+88>>2],u=a):u=a}function Ht(i,t,e){i|=0,t|=0;var n,r,f,a,c,h=0,l=0,d=0;a=u,0!=(h=+s[(e|=0)+128>>2])?(o[828]=1+(0|o[828]),c=+s[e+96>>2],r=+s[e+16>>2],f=+s[e+20>>2],n=+s[e+24>>2],d=+s[e+108>>2],c+(d=h-c*+s[e+116>>2]-(r*+s[i+144>>2]+f*+s[i+148>>2]+n*+s[i+152>>2]+(+s[e>>2]*+s[i+160>>2]+ +s[e+4>>2]*+s[i+164>>2]+ +s[e+8>>2]*+s[i+168>>2]))*d-d*(+s[e+48>>2]*+s[t+144>>2]+ +s[e+52>>2]*+s[t+148>>2]+ +s[e+56>>2]*+s[t+152>>2]+(+s[e+32>>2]*+s[t+160>>2]+ +s[e+36>>2]*+s[t+164>>2]+ +s[e+40>>2]*+s[t+168>>2])))<(l=+s[e+120>>2])?h=l-c:(h=d,l=c+d),s[e+96>>2]=l,0|o[i+240>>2]&&(d=h*+s[i+132>>2]*f*+s[i+116>>2],l=h*+s[i+136>>2]*n*+s[i+120>>2],s[i+144>>2]=+s[i+112>>2]*h*+s[i+128>>2]*r+ +s[i+144>>2],s[i+148>>2]=d+ +s[i+148>>2],s[i+152>>2]=l+ +s[i+152>>2],l=h*+s[i+100>>2]*+s[e+68>>2],d=h*+s[i+104>>2]*+s[e+72>>2],s[i+160>>2]=h*+s[i+96>>2]*+s[e+64>>2]+ +s[i+160>>2],s[i+164>>2]=l+ +s[i+164>>2],s[i+168>>2]=d+ +s[i+168>>2]),0|o[t+240>>2]?(d=h*+s[t+132>>2]*+s[e+52>>2]*+s[t+116>>2],l=h*+s[t+136>>2]*+s[e+56>>2]*+s[t+120>>2],s[t+144>>2]=+s[t+112>>2]*h*+s[t+128>>2]*+s[e+48>>2]+ +s[t+144>>2],s[t+148>>2]=d+ +s[t+148>>2],s[t+152>>2]=l+ +s[t+152>>2],l=h*+s[t+100>>2]*+s[e+84>>2],d=h*+s[t+104>>2]*+s[e+88>>2],s[t+160>>2]=h*+s[t+96>>2]*+s[e+80>>2]+ +s[t+160>>2],s[t+164>>2]=l+ +s[t+164>>2],s[t+168>>2]=d+ +s[t+168>>2],u=a):u=a):u=a}function qt(i,t,e){i|=0,e=+e;var n,r=0,f=0,a=0,c=0,h=0,l=0,d=0,v=0;if(n=u,0|(t|=0)&&2&o[t+236>>2]||(t=0),r=!(0|t),o[i+64>>2]=0,o[i+68>>2]=0,o[i+72>>2]=0,o[i+76>>2]=0,o[i+80>>2]=0,o[i+84>>2]=0,o[i+88>>2]=0,o[i+92>>2]=0,o[i+144>>2]=0,o[i+148>>2]=0,o[i+152>>2]=0,o[i+156>>2]=0,o[i+160>>2]=0,o[i+164>>2]=0,o[i+168>>2]=0,o[i+172>>2]=0,!r)return r=t+4|0,o[i+0>>2]=o[r+0>>2],o[i+4>>2]=o[r+4>>2],o[i+8>>2]=o[r+8>>2],o[i+12>>2]=o[r+12>>2],r=t+20|0,o[i+16>>2]=o[r+0>>2],o[i+20>>2]=o[r+4>>2],o[i+24>>2]=o[r+8>>2],o[i+28>>2]=o[r+12>>2],r=t+36|0,o[i+32>>2]=o[r+0>>2],o[i+36>>2]=o[r+4>>2],o[i+40>>2]=o[r+8>>2],o[i+44>>2]=o[r+12>>2],r=t+52|0,o[i+48>>2]=o[r+0>>2],o[i+52>>2]=o[r+4>>2],o[i+56>>2]=o[r+8>>2],o[i+60>>2]=o[r+12>>2],d=t+348|0,h=(l=+s[(r=t+344|0)>>2])*+s[t+352>>2],c=l*+s[t+356>>2],s[i+128>>2]=l*+s[d>>2],s[i+132>>2]=h,s[i+136>>2]=c,s[i+140>>2]=0,o[i+240>>2]=t,v=t+544|0,o[i+96>>2]=o[v+0>>2],o[i+100>>2]=o[v+4>>2],o[i+104>>2]=o[v+8>>2],o[i+108>>2]=o[v+12>>2],o[i+112>>2]=o[d+0>>2],o[i+116>>2]=o[d+4>>2],o[i+120>>2]=o[d+8>>2],o[i+124>>2]=o[d+12>>2],d=t+312|0,o[i+176>>2]=o[d+0>>2],o[i+180>>2]=o[d+4>>2],o[i+184>>2]=o[d+8>>2],o[i+188>>2]=o[d+12>>2],d=t+328|0,o[i+192>>2]=o[d+0>>2],o[i+196>>2]=o[d+4>>2],o[i+200>>2]=o[d+8>>2],o[i+204>>2]=o[d+12>>2],h=(c=+s[r>>2])*+s[t+416>>2]*e,l=c*+s[t+420>>2]*e,s[i+208>>2]=c*+s[t+412>>2]*e,s[i+212>>2]=h,s[i+216>>2]=l,s[i+220>>2]=0,l=+s[t+428>>2],h=+s[t+432>>2],c=+s[t+436>>2],a=(l*+s[t+268>>2]+h*+s[t+284>>2]+c*+s[t+300>>2])*e,f=(l*+s[t+272>>2]+h*+s[t+288>>2]+c*+s[t+304>>2])*e,s[i+224>>2]=(+s[t+264>>2]*l+ +s[t+280>>2]*h+ +s[t+296>>2]*c)*e,s[i+228>>2]=a,s[i+232>>2]=f,s[i+236>>2]=0,void(u=n);s[i>>2]=1,o[i+4>>2]=0,o[i+8>>2]=0,o[i+12>>2]=0,o[i+16>>2]=0,s[i+20>>2]=1,o[i+24>>2]=0,o[i+28>>2]=0,o[i+32>>2]=0,o[i+36>>2]=0,s[i+40>>2]=1,o[i+44>>2]=0,o[i+48>>2]=0,o[i+52>>2]=0,o[i+56>>2]=0,o[i+60>>2]=0,o[i+240>>2]=0,o[i+128>>2]=0,o[i+132>>2]=0,o[i+136>>2]=0,o[i+140>>2]=0,s[i+96>>2]=1,s[i+100>>2]=1,s[i+104>>2]=1,s[i+108>>2]=0,s[i+112>>2]=1,s[i+116>>2]=1,s[i+120>>2]=1,s[i+124>>2]=0,i=(t=i+176|0)+64|0;do{o[t>>2]=0,t=t+4|0}while((0|t)<(0|i));u=n}function Kt(i,t){t|=0;var e,n,r,f,a,c,h,l,d,v,b,_,w,p,m=0;e=u,0|(i|=0)&&1&o[i+180>>2]?(_=+s[i+4>>2],p=+s[t>>2],d=+s[i+20>>2],w=+s[t+4>>2],c=+s[i+36>>2],m=+s[t+8>>2],b=+s[i+8>>2],l=+s[i+24>>2],f=+s[i+40>>2],v=+s[i+12>>2],h=+s[i+28>>2],n=+s[i+44>>2],a=(_*p+d*w+c*m)*+s[i+164>>2],r=(p*b+w*l+m*f)*+s[i+168>>2],m=(p*v+w*h+m*n)*+s[i+172>>2],s[t>>2]=_*a+b*r+v*m,s[t+4>>2]=d*a+l*r+h*m,s[t+8>>2]=c*a+f*r+n*m,s[t+12>>2]=0,u=e):u=e}function Yt(i,t,e,r,f,a,c,h,l,d,v){t|=0,e|=0,r|=0,f|=0,a|=0,c|=0,h|=0,l=+l,d=+d,v=+v;var b,_,w,p=0,m=0,y=0,k=0,g=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0,L=0,I=0,A=0,D=0,O=0;if(b=u,(0|(_=0|o[(i|=0)+68>>2]))==(0|o[i+72>>2])&&(0|_)<(0|(p=0|_?_<<1:1))){if(0|p?(o[4546]=1+(0|o[4546]),0|(C=0|ye(16+(152*p|3)|0))?(o[(C+19&-16)-4>>2]=C,L=C+19&-16):L=0,C=0|o[i+68>>2]):(C=_,L=0),(0|C)>0){I=0;do{Se(L+(152*I|0)|0,(0|o[i+76>>2])+(152*I|0)|0,152),I=I+1|0}while((0|I)!=(0|C))}0|(C=0|o[i+76>>2])&&(0|n[i+80|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[C+-4>>2])),o[i+76>>2]=0),n[i+80|0]=1,o[i+76>>2]=L,o[i+72>>2]=p,p=0|o[i+68>>2]}else p=_;if(o[i+68>>2]=p+1,p=0|o[i+76>>2],o[p+(152*_|0)+140>>2]=f,f=0|o[i+16>>2],C=0|o[f+(244*e|0)+240>>2],i=0|o[f+(244*r|0)+240>>2],o[p+(152*_|0)+144>>2]=e,o[p+(152*_|0)+148>>2]=r,w=+s[a+84>>2],s[p+(152*_|0)+104>>2]=w,o[p+(152*_|0)+132>>2]=0,s[p+(152*_|0)+100>>2]=0,s[p+(152*_|0)+96>>2]=0,0|C?(o[p+(152*_|0)+16>>2]=o[t+0>>2],o[p+(152*_|0)+20>>2]=o[t+4>>2],o[p+(152*_|0)+24>>2]=o[t+8>>2],o[p+(152*_|0)+28>>2]=o[t+12>>2],M=+s[c+4>>2],E=+s[p+(152*_|0)+24>>2],T=+s[c+8>>2],g=+s[p+(152*_|0)+20>>2],j=+s[p+(152*_|0)+16>>2],k=+s[c>>2],s[p+(152*_|0)>>2]=M*E-T*g,s[p+(152*_|0)+4>>2]=T*j-E*k,s[p+(152*_|0)+8>>2]=g*k-M*j,s[p+(152*_|0)+12>>2]=0,S=((M*E-T*g)*+s[C+280>>2]+(T*j-E*k)*+s[C+284>>2]+(g*k-M*j)*+s[C+288>>2])*+s[C+548>>2],x=((M*E-T*g)*+s[C+296>>2]+(T*j-E*k)*+s[C+300>>2]+(g*k-M*j)*+s[C+304>>2])*+s[C+552>>2],s[p+(152*_|0)+64>>2]=((M*E-T*g)*+s[C+264>>2]+ +s[C+268>>2]*(T*j-E*k)+(g*k-M*j)*+s[C+272>>2])*+s[C+544>>2],s[p+(152*_|0)+68>>2]=S,s[p+(152*_|0)+72>>2]=x,s[p+(152*_|0)+76>>2]=0,g=M*E-T*g):(o[p+(152*_|0)+64>>2]=0,o[p+(152*_|0)+68>>2]=0,o[p+(152*_|0)+72>>2]=0,o[p+(152*_|0)+76>>2]=0,o[p+(152*_|0)+0>>2]=0,o[p+(152*_|0)+4>>2]=0,o[p+(152*_|0)+8>>2]=0,o[p+(152*_|0)+12>>2]=0,o[p+(152*_|0)+16>>2]=0,o[p+(152*_|0)+20>>2]=0,o[p+(152*_|0)+24>>2]=0,o[p+(152*_|0)+28>>2]=0,g=0),0|i?(E=-+s[t>>2],m=-+s[t+4>>2],k=-+s[t+8>>2],s[p+(152*_|0)+48>>2]=E,s[p+(152*_|0)+52>>2]=m,s[p+(152*_|0)+56>>2]=k,s[p+(152*_|0)+60>>2]=0,A=+s[h+4>>2],S=+s[h+8>>2],T=+s[h>>2],s[p+(152*_|0)+32>>2]=A*k-S*m,s[p+(152*_|0)+36>>2]=S*E-T*k,s[p+(152*_|0)+40>>2]=T*m-A*E,s[p+(152*_|0)+44>>2]=0,M=((A*k-S*m)*+s[i+264>>2]+ +s[i+268>>2]*(S*E-T*k)+(T*m-A*E)*+s[i+272>>2])*+s[i+544>>2],x=((A*k-S*m)*+s[i+280>>2]+(S*E-T*k)*+s[i+284>>2]+(T*m-A*E)*+s[i+288>>2])*+s[i+548>>2],j=((A*k-S*m)*+s[i+296>>2]+(S*E-T*k)*+s[i+300>>2]+(T*m-A*E)*+s[i+304>>2])*+s[i+552>>2],s[p+(152*_|0)+80>>2]=M,s[p+(152*_|0)+84>>2]=x,s[p+(152*_|0)+88>>2]=j,s[p+(152*_|0)+92>>2]=0,y=T*m-A*E,m=A*k-S*m,k=S*E-T*k):(o[p+(152*_|0)+80>>2]=0,o[p+(152*_|0)+84>>2]=0,o[p+(152*_|0)+88>>2]=0,o[p+(152*_|0)+92>>2]=0,o[p+(152*_|0)+32>>2]=0,o[p+(152*_|0)+36>>2]=0,o[p+(152*_|0)+40>>2]=0,o[p+(152*_|0)+44>>2]=0,o[p+(152*_|0)+48>>2]=0,o[p+(152*_|0)+52>>2]=0,o[p+(152*_|0)+56>>2]=0,o[p+(152*_|0)+60>>2]=0,y=0,M=0,x=0,j=0,m=0,k=0),0|C?(A=+s[p+(152*_|0)+68>>2],D=+s[c+8>>2],O=+s[p+(152*_|0)+72>>2],E=+s[c+4>>2],S=+s[c>>2],T=+s[p+(152*_|0)+64>>2],S=+s[C+344>>2]+((A*D-O*E)*+s[t>>2]+(O*S-D*T)*+s[t+4>>2]+(E*T-A*S)*+s[t+8>>2])):S=0,0|i?(D=-M,O=-x,E=-j,T=+s[h+8>>2],A=+s[h+4>>2],j=+s[h>>2],j=+s[i+344>>2]+((T*O-A*E)*+s[t>>2]+(j*E-T*D)*+s[t+4>>2]+(A*D-j*O)*+s[t+8>>2])):j=0,l/=S+j,s[p+(152*_|0)+108>>2]=l,0|C?(j=+s[f+(244*e|0)+176>>2]+ +s[f+(244*e|0)+208>>2],S=+s[f+(244*e|0)+184>>2]+ +s[f+(244*e|0)+216>>2],x=+s[f+(244*e|0)+180>>2]+ +s[f+(244*e|0)+212>>2]):(j=0,S=0,x=0),0|C?(E=+s[f+(244*e|0)+192>>2],M=+s[f+(244*e|0)+196>>2],T=+s[f+(244*e|0)+200>>2]):(E=0,M=0,T=0),g=j*+s[p+(152*_|0)+16>>2]+x*+s[p+(152*_|0)+20>>2]+S*+s[p+(152*_|0)+24>>2]+(E*g+M*+s[p+(152*_|0)+4>>2]+T*+s[p+(152*_|0)+8>>2]),0|i?(j=+s[f+(244*r|0)+176>>2]+ +s[f+(244*r|0)+208>>2],S=+s[f+(244*r|0)+184>>2]+ +s[f+(244*r|0)+216>>2],x=+s[f+(244*r|0)+180>>2]+ +s[f+(244*r|0)+212>>2]):(j=0,S=0,x=0),j=j*+s[p+(152*_|0)+48>>2]+x*+s[p+(152*_|0)+52>>2]+S*+s[p+(152*_|0)+56>>2],!(0|i))return D=0,O=0,A=0,O=d-(O=g+(O=j+(O=(D=(A*=m)+(D*=k))+(O*=y)))),O*=l,s[(I=p+(152*_|0)+112|0)>>2]=O,s[(I=p+(152*_|0)+116|0)>>2]=v,O=-w,s[(I=p+(152*_|0)+120|0)>>2]=O,s[(I=p+(152*_|0)+124|0)>>2]=w,void(u=b);D=+s[f+(244*r|0)+196>>2],O=+s[f+(244*r|0)+200>>2],A=+s[f+(244*r|0)+192>>2],O=d-(O=g+(O=j+(O=(D=(A*=m)+(D*=k))+(O*=y)))),O*=l,s[(I=p+(152*_|0)+112|0)>>2]=O,s[(I=p+(152*_|0)+116|0)>>2]=v,O=-w,s[(I=p+(152*_|0)+120|0)>>2]=O,s[(I=p+(152*_|0)+124|0)>>2]=w,u=b}function Qt(i,t,e,r,f,a){t|=0,e|=0,r|=0,f|=0,a|=0;var c,h,l,d,v,b=0,_=0,w=0,p=0,m=0,y=0,k=0,g=0,C=0,j=0,S=0,x=0,M=0,E=0;if(h=u,(0|(c=0|o[(i|=0)+88>>2]))==(0|o[i+92>>2])&&(0|c)<(0|(b=0|c?c<<1:1))){if(0|b?(o[4546]=1+(0|o[4546]),0|(y=0|ye(16+(152*b|3)|0))?(o[(y+19&-16)-4>>2]=y,y=y+19&-16):y=0,M=0|o[i+88>>2]):(M=c,y=0),(0|M)>0){E=0;do{Se(y+(152*E|0)|0,(0|o[i+96>>2])+(152*E|0)|0,152),E=E+1|0}while((0|E)!=(0|M))}0|(M=0|o[i+96>>2])&&(0|n[i+100|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[M+-4>>2])),o[i+96>>2]=0),n[i+100|0]=1,o[i+96>>2]=y,o[i+92>>2]=b,b=0|o[i+88>>2]}else b=c;if(o[i+88>>2]=b+1,b=0|o[i+96>>2],o[b+(152*c|0)+140>>2]=f,o[b+(152*c|0)+16>>2]=0,o[b+(152*c|0)+20>>2]=0,o[b+(152*c|0)+24>>2]=0,o[b+(152*c|0)+28>>2]=0,s[b+(152*c|0)+48>>2]=-0,s[b+(152*c|0)+52>>2]=-0,s[b+(152*c|0)+56>>2]=-0,s[b+(152*c|0)+60>>2]=0,i=0|o[i+16>>2],y=0|o[i+(244*e|0)+240>>2],f=0|o[i+(244*r|0)+240>>2],o[b+(152*c|0)+144>>2]=e,o[b+(152*c|0)+148>>2]=r,l=+s[a+88>>2],s[b+(152*c|0)+104>>2]=l,o[b+(152*c|0)+132>>2]=0,s[b+(152*c|0)+100>>2]=0,s[b+(152*c|0)+96>>2]=0,_=-+s[t>>2],d=-+s[t+4>>2],v=-+s[t+8>>2],s[b+(152*c|0)>>2]=_,s[b+(152*c|0)+4>>2]=d,s[b+(152*c|0)+8>>2]=v,s[b+(152*c|0)+12>>2]=0,0|y?(p=(+s[y+264>>2]*_+ +s[y+268>>2]*d+ +s[y+272>>2]*v)*+s[y+544>>2],m=(+s[y+296>>2]*_+ +s[y+300>>2]*d+ +s[y+304>>2]*v)*+s[y+552>>2],w=(+s[y+280>>2]*_+ +s[y+284>>2]*d+ +s[y+288>>2]*v)*+s[y+548>>2]):(p=0,m=0,w=0),s[b+(152*c|0)+64>>2]=p,s[b+(152*c|0)+68>>2]=w,s[b+(152*c|0)+72>>2]=m,s[b+(152*c|0)+76>>2]=0,p=+s[t>>2],m=+s[t+4>>2],w=+s[t+8>>2],x=+s[t+12>>2],s[b+(152*c|0)+32>>2]=p,s[b+(152*c|0)+36>>2]=m,s[b+(152*c|0)+40>>2]=w,s[b+(152*c|0)+44>>2]=x,0|f?(C=(p*+s[f+264>>2]+m*+s[f+268>>2]+w*+s[f+272>>2])*+s[f+544>>2],k=(p*+s[f+296>>2]+m*+s[f+300>>2]+w*+s[f+304>>2])*+s[f+552>>2],g=(p*+s[f+280>>2]+m*+s[f+284>>2]+w*+s[f+288>>2])*+s[f+548>>2]):(C=0,k=0,g=0),s[b+(152*c|0)+80>>2]=C,s[b+(152*c|0)+84>>2]=g,s[b+(152*c|0)+88>>2]=k,s[b+(152*c|0)+92>>2]=0,0|y?(g=+s[y+296>>2]*_+ +s[y+300>>2]*d+ +s[y+304>>2]*v,C=+s[y+280>>2]*_+ +s[y+284>>2]*d+ +s[y+288>>2]*v,x=+s[y+264>>2]*_+ +s[y+268>>2]*d+ +s[y+272>>2]*v):(g=0,C=0,x=0),0|f?(j=p*+s[f+296>>2]+m*+s[f+300>>2]+w*+s[f+304>>2],S=p*+s[f+280>>2]+m*+s[f+284>>2]+w*+s[f+288>>2],k=+s[f+264>>2]*p+ +s[f+268>>2]*m+ +s[f+272>>2]*w):(j=0,S=0,k=0),k=1/(x*_+C*d+g*v+0+(k*p+S*m+j*w)),s[b+(152*c|0)+108>>2]=k,0|y?(g=+s[i+(244*e|0)+192>>2],j=+s[i+(244*e|0)+196>>2],C=+s[i+(244*e|0)+200>>2],S=0*(+s[i+(244*e|0)+176>>2]+ +s[i+(244*e|0)+208>>2])+0*(+s[i+(244*e|0)+180>>2]+ +s[i+(244*e|0)+212>>2])+0*(+s[i+(244*e|0)+184>>2]+ +s[i+(244*e|0)+216>>2])):(g=0,j=0,C=0,S=0),_=S+(g*_+j*d+C*v),!(0|f))return C=0,j=0,x=0,x=0-(x=_+(x=(S=-0)+(x=(j=(C*=p)+(j*=m))+(x*=w)))),x*=k,s[(E=b+(152*c|0)+112|0)>>2]=x,s[(E=b+(152*c|0)+116|0)>>2]=0,x=-l,s[(E=b+(152*c|0)+120|0)>>2]=x,s[(E=b+(152*c|0)+124|0)>>2]=l,void(u=h);C=+s[i+(244*r|0)+192>>2],j=+s[i+(244*r|0)+196>>2],x=+s[i+(244*r|0)+200>>2],x=0-(x=_+(x=(S=-0*(+s[i+(244*r|0)+176>>2]+ +s[i+(244*r|0)+208>>2])+-0*(+s[i+(244*r|0)+180>>2]+ +s[i+(244*r|0)+212>>2])+-0*(+s[i+(244*r|0)+184>>2]+ +s[i+(244*r|0)+216>>2]))+(x=(j=(C*=p)+(j*=m))+(x*=w)))),x*=k,s[(E=b+(152*c|0)+112|0)>>2]=x,s[(E=b+(152*c|0)+116|0)>>2]=0,x=-l,s[(E=b+(152*c|0)+120|0)>>2]=x,s[(E=b+(152*c|0)+124|0)>>2]=l,u=h}function Zt(i,t,e){i|=0,e=+e;var n,r=0;if(n=u,u=u+496|0,(0|(r=0|o[(t|=0)+212>>2]))>-1)return u=n,0|(t=r);do{if(2&o[t+236>>2]){if(0==+s[t+344>>2]&&!(2&o[t+204>>2]))break;return r=0|o[i+8>>2],Ce(n+244|0,0,244),qt(0|Jt(i+4|0,n+244|0),t,e),o[t+212>>2]=r,u=n,0|(t=r)}}while(0);return(0|(r=0|o[i+188>>2]))>=0?(u=n,0|(t=r)):(o[i+188>>2]=o[i+8>>2],Ce(0|n,0,244),qt(0|Jt(i+4|0,n),0,e),t=0|o[i+188>>2],u=n,0|t)}function Jt(i,t){t|=0;var e,r,f=0,a=0,s=0,c=0,h=0,l=0,d=0;if(e=u,(0|(r=0|o[(i|=0)+4>>2]))==(0|o[i+8>>2])&&(0|r)<(0|(f=0|r?r<<1:1))){if(0|f?(o[4546]=1+(0|o[4546]),0|(a=0|ye(16+(244*f|3)|0))?(o[(a+19&-16)-4>>2]=a,s=a+19&-16):s=0,a=0|o[i+4>>2]):(a=r,s=0),(0|a)>0){c=0;do{l=s+(244*c|0)|0,d=(h=0|o[i+12>>2])+(244*c|0)|0,o[l+0>>2]=o[d+0>>2],o[l+4>>2]=o[d+4>>2],o[l+8>>2]=o[d+8>>2],o[l+12>>2]=o[d+12>>2],d=h+(244*c|0)+16|0,o[(l=s+(244*c|0)+16|0)+0>>2]=o[d+0>>2],o[l+4>>2]=o[d+4>>2],o[l+8>>2]=o[d+8>>2],o[l+12>>2]=o[d+12>>2],d=h+(244*c|0)+32|0,o[(l=s+(244*c|0)+32|0)+0>>2]=o[d+0>>2],o[l+4>>2]=o[d+4>>2],o[l+8>>2]=o[d+8>>2],o[l+12>>2]=o[d+12>>2],d=h+(244*c|0)+48|0,o[(l=s+(244*c|0)+48|0)+0>>2]=o[d+0>>2],o[l+4>>2]=o[d+4>>2],o[l+8>>2]=o[d+8>>2],o[l+12>>2]=o[d+12>>2],Se(s+(244*c|0)+64|0,h+(244*c|0)+64|0,180),c=c+1|0}while((0|c)!=(0|a))}0|(a=0|o[i+12>>2])&&(0|n[i+16|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[a+-4>>2])),o[i+12>>2]=0),n[i+16|0]=1,o[i+12>>2]=s,o[i+8>>2]=f,f=0|o[i+4>>2]}else f=r;return o[i+4>>2]=f+1,d=0|o[i+12>>2],o[d+(244*r|0)+0>>2]=o[t+0>>2],o[d+(244*r|0)+4>>2]=o[t+4>>2],o[d+(244*r|0)+8>>2]=o[t+8>>2],o[d+(244*r|0)+12>>2]=o[t+12>>2],o[d+(244*r|0)+16>>2]=o[t+16>>2],o[d+(244*r|0)+20>>2]=o[t+20>>2],o[d+(244*r|0)+24>>2]=o[t+24>>2],o[d+(244*r|0)+28>>2]=o[t+28>>2],o[d+(244*r|0)+32>>2]=o[t+32>>2],o[d+(244*r|0)+36>>2]=o[t+36>>2],o[d+(244*r|0)+40>>2]=o[t+40>>2],o[d+(244*r|0)+44>>2]=o[t+44>>2],o[d+(244*r|0)+48>>2]=o[t+48>>2],o[d+(244*r|0)+52>>2]=o[t+52>>2],o[d+(244*r|0)+56>>2]=o[t+56>>2],o[d+(244*r|0)+60>>2]=o[t+60>>2],Se(d+(244*r|0)+64|0,t+64|0,180),u=e,(0|o[i+12>>2])+(244*r|0)|0}function ie(i){var t,e,r=0,f=0,a=0,s=0,c=0,h=0;if(t=u,o[(i|=0)>>2]=17664,0|(r=0|o[i+56>>2])&&(0|n[i+60|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[r+-4>>2])),o[i+56>>2]=0),n[i+60|0]=1,o[i+56>>2]=0,o[i+48>>2]=0,o[i+52>>2]=0,(0|(e=0|o[i+28>>2]))>0){f=0;do{h=(a=0|o[i+36>>2])+(36*f|0)+4|0,s=a+(36*f|0)+16|0,0|(r=0|o[(c=a+(36*f|0)+12|0)>>2])&&(0|n[s|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[r+-4>>2])),o[c>>2]=0),n[s|0]=1,o[c>>2]=0,o[h>>2]=0,o[a+(36*f|0)+8>>2]=0,f=f+1|0}while((0|f)!=(0|e))}if(0|(r=0|o[i+36>>2])&&(0|n[i+40|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[r+-4>>2])),o[i+36>>2]=0),n[i+40|0]=1,o[i+36>>2]=0,o[i+28>>2]=0,o[i+32>>2]=0,!(0|(r=0|o[i+16>>2])))return n[i+20|0]=1,o[i+16>>2]=0,o[i+8>>2]=0,o[(h=i+12|0)>>2]=0,void(u=t);0|n[i+20|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[r+-4>>2])),o[i+16>>2]=0,n[i+20|0]=1,o[i+16>>2]=0,o[i+8>>2]=0,o[(h=i+12|0)>>2]=0,u=t}function te(i){var t,e,n=0,r=0,f=0,a=0,c=0,h=0;if(t=u,(0|(n=0|o[(i|=0)+28>>2]))<=0){i=0;do{i=i+1|0}while((0|i)<8);return u=t,0|(n=1)}e=0|o[i+36>>2],c=0,f=0,a=0,r=0;i:for(;;){switch(0|r){case 3:c=+s[i+80>>2]+ +s[i+64>>2],f=+s[i+72>>2]-+s[i+88>>2],a=+s[i+68>>2]-+s[i+84>>2];break;case 1:c=+s[i+80>>2]+ +s[i+64>>2],f=+s[i+72>>2]-+s[i+88>>2],a=+s[i+84>>2]+ +s[i+68>>2];break;case 2:c=+s[i+80>>2]+ +s[i+64>>2],f=+s[i+88>>2]+ +s[i+72>>2],a=+s[i+68>>2]-+s[i+84>>2];break;case 6:c=+s[i+64>>2]-+s[i+80>>2],f=+s[i+88>>2]+ +s[i+72>>2],a=+s[i+68>>2]-+s[i+84>>2];break;case 0:c=+s[i+80>>2]+ +s[i+64>>2],f=+s[i+88>>2]+ +s[i+72>>2],a=+s[i+84>>2]+ +s[i+68>>2];break;case 5:c=+s[i+64>>2]-+s[i+80>>2],f=+s[i+72>>2]-+s[i+88>>2],a=+s[i+84>>2]+ +s[i+68>>2];break;case 4:c=+s[i+64>>2]-+s[i+80>>2],f=+s[i+88>>2]+ +s[i+72>>2],a=+s[i+84>>2]+ +s[i+68>>2];break;case 7:c=+s[i+64>>2]-+s[i+80>>2],f=+s[i+72>>2]-+s[i+88>>2],a=+s[i+68>>2]-+s[i+84>>2]}h=0;do{if(+s[e+(36*h|0)+32>>2]+(c*+s[e+(36*h|0)+20>>2]+a*+s[e+(36*h|0)+24>>2]+f*+s[e+(36*h|0)+28>>2])>0){n=0,i=17;break i}h=h+1|0}while((0|h)<(0|n));if((0|(r=r+1|0))>=8){n=1,i=17;break}}return 17==(0|i)?(u=t,0|n):0}function ee(i,t,e,n,r,f,a){i|=0,t|=0,e|=0,r|=0,f|=0,a|=0;var c,h,l=0,d=0,v=0,b=0,_=0,w=0,p=0;if(c=u,u=u+16|0,s[(n|=0)>>2]=34028234663852886e22,s[r>>2]=-34028234663852886e22,(0|(h=0|o[i+8>>2]))>0){d=0;do{p=0|o[i+16>>2],w=+s[p+(d<<4)>>2],_=+s[p+(d<<4)+4>>2],l=+s[p+(d<<4)+8>>2],b=w*+s[t>>2]+_*+s[t+4>>2]+l*+s[t+8>>2]+ +s[t+48>>2],v=w*+s[t+16>>2]+_*+s[t+20>>2]+l*+s[t+24>>2]+ +s[t+52>>2],l=w*+s[t+32>>2]+_*+s[t+36>>2]+l*+s[t+40>>2]+ +s[t+56>>2],(_=b*+s[e>>2]+v*+s[e+4>>2]+l*+s[e+8>>2])<+s[n>>2]&&(s[n>>2]=_,s[f>>2]=b,s[f+4>>2]=v,s[f+8>>2]=l,s[f+12>>2]=0),_>+s[r>>2]&&(s[r>>2]=_,s[a>>2]=b,s[a+4>>2]=v,s[a+8>>2]=l,s[a+12>>2]=0),d=d+1|0}while((0|d)!=(0|h));v=+s[r>>2]}else v=-34028234663852886e22;(l=+s[n>>2])>v?(s[n>>2]=v,s[r>>2]=l,o[c+0>>2]=o[f+0>>2],o[c+4>>2]=o[f+4>>2],o[c+8>>2]=o[f+8>>2],o[c+12>>2]=o[f+12>>2],o[f+0>>2]=o[a+0>>2],o[f+4>>2]=o[a+4>>2],o[f+8>>2]=o[a+8>>2],o[f+12>>2]=o[a+12>>2],o[a+0>>2]=o[c+0>>2],o[a+4>>2]=o[c+4>>2],o[a+8>>2]=o[c+8>>2],o[a+12>>2]=o[c+12>>2],u=c):u=c}function ne(i,t,e){t|=0,e|=0;var r,a=0,c=0,h=0,l=0,d=0,v=0,b=0,w=0,p=0,m=0,y=0,k=0,g=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0,L=0,I=0,A=0,D=0;r=u,u=u+176|0,o[(i|=0)+348>>2]=i+220,o[i+352>>2]=i+252,o[i+356>>2]=i+284,o[i+360>>2]=i+316,o[i+364>>2]=4,o[i+368>>2]=0,o[i+376>>2]=0,S=0|o[t+4>>2],o[i>>2]=o[t>>2],o[i+4>>2]=S,o[i+8>>2]=o[t+8>>2],o[i+12>>2]=o[t+12>>2],o[i+16>>2]=o[t+16>>2],o[i+20>>2]=o[t+20>>2],o[i+24>>2]=o[t+24>>2],o[i+28>>2]=o[t+28>>2],o[i+32>>2]=o[t+32>>2],o[i+36>>2]=o[t+36>>2],o[i+40>>2]=o[t+40>>2],o[i+44>>2]=o[t+44>>2],o[i+48>>2]=o[t+48>>2],o[i+52>>2]=o[t+52>>2],o[i+56>>2]=o[t+56>>2],o[i+60>>2]=o[t+60>>2],o[i+64>>2]=o[t+64>>2],o[i+68>>2]=o[t+68>>2],o[i+72>>2]=o[t+72>>2],o[i+76>>2]=o[t+76>>2],o[i+80>>2]=o[t+80>>2],o[i+84>>2]=o[t+84>>2],o[i+88>>2]=o[t+88>>2],o[i+92>>2]=o[t+92>>2],o[i+96>>2]=o[t+96>>2],o[i+100>>2]=o[t+100>>2],o[i+104>>2]=o[t+104>>2],o[i+108>>2]=o[t+108>>2],o[i+112>>2]=o[t+112>>2],o[i+116>>2]=o[t+116>>2],S=f[t+120|0]|f[t+121|0]<<8|f[t+122|0]<<16|f[t+123|0]<<24,M=f[t+124|0]|f[t+125|0]<<8|f[t+126|0]<<16|f[t+127|0]<<24,n[i+120|0]=S,n[i+121|0]=S>>8,n[i+122|0]=S>>16,n[i+123|0]=S>>24,n[i+124|0]=M,n[i+125|0]=M>>8,n[i+126|0]=M>>16,n[i+127|0]=M>>24,s[i+144>>2]=0,o[i+180>>2]=0,o[i+128>>2]=o[e+0>>2],o[i+132>>2]=o[e+4>>2],o[i+136>>2]=o[e+8>>2],o[i+140>>2]=o[e+12>>2],(y=+s[i+128>>2])*y+(m=+s[i+132>>2])*m+(p=+s[i+136>>2])*p>0?(g=-y,k=-m,l=-p):(g=1,k=0,l=0),s[i+164>>2]=0,o[i+364>>2]=3,o[i+148>>2]=i+316,o[i+180>>2]=1,fe(i,g,k,l,i+316|0),s[i+164>>2]=1,e=16+(0|o[i+148>>2])|0,o[i+128>>2]=o[e+0>>2],o[i+132>>2]=o[e+4>>2],o[i+136>>2]=o[e+8>>2],o[i+140>>2]=o[e+12>>2],o[r+72>>2]=o[e+0>>2],o[r+76>>2]=o[e+4>>2],o[r+80>>2]=o[e+8>>2],o[r+84>>2]=o[e+12>>2],o[r+56>>2]=o[e+0>>2],o[r+60>>2]=o[e+4>>2],o[r+64>>2]=o[e+8>>2],o[r+68>>2]=o[e+12>>2],o[r+40>>2]=o[e+0>>2],o[r+44>>2]=o[e+4>>2],o[r+48>>2]=o[e+8>>2],o[r+52>>2]=o[e+12>>2],o[r+24>>2]=o[e+0>>2],o[r+28>>2]=o[e+4>>2],o[r+32>>2]=o[e+8>>2],o[r+36>>2]=o[e+12>>2],l=0,e=1,t=1,x=y*y+m*m+p*p;i:for(;;){if(h=0|o[i+368>>2],m=+s[i+128>>2],k=+s[i+132>>2],y=+s[i+136>>2],(p=+_(+(m*m+k*k+y*y)))<9999999747378752e-20){a=5;break}s[i+(36*h|0)+(o[i+(36*h|0)+180>>2]<<2)+164>>2]=0,d=(0|o[i+364>>2])-1|0,o[i+364>>2]=d,o[i+(36*h|0)+(o[i+(36*h|0)+180>>2]<<2)+148>>2]=o[i+(d<<2)+348>>2],d=0|o[i+(36*h|0)+180>>2],o[i+(36*h|0)+180>>2]=d+1,fe(i,-m,-k,-y,0|o[i+(36*h|0)+(d<<2)+148>>2]),d=0|o[i+(36*h|0)+180>>2],v=0|o[i+(36*h|0)+(d+-1<<2)+148>>2],y=+s[v+16>>2],k=+s[v+20>>2],m=+s[v+24>>2],b=0;do{if(g=y-+s[r+24+(b<<4)>>2],C=k-+s[r+24+(b<<4)+4>>2],j=m-+s[r+24+(b<<4)+8>>2],b=b+1|0,g*g+C*C+j*j<9999999747378752e-20){a=9;break i}}while(b>>>0<4);if(o[(M=r+24+(e<<4)|0)+0>>2]=o[v+16>>2],o[M+4>>2]=o[v+20>>2],o[M+8>>2]=o[v+24>>2],o[M+12>>2]=o[v+28>>2],p-(l=(j=(+s[i+128>>2]*y+ +s[i+132>>2]*k+ +s[i+136>>2]*m)/p)>l?j:l)-9999999747378752e-20*p<=0){a=11;break}if(o[r>>2]=0,3==(0|d))x=+ue(16+(0|o[i+(36*h|0)+148>>2])|0,16+(0|o[i+(36*h|0)+152>>2])|0,16+(0|o[i+(36*h|0)+156>>2])|0,r+8|0,r);else if(4==(0|d))if(d=0|o[i+(36*h|0)+148>>2],b=0|o[i+(36*h|0)+152>>2],v=0|o[i+(36*h|0)+156>>2],w=0|o[i+(36*h|0)+160>>2],o[r+152>>2]=d+16,o[r+156>>2]=b+16,o[r+160>>2]=v+16,o[r+164>>2]=w+16,k=+s[d+16>>2],g=+s[w+16>>2],m=+s[d+20>>2],C=+s[w+20>>2],y=+s[d+24>>2],j=+s[w+24>>2],s[r+104>>2]=k-g,s[r+108>>2]=m-C,s[r+112>>2]=y-j,s[r+116>>2]=0,T=+s[b+16>>2],I=+s[b+20>>2],x=+s[b+24>>2],s[r+120>>2]=T-g,s[r+124>>2]=I-C,s[r+128>>2]=x-j,s[r+132>>2]=0,E=+s[v+16>>2],A=+s[v+20>>2],L=+s[v+24>>2],s[r+136>>2]=E-g,s[r+140>>2]=A-C,s[r+144>>2]=L-j,s[r+148>>2]=0,!((p=(m-C)*(x-j)*(E-g)+(y-j)*(T-g)*(A-C)-(A-C)*(x-j)*(k-g)-(m-C)*(T-g)*(L-j)+(L-j)*(k-g)*(I-C)-(E-g)*(y-j)*(I-C))*(y*((T-E)*(m-I)-(I-A)*(k-T))+(k*((I-A)*(y-x)-(x-L)*(m-I))+m*((x-L)*(k-T)-(T-E)*(y-x))))<=0)|p!=p|!1|0==p)x=-1;else{for(o[r+92>>2]=0,o[r+96>>2]=0,o[r+100>>2]=0,o[r+88>>2]=0,m-=C,y-=j,k-=g,S=0,x=-1;M=0|o[17720+(S<<2)>>2],p*((m*(L=+s[r+104+(M<<4)+8>>2])-y*(I=+s[r+104+(M<<4)+4>>2]))*g+C*(y*(A=+s[r+104+(M<<4)>>2])-L*k)+(I*k-m*A)*j)>0&&x<0|(c=+ue(0|o[r+152+(S<<2)>>2],0|o[r+152+(M<<2)>>2],w+16|0,r+92|0,r+88|0))<x&&(D=0|o[r+88>>2],o[r>>2]=(2&D?1<<M:0)+(D<<1&8)+(1&D?1<<S:0),s[r+8+(S<<2)>>2]=+s[r+92>>2],s[r+8+(M<<2)>>2]=+s[r+96>>2],s[r+8+(o[17720+(M<<2)>>2]<<2)>>2]=0,s[r+20>>2]=+s[r+100>>2],x=c),3!=(0|(S=S+1|0));)m=+s[r+104+(S<<4)+4>>2],y=+s[r+104+(S<<4)+8>>2],k=+s[r+104+(S<<4)>>2],g=+s[w+16>>2],C=+s[w+20>>2],j=+s[w+24>>2];x<0&&(o[r>>2]=15,x=+s[v+20>>2],m=+s[b+24>>2],I=+s[w+16>>2],C=+s[v+24>>2],y=+s[b+16>>2],g=+s[w+20>>2],E=+s[v+16>>2],T=+s[w+24>>2],k=+s[b+20>>2],s[r+8>>2]=(x*m*I+C*y*g-g*m*E-x*y*T+T*E*k-I*C*k)/p,j=+s[d+20>>2],A=+s[d+24>>2],L=+s[d+16>>2],s[r+12>>2]=(j*C*I+A*E*g-g*C*L-j*E*T+T*L*x-I*A*x)/p,s[r+16>>2]=(k*A*I+m*L*g-g*A*y-k*L*T+T*y*j-I*m*j)/p,s[r+20>>2]=1-((k*A*I+m*L*g-g*A*y-k*L*T+T*y*j-I*m*j)/p+((x*m*I+C*y*g-g*m*E-x*y*T+T*E*k-I*C*k)/p+(j*C*I+A*E*g-g*C*L-j*E*T+T*L*x-I*A*x)/p)),x=0)}else 2==(0|d)&&(x=+ce(16+(0|o[i+(36*h|0)+148>>2])|0,16+(0|o[i+(36*h|0)+152>>2])|0,r+8|0,r));if(!(x>=0)){a=32;break}if(o[i+(36*(1-h|0)|0)+180>>2]=0,o[i+128>>2]=0,o[i+132>>2]=0,o[i+136>>2]=0,o[i+140>>2]=0,o[i+368>>2]=1-h,w=0|o[i+(36*h|0)+180>>2],S=0|o[r>>2],0|w){b=0;do{v=0|o[(d=i+(36*h|0)+(b<<2)+148|0)>>2],S&1<<b?(o[i+(36*(1-h|0)|0)+(o[i+(36*(1-h|0)|0)+180>>2]<<2)+148>>2]=v,L=+s[r+8+(b<<2)>>2],D=0|o[i+(36*(1-h|0)|0)+180>>2],o[i+(36*(1-h|0)|0)+180>>2]=D+1,s[i+(36*(1-h|0)|0)+(D<<2)+164>>2]=L,D=0|o[d>>2],I=L*+s[D+20>>2],A=L*+s[D+24>>2],s[i+128>>2]=+s[D+16>>2]*L+ +s[i+128>>2],s[i+132>>2]=I+ +s[i+132>>2],s[i+136>>2]=A+ +s[i+136>>2]):(D=0|o[i+364>>2],o[i+364>>2]=D+1,o[i+(D<<2)+348>>2]=v),b=b+1|0}while((0|b)!=(0|w))}if(15==(0|S)&&(o[i+376>>2]=1),!(t>>>0<128)){a=34;break}if(0|o[i+376>>2])break;e=e+1&3,t=t+1|0}return 5==(0|a)?o[i+376>>2]=1:9==(0|a)||11==(0|a)||32==(0|a)?(D=0|o[i+368>>2],M=(0|o[i+(36*D|0)+180>>2])-1|0,o[i+(36*D|0)+180>>2]=M,M=0|o[i+(36*D|0)+(M<<2)+148>>2],D=0|o[i+364>>2],o[i+364>>2]=D+1,o[i+(D<<2)+348>>2]=M):34==(0|a)&&(o[i+376>>2]=2),o[i+372>>2]=i+(36*(0|o[i+368>>2])|0)+148,1==(0|(a=0|o[i+376>>2]))?(s[i+144>>2]=0,u=r,0|a):0|a?(u=r,0|a):(L=+s[i+128>>2],I=+s[i+132>>2],A=+s[i+136>>2],s[i+144>>2]=+_(+(L*L+I*I+A*A)),u=r,0|a)}function re(i){var t,e=0,n=0,r=0,f=0,a=0,c=0,h=0,l=0,d=0,v=0,b=0,_=0,w=0;t=u,u=u+32|0,e=0|o[(i|=0)+372>>2],l=0|o[e+32>>2];i:do{if(3==(0|l)){if(d=0|o[e+4>>2],l=0|o[e>>2],c=+s[l+16>>2],h=+s[d+16>>2]-c,a=+s[l+20>>2],n=+s[d+20>>2]-a,r=+s[l+24>>2],f=+s[d+24>>2]-r,d=0|o[e+8>>2],c=+s[d+16>>2]-c,a=+s[d+20>>2]-a,(n*(r=+s[d+24>>2]-r)-f*a)*(n*r-f*a)+(f*c-h*r)*(f*c-h*r)+(h*a-n*c)*(h*a-n*c)>0){if(s[e+28>>2]=0,d=(0|o[i+364>>2])-1|0,o[i+364>>2]=d,o[e+(o[e+32>>2]<<2)>>2]=o[i+(d<<2)+348>>2],d=0|o[e+32>>2],o[e+32>>2]=d+1,fe(i,n*r-f*a,f*c-h*r,h*a-n*c,0|o[e+(d<<2)>>2]),0|re(i))return u=t,0|(d=1);if(l=0|o[i+372>>2],d=(0|o[l+32>>2])-1|0,o[l+32>>2]=d,d=0|o[l+(d<<2)>>2],l=0|o[i+364>>2],o[i+364>>2]=l+1,o[i+(l<<2)+348>>2]=d,l=0|o[i+372>>2],s[l+(o[l+32>>2]<<2)+16>>2]=0,d=(0|o[i+364>>2])-1|0,o[i+364>>2]=d,o[l+(o[l+32>>2]<<2)>>2]=o[i+(d<<2)+348>>2],d=0|o[l+32>>2],o[l+32>>2]=d+1,fe(i,-(n*r-f*a),-(f*c-h*r),-(h*a-n*c),0|o[l+(d<<2)>>2]),0|re(i))return u=t,0|(d=1);d=0|o[i+372>>2],l=(0|o[d+32>>2])-1|0,o[d+32>>2]=l,l=0|o[d+(l<<2)>>2],d=0|o[i+364>>2],o[i+364>>2]=d+1,o[i+(d<<2)+348>>2]=l;break}}else if(4==(0|l)){if(d=0|o[e>>2],l=0|o[e+12>>2],h=+s[l+16>>2],_=+s[d+16>>2]-h,v=+s[l+20>>2],n=+s[d+20>>2]-v,f=+s[l+24>>2],a=+s[d+24>>2]-f,d=0|o[e+4>>2],r=+s[d+16>>2]-h,c=+s[d+20>>2]-v,b=+s[d+24>>2]-f,d=0|o[e+8>>2],h=+s[d+16>>2]-h,v=+s[d+20>>2]-v,!(_*c*(f=+s[d+24>>2]-f)+(n*b*h+a*r*v-_*b*v-n*r*f)-a*c*h!=_*c*f+(n*b*h+a*r*v-_*b*v-n*r*f)-a*c*h|_*c*f+(n*b*h+a*r*v-_*b*v-n*r*f)-a*c*h==0))return u=t,0|(d=1)}else if(2==(0|l)){for(d=0|o[e+4>>2],e=0|o[e>>2],f=+s[d+16>>2]-+s[e+16>>2],n=+s[d+20>>2]-+s[e+20>>2],r=+s[d+24>>2]-+s[e+24>>2],e=0;;){if(d=t+(e<<2)|0,o[t+0>>2]=0,o[t+4>>2]=0,o[t+8>>2]=0,o[t+12>>2]=0,s[d>>2]=1,(n*(a=+s[t+8>>2])-r*(c=+s[t+4>>2]))*(n*a-r*c)+(r*(h=+s[t>>2])-f*a)*(r*h-f*a)+(f*c-n*h)*(f*c-n*h)>0){if(l=0|o[i+372>>2],s[l+(o[l+32>>2]<<2)+16>>2]=0,d=(0|o[i+364>>2])-1|0,o[i+364>>2]=d,o[l+(o[l+32>>2]<<2)>>2]=o[i+(d<<2)+348>>2],d=0|o[l+32>>2],o[l+32>>2]=d+1,fe(i,n*a-r*c,r*h-f*a,f*c-n*h,0|o[l+(d<<2)>>2]),0|re(i)){i=1,e=19;break}if(l=0|o[i+372>>2],d=(0|o[l+32>>2])-1|0,o[l+32>>2]=d,d=0|o[l+(d<<2)>>2],l=0|o[i+364>>2],o[i+364>>2]=l+1,o[i+(l<<2)+348>>2]=d,l=0|o[i+372>>2],s[l+(o[l+32>>2]<<2)+16>>2]=0,d=(0|o[i+364>>2])-1|0,o[i+364>>2]=d,o[l+(o[l+32>>2]<<2)>>2]=o[i+(d<<2)+348>>2],d=0|o[l+32>>2],o[l+32>>2]=d+1,fe(i,-(n*a-r*c),-(r*h-f*a),-(f*c-n*h),0|o[l+(d<<2)>>2]),0|re(i)){i=1,e=19;break}d=0|o[i+372>>2],l=(0|o[d+32>>2])-1|0,o[d+32>>2]=l,l=0|o[d+(l<<2)>>2],d=0|o[i+364>>2],o[i+364>>2]=d+1,o[i+(d<<2)+348>>2]=l}if(!((e=e+1|0)>>>0<3))break i}if(19==(0|e))return u=t,0|i}else if(1==(0|l)){for(d=1,l=0;;){if(w=t+16+(l<<2)|0,o[t+16>>2]=0,o[t+20>>2]=0,o[t+24>>2]=0,o[t+28>>2]=0,s[w>>2]=1,w=e+32|0,s[e+(d<<2)+16>>2]=0,d=(0|o[i+364>>2])-1|0,o[i+364>>2]=d,o[e+(o[w>>2]<<2)>>2]=o[i+(d<<2)+348>>2],d=0|o[w>>2],o[w>>2]=d+1,fe(i,n=+s[t+16>>2],r=+s[t+20>>2],f=+s[t+24>>2],0|o[e+(d<<2)>>2]),0|re(i)){i=1,e=19;break}if(d=0|o[i+372>>2],w=(0|o[d+32>>2])-1|0,o[d+32>>2]=w,w=0|o[d+(w<<2)>>2],d=0|o[i+364>>2],o[i+364>>2]=d+1,o[i+(d<<2)+348>>2]=w,d=0|o[i+372>>2],s[d+(o[d+32>>2]<<2)+16>>2]=0,w=(0|o[i+364>>2])-1|0,o[i+364>>2]=w,o[d+(o[d+32>>2]<<2)>>2]=o[i+(w<<2)+348>>2],w=0|o[d+32>>2],o[d+32>>2]=w+1,fe(i,-n,-r,-f,0|o[d+(w<<2)>>2]),0|re(i)){i=1,e=19;break}if(w=0|o[i+372>>2],d=(0|o[w+32>>2])-1|0,o[w+32>>2]=d,d=0|o[w+(d<<2)>>2],w=0|o[i+364>>2],o[i+364>>2]=w+1,o[i+(w<<2)+348>>2]=d,!((l=l+1|0)>>>0<3))break i;e=d=0|o[i+372>>2],d=0|o[d+32>>2]}if(19==(0|e))return u=t,0|i}}while(0);return u=t,0|(w=0)}function oe(i,t,e,r,f){t|=0,e|=0,r|=0,f|=0;var a,c,h,l,d,v,b=0,w=0,p=0,m=0;if(c=u,!(0|(a=0|o[(i|=0)+9288>>2])))return o[i>>2]=5,u=c,0|(m=0);0|(m=0|o[a+48>>2])&&(o[m+44>>2]=o[a+44>>2]),0|(m=0|o[a+44>>2])&&(o[m+48>>2]=o[a+48>>2]),(0|o[i+9288>>2])==(0|a)&&(o[i+9288>>2]=o[a+48>>2]),o[i+9292>>2]=(0|o[i+9292>>2])-1,o[a+44>>2]=0,o[a+48>>2]=o[i+9280>>2],0|(m=0|o[i+9280>>2])&&(o[m+44>>2]=a),o[i+9280>>2]=a,o[i+9284>>2]=1+(0|o[i+9284>>2]),n[a+55|0]=0,o[a+20>>2]=t,o[a+24>>2]=e,o[a+28>>2]=r,w=+s[t+16>>2],l=+s[e+16>>2]-w,p=+s[t+20>>2],v=+s[e+20>>2]-p,b=+s[t+24>>2],h=+s[e+24>>2]-b,w=+s[r+16>>2]-w,p=+s[r+20>>2]-p,b=+s[r+24>>2]-b,s[a>>2]=v*b-h*p,s[a+4>>2]=h*w-l*b,s[a+8>>2]=l*p-v*w,s[a+12>>2]=0,d=+_(+((v*b-h*p)*(v*b-h*p)+(h*w-l*b)*(h*w-l*b)+(l*p-v*w)*(l*p-v*w)));do{if(d>9999999747378752e-20){if(0|se(v*b-h*p,h*w-l*b,l*p-v*w,+s[t+16>>2],+s[t+20>>2],+s[t+24>>2],+s[e+16>>2],+s[e+20>>2],+s[e+24>>2],a+16|0)||0|se(+s[a>>2],+s[a+4>>2],+s[a+8>>2],+s[e+16>>2],+s[e+20>>2],+s[e+24>>2],+s[r+16>>2],+s[r+20>>2],+s[r+24>>2],a+16|0)||0|se(+s[a>>2],+s[a+4>>2],+s[a+8>>2],+s[r+16>>2],+s[r+20>>2],+s[r+24>>2],+s[t+16>>2],+s[t+20>>2],+s[t+24>>2],a+16|0)||(s[a+16>>2]=(+s[t+16>>2]*+s[a>>2]+ +s[t+20>>2]*+s[a+4>>2]+ +s[t+24>>2]*+s[a+8>>2])/d),s[a>>2]=1/d*+s[a>>2],s[a+4>>2]=1/d*+s[a+4>>2],s[a+8>>2]=1/d*+s[a+8>>2],f)return u=c,0|(m=a);if(+s[a+16>>2]>=-9999999747378752e-21)return u=c,0|(m=a);o[i>>2]=3;break}o[i>>2]=2}while(0);return 0|(f=0|o[a+48>>2])&&(o[f+44>>2]=o[a+44>>2]),0|(f=0|o[a+44>>2])&&(o[f+48>>2]=o[a+48>>2]),(0|o[i+9280>>2])==(0|a)&&(o[i+9280>>2]=o[a+48>>2]),o[i+9284>>2]=(0|o[i+9284>>2])-1,o[a+44>>2]=0,o[a+48>>2]=o[i+9288>>2],0|(f=0|o[i+9288>>2])&&(o[f+44>>2]=a),o[i+9288>>2]=a,o[i+9292>>2]=1+(0|o[i+9292>>2]),u=c,0|(m=0)}function fe(i,t,e,n,r){i|=0,r|=0;var a,c=0,h=0,l=0,d=0,v=0;a=u,u=u+48|0,d=1/+_(+((t=+t)*t+(e=+e)*e+(n=+n)*n)),s[r>>2]=d*t,s[r+4>>2]=d*e,s[r+8>>2]=d*n,s[r+12>>2]=0,h=f[i+120|0]|f[i+121|0]<<8|f[i+122|0]<<16|f[i+123|0]<<24,l=f[i+124|0]|f[i+125|0]<<8|f[i+126|0]<<16|f[i+127|0]<<24,c=(0|o[i>>2])+(l>>1)|0,1&l&&(h=0|o[(0|o[c>>2])+h>>2]),Pn[63&h](a,c,r),e=-+s[r>>2],n=-+s[r+4>>2],t=-+s[r+8>>2],h=f[i+120|0]|f[i+121|0]<<8|f[i+122|0]<<16|f[i+123|0]<<24,l=f[i+124|0]|f[i+125|0]<<8|f[i+126|0]<<16|f[i+127|0]<<24,c=(0|o[i+4>>2])+(l>>1)|0,1&l&&(h=0|o[(0|o[c>>2])+h>>2]),d=+s[i+24>>2]*e+ +s[i+28>>2]*n+ +s[i+32>>2]*t,v=+s[i+40>>2]*e+ +s[i+44>>2]*n+ +s[i+48>>2]*t,s[a+16>>2]=+s[i+8>>2]*e+ +s[i+12>>2]*n+ +s[i+16>>2]*t,s[a+20>>2]=d,s[a+24>>2]=v,s[a+28>>2]=0,Pn[63&h](a+32|0,c,a+16|0),v=+s[a+32>>2],e=+s[a+36>>2],n=+s[a+40>>2],t=+s[a+4>>2]-(v*+s[i+72>>2]+e*+s[i+76>>2]+n*+s[i+80>>2]+ +s[i+108>>2]),d=+s[a+8>>2]-(v*+s[i+88>>2]+e*+s[i+92>>2]+n*+s[i+96>>2]+ +s[i+112>>2]),s[r+16>>2]=+s[a>>2]-(v*+s[i+56>>2]+e*+s[i+60>>2]+n*+s[i+64>>2]+ +s[i+104>>2]),s[r+20>>2]=t,s[r+24>>2]=d,s[r+28>>2]=0,u=a}function ae(i,t,e,r,a,c){i|=0,t|=0,e|=0,a|=0,c|=0;var h,l;return h=u,(0|f[(r|=0)+55|0])==(0|t)?(u=h,0|(a=0)):(l=0|o[17720+(a<<2)>>2],+s[r>>2]*+s[e+16>>2]+ +s[r+4>>2]*+s[e+20>>2]+ +s[r+8>>2]*+s[e+24>>2]-+s[r+16>>2]<-9999999747378752e-21?0|(i=0|oe(i,0|o[r+(l<<2)+20>>2],0|o[r+(a<<2)+20>>2],e,0))?(n[i+52|0]=a,o[i+32>>2]=r,n[r+a+52|0]=0,o[r+(a<<2)+32>>2]=i,0|(r=0|o[c>>2])?(n[r+53|0]=2,o[r+36>>2]=i,n[i+54|0]=1,o[i+40>>2]=r):o[c+4>>2]=i,o[c>>2]=i,o[c+8>>2]=1+(0|o[c+8>>2]),u=h,0|(a=1)):(u=h,0|(a=0)):(a=0|o[17704+(a<<2)>>2],n[r+55|0]=t,0|ae(i,t,e,0|o[r+(l<<2)+32>>2],0|f[r+l+52|0],c)&&0|ae(i,t,e,0|o[r+(a<<2)+32>>2],0|f[r+a+52|0],c)?(0|(c=0|o[r+48>>2])&&(o[c+44>>2]=o[r+44>>2]),0|(c=0|o[r+44>>2])&&(o[c+48>>2]=o[r+48>>2]),(0|o[i+9280>>2])==(0|r)&&(o[i+9280>>2]=o[r+48>>2]),o[i+9284>>2]=(0|o[i+9284>>2])-1,o[r+44>>2]=0,o[r+48>>2]=o[i+9288>>2],0|(c=0|o[i+9288>>2])&&(o[c+44>>2]=r),o[i+9288>>2]=r,o[i+9292>>2]=1+(0|o[i+9292>>2]),u=h,0|(a=1)):(u=h,0|(a=0))))}function se(i,t,e,n,r,o,f,a,c,h){h|=0;var l;return l=u,(((f=+f)-(n=+n))*(t=+t)-((a=+a)-(r=+r))*(i=+i))*(o=+o)+(((a-r)*(e=+e)-((c=+c)-o)*t)*n+((c-o)*i-(f-n)*e)*r)<0?(f-n)*n+(a-r)*r+(c-o)*o>0?(s[h>>2]=+_(+(n*n+r*r+o*o)),u=l,0|(h=1)):(f-n)*f+(a-r)*a+(c-o)*c<0?(s[h>>2]=+_(+(f*f+a*a+c*c)),u=l,0|(h=1)):(t=((f*f+a*a+c*c)*(n*n+r*r+o*o)-(f*n+a*r+c*o)*(f*n+a*r+c*o))/((f-n)*(f-n)+(a-r)*(a-r)+(c-o)*(c-o)),s[h>>2]=+_(+(t>0?t:0)),u=l,0|(h=1)):(u=l,0|(h=0))}function ce(i,t,e,n){t|=0,e|=0,n|=0;var r,f,a,c=0,h=0,l=0,d=0;return a=u,h=+s[(i|=0)>>2],c=+s[t>>2]-h,l=+s[i+4>>2],r=+s[t+4>>2]-l,d=+s[i+8>>2],c*c+r*r+(f=+s[t+8>>2]-d)*f>0?(h=-(h*c+l*r+d*f)/(c*c+r*r+f*f))>=1?(s[e>>2]=0,s[e+4>>2]=1,o[n>>2]=2,h=+s[t>>2],l=+s[t+4>>2],d=+s[t+8>>2],u=a,+(d=h*h+l*l+d*d)):h<=0?(s[e>>2]=1,s[e+4>>2]=0,o[n>>2]=1,h=+s[i>>2],l=+s[i+4>>2],d=+s[i+8>>2],u=a,+(d=h*h+l*l+d*d)):(s[e+4>>2]=h,s[e>>2]=1-h,o[n>>2]=3,c=c*h+ +s[i>>2],l=r*h+ +s[i+4>>2],d=f*h+ +s[i+8>>2],u=a,+(d=c*c+l*l+d*d)):(u=a,+(d=-1))}function ue(i,t,e,n,r){i|=0,t|=0,e|=0,n|=0,r|=0;var f,a,c,h,l,d,v,b,w,p,m,y,k,g=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0,L=0,I=0,A=0;if(k=u,u=u+80|0,o[k+64>>2]=i,o[k+68>>2]=t,o[k+72>>2]=e,p=+s[i>>2],h=+s[t>>2],m=+s[i+4>>2],d=+s[t+4>>2],y=+s[i+8>>2],b=+s[t+8>>2],s[k+16>>2]=p-h,s[k+20>>2]=m-d,s[k+24>>2]=y-b,s[k+28>>2]=0,l=+s[e>>2],v=+s[e+4>>2],w=+s[e+8>>2],s[k+32>>2]=h-l,s[k+36>>2]=d-v,s[k+40>>2]=b-w,s[k+44>>2]=0,s[k+48>>2]=l-p,s[k+52>>2]=v-m,s[k+56>>2]=w-y,s[k+60>>2]=0,!((f=(d-v)*(p-h)-(m-d)*(h-l))*f+((a=(m-d)*(b-w)-(y-b)*(d-v))*a+(c=(y-b)*(h-l)-(b-w)*(p-h))*c)>0))return u=k,+(A=-1);for(o[k>>2]=0,o[k+4>>2]=0,o[k+8>>2]=0,E=m-d,L=y-b,T=p-h,j=p,S=m,M=y,x=i,I=0,A=-1;j*(f*E-c*L)+S*(a*L-f*T)+(c*T-a*E)*M>0&&(g=0|o[17720+(I<<2)>>2],A<0|(C=+ce(x,0|o[k+64+(g<<2)>>2],k,k+8|0))<A)&&(x=0|o[k+8>>2],o[r>>2]=(1&x?1<<I:0)+(2&x?1<<g:0),s[n+(I<<2)>>2]=+s[k>>2],s[n+(g<<2)>>2]=+s[k+4>>2],s[n+(o[17720+(g<<2)>>2]<<2)>>2]=0,A=C),3!=(0|(I=I+1|0));)x=0|o[k+64+(I<<2)>>2],E=+s[k+16+(I<<4)+4>>2],L=+s[k+16+(I<<4)+8>>2],T=+s[k+16+(I<<4)>>2],j=+s[x>>2],S=+s[x+4>>2],M=+s[x+8>>2];return A<0?(T=+_(+(f*f+(a*a+c*c))),A=(a*+s[i>>2]+c*+s[i+4>>2]+f*+s[i+8>>2])/(f*f+(a*a+c*c)),o[r>>2]=7,M=+s[t>>2]-a*A,S=+s[t+4>>2]-c*A,L=+s[t+8>>2]-f*A,L=+_(+((S*(h-l)-M*(d-v))*(S*(h-l)-M*(d-v))+(((d-v)*L-S*(b-w))*((d-v)*L-S*(b-w))+(M*(b-w)-L*(h-l))*(M*(b-w)-L*(h-l)))))/T,s[n>>2]=L,M=+s[e>>2]-a*A,S=+s[e+4>>2]-c*A,E=+s[e+8>>2]-f*A,T=+_(+((S*(l-p)-M*(v-m))*(S*(l-p)-M*(v-m))+(((v-m)*E-S*(w-y))*((v-m)*E-S*(w-y))+(M*(w-y)-E*(l-p))*(M*(w-y)-E*(l-p)))))/T,s[n+4>>2]=T,s[n+8>>2]=1-(T+L),u=k,+(A=f*A*f*A+(a*A*a*A+c*A*c*A))):(u=k,+A)}function he(i){var t,e,r=0,f=0,a=0,s=0,c=0,h=0;if(e=u,r=0|o[(i|=0)+12>>2],(0|(t=0|o[i+32>>2]))>=(0|r))u=e;else{if((0|t)<=(0|r)){if((0|o[i+36>>2])<(0|r)){if(0|r?(o[4546]=1+(0|o[4546]),0|(f=0|ye(16+(r<<2|3)|0))?(o[(f+19&-16)-4>>2]=f,f=f+19&-16):f=0,a=0|o[i+32>>2]):(a=t,f=0),(0|a)>0){s=0;do{0|(c=f+(s<<2)|0)&&(o[c>>2]=o[(0|o[i+40>>2])+(s<<2)>>2]),s=s+1|0}while((0|s)!=(0|a))}0|(a=0|o[i+40>>2])&&(0|n[i+44|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[a+-4>>2])),o[i+40>>2]=0),n[i+44|0]=1,o[i+40>>2]=f,o[i+36>>2]=r}else f=0|o[i+40>>2];a=t;do{0|(s=f+(a<<2)|0)&&(o[s>>2]=0),a=a+1|0}while((0|a)!=(0|r))}if(o[i+32>>2]=r,(0|(f=0|o[i+52>>2]))<(0|r)){if((0|o[i+56>>2])<(0|r)){if(0|r?(o[4546]=1+(0|o[4546]),0|(a=0|ye(16+(r<<2|3)|0))?(o[(a+19&-16)-4>>2]=a,s=a+19&-16):s=0,a=0|o[i+52>>2]):(a=f,s=0),(0|a)>0){h=0;do{0|(c=s+(h<<2)|0)&&(o[c>>2]=o[(0|o[i+60>>2])+(h<<2)>>2]),h=h+1|0}while((0|h)!=(0|a))}0|(a=0|o[i+60>>2])&&(0|n[i+64|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[a+-4>>2])),o[i+60>>2]=0),n[i+64|0]=1,o[i+60>>2]=s,o[i+56>>2]=r}else s=0|o[i+60>>2];do{0|(a=s+(f<<2)|0)&&(o[a>>2]=0),f=f+1|0}while((0|f)!=(0|r))}if(o[i+52>>2]=r,(0|r)>0&&(Ce(0|o[i+40>>2],-1,r<<2),Ce(0|o[i+60>>2],-1,r<<2)),(0|t)<=0)u=e;else{a=0|o[i+16>>2],f=0|o[i+40>>2],r=0|o[i+60>>2],s=0;do{h=f+(((((h=9*((h=o[a+(12*s|0)+4>>2]<<16|o[a+(12*s|0)>>2])+~(h<<15)>>10^h+~(h<<15))|0)>>6^h)+~((h>>6^h)<<11)>>16^(h>>6^h)+~((h>>6^h)<<11))&(0|o[i+12>>2])-1)<<2)|0,o[r+(s<<2)>>2]=o[h>>2],o[h>>2]=s,s=s+1|0}while((0|s)!=(0|t));u=e}}}function le(i){var t,e=0;if(t=u,o[(i|=0)>>2]=17768,0|(e=0|o[i+60>>2])&&(0|n[i+64|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+60>>2]=0),n[i+64|0]=1,o[i+60>>2]=0,o[i+52>>2]=0,o[i+56>>2]=0,0|(e=0|o[i+40>>2])&&(0|n[i+44|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+40>>2]=0),n[i+44|0]=1,o[i+40>>2]=0,o[i+32>>2]=0,o[i+36>>2]=0,!(0|(e=0|o[i+16>>2])))return n[i+20|0]=1,o[i+16>>2]=0,o[i+8>>2]=0,o[(e=i+12|0)>>2]=0,void(u=t);0|n[i+20|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+16>>2]=0,n[i+20|0]=1,o[i+16>>2]=0,o[i+8>>2]=0,o[(e=i+12|0)>>2]=0,u=t}function de(i){var t,e=0,r=0,f=0,a=0,s=0;if(t=u,0|(e=0|o[(i|=0)+16>>2])&&(0|n[i+20|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+16>>2]=0),n[i+20|0]=1,o[i+16>>2]=0,o[i+8>>2]=0,o[i+12>>2]=0,0|(e=0|o[i+40>>2])&&(0|n[i+44|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+40>>2]=0),n[i+44|0]=1,o[i+40>>2]=0,o[i+32>>2]=0,o[i+36>>2]=0,0|(e=0|o[i+60>>2])&&(0|n[i+64|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+60>>2]=0),n[i+64|0]=1,o[i+60>>2]=0,o[i+52>>2]=0,o[i+56>>2]=0,(0|o[i+12>>2])>=2)return he(i),void(u=t);if(o[4546]=1+(0|o[4546]),0|(e=0|ye(43))?(o[(e+19&-16)-4>>2]=e,e=e+19&-16):e=0,(0|(r=0|o[i+8>>2]))>0){a=0;do{0|(f=e+(12*a|0)|0)&&(s=(0|o[i+16>>2])+(12*a|0)|0,o[f+0>>2]=o[s+0>>2],o[f+4>>2]=o[s+4>>2],o[f+8>>2]=o[s+8>>2]),a=a+1|0}while((0|a)!=(0|r))}0|(r=0|o[i+16>>2])&&(0|n[i+20|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[r+-4>>2])),o[i+16>>2]=0),n[i+20|0]=1,o[i+16>>2]=e,o[i+12>>2]=2,he(i),u=t}function ve(i,t,e,n,r,o,f,a,c,h,l){t|=0,e=+e,n=+n,r=+r,o=+o,f=+f,a=+a,c|=0,h|=0,l=+l;var d,v,b,_,w,p,m,y,k=0,g=0,C=0,j=0,S=0,x=0,M=0;return b=u,v=+s[(i|=0)>>2]*o+ +s[i+16>>2]*f+ +s[i+32>>2]*a,d=+s[i+4>>2]*o+ +s[i+20>>2]*f+ +s[i+36>>2]*a,w=+s[i+8>>2]*o+ +s[i+24>>2]*f+ +s[i+40>>2]*a,_=+s[t>>2]*o+ +s[t+16>>2]*f+ +s[t+32>>2]*a,p=+s[t+4>>2]*o+ +s[t+20>>2]*f+ +s[t+36>>2]*a,m=+s[t+8>>2]*o+ +s[t+24>>2]*f+ +s[t+40>>2]*a,k=+s[c+80>>2],v<0&&(k=-k),g=+s[c+84>>2],d<0&&(g=-g),C=+s[c+88>>2],w<0&&(C=-C),j=+s[h+80>>2],_<0&&(j=-j),S=+s[h+84>>2],p<0&&(S=-S),x=+s[h+88>>2],m<0?(y=-x,M=(x=(M=v*k)+(x=d*g))+(M=w*C),S=(x=(j*=_)+(x=p*S))+(S=m*y),x=(i=M>(x=+s[(i=c+96|0)>>2]))?M:x,M=+s[(i=h+96|0)>>2],u=b,0|(i=!((M=(i=(x=e*o+n*f+r*a+(M=x+(M=(i=S>M)?S:M)))<(M-=e*o+n*f+r*a))?x:M)>l))):(j=(S=(j*=_)+(S*=p))+(j=m*(M=x)),S=(i=(x=(g=(x=v*k)+(g*=d))+(x=w*C))>(S=+s[(i=c+96|0)>>2]))?x:S,x=+s[(i=h+96|0)>>2],u=b,0|(i=!((x=(i=(S=e*o+n*f+r*a+(x=S+(x=(i=j>x)?j:x)))<(x-=e*o+n*f+r*a))?S:x)>l)))}function be(i,t,e,n,r){i|=0,t|=0,e|=0,n|=0,r|=0;var f,a,c,h,l,d,v=0,w=0,p=0,m=0,y=0,g=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0,L=0,I=0,A=0,D=0,O=0,R=0,P=0,N=0,B=0,F=0,V=0,U=0,G=0,W=0,z=0,X=0,$=0,H=0,q=0,K=0,Y=0,Q=0,Z=0,J=0,ii=0,ti=0,ei=0,ni=0,ri=0,oi=0,fi=0,ai=0,si=0,ci=0,ui=0,hi=0,li=0,di=0,vi=0,bi=0,_i=0,wi=0,pi=0,mi=0,yi=0,ki=0,gi=0,Ci=0,ji=0,Si=0,xi=0,Mi=0,Ei=0,Ti=0;if(n=u,u=u+656|0,s[n+48>>2]=+s[t>>2],s[n>>2]=+s[t+64>>2],s[(r=n+52|0)>>2]=+s[t+4>>2],s[n+4>>2]=+s[t+68>>2],s[n+56>>2]=+s[t+8>>2],s[n+8>>2]=+s[t+72>>2],s[n+64>>2]=+s[t+16>>2],s[n+16>>2]=+s[t+80>>2],s[n+68>>2]=+s[t+20>>2],s[n+20>>2]=+s[t+84>>2],s[n+72>>2]=+s[t+24>>2],s[n+24>>2]=+s[t+88>>2],s[n+80>>2]=+s[t+32>>2],s[n+32>>2]=+s[t+96>>2],s[n+84>>2]=+s[t+36>>2],s[n+36>>2]=+s[t+100>>2],s[n+88>>2]=+s[t+40>>2],s[n+40>>2]=+s[t+104>>2],Ti=0|o[i+4>>2],R=+s[Ti+28>>2],B=+s[Ti+32>>2],P=+s[Ti+36>>2],F=+mn[15&o[48+(0|o[Ti>>2])>>2]](Ti),N=+mn[15&o[48+(0|o[Ti>>2])>>2]](Ti),P=2*(P+ +mn[15&o[48+(0|o[Ti>>2])>>2]](Ti)),Ti=0|o[i+8>>2],L=+s[Ti+28>>2],T=+s[Ti+32>>2],S=+s[Ti+36>>2],D=+mn[15&o[48+(0|o[Ti>>2])>>2]](Ti),E=+mn[15&o[48+(0|o[Ti>>2])>>2]](Ti),S=2*(S+ +mn[15&o[48+(0|o[Ti>>2])>>2]](Ti)),a=+s[t+112>>2]-+s[t+48>>2],f=+s[t+116>>2]-+s[t+52>>2],K=+s[t+120>>2]-+s[t+56>>2],p=+s[n+48>>2],w=+s[n+64>>2],v=+s[n+80>>2],W=+s[r>>2],z=+s[n+68>>2],G=+s[n+84>>2],U=+s[n+56>>2],V=+s[n+72>>2],O=+s[n+88>>2],s[n+548>>2]=2*(R+F)*.5,s[n+552>>2]=2*(B+N)*.5,s[n+556>>2]=.5*P,s[n+536>>2]=2*(L+D)*.5,s[n+540>>2]=2*(T+E)*.5,s[n+544>>2]=.5*S,g=+s[n>>2],I=+s[n+16>>2],M=+s[n+32>>2],j=+s[n+4>>2],A=+s[n+20>>2],x=+s[n+36>>2],C=+s[n+8>>2],y=+s[n+24>>2],m=+s[n+40>>2],ii=+b(+(p*g+w*I+v*M)),Y=+b(+(p*j+w*A+v*x)),q=+b(+(p*C+w*y+v*m)),J=+b(+(g*W+I*z+M*G)),c=+b(+(j*W+A*z+x*G)),X=+b(+(C*W+y*z+m*G)),H=+b(+(g*U+I*V+M*O)),$=+b(+(j*U+A*V+x*O)),Q=+b(+(C*U+y*V+m*O)),(ti=+b(+(a*p+f*w+K*v))-(.5*S*q+(2*(R+F)*.5+ii*(L+D)*2*.5+Y*(T+E)*2*.5)))>0)u=n;else if(ti>-34028234663852886e22?(si=1,Z=a*p+f*w+K*v<0&1,i=n+48|0):(si=0,Z=0,i=0,ti=-34028234663852886e22),(ei=+b(+(a*W+f*z+K*G))-(2*(B+N)*.5+J*(L+D)*2*.5+c*(T+E)*2*.5+X*S*.5))>0)u=n;else if(ei>ti&&(si=2,Z=a*W+f*z+K*G<0&1,i=r,ti=ei),(ei=+b(+(a*U+f*V+K*O))-(.5*P+H*(L+D)*2*.5+$*(T+E)*2*.5+Q*S*.5))>0)u=n;else if(ei>ti?(si=3,Z=a*U+f*V+K*O<0&1,i=n+56|0):ei=ti,(ti=+b(+(a*g+f*I+K*M))-(2*(L+D)*.5+(ii*(R+F)*2*.5+J*(B+N)*2*.5+H*P*.5)))>0)u=n;else if(ti>ei?(si=4,Z=a*g+f*I+K*M<0&1,i=n):ti=ei,(ei=+b(+(a*j+f*A+K*x))-(2*(T+E)*.5+(Y*(R+F)*2*.5+c*(B+N)*2*.5+$*P*.5)))>0)u=n;else if(ei>ti&&(si=5,Z=a*j+f*A+K*x<0&1,i=n+4|0,ti=ei),(_i=+b(+(a*C+f*y+K*m))-(.5*S+(q*(R+F)*2*.5+X*(B+N)*2*.5+Q*P*.5)))>0)u=n;else if(_i>ti?(si=6,Z=a*C+f*y+K*m<0&1,i=n+8|0):_i=ti,(ti=+b(+(ni=(a*U+f*V+K*O)*(g*W+I*z+M*G)-(a*W+f*z+K*G)*(g*U+I*V+M*O)))-((H+9999999747378752e-21)*(B+N)*2*.5+(J+9999999747378752e-21)*P*.5+(q+9999999747378752e-21)*(T+E)*2*.5+(Y+9999999747378752e-21)*S*.5))>1.1920928955078125e-7)u=n;else if((ei=+_(+((h=(g*W+I*z+M*G)*(g*W+I*z+M*G))+(oi=(g*U+I*V+M*O)*(g*U+I*V+M*O)+0))))>1.1920928955078125e-7&&ti/ei*1.0499999523162842>_i?(si=7,vi=0/ei,li=-(g*U+I*V+M*O)/ei,di=(g*W+I*z+M*G)/ei,Z=ni<0&1,i=0,_i=ti/ei):(vi=0,li=0,di=0),(ei=+b(+(ri=(a*U+f*V+K*O)*(j*W+A*z+x*G)-(a*W+f*z+K*G)*(j*U+A*V+x*O)))-(($+9999999747378752e-21)*(B+N)*2*.5+(c+9999999747378752e-21)*P*.5+(q+9999999747378752e-21)*(L+D)*2*.5+(ii+9999999747378752e-21)*S*.5))>1.1920928955078125e-7)u=n;else if((ni=+_(+((ti=(j*W+A*z+x*G)*(j*W+A*z+x*G))+(fi=(j*U+A*V+x*O)*(j*U+A*V+x*O)+0))))>1.1920928955078125e-7&&ei/ni*1.0499999523162842>_i&&(si=8,vi=0/ni,li=-(j*U+A*V+x*O)/ni,di=(j*W+A*z+x*G)/ni,Z=ri<0&1,i=0,_i=ei/ni),(wi=+b(+(ki=(a*U+f*V+K*O)*(C*W+y*z+m*G)-(a*W+f*z+K*G)*(C*U+y*V+m*O)))-((Q+9999999747378752e-21)*(B+N)*2*.5+(X+9999999747378752e-21)*P*.5+(Y+9999999747378752e-21)*(L+D)*2*.5+(ii+9999999747378752e-21)*(T+E)*2*.5))>1.1920928955078125e-7)u=n;else if((ni=+_(+((ei=(C*W+y*z+m*G)*(C*W+y*z+m*G))+(ri=(C*U+y*V+m*O)*(C*U+y*V+m*O)+0))))>1.1920928955078125e-7&&wi/ni*1.0499999523162842>_i&&(si=9,vi=0/ni,li=-(C*U+y*V+m*O)/ni,di=(C*W+y*z+m*G)/ni,Z=ki<0&1,i=0,_i=wi/ni),(wi=+b(+(ki=(a*p+f*w+K*v)*(g*U+I*V+M*O)-(a*U+f*V+K*O)*(p*g+w*I+v*M)))-((H+9999999747378752e-21)*(R+F)*2*.5+(ii+9999999747378752e-21)*P*.5+(X+9999999747378752e-21)*(T+E)*2*.5+(c+9999999747378752e-21)*S*.5))>1.1920928955078125e-7)u=n;else{oi=+_(+((ni=(p*g+w*I+v*M)*(p*g+w*I+v*M))+oi));do{if(oi>1.1920928955078125e-7){if(!(wi/oi*1.0499999523162842>_i))break;si=10,vi=(g*U+I*V+M*O)/oi,li=0/oi,di=-(p*g+w*I+v*M)/oi,Z=ki<0&1,i=0,_i=wi/oi}}while(0);if((wi=+b(+(ki=(a*p+f*w+K*v)*(j*U+A*V+x*O)-(a*U+f*V+K*O)*(p*j+w*A+v*x)))-(($+9999999747378752e-21)*(R+F)*2*.5+(Y+9999999747378752e-21)*P*.5+(X+9999999747378752e-21)*(L+D)*2*.5+(J+9999999747378752e-21)*S*.5))>1.1920928955078125e-7)u=n;else{fi=+_(+((oi=(p*j+w*A+v*x)*(p*j+w*A+v*x))+fi));do{if(fi>1.1920928955078125e-7){if(!(wi/fi*1.0499999523162842>_i))break;si=11,vi=(j*U+A*V+x*O)/fi,li=0/fi,di=-(p*j+w*A+v*x)/fi,Z=ki<0&1,i=0,_i=wi/fi}}while(0);if((wi=+b(+(ki=(a*p+f*w+K*v)*(C*U+y*V+m*O)-(a*U+f*V+K*O)*(p*C+w*y+v*m)))-((Q+9999999747378752e-21)*(R+F)*2*.5+(q+9999999747378752e-21)*P*.5+(c+9999999747378752e-21)*(L+D)*2*.5+(J+9999999747378752e-21)*(T+E)*2*.5))>1.1920928955078125e-7)u=n;else{ri=+_(+((fi=(p*C+w*y+v*m)*(p*C+w*y+v*m))+ri));do{if(ri>1.1920928955078125e-7){if(!(wi/ri*1.0499999523162842>_i))break;si=12,vi=(C*U+y*V+m*O)/ri,li=0/ri,di=-(p*C+w*y+v*m)/ri,Z=ki<0&1,i=0,_i=wi/ri}}while(0);if((J=+b(+(ri=(a*W+f*z+K*G)*(p*g+w*I+v*M)-(a*p+f*w+K*v)*(g*W+I*z+M*G)))-((J+9999999747378752e-21)*(R+F)*2*.5+(ii+9999999747378752e-21)*(B+N)*2*.5+(Q+9999999747378752e-21)*(T+E)*2*.5+($+9999999747378752e-21)*S*.5))>1.1920928955078125e-7)u=n;else{ii=+_(+(ni+h+0));do{if(ii>1.1920928955078125e-7){if(!(J/ii*1.0499999523162842>_i))break;si=13,vi=-(g*W+I*z+M*G)/ii,li=(p*g+w*I+v*M)/ii,di=0/ii,Z=ri<0&1,i=0,_i=J/ii}}while(0);if((Y=+b(+(J=(a*W+f*z+K*G)*(p*j+w*A+v*x)-(a*p+f*w+K*v)*(j*W+A*z+x*G)))-((c+9999999747378752e-21)*(R+F)*2*.5+(Y+9999999747378752e-21)*(B+N)*2*.5+(Q+9999999747378752e-21)*(L+D)*2*.5+(H+9999999747378752e-21)*S*.5))>1.1920928955078125e-7)u=n;else{Q=+_(+(oi+ti+0));do{if(Q>1.1920928955078125e-7){if(!(Y/Q*1.0499999523162842>_i)){ai=i;break}si=14,vi=-(j*W+A*z+x*G)/Q,li=(p*j+w*A+v*x)/Q,di=0/Q,Z=J<0&1,ai=0,_i=Y/Q}else ai=i}while(0);if((X=+b(+(K=(a*W+f*z+K*G)*(p*C+w*y+v*m)-(a*p+f*w+K*v)*(C*W+y*z+m*G)))-((X+9999999747378752e-21)*(R+F)*2*.5+(q+9999999747378752e-21)*(B+N)*2*.5+($+9999999747378752e-21)*(L+D)*2*.5+(H+9999999747378752e-21)*(T+E)*2*.5))>1.1920928955078125e-7)u=n;else{$=+_(+(fi+ei+0));do{if($>1.1920928955078125e-7){if(!(X/$*1.0499999523162842>_i)){i=55;break}si=15,vi=-(C*W+y*z+m*G)/$,li=(p*C+w*y+v*m)/$,di=0/$,Z=K<0&1,_i=X/$,i=58}else i=55}while(0);do{if(55==(0|i)){if(!(0|si))return void(u=n);if(!(0|ai)){i=58;break}p=+s[ai>>2],v=+s[ai+16>>2],w=+s[ai+32>>2]}}while(0);if(58==(0|i)&&(p=vi*+s[n+48>>2]+li*+s[r>>2]+di*U,v=vi*+s[n+64>>2]+li*+s[n+68>>2]+di*V,w=vi*+s[n+80>>2]+li*+s[n+84>>2]+di*O),0|Z&&(p=-p,v=-v,w=-w),(0|si)>6)return li=(p*(ri=+s[n+48>>2])+v*(oi=+s[n+64>>2])+w*(di=+s[n+80>>2])>0?1:-1)*(R+F)*2*.5,vi=(p*(R=+s[r>>2])+v*(fi=+s[n+68>>2])+w*(wi=+s[n+84>>2])>0?1:-1)*(B+N)*2*.5,ki=(p*U+v*V+w*O>0?1:-1)*P*.5,R=+s[t+48>>2]+li*ri+vi*R+ki*U,P=+s[t+52>>2]+li*oi+vi*fi+ki*V,O=+s[t+56>>2]+li*di+vi*wi+ki*O,o[n+520>>2]=o[t+112>>2],o[n+524>>2]=o[t+116>>2],o[n+528>>2]=o[t+120>>2],ki=(p*g+v*I+w*M>0?-1:1)*(L+D)*2*.5,L=(p*j+v*A+w*x>0?-1:1)*(T+E)*2*.5,E=+s[n+524>>2]+ki*I+L*A,x=+s[n+528>>2]+ki*M+L*x,S=(p*C+v*y+w*m>0?-1:1)*S*.5,g=+s[n+520>>2]+ki*g+L*j+S*C,s[n+520>>2]=g,s[n+524>>2]=E+S*y,s[n+528>>2]=x+S*m,A=+s[n+48+((0|(Ti=si+-7|0))/3<<2)>>2],I=+s[n+48+(4+((0|Ti)/3|0)<<2)>>2],L=+s[n+48+(8+((0|Ti)/3|0)<<2)>>2],T=(T=1-(A*(C=+s[n+((0|Ti)%3<<2)>>2])+I*(M=+s[n+(4+((0|Ti)%3|0)<<2)>>2])+L*(j=+s[n+(8+((0|Ti)%3|0)<<2)>>2]))*(A*C+I*M+L*j))<=9999999747378752e-20?0:1/T*(((g-R)*A+(E+S*y-P)*I+(x+S*m-O)*L)*(A*C+I*M+L*j)-((g-R)*C+(E+S*y-P)*M+(x+S*m-O)*j)),s[n+520>>2]=g+T*C,s[n+524>>2]=E+S*y+T*M,s[n+528>>2]=x+S*m+T*j,Ti=0|o[16+(0|o[e>>2])>>2],s[n+504>>2]=-p,s[n+508>>2]=-v,s[n+512>>2]=-w,s[n+516>>2]=0,Rn[15&Ti](e,n+504|0,n+520|0,_i),void(u=n);(Z=(0|si)<4)?(g=p,m=v,y=w,ci=n+48|0,mi=n,ai=n+548|0,bi=n+536|0,r=t+48|0,t=t+112|0):(g=-p,m=-v,y=-w,ci=n,mi=n+48|0,ai=n+536|0,bi=n+548|0,r=t+112|0,t=t+48|0),S=g*+s[mi>>2]+m*+s[mi+16>>2]+y*+s[mi+32>>2],s[n+488>>2]=S,j=g*+s[mi+4>>2]+m*+s[mi+20>>2]+y*+s[mi+36>>2],s[n+492>>2]=j,C=g*+s[mi+8>>2]+m*+s[mi+24>>2]+y*+s[mi+40>>2],s[n+496>>2]=C,S=+b(+S),j=+b(+j),C=+b(+C),j>S?(pi=0,hi=j>C,ui=j>C?1:2):(pi=S>C&1,hi=S>C,ui=S>C?0:2),yi=hi?2:1,S=+s[bi+(ui<<2)>>2],C=+s[t>>2]-+s[r>>2],j=S*+s[mi+(ui<<2)>>2],+s[n+488+(ui<<2)>>2]<0?(j=C+j,C=+s[t+4>>2]-+s[r+4>>2]+S*+s[mi+((4|ui)<<2)>>2],S=+s[t+8>>2]-+s[r+8>>2]+S*+s[mi+((8|ui)<<2)>>2]):(j=C-j,C=+s[t+4>>2]-+s[r+4>>2]-S*+s[mi+((4|ui)<<2)>>2],S=+s[t+8>>2]-+s[r+8>>2]-S*+s[mi+((8|ui)<<2)>>2]),0|(l=(Z?-1:-4)+si|0)?1==(0|l)?(gi=0,Ci=2):(gi=0,Ci=1):(gi=1,Ci=2),E=j*(T=+s[ci+(gi<<2)>>2])+C*(L=+s[ci+((4|gi)<<2)>>2])+S*(I=+s[ci+((8|gi)<<2)>>2]),D=j*(x=+s[ci+(Ci<<2)>>2])+C*(M=+s[ci+((4|Ci)<<2)>>2])+S*(O=+s[ci+((8|Ci)<<2)>>2]),A=+s[(d=mi+(pi<<2)|0)>>2],B=+s[(ui=mi+((4|pi)<<2)|0)>>2],P=+s[(si=mi+((8|pi)<<2)|0)>>2],N=+s[(hi=mi+(yi<<2)|0)>>2],R=+s[(ci=mi+((4|yi)<<2)|0)>>2],F=+s[(t=mi+((8|yi)<<2)|0)>>2],wi=+s[bi+(pi<<2)>>2],_i=(T*N+L*R+I*F)*(ki=+s[bi+(yi<<2)>>2]),ki*=x*N+M*R+O*F,s[n+456>>2]=E-(T*A+L*B+I*P)*wi-_i,s[n+460>>2]=D-(x*A+M*B+O*P)*wi-ki,s[n+464>>2]=E-(T*A+L*B+I*P)*wi+_i,s[n+468>>2]=D-(x*A+M*B+O*P)*wi+ki,s[n+472>>2]=E+(T*A+L*B+I*P)*wi+_i,s[n+476>>2]=D+(x*A+M*B+O*P)*wi+ki,s[n+480>>2]=E+(T*A+L*B+I*P)*wi-_i,s[n+484>>2]=D+(x*A+M*B+O*P)*wi-ki,s[n+448>>2]=+s[ai+(gi<<2)>>2],s[n+452>>2]=+s[ai+(Ci<<2)>>2],mi=0,Si=4,Ci=n+456|0,pi=n+384|0;i:for(;;){for(bi=n+448+(mi<<2)|0,yi=1-mi|0,gi=-1;;){if((0|Si)>0)for(V=+(0|gi),Mi=0,ji=Ci,xi=pi;;){if(V*(U=+s[(Ei=ji+(mi<<2)|0)>>2])<(G=+s[bi>>2])){if(s[xi>>2]=+s[ji>>2],s[xi+4>>2]=+s[ji+4>>2],8&(Mi=Mi+1|0)){Si=Mi;break i}U=+s[Ei>>2],G=+s[bi>>2],xi=xi+8|0}if(Ti=ji,ji=ji+8|0,V*U<G^V*(W=+s[(Ei=(0|Si)>1?ji:Ci)+(mi<<2)>>2])<G){if(ki=+s[Ti+(yi<<2)>>2],s[xi+(yi<<2)>>2]=ki+(V*G-U)*((+s[Ei+(yi<<2)>>2]-ki)/(W-U)),s[xi+(mi<<2)>>2]=V*+s[bi>>2],8&(Mi=Mi+1|0)){Si=Mi;break i}xi=xi+8|0}if((0|(Si=Si+-1|0))<=0){Si=Mi;break}}else Si=0;if(ji=(0|pi)==(n+384|0)?n+592|0:n+384|0,!((0|gi)<0))break;Ci=pi,pi=ji,gi=gi+2|0}if(!((0|(mi=mi+1|0))<2))break;Ci=pi,pi=ji}if((0|pi)!=(n+384|0)&&Se(n+384|0,0|pi,Si<<3),(0|Si)<1)u=n;else{V=1/((T*A+L*B+I*P)*(x*N+M*R+O*F)-(x*A+M*B+O*P)*(T*N+L*R+I*F)),U=+s[ai+(l<<2)>>2],G=+s[d>>2],W=+s[hi>>2],z=+s[ui>>2],X=+s[ci>>2],$=+s[si>>2],H=+s[t>>2],t=0,ai=0;do{_i=j+(vi=(x*N+M*R+O*F)*V*((q=+s[n+384+((Ti=ai<<1)<<2)>>2])-E)-(T*N+L*R+I*F)*V*((K=+s[n+384+((1|Ti)<<2)>>2])-D))*G+(ki=(T*A+L*B+I*P)*V*(K-D)-(x*A+M*B+O*P)*V*(q-E))*W,s[n+288+((Ti=3*t|0)<<2)>>2]=_i,wi=C+vi*z+ki*X,s[n+288+(Ti+1<<2)>>2]=wi,ki=S+vi*$+ki*H,s[n+288+(Ti+2<<2)>>2]=ki,ki=U-(g*_i+m*wi+y*ki),s[n+256+(t<<2)>>2]=ki,ki>=0&&(s[n+384+((Ti=t<<1)<<2)>>2]=q,s[n+384+((1|Ti)<<2)>>2]=K,t=t+1|0),ai=ai+1|0}while((0|ai)!=(0|Si));if((0|t)<1)u=n;else if((0|t)<=(0|(ai=(0|(ai=(0|t)<4?t:4))<1?1:ai))){if(i=(0|t)>0,Z){if(!i)return void(u=n);i=r+4|0,Z=r+8|0,p=-p,v=-v,w=-w,ai=0;do{Ti=3*ai|0,s[n+240>>2]=+s[n+288+(Ti<<2)>>2]+ +s[r>>2],s[n+244>>2]=+s[n+288+(Ti+1<<2)>>2]+ +s[i>>2],s[n+248>>2]=+s[n+288+(Ti+2<<2)>>2]+ +s[Z>>2],Ti=0|o[16+(0|o[e>>2])>>2],s[n+224>>2]=p,s[n+228>>2]=v,s[n+232>>2]=w,s[n+236>>2]=0,Rn[15&Ti](e,n+224|0,n+240|0,-+s[n+256+(ai<<2)>>2]),ai=ai+1|0}while((0|ai)!=(0|t));return void(u=n)}if(!i)return void(u=n);i=r+4|0,Z=r+8|0,m=-p,y=-v,g=-w,ai=0;do{Ti=3*ai|0,ki=+s[n+256+(ai<<2)>>2],s[n+208>>2]=+s[n+288+(Ti<<2)>>2]+ +s[r>>2]-p*ki,s[n+212>>2]=+s[n+288+(Ti+1<<2)>>2]+ +s[i>>2]-v*ki,s[n+216>>2]=+s[n+288+(Ti+2<<2)>>2]+ +s[Z>>2]-w*ki,Ti=0|o[16+(0|o[e>>2])>>2],s[n+192>>2]=m,s[n+196>>2]=y,s[n+200>>2]=g,s[n+204>>2]=0,Rn[15&Ti](e,n+192|0,n+208|0,-ki),ai=ai+1|0}while((0|ai)!=(0|t));u=n}else{if((0|t)>1)for(ci=1,si=0,m=+s[n+256>>2];si=(ui=(y=+s[n+256+(ci<<2)>>2])>m)?ci:si,(0|(ci=ci+1|0))!=(0|t);)m=ui?y:m;else si=0;if(2==(0|t))S=.5*(+s[n+384>>2]+ +s[n+392>>2]),m=.5*(+s[n+388>>2]+ +s[n+396>>2]),i=115;else if(1!=(0|t)){if((0|(ci=t+-1|0))>0){x=0,S=0,j=0,ui=0;do{x+=(vi=+s[n+384+((Ti=ui<<1)<<2)>>2])*(_i=+s[n+384+(Ti+3<<2)>>2])-(wi=+s[n+384+(Ti+2<<2)>>2])*(ki=+s[n+384+((1|Ti)<<2)>>2]),S+=(vi+wi)*(vi*_i-wi*ki),j+=(_i+ki)*(vi*_i-wi*ki),ui=ui+1|0}while((0|ui)!=(0|ci))}else x=0,S=0,j=0;C=+s[n+384+((Ti=t<<1)+-2<<2)>>2],g=+s[n+388>>2],y=+s[n+384>>2],m=+s[n+384+(Ti+-1<<2)>>2],x=+b(+(x+=C*g-y*m))>1.1920928955078125e-7?1/(3*x):0xde0b6b000000000,(0|t)>0?(S=x*(S+(C*g-y*m)*(C+y)),m=x*(j+(C*g-y*m)*(m+g)),i=115):ci=0}else S=+s[n+384>>2],m=+s[n+388>>2],i=115;if(115==(0|i)){i=0;do{Ti=i<<1,s[n+592+(i<<2)>>2]=+k(+(+s[n+384+((1|Ti)<<2)>>2]-m),+(+s[n+384+(Ti<<2)>>2]-S)),i=i+1|0}while((0|i)!=(0|t));i=0;do{o[n+560+(i<<2)>>2]=1,i=i+1|0}while((0|i)!=(0|t));ci=1}o[(i=n+560+(si<<2)|0)>>2]=0,o[n+160>>2]=si;i:do{if((0|ai)>1){if(m=+s[n+592+(si<<2)>>2],ci)ci=n+164|0,i=1;else for(ci=n+164|0,t=1;;){if(o[ci>>2]=si,o[i>>2]=0,(0|(t=t+1|0))==(0|ai))break i;ci=ci+4|0}for(;;){(y=6.2831854820251465/+(0|ai)*+(0|i)+m)>3.1415927410125732&&(y+=-6.2831854820251465),o[ci>>2]=si,hi=si,ui=0,g=1e9;do{do{if(0|o[n+560+(ui<<2)>>2]){if((C=+b(+(+s[n+592+(ui<<2)>>2]-y)))>3.1415927410125732&&(C=6.2831854820251465-C),!(C<g))break;o[ci>>2]=ui,hi=ui,g=C}}while(0);ui=ui+1|0}while((0|ui)!=(0|t));if(o[n+560+(hi<<2)>>2]=0,(0|(i=i+1|0))==(0|ai))break;ci=ci+4|0}}}while(0);if((0|ai)<=0)u=n;else if(i=r+4|0,t=r+8|0,g=-w,y=-v,m=-p,Z){Z=0;do{Ti=0|o[n+160+(Z<<2)>>2],s[n+144>>2]=+s[n+288+(3*Ti<<2)>>2]+ +s[r>>2],s[n+148>>2]=+s[n+288+(1+(3*Ti|0)<<2)>>2]+ +s[i>>2],s[n+152>>2]=+s[n+288+(2+(3*Ti|0)<<2)>>2]+ +s[t>>2],Ei=0|o[16+(0|o[e>>2])>>2],s[n+128>>2]=m,s[n+132>>2]=y,s[n+136>>2]=g,s[n+140>>2]=0,Rn[15&Ei](e,n+128|0,n+144|0,-+s[n+256+(Ti<<2)>>2]),Z=Z+1|0}while((0|Z)<(0|ai));u=n}else{Z=0;do{Ei=0|o[n+160+(Z<<2)>>2],vi=+s[n+288+(3*Ei<<2)>>2]+ +s[r>>2],s[n+144>>2]=vi,_i=+s[n+288+(1+(3*Ei|0)<<2)>>2]+ +s[i>>2],s[n+148>>2]=_i,wi=+s[n+288+(2+(3*Ei|0)<<2)>>2]+ +s[t>>2],s[n+152>>2]=wi,Ti=0|o[16+(0|o[e>>2])>>2],s[n+112>>2]=m,s[n+116>>2]=y,s[n+120>>2]=g,s[n+124>>2]=0,ki=+s[n+256+(Ei<<2)>>2],s[n+96>>2]=vi-p*ki,s[n+100>>2]=_i-ki*v,s[n+104>>2]=wi-ki*w,s[n+108>>2]=0,Rn[15&Ti](e,n+112|0,n+96|0,-ki),Z=Z+1|0}while((0|Z)<(0|ai));u=n}}}}}}}}}}function _e(i,t,e){t|=0,e|=0;var r,f,a=0,s=0,c=0,h=0,l=0,d=0;if(f=u,u=u+32|0,r=(a=!!(0|n[(i|=0)+28|0]))?e:t,e=a?t:e,t=0|o[r+4>>2],a=0|o[t+16>>2],(0|(s=0|o[i+12>>2]))<(0|a)){if((0|o[i+16>>2])<(0|a)){if(0|a?(o[4546]=1+(0|o[4546]),0|(c=0|ye(16+(a<<2|3)|0))?(o[(c+19&-16)-4>>2]=c,h=c+19&-16):h=0,c=0|o[i+12>>2]):(c=s,h=0),(0|c)>0){l=0;do{0|(d=h+(l<<2)|0)&&(o[d>>2]=o[(0|o[i+20>>2])+(l<<2)>>2]),l=l+1|0}while((0|l)!=(0|c))}0|(c=0|o[i+20>>2])&&(0|n[i+24|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[c+-4>>2])),o[i+20>>2]=0),n[i+24|0]=1,o[i+20>>2]=h,o[i+16>>2]=a,c=i+20|0}else c=i+20|0;do{0|(h=(0|o[c>>2])+(s<<2)|0)&&(o[h>>2]=0),s=s+1|0}while((0|s)!=(0|a))}if(o[i+12>>2]=a,(0|a)<=0)u=f;else{s=0;do{0|o[t+64>>2]?o[(0|o[i+20>>2])+(s<<2)>>2]=0:(h=0|o[(0|o[t+24>>2])+(80*s|0)+64>>2],l=0|o[r+8>>2],d=0|o[r+12>>2],o[f>>2]=r,o[f+4>>2]=h,o[f+8>>2]=l,o[f+12>>2]=d,o[f+16>>2]=-1,o[f+20>>2]=s,d=0|o[i+4>>2],d=0|hn[31&o[8+(0|o[d>>2])>>2]](d,f,e,0|o[i+32>>2]),o[(0|o[i+20>>2])+(s<<2)>>2]=d),s=s+1|0}while((0|s)!=(0|a));u=f}}function we(i){var t,e=0,r=0,f=0;if(t=u,o[(i|=0)>>2]=16208,(0|(e=0|o[i+12>>2]))>0){r=0;do{0|(f=0|o[(0|o[i+20>>2])+(r<<2)>>2])&&(nn[255&o[o[f>>2]>>2]](f),f=0|o[i+4>>2],on[127&o[60+(0|o[f>>2])>>2]](f,0|o[(0|o[i+20>>2])+(r<<2)>>2])),r=r+1|0}while((0|r)!=(0|e))}if(!(0|(e=0|o[i+20>>2])))return n[i+24|0]=1,o[i+20>>2]=0,o[i+12>>2]=0,o[(f=i+16|0)>>2]=0,void(u=t);0|n[i+24|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+20>>2]=0,n[i+24|0]=1,o[i+20>>2]=0,o[i+12>>2]=0,o[(f=i+16|0)>>2]=0,u=t}function pe(i,t,e){t|=0,e|=0;var n,r,f,a,c,h,l,d,v,b,_,w,p,m,y,k,g,C,j,S,x,M,E,T=0,L=0,I=0;if(n=u,u=u+160|0,T=0|o[(i|=0)+4>>2],L=0|o[T+12>>2],x=+s[L>>2],S=+s[L+4>>2],j=+s[L+8>>2],C=+s[L+16>>2],g=+s[L+20>>2],k=+s[L+24>>2],v=+s[L+32>>2],l=+s[L+36>>2],c=+s[L+40>>2],T=0|o[24+(0|o[T+4>>2])>>2],y=+s[T+(80*e|0)>>2],m=+s[T+(80*e|0)+16>>2],p=+s[T+(80*e|0)+32>>2],w=+s[T+(80*e|0)+4>>2],_=+s[T+(80*e|0)+20>>2],b=+s[T+(80*e|0)+36>>2],d=+s[T+(80*e|0)+8>>2],h=+s[T+(80*e|0)+24>>2],a=+s[T+(80*e|0)+40>>2],E=+s[T+(80*e|0)+48>>2],M=+s[T+(80*e|0)+52>>2],I=+s[T+(80*e|0)+56>>2],f=+s[L+48>>2]+(x*E+S*M+j*I),r=+s[L+52>>2]+(C*E+g*M+k*I),I=+s[L+56>>2]+(v*E+l*M+c*I),s[n+88>>2]=x*y+S*m+j*p,s[n+92>>2]=x*w+S*_+j*b,s[n+96>>2]=x*d+S*h+j*a,s[n+100>>2]=0,s[n+104>>2]=C*y+g*m+k*p,s[n+108>>2]=C*w+g*_+k*b,s[n+112>>2]=C*d+g*h+k*a,s[n+116>>2]=0,s[n+120>>2]=v*y+l*m+c*p,s[n+124>>2]=v*w+l*_+c*b,s[n+128>>2]=v*d+l*h+c*a,s[n+132>>2]=0,s[n+136>>2]=f,s[n+140>>2]=r,s[n+144>>2]=I,s[n+148>>2]=0,Vn[63&o[8+(0|o[t>>2])>>2]](t,n+88|0,n+72|0,n+56|0),L=0|o[i+8>>2],T=0|o[L+4>>2],Vn[63&o[8+(0|o[T>>2])>>2]](T,0|o[L+12>>2],n+40|0,n+24|0),T=+s[n+72>>2]>+s[n+24>>2]||+s[n+56>>2]<+s[n+40>>2]?0:1,(+s[n+80>>2]>+s[n+32>>2]||+s[n+64>>2]<+s[n+48>>2])&&(T=0),+s[n+76>>2]>+s[n+28>>2])u=n;else{if(!(+s[n+60>>2]<+s[n+44>>2]|1^T))return T=0|o[i+4>>2],L=0|o[T+8>>2],o[n>>2]=T,o[n+4>>2]=t,o[n+8>>2]=L,o[n+12>>2]=n+88,o[n+16>>2]=-1,o[n+20>>2]=e,0|o[(0|o[i+24>>2])+(e<<2)>>2]?t=T:(t=0|o[i+12>>2],t=0|hn[31&o[8+(0|o[t>>2])>>2]](t,n,0|o[i+8>>2],0|o[i+28>>2]),o[(0|o[i+24>>2])+(e<<2)>>2]=t,t=0|o[i+4>>2]),L=0|o[i+20>>2],T=0|o[L+8>>2],(0|o[T+8>>2])==(0|o[t+8>>2])?(o[L+8>>2]=n,L=0|o[i+20>>2],Pn[63&o[8+(0|o[L>>2])>>2]](L,-1,e)):(T=0|o[L+12>>2],o[L+12>>2]=n,L=0|o[i+20>>2],Pn[63&o[12+(0|o[L>>2])>>2]](L,-1,e)),e=0|o[(0|o[i+24>>2])+(e<<2)>>2],tn[31&o[8+(0|o[e>>2])>>2]](e,n,0|o[i+8>>2],0|o[i+16>>2],0|o[i+20>>2]),e=0|o[i+20>>2],(0|o[8+(0|o[e+8>>2])>>2])==(0|o[8+(0|o[i+4>>2])>>2])?(o[e+8>>2]=T,void(u=n)):(o[e+12>>2]=T,void(u=n));u=n}}function me(i){var t,e=0,r=0,f=0,a=0,s=0;if(t=u,o[(i|=0)>>2]=16376,r=0|o[i+8>>2],(0|(e=0|o[r+8>>2]))>0){f=0;do{0|(a=0|o[(0|o[r+16>>2])+(12*f|0)+8>>2])&&(nn[255&o[o[a>>2]>>2]](a),s=0|o[i+4>>2],on[127&o[60+(0|o[s>>2])>>2]](s,a)),f=f+1|0}while((0|f)!=(0|e));r=0|o[i+8>>2]}if(de(r),e=0|o[i+8>>2],nn[255&o[o[e>>2]>>2]](e),0|(e=0|o[i+8>>2])&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),!(0|(e=0|o[i+24>>2])))return n[i+28|0]=1,o[i+24>>2]=0,o[i+16>>2]=0,o[(s=i+20|0)>>2]=0,void(u=t);0|n[i+28|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+24>>2]=0,n[i+28|0]=1,o[i+24>>2]=0,o[i+16>>2]=0,o[(s=i+20|0)>>2]=0,u=t}function ye(i){i|=0;var t,e=0,n=0,r=0,f=0,a=0,s=0,c=0,h=0,l=0,d=0,v=0,b=0,_=0,w=0,p=0,m=0,y=0,k=0,g=0,C=0,j=0,S=0,x=0,M=0,T=0,L=0,A=0;t=u;do{if(i>>>0<245){if(y=(v=i>>>0<11?16:i+11&-8)>>>3,(b=0|o[4828])>>>y&3){n=0|o[19352+(2+((b>>>y&1^1)+y<<1)<<2)>>2],e=0|o[n+8>>2];do{if((19352+((b>>>y&1^1)+y<<1<<2)|0)!=(0|e)){if(e>>>0<(0|o[4832])>>>0&&F(),(0|o[e+12>>2])==(0|n)){o[e+12>>2]=19352+((b>>>y&1^1)+y<<1<<2),o[19352+(2+((b>>>y&1^1)+y<<1)<<2)>>2]=e;break}F()}else o[4828]=b&~(1<<(b>>>y&1^1)+y)}while(0);return o[n+4>>2]=(b>>>y&1^1)+y<<3|3,o[n+((b>>>y&1^1)+y<<3|4)>>2]=1|o[n+((b>>>y&1^1)+y<<3|4)>>2],u=t,0|(A=n+8|0)}if(v>>>0>(0|o[4830])>>>0){if(b>>>y|0){e=0|o[19352+(2+((f=((n=(b>>>y<<y&(2<<y|0-(2<<y))&0-(b>>>y<<y&(2<<y|0-(2<<y))))-1|0)>>>(n>>>12&16)>>>5&8|n>>>12&16|(e=n>>>(n>>>12&16)>>>(n>>>(n>>>12&16)>>>5&8))>>>2&4|e>>>(e>>>2&4)>>>1&2|(f=e>>>(e>>>2&4)>>>(e>>>(e>>>2&4)>>>1&2))>>>1&1)+(f>>>(f>>>1&1))|0)<<1)<<2)>>2],n=0|o[e+8>>2];do{if((19352+(f<<1<<2)|0)!=(0|n)){if(n>>>0<(0|o[4832])>>>0&&F(),(0|o[n+12>>2])==(0|e)){o[n+12>>2]=19352+(f<<1<<2),o[19352+(2+(f<<1)<<2)>>2]=n;break}F()}else o[4828]=b&~(1<<f)}while(0);return r=(f<<3)-v|0,o[e+4>>2]=3|v,n=e+v|0,o[e+(4|v)>>2]=1|r,o[e+(f<<3)>>2]=r,0|(a=0|o[4830])&&(f=0|o[4833],(s=0|o[4828])&1<<(a>>>3)?(s=0|o[19352+(2+(a>>>3<<1)<<2)>>2])>>>0<(0|o[4832])>>>0?F():(T=19352+(2+(a>>>3<<1)<<2)|0,M=s):(o[4828]=s|1<<(a>>>3),T=19352+(2+(a>>>3<<1)<<2)|0,M=19352+(a>>>3<<1<<2)|0),o[T>>2]=f,o[M+12>>2]=f,o[f+8>>2]=M,o[f+12>>2]=19352+(a>>>3<<1<<2)),o[4830]=r,o[4833]=n,u=t,0|(A=e+8|0)}if(0|(b=0|o[4829])){for(e=0|o[19616+(((n=((b&0-b)-1|0)>>>(((b&0-b)-1|0)>>>12&16))>>>5&8|((b&0-b)-1|0)>>>12&16|n>>>(n>>>5&8)>>>2&4|(e=n>>>(n>>>5&8)>>>(n>>>(n>>>5&8)>>>2&4))>>>1&2|e>>>(e>>>1&2)>>>1&1)+(e>>>(e>>>1&2)>>>(e>>>(e>>>1&2)>>>1&1))<<2)>>2],n=(-8&o[e+4>>2])-v|0,r=e;0|(f=0|o[r+16>>2])||0|(f=0|o[r+20>>2]);)n=(A=(r=(-8&o[f+4>>2])-v|0)>>>0<n>>>0)?r:n,r=f,e=A?f:e;e>>>0<(a=0|o[4832])>>>0&&F(),e>>>0<(r=e+v|0)>>>0||F(),f=0|o[e+24>>2],s=0|o[e+12>>2];do{if((0|s)==(0|e)){if(!(0|(s=0|o[(c=e+20|0)>>2])||0|(s=0|o[(c=e+16|0)>>2]))){x=0;break}for(;;)if(0|(l=0|o[(h=s+20|0)>>2]))s=l,c=h;else{if(!(0|(h=0|o[(l=s+16|0)>>2])))break;s=h,c=l}if(!(c>>>0<a>>>0)){o[c>>2]=0,x=s;break}F()}else{if((c=0|o[e+8>>2])>>>0<a>>>0&&F(),(0|o[c+12>>2])!=(0|e)&&F(),(0|o[s+8>>2])==(0|e)){o[c+12>>2]=s,o[s+8>>2]=c,x=s;break}F()}}while(0);do{if(0|f){if(a=0|o[e+28>>2],(0|e)==(0|o[19616+(a<<2)>>2])){if(o[19616+(a<<2)>>2]=x,!(0|x)){o[4829]=o[4829]&~(1<<a);break}}else if(f>>>0<(0|o[4832])>>>0&&F(),(0|o[f+16>>2])==(0|e)?o[f+16>>2]=x:o[f+20>>2]=x,!(0|x))break;x>>>0<(0|o[4832])>>>0&&F(),o[x+24>>2]=f,f=0|o[e+16>>2];do{if(0|f){if(!(f>>>0<(0|o[4832])>>>0)){o[x+16>>2]=f,o[f+24>>2]=x;break}F()}}while(0);if(0|(f=0|o[e+20>>2])){if(!(f>>>0<(0|o[4832])>>>0)){o[x+20>>2]=f,o[f+24>>2]=x;break}F()}}}while(0);return n>>>0<16?(A=n+v|0,o[e+4>>2]=3|A,o[(A=e+(A+4)|0)>>2]=1|o[A>>2]):(o[e+4>>2]=3|v,o[e+(4|v)>>2]=1|n,o[e+(n+v)>>2]=n,0|(f=0|o[4830])&&(a=0|o[4833],(s=0|o[4828])&1<<(f>>>3)?(s=0|o[19352+(2+(f>>>3<<1)<<2)>>2])>>>0<(0|o[4832])>>>0?F():(S=19352+(2+(f>>>3<<1)<<2)|0,j=s):(o[4828]=s|1<<(f>>>3),S=19352+(2+(f>>>3<<1)<<2)|0,j=19352+(f>>>3<<1<<2)|0),o[S>>2]=a,o[j+12>>2]=a,o[a+8>>2]=j,o[a+12>>2]=19352+(f>>>3<<1<<2)),o[4830]=n,o[4833]=r),u=t,0|(A=e+8|0)}}}else if(i>>>0>4294967231)v=-1;else if(v=i+11&-8,0|(x=0|o[4829])){M=(i+11|0)>>>8|0?v>>>0>16777215?31:v>>>((M=14-(((M=(i+11|0)>>>8<<((((i+11|0)>>>8)+1048320|0)>>>16&8))+520192|0)>>>16&4|(((i+11|0)>>>8)+1048320|0)>>>16&8|(245760+(M<<((M+520192|0)>>>16&4))|0)>>>16&2)+(M<<((M+520192|0)>>>16&4)<<((245760+(M<<((M+520192|0)>>>16&4))|0)>>>16&2)>>>15)|0)+7|0)&1|M<<1:0,T=0|o[19616+(M<<2)>>2];i:do{if(0|T)for(S=0-v|0,i=0,L=v<<(j=31==(0|M)?0:25-(M>>>1)|0),j=0;;){if(((A=-8&o[T+4>>2])-v|0)>>>0<S>>>0){if((0|A)==(0|v)){S=A-v|0,i=T,j=T;break i}S=A-v|0,j=T}if(i=!(0|(A=0|o[T+20>>2]))|(0|A)==(0|(T=0|o[T+(L>>>31<<2)+16>>2]))?i:A,!(0|T))break;L<<=1}else S=0-v|0,i=0,j=0}while(0);if(!(0|i)&!(0|j)){if(!(x&((M=2<<M)|0-M)))break;i=0|o[19616+(((L=(x&(M|0-M)&0-(x&(M|0-M)))-1|0)>>>(L>>>12&16)>>>5&8|L>>>12&16|(A=L>>>(L>>>12&16)>>>(L>>>(L>>>12&16)>>>5&8))>>>2&4|A>>>(A>>>2&4)>>>1&2|(i=A>>>(A>>>2&4)>>>(A>>>(A>>>2&4)>>>1&2))>>>1&1)+(i>>>(i>>>1&1))<<2)>>2]}if(0|i)for(;;)if(S=(x=(A=(-8&o[i+4>>2])-v|0)>>>0<S>>>0)?A:S,j=x?i:j,0|(x=0|o[i+16>>2]))i=x;else if(!(0|(i=0|o[i+20>>2])))break;if(0|j&&S>>>0<((0|o[4830])-v|0)>>>0){j>>>0<(r=0|o[4832])>>>0&&F(),j>>>0<(e=j+v|0)>>>0||F(),n=0|o[j+24>>2],f=0|o[j+12>>2];do{if((0|f)==(0|j)){if(!(0|(f=0|o[(a=j+20|0)>>2])||0|(f=0|o[(a=j+16|0)>>2]))){C=0;break}for(;;)if(0|(s=0|o[(c=f+20|0)>>2]))f=s,a=c;else{if(!(0|(s=0|o[(c=f+16|0)>>2])))break;f=s,a=c}if(!(a>>>0<r>>>0)){o[a>>2]=0,C=f;break}F()}else{if((a=0|o[j+8>>2])>>>0<r>>>0&&F(),(0|o[a+12>>2])!=(0|j)&&F(),(0|o[f+8>>2])==(0|j)){o[a+12>>2]=f,o[f+8>>2]=a,C=f;break}F()}}while(0);do{if(0|n){if(r=0|o[j+28>>2],(0|j)==(0|o[19616+(r<<2)>>2])){if(o[19616+(r<<2)>>2]=C,!(0|C)){o[4829]=o[4829]&~(1<<r);break}}else if(n>>>0<(0|o[4832])>>>0&&F(),(0|o[n+16>>2])==(0|j)?o[n+16>>2]=C:o[n+20>>2]=C,!(0|C))break;C>>>0<(0|o[4832])>>>0&&F(),o[C+24>>2]=n,n=0|o[j+16>>2];do{if(0|n){if(!(n>>>0<(0|o[4832])>>>0)){o[C+16>>2]=n,o[n+24>>2]=C;break}F()}}while(0);if(0|(n=0|o[j+20>>2])){if(!(n>>>0<(0|o[4832])>>>0)){o[C+20>>2]=n,o[n+24>>2]=C;break}F()}}}while(0);i:do{if(S>>>0<16)A=S+v|0,o[j+4>>2]=3|A,o[(A=j+(A+4)|0)>>2]=1|o[A>>2];else{if(o[j+4>>2]=3|v,o[j+(4|v)>>2]=1|S,o[j+(S+v)>>2]=S,n=S>>>3,S>>>0<256){r=0|o[4828];do{if(r&1<<n){if(!((r=0|o[19352+(2+(n<<1)<<2)>>2])>>>0<(0|o[4832])>>>0)){k=19352+(2+(n<<1)<<2)|0,y=r;break}F()}else o[4828]=r|1<<n,k=19352+(2+(n<<1)<<2)|0,y=19352+(n<<1<<2)|0}while(0);o[k>>2]=e,o[y+12>>2]=e,o[j+(v+8)>>2]=y,o[j+(v+12)>>2]=19352+(n<<1<<2);break}if(r=19616+((n=0|(n=S>>>8)?S>>>0>16777215?31:S>>>((n=14-((520192+(n<<((n+1048320|0)>>>16&8))|0)>>>16&4|(n+1048320|0)>>>16&8|((A=n<<((n+1048320|0)>>>16&8)<<((520192+(n<<((n+1048320|0)>>>16&8))|0)>>>16&4))+245760|0)>>>16&2)+(A<<((A+245760|0)>>>16&2)>>>15)|0)+7|0)&1|n<<1:0)<<2)|0,o[j+(v+28)>>2]=n,o[j+(v+20)>>2]=0,o[j+(v+16)>>2]=0,!((a=0|o[4829])&(f=1<<n)|0)){o[4829]=a|f,o[r>>2]=e,o[j+(v+24)>>2]=r,o[j+(v+12)>>2]=e,o[j+(v+8)>>2]=e;break}r=0|o[r>>2],n=31==(0|n)?0:25-(n>>>1)|0;t:do{if((-8&o[r+4>>2])!=(0|S)){for(n=S<<n;0|(a=0|o[(f=r+(n>>>31<<2)+16|0)>>2]);){if((-8&o[a+4>>2])==(0|S)){b=a;break t}n<<=1,r=a}if(!(f>>>0<(0|o[4832])>>>0)){o[f>>2]=e,o[j+(v+24)>>2]=r,o[j+(v+12)>>2]=e,o[j+(v+8)>>2]=e;break i}F()}else b=r}while(0);if(r=0|o[(n=b+8|0)>>2],b>>>0<(f=0|o[4832])>>>0&&F(),!(r>>>0<f>>>0)){o[r+12>>2]=e,o[n>>2]=e,o[j+(v+8)>>2]=r,o[j+(v+12)>>2]=b,o[j+(v+24)>>2]=0;break}F()}}while(0);return u=t,0|(A=j+8|0)}}}while(0);if(!(v>>>0>(b=0|o[4830])>>>0))return e=b-v|0,n=0|o[4833],e>>>0>15?(o[4833]=n+v,o[4830]=e,o[n+(v+4)>>2]=1|e,o[n+b>>2]=e,o[n+4>>2]=3|v):(o[4830]=0,o[4833]=0,o[n+4>>2]=3|b,o[n+(b+4)>>2]=1|o[n+(b+4)>>2]),u=t,0|(A=n+8|0);if(v>>>0<(b=0|o[4831])>>>0)return L=b-v|0,o[4831]=L,A=0|o[4834],o[4834]=A+v,o[A+(v+4)>>2]=1|L,o[A+4>>2]=3|v,u=t,0|(A=A+8|0);do{if(!(0|o[4946])){if(!((b=0|I(30))+-1&b|0)){o[4948]=b,o[4947]=b,o[4949]=-1,o[4950]=-1,o[4951]=0,o[4939]=0,o[4946]=-16&U(0)^1431655768;break}F()}}while(0);if(k=v+48|0,!((y=(b=0|o[4948])+(C=v+47|0)&0-b)>>>0>v>>>0))return u=t,0|(A=0);if(0|(j=0|o[4938])&&((A=0|o[4936])+y|0)>>>0<=A>>>0|(A+y|0)>>>0>j>>>0)return u=t,0|(A=0);i:do{if(4&o[4939])S=0,d=199;else{j=0|o[4834];t:do{if(0|j){for(S=19760;(x=0|o[S>>2])>>>0>j>>>0||!((x+(0|o[(g=S+4|0)>>2])|0)>>>0>j>>>0);)if(!(0|(S=0|o[S+8>>2]))){d=182;break t}0|S?(x=b+C-(0|o[4831])&0-b)>>>0<2147483647?(S=(0|(b=0|E(0|x)))==((0|o[S>>2])+(0|o[g>>2])|0),g=b,j=x,b=S?b:-1,S=S?x:0,d=191):S=0:d=182}else d=182}while(0);do{if(182==(0|d))if(-1!=(0|(S=0|E(0))))if(x=(b=0|o[4947])+-1&S|0?y-S+(b+-1+S&0-b)|0:y,b=(g=0|o[4936])+x|0,x>>>0>v>>>0&x>>>0<2147483647){if(0|(A=0|o[4938])&&b>>>0<=g>>>0|b>>>0>A>>>0){S=0;break}g=d=0|E(0|x),j=x,b=(0|d)==(0|S)?S:-1,S=(0|d)==(0|S)?x:0,d=191}else S=0;else S=0}while(0);t:do{if(191==(0|d)){if(d=0-j|0,-1!=(0|b)){_=S,d=202;break i}do{if(-1!=(0|g)&j>>>0<2147483647&j>>>0<k>>>0&&(m=C-j+(m=0|o[4948])&0-m)>>>0<2147483647){if(-1==(0|E(0|m))){E(0|d);break t}j=m+j|0;break}}while(0);if(-1!=(0|g)){b=g,_=j,d=202;break i}}}while(0);o[4939]=4|o[4939],d=199}}while(0);if(199==(0|d)&&y>>>0<2147483647&&(p=0|E(0|y),-1!=(0|(w=0|E(0)))&-1!=(0|p)&p>>>0<w>>>0)&&(_=(w-p|0)>>>0>(v+40|0)>>>0)&&(b=p,_=_?w-p|0:S,d=202),202==(0|d)){w=(0|o[4936])+_|0,o[4936]=w,w>>>0>(0|o[4937])>>>0&&(o[4937]=w),w=0|o[4834];i:do{if(0|w){for(g=19760;;){if((0|b)==((m=0|o[g>>2])+(k=0|o[(y=g+4|0)>>2])|0)){d=214;break}if(!(0|(p=0|o[g+8>>2])))break;g=p}if(!(214!=(0|d)||8&o[g+12>>2])&&w>>>0>=m>>>0&w>>>0<b>>>0){o[y>>2]=k+_,A=(n=(0|o[4831])+_|0)-(e=w+8&7?0-(w+8)&7:0)|0,o[4834]=w+e,o[4831]=A,o[w+(e+4)>>2]=1|A,o[w+(n+4)>>2]=40,o[4835]=o[4950];break}for(b>>>0<(0|o[4832])>>>0&&(o[4832]=b),m=b+_|0,p=19760;;){if((0|o[p>>2])==(0|m)){d=224;break}if(!(0|(y=0|o[p+8>>2])))break;p=y}if(224==(0|d)&&!(8&o[p+12>>2])){o[p>>2]=b,o[(a=p+4|0)>>2]=(0|o[a>>2])+_,w=7&(c=b+(_+8)|0)?0-c&7:0,h=b+(c=(a=7&(a=b+8|0)?0-a&7:0)+v|0)|0,l=(p=b+(w+_)|0)-(b+a)-v|0,o[b+(a+4)>>2]=3|v;t:do{if((0|p)!=(0|o[4834])){if((0|p)==(0|o[4833])){A=(0|o[4830])+l|0,o[4830]=A,o[4833]=h,o[b+(c+4)>>2]=1|A,o[b+(A+c)>>2]=A;break}if(1==(3&(d=0|o[b+((v=_+4|0)+w)>>2]))){e:do{if(d>>>0<256){f=0|o[b+((8|w)+_)>>2],v=0|o[b+(_+12+w)>>2];do{if((0|f)!=(19352+(d>>>3<<1<<2)|0)){if(f>>>0<(0|o[4832])>>>0&&F(),(0|o[f+12>>2])==(0|p))break;F()}}while(0);if((0|v)==(0|f)){o[4828]=o[4828]&~(1<<(d>>>3));break}do{if((0|v)==(19352+(d>>>3<<1<<2)|0))s=v+8|0;else{if(v>>>0<(0|o[4832])>>>0&&F(),(0|o[v+8>>2])==(0|p)){s=v+8|0;break}F()}}while(0);o[f+12>>2]=v,o[s>>2]=f}else{s=0|o[b+((24|w)+_)>>2],y=0|o[b+(_+12+w)>>2];do{if((0|y)==(0|p)){if(!(0|(m=0|o[(y=b+(v+(k=16|w))|0)>>2])||0|(m=0|o[(y=b+(k+_)|0)>>2]))){f=0;break}for(;;)if(0|(g=0|o[(k=m+20|0)>>2]))m=g,y=k;else{if(!(0|(g=0|o[(k=m+16|0)>>2])))break;m=g,y=k}if(!(y>>>0<(0|o[4832])>>>0)){o[y>>2]=0,f=m;break}F()}else{if((m=0|o[b+((8|w)+_)>>2])>>>0<(0|o[4832])>>>0&&F(),(0|o[m+12>>2])!=(0|p)&&F(),(0|o[y+8>>2])==(0|p)){o[m+12>>2]=y,o[y+8>>2]=m,f=y;break}F()}}while(0);if(!(0|s))break;m=0|o[b+(_+28+w)>>2];do{if((0|p)==(0|o[19616+(m<<2)>>2])){if(o[19616+(m<<2)>>2]=f,0|f)break;o[4829]=o[4829]&~(1<<m);break e}if(s>>>0<(0|o[4832])>>>0&&F(),(0|o[s+16>>2])==(0|p)?o[s+16>>2]=f:o[s+20>>2]=f,!(0|f))break e}while(0);f>>>0<(0|o[4832])>>>0&&F(),o[f+24>>2]=s,p=0|o[b+((s=16|w)+_)>>2];do{if(0|p){if(!(p>>>0<(0|o[4832])>>>0)){o[f+16>>2]=p,o[p+24>>2]=f;break}F()}}while(0);if(!(0|(s=0|o[b+(v+s)>>2])))break;if(!(s>>>0<(0|o[4832])>>>0)){o[f+20>>2]=s,o[s+24>>2]=f;break}F()}}while(0);p=b+((-8&d|w)+_)|0,l=(-8&d)+l|0}if(o[(f=p+4|0)>>2]=-2&o[f>>2],o[b+(c+4)>>2]=1|l,o[b+(l+c)>>2]=l,f=l>>>3,l>>>0<256){e=0|o[4828];do{if(e&1<<f){if(!((e=0|o[19352+(2+(f<<1)<<2)>>2])>>>0<(0|o[4832])>>>0)){r=19352+(2+(f<<1)<<2)|0,n=e;break}F()}else o[4828]=e|1<<f,r=19352+(2+(f<<1)<<2)|0,n=19352+(f<<1<<2)|0}while(0);o[r>>2]=h,o[n+12>>2]=h,o[b+(c+8)>>2]=n,o[b+(c+12)>>2]=19352+(f<<1<<2);break}n=l>>>8;do{if(0|n){if(l>>>0>16777215){n=31;break}n=l>>>((n=14-((520192+(n<<((n+1048320|0)>>>16&8))|0)>>>16&4|(n+1048320|0)>>>16&8|((A=n<<((n+1048320|0)>>>16&8)<<((520192+(n<<((n+1048320|0)>>>16&8))|0)>>>16&4))+245760|0)>>>16&2)+(A<<((A+245760|0)>>>16&2)>>>15)|0)+7|0)&1|n<<1}else n=0}while(0);if(s=19616+(n<<2)|0,o[b+(c+28)>>2]=n,o[b+(c+20)>>2]=0,o[b+(c+16)>>2]=0,!((r=0|o[4829])&(f=1<<n)|0)){o[4829]=r|f,o[s>>2]=h,o[b+(c+24)>>2]=s,o[b+(c+12)>>2]=h,o[b+(c+8)>>2]=h;break}r=0|o[s>>2],n=31==(0|n)?0:25-(n>>>1)|0;e:do{if((-8&o[r+4>>2])!=(0|l)){for(n=l<<n;0|(s=0|o[(f=r+(n>>>31<<2)+16|0)>>2]);){if((-8&o[s+4>>2])==(0|l)){e=s;break e}n<<=1,r=s}if(!(f>>>0<(0|o[4832])>>>0)){o[f>>2]=h,o[b+(c+24)>>2]=r,o[b+(c+12)>>2]=h,o[b+(c+8)>>2]=h;break t}F()}else e=r}while(0);if(n=0|o[(r=e+8|0)>>2],e>>>0<(f=0|o[4832])>>>0&&F(),!(n>>>0<f>>>0)){o[n+12>>2]=h,o[r>>2]=h,o[b+(c+8)>>2]=n,o[b+(c+12)>>2]=e,o[b+(c+24)>>2]=0;break}F()}else A=(0|o[4831])+l|0,o[4831]=A,o[4834]=h,o[b+(c+4)>>2]=1|A}while(0);return u=t,0|(A=b+(8|a)|0)}for(e=19760;(n=0|o[e>>2])>>>0>w>>>0||!((n+(l=0|o[e+4>>2])|0)>>>0>w>>>0);)e=0|o[e+8>>2];if(e=(e=n+(l+-47+(e=n+(l+-39)&7?0-(n+(l+-39))&7:0))|0)>>>0<(w+16|0)>>>0?w:e,A=_+-40-(r=7&(r=b+8|0)?0-r&7:0)|0,o[4834]=b+r,o[4831]=A,o[b+(r+4)>>2]=1|A,o[b+(_+-36)>>2]=40,o[4835]=o[4950],o[e+4>>2]=27,o[e+8>>2]=o[4940],o[e+12>>2]=o[4941],o[e+16>>2]=o[4942],o[e+20>>2]=o[4943],o[4940]=b,o[4941]=_,o[4943]=0,o[4942]=e+8,o[e+28>>2]=7,(e+32|0)>>>0<(n+l|0)>>>0){r=e+28|0;do{A=r,o[(r=r+4|0)>>2]=7}while((A+8|0)>>>0<(n+l|0)>>>0)}if((0|e)!=(0|w)){if(o[w+(e-w+4)>>2]=-2&o[w+(e-w+4)>>2],o[w+4>>2]=e-w|1,o[w+(e-w)>>2]=e-w,(e-w|0)>>>0<256){n=0|o[4828];do{if(n&1<<((e-w|0)>>>3)){if(!((n=0|o[19352+(2+((e-w|0)>>>3<<1)<<2)>>2])>>>0<(0|o[4832])>>>0)){h=19352+(2+((e-w|0)>>>3<<1)<<2)|0,c=n;break}F()}else o[4828]=n|1<<((e-w|0)>>>3),h=19352+(2+((e-w|0)>>>3<<1)<<2)|0,c=19352+((e-w|0)>>>3<<1<<2)|0}while(0);o[h>>2]=w,o[c+12>>2]=w,o[w+8>>2]=c,o[w+12>>2]=19352+((e-w|0)>>>3<<1<<2);break}if(s=19616+((n=(e-w|0)>>>8|0?(e-w|0)>>>0>16777215?31:(e-w|0)>>>((n=14-(((n=(e-w|0)>>>8<<((((e-w|0)>>>8)+1048320|0)>>>16&8))+520192|0)>>>16&4|(((e-w|0)>>>8)+1048320|0)>>>16&8|(245760+(n<<((n+520192|0)>>>16&4))|0)>>>16&2)+(n<<((n+520192|0)>>>16&4)<<((245760+(n<<((n+520192|0)>>>16&4))|0)>>>16&2)>>>15)|0)+7|0)&1|n<<1:0)<<2)|0,o[w+28>>2]=n,o[w+20>>2]=0,o[w+16>>2]=0,!((r=0|o[4829])&(f=1<<n)|0)){o[4829]=r|f,o[s>>2]=w,o[w+24>>2]=s,o[w+12>>2]=w,o[w+8>>2]=w;break}f=0|o[s>>2],n=31==(0|n)?0:25-(n>>>1)|0;t:do{if((-8&o[f+4>>2])!=(e-w|0)){for(n=e-w<<n;0|(s=0|o[(r=f+(n>>>31<<2)+16|0)>>2]);){if((-8&o[s+4>>2])==(e-w|0)){a=s;break t}n<<=1,f=s}if(!(r>>>0<(0|o[4832])>>>0)){o[r>>2]=w,o[w+24>>2]=f,o[w+12>>2]=w,o[w+8>>2]=w;break i}F()}else a=f}while(0);if(e=0|o[(n=a+8|0)>>2],a>>>0<(r=0|o[4832])>>>0&&F(),!(e>>>0<r>>>0)){o[e+12>>2]=w,o[n>>2]=w,o[w+8>>2]=e,o[w+12>>2]=a,o[w+24>>2]=0;break}F()}}else{!(0|(A=0|o[4832]))|b>>>0<A>>>0&&(o[4832]=b),o[4940]=b,o[4941]=_,o[4943]=0,o[4837]=o[4946],o[4836]=-1,e=0;do{o[19352+((A=e<<1)+3<<2)>>2]=19352+(A<<2),o[19352+(A+2<<2)>>2]=19352+(A<<2),e=e+1|0}while(32!=(0|e));A=_+-40-(e=7&(e=b+8|0)?0-e&7:0)|0,o[4834]=b+e,o[4831]=A,o[b+(e+4)>>2]=1|A,o[b+(_+-36)>>2]=40,o[4835]=o[4950]}}while(0);if((e=0|o[4831])>>>0>v>>>0)return L=e-v|0,o[4831]=L,A=0|o[4834],o[4834]=A+v,o[A+(v+4)>>2]=1|L,o[A+4>>2]=3|v,u=t,0|(A=A+8|0)}return o[R()>>2]=12,u=t,0|(A=0)}function ke(i){var t,e=0,n=0,r=0,f=0,a=0,s=0,c=0,h=0,l=0,d=0,v=0,b=0,_=0,w=0,p=0,m=0,y=0,k=0,g=0;if(t=u,0|(i|=0)){(i+-8|0)>>>0<(w=0|o[4832])>>>0&&F(),1==(3&(a=0|o[i+-4>>2]))&&F(),c=i+((-8&a)-8)|0;do{if(1&a)e=i+-8|0,b=-8&a;else{if(v=0|o[i+-8>>2],!(3&a))return void(u=t);if(d=v+(-8&a)|0,(l=i+(-8-v)|0)>>>0<w>>>0&&F(),(0|l)==(0|o[4833])){if(3&~o[i+((-8&a)-4)>>2]){e=l,b=d;break}return o[4830]=d,o[i+((-8&a)-4)>>2]=-2&o[i+((-8&a)-4)>>2],o[i+(-8-v+4)>>2]=1|d,o[c>>2]=d,void(u=t)}if(v>>>0<256){if(b=0|o[i+(-8-v+8)>>2],e=0|o[i+(-8-v+12)>>2],(0|b)!=(19352+(v>>>3<<1<<2)|0)&&(b>>>0<w>>>0&&F(),(0|o[b+12>>2])!=(0|l)&&F()),(0|e)==(0|b)){o[4828]=o[4828]&~(1<<(v>>>3)),e=l,b=d;break}(0|e)!=(19352+(v>>>3<<1<<2)|0)?(e>>>0<w>>>0&&F(),(0|o[e+8>>2])!=(0|l)?F():p=e+8|0):p=e+8|0,o[b+12>>2]=e,o[p>>2]=b,e=l,b=d;break}p=0|o[i+(-8-v+24)>>2],y=0|o[i+(-8-v+12)>>2];do{if((0|y)==(0|l)){if(0|(y=0|o[i+(-8-v+20)>>2]))m=i+(-8-v+20)|0;else{if(!(0|(y=0|o[i+(-8-v+16)>>2]))){_=0;break}m=i+(-8-v+16)|0}for(;;)if(0|(k=0|o[(g=y+20|0)>>2]))y=k,m=g;else{if(!(0|(k=0|o[(g=y+16|0)>>2])))break;y=k,m=g}if(!(m>>>0<w>>>0)){o[m>>2]=0,_=y;break}F()}else{if((m=0|o[i+(-8-v+8)>>2])>>>0<w>>>0&&F(),(0|o[m+12>>2])!=(0|l)&&F(),(0|o[y+8>>2])==(0|l)){o[m+12>>2]=y,o[y+8>>2]=m,_=y;break}F()}}while(0);if(0|p){if(w=0|o[i+(-8-v+28)>>2],(0|l)==(0|o[19616+(w<<2)>>2])){if(o[19616+(w<<2)>>2]=_,!(0|_)){o[4829]=o[4829]&~(1<<w),e=l,b=d;break}}else if(p>>>0<(0|o[4832])>>>0&&F(),(0|o[p+16>>2])==(0|l)?o[p+16>>2]=_:o[p+20>>2]=_,!(0|_)){e=l,b=d;break}_>>>0<(0|o[4832])>>>0&&F(),o[_+24>>2]=p,w=0|o[i+(-8-v+16)>>2];do{if(0|w){if(!(w>>>0<(0|o[4832])>>>0)){o[_+16>>2]=w,o[w+24>>2]=_;break}F()}}while(0);if(0|(v=0|o[i+(-8-v+20)>>2])){if(!(v>>>0<(0|o[4832])>>>0)){o[_+20>>2]=v,o[v+24>>2]=_,e=l,b=d;break}F()}else e=l,b=d}else e=l,b=d}}while(0);if(e>>>0<c>>>0||F(),1&(l=0|o[i+((-8&a)-4)>>2])||F(),2&l)o[i+((-8&a)-4)>>2]=-2&l,o[e+4>>2]=1|b,o[e+b>>2]=b;else{if((0|c)==(0|o[4834]))return g=(0|o[4831])+b|0,o[4831]=g,o[4834]=e,o[e+4>>2]=1|g,(0|e)!=(0|o[4833])||(o[4833]=0,o[4830]=0),void(u=t);if((0|c)==(0|o[4833]))return g=(0|o[4830])+b|0,o[4830]=g,o[4833]=e,o[e+4>>2]=1|g,o[e+g>>2]=g,void(u=t);b=(-8&l)+b|0;do{if(l>>>0<256){if(s=0|o[i+(-8&a)>>2],a=0|o[i+(-8&a|4)>>2],(0|s)!=(19352+(l>>>3<<1<<2)|0)&&(s>>>0<(0|o[4832])>>>0&&F(),(0|o[s+12>>2])!=(0|c)&&F()),(0|a)==(0|s)){o[4828]=o[4828]&~(1<<(l>>>3));break}(0|a)!=(19352+(l>>>3<<1<<2)|0)?(a>>>0<(0|o[4832])>>>0&&F(),(0|o[a+8>>2])!=(0|c)?F():h=a+8|0):h=a+8|0,o[s+12>>2]=a,o[h>>2]=s}else{h=0|o[i+(16+(-8&a))>>2],d=0|o[i+(-8&a|4)>>2];do{if((0|d)==(0|c)){if(0|(d=0|o[i+(12+(-8&a))>>2]))l=i+(12+(-8&a))|0;else{if(!(0|(d=0|o[i+(8+(-8&a))>>2]))){s=0;break}l=i+(8+(-8&a))|0}for(;;)if(0|(_=0|o[(v=d+20|0)>>2]))d=_,l=v;else{if(!(0|(_=0|o[(v=d+16|0)>>2])))break;d=_,l=v}if(!(l>>>0<(0|o[4832])>>>0)){o[l>>2]=0,s=d;break}F()}else{if((l=0|o[i+(-8&a)>>2])>>>0<(0|o[4832])>>>0&&F(),(0|o[l+12>>2])!=(0|c)&&F(),(0|o[d+8>>2])==(0|c)){o[l+12>>2]=d,o[d+8>>2]=l,s=d;break}F()}}while(0);if(0|h){if(l=0|o[i+(20+(-8&a))>>2],(0|c)==(0|o[19616+(l<<2)>>2])){if(o[19616+(l<<2)>>2]=s,!(0|s)){o[4829]=o[4829]&~(1<<l);break}}else if(h>>>0<(0|o[4832])>>>0&&F(),(0|o[h+16>>2])==(0|c)?o[h+16>>2]=s:o[h+20>>2]=s,!(0|s))break;s>>>0<(0|o[4832])>>>0&&F(),o[s+24>>2]=h,c=0|o[i+(8+(-8&a))>>2];do{if(0|c){if(!(c>>>0<(0|o[4832])>>>0)){o[s+16>>2]=c,o[c+24>>2]=s;break}F()}}while(0);if(0|(a=0|o[i+(12+(-8&a))>>2])){if(!(a>>>0<(0|o[4832])>>>0)){o[s+20>>2]=a,o[a+24>>2]=s;break}F()}}}}while(0);if(o[e+4>>2]=1|b,o[e+b>>2]=b,(0|e)==(0|o[4833]))return o[4830]=b,void(u=t)}if(a=b>>>3,b>>>0<256)return(n=0|o[4828])&1<<a?(n=0|o[19352+(2+(a<<1)<<2)>>2])>>>0<(0|o[4832])>>>0?F():(r=19352+(2+(a<<1)<<2)|0,f=n):(o[4828]=n|1<<a,r=19352+(2+(a<<1)<<2)|0,f=19352+(a<<1<<2)|0),o[r>>2]=e,o[f+12>>2]=e,o[e+8>>2]=f,o[e+12>>2]=19352+(a<<1<<2),void(u=t);f=19616+((r=0|(r=b>>>8)?b>>>0>16777215?31:b>>>((r=14-((520192+(r<<((r+1048320|0)>>>16&8))|0)>>>16&4|(r+1048320|0)>>>16&8|((g=r<<((r+1048320|0)>>>16&8)<<((520192+(r<<((r+1048320|0)>>>16&8))|0)>>>16&4))+245760|0)>>>16&2)+(g<<((g+245760|0)>>>16&2)>>>15)|0)+7|0)&1|r<<1:0)<<2)|0,o[e+28>>2]=r,o[e+20>>2]=0,o[e+16>>2]=0,i=0|o[4829],a=1<<r;i:do{if(i&a|0){f=0|o[f>>2],r=31==(0|r)?0:25-(r>>>1)|0;t:do{if((-8&o[f+4>>2])!=(0|b)){for(r=b<<r,a=f;0|(f=0|o[(i=a+(r>>>31<<2)+16|0)>>2]);){if((-8&o[f+4>>2])==(0|b)){n=f;break t}r<<=1,a=f}if(!(i>>>0<(0|o[4832])>>>0)){o[i>>2]=e,o[e+24>>2]=a,o[e+12>>2]=e,o[e+8>>2]=e;break i}F()}else n=f}while(0);if(a=0|o[(r=n+8|0)>>2],n>>>0<(f=0|o[4832])>>>0&&F(),!(a>>>0<f>>>0)){o[a+12>>2]=e,o[r>>2]=e,o[e+8>>2]=a,o[e+12>>2]=n,o[e+24>>2]=0;break}F()}else o[4829]=i|a,o[f>>2]=e,o[e+24>>2]=f,o[e+12>>2]=e,o[e+8>>2]=e}while(0);if(g=(0|o[4836])-1|0,o[4836]=g,0|g)u=t;else{for(e=19768;0|(e=0|o[e>>2]);)e=e+8|0;o[4836]=-1,u=t}}else u=t}function ge(i,t,e,n){return 0|(v=t=(t|=0)-(n|=0)-((e|=0)>>>0>(i|=0)>>>0|0)>>>0,i-e>>>0)}function Ce(i,t,e){t|=0;var r,f=0,a=0;if(r=(i|=0)+(e|=0)|0,(0|e)>=20){if(f=(t&=255)|t<<8|t<<16|t<<24,a=3&i)for(a=i+4-a|0;(0|i)<(0|a);)n[i|0]=t,i=i+1|0;for(;(0|i)<(-4&r);)o[i>>2]=f,i=i+4|0}for(;(0|i)<(0|r);)n[i|0]=t,i=i+1|0;return i-e|0}function je(i,t,e,n){return 0|(v=(t|=0)+(n|=0)+((i|=0)+(e|=0)>>>0>>>0<i>>>0|0)>>>0,i+e>>>0)}function Se(i,t,e){i|=0,t|=0;var r;if((0|(e|=0))>=4096)return 0|T(0|i,0|t,0|e);if(r=0|i,(3&i)==(3&t)){for(;3&i;){if(!(0|e))return 0|r;n[i|0]=0|n[t|0],i=i+1|0,t=t+1|0,e=e-1|0}for(;(0|e)>=4;)o[i>>2]=o[t>>2],i=i+4|0,t=t+4|0,e=e-4|0}for(;(0|e)>0;)n[i|0]=0|n[t|0],i=i+1|0,t=t+1|0,e=e-1|0;return 0|r}function xe(i,t,e){var r=0;if((0|(t|=0))<(0|(i|=0))&(0|i)<(t+(e|=0)|0)){for(r=i,t=t+e|0,i=i+e|0;(0|e)>0;)t=t-1|0,e=e-1|0,n[(i=i-1|0)|0]=0|n[t|0];i=r}else Se(i,t,e);return 0|i}function Me(i){return(255&(i|=0))<<24|(i>>8&255)<<16|(i>>16&255)<<8|i>>>24}function Ee(i,t,e,n){t|=0,n|=0;var r,o;return r=0|function(i,t){var e,n,r;return r=((e=0|g(65535&(t|=0),65535&(i|=0)))>>>16)+(0|g(65535&t,i>>>16))|0,n=0|g(t>>>16,65535&i),0|(v=(r>>>16)+(0|g(t>>>16,i>>>16))+(((65535&r)+n|0)>>>16)|0,r+n<<16|65535&e)}(i|=0,e|=0),o=v,0|(v=(0|g(t,e))+(0|g(n,i))+o|0&o,r)}function Te(i,t,e,n,r){C(0)}function Le(i,t){t=+t,C(1)}function Ie(i){C(2)}function Ae(i,t){C(4)}function De(i,t,e,n,r,o,f,a,s,c){return C(5),0}function Oe(i){return C(6),0}function Re(i,t,e,n){e=+e,C(7)}function Pe(i,t,e,n){return C(10),0}function Ne(i,t,e){t=+t,C(11)}function Be(i,t,e,n,r){return C(14),0}function Fe(i,t,e){return C(15),0}function Ve(i,t,e,n,r,o){C(16)}function Ue(i,t,e){return e=+e,C(17),0}function Ge(i){return C(18),0}function We(i,t,e,n,r,o){return n=+n,C(20),0}function ze(i,t,e,n,r,o,f,a,s,c){C(23)}function Xe(i,t){return C(24),0}function $e(i,t,e,n,r,o,f,a,s,c){return C(26),0}function He(i,t,e,n,r,o,f,a,s){return C(28),0}function qe(i,t,e,n,r){return e=+e,C(31),0}function Ke(i,t,e,n,r,o,f,a,s){return C(33),0}function Ye(i,t,e,n){n=+n,C(34)}function Qe(i,t,e){C(35)}function Ze(i,t,e){e=+e,C(37)}function Je(i,t,e,n){C(39)}var tn=[Te,function(i,t,e,n,f){i|=0,e|=0,n|=0,f|=0;var c,h,l,d=0,v=0,b=0,_=0,w=0,p=0,m=0,y=0,k=0,g=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0,L=0,I=0,A=0,D=0,O=0;c=u,u=u+16|0,o[(t|=0)+16>>2]=o[e+0>>2],o[t+20>>2]=o[e+4>>2],o[t+24>>2]=o[e+8>>2],o[t+28>>2]=o[e+12>>2],o[t+32>>2]=o[n+0>>2],o[t+36>>2]=o[n+4>>2],o[t+40>>2]=o[n+8>>2],o[t+44>>2]=o[n+12>>2],h=0|o[i+60>>2],l=65535&o[t+12>>2],bi(i,c+6|0,+s[e>>2],+s[e+4>>2],+s[e+8>>2],0),bi(i,c,+s[n>>2],+s[n+4>>2],+s[n+8>>2],1),j=0;do{S=0|r[h+(l<<6)+(j<<1)+48>>1],g=0|r[h+(l<<6)+(j<<1)+54>>1],I=0|r[c+6+(j<<1)>>1],O=0|o[(x=i+(j<<2)+68|0)>>2],D=(65535&I)-(0|a[O+((65535&S)<<2)>>1])|0,C=(65535&(A=0|r[c+(j<<1)>>1]))-(0|a[O+((65535&g)<<2)>>1])|0,r[O+((65535&S)<<2)>>1]=I,r[O+((65535&g)<<2)>>1]=A,(0|D)<0&&_i(i,j,S);i:do{if((0|C)>0&&(k=0|o[x>>2],p=0|o[i+60>>2],m=0|a[k+((65535&g)<<2)+2>>1],(y=0|r[k+(1+(65535&g)<<2)+2>>1])<<16>>16))for(M=1<<j&3,E=p+(m<<6)+(j<<1)+54|0,O=y,T=k+((65535&g)<<2)|0,L=k+(1+(65535&g)<<2)|0;;){if(I=0|r[L>>1],(0|a[T>>1])<(65535&I))break i;if(A=0|o[i+60>>2],O&=65535,1&I?r[(O=A+(O<<6)+(j<<1)+54|0)>>1]=(0|r[O>>1])-1<<16>>16:((0|a[p+(m<<6)+(M<<1)+54>>1])>=(0|a[A+(O<<6)+(M<<1)+48>>1])&&(0|a[A+(O<<6)+(M<<1)+54>>1])>=(0|a[p+(m<<6)+(M<<1)+48>>1])&&(0|a[p+(m<<6)+((1<<M&3)<<1)+54>>1])>=(0|a[A+(O<<6)+((1<<M&3)<<1)+48>>1])&&(0|a[A+(O<<6)+((1<<M&3)<<1)+54>>1])>=(0|a[p+(m<<6)+((1<<M&3)<<1)+48>>1])&&(v=0|o[i+92>>2],b=A+(a[T+2>>1]<<6)|0,_n[31&o[8+(0|o[v>>2])>>2]](v,b,A+(O<<6)|0),0|(v=0|o[i+96>>2]))&&_n[31&o[8+(0|o[v>>2])>>2]](v,b,A+(O<<6)|0),r[(O=A+(O<<6)+(j<<1)+48|0)>>1]=(0|r[O>>1])-1<<16>>16),r[E>>1]=1+(0|r[E>>1])<<16>>16,O=a[T>>1]|a[T+2>>1]<<16,A=a[L>>1]|a[L+2>>1]<<16,r[T>>1]=A,r[T+2>>1]=A>>>16,r[L>>1]=O,r[L+2>>1]=O>>>16,!((O=0|r[L+6>>1])<<16>>16))break;T=T+4|0,L=L+4|0}}while(0);i:do{if((0|D)>0&&(_=0|o[x>>2],(w=0|r[_+(1+(65535&S)<<2)+2>>1])<<16>>16))for(M=(0|o[i+60>>2])+(a[_+((65535&S)<<2)+2>>1]<<6)+(j<<1)+48|0,E=1<<j&3,L=w,x=_+((65535&S)<<2)|0,S=_+(1+(65535&S)<<2)|0;;){if(I=0|r[S>>1],(0|a[x>>1])<(65535&I))break i;if(T=0|o[i+60>>2],L&=65535,1&I?(I=0|a[x+2>>1],(0|a[T+(I<<6)+(E<<1)+54>>1])>=(0|a[T+(L<<6)+(E<<1)+48>>1])&&(0|a[T+(L<<6)+(E<<1)+54>>1])>=(0|a[T+(I<<6)+(E<<1)+48>>1])&&(0|a[T+(I<<6)+((1<<E&3)<<1)+54>>1])>=(0|a[T+(L<<6)+((1<<E&3)<<1)+48>>1])&&(0|a[T+(L<<6)+((1<<E&3)<<1)+54>>1])>=(0|a[T+(I<<6)+((1<<E&3)<<1)+48>>1])&&(d=0|o[i+92>>2],hn[31&o[12+(0|o[d>>2])>>2]](d,T+(I<<6)|0,T+(L<<6)|0,f),0|(d=0|o[i+96>>2]))&&hn[31&o[12+(0|o[d>>2])>>2]](d,T+(I<<6)|0,T+(L<<6)|0,f),r[(O=T+(L<<6)+(j<<1)+54|0)>>1]=(0|r[O>>1])-1<<16>>16):r[(O=T+(L<<6)+(j<<1)+48|0)>>1]=(0|r[O>>1])-1<<16>>16,r[M>>1]=1+(0|r[M>>1])<<16>>16,L=a[x>>1]|a[x+2>>1]<<16,O=a[S>>1]|a[S+2>>1]<<16,r[x>>1]=O,r[x+2>>1]=O>>>16,r[S>>1]=L,r[S+2>>1]=L>>>16,!((L=0|r[S+6>>1])<<16>>16))break;x=x+4|0,S=S+4|0}}while(0);(0|C)<0&&wi(i,j,g,f),j=j+1|0}while(3!=(0|j));0|(d=0|o[i+108>>2])?(tn[31&o[16+(0|o[d>>2])>>2]](d,0|o[t+60>>2],e,n,f),u=c):u=c},function(i,t,e,n,r){i|=0,t|=0,n|=0,r|=0;var f,a,c,h=0,l=0,d=0,v=0,b=0,_=0,w=0;f=u,u=u+64|0,v=+s[(e|=0)>>2],b=+s[e+4>>2],d=+s[e+8>>2],_=v*+s[t+4>>2]+b*+s[t+20>>2]+d*+s[t+36>>2],w=v*+s[t+8>>2]+b*+s[t+24>>2]+d*+s[t+40>>2],s[f+48>>2]=+s[t>>2]*v+ +s[t+16>>2]*b+ +s[t+32>>2]*d,s[f+52>>2]=_,s[f+56>>2]=w,s[f+60>>2]=0,Pn[63&o[64+(0|o[i>>2])>>2]](f+32|0,i,f+48|0),w=+s[f+32>>2],_=+s[f+36>>2],d=+s[f+40>>2],b=w*+s[t>>2]+_*+s[t+4>>2]+d*+s[t+8>>2]+ +s[t+48>>2],v=w*+s[t+16>>2]+_*+s[t+20>>2]+d*+s[t+24>>2]+ +s[t+52>>2],d=w*+s[t+32>>2]+_*+s[t+36>>2]+d*+s[t+40>>2]+ +s[t+56>>2],c=0|o[64+(0|o[i>>2])>>2],_=-+s[f+52>>2],w=-+s[f+56>>2],s[f>>2]=-+s[f+48>>2],s[f+4>>2]=_,s[f+8>>2]=w,s[f+12>>2]=0,Pn[63&c](f+16|0,i,f),w=+s[f+16>>2],_=+s[f+20>>2],h=+s[f+24>>2],a=w*+s[t>>2]+_*+s[t+4>>2]+h*+s[t+8>>2]+ +s[t+48>>2],l=w*+s[t+16>>2]+_*+s[t+20>>2]+h*+s[t+24>>2]+ +s[t+52>>2],h=w*+s[t+32>>2]+_*+s[t+36>>2]+h*+s[t+40>>2]+ +s[t+56>>2],s[n>>2]=b*+s[e>>2]+v*+s[e+4>>2]+d*+s[e+8>>2],h=a*+s[e>>2]+l*+s[e+4>>2]+h*+s[e+8>>2],s[r>>2]=h,(l=+s[n>>2])>h?(s[n>>2]=h,s[r>>2]=l,u=f):u=f},function(i,t,e,r,f){i|=0,t|=0,r|=0,f|=0;var a,c,h=0,l=0,d=0,v=0,b=0,_=0,w=0,p=0,m=0,y=0,k=0,g=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0,L=0,I=0,A=0,D=0;f=u,u=u+16|0,w=+s[(e|=0)>>2],b=+s[e+4>>2],d=+s[e+8>>2],c=+s[e+12>>2],_=+s[r>>2],v=+s[r+4>>2],l=+s[r+8>>2],a=+s[r+12>>2];do{if(2==(0|o[t+60>>2])){if(Ti(i+64|0,T=0|o[t+48>>2]),0|(h=0|o[i+68>>2])&&(o[4548]=1+(0|o[4548]),ke(0|o[h+-4>>2])),o[i+68>>2]=T,o[i+76>>2]=(0|o[i+76>>2])-1,0|(h=0|o[i+8>>2]))o[i+8>>2]=0;else if(o[4546]=1+(0|o[4546]),0|(T=0|ye(63))&&(o[(T+19&-16)-4>>2]=T,T+19&-16)){h=(L=0+(T+19&-16)|0)+44|0;do{o[L>>2]=0,L=L+4|0}while((0|L)<(0|h));h=T+19&-16}else h=0;o[h+32>>2]=0,o[h+36>>2]=t,o[h+40>>2]=0,s[h>>2]=w,s[h+4>>2]=b,s[h+8>>2]=d,s[h+12>>2]=c,s[h+16>>2]=_,s[h+20>>2]=v,s[h+24>>2]=l,s[h+28>>2]=a,Ei(i+4|0,0|o[i+4>>2],h),o[i+16>>2]=1+(0|o[i+16>>2]),o[t+48>>2]=h,h=1}else{if(o[i+168>>2]=1+(0|o[i+168>>2]),h=0|o[t+48>>2],(j=+s[h>>2])<=_&&(p=+s[h+16>>2])>=w&&(m=+s[h+4>>2])<=v&&(g=+s[h+20>>2])>=b&&(y=+s[h+8>>2])<=l&&(k=+s[h+24>>2])>=d){if(D=+s[t+16>>2],E=+s[t+20>>2],M=+s[t+24>>2],C=+s[i+140>>2],S=.5*(+s[t+32>>2]-D)*C,x=C*(+s[t+36>>2]-E)*.5,C=C*(+s[t+40>>2]-M)*.5,w-D<0&&(S=-S),b-E<0&&(x=-x),d-M<0&&(C=-C),!(!(j<=w)|!(m<=b)|!(y<=d)|!(p>=_)|!(g>=v)|!(k>=l))){h=0;break}S>0?(w+=-.05000000074505806,_=S+(_+.05000000074505806)):(w=S+(w+-.05000000074505806),_+=.05000000074505806),x>0?(b+=-.05000000074505806,v=x+(v+.05000000074505806)):(b=x+(b+-.05000000074505806),v+=.05000000074505806),C>0?(d+=-.05000000074505806,l=C+(l+.05000000074505806)):(d=C+(d+-.05000000074505806),l+=.05000000074505806),I=0|Ti(i+4|0,h);i:do{if(0|I){if(!((0|(T=0|o[i+12>>2]))>-1)){I=0|o[i+4>>2];break}if((0|T)>0)for(L=0;;){if(L=L+1|0,!(0|(A=0|o[I+32>>2])))break i;if((0|L)>=(0|T)){I=A;break}I=A}}else I=0}while(0);s[h>>2]=w,s[h+4>>2]=b,s[h+8>>2]=d,s[h+12>>2]=c,s[h+16>>2]=_,s[h+20>>2]=v,s[h+24>>2]=l,s[h+28>>2]=a,Ei(i+4|0,I,h),o[i+172>>2]=1+(0|o[i+172>>2]),h=1;break}I=0|Ti(i+4|0,h);i:do{if(0|I){if(!((0|(T=0|o[i+12>>2]))>-1)){I=0|o[i+4>>2];break}if((0|T)>0)for(L=0;;){if(L=L+1|0,!(0|(A=0|o[I+32>>2])))break i;if((0|L)>=(0|T)){I=A;break}I=A}}else I=0}while(0);s[h>>2]=w,s[h+4>>2]=b,s[h+8>>2]=d,s[h+12>>2]=c,s[h+16>>2]=_,s[h+20>>2]=v,s[h+24>>2]=l,s[h+28>>2]=a,Ei(i+4|0,I,h),o[i+172>>2]=1+(0|o[i+172>>2]),h=1}}while(0);T=0|o[t+52>>2],L=0|o[t+56>>2],0|T?o[T+56>>2]=L:o[i+(o[t+60>>2]<<2)+124>>2]=L,0|(T=0|o[t+56>>2])&&(o[T+52>>2]=o[t+52>>2]),o[t+16>>2]=o[e+0>>2],o[t+20>>2]=o[e+4>>2],o[t+24>>2]=o[e+8>>2],o[t+28>>2]=o[e+12>>2],o[t+32>>2]=o[r+0>>2],o[t+36>>2]=o[r+4>>2],o[t+40>>2]=o[r+8>>2],o[t+44>>2]=o[r+12>>2],o[t+60>>2]=o[i+144>>2],r=i+(o[i+144>>2]<<2)+124|0,o[t+52>>2]=0,o[t+56>>2]=o[r>>2],0|(e=0|o[r>>2])&&(o[e+52>>2]=t),o[r>>2]=t,h?(n[i+194|0]=1,0|n[i+193|0]||(o[f>>2]=10360,o[f+4>>2]=i,Di(i+64|0,0|o[i+64>>2],0|o[t+48>>2],f),Di(i+4|0,0|o[i+4>>2],0|o[t+48>>2],f)),u=f):u=f},function(i,t,e,n,r){},Ni,function(i,t,e,n,r){t|=0,e|=0,n|=0,r|=0;var f,a,c,h,l,d,v=0,b=0,w=0;if(n=u,u=u+32|0,0|(i=0|o[(i|=0)+12>>2])){if(o[r+4>>2]=i,h=0|o[t+4>>2],l=0|o[e+4>>2],t=0|o[t+12>>2],e=0|o[e+12>>2],b=+s[t+48>>2]-+s[e+48>>2],w=+s[t+52>>2]-+s[e+52>>2],v=+s[t+56>>2]-+s[e+56>>2],a=+_(+(b*b+w*w+v*v)),f=+s[l+28>>2]*+s[l+12>>2],a>(c=+s[h+28>>2]*+s[h+12>>2]+f))return 0|o[i+748>>2]?(0|(e=0|o[i+740>>2]))==(0|(t=0|o[8+(0|o[r+8>>2])>>2]))?(ht(i,e+4|0,4+(0|o[8+(0|o[r+12>>2])>>2])|0),void(u=n)):(ht(i,4+(0|o[8+(0|o[r+12>>2])>>2])|0,t+4|0),void(u=n)):void(u=n);if(s[n+16>>2]=1,s[n+20>>2]=0,s[n+24>>2]=0,s[n+28>>2]=0,a>1.1920928955078125e-7?(s[n+16>>2]=b*(1/a),s[n+20>>2]=w*(1/a),s[n+24>>2]=v*(1/a),s[n+28>>2]=0,b*=1/a,w*=1/a,v*=1/a):(b=1,w=0,v=0),d=f*w+ +s[e+52>>2],w=f*v+ +s[e+56>>2],s[n>>2]=f*b+ +s[e+48>>2],s[n+4>>2]=d,s[n+8>>2]=w,s[n+12>>2]=0,Rn[15&o[16+(0|o[r>>2])>>2]](r,n+16|0,n,a-c),i=0|o[r+4>>2],0|o[i+748>>2])return(0|(e=0|o[i+740>>2]))==(0|(t=0|o[8+(0|o[r+8>>2])>>2]))?(ht(i,e+4|0,4+(0|o[8+(0|o[r+12>>2])>>2])|0),void(u=n)):(ht(i,4+(0|o[8+(0|o[r+12>>2])>>2])|0,t+4|0),void(u=n));u=n}else u=n},function(i,t,e,r,f){t|=0,e|=0,r|=0,f|=0;var a,c,h,l,d,v=0;if(a=u,u=u+160|0,0|(v=0|o[(i|=0)+12>>2]))if(h=(c=!!(0|n[i+16|0]))?e:t,t=c?t:e,d=0|o[h+4>>2],e=0|o[t+4>>2],o[f+4>>2]=v,l=+s[752+(0|o[i+12>>2])>>2],o[a+136>>2]=15936,o[a+140>>2]=d,o[a+144>>2]=e,s[a+148>>2]=l,s[a+128>>2]=0xde0b6b000000000,e=0|o[h+12>>2],o[a+0>>2]=o[e+0>>2],o[a+4>>2]=o[e+4>>2],o[a+8>>2]=o[e+8>>2],o[a+12>>2]=o[e+12>>2],o[a+16>>2]=o[e+16>>2],o[a+20>>2]=o[e+20>>2],o[a+24>>2]=o[e+24>>2],o[a+28>>2]=o[e+28>>2],o[a+32>>2]=o[e+32>>2],o[a+36>>2]=o[e+36>>2],o[a+40>>2]=o[e+40>>2],o[a+44>>2]=o[e+44>>2],o[a+48>>2]=o[e+48>>2],o[a+52>>2]=o[e+52>>2],o[a+56>>2]=o[e+56>>2],o[a+60>>2]=o[e+60>>2],t=0|o[t+12>>2],o[a+64>>2]=o[t+0>>2],o[a+68>>2]=o[t+4>>2],o[a+72>>2]=o[t+8>>2],o[a+76>>2]=o[t+12>>2],o[a+80>>2]=o[t+16>>2],o[a+84>>2]=o[t+20>>2],o[a+88>>2]=o[t+24>>2],o[a+92>>2]=o[t+28>>2],o[a+96>>2]=o[t+32>>2],o[a+100>>2]=o[t+36>>2],o[a+104>>2]=o[t+40>>2],o[a+108>>2]=o[t+44>>2],o[a+112>>2]=o[t+48>>2],o[a+116>>2]=o[t+52>>2],o[a+120>>2]=o[t+56>>2],o[a+124>>2]=o[t+60>>2],ci(a+136|0,a,f,0|o[r+20>>2],c),0|n[i+8|0]){if(i=0|o[f+4>>2],0|o[i+748>>2])return(0|(v=0|o[i+740>>2]))==(0|(e=0|o[8+(0|o[f+8>>2])>>2]))?(ht(i,v+4|0,4+(0|o[8+(0|o[f+12>>2])>>2])|0),void(u=a)):(ht(i,4+(0|o[8+(0|o[f+12>>2])>>2])|0,e+4|0),void(u=a));u=a}else u=a;else u=a},ci,function(i,t,e,r,f){t|=0,e|=0,r|=0,f|=0;var a,c,h,l=0;if(a=u,u=u+144|0,0|(l=0|o[(i|=0)+12>>2]))if(h=0|o[t+4>>2],c=0|o[e+4>>2],o[f+4>>2]=l,s[a+140>>2]=0xde0b6b000000000,l=0|o[t+12>>2],o[a+12>>2]=o[l+0>>2],o[a+16>>2]=o[l+4>>2],o[a+20>>2]=o[l+8>>2],o[a+24>>2]=o[l+12>>2],o[a+28>>2]=o[l+16>>2],o[a+32>>2]=o[l+20>>2],o[a+36>>2]=o[l+24>>2],o[a+40>>2]=o[l+28>>2],o[a+44>>2]=o[l+32>>2],o[a+48>>2]=o[l+36>>2],o[a+52>>2]=o[l+40>>2],o[a+56>>2]=o[l+44>>2],o[a+60>>2]=o[l+48>>2],o[a+64>>2]=o[l+52>>2],o[a+68>>2]=o[l+56>>2],o[a+72>>2]=o[l+60>>2],e=0|o[e+12>>2],o[a+76>>2]=o[e+0>>2],o[a+80>>2]=o[e+4>>2],o[a+84>>2]=o[e+8>>2],o[a+88>>2]=o[e+12>>2],o[a+92>>2]=o[e+16>>2],o[a+96>>2]=o[e+20>>2],o[a+100>>2]=o[e+24>>2],o[a+104>>2]=o[e+28>>2],o[a+108>>2]=o[e+32>>2],o[a+112>>2]=o[e+36>>2],o[a+116>>2]=o[e+40>>2],o[a+120>>2]=o[e+44>>2],o[a+124>>2]=o[e+48>>2],o[a+128>>2]=o[e+52>>2],o[a+132>>2]=o[e+56>>2],o[a+136>>2]=o[e+60>>2],o[a>>2]=16144,o[a+4>>2]=h,o[a+8>>2]=c,be(a,a+12|0,f,0|o[r+20>>2],0),0|n[i+8|0]){if(t=0|o[f+4>>2],0|o[t+748>>2])return(0|(l=0|o[t+740>>2]))==(0|(e=0|o[8+(0|o[f+8>>2])>>2]))?(ht(t,l+4|0,4+(0|o[8+(0|o[f+12>>2])>>2])|0),void(u=a)):(ht(t,4+(0|o[8+(0|o[f+12>>2])>>2])|0,e+4|0),void(u=a));u=a}else u=a;else u=a},be,function(i,t,e,r,f){t|=0,e|=0,r|=0,f|=0;var a,c,h,l=0,d=0,v=0,b=0,_=0,w=0,p=0,m=0,y=0,k=0,g=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0,L=0,I=0,A=0,D=0,O=0,R=0,P=0,N=0,B=0,F=0,V=0,U=0,G=0;if(a=u,u=u+320|0,h=(l=!!(0|n[(i|=0)+28|0]))?e:t,l=l?t:e,c=0|o[h+4>>2],(0|o[c+68>>2])!=(0|o[i+40>>2])){if((0|(b=0|o[i+12>>2]))>0){v=0;do{0|(d=0|o[(0|o[i+20>>2])+(v<<2)>>2])&&(nn[255&o[o[d>>2]>>2]](d),p=0|o[i+4>>2],on[127&o[60+(0|o[p>>2])>>2]](p,0|o[(0|o[i+20>>2])+(v<<2)>>2])),v=v+1|0}while((0|v)!=(0|b))}_e(i,t,e)}if(t=0|o[c+64>>2],d=0|o[i+4>>2],_=0|o[i+20>>2],v=0|o[i+32>>2],o[a+280>>2]=16288,o[a+284>>2]=h,o[a+288>>2]=l,o[a+292>>2]=d,o[a+296>>2]=r,o[a+300>>2]=f,o[a+304>>2]=_,o[a+308>>2]=v,n[(r=a+272|0)|0]=1,o[(v=a+268|0)>>2]=0,o[(d=a+260|0)>>2]=0,o[a+264>>2]=0,(0|(e=0|o[i+12>>2]))>0){for(b=0;;){if(0|(_=0|o[_+(b<<2)>>2])){if(on[127&o[16+(0|o[_>>2])>>2]](_,a+256|0),(0|(e=0|o[d>>2]))>0){w=e,e=0;do{_=0|o[(0|o[v>>2])+(e<<2)>>2],0|o[_+748>>2]&&(o[f+4>>2]=_,(0|(p=0|o[_+740>>2]))==(0|(w=0|o[8+(0|o[f+8>>2])>>2]))?ht(_,p+4|0,4+(0|o[8+(0|o[f+12>>2])>>2])|0):ht(_,4+(0|o[8+(0|o[f+12>>2])>>2])|0,w+4|0),o[f+4>>2]=0,w=0|o[d>>2]),e=e+1|0}while((0|e)<(0|w));e=w}if((0|e)<0){if((0|o[a+264>>2])<0){if(w=0|o[v>>2],(0|e)>0){_=0;do{0|_&&(o[0+(_<<2)>>2]=o[w+(_<<2)>>2]),_=_+1|0}while((0|_)!=(0|e))}0|w&&(0|n[r|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[w+-4>>2])),o[v>>2]=0),n[r|0]=1,o[v>>2]=0,o[a+264>>2]=0}do{0|(_=(0|o[v>>2])+(e<<2)|0)&&(o[_>>2]=0),e=e+1|0}while(0|e)}o[d>>2]=0,e=0|o[i+12>>2]}if((0|(b=b+1|0))>=(0|e))break;_=0|o[i+20>>2]}0|(f=0|o[v>>2])&&(0|n[r|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[f+-4>>2])),o[v>>2]=0)}if(n[r|0]=1,o[v>>2]=0,o[d>>2]=0,o[a+264>>2]=0,0|t)p=0|o[h+12>>2],D=+s[p>>2],A=+s[p+16>>2],I=+s[p+32>>2],L=+s[p+4>>2],T=+s[p+20>>2],E=+s[p+36>>2],j=+s[p+8>>2],g=+s[p+24>>2],y=+s[p+40>>2],M=-+s[p+48>>2],x=-+s[p+52>>2],S=-+s[p+56>>2],p=0|o[l+12>>2],G=+s[p>>2],U=+s[p+16>>2],V=+s[p+32>>2],F=+s[p+4>>2],B=+s[p+20>>2],N=+s[p+36>>2],P=+s[p+8>>2],R=+s[p+24>>2],O=+s[p+40>>2],C=+s[p+48>>2],k=+s[p+52>>2],m=+s[p+56>>2],s[a+160>>2]=D*G+A*U+I*V,s[a+164>>2]=D*F+A*B+I*N,s[a+168>>2]=D*P+A*R+I*O,s[a+172>>2]=0,s[a+176>>2]=L*G+T*U+E*V,s[a+180>>2]=L*F+T*B+E*N,s[a+184>>2]=L*P+T*R+E*O,s[a+188>>2]=0,s[a+192>>2]=j*G+g*U+y*V,s[a+196>>2]=j*F+g*B+y*N,s[a+200>>2]=j*P+g*R+y*O,s[a+204>>2]=0,s[a+208>>2]=D*M+A*x+I*S+(D*C+A*k+I*m),s[a+212>>2]=L*M+T*x+E*S+(L*C+T*k+E*m),s[a+216>>2]=j*M+g*x+y*S+(j*C+g*k+y*m),s[a+220>>2]=0,p=0|o[l+4>>2],Vn[63&o[8+(0|o[p>>2])>>2]](p,a+160|0,a+240|0,a+224|0),o[a+128>>2]=o[a+240>>2],o[a+132>>2]=o[a+244>>2],o[a+136>>2]=o[a+248>>2],o[a+140>>2]=o[a+252>>2],o[a+144>>2]=o[a+224>>2],o[a+148>>2]=o[a+228>>2],o[a+152>>2]=o[a+232>>2],o[a+156>>2]=o[a+236>>2],Ii(0|o[t>>2],a+128|0,a+280|0);else{if(!((0|(f=0|o[i+12>>2]))>0))return void(u=a);t=0;do{pe(a+280|0,0|o[(0|o[c+24>>2])+(80*t|0)+64>>2],t),t=t+1|0}while((0|t)<(0|f))}if((0|(f=0|o[i+12>>2]))<=0)u=a;else{t=0;do{do{if(0|o[(0|o[i+20>>2])+(t<<2)>>2]){if(_=0|o[c+24>>2],p=0|o[_+(80*t|0)+64>>2],w=0|o[h+12>>2],g=+s[w>>2],C=+s[w+4>>2],j=+s[w+8>>2],S=+s[w+16>>2],x=+s[w+20>>2],M=+s[w+24>>2],O=+s[w+32>>2],P=+s[w+36>>2],B=+s[w+40>>2],E=+s[_+(80*t|0)>>2],T=+s[_+(80*t|0)+16>>2],L=+s[_+(80*t|0)+32>>2],I=+s[_+(80*t|0)+4>>2],A=+s[_+(80*t|0)+20>>2],D=+s[_+(80*t|0)+36>>2],R=+s[_+(80*t|0)+8>>2],N=+s[_+(80*t|0)+24>>2],F=+s[_+(80*t|0)+40>>2],y=+s[_+(80*t|0)+48>>2],k=+s[_+(80*t|0)+52>>2],G=+s[_+(80*t|0)+56>>2],V=+s[w+48>>2]+(g*y+C*k+j*G),U=+s[w+52>>2]+(S*y+x*k+M*G),G=+s[w+56>>2]+(O*y+P*k+B*G),s[a+64>>2]=g*E+C*T+j*L,s[a+68>>2]=g*I+C*A+j*D,s[a+72>>2]=g*R+C*N+j*F,s[a+76>>2]=0,s[a+80>>2]=S*E+x*T+M*L,s[a+84>>2]=S*I+x*A+M*D,s[a+88>>2]=S*R+x*N+M*F,s[a+92>>2]=0,s[a+96>>2]=O*E+P*T+B*L,s[a+100>>2]=O*I+P*A+B*D,s[a+104>>2]=O*R+P*N+B*F,s[a+108>>2]=0,s[a+112>>2]=V,s[a+116>>2]=U,s[a+120>>2]=G,s[a+124>>2]=0,Vn[63&o[8+(0|o[p>>2])>>2]](p,a+64|0,a+48|0,a+32|0),p=0|o[l+4>>2],Vn[63&o[8+(0|o[p>>2])>>2]](p,0|o[l+12>>2],a+16|0,a),r=+s[a+48>>2]>+s[a>>2]||+s[a+32>>2]<+s[a+16>>2]?0:1,(+s[a+56>>2]>+s[a+8>>2]||+s[a+40>>2]<+s[a+24>>2])&&(r=0),!(+s[a+52>>2]>+s[a+4>>2])&&!(+s[a+36>>2]<+s[a+20>>2]|1^r))break;p=0|o[(0|o[i+20>>2])+(t<<2)>>2],nn[255&o[o[p>>2]>>2]](p),p=0|o[i+4>>2],on[127&o[60+(0|o[p>>2])>>2]](p,0|o[(0|o[i+20>>2])+(t<<2)>>2]),o[(0|o[i+20>>2])+(t<<2)>>2]=0}}while(0);t=t+1|0}while((0|t)<(0|f));u=a}},function(i,t,e,r,f){i|=0,e|=0,r|=0,f|=0;var a,c,h,l,d,v,_,w,p,m,y,k,g,C,j,S,x,M,E,T,L,I,A,D=0,O=0,R=0,P=0,N=0,B=0,F=0,V=0,U=0,G=0,W=0,z=0,X=0,$=0,H=0,q=0,K=0,Y=0,Q=0,Z=0,J=0,ii=0,ti=0,ei=0,ni=0,ri=0,oi=0,fi=0,ai=0,si=0,ci=0,ui=0,hi=0,li=0,di=0,vi=0;if(a=u,u=u+192|0,D=0|o[(t|=0)+4>>2],c=0|o[e+4>>2],(0|o[D+68>>2])==(0|o[i+40>>2])&&(0|o[c+68>>2])==(0|o[i+44>>2]))R=i+8|0;else{if(Y=0|o[i+8>>2],(0|(q=0|o[Y+8>>2]))>0){K=0;do{0|(R=0|o[(0|o[Y+16>>2])+(12*K|0)+8>>2])&&(nn[255&o[o[R>>2]>>2]](R),ei=0|o[i+4>>2],on[127&o[60+(0|o[ei>>2])>>2]](ei,R)),K=K+1|0}while((0|K)!=(0|q));Y=0|o[i+8>>2]}de(Y),R=i+8|0}if(n[(q=a+180|0)|0]=1,o[(Y=a+176|0)>>2]=0,o[(K=a+168|0)>>2]=0,o[a+172>>2]=0,Q=0|o[R>>2],(0|(J=0|o[Q+8>>2]))>0){Z=0;do{if(0|(ii=0|o[(0|o[Q+16>>2])+(12*Z|0)+8>>2])){if(on[127&o[16+(0|o[ii>>2])>>2]](ii,a+164|0),(0|(ti=0|o[K>>2]))>0){J=0;do{ii=0|o[(0|o[Y>>2])+(J<<2)>>2],0|o[ii+748>>2]&&(o[f+4>>2]=ii,(0|(ti=0|o[ii+740>>2]))==(0|(ei=0|o[8+(0|o[f+8>>2])>>2]))?ht(ii,ti+4|0,4+(0|o[8+(0|o[f+12>>2])>>2])|0):ht(ii,4+(0|o[8+(0|o[f+12>>2])>>2])|0,ei+4|0),o[f+4>>2]=0,ti=0|o[K>>2]),J=J+1|0}while((0|J)<(0|ti))}if((0|ti)<0){if((0|o[a+172>>2])<0){if(J=0|o[Y>>2],(0|ti)>0){ii=0;do{0|ii&&(o[0+(ii<<2)>>2]=o[J+(ii<<2)>>2]),ii=ii+1|0}while((0|ii)!=(0|ti))}0|J&&(0|n[q|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[J+-4>>2])),o[Y>>2]=0),n[q|0]=1,o[Y>>2]=0,o[a+172>>2]=0}do{0|(J=(0|o[Y>>2])+(ti<<2)|0)&&(o[J>>2]=0),ti=ti+1|0}while(0|ti)}o[K>>2]=0,J=0|o[Q+8>>2]}Z=Z+1|0}while((0|Z)<(0|J));0|(Q=0|o[Y>>2])&&(0|n[q|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[Q+-4>>2])),o[Y>>2]=0)}if(n[q|0]=1,o[Y>>2]=0,o[K>>2]=0,o[a+172>>2]=0,ti=0|o[D+64>>2],ei=0|o[c+64>>2],Z=0|o[i+4>>2],J=0|o[R>>2],ii=0|o[i+32>>2],o[a+128>>2]=16464,o[a+132>>2]=0,o[a+136>>2]=t,o[a+140>>2]=e,o[a+144>>2]=Z,o[a+148>>2]=r,o[a+152>>2]=f,o[a+156>>2]=J,o[a+160>>2]=ii,r=0|o[t+12>>2],m=+s[r>>2],k=+s[r+16>>2],C=+s[r+32>>2],w=+s[r+4>>2],_=+s[r+20>>2],v=+s[r+36>>2],d=+s[r+8>>2],l=+s[r+24>>2],h=+s[r+40>>2],y=-+s[r+48>>2],g=-+s[r+52>>2],j=-+s[r+56>>2],r=0|o[e+12>>2],E=+s[r>>2],T=+s[r+16>>2],L=+s[r+32>>2],I=+s[r+4>>2],A=+s[r+20>>2],P=+s[r+36>>2],N=+s[r+8>>2],B=+s[r+24>>2],p=+s[r+40>>2],S=+s[r+48>>2],x=+s[r+52>>2],M=+s[r+56>>2],!(!(0|(r=0|o[ti>>2]))|!(0|(f=0|o[ei>>2])))){o[4546]=1+(0|o[4546]),Y=0|ye(1043),o[(Y+19&-16)-4>>2]=Y,o[(Y+19&-16)>>2]=r,o[4+(Y+19&-16)>>2]=f,H=+b(+(m*E+k*T+C*L)),F=+b(+(m*I+k*A+C*P)),W=+b(+(m*N+k*B+C*p)),G=+b(+(w*E+_*T+v*L)),U=+b(+(w*I+_*A+v*P)),$=+b(+(w*N+_*B+v*p)),V=+b(+(d*E+l*T+h*L)),X=+b(+(d*I+l*A+h*P)),z=+b(+(d*N+l*B+h*p)),r=1,J=128,Q=128,Y=Y+19&-16,Z=124;do{q=0|o[Y+((K=r+-1|0)<<3)>>2],f=0|o[Y+(K<<3)+4>>2],si=m*y+k*g+C*j+(m*S+k*x+C*M)+((m*E+k*T+C*L)*((di=+s[f+16>>2])+(li=+s[f>>2]))*.5+(m*I+k*A+C*P)*((hi=+s[f+20>>2])+(ui=+s[f+4>>2]))*.5+(m*N+k*B+C*p)*((ci=+s[f+24>>2])+(ni=+s[f+8>>2]))*.5),fi=w*y+_*g+v*j+(w*S+_*x+v*M)+((w*E+_*T+v*L)*(di+li)*.5+(w*I+_*A+v*P)*(hi+ui)*.5+(w*N+_*B+v*p)*(ci+ni)*.5),ri=d*y+l*g+h*j+(d*S+l*x+h*M)+((d*E+l*T+h*L)*(di+li)*.5+(d*I+l*A+h*P)*(hi+ui)*.5+(d*N+l*B+h*p)*(ci+ni)*.5),ai=(.5*(di-li)+0)*H+(.5*(hi-ui)+0)*F+(.5*(ci-ni)+0)*W,oi=(.5*(di-li)+0)*G+(.5*(hi-ui)+0)*U+(.5*(ci-ni)+0)*$,ni=(.5*(di-li)+0)*V+(.5*(hi-ui)+0)*X+(.5*(ci-ni)+0)*z;do{if(+s[q>>2]<=ai+si&&+s[q+16>>2]>=si-ai&&+s[q+4>>2]<=fi+oi&&+s[q+20>>2]>=fi-oi&&+s[q+8>>2]<=ri+ni&&+s[q+24>>2]>=ri-ni){if((0|K)>(0|Z)){if((0|Q)<(0|(Z=Q<<1))&(0|J)<(0|Z)){if(0|Q){if(o[4546]=1+(0|o[4546]),0|(J=0|ye(16+(Q<<4|3)|0))?(o[(J+19&-16)-4>>2]=J,ii=J+19&-16):ii=0,(0|Q)>0){J=0;do{0|(ti=ii+(J<<3)|0)&&(ei=0|o[(vi=Y+(J<<3)|0)+4>>2],o[ti>>2]=o[vi>>2],o[ti+4>>2]=ei),J=J+1|0}while((0|J)!=(0|Q))}}else ii=0;0|Y?(o[4548]=1+(0|o[4548]),ke(0|o[Y+-4>>2]),J=Z,Y=ii):(J=Z,Y=ii)}Q=Z,Z=Z+-4|0}if(ii=!!(0|o[f+40>>2]),0|o[q+40>>2]){if(ti=Y+(K<<3)|0,K=0|o[q+36>>2],ii){ei=0|o[f+36>>2],o[ti>>2]=K,o[ti+4>>2]=ei,ei=0|o[f+36>>2],o[(vi=Y+(r<<3)|0)>>2]=o[q+40>>2],o[vi+4>>2]=ei,vi=0|o[f+40>>2],o[(ei=Y+(r+1<<3)|0)>>2]=o[q+36>>2],o[ei+4>>2]=vi,ei=0|o[f+40>>2],o[(vi=Y+(r+2<<3)|0)>>2]=o[q+40>>2],o[vi+4>>2]=ei,r=r+3|0;break}o[ti>>2]=K,o[ti+4>>2]=f,o[(vi=Y+(r<<3)|0)>>2]=o[q+40>>2],o[vi+4>>2]=f,r=r+1|0;break}if(ii){vi=0|o[f+36>>2],o[(ei=Y+(K<<3)|0)>>2]=q,o[ei+4>>2]=vi,ei=0|o[f+40>>2],o[(vi=Y+(r<<3)|0)>>2]=q,o[vi+4>>2]=ei,r=r+1|0;break}Pn[63&o[8+(0|o[a+128>>2])>>2]](a+128|0,q,f),r=K;break}r=K}while(0)}while(0|r);0|Y&&(o[4548]=1+(0|o[4548]),ke(0|o[Y+-4>>2]))}if(f=0|o[R>>2],(0|o[f+8>>2])>0){r=0;do{K=0|o[f+16>>2],q=0|o[K+(12*r|0)+8>>2];do{if(0|q){if(vi=0|o[K+(12*r|0)>>2],ei=0|o[D+24>>2],ti=0|o[ei+(80*vi|0)+64>>2],ii=0|o[t+12>>2],di=+s[ii>>2],N=+s[ii+4>>2],P=+s[ii+8>>2],ui=+s[ii+16>>2],si=+s[ii+20>>2],fi=+s[ii+24>>2],ci=+s[ii+32>>2],oi=+s[ii+36>>2],G=+s[ii+40>>2],ri=+s[ei+(80*vi|0)>>2],ni=+s[ei+(80*vi|0)+16>>2],H=+s[ei+(80*vi|0)+32>>2],$=+s[ei+(80*vi|0)+4>>2],X=+s[ei+(80*vi|0)+20>>2],z=+s[ei+(80*vi|0)+36>>2],ai=+s[ei+(80*vi|0)+8>>2],W=+s[ei+(80*vi|0)+24>>2],U=+s[ei+(80*vi|0)+40>>2],li=+s[ei+(80*vi|0)+48>>2],hi=+s[ei+(80*vi|0)+52>>2],B=+s[ei+(80*vi|0)+56>>2],V=+s[ii+48>>2]+(di*li+N*hi+P*B),F=+s[ii+52>>2]+(ui*li+si*hi+fi*B),B=+s[ii+56>>2]+(ci*li+oi*hi+G*B),s[a>>2]=di*ri+N*ni+P*H,s[a+4>>2]=di*$+N*X+P*z,s[a+8>>2]=di*ai+N*W+P*U,s[a+12>>2]=0,s[a+16>>2]=ui*ri+si*ni+fi*H,s[a+20>>2]=ui*$+si*X+fi*z,s[a+24>>2]=ui*ai+si*W+fi*U,s[a+28>>2]=0,s[a+32>>2]=ci*ri+oi*ni+G*H,s[a+36>>2]=ci*$+oi*X+G*z,s[a+40>>2]=ci*ai+oi*W+G*U,s[a+44>>2]=0,s[a+48>>2]=V,s[a+52>>2]=F,s[a+56>>2]=B,s[a+60>>2]=0,Vn[63&o[8+(0|o[ti>>2])>>2]](ti,a,a+112|0,a+96|0),ti=0|o[(0|o[f+16>>2])+(12*r|0)+4>>2],ii=0|o[c+24>>2],vi=0|o[ii+(80*ti|0)+64>>2],ei=0|o[e+12>>2],B=+s[ei>>2],F=+s[ei+4>>2],V=+s[ei+8>>2],U=+s[ei+16>>2],G=+s[ei+20>>2],W=+s[ei+24>>2],oi=+s[ei+32>>2],ai=+s[ei+36>>2],ci=+s[ei+40>>2],z=+s[ii+(80*ti|0)>>2],X=+s[ii+(80*ti|0)+16>>2],$=+s[ii+(80*ti|0)+32>>2],H=+s[ii+(80*ti|0)+4>>2],ni=+s[ii+(80*ti|0)+20>>2],ri=+s[ii+(80*ti|0)+36>>2],fi=+s[ii+(80*ti|0)+8>>2],si=+s[ii+(80*ti|0)+24>>2],ui=+s[ii+(80*ti|0)+40>>2],P=+s[ii+(80*ti|0)+48>>2],N=+s[ii+(80*ti|0)+52>>2],di=+s[ii+(80*ti|0)+56>>2],hi=+s[ei+48>>2]+(B*P+F*N+V*di),li=+s[ei+52>>2]+(U*P+G*N+W*di),di=+s[ei+56>>2]+(oi*P+ai*N+ci*di),s[a>>2]=B*z+F*X+V*$,s[a+4>>2]=B*H+F*ni+V*ri,s[a+8>>2]=B*fi+F*si+V*ui,s[a+12>>2]=0,s[a+16>>2]=U*z+G*X+W*$,s[a+20>>2]=U*H+G*ni+W*ri,s[a+24>>2]=U*fi+G*si+W*ui,s[a+28>>2]=0,s[a+32>>2]=oi*z+ai*X+ci*$,s[a+36>>2]=oi*H+ai*ni+ci*ri,s[a+40>>2]=oi*fi+ai*si+ci*ui,s[a+44>>2]=0,s[a+48>>2]=hi,s[a+52>>2]=li,s[a+56>>2]=di,s[a+60>>2]=0,Vn[63&o[8+(0|o[vi>>2])>>2]](vi,a,a+80|0,a+64|0),K=+s[a+112>>2]>+s[a+64>>2]||+s[a+96>>2]<+s[a+80>>2]?0:1,(+s[a+120>>2]>+s[a+72>>2]||+s[a+104>>2]<+s[a+88>>2])&&(K=0),!(+s[a+116>>2]>+s[a+68>>2])&&!(+s[a+100>>2]<+s[a+84>>2]|1^K))break;if(nn[255&o[o[q>>2]>>2]](q),K=0|o[i+4>>2],on[127&o[60+(0|o[K>>2])>>2]](K,q),K=0|o[f+16>>2],q=0|o[K+(12*r|0)>>2],K=0|o[K+(12*r|0)+4>>2],(0|(Y=0|o[i+16>>2]))==(0|o[i+20>>2])&&(0|Y)<(0|(O=0|Y?Y<<1:1))){if(0|O?(o[4546]=1+(0|o[4546]),0|(Y=0|ye(16+(12*O|3)|0))?(o[(Y+19&-16)-4>>2]=Y,Q=Y+19&-16):Q=0,Y=0|o[i+16>>2]):Q=0,(0|Y)>0){J=0;do{0|(Z=Q+(12*J|0)|0)&&(vi=(0|o[i+24>>2])+(12*J|0)|0,o[Z+0>>2]=o[vi+0>>2],o[Z+4>>2]=o[vi+4>>2],o[Z+8>>2]=o[vi+8>>2]),J=J+1|0}while((0|J)!=(0|Y))}0|(Y=0|o[i+24>>2])&&(0|n[i+28|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[Y+-4>>2])),o[i+24>>2]=0),n[i+28|0]=1,o[i+24>>2]=Q,o[i+20>>2]=O,Y=0|o[i+16>>2]}0|(Q=(Z=0|o[i+24>>2])+(12*Y|0)|0)&&(o[Q>>2]=q,o[Z+(12*Y|0)+4>>2]=K,o[Z+(12*Y|0)+8>>2]=0,Y=0|o[i+16>>2]),o[i+16>>2]=Y+1}}while(0);r=r+1|0}while((0|r)<(0|o[f+8>>2]));e=i+24|0,t=i+16|0}else e=i+24|0,t=i+16|0;if((0|o[t>>2])>0){D=0;do{ei=0|o[R>>2],vi=0|o[e>>2],_n[31&o[8+(0|o[ei>>2])>>2]](ei,0|o[vi+(12*D|0)>>2],0|o[vi+(12*D|0)+4>>2]),D=D+1|0}while((0|D)<(0|o[t>>2]))}if(!(0|(D=0|o[e>>2])))return n[i+28|0]=1,o[e>>2]=0,o[t>>2]=0,o[(vi=i+20|0)>>2]=0,void(u=a);0|n[i+28|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[D+-4>>2])),o[e>>2]=0,n[i+28|0]=1,o[e>>2]=0,o[t>>2]=0,o[(vi=i+20|0)>>2]=0,u=a},function(i,t,e,r,f){t|=0,e|=0,r|=0,f|=0;var a,c,h,l,d,v,b,_,w,p,m,y,k,g,C,j,S,x,M,E,T,L,I,A,D,O,R=0,P=0;if(a=u,u=u+64|0,R=(P=!!(0|n[(i|=0)+8|0]))?e:t,t=0|o[(e=P?t:e)+4>>2],((0|o[t+4>>2])-21|0)>>>0<9)if((0|o[4+(0|o[R+4>>2])>>2])>=20)u=a;else{c=+mn[15&o[48+(0|o[t>>2])>>2]](t),o[f+4>>2]=o[i+76>>2],o[i+16>>2]=R,o[i+20>>2]=e,o[i+64>>2]=r,s[i+68>>2]=c,o[i+56>>2]=f,P=0|o[e+12>>2],S=+s[P>>2],j=+s[P+16>>2],C=+s[P+32>>2],g=+s[P+4>>2],k=+s[P+20>>2],y=+s[P+36>>2],_=+s[P+8>>2],v=+s[P+24>>2],l=+s[P+40>>2],m=-+s[P+48>>2],p=-+s[P+52>>2],w=-+s[P+56>>2],P=0|o[R+12>>2],O=+s[P>>2],D=+s[P+16>>2],A=+s[P+32>>2],I=+s[P+4>>2],L=+s[P+20>>2],T=+s[P+36>>2],E=+s[P+8>>2],M=+s[P+24>>2],x=+s[P+40>>2],b=+s[P+48>>2],d=+s[P+52>>2],h=+s[P+56>>2],s[a>>2]=S*O+j*D+C*A,s[a+4>>2]=S*I+j*L+C*T,s[a+8>>2]=S*E+j*M+C*x,s[a+12>>2]=0,s[a+16>>2]=g*O+k*D+y*A,s[a+20>>2]=g*I+k*L+y*T,s[a+24>>2]=g*E+k*M+y*x,s[a+28>>2]=0,s[a+32>>2]=_*O+v*D+l*A,s[a+36>>2]=_*I+v*L+l*T,s[a+40>>2]=_*E+v*M+l*x,s[a+44>>2]=0,s[a+48>>2]=S*m+j*p+C*w+(S*b+j*d+C*h),s[a+52>>2]=g*m+k*p+y*w+(g*b+k*d+y*h),s[a+56>>2]=_*m+v*p+l*w+(_*b+v*d+l*h),s[a+60>>2]=0,P=0|o[4+(0|o[i+16>>2])>>2],Vn[63&o[8+(0|o[P>>2])>>2]](P,a,i+24|0,i+40|0),s[i+40>>2]=+s[i+40>>2]+c,s[i+44>>2]=+s[i+44>>2]+c,s[i+48>>2]=+s[i+48>>2]+c,s[i+24>>2]=+s[i+24>>2]-c,s[i+28>>2]=+s[i+28>>2]-c,s[i+32>>2]=+s[i+32>>2]-c,P=0|o[i+76>>2],e=0|o[e+8>>2],o[P+740>>2]=o[R+8>>2],o[P+744>>2]=e,Vn[63&o[64+(0|o[t>>2])>>2]](t,i+12|0,i+24|0,i+40|0),R=0|o[f+4>>2];do{if(0|o[R+748>>2]){if((0|(r=0|o[R+740>>2]))==(0|(e=0|o[8+(0|o[f+8>>2])>>2]))){ht(R,r+4|0,4+(0|o[8+(0|o[f+12>>2])>>2])|0);break}ht(R,4+(0|o[8+(0|o[f+12>>2])>>2])|0,e+4|0);break}}while(0);o[i+16>>2]=0,o[i+20>>2]=0,u=a}else u=a},function(i,t,e,r,f){t|=0,e|=0,r|=0,f|=0;var a,c,h,l=0,d=0,v=0,w=0,y=0,k=0,g=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0,L=0,I=0,A=0,D=0,O=0,R=0,P=0,N=0,B=0,F=0,V=0,U=0,G=0,W=0,z=0,X=0,$=0,H=0,q=0,K=0,Y=0,Q=0,Z=0,J=0,ii=0,ti=0,ei=0,ni=0,ri=0,oi=0,fi=0,ai=0,si=0,ci=0,ui=0,hi=0,li=0,di=0,vi=0,bi=0,_i=0,wi=0,pi=0,mi=0,yi=0,ki=0,gi=0;if(a=u,u=u+832|0,0|(C=0|o[(i|=0)+20>>2])||(C=0|o[i+4>>2],C=0|_n[31&o[12+(0|o[C>>2])>>2]](C,0|o[t+8>>2],0|o[e+8>>2]),o[i+20>>2]=C,n[i+16|0]=1),o[f+4>>2]=C,d=0|o[t+4>>2],l=0|o[e+4>>2],10==(0|(x=0|o[d+4>>2]))&&10==(0|o[l+4>>2])){if(v=+s[752+(0|o[i+20>>2])>>2],mi=0|o[d+52>>2],O=+s[d+(mi<<2)+28>>2],y=+s[d+((mi+2|0)%3<<2)+28>>2],yi=0|o[l+52>>2],A=+s[l+(yi<<2)+28>>2],k=+s[l+((yi+2|0)%3<<2)+28>>2],ki=0|o[t+12>>2],i=0|o[e+12>>2],M=+s[ki+(mi<<2)>>2],g=+s[ki+(mi<<2)+16>>2],E=+s[ki+(mi<<2)+32>>2],P=+s[i+(yi<<2)>>2],N=+s[i+(yi<<2)+16>>2],D=+s[i+(yi<<2)+32>>2],I=+s[i+48>>2]-+s[ki+48>>2],L=+s[i+52>>2]-+s[ki+52>>2],T=+s[i+56>>2]-+s[ki+56>>2],0!=(F=1-(M*P+g*N+E*D)*(M*P+g*N+E*D))?(V=(M*I+g*L+E*T-(M*P+g*N+E*D)*(P*I+N*L+D*T))/F)<-O?V=-O:V>O&&(V=O):V=0,(F=(M*P+g*N+E*D)*V-(P*I+N*L+D*T))<-A?(F=(M*P+g*N+E*D)*-A+(M*I+g*L+E*T))<-O?(O=-O,A=-A):(F>O||(O=F),A=-A):F>A?(F=A*(M*P+g*N+E*D)+(M*I+g*L+E*T))<-O?O=-O:F>O||(O=F):(O=V,A=F),P*=A,N*=A,!((T=+_(+((D=(A*=D)+(T-E*O))*D+((I=P+(I-M*O))*I+(L=N+(L-g*O))*L))))-y-k>v)){do{if(D*D+(I*I+L*L)<=14210854715202004e-30){if(+b(+E)>.7071067690849304){hi=1/+_(+(g*g+E*E)),s[a+320>>2]=0,s[a+324>>2]=-E*hi,s[a+328>>2]=g*hi,I=0,M=-E*hi,g*=hi;break}hi=1/+_(+(M*M+g*g)),s[a+320>>2]=-g*hi,s[a+324>>2]=M*hi,s[a+328>>2]=0,I=-g*hi,M*=hi,g=0;break}s[a+320>>2]=I*(-1/T),s[a+324>>2]=L*(-1/T),s[a+328>>2]=D*(-1/T),s[a+332>>2]=0,I*=-1/T,M=L*(-1/T),g=D*(-1/T)}while(0);ui=k*M+(N+ +s[i+52>>2]),hi=k*g+(A+ +s[i+56>>2]),s[a+304>>2]=k*I+(P+ +s[i+48>>2]),s[a+308>>2]=ui,s[a+312>>2]=hi,s[a+316>>2]=0}return T-y-k<v&&(Rn[15&o[16+(0|o[f>>2])>>2]](f,a+320|0,a+304|0,T-y-k),C=0|o[f+4>>2]),0|o[C+748>>2]?(0|(i=0|o[C+740>>2]))==(0|(t=0|o[8+(0|o[f+8>>2])>>2]))?(ht(C,i+4|0,4+(0|o[8+(0|o[f+12>>2])>>2])|0),void(u=a)):(ht(C,4+(0|o[8+(0|o[f+12>>2])>>2])|0,t+4|0),void(u=a)):void(u=a)}di=l+4|0,s[a+296>>2]=0xde0b6b000000000,B=0|o[i+8>>2],R=0|o[i+12>>2],o[a+88>>2]=11880,s[a+92>>2]=0,s[a+96>>2]=1,s[a+100>>2]=0,s[a+104>>2]=0,o[a+108>>2]=R,o[a+112>>2]=B,o[a+116>>2]=d,o[a+120>>2]=l,o[a+124>>2]=x,o[a+128>>2]=o[di>>2],s[a+132>>2]=+mn[15&o[48+(0|o[d>>2])>>2]](d),s[a+136>>2]=+mn[15&o[48+(0|o[l>>2])>>2]](l),n[a+140|0]=0,o[a+148>>2]=-1,o[a+160>>2]=1,o[a+164>>2]=1,o[a+116>>2]=d,o[a+120>>2]=l,hi=(ui=+mn[15&o[48+(0|o[d>>2])>>2]](d))+(hi=+mn[15&o[48+(0|o[l>>2])>>2]](l))+ +s[752+(0|o[i+20>>2])>>2],s[a+296>>2]=hi*hi,x=0|o[t+12>>2],o[a+168>>2]=o[x+0>>2],o[a+172>>2]=o[x+4>>2],o[a+176>>2]=o[x+8>>2],o[a+180>>2]=o[x+12>>2],o[(B=a+184|0)+0>>2]=o[x+16>>2],o[B+4>>2]=o[x+20>>2],o[B+8>>2]=o[x+24>>2],o[B+12>>2]=o[x+28>>2],o[(R=a+200|0)+0>>2]=o[x+32>>2],o[R+4>>2]=o[x+36>>2],o[R+8>>2]=o[x+40>>2],o[R+12>>2]=o[x+44>>2],o[(h=a+216|0)+0>>2]=o[x+48>>2],o[h+4>>2]=o[x+52>>2],o[h+8>>2]=o[x+56>>2],o[h+12>>2]=o[x+60>>2],x=a+232|0,C=0|o[e+12>>2],o[x+0>>2]=o[C+0>>2],o[x+4>>2]=o[C+4>>2],o[x+8>>2]=o[C+8>>2],o[x+12>>2]=o[C+12>>2],o[(U=a+248|0)+0>>2]=o[C+16>>2],o[U+4>>2]=o[C+20>>2],o[U+8>>2]=o[C+24>>2],o[U+12>>2]=o[C+28>>2],o[(ti=a+264|0)+0>>2]=o[C+32>>2],o[ti+4>>2]=o[C+36>>2],o[ti+8>>2]=o[C+40>>2],o[ti+12>>2]=o[C+44>>2],o[(c=a+280|0)+0>>2]=o[C+48>>2],o[c+4>>2]=o[C+52>>2],o[c+8>>2]=o[C+56>>2],o[c+12>>2]=o[C+60>>2],C=0|o[d+4>>2];do{if((0|C)<7&&(0|(j=0|o[di>>2]))<7&&(o[a+80>>2]=17392,0|C?(g=+mn[15&o[48+(0|o[d>>2])>>2]](d),j=0|o[di>>2]):g=0,T=0|j?+mn[15&o[48+(0|o[l>>2])>>2]](l):0,o[a+40>>2]=17200,o[a+44>>2]=f,s[a+64>>2]=g,s[a+68>>2]=T,n[a+76|0]=0,0|(j=0|o[d+52>>2]))){if(!(0|(C=0|o[l+52>>2]))){if(1!=(0|o[di>>2]))break;if(n[(C=a+32|0)|0]=1,o[(x=a+28|0)>>2]=0,o[(w=a+20|0)>>2]=0,o[(j=a+24|0)>>2]=0,R=0|o[e+12>>2],ui=+s[l+56>>2],hi=+s[l+60>>2],y=+s[l+64>>2],v=ui*+s[R>>2]+hi*+s[R+4>>2]+y*+s[R+8>>2]+ +s[R+48>>2],k=ui*+s[R+16>>2]+hi*+s[R+20>>2]+y*+s[R+24>>2]+ +s[R+52>>2],y=ui*+s[R+32>>2]+hi*+s[R+36>>2]+y*+s[R+40>>2]+ +s[R+56>>2],o[4546]=1+(0|o[4546]),0|(R=0|ye(35))?(o[(R+19&-16)-4>>2]=R,B=R+19&-16):B=0,0|(R=0|o[x>>2])&&(0|n[C|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[R+-4>>2])),o[x>>2]=0),n[C|0]=1,o[x>>2]=B,o[j>>2]=1,R=0|o[w>>2],s[B+(R<<4)>>2]=v,s[B+(R<<4)+4>>2]=k,s[B+(R<<4)+8>>2]=y,s[B+(R<<4)+12>>2]=0,B=0|o[w>>2],o[w>>2]=B+1,R=0|o[e+12>>2],ui=+s[l+72>>2],hi=+s[l+76>>2],k=+s[l+80>>2],y=ui*+s[R>>2]+hi*+s[R+4>>2]+k*+s[R+8>>2]+ +s[R+48>>2],v=ui*+s[R+16>>2]+hi*+s[R+20>>2]+k*+s[R+24>>2]+ +s[R+52>>2],k=ui*+s[R+32>>2]+hi*+s[R+36>>2]+k*+s[R+40>>2]+ +s[R+56>>2],(B+1|0)==(0|(R=0|o[j>>2])))if((B+1|0)<(0|(R=B+1|0?B+1<<1:1))){if(0|R&&(o[4546]=1+(0|o[4546]),0|(li=0|ye(16+(R<<4|3)|0)))?(o[(li+19&-16)-4>>2]=li,U=li+19&-16):U=0,(0|B)>-1){ti=0;do{ki=U+(ti<<4)|0,yi=(0|o[x>>2])+(ti<<4)|0,o[ki+0>>2]=o[yi+0>>2],o[ki+4>>2]=o[yi+4>>2],o[ki+8>>2]=o[yi+8>>2],o[ki+12>>2]=o[yi+12>>2],ti=ti+1|0}while((0|ti)!=(B+1|0))}0|(B=0|o[x>>2])&&(0|n[C|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[B+-4>>2])),o[x>>2]=0),n[C|0]=1,o[x>>2]=U,o[j>>2]=R,U=0|o[w>>2]}else U=B+1|0,R=B+1|0;else U=B+1|0;if(B=0|o[x>>2],s[B+(U<<4)>>2]=y,s[B+(U<<4)+4>>2]=v,s[B+(U<<4)+8>>2]=k,s[B+(U<<4)+12>>2]=0,U=U+1|0,o[w>>2]=U,ki=0|o[e+12>>2],ui=+s[l+88>>2],hi=+s[l+92>>2],y=+s[l+96>>2],v=ui*+s[ki>>2]+hi*+s[ki+4>>2]+y*+s[ki+8>>2]+ +s[ki+48>>2],k=ui*+s[ki+16>>2]+hi*+s[ki+20>>2]+y*+s[ki+24>>2]+ +s[ki+52>>2],y=ui*+s[ki+32>>2]+hi*+s[ki+36>>2]+y*+s[ki+40>>2]+ +s[ki+56>>2],(0|U)==(0|R)){if((0|R)<(0|(e=0|R?R<<1:1))){if(0|e&&(o[4546]=1+(0|o[4546]),0|(ai=0|ye(16+(e<<4|3)|0)))?(o[(ai+19&-16)-4>>2]=ai,B=ai+19&-16):B=0,(0|R)>0){U=0;do{ki=B+(U<<4)|0,yi=(0|o[x>>2])+(U<<4)|0,o[ki+0>>2]=o[yi+0>>2],o[ki+4>>2]=o[yi+4>>2],o[ki+8>>2]=o[yi+8>>2],o[ki+12>>2]=o[yi+12>>2],U=U+1|0}while((0|U)!=(0|R))}0|(R=0|o[x>>2])&&(0|n[C|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[R+-4>>2])),o[x>>2]=0),n[C|0]=1,o[x>>2]=B,o[j>>2]=e,R=0|o[w>>2]}}else R=U;s[B+(R<<4)>>2]=v,s[B+(R<<4)+4>>2]=k,s[B+(R<<4)+8>>2]=y,s[B+(R<<4)+12>>2]=0,o[w>>2]=1+(0|o[w>>2]),v=+s[752+(0|o[i+20>>2])>>2],Ni(a+88|0,a+168|0,a+80|0,0|o[r+20>>2],0),(k=+s[a+92>>2])*k+(g=+s[a+96>>2])*g+(y=+s[a+100>>2])*y>1.1920928955078125e-7&&(ui=1/(k*k+g*g+y*y),s[a>>2]=k*ui,s[a+4>>2]=g*ui,s[a+8>>2]=y*ui,s[a+12>>2]=0,hi=(ui=+s[a+144>>2])-(hi=+mn[15&o[48+(0|o[d>>2])>>2]](d))-+mn[15&o[48+(0|o[l>>2])>>2]](l),kt(a,0|o[d+52>>2],0|o[t+12>>2],a+16|0,hi-v,v,f));do{if(0|n[i+16|0]&&(S=0|o[f+4>>2],0|o[S+748>>2])){if((0|(i=0|o[S+740>>2]))==(0|(t=0|o[8+(0|o[f+8>>2])>>2]))){ht(S,i+4|0,4+(0|o[8+(0|o[f+12>>2])>>2])|0);break}ht(S,4+(0|o[8+(0|o[f+12>>2])>>2])|0,t+4|0);break}}while(0);return 0|(f=0|o[x>>2])&&(0|n[C|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[f+-4>>2])),o[x>>2]=0),n[C|0]=1,o[x>>2]=0,o[w>>2]=0,o[j>>2]=0,void(u=a)}if(v=+s[752+(0|o[i+20>>2])>>2],0|n[r+24|0]){S=0|o[t+12>>2],r=0|o[e+12>>2],o[4462]=1+(0|o[4462]),fi=+s[j+64>>2],si=+s[j+68>>2],L=+s[S+4>>2],ci=+s[j+72>>2],I=+s[S+8>>2],A=+s[S+16>>2],D=+s[S+20>>2],P=+s[S+24>>2],O=+s[S+32>>2],z=+s[S+36>>2],X=+s[S+40>>2],ui=+s[C+64>>2],hi=+s[C+68>>2],g=+s[C+72>>2],y=fi*+s[S>>2]+si*L+ci*I+ +s[S+48>>2]-(ui*+s[r>>2]+hi*+s[r+4>>2]+g*+s[r+8>>2]+ +s[r+48>>2]),k=fi*A+si*D+ci*P+ +s[S+52>>2]-(ui*+s[r+16>>2]+hi*+s[r+20>>2]+g*+s[r+24>>2]+ +s[r+52>>2]),g=fi*O+si*z+ci*X+ +s[S+56>>2]-(ui*+s[r+32>>2]+hi*+s[r+36>>2]+g*+s[r+40>>2]+ +s[r+56>>2]),x=0|o[j+28>>2];i:do{if((0|x)>0)for(N=34028234663852886e22,R=0,G=0,W=0,V=0,F=0,T=0;;){if(ki=0|o[j+36>>2],ci=+s[ki+(36*R|0)+20>>2],ui=+s[ki+(36*R|0)+24>>2],hi=+s[ki+(36*R|0)+28>>2],L=ci*+s[S>>2]+ui*L+hi*I,I=ci*A+ui*D+hi*P,A=ci*O+ui*z+hi*X,s[a+400>>2]=L,s[a+404>>2]=I,s[a+408>>2]=A,s[a+412>>2]=0,y*L+k*I+g*A<0&&(s[a+400>>2]=-1*L,s[a+404>>2]=-1*I,s[a+408>>2]=-1*A,L*=-1,I*=-1,A*=-1),o[4458]=1+(0|o[4458]),0|ve(S,r,y,k,g,L,I,A,j,C,N)){if(o[4460]=1+(0|o[4460]),ee(j,S,a+400|0,a+808|0,a+784|0,a+464|0,a+448|0),ee(C,r,a+400|0,a+720|0,a+480|0,a+432|0,a+416|0),(L=+s[a+784>>2])<(I=+s[a+720>>2])||(E=+s[a+480>>2])<(M=+s[a+808>>2])?B=0:(B=1,T=L-I<E-M?L-I:E-M),!B){C=0;break i}T<N&&(N=T,G=+s[a+400>>2],W=+s[a+404>>2],V=+s[a+408>>2],F=+s[a+412>>2])}if((0|(R=R+1|0))>=(0|x)){w=52;break i}L=+s[S+4>>2],I=+s[S+8>>2],A=+s[S+16>>2],D=+s[S+20>>2],P=+s[S+24>>2],O=+s[S+32>>2],z=+s[S+36>>2],X=+s[S+40>>2]}else N=34028234663852886e22,G=0,W=0,V=0,F=0,w=52}while(0);i:do{if(52==(0|w)){if((0|(x=0|o[C+28>>2]))>0){R=0,M=0;do{ki=0|o[C+36>>2],ui=+s[ki+(36*R|0)+20>>2],hi=+s[ki+(36*R|0)+24>>2],T=+s[ki+(36*R|0)+28>>2],E=ui*+s[r>>2]+hi*+s[r+4>>2]+T*+s[r+8>>2],L=ui*+s[r+16>>2]+hi*+s[r+20>>2]+T*+s[r+24>>2],T=ui*+s[r+32>>2]+hi*+s[r+36>>2]+T*+s[r+40>>2],s[a+384>>2]=E,s[a+388>>2]=L,s[a+392>>2]=T,s[a+396>>2]=0,y*E+k*L+g*T<0&&(s[a+384>>2]=-1*E,s[a+388>>2]=-1*L,s[a+392>>2]=-1*T,E*=-1,L*=-1,T*=-1),o[4458]=1+(0|o[4458]);do{if(0|ve(S,r,y,k,g,E,L,T,j,C,N)){o[4460]=1+(0|o[4460]),ee(j,S,a+384|0,a+808|0,a+784|0,a+464|0,a+448|0),ee(C,r,a+384|0,a+720|0,a+480|0,a+432|0,a+416|0),I=+s[a+784>>2],T=+s[a+720>>2];do{if(I<T)B=0;else{if((E=+s[a+480>>2])<(L=+s[a+808>>2])){B=0;break}B=1,M=I-T<E-L?I-T:E-L}}while(0);if(!B){C=0;break i}if(!(M<N))break;N=M,G=+s[a+384>>2],W=+s[a+388>>2],V=+s[a+392>>2],F=+s[a+396>>2]}}while(0);R=R+1|0}while((0|R)<(0|x))}if((0|(R=0|o[j+48>>2]))>0){ti=0|o[C+48>>2],L=0,I=0,A=0,D=0,O=0,P=0,x=0,B=-1,U=-1,J=0,z=0,ei=0,X=0,ni=0,q=0,ii=0,Q=0,Z=0,Y=0,K=0,H=0,$=0;do{if(ki=0|o[j+56>>2],ui=+s[ki+(x<<4)>>2],hi=+s[ki+(x<<4)+4>>2],T=+s[ki+(x<<4)+8>>2],E=ui*+s[S>>2]+hi*+s[S+4>>2]+T*+s[S+8>>2],M=ui*+s[S+16>>2]+hi*+s[S+20>>2]+T*+s[S+24>>2],T=ui*+s[S+32>>2]+hi*+s[S+36>>2]+T*+s[S+40>>2],(0|ti)>0){R=0;do{ki=0|o[C+56>>2],ui=+s[ki+(R<<4)>>2],hi=+s[ki+(R<<4)+4>>2],fi=+s[ki+(R<<4)+8>>2],ri=ui*+s[r>>2]+hi*+s[r+4>>2]+fi*+s[r+8>>2],oi=ui*+s[r+16>>2]+hi*+s[r+20>>2]+fi*+s[r+24>>2],fi=ui*+s[r+32>>2]+hi*+s[r+36>>2]+fi*+s[r+40>>2],s[a+368>>2]=M*fi-T*oi,s[a+372>>2]=T*ri-E*fi,s[a+376>>2]=E*oi-M*ri,s[a+380>>2]=0;do{if(+b(+(M*fi-T*oi))>1e-6)w=70;else{if(+b(+(T*ri-E*fi))>1e-6){w=70;break}+b(+(E*oi-M*ri))>1e-6&&(w=70)}}while(0);do{if(70==(0|w)){if(w=0,ci=(M*fi-T*oi)*(si=1/+_(+((M*fi-T*oi)*(M*fi-T*oi)+(T*ri-E*fi)*(T*ri-E*fi)+(E*oi-M*ri)*(E*oi-M*ri)))),s[a+368>>2]=ci,ui=(T*ri-E*fi)*si,s[a+372>>2]=ui,si*=E*oi-M*ri,s[a+376>>2]=si,y*ci+k*ui+g*si<0&&(s[a+368>>2]=-1*ci,s[a+372>>2]=-1*ui,s[a+376>>2]=-1*si,ci*=-1,ui*=-1,si*=-1),o[4458]=1+(0|o[4458]),!(0|ve(S,r,y,k,g,ci,ui,si,j,C,N)))break;o[4460]=1+(0|o[4460]),ee(j,S,a+368|0,a+808|0,a+784|0,a+464|0,a+448|0),ee(C,r,a+368|0,a+720|0,a+480|0,a+432|0,a+416|0),si=+s[a+784>>2],ci=+s[a+720>>2];do{if(!(si<ci)){if((hi=+s[a+480>>2])<(ui=+s[a+808>>2])){ti=0;break}if(si-ci<hi-ui){ti=1,J=si-ci,ei=+s[a+448>>2],ni=+s[a+452>>2],ii=+s[a+456>>2],Z=+s[a+432>>2],K=+s[a+436>>2],$=+s[a+440>>2];break}ti=1,J=hi-ui,ei=+s[a+464>>2],ni=+s[a+468>>2],ii=+s[a+472>>2],Z=+s[a+416>>2],K=+s[a+420>>2],$=+s[a+424>>2];break}ti=0}while(0);if(!ti){C=0;break i}if(!(J<N))break;L=fi,I=T,A=oi,D=M,O=ri,P=E,N=J,B=x,U=R,G=+s[a+368>>2],W=+s[a+372>>2],V=+s[a+376>>2],F=+s[a+380>>2],z=ei,X=ni,q=ii,Q=Z,Y=K,H=$}}while(0);R=R+1|0,ti=0|o[C+48>>2]}while((0|R)<(0|ti));R=0|o[j+48>>2]}x=x+1|0}while((0|x)<(0|R))}else L=0,I=0,A=0,D=0,O=0,P=0,B=-1,U=-1,z=0,X=0,q=0,Q=0,Y=0,H=0;if((U|B|0)>-1){$=P*O+D*A+I*L,X=P*(E=Q-z)+D*(T=Y-X)+I*(M=H-q),z=O*E+A*T+L*M;do{if(1-$*$!=0)if((X-$*z)/(1-$*$)<-1.0000000150474662e30)N=-1.0000000150474662e30;else{if(!((X-$*z)/(1-$*$)>1.0000000150474662e30)){N=(X-$*z)/(1-$*$);break}N=1.0000000150474662e30}else N=0}while(0);z=$*N-z;do{if(z<-1.0000000150474662e30){if(-1.0000000150474662e30*$+X<-1.0000000150474662e30){N=-1.0000000150474662e30,z=-1.0000000150474662e30;break}if(!(-1.0000000150474662e30*$+X>1.0000000150474662e30)){N=-1.0000000150474662e30*$+X,z=-1.0000000150474662e30;break}N=1.0000000150474662e30,z=-1.0000000150474662e30}else{if(!(z>1.0000000150474662e30))break;if(1.0000000150474662e30*$+X<-1.0000000150474662e30){N=-1.0000000150474662e30,z=1.0000000150474662e30;break}if(!(1.0000000150474662e30*$+X>1.0000000150474662e30)){N=1.0000000150474662e30*$+X,z=1.0000000150474662e30;break}N=1.0000000150474662e30,z=1.0000000150474662e30}}while(0);E=E-P*N+(O*=z),T=T-N*D+(A*=z),I=M-N*I+(L*=z),s[a+352>>2]=E,s[a+356>>2]=T,s[a+360>>2]=I,s[a+364>>2]=0,E*E+T*T+I*I>1.1920928955078125e-7&&(M=+_(+(E*E+T*T+I*I)),s[a+352>>2]=E*(1/M),s[a+356>>2]=1/M*T,s[a+360>>2]=1/M*I,E*(1/M)*y+1/M*T*k+1/M*I*g<0&&(s[a+352>>2]=E*(1/M)*-1,s[a+356>>2]=1/M*T*-1,s[a+360>>2]=1/M*I*-1),s[a+336>>2]=Q+O,s[a+340>>2]=Y+A,s[a+344>>2]=H+L,s[a+348>>2]=0,Rn[15&o[16+(0|o[f>>2])>>2]](f,a+352|0,a+336|0,-M))}y*G+k*W+g*V<0?(C=1,G=-G,W=-W,V=-V,F=0):C=1}}while(0);C&&(y=-1.0000000150474662e30,w=105)}else Ni(a+88|0,a+168|0,a+40|0,0|o[r+20>>2],0),y=+s[a+72>>2],!!(0|n[a+76|0])&y<0&&(G=+s[a+48>>2],W=+s[a+52>>2],V=+s[a+56>>2],F=+s[a+60>>2],w=105);if(105==(0|w)){if(d=0|o[d+52>>2],l=0|o[l+52>>2],t=0|o[t+12>>2],e=0|o[e+12>>2],y-=v,k=G*(M=1/+_(+(G*G+W*W+V*V))),g=W*M,M*=V,s[a+808>>2]=k,s[a+812>>2]=g,s[a+816>>2]=M,s[a+820>>2]=F,C=0|o[l+28>>2],w=0|o[l+36>>2],(0|C)>0)for(D=+s[e>>2],A=+s[e+4>>2],T=+s[e+8>>2],W=+s[e+16>>2],G=+s[e+20>>2],V=+s[e+24>>2],F=+s[e+32>>2],I=+s[e+36>>2],E=+s[e+40>>2],S=-1,L=-34028234663852886e22,r=0;;){if(S=(j=((N=+s[w+(36*r|0)+20>>2])*D+(P=+s[w+(36*r|0)+24>>2])*A+(O=+s[w+(36*r|0)+28>>2])*T)*k+(N*W+P*G+O*V)*g+(N*F+P*I+O*E)*M>L)?r:S,(0|(r=r+1|0))>=(0|C)){j=S;break}L=j?(N*D+P*A+O*T)*k+(N*W+P*G+O*V)*g+(N*F+P*I+O*E)*M:L}else j=-1;n[a+800|0]=1,o[(C=a+796|0)>>2]=0,o[a+788>>2]=0,o[a+792>>2]=0,r=0|o[w+(36*j|0)+4>>2];i:do{if((0|r)>0)for(w=w+(36*j|0)+12|0,U=0,x=0,B=0,S=0;;){if(ki=0|o[(0|o[w>>2])+(S<<2)>>2],yi=0|o[l+16>>2],ui=+s[yi+(ki<<4)>>2],hi=+s[yi+(ki<<4)+4>>2],M=+s[yi+(ki<<4)+8>>2],g=ui*+s[e>>2]+hi*+s[e+4>>2]+M*+s[e+8>>2]+ +s[e+48>>2],k=ui*+s[e+16>>2]+hi*+s[e+20>>2]+M*+s[e+24>>2]+ +s[e+52>>2],M=ui*+s[e+32>>2]+hi*+s[e+36>>2]+M*+s[e+40>>2]+ +s[e+56>>2],(0|U)==(0|x))if((0|x)<(0|(R=0|x?x<<1:1))){do{if(0|R){if(o[4546]=1+(0|o[4546]),!(0|(B=0|ye(16+(R<<4|3)|0)))){B=0;break}o[(B+19&-16)-4>>2]=B,B=B+19&-16}else B=0}while(0);if((0|x)>0){U=0;do{ki=B+(U<<4)|0,yi=(0|o[C>>2])+(U<<4)|0,o[ki+0>>2]=o[yi+0>>2],o[ki+4>>2]=o[yi+4>>2],o[ki+8>>2]=o[yi+8>>2],o[ki+12>>2]=o[yi+12>>2],U=U+1|0}while((0|U)!=(0|x))}0|(x=0|o[C>>2])&&(0|n[a+800|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[x+-4>>2])),o[C>>2]=0),n[a+800|0]=1,o[C>>2]=B,o[a+792>>2]=R,R=B,x=0|o[a+788>>2]}else R=B;else R=B,x=U;if(s[R+(x<<4)>>2]=g,s[R+(x<<4)+4>>2]=k,s[R+(x<<4)+8>>2]=M,s[R+(x<<4)+12>>2]=0,U=1+(0|o[a+788>>2])|0,o[a+788>>2]=U,(0|(S=S+1|0))>=(0|r))break i;x=0|o[a+792>>2],B=R}else R=0}while(0);(0|j)>-1&&(kt(a+808|0,d,t,a+784|0,y,v,f),R=0|o[C>>2]),0|R&&(0|n[a+800|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[R+-4>>2])),o[C>>2]=0)}return 0|n[i+16|0]?(e=0|o[f+4>>2],0|o[e+748>>2]?(0|(t=0|o[e+740>>2]))==(0|(i=0|o[8+(0|o[f+8>>2])>>2]))?(ht(e,t+4|0,4+(0|o[8+(0|o[f+12>>2])>>2])|0),void(u=a)):(ht(e,4+(0|o[8+(0|o[f+12>>2])>>2])|0,i+4|0),void(u=a)):void(u=a)):void(u=a)}}while(0);if(Ni(a+88|0,a+168|0,f,0|o[r+20>>2],0),0|o[i+28>>2]&&(0|o[748+(0|o[f+4>>2])>>2])<(0|o[i+32>>2])&&(v=+s[a+92>>2])*v+(y=+s[a+96>>2])*y+(k=+s[a+100>>2])*k>1.1920928955078125e-7&&(+b(+k*(g=1/(v*v+y*y+k*k)))>.7071067690849304?(T=0,L=-k*g*(I=1/+_(+(k*g*k*g+y*g*y*g))),I*=y*g):(T=-y*g*(L=1/+_(+(v*g*v*g+y*g*y*g))),L*=v*g,I=0),A=.019999999552965164/((M=+mn[15&o[16+(0|o[d>>2])>>2]](d))<(E=+mn[15&o[16+(0|o[l>>2])>>2]](l))?M:E),M<E?(o[a+720>>2]=o[a+168>>2],o[a+724>>2]=o[a+172>>2],o[a+728>>2]=o[a+176>>2],o[a+732>>2]=o[a+180>>2],o[a+736>>2]=o[B+0>>2],o[a+740>>2]=o[B+4>>2],o[a+744>>2]=o[B+8>>2],o[a+748>>2]=o[B+12>>2],o[a+752>>2]=o[R+0>>2],o[a+756>>2]=o[R+4>>2],o[a+760>>2]=o[R+8>>2],o[a+764>>2]=o[R+12>>2],o[a+768>>2]=o[h+0>>2],o[a+772>>2]=o[h+4>>2],o[a+776>>2]=o[h+8>>2],o[a+780>>2]=o[h+12>>2]):(o[a+720>>2]=o[x+0>>2],o[a+724>>2]=o[x+4>>2],o[a+728>>2]=o[x+8>>2],o[a+732>>2]=o[x+12>>2],o[a+736>>2]=o[U+0>>2],o[a+740>>2]=o[U+4>>2],o[a+744>>2]=o[U+8>>2],o[a+748>>2]=o[U+12>>2],o[a+752>>2]=o[ti+0>>2],o[a+756>>2]=o[ti+4>>2],o[a+760>>2]=o[ti+8>>2],o[a+764>>2]=o[ti+12>>2],o[a+768>>2]=o[c+0>>2],o[a+772>>2]=o[c+4>>2],o[a+776>>2]=o[c+8>>2],o[a+780>>2]=o[c+12>>2]),(0|(yi=0|o[i+28>>2]))>0))if(A=A>.39269909262657166?.19634954631328583:.5*A,S=a+516|0,j=a+532|0,C=a+548|0,ai=a+564|0,li=a+580|0,pi=a+596|0,mi=a+612|0,d=a+628|0,w=a+644|0,l=a+660|0,di=a+736|0,bi=a+676|0,vi=a+752|0,wi=a+692|0,_i=a+768|0,(D=I*I+(L*L+T*T))>1.1920928955078125e-7)if(T*=D=+m(+A)/+_(+D),L*=D,I*=D,D=+p(+A),A=+_(+(k*g*k*g+(v*g*v*g+y*g*y*g))),M<E){ki=0;do{ci=v*g*(si=+m(+(Y=6.2831854820251465/+(0|yi)*+(0|ki)*.5))/A)*(ri=L*(-v*g*si)+(I*(Y=+p(+Y))+D*(-k*g*si))-T*(-y*g*si))+(Y*(ui=T*(-k*g*si)+(L*Y+D*(-y*g*si))-I*(-v*g*si))+y*g*si*(K=D*Y-T*(-v*g*si)-L*(-y*g*si)-I*(-k*g*si)))-k*g*si*(ni=I*(-y*g*si)+(T*Y+D*(-v*g*si))-L*(-k*g*si)),q=y*g*si*ni+(k*g*si*K+Y*ri)-v*g*si*ui,si=(fi=k*g*si*ui+(v*g*si*K+Y*ni)-y*g*si*ri)*(2/((ri=Y*K-v*g*si*ni-y*g*si*ui-k*g*si*ri)*ri+(q*q+(fi*fi+ci*ci)))),ui=ci*(2/(ri*ri+(q*q+(fi*fi+ci*ci)))),ni=q*(2/(ri*ri+(q*q+(fi*fi+ci*ci)))),gi=0|o[t+12>>2],K=+s[gi>>2],Y=+s[gi+16>>2],Q=+s[gi+32>>2],Z=+s[gi+4>>2],J=+s[gi+20>>2],ii=+s[gi+36>>2],ei=+s[gi+8>>2],oi=+s[gi+24>>2],hi=+s[gi+40>>2],s[a+168>>2]=(fi*ni+ri*ui)*Q+(Y*(fi*ui-ri*ni)+K*(1-(ci*ui+q*ni))),s[a+172>>2]=(1-(ci*ui+q*ni))*Z+(fi*ui-ri*ni)*J+(fi*ni+ri*ui)*ii,s[a+176>>2]=(1-(ci*ui+q*ni))*ei+(fi*ui-ri*ni)*oi+(fi*ni+ri*ui)*hi,s[a+180>>2]=0,s[a+184>>2]=(ci*ni-ri*si)*Q+(K*(fi*ui+ri*ni)+Y*(1-(fi*si+q*ni))),s[a+188>>2]=(fi*ui+ri*ni)*Z+(1-(fi*si+q*ni))*J+(ci*ni-ri*si)*ii,s[a+192>>2]=(fi*ui+ri*ni)*ei+(1-(fi*si+q*ni))*oi+(ci*ni-ri*si)*hi,s[a+196>>2]=0,s[a+200>>2]=K*(fi*ni-ri*ui)+Y*(ci*ni+ri*si)+Q*(1-(fi*si+ci*ui)),s[a+204>>2]=(fi*ni-ri*ui)*Z+(ci*ni+ri*si)*J+(1-(fi*si+ci*ui))*ii,s[a+208>>2]=(fi*ni-ri*ui)*ei+(ci*ni+ri*si)*oi+(1-(fi*si+ci*ui))*hi,s[a+212>>2]=0,gi=0|o[e+12>>2],o[x+0>>2]=o[gi+0>>2],o[x+4>>2]=o[gi+4>>2],o[x+8>>2]=o[gi+8>>2],o[x+12>>2]=o[gi+12>>2],o[U+0>>2]=o[gi+16>>2],o[U+4>>2]=o[gi+20>>2],o[U+8>>2]=o[gi+24>>2],o[U+12>>2]=o[gi+28>>2],o[ti+0>>2]=o[gi+32>>2],o[ti+4>>2]=o[gi+36>>2],o[ti+8>>2]=o[gi+40>>2],o[ti+12>>2]=o[gi+44>>2],o[c+0>>2]=o[gi+48>>2],o[c+4>>2]=o[gi+52>>2],o[c+8>>2]=o[gi+56>>2],o[c+12>>2]=o[gi+60>>2],gi=0|o[r+20>>2],o[a+480>>2]=17120,o[a+512>>2]=f,o[S+0>>2]=o[a+168>>2],o[S+4>>2]=o[a+172>>2],o[S+8>>2]=o[a+176>>2],o[S+12>>2]=o[a+180>>2],o[j+0>>2]=o[B+0>>2],o[j+4>>2]=o[B+4>>2],o[j+8>>2]=o[B+8>>2],o[j+12>>2]=o[B+12>>2],o[C+0>>2]=o[R+0>>2],o[C+4>>2]=o[R+4>>2],o[C+8>>2]=o[R+8>>2],o[C+12>>2]=o[R+12>>2],o[ai+0>>2]=o[h+0>>2],o[ai+4>>2]=o[h+4>>2],o[ai+8>>2]=o[h+8>>2],o[ai+12>>2]=o[h+12>>2],o[li+0>>2]=o[x+0>>2],o[li+4>>2]=o[x+4>>2],o[li+8>>2]=o[x+8>>2],o[li+12>>2]=o[x+12>>2],o[pi+0>>2]=o[U+0>>2],o[pi+4>>2]=o[U+4>>2],o[pi+8>>2]=o[U+8>>2],o[pi+12>>2]=o[U+12>>2],o[mi+0>>2]=o[ti+0>>2],o[mi+4>>2]=o[ti+4>>2],o[mi+8>>2]=o[ti+8>>2],o[mi+12>>2]=o[ti+12>>2],o[d+0>>2]=o[c+0>>2],o[d+4>>2]=o[c+4>>2],o[d+8>>2]=o[c+8>>2],o[d+12>>2]=o[c+12>>2],o[w+0>>2]=o[a+720>>2],o[w+4>>2]=o[a+724>>2],o[w+8>>2]=o[a+728>>2],o[w+12>>2]=o[a+732>>2],o[l+0>>2]=o[di+0>>2],o[l+4>>2]=o[di+4>>2],o[l+8>>2]=o[di+8>>2],o[l+12>>2]=o[di+12>>2],o[bi+0>>2]=o[vi+0>>2],o[bi+4>>2]=o[vi+4>>2],o[bi+8>>2]=o[vi+8>>2],o[bi+12>>2]=o[vi+12>>2],o[wi+0>>2]=o[_i+0>>2],o[wi+4>>2]=o[_i+4>>2],o[wi+8>>2]=o[_i+8>>2],o[wi+12>>2]=o[_i+12>>2],n[a+708|0]=M<E&1,o[a+712>>2]=gi,Ni(a+88|0,a+168|0,a+480|0,gi,0),yi=0|o[i+28>>2],ki=ki+1|0}while((0|ki)<(0|yi))}else{ki=0;do{si=+m(+(Y=6.2831854820251465/+(0|yi)*+(0|ki)*.5))/A,Y=+p(+Y),gi=0|o[t+12>>2],o[a+168>>2]=o[gi+0>>2],o[a+172>>2]=o[gi+4>>2],o[a+176>>2]=o[gi+8>>2],o[a+180>>2]=o[gi+12>>2],o[B+0>>2]=o[gi+16>>2],o[B+4>>2]=o[gi+20>>2],o[B+8>>2]=o[gi+24>>2],o[B+12>>2]=o[gi+28>>2],o[R+0>>2]=o[gi+32>>2],o[R+4>>2]=o[gi+36>>2],o[R+8>>2]=o[gi+40>>2],o[R+12>>2]=o[gi+44>>2],o[h+0>>2]=o[gi+48>>2],o[h+4>>2]=o[gi+52>>2],o[h+8>>2]=o[gi+56>>2],o[h+12>>2]=o[gi+60>>2],ci=v*g*si*(ri=L*(-v*g*si)+(I*Y+D*(-k*g*si))-T*(-y*g*si))+(Y*(ui=T*(-k*g*si)+(L*Y+D*(-y*g*si))-I*(-v*g*si))+y*g*si*(K=D*Y-T*(-v*g*si)-L*(-y*g*si)-I*(-k*g*si)))-k*g*si*(ni=I*(-y*g*si)+(T*Y+D*(-v*g*si))-L*(-k*g*si)),q=y*g*si*ni+(k*g*si*K+Y*ri)-v*g*si*ui,si=(fi=k*g*si*ui+(v*g*si*K+Y*ni)-y*g*si*ri)*(2/((ri=Y*K-v*g*si*ni-y*g*si*ui-k*g*si*ri)*ri+(q*q+(fi*fi+ci*ci)))),ui=ci*(2/(ri*ri+(q*q+(fi*fi+ci*ci)))),ni=q*(2/(ri*ri+(q*q+(fi*fi+ci*ci)))),gi=0|o[e+12>>2],K=+s[gi>>2],Y=+s[gi+16>>2],Q=+s[gi+32>>2],Z=+s[gi+4>>2],J=+s[gi+20>>2],ii=+s[gi+36>>2],ei=+s[gi+8>>2],oi=+s[gi+24>>2],hi=+s[gi+40>>2],s[a+232>>2]=(fi*ni+ri*ui)*Q+(Y*(fi*ui-ri*ni)+K*(1-(ci*ui+q*ni))),s[a+236>>2]=(1-(ci*ui+q*ni))*Z+(fi*ui-ri*ni)*J+(fi*ni+ri*ui)*ii,s[a+240>>2]=(1-(ci*ui+q*ni))*ei+(fi*ui-ri*ni)*oi+(fi*ni+ri*ui)*hi,s[a+244>>2]=0,s[a+248>>2]=(ci*ni-ri*si)*Q+(K*(fi*ui+ri*ni)+Y*(1-(fi*si+q*ni))),s[a+252>>2]=(fi*ui+ri*ni)*Z+(1-(fi*si+q*ni))*J+(ci*ni-ri*si)*ii,s[a+256>>2]=(fi*ui+ri*ni)*ei+(1-(fi*si+q*ni))*oi+(ci*ni-ri*si)*hi,s[a+260>>2]=0,s[a+264>>2]=K*(fi*ni-ri*ui)+Y*(ci*ni+ri*si)+Q*(1-(fi*si+ci*ui)),s[a+268>>2]=(fi*ni-ri*ui)*Z+(ci*ni+ri*si)*J+(1-(fi*si+ci*ui))*ii,s[a+272>>2]=(fi*ni-ri*ui)*ei+(ci*ni+ri*si)*oi+(1-(fi*si+ci*ui))*hi,s[a+276>>2]=0,gi=0|o[r+20>>2],o[a+480>>2]=17120,o[a+512>>2]=f,o[S+0>>2]=o[a+168>>2],o[S+4>>2]=o[a+172>>2],o[S+8>>2]=o[a+176>>2],o[S+12>>2]=o[a+180>>2],o[j+0>>2]=o[B+0>>2],o[j+4>>2]=o[B+4>>2],o[j+8>>2]=o[B+8>>2],o[j+12>>2]=o[B+12>>2],o[C+0>>2]=o[R+0>>2],o[C+4>>2]=o[R+4>>2],o[C+8>>2]=o[R+8>>2],o[C+12>>2]=o[R+12>>2],o[ai+0>>2]=o[h+0>>2],o[ai+4>>2]=o[h+4>>2],o[ai+8>>2]=o[h+8>>2],o[ai+12>>2]=o[h+12>>2],o[li+0>>2]=o[x+0>>2],o[li+4>>2]=o[x+4>>2],o[li+8>>2]=o[x+8>>2],o[li+12>>2]=o[x+12>>2],o[pi+0>>2]=o[U+0>>2],o[pi+4>>2]=o[U+4>>2],o[pi+8>>2]=o[U+8>>2],o[pi+12>>2]=o[U+12>>2],o[mi+0>>2]=o[ti+0>>2],o[mi+4>>2]=o[ti+4>>2],o[mi+8>>2]=o[ti+8>>2],o[mi+12>>2]=o[ti+12>>2],o[d+0>>2]=o[c+0>>2],o[d+4>>2]=o[c+4>>2],o[d+8>>2]=o[c+8>>2],o[d+12>>2]=o[c+12>>2],o[w+0>>2]=o[a+720>>2],o[w+4>>2]=o[a+724>>2],o[w+8>>2]=o[a+728>>2],o[w+12>>2]=o[a+732>>2],o[l+0>>2]=o[di+0>>2],o[l+4>>2]=o[di+4>>2],o[l+8>>2]=o[di+8>>2],o[l+12>>2]=o[di+12>>2],o[bi+0>>2]=o[vi+0>>2],o[bi+4>>2]=o[vi+4>>2],o[bi+8>>2]=o[vi+8>>2],o[bi+12>>2]=o[vi+12>>2],o[wi+0>>2]=o[_i+0>>2],o[wi+4>>2]=o[_i+4>>2],o[wi+8>>2]=o[_i+8>>2],o[wi+12>>2]=o[_i+12>>2],n[a+708|0]=M<E&1,o[a+712>>2]=gi,Ni(a+88|0,a+168|0,a+480|0,gi,0),yi=0|o[i+28>>2],ki=ki+1|0}while((0|ki)<(0|yi))}else if(M<E){t=0;do{t=t+1|0}while((0|t)<(0|yi))}else{t=0;do{t=t+1|0}while((0|t)<(0|yi))}if(0|n[i+16|0]){if(i=0|o[f+4>>2],0|o[i+748>>2])return(0|(t=0|o[i+740>>2]))==(0|(e=0|o[8+(0|o[f+8>>2])>>2]))?(ht(i,t+4|0,4+(0|o[8+(0|o[f+12>>2])>>2])|0),void(u=a)):(ht(i,4+(0|o[8+(0|o[f+12>>2])>>2])|0,e+4|0),void(u=a));u=a}else u=a},function(i,t,e,r,f){t|=0,e|=0,r|=0,f|=0;var a,c=0,h=0,l=0,d=0,v=0,w=0,y=0,k=0,g=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0,L=0,I=0,A=0,D=0,O=0,R=0,P=0,N=0,B=0,F=0,V=0,U=0,G=0,W=0,z=0,X=0,$=0,H=0,q=0,K=0,Y=0,Q=0,Z=0,J=0,ii=0,ti=0,ei=0,ni=0,ri=0,oi=0,fi=0;if(r=u,u=u+128|0,0|o[(i|=0)+12>>2]){if(V=(A=!!(0|n[i+16|0]))?e:t,A=A?t:e,v=0|o[V+4>>2],a=0|o[A+4>>2],V=0|o[V+12>>2],y=+s[V>>2],D=+s[V+16>>2],T=+s[V+32>>2],C=+s[V+4>>2],g=+s[V+20>>2],k=+s[V+36>>2],w=+s[V+8>>2],d=+s[V+24>>2],E=+s[V+40>>2],R=+s[V+48>>2],P=+s[V+52>>2],N=+s[V+56>>2],V=0|o[A+12>>2],z=+s[V>>2],W=+s[V+16>>2],c=+s[V+32>>2],G=+s[V+4>>2],U=+s[V+20>>2],M=+s[V+36>>2],l=+s[V+8>>2],I=+s[V+24>>2],S=+s[V+40>>2],B=-+s[V+48>>2],O=-+s[V+52>>2],j=-+s[V+56>>2],V=0|o[64+(0|o[v>>2])>>2],L=-+s[a+48>>2],h=-+s[a+52>>2],x=-+s[a+56>>2],s[r+32>>2]=(y*z+D*W+T*c)*L+(y*G+D*U+T*M)*h+(y*l+D*I+T*S)*x,s[r+36>>2]=(C*z+g*W+k*c)*L+(C*G+g*U+k*M)*h+(C*l+g*I+k*S)*x,s[r+40>>2]=(w*z+d*W+E*c)*L+(w*G+d*U+E*M)*h+(w*l+d*I+E*S)*x,s[r+44>>2]=0,Pn[63&V](r+48|0,v,r+32|0),c=R*z+P*W+N*c+(z*B+W*O+c*j)+((y*z+D*W+T*c)*(x=+s[r+48>>2])+(C*z+g*W+k*c)*(h=+s[r+52>>2])+(w*z+d*W+E*c)*(L=+s[r+56>>2])),M=R*G+P*U+N*M+(G*B+U*O+M*j)+((y*G+D*U+T*M)*x+(C*G+g*U+k*M)*h+(w*G+d*U+E*M)*L),L=R*l+P*I+N*S+(l*B+I*O+S*j)+((y*l+D*I+T*S)*x+(C*l+g*I+k*S)*h+(w*l+d*I+E*S)*L),S=+s[a+48>>2],E=+s[a+52>>2],d=(I=+s[a+56>>2])*L+(S*c+E*M)-+s[a+64>>2],V=0|o[A+12>>2],l=+s[V>>2],w=+s[V+4>>2],h=+s[V+8>>2],k=+s[V+16>>2],g=+s[V+20>>2],C=+s[V+24>>2],x=+s[V+32>>2],T=+s[V+36>>2],D=+s[V+40>>2],y=+s[V+48>>2],j=+s[V+52>>2],O=+s[V+56>>2],V=0|o[i+12>>2],F=d<+s[V+752>>2],o[f+4>>2]=V,F&&(V=0|o[A+12>>2],W=S*+s[V+16>>2]+E*+s[V+20>>2]+I*+s[V+24>>2],z=S*+s[V+32>>2]+E*+s[V+36>>2]+I*+s[V+40>>2],s[r+16>>2]=+s[V>>2]*S+ +s[V+4>>2]*E+ +s[V+8>>2]*I,s[r+20>>2]=W,s[r+24>>2]=z,s[r+28>>2]=0,s[r>>2]=h*(L-I*d)+(l*(c-S*d)+w*(M-E*d))+y,s[r+4>>2]=(c-S*d)*k+(M-E*d)*g+(L-I*d)*C+j,s[r+8>>2]=(c-S*d)*x+(M-E*d)*T+(L-I*d)*D+O,s[r+12>>2]=0,Rn[15&o[16+(0|o[f>>2])>>2]](f,r+16|0,r,d)),(0|o[v+4>>2])<7&&(0|o[748+(0|o[f+4>>2])>>2])<(0|o[i+24>>2])&&(h=+s[a+56>>2],+b(+h)>.7071067690849304?(z=+s[a+52>>2],c=0,h=-h*(l=1/+_(+(h*h+z*z))),l*=z):(l=+s[a+48>>2],c=-(c=+s[a+52>>2])*(h=1/+_(+(l*l+c*c))),h*=l,l=0),z=.019999999552965164/+mn[15&o[16+(0|o[v>>2])>>2]](v),d=+_(+(l*l+(h*h+c*c))),c*=d=+m(+(z=z>.39269909262657166?.19634954631328583:.5*z))/d,h*=d,d*=l,l=+p(+z),(0|(A=0|o[i+20>>2]))>0)){v=0;do{y=+s[a+48>>2],z=+s[a+52>>2],O=(w=+s[a+56>>2])*(W=+m(+(M=6.2831854820251465/+(0|A)*+(0|v)*.5))/+_(+(y*y+z*z+w*w)))*(g=c*(-w*W)+(h*(M=+p(+M))+l*(-z*W))-d*(-y*W))+(y*W*(L=l*M-c*(-y*W)-h*(-z*W)-d*(-w*W))+M*(T=d*(-z*W)+(c*M+l*(-y*W))-h*(-w*W)))-z*W*(oi=h*(-y*W)+(d*M+l*(-w*W))-c*(-z*W)),D=y*W*oi+(M*g+z*W*L)-w*W*T,ti=z*W*T+(w*W*L+M*oi)-y*W*g,oi=M*L-y*W*T-z*W*g-w*W*oi,J=(A=!!(0|n[i+16|0]))?e:t,A=A?t:e,V=0|o[J+4>>2],F=0|o[A+4>>2],J=0|o[J+12>>2],W=+s[J>>2],w=+s[J+4>>2],g=+s[J+8>>2],z=+s[J+16>>2],T=+s[J+20>>2],y=+s[J+24>>2],L=+s[J+32>>2],M=+s[J+36>>2],N=+s[J+40>>2],q=+s[J+48>>2],H=+s[J+52>>2],$=+s[J+56>>2],J=0|o[A+12>>2],Z=+s[J>>2],Q=+s[J+16>>2],j=+s[J+32>>2],Y=+s[J+4>>2],K=+s[J+20>>2],x=+s[J+36>>2],k=+s[J+8>>2],R=+s[J+24>>2],P=+s[J+40>>2],X=-+s[J+48>>2],U=-+s[J+52>>2],G=-+s[J+56>>2],ni=g*(O*(fi=ti*(2/(O*O+D*D+ti*ti+oi*oi)))-oi*(B=D*(2/(O*O+D*D+ti*ti+oi*oi))))+(w*(O*B+oi*fi)+W*(1-(D*B+ti*fi))),ii=g*(D*fi+oi*(C=O*(2/(O*O+D*D+ti*ti+oi*oi))))+(W*(O*B-oi*fi)+w*(1-(O*C+ti*fi))),E=W*(O*fi+oi*B)+w*(D*fi-oi*C)+g*(1-(O*C+D*B)),ei=y*(O*fi-oi*B)+(T*(O*B+oi*fi)+z*(1-(D*B+ti*fi))),I=y*(D*fi+oi*C)+(z*(O*B-oi*fi)+T*(1-(O*C+ti*fi))),S=z*(O*fi+oi*B)+T*(D*fi-oi*C)+y*(1-(O*C+D*B)),ri=N*(O*fi-oi*B)+(M*(O*B+oi*fi)+L*(1-(D*B+ti*fi))),ti=N*(D*fi+oi*C)+(L*(O*B-oi*fi)+M*(1-(O*C+ti*fi))),B=L*(O*fi+oi*B)+M*(D*fi-oi*C)+N*(1-(O*C+D*B)),J=0|o[64+(0|o[V>>2])>>2],D=-+s[F+48>>2],C=-+s[F+52>>2],O=-+s[F+56>>2],s[r+96>>2]=(P*ri+(k*ni+R*ei))*O+((j*ri+(Z*ni+Q*ei))*D+(x*ri+(Y*ni+K*ei))*C),s[r+100>>2]=(P*ti+(k*ii+R*I))*O+((j*ti+(Z*ii+Q*I))*D+(x*ti+(Y*ii+K*I))*C),s[r+104>>2]=(P*B+(k*E+R*S))*O+((j*B+(Z*E+Q*S))*D+(x*B+(Y*E+K*S))*C),s[r+108>>2]=0,Pn[63&J](r+112|0,V,r+96|0),C=+s[r+112>>2],S=+s[r+116>>2],E=+s[r+120>>2],B=+s[F+48>>2],D=+s[F+52>>2],j=q*Z+H*Q+$*j+(Z*X+Q*U+j*G)+((W*Z+z*Q+L*j)*C+(w*Z+T*Q+M*j)*S+(g*Z+y*Q+N*j)*E)-B*(I=(O=+s[F+56>>2])*(q*k+H*R+$*P+(k*X+R*U+P*G)+((W*k+z*R+L*P)*C+(w*k+T*R+M*P)*S+(g*k+y*R+N*P)*E))+(B*(q*Z+H*Q+$*j+(Z*X+Q*U+j*G)+((W*Z+z*Q+L*j)*C+(w*Z+T*Q+M*j)*S+(g*Z+y*Q+N*j)*E))+D*(q*Y+H*K+$*x+(Y*X+K*U+x*G)+((W*Y+z*K+L*x)*C+(w*Y+T*K+M*x)*S+(g*Y+y*K+N*x)*E)))-+s[F+64>>2]),x=q*Y+H*K+$*x+(Y*X+K*U+x*G)+((W*Y+z*K+L*x)*C+(w*Y+T*K+M*x)*S+(g*Y+y*K+N*x)*E)-D*I,E=q*k+H*R+$*P+(k*X+R*U+P*G)+((W*k+z*R+L*P)*C+(w*k+T*R+M*P)*S+(g*k+y*R+N*P)*E)-O*I,F=0|o[A+12>>2],P=+s[F>>2],N=+s[F+4>>2],R=+s[F+8>>2],y=+s[F+16>>2],k=+s[F+20>>2],g=+s[F+24>>2],S=+s[F+32>>2],M=+s[F+36>>2],T=+s[F+40>>2],w=+s[F+48>>2],C=+s[F+52>>2],L=+s[F+56>>2],F=0|o[i+12>>2],V=I<+s[F+752>>2],o[f+4>>2]=F,V&&(J=0|o[A+12>>2],oi=B*+s[J+16>>2]+D*+s[J+20>>2]+O*+s[J+24>>2],fi=B*+s[J+32>>2]+D*+s[J+36>>2]+O*+s[J+40>>2],s[r+80>>2]=+s[J>>2]*B+ +s[J+4>>2]*D+ +s[J+8>>2]*O,s[r+84>>2]=oi,s[r+88>>2]=fi,s[r+92>>2]=0,s[r+64>>2]=R*E+(P*j+N*x)+w,s[r+68>>2]=j*y+x*k+E*g+C,s[r+72>>2]=j*S+x*M+E*T+L,s[r+76>>2]=0,Rn[15&o[16+(0|o[f>>2])>>2]](f,r+80|0,r+64|0,I)),v=v+1|0,A=0|o[i+20>>2]}while((0|v)<(0|A))}if(0|n[i+8|0])if(0|o[748+(0|o[i+12>>2])>>2]){if(i=0|o[f+4>>2],0|o[i+748>>2])return(0|(t=0|o[i+740>>2]))==(0|(e=0|o[8+(0|o[f+8>>2])>>2]))?(ht(i,t+4|0,4+(0|o[8+(0|o[f+12>>2])>>2])|0),void(u=r)):(ht(i,4+(0|o[8+(0|o[f+12>>2])>>2])|0,e+4|0),void(u=r));u=r}else u=r;else u=r}else u=r},function(i,t,e,r,f){return i|=0,e|=0,r|=0,f|=0,f=u,(0|o[(t|=0)+8>>2])==(0|i)?((0|o[t+4>>2])!=(0|e)||1==(0|o[t+28>>2])||(o[t+28>>2]=r),void(u=f)):(0|o[t>>2])==(0|i)?(0|o[t+16>>2])!=(0|e)&&(0|o[t+20>>2])!=(0|e)?(o[t+32>>2]=r,o[t+20>>2]=e,o[t+40>>2]=1+(0|o[t+40>>2]),1==(0|o[t+36>>2])&&2==(0|o[t+24>>2])&&(n[t+54|0]=1),o[t+44>>2]=4,void(u=f)):void(1==(0|r)?(o[t+32>>2]=1,u=f):u=f):void(u=f)},function(i,t,e,r,f){e|=0,r|=0,f|=0;var a,s=0;if(a=u,(0|(i|=0))==(0|o[(t|=0)+8>>2]))return(0|o[t+4>>2])!=(0|e)||1==(0|o[t+28>>2])||(o[t+28>>2]=r),void(u=a);if((0|i)!=(0|o[t>>2]))return i=0|o[i+8>>2],tn[31&o[24+(0|o[i>>2])>>2]](i,t,e,r,f),void(u=a);if((0|o[t+16>>2])!=(0|e)&&(0|o[t+20>>2])!=(0|e)){if(o[t+32>>2]=r,4==(0|o[t+44>>2]))return void(u=a);n[t+52|0]=0,n[t+53|0]=0,i=0|o[i+8>>2],wn[7&o[20+(0|o[i>>2])>>2]](i,t,e,e,1,f),0|n[t+53|0]?0|n[t+52|0]||(r=1,s=13):(r=0,s=13);do{if(13==(0|s)){if(o[t+20>>2]=e,o[t+40>>2]=1+(0|o[t+40>>2]),1==(0|o[t+36>>2])&&2==(0|o[t+24>>2])){if(n[t+54|0]=1,r)break}else s=16;if(16==(0|s)&&r)break;return o[t+44>>2]=4,void(u=a)}}while(0);return o[t+44>>2]=3,void(u=a)}1==(0|r)?(o[t+32>>2]=1,u=a):u=a},function(i,t,e,r,f){e|=0,r|=0,f|=0;var a,s=0,c=0,h=0,l=0,d=0,v=0,b=0,_=0,w=0;if(a=u,(0|(i|=0))==(0|o[(t|=0)+8>>2]))return(0|o[t+4>>2])!=(0|e)||1==(0|o[t+28>>2])||(o[t+28>>2]=r),void(u=a);if((0|i)==(0|o[t>>2])){if((0|o[t+16>>2])!=(0|e)&&(0|o[t+20>>2])!=(0|e)){if(o[t+32>>2]=r,4==(0|o[t+44>>2]))return void(u=a);h=0|o[i+12>>2];i:do{if((0|h)>0){v=0,l=0,d=i+16|0;t:do{if(n[t+52|0]=0,n[t+53|0]=0,_=1&(b=0|o[d+4>>2])?0|o[(0|o[e>>2])+(b>>8)>>2]:b>>8,w=0|o[d>>2],wn[7&o[20+(0|o[w>>2])>>2]](w,t,e,e+_|0,2-(b>>>1&1)|0,f),0|n[t+54|0])break;do{if(0|n[t+53|0]){if(!(0|n[t+52|0])){if(1&o[i+8>>2]){l=1;break}l=1;break t}if(1==(0|o[t+24>>2])){h=27;break i}if(!(2&o[i+8>>2])){h=27;break i}v=1,l=1}}while(0);d=d+8|0}while(d>>>0<(i+(h<<3)+16|0)>>>0);v?(c=l,h=26):(s=l,h=23)}else s=0,h=23}while(0);if(23==(0|h)&&(o[t+20>>2]=e,o[t+40>>2]=1+(0|o[t+40>>2]),1==(0|o[t+36>>2])&&2==(0|o[t+24>>2])?(n[t+54|0]=1,h=s?27:28):(c=s,h=26)),26==(0|h)&&(h=c?27:28),27==(0|h))return o[t+44>>2]=3,void(u=a);if(28==(0|h))return o[t+44>>2]=4,void(u=a)}return 1!=(0|r)||(o[t+32>>2]=1),void(u=a)}if(s=0|o[i+12>>2],c=1&(h=0|o[i+20>>2])?0|o[(0|o[e>>2])+(h>>8)>>2]:h>>8,w=0|o[i+16>>2],tn[31&o[24+(0|o[w>>2])>>2]](w,t,e+c|0,2&h?r:2,f),(0|s)<=1)u=a;else{if(!(2&(c=0|o[i+8>>2]))&&1!=(0|o[t+36>>2])){if(!(1&c)){for(c=i+24|0;;){if(0|n[t+54|0]){h=53;break}if(1==(0|o[t+36>>2])){h=53;break}if(l=1&(h=0|o[c+4>>2])?0|o[(0|o[e>>2])+(h>>8)>>2]:h>>8,w=0|o[c>>2],tn[31&o[24+(0|o[w>>2])>>2]](w,t,e+l|0,2&h?r:2,f),!((c=c+8|0)>>>0<(i+(s<<3)+16|0)>>>0)){h=53;break}}if(53==(0|h))return void(u=a)}for(l=i+24|0;;){if(0|n[t+54|0]){h=53;break}if(1==(0|o[t+36>>2])&&1==(0|o[t+24>>2])){h=53;break}if(c=1&(h=0|o[l+4>>2])?0|o[(0|o[e>>2])+(h>>8)>>2]:h>>8,w=0|o[l>>2],tn[31&o[24+(0|o[w>>2])>>2]](w,t,e+c|0,2&h?r:2,f),!((l=l+8|0)>>>0<(i+(s<<3)+16|0)>>>0)){h=53;break}}if(53==(0|h))return void(u=a)}for(l=i+24|0;;){if(0|n[t+54|0]){h=53;break}if(h=1&(c=0|o[l+4>>2])?0|o[(0|o[e>>2])+(c>>8)>>2]:c>>8,w=0|o[l>>2],tn[31&o[24+(0|o[w>>2])>>2]](w,t,e+h|0,2&c?r:2,f),!((l=l+8|0)>>>0<(i+(s<<3)+16|0)>>>0)){h=53;break}}53!=(0|h)||(u=a)}},Te,Te,Te,Te,Te,Te,Te,Te,Te,Te,Te,Te,Te],en=[Le,function(i,t){i|=0,t=+t;var e,r=0,f=0,a=0,c=0,h=0,l=0,d=0,v=0,b=0,p=0,m=0,y=0;if(e=u,u=u+16|0,It(1696),(0|(y=0|o[i+232>>2]))>0){r=0;do{if(f=0|o[(0|o[i+240>>2])+(r<<2)>>2],!(3&o[f+204>>2])){c=+s[f+444>>2],b=(d=+w(+(1-c),+t))*+s[f+312>>2],s[f+312>>2]=b,l=d*+s[f+316>>2],s[f+316>>2]=l,d*=+s[f+320>>2],s[f+320>>2]=d,a=+s[f+448>>2],h=(p=+w(+(1-a),+t))*+s[f+328>>2],s[f+328>>2]=h,v=p*+s[f+332>>2],s[f+332>>2]=v,p*=+s[f+336>>2],s[f+336>>2]=p;do{if(0|n[f+452|0]){p*p+(h*h+v*v)<+s[f+464>>2]&&b*b+l*l+d*d<+s[f+460>>2]&&(m=+s[f+456>>2],s[f+328>>2]=h*m,s[f+332>>2]=m*v,s[f+336>>2]=m*p,s[f+312>>2]=m*b,s[f+316>>2]=m*l,s[f+320>>2]=m*d,b*=m,l*=m,d*=m,h*=m,v*=m,p*=m),m=+_(+(b*b+l*l+d*d));do{if(m<c){if(m>.004999999888241291){b-=b*(1/m)*.004999999888241291,s[f+312>>2]=b,l-=l*(1/m)*.004999999888241291,s[f+316>>2]=l,d-=d*(1/m)*.004999999888241291,s[f+320>>2]=d;break}o[f+312>>2]=0,o[f+316>>2]=0,o[f+320>>2]=0,o[f+324>>2]=0,b=0,l=0,d=0;break}}while(0);if((c=+_(+(h*h+v*v+p*p)))<a){if(c>.004999999888241291){s[f+328>>2]=h-h*(1/c)*.004999999888241291,s[f+332>>2]=v-v*(1/c)*.004999999888241291,s[f+336>>2]=p-p*(1/c)*.004999999888241291;break}o[f+328>>2]=0,o[f+332>>2]=0,o[f+336>>2]=0,o[f+340>>2]=0;break}}}while(0);bt(f+4|0,b,l,d,f+328|0,t,f+68|0),y=0|o[i+232>>2]}r=r+1|0}while((0|r)<(0|y))}if(i=0|o[4564],y=(0|o[i+16>>2])-1|0,o[i+16>>2]=y,0|y)u=e;else{do{if(0|o[i+4>>2]){if(G(0|e,0),y=0|o[4550],s[i+8>>2]=+(((0|o[e+4>>2])-(0|o[y+4>>2])+(1e6*((0|o[e>>2])-(0|o[y>>2])|0)|0)-(0|o[i+12>>2])|0)>>>0)/1e3+ +s[i+8>>2],0|o[i+16>>2])return void(u=e);i=0|o[4564];break}}while(0);o[4564]=o[i+20>>2],u=e}},function(i,t){i|=0,t=+t;var e,f=0,a=0,c=0,h=0,l=0,d=0,v=0,b=0,_=0,w=0,p=0,m=0,y=0,k=0,g=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0,L=0;if(e=u,u=u+352|0,It(1608),(0|o[i+232>>2])>0){_=e+232|0,d=0;do{v=0|o[(0|o[i+240>>2])+(d<<2)>>2],s[v+244>>2]=1,x=0|o[v+216>>2];do{if(!(2==(0|x)|5==(0|x))&&!(3&o[v+204>>2])){if(bt(v+4|0,+s[v+312>>2],+s[v+316>>2],+s[v+320>>2],v+328|0,t,e+184|0),T=+s[_>>2]-+s[v+52>>2],E=+s[e+236>>2]-+s[v+56>>2],M=+s[e+240>>2]-+s[v+60>>2],0|n[i+44|0]&&((L=+s[v+252>>2])*L!=0&&L*L<T*T+E*E+M*M)){It(1632),(0|o[4+(0|o[v+192>>2])>>2])<20?(o[374]=1+(0|o[374]),S=0|o[i+68>>2],S=0|an[127&o[36+(0|o[S>>2])>>2]](S),x=0|o[i+24>>2],s[e+252>>2]=1,r[e+256>>1]=1,r[e+258>>1]=-1,o[e+248>>2]=2104,o[e+260>>2]=o[v+52>>2],o[e+264>>2]=o[v+56>>2],o[e+268>>2]=o[v+60>>2],o[e+272>>2]=o[v+64>>2],o[e+276>>2]=o[_+0>>2],o[e+280>>2]=o[_+4>>2],o[e+284>>2]=o[_+8>>2],o[e+288>>2]=o[_+12>>2],o[e+324>>2]=0,o[e+248>>2]=1896,o[e+328>>2]=v,s[e+332>>2]=0,o[e+336>>2]=S,o[e+340>>2]=x,M=+s[v+248>>2],o[e+136>>2]=0,s[e+140>>2]=1,s[e+144>>2]=1,s[e+148>>2]=1,s[e+152>>2]=0,o[e+128>>2]=15008,o[e+132>>2]=8,s[e+156>>2]=M,s[e+172>>2]=M,s[e+332>>2]=+s[i+56>>2],x=0|o[v+188>>2],r[e+256>>1]=0|r[x+4>>1],r[e+258>>1]=0|r[x+6>>1],o[e+112>>2]=o[_+0>>2],o[e+116>>2]=o[_+4>>2],o[e+120>>2]=o[_+8>>2],o[e+124>>2]=o[_+12>>2],o[e+64>>2]=o[v+4>>2],o[e+68>>2]=o[v+8>>2],o[e+72>>2]=o[v+12>>2],o[e+76>>2]=o[v+16>>2],o[e+80>>2]=o[v+20>>2],o[e+84>>2]=o[v+24>>2],o[e+88>>2]=o[v+28>>2],o[e+92>>2]=o[v+32>>2],o[e+96>>2]=o[v+36>>2],o[e+100>>2]=o[v+40>>2],o[e+104>>2]=o[v+44>>2],o[e+108>>2]=o[v+48>>2],zi(i,e+128|0,v+4|0,e+64|0,e+248|0),(M=+s[e+252>>2])<1?(s[v+244>>2]=M,bt(v+4|0,+s[v+312>>2],+s[v+316>>2],+s[v+320>>2],v+328|0,M*t,e+184|0),s[v+244>>2]=0,Gt(v,e+184|0),w=4):w=0,0|w||(b=11)):b=11,11==(0|b)&&(b=0,w=0),p=0|o[4564],x=(0|o[p+16>>2])-1|0,o[p+16>>2]=x;do{if(!(0|x)){if(0|o[p+4>>2]){if(G(e+248|0,0),x=0|o[4550],s[p+8>>2]=+(((0|o[e+252>>2])-(0|o[x+4>>2])+(1e6*((0|o[e+248>>2])-(0|o[x>>2])|0)|0)-(0|o[p+12>>2])|0)>>>0)/1e3+ +s[p+8>>2],0|o[p+16>>2])break;p=0|o[4564]}o[4564]=o[p+20>>2]}}while(0);if(4==(0|w))break}Gt(v,e+184|0)}}while(0);d=d+1|0}while((0|d)<(0|o[i+232>>2]))}do{if(0|n[i+275|0]){if(It(1656),(0|(_=0|o[i+308>>2]))>0){d=0;do{if(v=0|o[(0|o[i+316>>2])+(d<<2)>>2],C=0|o[v+740>>2],2&o[C+236>>2]||(C=0),b=0|o[v+744>>2],2&o[b+236>>2]||(b=0),(0|(S=0|o[v+748>>2]))>0){if(p=C+52|0,w=C+56|0,_=C+60|0,k=b+52|0,m=b+56|0,y=b+60|0,g=!(0|b),0|C){S=C+228|0,x=b+228|0,j=0;do{(t=+s[S>>2]*+s[x>>2])>0&&0!=(l=+s[v+(184*j|0)+124>>2])&&(T=-t*l*+s[v+(184*j|0)+72>>2],L=-t*l*+s[v+(184*j|0)+76>>2],s[e+48>>2]=-t*l*+s[v+(184*j|0)+68>>2],s[e+52>>2]=T,s[e+56>>2]=L,s[e+60>>2]=0,L=+s[v+(184*j|0)+56>>2]-+s[w>>2],T=+s[v+(184*j|0)+60>>2]-+s[_>>2],s[e+32>>2]=+s[v+(184*j|0)+52>>2]-+s[p>>2],s[e+36>>2]=L,s[e+40>>2]=T,s[e+44>>2]=0,T=+s[v+(184*j|0)+40>>2]-+s[m>>2],L=+s[v+(184*j|0)+44>>2]-+s[y>>2],s[e+16>>2]=+s[v+(184*j|0)+36>>2]-+s[k>>2],s[e+20>>2]=T,s[e+24>>2]=L,s[e+28>>2]=0,Zi(C,e+48|0,e+32|0),!g)&&(T=-+s[e+52>>2],L=-+s[e+56>>2],s[e>>2]=-+s[e+48>>2],s[e+4>>2]=T,s[e+8>>2]=L,s[e+12>>2]=0,Zi(b,e,e+16|0)),j=j+1|0}while((0|j)<(0|o[v+748>>2]))}else{C=b+228|0,j=0;do{(t=+s[57]*+s[C>>2])>0&&0!=(f=+s[v+(184*j|0)+124>>2])&&(a=t*f*+s[v+(184*j|0)+68>>2],c=t*f*+s[v+(184*j|0)+72>>2],h=t*f*+s[v+(184*j|0)+76>>2],s[e+48>>2]=-a,s[e+52>>2]=-c,s[e+56>>2]=-h,s[e+60>>2]=0,L=+s[v+(184*j|0)+56>>2]-+s[w>>2],T=+s[v+(184*j|0)+60>>2]-+s[_>>2],s[e+32>>2]=+s[v+(184*j|0)+52>>2]-+s[p>>2],s[e+36>>2]=L,s[e+40>>2]=T,s[e+44>>2]=0,T=+s[v+(184*j|0)+40>>2]-+s[m>>2],L=+s[v+(184*j|0)+44>>2]-+s[y>>2],s[e+16>>2]=+s[v+(184*j|0)+36>>2]-+s[k>>2],s[e+20>>2]=T,s[e+24>>2]=L,s[e+28>>2]=0,!g)&&(s[e>>2]=a,s[e+4>>2]=c,s[e+8>>2]=h,s[e+12>>2]=0,Zi(b,e,e+16|0),S=0|o[v+748>>2]),j=j+1|0}while((0|j)<(0|S))}_=0|o[i+308>>2]}d=d+1|0}while((0|d)<(0|_))}if(i=0|o[4564],x=(0|o[i+16>>2])-1|0,o[i+16>>2]=x,!(0|x)){if(0|o[i+4>>2]){if(G(e+248|0,0),x=0|o[4550],s[i+8>>2]=+(((0|o[e+252>>2])-(0|o[x+4>>2])+(1e6*((0|o[e+248>>2])-(0|o[x>>2])|0)|0)-(0|o[i+12>>2])|0)>>>0)/1e3+ +s[i+8>>2],0|o[i+16>>2])break;i=0|o[4564]}o[4564]=o[i+20>>2]}}}while(0);if(i=0|o[4564],x=(0|o[i+16>>2])-1|0,o[i+16>>2]=x,0|x)u=e;else{do{if(0|o[i+4>>2]){if(G(e+248|0,0),x=0|o[4550],s[i+8>>2]=+(((0|o[e+252>>2])-(0|o[x+4>>2])+(1e6*((0|o[e+248>>2])-(0|o[x>>2])|0)|0)-(0|o[i+12>>2])|0)>>>0)/1e3+ +s[i+8>>2],0|o[i+16>>2])return void(u=e);i=0|o[4564];break}}while(0);o[4564]=o[i+20>>2],u=e}},function(i,t){i|=0,t=+t;var e,r=0,f=0,a=0,c=0,h=0,l=0,d=0,v=0,b=0;if(e=u,u=u+16|0,It(1416),(0|o[i+232>>2])>0){r=!(0|n[3200]),f=0;do{c=0|o[(0|o[i+240>>2])+(f<<2)>>2];i:do{if(0|c){h=0|o[c+216>>2];do{if(4==(0|h)|2==(0|h))a=10;else{if((b=+s[c+312>>2])*b+(v=+s[c+316>>2])*v+(d=+s[c+320>>2])*d<(l=+s[c+472>>2])*l&&(l=+s[c+328>>2])*l+(d=+s[c+332>>2])*d+(v=+s[c+336>>2])*v<(b=+s[c+476>>2])*b){s[c+220>>2]=+s[c+220>>2]+t,a=10;break}s[c+220>>2]=0,(h+-4|0)>>>0<2?a=10:(o[c+216>>2]=0,h=0)}}while(0);if(10==(0|a)&&(a=0,4==(0|h)))break;do{if(r){if(!((h+-2|0)>>>0<2)&&!(+s[c+220>>2]>2))break;if(3&o[c+204>>2]){if((h+-4|0)>>>0<2)break i;o[c+216>>2]=2;break i}if(1==(0|h)){o[c+216>>2]=3;break i}if(2!=(0|h))break i;h=2+(0|o[c+260>>2])|0,o[c+328>>2]=0,o[c+332>>2]=0,o[c+336>>2]=0,o[c+340>>2]=0,o[c+260>>2]=h,o[c+312>>2]=0,o[c+316>>2]=0,o[c+320>>2]=0,o[c+324>>2]=0;break i}}while(0);(h+-4|0)>>>0<2||(o[c+216>>2]=1)}}while(0);f=f+1|0}while((0|f)<(0|o[i+232>>2]))}if(i=0|o[4564],h=(0|o[i+16>>2])-1|0,o[i+16>>2]=h,0|h)u=e;else{do{if(0|o[i+4>>2]){if(G(0|e,0),h=0|o[4550],s[i+8>>2]=+(((0|o[e+4>>2])-(0|o[h+4>>2])+(1e6*((0|o[e>>2])-(0|o[h>>2])|0)|0)-(0|o[i+12>>2])|0)>>>0)/1e3+ +s[i+8>>2],0|o[i+16>>2])return void(u=e);i=0|o[4564];break}}while(0);o[4564]=o[i+20>>2],u=e}},function(i,t){i|=0,t=+t;var e,f=0,a=0,c=0,h=0,l=0,d=0,v=0,b=0,_=0,w=0,p=0,m=0,y=0,k=0,g=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0,L=0,I=0,A=0,D=0,O=0,R=0,P=0,N=0,B=0,F=0,V=0;if(e=u,u=u+464|0,It(1368),0|(b=0|o[i+84>>2])&&en[31&b](i,t),en[31&o[140+(0|o[i>>2])>>2]](i,t),s[i+28>>2]=t,o[i+32>>2]=0,o[i+48>>2]=0|an[127&o[20+(0|o[i>>2])>>2]](i),It(1504),It(1536),_=0|o[i+316>>2],(0|o[i+308>>2])>0){b=0;do{E=0|o[i+24>>2],on[127&o[16+(0|o[E>>2])>>2]](E,0|o[_+(b<<2)>>2]),b=b+1|0,_=0|o[i+316>>2]}while((0|b)<(0|o[i+308>>2]))}0|_&&(0|n[i+320|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[_+-4>>2])),o[i+316>>2]=0),n[i+320|0]=1,o[i+316>>2]=0,o[i+308>>2]=0,o[i+312>>2]=0,b=0|o[4564],E=(0|o[b+16>>2])-1|0,o[b+16>>2]=E;do{if(!(0|E)){if(0|o[b+4>>2]){if(G(e+280|0,0),E=0|o[4550],s[b+8>>2]=+(((0|o[e+284>>2])-(0|o[E+4>>2])+(1e6*((0|o[e+280>>2])-(0|o[E>>2])|0)|0)-(0|o[b+12>>2])|0)>>>0)/1e3+ +s[b+8>>2],0|o[b+16>>2])break;b=0|o[4564]}o[4564]=o[b+20>>2]}}while(0);if((0|o[i+232>>2])>0){b=e+264|0,p=e+164|0,w=e+400|0,_=0;do{m=0|o[(0|o[i+240>>2])+(_<<2)>>2],s[m+244>>2]=1,E=0|o[m+216>>2];do{if(!(2==(0|E)|5==(0|E)||3&o[m+204>>2])&&(bt(m+4|0,+s[m+312>>2],+s[m+316>>2],+s[m+320>>2],m+328|0,t,e+216|0),f=(h=+s[b>>2])-+s[m+52>>2],a=(l=+s[e+268>>2])-+s[m+56>>2],c=(d=+s[e+272>>2])-+s[m+60>>2],0|n[i+44|0])&&((j=+s[m+252>>2])*j!=0&&j*j<f*f+a*a+c*c)){if(It(1576),(0|o[4+(0|o[m+192>>2])>>2])<20&&(o[374]=1+(0|o[374]),M=0|o[i+68>>2],M=0|an[127&o[36+(0|o[M>>2])>>2]](M),E=0|o[i+24>>2],s[e+124>>2]=1,r[e+128>>1]=1,r[e+130>>1]=-1,o[e+120>>2]=2104,o[e+132>>2]=o[m+52>>2],o[e+136>>2]=o[m+56>>2],o[e+140>>2]=o[m+60>>2],o[e+144>>2]=o[m+64>>2],o[e+148>>2]=o[b+0>>2],o[e+152>>2]=o[b+4>>2],o[e+156>>2]=o[b+8>>2],o[e+160>>2]=o[b+12>>2],o[e+196>>2]=0,o[e+120>>2]=1896,o[e+200>>2]=m,s[e+204>>2]=0,o[e+208>>2]=M,o[e+212>>2]=E,g=+s[m+248>>2],o[e+72>>2]=0,s[e+76>>2]=1,s[e+80>>2]=1,s[e+84>>2]=1,s[e+88>>2]=0,o[e+64>>2]=15008,o[e+68>>2]=8,s[e+92>>2]=g,s[e+108>>2]=g,s[e+204>>2]=+s[i+56>>2],E=0|o[m+188>>2],r[e+128>>1]=0|r[E+4>>1],r[e+130>>1]=0|r[E+6>>1],o[e+48>>2]=o[b+0>>2],o[e+52>>2]=o[b+4>>2],o[e+56>>2]=o[b+8>>2],o[e+60>>2]=o[b+12>>2],o[e+0>>2]=o[m+4>>2],o[e+4>>2]=o[m+8>>2],o[e+8>>2]=o[m+12>>2],o[e+12>>2]=o[m+16>>2],o[e+16>>2]=o[m+20>>2],o[e+20>>2]=o[m+24>>2],o[e+24>>2]=o[m+28>>2],o[e+28>>2]=o[m+32>>2],o[e+32>>2]=o[m+36>>2],o[e+36>>2]=o[m+40>>2],o[e+40>>2]=o[m+44>>2],o[e+44>>2]=o[m+48>>2],zi(i,e+64|0,m+4|0,e,e+120|0),(g=+s[e+124>>2])<1)){if(k=g*(h-+s[m+52>>2]),y=g*(l-+s[m+56>>2]),g*=d-+s[m+60>>2],j=-y*+s[e+168>>2]-k*+s[p>>2]-g*+s[e+172>>2],C=0|o[i+24>>2],C=0|_n[31&o[12+(0|o[C>>2])>>2]](C,m,0|o[e+196>>2]),(0|(x=0|o[i+308>>2]))==(0|o[i+312>>2])&&(0|x)<(0|(v=0|x?x<<1:1))){if(0|v?(o[4546]=1+(0|o[4546]),0|(S=0|ye(16+(v<<2|3)|0))?(o[(S+19&-16)-4>>2]=S,S=S+19&-16):S=0,x=0|o[i+308>>2]):S=0,(0|x)>0){M=0;do{0|(E=S+(M<<2)|0)&&(o[E>>2]=o[(0|o[i+316>>2])+(M<<2)>>2]),M=M+1|0}while((0|M)!=(0|x))}0|(M=0|o[i+316>>2])&&(0|n[i+320|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[M+-4>>2]),x=0|o[i+308>>2]),o[i+316>>2]=0),n[i+320|0]=1,o[i+316>>2]=S,o[i+312>>2]=v}0|(S=(0|o[i+316>>2])+(x<<2)|0)&&(o[S>>2]=C),o[i+308>>2]=x+1,T=k+ +s[m+52>>2],k=y+ +s[m+56>>2],g+=+s[m+60>>2],E=0|o[e+196>>2],V=+s[E+4>>2],F=+s[E+20>>2],B=+s[E+36>>2],N=+s[E+8>>2],P=+s[E+24>>2],R=+s[E+40>>2],O=+s[E+12>>2],A=+s[E+28>>2],L=+s[E+44>>2],D=-+s[E+52>>2],I=-+s[E+56>>2],y=-+s[E+60>>2],o[e+280>>2]=0,o[e+284>>2]=0,o[e+288>>2]=0,o[e+292>>2]=0,s[e+296>>2]=T*V+k*F+g*B+(V*D+F*I+B*y),s[e+300>>2]=T*N+k*P+g*R+(N*D+P*I+R*y),s[e+304>>2]=T*O+k*A+g*L+(O*D+A*I+L*y),s[e+308>>2]=0,o[e+344>>2]=o[p+0>>2],o[e+348>>2]=o[p+4>>2],o[e+352>>2]=o[p+8>>2],o[e+356>>2]=o[p+12>>2],s[e+360>>2]=j,s[e+364>>2]=0,s[e+368>>2]=0,s[e+372>>2]=0,o[e+392>>2]=0,n[e+396|0]=0,o[w+0>>2]=0,o[w+4>>2]=0,o[w+8>>2]=0,o[w+12>>2]=0,o[w+16>>2]=0,o[w+20>>2]=0,o[w+24>>2]=0,o[w+28>>2]=0,E=0|ut(C,e+280|0),s[C+(184*E|0)+96>>2]=0,j=(j=+s[m+224>>2]*+s[224+(0|o[e+196>>2])>>2])<-10?-10:j,s[C+(184*E|0)+88>>2]=j>10?10:j,o[C+(184*E|0)+52>>2]=o[m+52>>2],o[C+(184*E|0)+56>>2]=o[m+56>>2],o[C+(184*E|0)+60>>2]=o[m+60>>2],o[C+(184*E|0)+64>>2]=o[m+64>>2],s[C+(184*E|0)+36>>2]=T,s[C+(184*E|0)+40>>2]=k,s[C+(184*E|0)+44>>2]=g,s[C+(184*E|0)+48>>2]=0}if(m=0|o[4564],E=(0|o[m+16>>2])-1|0,o[m+16>>2]=E,!(0|E)){if(0|o[m+4>>2]){if(G(e+280|0,0),E=0|o[4550],s[m+8>>2]=+(((0|o[e+284>>2])-(0|o[E+4>>2])+(1e6*((0|o[e+280>>2])-(0|o[E>>2])|0)|0)-(0|o[m+12>>2])|0)>>>0)/1e3+ +s[m+8>>2],0|o[m+16>>2])break;m=0|o[4564]}o[4564]=o[m+20>>2]}}}while(0);_=_+1|0}while((0|_)<(0|o[i+232>>2]))}v=0|o[4564],E=(0|o[v+16>>2])-1|0,o[v+16>>2]=E;do{if(!(0|E)){if(0|o[v+4>>2]){if(G(e+280|0,0),E=0|o[4550],s[v+8>>2]=+(((0|o[e+284>>2])-(0|o[E+4>>2])+(1e6*((0|o[e+280>>2])-(0|o[E>>2])|0)|0)-(0|o[v+12>>2])|0)>>>0)/1e3+ +s[v+8>>2],0|o[v+16>>2])break;v=0|o[4564]}o[4564]=o[v+20>>2]}}while(0);if(nn[255&o[44+(0|o[i>>2])>>2]](i),nn[255&o[148+(0|o[i>>2])>>2]](i),s[i+104>>2]=t,on[127&o[152+(0|o[i>>2])>>2]](i,i+92|0),en[31&o[144+(0|o[i>>2])>>2]](i,t),It(1400),(0|o[i+280>>2])>0){v=0;do{E=0|o[(0|o[i+288>>2])+(v<<2)>>2],Bn[3&o[8+(0|o[E>>2])>>2]](E,i,t),v=v+1|0}while((0|v)<(0|o[i+280>>2]))}v=0|o[4564],E=(0|o[v+16>>2])-1|0,o[v+16>>2]=E;do{if(!(0|E)){if(0|o[v+4>>2]){if(G(e+280|0,0),E=0|o[4550],s[v+8>>2]=+(((0|o[e+284>>2])-(0|o[E+4>>2])+(1e6*((0|o[e+280>>2])-(0|o[E>>2])|0)|0)-(0|o[v+12>>2])|0)>>>0)/1e3+ +s[v+8>>2],0|o[v+16>>2])break;v=0|o[4564]}o[4564]=o[v+20>>2]}}while(0);if(en[31&o[156+(0|o[i>>2])>>2]](i,t),0|(v=0|o[i+80>>2])&&en[31&v](i,t),i=0|o[4564],E=(0|o[i+16>>2])-1|0,o[i+16>>2]=E,0|E)u=e;else{do{if(0|o[i+4>>2]){if(G(e+280|0,0),E=0|o[4550],s[i+8>>2]=+(((0|o[e+284>>2])-(0|o[E+4>>2])+(1e6*((0|o[e+280>>2])-(0|o[E>>2])|0)|0)-(0|o[i+12>>2])|0)>>>0)/1e3+ +s[i+8>>2],0|o[i+16>>2])return void(u=e);i=0|o[4564];break}}while(0);o[4564]=o[i+20>>2],u=e}},function(i,t){t=+t;var e,n=0,r=0,f=0,a=0,c=0,h=0;if(e=u,u=u+32|0,(0|(f=0|o[(i|=0)+8>>2]))<=0)u=e;else{n=0;do{0|(r=0|o[(0|o[i+16>>2])+(n<<2)>>2])&&2&o[r+236>>2]&&2!=(0|o[r+216>>2])&&!(!(2&o[r+204>>2])|0!=t^1)&&(0|(f=0|o[r+480>>2])?(on[127&o[8+(0|o[f>>2])>>2]](f,r+4|0),f=r+4|0):f=r+4|0,c=(+s[r+56>>2]-+s[r+120>>2])*(1/t),h=1/t*(+s[r+60>>2]-+s[r+124>>2]),s[r+312>>2]=(+s[r+52>>2]-+s[r+116>>2])*(1/t),s[r+316>>2]=c,s[r+320>>2]=h,s[r+324>>2]=0,wt(r+68|0,f,e+8|0,e),c=1/t*(h=+s[e>>2])*+s[e+12>>2],a=1/t*h*+s[e+16>>2],s[r+328>>2]=1/t*+s[e+8>>2]*h,s[r+332>>2]=c,s[r+336>>2]=a,s[r+340>>2]=0,o[r+132>>2]=o[r+312>>2],o[r+136>>2]=o[r+316>>2],o[r+140>>2]=o[r+320>>2],o[r+144>>2]=o[r+324>>2],o[r+148>>2]=o[r+328>>2],o[r+152>>2]=o[r+332>>2],o[r+156>>2]=o[r+336>>2],o[r+160>>2]=o[r+340>>2],o[r+68>>2]=o[f+0>>2],o[r+72>>2]=o[f+4>>2],o[r+76>>2]=o[f+8>>2],o[r+80>>2]=o[f+12>>2],o[r+84>>2]=o[r+20>>2],o[r+88>>2]=o[r+24>>2],o[r+92>>2]=o[r+28>>2],o[r+96>>2]=o[r+32>>2],o[r+100>>2]=o[r+36>>2],o[r+104>>2]=o[r+40>>2],o[r+108>>2]=o[r+44>>2],o[r+112>>2]=o[r+48>>2],o[r+116>>2]=o[r+52>>2],o[r+120>>2]=o[r+56>>2],o[r+124>>2]=o[r+60>>2],o[r+128>>2]=o[r+64>>2],f=0|o[i+8>>2]),n=n+1|0}while((0|n)<(0|f));u=e}},function(i,t){i|=0,t=+t;var e,n=0,r=0;if(e=u,u=u+16|0,It(1400),(0|o[i+280>>2])>0){n=0;do{r=0|o[(0|o[i+288>>2])+(n<<2)>>2],Bn[3&o[8+(0|o[r>>2])>>2]](r,i,t),n=n+1|0}while((0|n)<(0|o[i+280>>2]))}if(i=0|o[4564],r=(0|o[i+16>>2])-1|0,o[i+16>>2]=r,0|r)u=e;else{do{if(0|o[i+4>>2]){if(G(0|e,0),r=0|o[4550],s[i+8>>2]=+(((0|o[e+4>>2])-(0|o[r+4>>2])+(1e6*((0|o[e>>2])-(0|o[r>>2])|0)|0)-(0|o[i+12>>2])|0)>>>0)/1e3+ +s[i+8>>2],0|o[i+16>>2])return void(u=e);i=0|o[4564];break}}while(0);o[4564]=o[i+20>>2],u=e}},function(i,t){t=+t;var e,r=0,f=0,a=0,c=0,h=0,l=0,d=0,v=0,b=0,w=0,p=0,m=0,y=0,k=0,g=0,C=0,S=0,M=0,E=0,T=0,L=0,I=0,A=0,D=0,O=0,R=0;if(e=u,u=u+112|0,(0|(f=0|o[(i|=0)+136>>2]))>0){r=0;do{Bt(0|o[i+116>>2],0|o[i+144>>2],r,0),r=r+1|0,f=0|o[i+136>>2]}while((0|r)<(0|f));r=i+116|0}else r=i+116|0;c=0|o[r>>2],I=+s[c+312>>2],A=+s[c+316>>2],p=+s[c+320>>2],p=3.5999999046325684*+_(+(I*I+A*A+p*p)),s[i+112>>2]=p,M=0|o[i+128>>2],+s[c+(M<<2)+4>>2]*+s[c+312>>2]+ +s[c+(M<<2)+20>>2]*+s[c+316>>2]+ +s[c+(M<<2)+36>>2]*+s[c+320>>2]<0&&(s[i+112>>2]=-1*p);i:do{if((0|f)>0){f=0;do{Nt(c,w=(a=0|o[i+144>>2])+(284*f|0)|0,0),M=a+(284*f|0)+212|0,d=a+(284*f|0)+52|0,b=a+(284*f|0)+60|0,D=a+(284*f|0)+36|0,l=a+(284*f|0)+16|0,I=(p=+s[(k=a+(284*f|0)+204|0)>>2]+ +s[M>>2])*+s[(v=a+(284*f|0)+56|0)>>2]+ +s[a+(284*f|0)+40>>2],A=p*+s[b>>2]+ +s[a+(284*f|0)+44>>2],s[a+(284*f|0)+16>>2]=+s[d>>2]*p+ +s[D>>2],s[(h=a+(284*f|0)+20|0)>>2]=I,s[(c=a+(284*f|0)+24|0)>>2]=A,s[a+(284*f|0)+28>>2]=0,s[e+64>>2]=-1,S=0|o[i+100>>2],D=0|hn[31&o[8+(0|o[S>>2])>>2]](S,D,l,e+32|0),o[(S=a+(284*f|0)+88|0)>>2]=0;do{if(0|D){if(p*=+s[e+64>>2],o[w+0>>2]=o[e+48>>2],o[w+4>>2]=o[e+52>>2],o[w+8>>2]=o[e+56>>2],o[w+12>>2]=o[e+60>>2],n[a+(284*f|0)+84|0]=1,!(0|n[3008])&&0|j(3008)&&(o[e+88>>2]=0,o[e+92>>2]=0,o[e+96>>2]=0,o[e+100>>2]=0,Vt(2392,0,0,0,e+88|0),x(3008)),o[e+72>>2]=0,o[e+76>>2]=0,o[e+80>>2]=0,o[e+84>>2]=0,Ut(2392,0,e+72|0),o[S>>2]=2392,y=p-+s[M>>2],s[(S=a+(284*f|0)+32|0)>>2]=y,y<(p=+s[k>>2])-(m=.009999999776482582*+s[a+(284*f|0)+208>>2])&&(s[S>>2]=p-m,y=p-m),y>p+m&&(s[S>>2]=p+m),o[l+0>>2]=o[e+32>>2],o[l+4>>2]=o[e+36>>2],o[l+8>>2]=o[e+40>>2],o[l+12>>2]=o[e+44>>2],m=+s[w>>2],p=+s[a+(284*f|0)+4>>2],y=+s[a+(284*f|0)+8>>2],g=m*+s[d>>2]+p*+s[v>>2]+y*+s[b>>2],d=0|o[r>>2],C=+s[l>>2]-+s[d+52>>2],E=+s[h>>2]-+s[d+56>>2],I=+s[c>>2]-+s[d+60>>2],A=+s[d+332>>2],T=+s[d+336>>2],L=+s[d+328>>2],g>=-.10000000149011612){s[a+(284*f|0)+272>>2]=0,s[a+(284*f|0)+268>>2]=10;break}s[a+(284*f|0)+272>>2]=-1/g*(p*(C*T-I*L+ +s[d+316>>2])+m*(A*I-E*T+ +s[d+312>>2])+y*(E*L-C*A+ +s[d+320>>2])),s[a+(284*f|0)+268>>2]=-1/g;break}s[a+(284*f|0)+32>>2]=+s[k>>2],s[a+(284*f|0)+272>>2]=0,I=-+s[v>>2],A=-+s[b>>2],s[w>>2]=-+s[d>>2],s[a+(284*f|0)+4>>2]=I,s[a+(284*f|0)+8>>2]=A,s[a+(284*f|0)+12>>2]=0,s[a+(284*f|0)+268>>2]=1}while(0);f=f+1|0,a=0|o[i+136>>2],c=0|o[r>>2]}while((0|f)<(0|a));if(p=1/+s[c+344>>2],(0|a)>0){l=0|o[i+144>>2],h=0;do{0|n[l+(284*h|0)+84|0]?(A=+s[l+(284*h|0)+272>>2],A=p*(+s[l+(284*h|0)+216>>2]*(+s[l+(284*h|0)+204>>2]-+s[l+(284*h|0)+32>>2])*+s[l+(284*h|0)+268>>2]-A*+s[(A<0?l+(284*h|0)+220:l+(284*h|0)+224)>>2]),s[(f=l+(284*h|0)+276|0)>>2]=A,A<0&&(s[f>>2]=0)):s[l+(284*h|0)+276>>2]=0,h=h+1|0}while((0|h)<(0|a));for(f=0;;){if(A=(L=(L=+s[l+(284*f|0)+276>>2])>(A=+s[l+(284*f|0)+248>>2])?A:L)*+s[l+(284*f|0)+4>>2]*t,I=L*+s[l+(284*f|0)+8>>2]*t,s[e+16>>2]=+s[l+(284*f|0)>>2]*L*t,s[e+20>>2]=A,s[e+24>>2]=I,s[e+28>>2]=0,I=+s[l+(284*f|0)+20>>2]-+s[c+56>>2],A=+s[l+(284*f|0)+24>>2]-+s[c+60>>2],s[e>>2]=+s[l+(284*f|0)+16>>2]-+s[c+52>>2],s[e+4>>2]=I,s[e+8>>2]=A,s[e+12>>2]=0,Zi(c,e+16|0,e),(0|(f=f+1|0))>=(0|o[i+136>>2]))break i;l=0|o[i+144>>2],c=0|o[r>>2]}}}}while(0);if(en[31&o[20+(0|o[i>>2])>>2]](i,t),(0|(f=0|o[i+136>>2]))<=0)u=e;else{a=0|o[i+144>>2],r=0|o[r>>2],c=0;do{y=+s[a+(284*c|0)+36>>2]-+s[r+52>>2],m=+s[a+(284*c|0)+40>>2]-+s[r+56>>2],C=+s[a+(284*c|0)+44>>2]-+s[r+60>>2],p=+s[r+332>>2],g=+s[r+336>>2],E=+s[r+328>>2],0|n[a+(284*c|0)+84|0]?(D=0|o[i+128>>2],R=+s[r+(D<<2)+4>>2],T=+s[r+(D<<2)+20>>2],I=+s[r+(D<<2)+36>>2],O=+s[a+(284*c|0)>>2],L=+s[a+(284*c|0)+4>>2],A=+s[a+(284*c|0)+8>>2],p=((m*E-y*p+ +s[r+320>>2])*(I-A*(R*O+T*L+I*A))+((p*C-m*g+ +s[r+312>>2])*(R-O*(R*O+T*L+I*A))+(y*g-C*E+ +s[r+316>>2])*(T-L*(R*O+T*L+I*A))))*t/+s[a+(284*c|0)+212>>2],s[a+(284*c|0)+240>>2]=p,s[(D=a+(284*c|0)+236|0)>>2]=p+ +s[D>>2]):(p=+s[a+(284*c|0)+240>>2],s[(D=a+(284*c|0)+236|0)>>2]=p+ +s[D>>2]),s[a+(284*c|0)+240>>2]=.9900000095367432*p,c=c+1|0}while((0|c)<(0|f));u=e}},function(i,t){t=+t;var e,r=0,f=0,a=0,c=0,h=0,l=0,d=0,v=0,b=0,w=0,p=0,m=0,y=0,k=0,g=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0,L=0,I=0,A=0,D=0,O=0,R=0,P=0,N=0,B=0,F=0,V=0,U=0,G=0,W=0;if(e=u,u=u+384|0,0|(a=0|o[(i|=0)+136>>2])){if((0|(c=0|o[i+8>>2]))<(0|a)){if((0|o[i+12>>2])<(0|a)){if(o[4546]=1+(0|o[4546]),0|(h=0|ye(16+(a<<4|3)|0))?(o[(h+19&-16)-4>>2]=h,h=h+19&-16):h=0,(0|(l=0|o[i+8>>2]))>0){d=0;do{m=h+(d<<4)|0,w=(0|o[i+16>>2])+(d<<4)|0,o[m+0>>2]=o[w+0>>2],o[m+4>>2]=o[w+4>>2],o[m+8>>2]=o[w+8>>2],o[m+12>>2]=o[w+12>>2],d=d+1|0}while((0|d)!=(0|l))}0|(l=0|o[i+16>>2])&&(0|n[i+20|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[l+-4>>2])),o[i+16>>2]=0),n[i+20|0]=1,o[i+16>>2]=h,o[i+12>>2]=a,h=i+16|0}else h=i+16|0;do{m=(0|o[h>>2])+(c<<4)|0,o[m+0>>2]=o[e+144>>2],o[m+4>>2]=o[e+148>>2],o[m+8>>2]=o[e+152>>2],o[m+12>>2]=o[e+156>>2],c=c+1|0}while((0|c)!=(0|a))}if(o[i+8>>2]=a,(0|(c=0|o[i+28>>2]))<(0|a)){if((0|o[i+32>>2])<(0|a)){if(o[4546]=1+(0|o[4546]),0|(h=0|ye(16+(a<<4|3)|0))?(o[(h+19&-16)-4>>2]=h,h=h+19&-16):h=0,(0|(d=0|o[i+28>>2]))>0){l=0;do{m=h+(l<<4)|0,w=(0|o[i+36>>2])+(l<<4)|0,o[m+0>>2]=o[w+0>>2],o[m+4>>2]=o[w+4>>2],o[m+8>>2]=o[w+8>>2],o[m+12>>2]=o[w+12>>2],l=l+1|0}while((0|l)!=(0|d))}0|(l=0|o[i+36>>2])&&(0|n[i+40|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[l+-4>>2])),o[i+36>>2]=0),n[i+40|0]=1,o[i+36>>2]=h,o[i+32>>2]=a,h=i+36|0}else h=i+36|0;do{m=(0|o[h>>2])+(c<<4)|0,o[m+0>>2]=o[e+128>>2],o[m+4>>2]=o[e+132>>2],o[m+8>>2]=o[e+136>>2],o[m+12>>2]=o[e+140>>2],c=c+1|0}while((0|c)!=(0|a))}if(o[i+28>>2]=a,(0|(c=0|o[i+48>>2]))<(0|a)){if((0|o[i+52>>2])<(0|a)){if(o[4546]=1+(0|o[4546]),0|(h=0|ye(16+(a<<2|3)|0))?(o[(h+19&-16)-4>>2]=h,h=h+19&-16):h=0,(0|(l=0|o[i+48>>2]))>0){d=0;do{0|(v=h+(d<<2)|0)&&(s[v>>2]=+s[(0|o[i+56>>2])+(d<<2)>>2]),d=d+1|0}while((0|d)!=(0|l))}0|(l=0|o[i+56>>2])&&(0|n[i+60|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[l+-4>>2])),o[i+56>>2]=0),n[i+60|0]=1,o[i+56>>2]=h,o[i+52>>2]=a}else h=0|o[i+56>>2];do{0|(l=h+(c<<2)|0)&&(s[l>>2]=0),c=c+1|0}while((0|c)!=(0|a))}if(o[i+48>>2]=a,(0|(c=0|o[i+68>>2]))<(0|a)){if((0|o[i+72>>2])<(0|a)){if(o[4546]=1+(0|o[4546]),0|(h=0|ye(16+(a<<2|3)|0))?(o[(h+19&-16)-4>>2]=h,h=h+19&-16):h=0,(0|(d=0|o[i+68>>2]))>0){l=0;do{0|(v=h+(l<<2)|0)&&(s[v>>2]=+s[(0|o[i+76>>2])+(l<<2)>>2]),l=l+1|0}while((0|l)!=(0|d))}0|(l=0|o[i+76>>2])&&(0|n[i+80|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[l+-4>>2])),o[i+76>>2]=0),n[i+80|0]=1,o[i+76>>2]=h,o[i+72>>2]=a}else h=0|o[i+76>>2];do{0|(l=h+(c<<2)|0)&&(s[l>>2]=0),c=c+1|0}while((0|c)!=(0|a))}if(o[i+68>>2]=a,(0|(l=0|o[i+136>>2]))<=0)u=e;else{c=0|o[i+76>>2],h=0|o[i+56>>2],a=0;do{s[c+(a<<2)>>2]=0,s[h+(a<<2)>>2]=0,a=a+1|0}while((0|a)<(0|l));a=0;do{c=0|o[i+144>>2],0|(h=0|o[c+(284*a|0)+88>>2])&&(l=c+(284*a|0)+92|0,o[e+80>>2]=o[l+0>>2],o[e+84>>2]=o[l+4>>2],o[e+88>>2]=o[l+8>>2],o[e+92>>2]=o[l+12>>2],l=c+(284*a|0)+108|0,o[e+96>>2]=o[l+0>>2],o[e+100>>2]=o[l+4>>2],o[e+104>>2]=o[l+8>>2],o[e+108>>2]=o[l+12>>2],l=c+(284*a|0)+124|0,o[e+112>>2]=o[l+0>>2],o[e+116>>2]=o[l+4>>2],o[e+120>>2]=o[l+8>>2],o[e+124>>2]=o[l+12>>2],l=0|o[i+36>>2],S=0|o[i+120>>2],b=+s[e+80+(S<<2)+16>>2],x=+s[e+80+(S<<2)+32>>2],s[l+(a<<4)>>2]=+s[e+80+(S<<2)>>2],s[l+(a<<4)+4>>2]=b,s[l+(a<<4)+8>>2]=x,s[l+(a<<4)+12>>2]=0,l=0|o[i+36>>2],x=+s[(S=l+(a<<4)|0)>>2],b=+s[(d=c+(284*a|0)|0)>>2],j=+s[(v=l+(a<<4)+4|0)>>2],p=+s[(m=c+(284*a|0)+4|0)>>2],k=+s[(l=l+(a<<4)+8|0)>>2],C=+s[(w=c+(284*a|0)+8|0)>>2],k=1/+_(+((y=x-b*(x*b+j*p+k*C))*y+(g=j-p*(x*b+j*p+k*C))*g+(C=k-C*(x*b+j*p+k*C))*C)),s[S>>2]=y*k,s[v>>2]=g*k,s[l>>2]=C*k,l=0|o[i+16>>2],p=+s[m>>2],j=+s[w>>2],b=+s[d>>2],s[l+(a<<4)>>2]=p*C*k-j*g*k,s[l+(a<<4)+4>>2]=j*y*k-C*k*b,s[l+(a<<4)+8>>2]=g*k*b-p*y*k,s[l+(a<<4)+12>>2]=0,l=0|o[i+16>>2],k=+s[(d=l+(a<<4)|0)>>2],y=+s[(w=l+(a<<4)+4|0)>>2],p=+s[(l=l+(a<<4)+8|0)>>2],b=1/+_(+(k*k+y*y+p*p)),s[d>>2]=k*b,s[w>>2]=y*b,s[l>>2]=p*b,l=0|o[i+116>>2],d=(w=0|o[i+36>>2])+(a<<4)|0,m=(0|o[i+76>>2])+(a<<2)|0,(b=+s[d>>2])*b+(p=+s[(v=w+(a<<4)+4|0)>>2])*p+(y=+s[(w=w+(a<<4)+8|0)>>2])*y>1.100000023841858?s[m>>2]=0:(p=(x=+s[c+(284*a|0)+16>>2])-+s[l+52>>2],E=(y=+s[c+(284*a|0)+20>>2])-+s[l+56>>2],L=(j=+s[c+(284*a|0)+24>>2])-+s[l+60>>2],s[e+360>>2]=p,s[e+364>>2]=E,s[e+368>>2]=L,s[e+372>>2]=0,x-=+s[h+52>>2],y-=+s[h+56>>2],j-=+s[h+60>>2],s[e+344>>2]=x,s[e+348>>2]=y,s[e+352>>2]=j,s[e+356>>2]=0,b=+s[l+332>>2],I=+s[l+336>>2],M=+s[l+328>>2],g=+s[h+332>>2],T=+s[h+336>>2],k=+s[h+328>>2],C=b*L-I*E+ +s[l+312>>2]-(g*j-T*y+ +s[h+312>>2]),j=+s[l+316>>2]+(I*p-L*M)-(+s[h+316>>2]+(T*x-j*k)),x=E*M-b*p+ +s[l+320>>2]-(y*k-g*x+ +s[h+320>>2]),s[e+208>>2]=+s[l+4>>2],s[e+212>>2]=+s[l+20>>2],s[e+216>>2]=+s[l+36>>2],s[e+220>>2]=0,s[e+224>>2]=+s[l+8>>2],s[e+228>>2]=+s[l+24>>2],s[e+232>>2]=+s[l+40>>2],s[e+236>>2]=0,s[e+240>>2]=+s[l+12>>2],s[e+244>>2]=+s[l+28>>2],s[e+248>>2]=+s[l+44>>2],s[e+252>>2]=0,s[e+160>>2]=+s[h+4>>2],s[e+164>>2]=+s[h+20>>2],s[e+168>>2]=+s[h+36>>2],s[e+172>>2]=0,s[e+176>>2]=+s[h+8>>2],s[e+180>>2]=+s[h+24>>2],s[e+184>>2]=+s[h+40>>2],s[e+188>>2]=0,s[e+192>>2]=+s[h+12>>2],s[e+196>>2]=+s[h+28>>2],s[e+200>>2]=+s[h+44>>2],s[e+204>>2]=0,pt(e+256|0,e+208|0,e+160|0,e+360|0,e+344|0,d,l+396|0,+s[l+344>>2],h+396|0,+s[h+344>>2]),s[m>>2]=1/+s[e+336>>2]*(C*+s[d>>2]+j*+s[v>>2]+x*+s[w>>2])*-.20000000298023224),l=0|o[i+136>>2]),a=a+1|0}while((0|a)<(0|l));if((0|l)<=0)u=e;else{for(v=0|o[i+144>>2],c=0,a=0;0|(h=0|o[v+(284*a|0)+88>>2])?(0!=(b=+s[v+(284*a|0)+252>>2])?(h=0|o[i+56>>2],s[(w=h+(a<<2)|0)>>2]=0,s[(d=v+(284*a|0)+280|0)>>2]=1,l=v,p=b*t):(I=0!=(I=+s[v+(284*a|0)+256>>2])?I:0,l=0|o[i+116>>2],w=0|o[i+16>>2],j=+s[v+(284*a|0)+16>>2],g=+s[v+(284*a|0)+20>>2],A=+s[v+(284*a|0)+24>>2],O=+s[w+(a<<4)>>2],k=+s[w+(a<<4)+4>>2],p=+s[w+(a<<4)+8>>2],U=j-+s[l+52>>2],G=g-+s[l+56>>2],F=A-+s[l+60>>2],B=+s[l+264>>2]*(G*p-F*k)+ +s[l+280>>2]*(F*O-U*p)+(U*k-G*O)*+s[l+296>>2],W=(G*p-F*k)*+s[l+268>>2]+(F*O-U*p)*+s[l+284>>2]+(U*k-G*O)*+s[l+300>>2],V=(G*p-F*k)*+s[l+272>>2]+(F*O-U*p)*+s[l+288>>2]+(U*k-G*O)*+s[l+304>>2],T=j-+s[h+52>>2],M=g-+s[h+56>>2],y=A-+s[h+60>>2],R=(k*T-O*M)*+s[h+296>>2]+(+s[h+264>>2]*(p*M-k*y)+ +s[h+280>>2]*(O*y-p*T)),N=(p*M-k*y)*+s[h+268>>2]+(O*y-p*T)*+s[h+284>>2]+(k*T-O*M)*+s[h+300>>2],P=(p*M-k*y)*+s[h+272>>2]+(O*y-p*T)*+s[h+288>>2]+(k*T-O*M)*+s[h+304>>2],j-=+s[l+52>>2],g-=+s[l+56>>2],A-=+s[l+60>>2],x=+s[l+332>>2],D=+s[l+336>>2],C=+s[l+328>>2],L=+s[h+332>>2],b=+s[h+336>>2],E=+s[h+328>>2],p=I<(p=-1/(+s[l+344>>2]+(p*(G*B-U*W)+(O*(F*W-G*V)+k*(U*V-F*B)))+(+s[h+344>>2]+(p*(M*R-T*N)+(O*(y*N-M*P)+k*(T*P-y*R)))))*((A*x-g*D+ +s[l+312>>2]-(y*L-M*b+ +s[h+312>>2]))*O+(+s[l+316>>2]+(j*D-A*C)-(+s[h+316>>2]+(T*b-y*E)))*k+(g*C-j*x+ +s[l+320>>2]-(M*E-T*L+ +s[h+320>>2]))*p))?I:p,l=0|o[i+144>>2],h=0|o[i+56>>2],s[(w=h+(a<<2)|0)>>2]=0,s[(d=l+(284*a|0)+280|0)>>2]=1,p=p<-I?-I:p),s[d>>2]=1,b=+s[v+(284*a|0)+276>>2]*t*+s[v+(284*a|0)+228>>2],s[w>>2]=p,(p*=.5)*p+(y=+s[(0|o[i+76>>2])+(a<<2)>>2])*y>b*b&&(W=b/+_(+(p*p+y*y)),s[d>>2]=W*+s[d>>2],c=1)):(h=0|o[i+56>>2],s[h+(a<<2)>>2]=0,s[v+(284*a|0)+280>>2]=1,l=v),!((0|(a=a+1|0))>=(0|(d=0|o[i+136>>2])));)v=l;if(c){if((0|d)<=0)return void(u=e);a=0|o[i+76>>2],c=0;do{0!=+s[(v=a+(c<<2)|0)>>2]&&(f=+s[(r=l+(284*c|0)+280|0)>>2])<1&&(s[(S=h+(c<<2)|0)>>2]=f*+s[S>>2],s[v>>2]=+s[r>>2]*+s[v>>2]),c=c+1|0}while((0|c)<(0|d))}if((0|d)<=0)u=e;else{for(d=0;v=0|o[i+116>>2],c=l+(284*d|0)+16|0,W=+s[(r=l+(284*d|0)+20|0)>>2]-+s[v+56>>2],f=+s[(a=l+(284*d|0)+24|0)>>2]-+s[v+60>>2],s[e+64>>2]=+s[c>>2]-+s[v+52>>2],s[e+68>>2]=W,s[e+72>>2]=f,s[e+76>>2]=0,0!=(f=+s[h+(d<<2)>>2])&&(S=0|o[i+16>>2],G=f*+s[S+(d<<4)+4>>2],W=f*+s[S+(d<<4)+8>>2],s[e+48>>2]=f*+s[S+(d<<4)>>2],s[e+52>>2]=G,s[e+56>>2]=W,s[e+60>>2]=0,Zi(v,e+48|0,e+64|0)),0!=(f=+s[(0|o[i+76>>2])+(d<<2)>>2])&&(S=0|o[(0|o[i+144>>2])+(284*d|0)+88>>2],B=+s[r>>2]-+s[S+56>>2],V=+s[a>>2]-+s[S+60>>2],s[e+32>>2]=+s[c>>2]-+s[S+52>>2],s[e+36>>2]=B,s[e+40>>2]=V,s[e+44>>2]=0,m=0|o[i+36>>2],V=f*+s[m+(d<<4)+4>>2],B=f*+s[m+(d<<4)+8>>2],s[e+16>>2]=+s[m+(d<<4)>>2]*f,s[e+20>>2]=V,s[e+24>>2]=B,s[e+28>>2]=0,m=0|o[i+116>>2],w=0|o[i+124>>2],B=+s[m+(w<<2)+4>>2],V=+s[m+(w<<2)+20>>2],W=+s[m+(w<<2)+36>>2],G=(B*(N=+s[e+64>>2])+V*(F=+s[e+68>>2])+W*(U=+s[e+72>>2]))*(1-+s[l+(284*d|0)+244>>2]),s[e+64>>2]=N-B*G,s[e+68>>2]=F-V*G,s[e+72>>2]=U-W*G,Zi(m,e+16|0,e+64|0),G=-+s[e+20>>2],W=-+s[e+24>>2],s[e>>2]=-+s[e+16>>2],s[e+4>>2]=G,s[e+8>>2]=W,s[e+12>>2]=0,Zi(S,e,e+32|0)),!((0|(d=d+1|0))>=(0|o[i+136>>2]));)l=0|o[i+144>>2],h=0|o[i+56>>2];u=e}}}}else u=e},function(i,t){t=+t;var e,n,r,f=0,a=0,c=0;e=u,a=+mn[15&o[48+(0|o[(i|=0)>>2])>>2]](i),f=+mn[15&o[48+(0|o[i>>2])>>2]](i),c=+mn[15&o[48+(0|o[i>>2])>>2]](i),a+=+s[i+28>>2],f+=+s[i+32>>2],c+=+s[i+36>>2],s[i+44>>2]=t,r=+mn[15&o[48+(0|o[i>>2])>>2]](i),n=+mn[15&o[48+(0|o[i>>2])>>2]](i),t=c-+mn[15&o[48+(0|o[i>>2])>>2]](i),s[i+28>>2]=a-r,s[i+32>>2]=f-n,s[i+36>>2]=t,s[i+40>>2]=0,u=e},function(i,t){t=+t,s[(i|=0)+12>>2]=t},function(i,t){t=+t;var e,n,r,f=0,a=0,c=0;e=u,a=+mn[15&o[48+(0|o[(i|=0)>>2])>>2]](i),f=+mn[15&o[48+(0|o[i>>2])>>2]](i),c=+mn[15&o[48+(0|o[i>>2])>>2]](i),a+=+s[i+28>>2],f+=+s[i+32>>2],c+=+s[i+36>>2],s[i+44>>2]=t,r=+mn[15&o[48+(0|o[i>>2])>>2]](i),n=+mn[15&o[48+(0|o[i>>2])>>2]](i),t=c-+mn[15&o[48+(0|o[i>>2])>>2]](i),s[i+28>>2]=a-r,s[i+32>>2]=f-n,s[i+36>>2]=t,s[i+40>>2]=0,u=e},function(i,t){t=+t},function(i,t){t=+t,s[(i|=0)+72>>2]=t},function(i,t){t=+t,s[(i|=0)+44>>2]=t},function(i,t){t=+t;var e,n,r,f=0,a=0,c=0;e=u,a=+mn[15&o[48+(0|o[(i|=0)>>2])>>2]](i),f=+mn[15&o[48+(0|o[i>>2])>>2]](i),c=+mn[15&o[48+(0|o[i>>2])>>2]](i),a+=+s[i+28>>2],f+=+s[i+32>>2],c+=+s[i+36>>2],s[i+44>>2]=t,r=+mn[15&o[48+(0|o[i>>2])>>2]](i),n=+mn[15&o[48+(0|o[i>>2])>>2]](i),t=c-+mn[15&o[48+(0|o[i>>2])>>2]](i),s[i+28>>2]=a-r,s[i+32>>2]=f-n,s[i+36>>2]=t,s[i+40>>2]=0,u=e},function(i,t){t=+t,s[(i|=0)+44>>2]=t},Le,Le,Le,Le,Le,Le,Le,Le,Le,Le,Le,Le,Le,Le,Le],nn=[Ie,function(i){0},function(i){var t;t=u,0|(i|=0)?(o[4548]=1+(0|o[4548]),ke(0|o[i+-4>>2]),u=t):u=t},function(i){0},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)?(o[4548]=1+(0|o[4548]),ke(0|o[i+-4>>2]),u=t):u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)?(o[4548]=1+(0|o[4548]),ke(0|o[i+-4>>2]),u=t):u=t},function(i){var t,e=0,r=0,f=0,a=0,c=0,h=0,l=0,d=0,v=0,w=0,p=0,m=0,y=0,k=0,g=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0,L=0,I=0,A=0,D=0,O=0,R=0,P=0,N=0,B=0,F=0,V=0;if(t=u,u=u+176|0,0|n[(i|=0)+527|0]){s[i+36>>2]=0,s[i+520>>2]=0,s[i+516>>2]=0,o[i+576>>2]=0,o[i+580>>2]=0,o[i+584>>2]=0,o[i+588>>2]=0;i:do{if(0|n[i+524|0])x=i+32|0;else for(F=0|o[i+28>>2],E=+s[i+348>>2],M=+s[i+352>>2],r=+s[i+356>>2],e=E*+s[F+20>>2]+M*+s[F+24>>2]+r*+s[F+28>>2]+ +s[F+56>>2],x=0|o[i+32>>2],a=+s[i+412>>2],c=+s[x+4>>2],h=+s[i+416>>2],l=+s[x+8>>2],d=+s[i+420>>2],S=+s[x+12>>2],p=+s[x+20>>2],m=+s[x+24>>2],y=+s[x+28>>2],g=+s[x+36>>2],C=+s[x+40>>2],j=+s[x+44>>2],w=+s[x+52>>2],k=+s[x+56>>2],v=+s[x+60>>2],T=a*p+h*m+d*y+k-e,f=E*+s[F+4>>2]+M*+s[F+8>>2]+r*+s[F+12>>2]+ +s[F+52>>2],r=E*+s[F+36>>2]+M*+s[F+40>>2]+r*+s[F+44>>2]+ +s[F+60>>2],(M=a*c+h*l+d*S+w-f)*M+T*T+(E=a*g+h*C+d*j+v-r)*E>1.1920928955078125e-7?(B=1/+_(+(M*M+T*T+E*E)),s[t+128>>2]=M*B,s[t+132>>2]=T*B,s[t+136>>2]=E*B,s[t+140>>2]=0,E*=B,T*=B,M*=B):(s[t+128>>2]=1,s[t+132>>2]=0,s[t+136>>2]=0,s[t+140>>2]=0,E=0,T=0,M=1),+b(+E)>.7071067690849304?(P=1/+_(+(R=E*E+T*T)),s[t+144>>2]=0,B=-P*E,s[t+148>>2]=B,N=P*T,s[t+152>>2]=N,s[t+160>>2]=R*P,s[t+164>>2]=-M*N,s[t+168>>2]=M*B):(P=-T*(B=1/+_(+(N=M*M+T*T))),s[t+144>>2]=P,R=B*M,s[t+148>>2]=R,s[t+152>>2]=0,s[t+160>>2]=-E*R,s[t+164>>2]=E*P,s[t+168>>2]=N*B),O=c,T=p,L=g,I=l,A=m,N=C,E=S,D=y,B=j,M=w,P=k,R=v,F=0;;){if(V=0|o[i+28>>2],s[t+80>>2]=+s[V+4>>2],s[t+84>>2]=+s[V+20>>2],s[t+88>>2]=+s[V+36>>2],s[t+92>>2]=0,s[t+96>>2]=+s[V+8>>2],s[t+100>>2]=+s[V+24>>2],s[t+104>>2]=+s[V+40>>2],s[t+108>>2]=0,s[t+112>>2]=+s[V+12>>2],s[t+116>>2]=+s[V+28>>2],s[t+120>>2]=+s[V+44>>2],s[t+124>>2]=0,s[t+32>>2]=O,s[t+36>>2]=T,s[t+40>>2]=L,s[t+44>>2]=0,s[t+48>>2]=I,s[t+52>>2]=A,s[t+56>>2]=N,s[t+60>>2]=0,s[t+64>>2]=E,s[t+68>>2]=D,s[t+72>>2]=B,s[t+76>>2]=0,N=e-+s[V+56>>2],B=r-+s[V+60>>2],s[t+16>>2]=f-+s[V+52>>2],s[t+20>>2]=N,s[t+24>>2]=B,s[t+28>>2]=0,s[t>>2]=a*c+h*l+d*S+w-M,s[t+4>>2]=a*p+h*m+d*y+k-P,s[t+8>>2]=a*g+h*C+d*j+v-R,s[t+12>>2]=0,pt(i+(84*F|0)+48|0,t+80|0,t+32|0,t+16|0,t,t+128+(F<<4)|0,V+396|0,+s[V+344>>2],x+396|0,+s[x+344>>2]),3==(0|(F=F+1|0))){x=i+32|0;break i}x=0|o[i+32>>2],O=+s[x+4>>2],T=+s[x+20>>2],L=+s[x+36>>2],I=+s[x+8>>2],A=+s[x+24>>2],N=+s[x+40>>2],E=+s[x+12>>2],D=+s[x+28>>2],B=+s[x+44>>2],M=+s[x+52>>2],P=+s[x+56>>2],R=+s[x+60>>2]}}while(0);rt(i,(F=0|o[i+28>>2])+4|0,(V=0|o[x>>2])+4|0,F+264|0,V+264|0),u=t}else u=t},mt,function(i){var t;t=u,mt(i|=0),0|i?(o[4548]=1+(0|o[4548]),ke(0|o[i+-4>>2]),u=t):u=t},function(i){i|=0;var t,e=0,r=0,f=0,a=0,c=0,h=0,l=0,d=0,v=0,b=0,_=0,w=0;if(t=u,u=u+64|0,It(6648),(0|(_=0|o[i+8>>2]))>0){r=0;do{f=0|o[(0|o[i+16>>2])+(r<<2)>>2],!(0|n[i+76|0])&&2==(0|(w=0|o[f+216>>2]))|5==(0|w)||(w=0|o[f+192>>2],Vn[63&o[8+(0|o[w>>2])>>2]](w,f+4|0,t+48|0,t+32|0),c=+s[t+48>>2]-.019999999552965164,s[t+48>>2]=c,a=+s[t+52>>2]-.019999999552965164,s[t+52>>2]=a,h=+s[t+56>>2]-.019999999552965164,s[t+56>>2]=h,v=+s[t+32>>2]+.019999999552965164,s[t+32>>2]=v,d=+s[t+36>>2]+.019999999552965164,s[t+36>>2]=d,l=+s[t+40>>2]+.019999999552965164,s[t+40>>2]=l,0|n[i+44|0]&&2==(0|o[f+236>>2])&&!(3&o[f+204>>2])&&(w=0|o[f+192>>2],Vn[63&o[8+(0|o[w>>2])>>2]](w,f+68|0,t+16|0,t),c=+s[t+16>>2]-.019999999552965164,s[t+16>>2]=c,a=+s[t+20>>2]-.019999999552965164,s[t+20>>2]=a,h=+s[t+24>>2]-.019999999552965164,s[t+24>>2]=h,v=+s[t>>2]+.019999999552965164,s[t>>2]=v,d=+s[t+4>>2]+.019999999552965164,s[t+4>>2]=d,l=+s[t+8>>2]+.019999999552965164,s[t+8>>2]=l,c<(b=+s[t+48>>2])?s[t+48>>2]=c:c=b,a<(b=+s[t+52>>2])?s[t+52>>2]=a:a=b,h<(b=+s[t+56>>2])?s[t+56>>2]=h:h=b,(b=+s[t+28>>2])<+s[t+60>>2]&&(s[t+60>>2]=b),(b=+s[t+32>>2])<v?s[t+32>>2]=v:v=b,(b=+s[t+36>>2])<d?s[t+36>>2]=d:d=b,(b=+s[t+40>>2])<l?s[t+40>>2]=l:l=b,b=+s[t+12>>2],+s[t+44>>2]<b&&(s[t+44>>2]=b)),_=0|o[i+68>>2],1&o[f+204>>2]||(c=v-c)*c+(v=d-a)*v+(b=l-h)*b<999999995904?tn[31&o[16+(0|o[_>>2])>>2]](_,0|o[f+188>>2],t+48|0,t+32|0,0|o[i+24>>2]):(((0|o[f+216>>2])-4|0)>>>0<2||(o[f+216>>2]=5),0|n[6424]&&0|(e=0|o[i+72>>2])&&(n[6424]=0,on[127&o[36+(0|o[e>>2])>>2]](e,6432),w=0|o[i+72>>2],on[127&o[36+(0|o[w>>2])>>2]](w,6488),w=0|o[i+72>>2],on[127&o[36+(0|o[w>>2])>>2]](w,6560),w=0|o[i+72>>2],on[127&o[36+(0|o[w>>2])>>2]](w,6632))),_=0|o[i+8>>2]),r=r+1|0}while((0|r)<(0|_))}if(i=0|o[4564],w=(0|o[i+16>>2])-1|0,o[i+16>>2]=w,0|w)u=t;else{do{if(0|o[i+4>>2]){if(G(t+48|0,0),w=0|o[4550],s[i+8>>2]=+(((0|o[t+52>>2])-(0|o[w+4>>2])+(1e6*((0|o[t+48>>2])-(0|o[w>>2])|0)|0)-(0|o[i+12>>2])|0)>>>0)/1e3+ +s[i+8>>2],0|o[i+16>>2])return void(u=t);i=0|o[4564];break}}while(0);o[4564]=o[i+20>>2],u=t}},function(i){i|=0;var t,e=0;if(t=u,u=u+16|0,It(6664),e=0|o[i+68>>2],on[127&o[32+(0|o[e>>2])>>2]](e,0|o[i+24>>2]),i=0|o[4564],e=(0|o[i+16>>2])-1|0,o[i+16>>2]=e,0|e)u=t;else{do{if(0|o[i+4>>2]){if(G(0|t,0),e=0|o[4550],s[i+8>>2]=+(((0|o[t+4>>2])-(0|o[e+4>>2])+(1e6*((0|o[t>>2])-(0|o[e>>2])|0)|0)-(0|o[i+12>>2])|0)>>>0)/1e3+ +s[i+8>>2],0|o[i+16>>2])return void(u=t);i=0|o[4564];break}}while(0);o[4564]=o[i+20>>2],u=t}},function(i){i|=0;var t,e=0,r=0,f=0,a=0,c=0,h=0,l=0,d=0,v=0,b=0,_=0,w=0,y=0,k=0,g=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0,I=0,A=0,D=0,O=0,R=0,P=0,N=0,B=0,F=0,V=0,U=0,W=0,z=0,X=0,$=0,H=0,q=0,K=0,Y=0;t=u,u=u+1024|0,It(1312),Xi(i);i:do{if(0|an[127&o[20+(0|o[i>>2])>>2]](i)&&(N=0|an[127&o[20+(0|o[i>>2])>>2]](i),6144&an[127&o[48+(0|o[N>>2])>>2]](N))){e=t+988|0,g=t+896|0,k=t+832|0,j=t+912|0,C=t+848|0,x=t+928|0,S=t+864|0,v=t+720|0,d=t+656|0,_=t+736|0,b=t+672|0,y=t+752|0,w=t+688|0,c=t+336|0,h=t+352|0,l=t+368|0,r=t+112|0,f=t+128|0,a=t+144|0,T=0|an[127&o[104+(0|o[i>>2])>>2]](i);t:for(;;){if(M=T+-1|0,(0|T)<=0)break i;if(T=0|Sn[31&o[108+(0|o[i>>2])>>2]](i,M),N=0|an[127&o[20+(0|o[i>>2])>>2]](i),N=(0|an[127&o[48+(0|o[N>>2])>>2]](N))>>>11,I=0|an[127&o[20+(0|o[i>>2])>>2]](i),I=(0|an[127&o[48+(0|o[I>>2])>>2]](I))>>>12,(E=+s[T+40>>2])<=0)T=M;else switch(0|o[T+4>>2]){case 5:if(nt(t+704|0,4+(0|o[T+28>>2])|0,T+300|0),1&N?(N=0|an[127&o[20+(0|o[i>>2])>>2]](i),Bn[3&o[56+(0|o[N>>2])>>2]](N,t+704|0,E),nt(t+640|0,4+(0|o[T+32>>2])|0,T+364|0),o[t+704>>2]=o[t+640>>2],o[t+708>>2]=o[t+644>>2],o[t+712>>2]=o[t+648>>2],o[t+716>>2]=o[t+652>>2],o[v+0>>2]=o[d+0>>2],o[v+4>>2]=o[d+4>>2],o[v+8>>2]=o[d+8>>2],o[v+12>>2]=o[d+12>>2],o[_+0>>2]=o[b+0>>2],o[_+4>>2]=o[b+4>>2],o[_+8>>2]=o[b+8>>2],o[_+12>>2]=o[b+12>>2],o[y+0>>2]=o[w+0>>2],o[y+4>>2]=o[w+4>>2],o[y+8>>2]=o[w+8>>2],o[y+12>>2]=o[w+12>>2],N=0|an[127&o[20+(0|o[i>>2])>>2]](i),Bn[3&o[56+(0|o[N>>2])>>2]](N,t+704|0,E)):(nt(t+640|0,4+(0|o[T+32>>2])|0,T+364|0),o[t+704>>2]=o[t+640>>2],o[t+708>>2]=o[t+644>>2],o[t+712>>2]=o[t+648>>2],o[t+716>>2]=o[t+652>>2],o[v+0>>2]=o[d+0>>2],o[v+4>>2]=o[d+4>>2],o[v+8>>2]=o[d+8>>2],o[v+12>>2]=o[d+12>>2],o[_+0>>2]=o[b+0>>2],o[_+4>>2]=o[b+4>>2],o[_+8>>2]=o[b+8>>2],o[_+12>>2]=o[b+12>>2],o[y+0>>2]=o[w+0>>2],o[y+4>>2]=o[w+4>>2],o[y+8>>2]=o[w+8>>2],o[y+12>>2]=o[w+12>>2]),!(1&I)){T=M;continue t}_t(t+624|0,T,6.0868353843688965,E),V=+s[t+624>>2],F=+s[t+628>>2],B=+s[t+632>>2],R=V*+s[t+720>>2]+F*+s[t+724>>2]+B*+s[t+728>>2]+ +s[t+756>>2],P=V*+s[t+736>>2]+F*+s[t+740>>2]+B*+s[t+744>>2]+ +s[t+760>>2],s[t+624>>2]=V*+s[t+704>>2]+F*+s[t+708>>2]+B*+s[t+712>>2]+ +s[t+752>>2],s[t+628>>2]=R,s[t+632>>2]=P,s[t+636>>2]=0,I=0;do{_t(t+608|0,T,6.283185005187988*+(0|I)*.03125,E),R=+s[t+608>>2],P=+s[t+612>>2],B=+s[t+616>>2],F=R*+s[t+720>>2]+P*+s[t+724>>2]+B*+s[t+728>>2]+ +s[t+756>>2],V=R*+s[t+736>>2]+P*+s[t+740>>2]+B*+s[t+744>>2]+ +s[t+760>>2],s[t+608>>2]=R*+s[t+704>>2]+P*+s[t+708>>2]+B*+s[t+712>>2]+ +s[t+752>>2],s[t+612>>2]=F,s[t+616>>2]=V,s[t+620>>2]=0,N=0|an[127&o[20+(0|o[i>>2])>>2]](i),O=0|o[8+(0|o[N>>2])>>2],o[t+592>>2]=0,o[t+596>>2]=0,o[t+600>>2]=0,o[t+604>>2]=0,Vn[63&O](N,t+624|0,t+608|0,t+592|0),3&I||(N=0|an[127&o[20+(0|o[i>>2])>>2]](i),O=0|o[8+(0|o[N>>2])>>2],o[t+576>>2]=0,o[t+580>>2]=0,o[t+584>>2]=0,o[t+588>>2]=0,Vn[63&O](N,y,t+608|0,t+576|0)),o[t+624>>2]=o[t+608>>2],o[t+628>>2]=o[t+612>>2],o[t+632>>2]=o[t+616>>2],o[t+636>>2]=o[t+620>>2],I=I+1|0}while(32!=(0|I));P=+s[T+452>>2],R=+s[T+512>>2],I=0|o[T+32>>2],+s[I+344>>2]>0?(nt(t+512|0,I+4|0,T+364|0),o[t+704>>2]=o[t+512>>2],o[t+708>>2]=o[t+516>>2],o[t+712>>2]=o[t+520>>2],o[t+716>>2]=o[t+524>>2],o[v+0>>2]=o[t+528>>2],o[v+4>>2]=o[t+532>>2],o[v+8>>2]=o[t+536>>2],o[v+12>>2]=o[t+540>>2],o[_+0>>2]=o[t+544>>2],o[_+4>>2]=o[t+548>>2],o[_+8>>2]=o[t+552>>2],o[_+12>>2]=o[t+556>>2],o[y+0>>2]=o[t+560>>2],o[y+4>>2]=o[t+564>>2],o[y+8>>2]=o[t+568>>2],o[y+12>>2]=o[t+572>>2]):(nt(t+448|0,4+(0|o[T+28>>2])|0,T+300|0),o[t+704>>2]=o[t+448>>2],o[t+708>>2]=o[t+452>>2],o[t+712>>2]=o[t+456>>2],o[t+716>>2]=o[t+460>>2],o[v+0>>2]=o[t+464>>2],o[v+4>>2]=o[t+468>>2],o[v+8>>2]=o[t+472>>2],o[v+12>>2]=o[t+476>>2],o[_+0>>2]=o[t+480>>2],o[_+4>>2]=o[t+484>>2],o[_+8>>2]=o[t+488>>2],o[_+12>>2]=o[t+492>>2],o[y+0>>2]=o[t+496>>2],o[y+4>>2]=o[t+500>>2],o[y+8>>2]=o[t+504>>2],o[y+12>>2]=o[t+508>>2]),o[t+432>>2]=o[y+0>>2],o[t+436>>2]=o[y+4>>2],o[t+440>>2]=o[y+8>>2],o[t+444>>2]=o[y+12>>2],s[t+416>>2]=+s[t+704>>2],s[t+420>>2]=+s[t+720>>2],s[t+424>>2]=+s[t+736>>2],s[t+428>>2]=0,s[t+400>>2]=+s[t+708>>2],s[t+404>>2]=+s[t+724>>2],s[t+408>>2]=+s[t+740>>2],s[t+412>>2]=0,T=0|an[127&o[20+(0|o[i>>2])>>2]](i),N=0|o[60+(0|o[T>>2])>>2],o[t+384>>2]=0,o[t+388>>2]=0,o[t+392>>2]=0,o[t+396>>2]=0,vn[0&N](T,t+432|0,t+416|0,t+400|0,E,E,-R-P,P-R,t+384|0,1,10),T=M;continue t;case 3:if(s[t+944>>2]=1,o[t+948>>2]=0,o[t+952>>2]=0,o[t+956>>2]=0,o[t+960>>2]=0,s[t+964>>2]=1,o[t+968>>2]=0,o[t+972>>2]=0,o[t+976>>2]=0,o[t+980>>2]=0,s[t+984>>2]=1,o[e+0>>2]=0,o[e+4>>2]=0,o[e+8>>2]=0,o[e+12>>2]=0,o[e+16>>2]=0,V=+s[T+300>>2],F=+s[T+304>>2],B=+s[T+308>>2],O=0|o[T+28>>2],P=V*+s[O+20>>2]+F*+s[O+24>>2]+B*+s[O+28>>2]+ +s[O+56>>2],R=V*+s[O+36>>2]+F*+s[O+40>>2]+B*+s[O+44>>2]+ +s[O+60>>2],s[t+992>>2]=V*+s[O+4>>2]+F*+s[O+8>>2]+B*+s[O+12>>2]+ +s[O+52>>2],s[t+996>>2]=P,s[t+1e3>>2]=R,s[t+1004>>2]=0,O=0|an[127&o[20+(0|o[i>>2])>>2]](i),Bn[3&o[56+(0|o[O>>2])>>2]](O,t+944|0,E),R=+s[T+316>>2],P=+s[T+320>>2],B=+s[T+324>>2],O=0|o[T+32>>2],F=R*+s[O+20>>2]+P*+s[O+24>>2]+B*+s[O+28>>2]+ +s[O+56>>2],V=R*+s[O+36>>2]+P*+s[O+40>>2]+B*+s[O+44>>2]+ +s[O+60>>2],s[t+992>>2]=R*+s[O+4>>2]+P*+s[O+8>>2]+B*+s[O+12>>2]+ +s[O+52>>2],s[t+996>>2]=F,s[t+1e3>>2]=V,s[t+1004>>2]=0,!(1&N)){T=M;continue t}T=0|an[127&o[20+(0|o[i>>2])>>2]](i),Bn[3&o[56+(0|o[T>>2])>>2]](T,t+944|0,E),T=M;continue t;case 7:if(o[t+96>>2]=o[T+824>>2],o[t+100>>2]=o[T+828>>2],o[t+104>>2]=o[T+832>>2],o[t+108>>2]=o[T+836>>2],o[r+0>>2]=o[T+840>>2],o[r+4>>2]=o[T+844>>2],o[r+8>>2]=o[T+848>>2],o[r+12>>2]=o[T+852>>2],o[f+0>>2]=o[T+856>>2],o[f+4>>2]=o[T+860>>2],o[f+8>>2]=o[T+864>>2],o[f+12>>2]=o[T+868>>2],o[a+0>>2]=o[T+872>>2],o[a+4>>2]=o[T+876>>2],o[a+8>>2]=o[T+880>>2],o[a+12>>2]=o[T+884>>2],1&N?(N=0|an[127&o[20+(0|o[i>>2])>>2]](i),Bn[3&o[56+(0|o[N>>2])>>2]](N,t+96|0,E),o[t+96>>2]=o[T+888>>2],o[t+100>>2]=o[T+892>>2],o[t+104>>2]=o[T+896>>2],o[t+108>>2]=o[T+900>>2],o[r+0>>2]=o[T+904>>2],o[r+4>>2]=o[T+908>>2],o[r+8>>2]=o[T+912>>2],o[r+12>>2]=o[T+916>>2],o[f+0>>2]=o[T+920>>2],o[f+4>>2]=o[T+924>>2],o[f+8>>2]=o[T+928>>2],o[f+12>>2]=o[T+932>>2],o[a+0>>2]=o[T+936>>2],o[a+4>>2]=o[T+940>>2],o[a+8>>2]=o[T+944>>2],o[a+12>>2]=o[T+948>>2],N=0|an[127&o[20+(0|o[i>>2])>>2]](i),Bn[3&o[56+(0|o[N>>2])>>2]](N,t+96|0,E)):(o[t+96>>2]=o[T+888>>2],o[t+100>>2]=o[T+892>>2],o[t+104>>2]=o[T+896>>2],o[t+108>>2]=o[T+900>>2],o[r+0>>2]=o[T+904>>2],o[r+4>>2]=o[T+908>>2],o[r+8>>2]=o[T+912>>2],o[r+12>>2]=o[T+916>>2],o[f+0>>2]=o[T+920>>2],o[f+4>>2]=o[T+924>>2],o[f+8>>2]=o[T+928>>2],o[f+12>>2]=o[T+932>>2],o[a+0>>2]=o[T+936>>2],o[a+4>>2]=o[T+940>>2],o[a+8>>2]=o[T+944>>2],o[a+12>>2]=o[T+948>>2]),!(1&I)){T=M;continue t}N=0|n[T+180|0]?T+824|0:T+888|0,U=+s[N>>2],B=+s[N+4>>2],R=+s[N+16>>2],V=+s[N+20>>2],P=+s[N+32>>2],F=+s[N+36>>2],K=+s[N+48>>2],H=+s[N+52>>2],X=+s[N+56>>2],W=+s[T+184>>2],q=0*+s[N+8>>2],$=0*+s[N+24>>2],z=0*+s[N+40>>2],s[t+80>>2]=K+(q+(0*B+U*W)),s[t+84>>2]=H+($+(0*V+R*W)),s[t+88>>2]=X+(z+(0*F+P*W)),s[t+92>>2]=0,W=+s[T+188>>2],s[t+64>>2]=K+(q+(0*B+U*W)),s[t+68>>2]=H+($+(0*V+R*W)),s[t+72>>2]=X+(z+(0*F+P*W)),s[t+76>>2]=0,N=0|an[127&o[20+(0|o[i>>2])>>2]](i),O=0|o[8+(0|o[N>>2])>>2],o[t+48>>2]=0,o[t+52>>2]=0,o[t+56>>2]=0,o[t+60>>2]=0,Vn[63&O](N,t+80|0,t+64|0,t+48|0),s[t+32>>2]=U,s[t+36>>2]=R,s[t+40>>2]=P,s[t+44>>2]=0,s[t+16>>2]=B,s[t+20>>2]=V,s[t+24>>2]=F,s[t+28>>2]=0,F=+s[T+192>>2],V=+s[T+196>>2],N=0|an[127&o[20+(0|o[i>>2])>>2]](i),O=0|o[60+(0|o[N>>2])>>2],o[t+0>>2]=0,o[t+4>>2]=0,o[t+8>>2]=0,o[t+12>>2]=0,vn[0&O](N,T+936|0,t+32|0,t+16|0,E,E,F,V,t,1,10),T=M;continue t;case 4:if(nt(t+880|0,4+(0|o[T+28>>2])|0,T+552|0),1&N?(N=0|an[127&o[20+(0|o[i>>2])>>2]](i),Bn[3&o[56+(0|o[N>>2])>>2]](N,t+880|0,E),nt(t+816|0,4+(0|o[T+32>>2])|0,T+616|0),o[t+880>>2]=o[t+816>>2],o[t+884>>2]=o[t+820>>2],o[t+888>>2]=o[t+824>>2],o[t+892>>2]=o[t+828>>2],o[g+0>>2]=o[k+0>>2],o[g+4>>2]=o[k+4>>2],o[g+8>>2]=o[k+8>>2],o[g+12>>2]=o[k+12>>2],o[j+0>>2]=o[C+0>>2],o[j+4>>2]=o[C+4>>2],o[j+8>>2]=o[C+8>>2],o[j+12>>2]=o[C+12>>2],o[x+0>>2]=o[S+0>>2],o[x+4>>2]=o[S+4>>2],o[x+8>>2]=o[S+8>>2],o[x+12>>2]=o[S+12>>2],N=0|an[127&o[20+(0|o[i>>2])>>2]](i),Bn[3&o[56+(0|o[N>>2])>>2]](N,t+880|0,E)):(nt(t+816|0,4+(0|o[T+32>>2])|0,T+616|0),o[t+880>>2]=o[t+816>>2],o[t+884>>2]=o[t+820>>2],o[t+888>>2]=o[t+824>>2],o[t+892>>2]=o[t+828>>2],o[g+0>>2]=o[k+0>>2],o[g+4>>2]=o[k+4>>2],o[g+8>>2]=o[k+8>>2],o[g+12>>2]=o[k+12>>2],o[j+0>>2]=o[C+0>>2],o[j+4>>2]=o[C+4>>2],o[j+8>>2]=o[C+8>>2],o[j+12>>2]=o[C+12>>2],o[x+0>>2]=o[S+0>>2],o[x+4>>2]=o[S+4>>2],o[x+8>>2]=o[S+8>>2],o[x+12>>2]=o[S+12>>2]),(R=+L(+(+s[T+688>>2]-+s[T+692>>2]),6.2831854820251465))<-3.1415927410125732?R+=6.2831854820251465:R>3.1415927410125732&&(R+=-6.2831854820251465),(P=+L(+(+s[T+688>>2]+ +s[T+692>>2]),6.2831854820251465))<-3.1415927410125732?P+=6.2831854820251465:P>3.1415927410125732&&(P+=-6.2831854820251465),R==P){T=M;continue t}if(T=R>P,!(1&I)){T=M;continue t}s[t+800>>2]=+s[t+888>>2],s[t+804>>2]=+s[t+904>>2],s[t+808>>2]=+s[t+920>>2],s[t+812>>2]=0,s[t+784>>2]=+s[t+880>>2],s[t+788>>2]=+s[t+896>>2],s[t+792>>2]=+s[t+912>>2],s[t+796>>2]=0,N=0|an[127&o[20+(0|o[i>>2])>>2]](i),K=T?6.2831854820251465:P,q=T?0:R,O=0|o[60+(0|o[N>>2])>>2],o[t+768>>2]=0,o[t+772>>2]=0,o[t+776>>2]=0,o[t+780>>2]=0,vn[0&O](N,x,t+800|0,t+784|0,E,E,q,K,t+768|0,1^T,10),T=M;continue t;case 6:case 9:if(o[t+320>>2]=o[T+1064>>2],o[t+324>>2]=o[T+1068>>2],o[t+328>>2]=o[T+1072>>2],o[t+332>>2]=o[T+1076>>2],D=T+1080|0,o[c+0>>2]=o[D+0>>2],o[c+4>>2]=o[D+4>>2],o[c+8>>2]=o[D+8>>2],o[c+12>>2]=o[D+12>>2],O=T+1096|0,o[h+0>>2]=o[O+0>>2],o[h+4>>2]=o[O+4>>2],o[h+8>>2]=o[O+8>>2],o[h+12>>2]=o[O+12>>2],A=T+1112|0,o[l+0>>2]=o[A+0>>2],o[l+4>>2]=o[A+4>>2],o[l+8>>2]=o[A+8>>2],o[l+12>>2]=o[A+12>>2],1&N?(N=0|an[127&o[20+(0|o[i>>2])>>2]](i),Bn[3&o[56+(0|o[N>>2])>>2]](N,t+320|0,E),o[t+320>>2]=o[T+1128>>2],o[t+324>>2]=o[T+1132>>2],o[t+328>>2]=o[T+1136>>2],o[t+332>>2]=o[T+1140>>2],o[c+0>>2]=o[T+1144>>2],o[c+4>>2]=o[T+1148>>2],o[c+8>>2]=o[T+1152>>2],o[c+12>>2]=o[T+1156>>2],o[h+0>>2]=o[T+1160>>2],o[h+4>>2]=o[T+1164>>2],o[h+8>>2]=o[T+1168>>2],o[h+12>>2]=o[T+1172>>2],o[l+0>>2]=o[T+1176>>2],o[l+4>>2]=o[T+1180>>2],o[l+8>>2]=o[T+1184>>2],o[l+12>>2]=o[T+1188>>2],N=0|an[127&o[20+(0|o[i>>2])>>2]](i),Bn[3&o[56+(0|o[N>>2])>>2]](N,t+320|0,E)):(o[t+320>>2]=o[T+1128>>2],o[t+324>>2]=o[T+1132>>2],o[t+328>>2]=o[T+1136>>2],o[t+332>>2]=o[T+1140>>2],o[c+0>>2]=o[T+1144>>2],o[c+4>>2]=o[T+1148>>2],o[c+8>>2]=o[T+1152>>2],o[c+12>>2]=o[T+1156>>2],o[h+0>>2]=o[T+1160>>2],o[h+4>>2]=o[T+1164>>2],o[h+8>>2]=o[T+1168>>2],o[h+12>>2]=o[T+1172>>2],o[l+0>>2]=o[T+1176>>2],o[l+4>>2]=o[T+1180>>2],o[l+8>>2]=o[T+1184>>2],o[l+12>>2]=o[T+1188>>2]),!(1&I)){T=M;continue t}o[t+320>>2]=o[T+1064>>2],o[t+324>>2]=o[T+1068>>2],o[t+328>>2]=o[T+1072>>2],o[t+332>>2]=o[T+1076>>2],o[c+0>>2]=o[D+0>>2],o[c+4>>2]=o[D+4>>2],o[c+8>>2]=o[D+8>>2],o[c+12>>2]=o[D+12>>2],o[h+0>>2]=o[O+0>>2],o[h+4>>2]=o[O+4>>2],o[h+8>>2]=o[O+8>>2],o[h+12>>2]=o[O+12>>2],o[l+0>>2]=o[A+0>>2],o[l+4>>2]=o[A+4>>2],o[l+8>>2]=o[A+8>>2],o[l+12>>2]=o[A+12>>2],I=T+1176|0,s[t+304>>2]=+s[t+328>>2],s[t+308>>2]=+s[t+344>>2],s[t+312>>2]=+s[t+360>>2],s[t+316>>2]=0,s[t+288>>2]=+s[t+320>>2],s[t+292>>2]=+s[t+336>>2],s[t+296>>2]=+s[t+352>>2],s[t+300>>2]=0,H=+s[T+932>>2],P=+s[T+936>>2],K=+s[T+996>>2],$=+s[T+1e3>>2],N=0|an[127&o[20+(0|o[i>>2])>>2]](i),Y=0|o[64+(0|o[N>>2])>>2],o[t+272>>2]=0,o[t+276>>2]=0,o[t+280>>2]=0,o[t+284>>2]=0,In[0&Y](N,I,t+304|0,t+288|0,.8999999761581421*E,H,P,K,$,t+272|0,10,1),$=+s[t+324>>2],K=+s[t+340>>2],P=+s[t+356>>2],s[t+288>>2]=$,s[t+292>>2]=K,s[t+296>>2]=P,s[t+300>>2]=0,H=+s[T+1196>>2],q=+s[T+1200>>2],R=+p(+H),H=+m(+H),X=+p(+q),q=+m(+q),s[t+256>>2]=R*X*$+R*q*K-H*P,s[t+260>>2]=X*K-q*$,s[t+264>>2]=H*X*$+H*q*K+R*P,o[t+320>>2]=o[T+1128>>2],o[t+324>>2]=o[T+1132>>2],o[t+328>>2]=o[T+1136>>2],o[t+332>>2]=o[T+1140>>2],o[c+0>>2]=o[T+1144>>2],o[c+4>>2]=o[T+1148>>2],o[c+8>>2]=o[T+1152>>2],o[c+12>>2]=o[T+1156>>2],o[h+0>>2]=o[T+1160>>2],o[h+4>>2]=o[T+1164>>2],o[h+8>>2]=o[T+1168>>2],o[h+12>>2]=o[T+1172>>2],o[l+0>>2]=o[I+0>>2],o[l+4>>2]=o[I+4>>2],o[l+8>>2]=o[I+8>>2],o[l+12>>2]=o[I+12>>2],P=-+s[t+336>>2],R=-+s[t+352>>2],s[t+240>>2]=-+s[t+320>>2],s[t+244>>2]=P,s[t+248>>2]=R,s[t+252>>2]=0,(R=+s[T+868>>2])>(P=+s[T+872>>2])?(Y=0|an[127&o[20+(0|o[i>>2])>>2]](i),N=0|o[60+(0|o[Y>>2])>>2],o[t+224>>2]=0,o[t+228>>2]=0,o[t+232>>2]=0,o[t+236>>2]=0,vn[0&N](Y,I,t+240|0,t+256|0,E,E,-3.1415927410125732,3.1415927410125732,t+224|0,0,10)):R<P&&(Y=0|an[127&o[20+(0|o[i>>2])>>2]](i),N=0|o[60+(0|o[Y>>2])>>2],o[t+208>>2]=0,o[t+212>>2]=0,o[t+216>>2]=0,o[t+220>>2]=0,vn[0&N](Y,I,t+240|0,t+256|0,E,E,R,P,t+208|0,1,10)),o[t+320>>2]=o[T+1064>>2],o[t+324>>2]=o[T+1068>>2],o[t+328>>2]=o[T+1072>>2],o[t+332>>2]=o[T+1076>>2],o[c+0>>2]=o[D+0>>2],o[c+4>>2]=o[D+4>>2],o[c+8>>2]=o[D+8>>2],o[c+12>>2]=o[D+12>>2],o[h+0>>2]=o[O+0>>2],o[h+4>>2]=o[O+4>>2],o[h+8>>2]=o[O+8>>2],o[h+12>>2]=o[O+12>>2],o[l+0>>2]=o[A+0>>2],o[l+4>>2]=o[A+4>>2],o[l+8>>2]=o[A+8>>2],o[l+12>>2]=o[A+12>>2],o[t+192>>2]=o[T+680>>2],o[t+196>>2]=o[T+684>>2],o[t+200>>2]=o[T+688>>2],o[t+204>>2]=o[T+692>>2],o[t+176>>2]=o[T+696>>2],o[t+180>>2]=o[T+700>>2],o[t+184>>2]=o[T+704>>2],o[t+188>>2]=o[T+708>>2],T=0|an[127&o[20+(0|o[i>>2])>>2]](i),Y=0|o[72+(0|o[T>>2])>>2],o[t+160>>2]=0,o[t+164>>2]=0,o[t+168>>2]=0,o[t+172>>2]=0,tn[31&Y](T,t+192|0,t+176|0,t+320|0,t+160|0),T=M;continue t;default:T=M;continue t}}}}while(0);if(0|an[127&o[20+(0|o[i>>2])>>2]](i)&&(Y=0|an[127&o[20+(0|o[i>>2])>>2]](i),16387&an[127&o[48+(0|o[Y>>2])>>2]](Y))&&0|an[127&o[20+(0|o[i>>2])>>2]](i)&&(Y=0|an[127&o[20+(0|o[i>>2])>>2]](i),0|an[127&o[48+(0|o[Y>>2])>>2]](Y))&&(0|o[i+280>>2])>0){e=0;do{Y=0|o[(0|o[i+288>>2])+(e<<2)>>2],on[127&o[12+(0|o[Y>>2])>>2]](Y,0|o[i+72>>2]),e=e+1|0}while((0|e)<(0|o[i+280>>2]))}if(i=0|o[4564],Y=(0|o[i+16>>2])-1|0,o[i+16>>2]=Y,0|Y)u=t;else{do{if(0|o[i+4>>2]){if(G(t+1008|0,0),Y=0|o[4550],s[i+8>>2]=+(((0|o[t+1012>>2])-(0|o[Y+4>>2])+(1e6*((0|o[t+1008>>2])-(0|o[Y>>2])|0)|0)-(0|o[i+12>>2])|0)>>>0)/1e3+ +s[i+8>>2],0|o[i+16>>2])return void(u=t);i=0|o[4564];break}}while(0);o[4564]=o[i+20>>2],u=t}},function(i){i|=0;var t,e=0,n=0,r=0;t=u,u=u+16|0,It(6696),nn[255&o[8+(0|o[i>>2])>>2]](i),nn[255&o[12+(0|o[i>>2])>>2]](i),e=0|o[i+24>>2],It(6736),0|e&&(r=0|o[32+(0|o[e>>2])>>2],n=0|o[i+68>>2],n=0|an[127&o[36+(0|o[n>>2])>>2]](n),Vn[63&r](e,n,i+28|0,0|o[i+24>>2])),i=0|o[4564],r=(0|o[i+16>>2])-1|0,o[i+16>>2]=r;do{if(!(0|r)){if(0|o[i+4>>2]){if(G(0|t,0),e=0|o[4550],s[i+8>>2]=+(((0|o[t+4>>2])-(0|o[e+4>>2])+(1e6*((0|o[t>>2])-(0|o[e>>2])|0)|0)-(0|o[i+12>>2])|0)>>>0)/1e3+ +s[i+8>>2],e=0|o[4564],0|o[i+16>>2]){i=e;break}i=e}i=0|o[i+20>>2],o[4564]=i}}while(0);if(r=(0|o[(e=i+16|0)>>2])-1|0,o[e>>2]=r,0|r)u=t;else{do{if(0|o[i+4>>2]){if(G(0|t,0),n=0|o[4550],s[(r=i+8|0)>>2]=+(((0|o[t+4>>2])-(0|o[n+4>>2])+(1e6*((0|o[t>>2])-(0|o[n>>2])|0)|0)-(0|o[i+12>>2])|0)>>>0)/1e3+ +s[r>>2],0|o[e>>2])return void(u=t);i=0|o[4564];break}}while(0);o[4564]=o[i+20>>2],u=t}},function(i){i|=0;var t,e=0,r=0,f=0,a=0,c=0,h=0;if(t=u,u=u+144|0,It(1328),0|n[i+274|0]){if((0|(c=0|o[i+8>>2]))>0){f=0;do{0|(a=0|o[(0|o[i+16>>2])+(f<<2)>>2])&&2&o[a+236>>2]&&0|o[a+480>>2]&&!(3&o[a+204>>2])&&(e=0|n[i+300|0]&&0!=(r=+s[i+268>>2])?+s[i+264>>2]-r:+s[i+264>>2]*+s[a+244>>2],bt(a+68|0,+s[a+132>>2],+s[a+136>>2],+s[a+140>>2],a+148|0,e,t+64|0),c=0|o[a+480>>2],on[127&o[12+(0|o[c>>2])>>2]](c,t+64|0),c=0|o[i+8>>2]),f=f+1|0}while((0|f)<(0|c))}}else if((0|(c=0|o[i+232>>2]))>0){f=0;do{a=0|o[(0|o[i+240>>2])+(f<<2)>>2],2==(0|(h=0|o[a+216>>2]))|5==(0|h)||!(0|o[a+480>>2])||3&o[a+204>>2]||(r=0|n[i+300|0]&&0!=(e=+s[i+268>>2])?+s[i+264>>2]-e:+s[i+264>>2]*+s[a+244>>2],bt(a+68|0,+s[a+132>>2],+s[a+136>>2],+s[a+140>>2],a+148|0,r,t),c=0|o[a+480>>2],on[127&o[12+(0|o[c>>2])>>2]](c,t),c=0|o[i+232>>2]),f=f+1|0}while((0|f)<(0|c))}if(i=0|o[4564],h=(0|o[i+16>>2])-1|0,o[i+16>>2]=h,0|h)u=t;else{do{if(0|o[i+4>>2]){if(G(t+128|0,0),h=0|o[4550],s[i+8>>2]=+(((0|o[t+132>>2])-(0|o[h+4>>2])+(1e6*((0|o[t+128>>2])-(0|o[h>>2])|0)|0)-(0|o[i+12>>2])|0)>>>0)/1e3+ +s[i+8>>2],0|o[i+16>>2])return void(u=t);i=0|o[4564];break}}while(0);o[4564]=o[i+20>>2],u=t}},function(i){var t,e=0,n=0;if(t=u,(0|o[(i|=0)+232>>2])<=0)u=t;else{e=0;do{n=412+(0|o[(0|o[i+240>>2])+(e<<2)>>2])|0,o[n+0>>2]=0,o[n+4>>2]=0,o[n+8>>2]=0,o[n+12>>2]=0,o[n+16>>2]=0,o[n+20>>2]=0,o[n+24>>2]=0,o[n+28>>2]=0,e=e+1|0}while((0|e)<(0|o[i+232>>2]));u=t}},function(i){i|=0;var t,e=0,r=0,f=0,a=0,c=0,h=0,l=0,d=0,v=0,b=0;if(t=u,u=u+16|0,It(1464),b=0|o[i+204>>2],Pn[63&o[8+(0|o[b>>2])>>2]](b,i,0|o[i+24>>2]),(0|o[i+308>>2])>0){f=0|o[i+316>>2],a=0;do{if(c=0|o[f+(a<<2)>>2],h=0|o[c+740>>2],c=0|o[c+744>>2],0|h&&(0|c&&!(3&o[h+204>>2]))&&!(3&o[c+204>>2])){if(l=0|o[h+208>>2],h=0|o[c+208>>2],c=0|o[16+(0|o[i+204>>2])>>2],(0|(d=0|o[c+(l<<3)>>2]))!=(0|l)){v=c+(l<<3)|0;do{l=c+(d<<3)|0,o[v>>2]=o[l>>2],l=0|o[l>>2],d=0|o[(v=c+(l<<3)|0)>>2]}while((0|l)!=(0|d))}if((0|(d=0|o[c+(h<<3)>>2]))!=(0|h)){v=c+(h<<3)|0;do{h=c+(d<<3)|0,o[v>>2]=o[h>>2],h=0|o[h>>2],d=0|o[(v=c+(h<<3)|0)>>2]}while((0|h)!=(0|d))}(0|l)!=(0|h)&&(o[c+(l<<3)>>2]=h,o[(b=c+(h<<3)+4|0)>>2]=(0|o[b>>2])+(0|o[c+(l<<3)+4>>2]))}a=a+1|0}while((0|a)<(0|o[i+308>>2]))}if((0|(f=0|o[i+212>>2]))>0){c=0|o[i+220>>2],a=0;do{if(h=0|o[c+(a<<2)>>2],0|n[h+20|0]&&(e=0|o[h+28>>2],r=0|o[h+32>>2],0|e)&&(0|r&&!(3&o[e+204>>2]))&&!(3&o[r+204>>2])){if(d=0|o[e+208>>2],l=0|o[r+208>>2],h=0|o[16+(0|o[i+204>>2])>>2],(0|(v=0|o[h+(d<<3)>>2]))!=(0|d)){b=h+(d<<3)|0;do{d=h+(v<<3)|0,o[b>>2]=o[d>>2],d=0|o[d>>2],v=0|o[(b=h+(d<<3)|0)>>2]}while((0|d)!=(0|v))}if((0|(v=0|o[h+(l<<3)>>2]))!=(0|l)){b=h+(l<<3)|0;do{l=h+(v<<3)|0,o[b>>2]=o[l>>2],l=0|o[l>>2],v=0|o[(b=h+(l<<3)|0)>>2]}while((0|l)!=(0|v))}(0|d)!=(0|l)&&(o[h+(d<<3)>>2]=l,o[(b=h+(l<<3)+4|0)>>2]=(0|o[b>>2])+(0|o[h+(d<<3)+4>>2]))}a=a+1|0}while((0|a)!=(0|f))}if(b=0|o[i+204>>2],on[127&o[12+(0|o[b>>2])>>2]](b,i),i=0|o[4564],b=(0|o[i+16>>2])-1|0,o[i+16>>2]=b,0|b)u=t;else{do{if(0|o[i+4>>2]){if(G(0|t,0),b=0|o[4550],s[i+8>>2]=+(((0|o[t+4>>2])-(0|o[b+4>>2])+(1e6*((0|o[t>>2])-(0|o[b>>2])|0)|0)-(0|o[i+12>>2])|0)>>>0)/1e3+ +s[i+8>>2],0|o[i+16>>2])return void(u=t);i=0|o[4564];break}}while(0);o[4564]=o[i+20>>2],u=t}},function(i){var t,e,n=0,r=0,f=0,a=0,c=0;if(t=u,(0|(e=0|o[(i|=0)+232>>2]))<=0)u=t;else{i=0|o[i+240>>2],n=0;do{r=0|o[i+(n<<2)>>2],2==(0|(f=0|o[r+216>>2]))|5==(0|f)||3&o[r+204>>2]||(c=+s[r+368>>2]*+s[r+352>>2],a=+s[r+372>>2]*+s[r+356>>2],s[r+412>>2]=+s[r+364>>2]*+s[r+348>>2]+ +s[r+412>>2],s[r+416>>2]=c+ +s[r+416>>2],s[r+420>>2]=a+ +s[r+420>>2]),n=n+1|0}while((0|n)<(0|e));u=t}},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){var t;t=u,Rt(i|=0),u=t},function(i){var t;t=u,Rt(i|=0),0|i?(ke(i),u=t):u=t},function(i){0},function(i){var t;t=u,0|(i|=0)?(o[4548]=1+(0|o[4548]),ke(0|o[i+-4>>2]),u=t):u=t},function(i){var t,e=0,n=0,r=0,f=0,a=0,c=0,h=0,l=0,d=0,v=0,b=0,_=0,w=0,p=0,m=0,y=0,k=0,g=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0,L=0,I=0,A=0;t=u,u=u+144|0,s[(i|=0)+36>>2]=0,o[t+128>>2]=0,o[t+132>>2]=0,o[t+136>>2]=0,o[t+140>>2]=0,e=0;do{s[(n=t+128+(e<<2)|0)>>2]=1,f=0|o[i+28>>2],A=+s[f+4>>2],s[t+80>>2]=A,E=+s[f+20>>2],s[t+84>>2]=E,a=+s[f+36>>2],s[t+88>>2]=a,s[t+92>>2]=0,I=+s[f+8>>2],s[t+96>>2]=I,M=+s[f+24>>2],s[t+100>>2]=M,y=+s[f+40>>2],s[t+104>>2]=y,s[t+108>>2]=0,L=+s[f+12>>2],s[t+112>>2]=L,x=+s[f+28>>2],s[t+116>>2]=x,d=+s[f+44>>2],s[t+120>>2]=d,s[t+124>>2]=0,r=0|o[i+32>>2],C=+s[r+4>>2],s[t+32>>2]=C,m=+s[r+20>>2],s[t+36>>2]=m,v=+s[r+36>>2],s[t+40>>2]=v,s[t+44>>2]=0,g=+s[r+8>>2],s[t+48>>2]=g,p=+s[r+24>>2],s[t+52>>2]=p,l=+s[r+40>>2],s[t+56>>2]=l,s[t+60>>2]=0,k=+s[r+12>>2],s[t+64>>2]=k,w=+s[r+28>>2],s[t+68>>2]=w,c=+s[r+44>>2],s[t+72>>2]=c,s[t+76>>2]=0,j=+s[i+300>>2],_=+s[i+304>>2],h=+s[i+308>>2],T=+s[f+52>>2],S=+s[f+56>>2],b=+s[f+60>>2],s[t+16>>2]=j*A+_*I+h*L+T-T,s[t+20>>2]=j*E+_*M+h*x+S-S,s[t+24>>2]=j*a+_*y+h*d+b-b,s[t+28>>2]=0,b=+s[i+316>>2],d=+s[i+320>>2],h=+s[i+324>>2],y=+s[r+52>>2],_=+s[r+56>>2],a=+s[r+60>>2],s[t>>2]=b*C+d*g+h*k+y-y,s[t+4>>2]=b*m+d*p+h*w+_-_,s[t+8>>2]=b*v+d*l+h*c+a-a,s[t+12>>2]=0,pt(i+(84*e|0)+48|0,t+80|0,t+32|0,t+16|0,t,t+128|0,(f=0|o[i+28>>2])+396|0,+s[f+344>>2],r+396|0,+s[r+344>>2]),s[n>>2]=0,e=e+1|0}while(3!=(0|e));u=t},Pt,function(i){var t;t=u,Pt(i|=0),0|i&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){var t,e;t=u,o[(i|=0)>>2]=3216,0|(e=0|o[i+496>>2])&&(0|n[i+500|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+496>>2]=0),n[i+500|0]=1,o[i+496>>2]=0,o[i+488>>2]=0,o[i+492>>2]=0,u=t},function(i){var t,e=0;if(t=u,o[(i|=0)>>2]=3216,!(0|(e=0|o[i+496>>2])))return n[i+500|0]=1,o[i+496>>2]=0,o[i+488>>2]=0,o[i+492>>2]=0,e=(e=0|o[4548])+1|0,o[4548]=e,ke(e=0|o[(e=i+-4|0)>>2]),void(u=t);0|n[i+500|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),n[i+500|0]=1,o[i+496>>2]=0,o[i+488>>2]=0,o[i+492>>2]=0,e=(e=0|o[4548])+1|0,o[4548]=e,ke(e=0|o[(e=i+-4|0)>>2]),u=t},zt,function(i){var t;t=u,zt(i|=0),0|i?(o[4548]=1+(0|o[4548]),ke(0|o[i+-4>>2]),u=t):u=t},function(i){o[(i|=0)+192>>2]=0},function(i){var t;t=u,pi(i|=0),u=t},function(i){var t;t=u,pi(i|=0),0|i?(o[4548]=1+(0|o[4548]),ke(0|o[i+-4>>2]),u=t):u=t},function(i){0},function(i){var t;t=u,pi(i|=0),u=t},function(i){var t;t=u,pi(i|=0),0|i?(o[4548]=1+(0|o[4548]),ke(0|o[i+-4>>2]),u=t):u=t},function(i){var t,e;t=u,o[(i|=0)>>2]=4464,0|(e=0|o[i+16>>2])&&(0|n[i+20|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+16>>2]=0),n[i+20|0]=1,o[i+16>>2]=0,o[i+8>>2]=0,o[i+12>>2]=0,u=t},function(i){var t,e;t=u,o[(i|=0)>>2]=4464,!(0|(e=0|o[i+16>>2]))||(0|n[i+20|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),0|i)?(ke(i),u=t):u=t},function(i){var t,e;t=u,o[(i|=0)>>2]=14224,0|(e=0|o[i+52>>2])?(nn[255&o[o[e>>2]>>2]](e),0|(i=0|o[i+52>>2])?(o[4548]=1+(0|o[4548]),ke(0|o[i+-4>>2]),u=t):u=t):u=t},function(i){var t,e=0;t=u,o[(i|=0)>>2]=14224,!(0|(e=0|o[i+52>>2]))||(nn[255&o[o[e>>2]>>2]](e),0|(e=0|o[i+52>>2])&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),0|i)?(o[4548]=1+(0|o[4548]),ke(0|o[i+-4>>2]),u=t):u=t},function(i){var t,e;t=u,o[(i|=0)>>2]=4848,0|n[i+61|0]?(e=0|o[i+52>>2],nn[255&o[o[e>>2]>>2]](e),0|(i=0|o[i+52>>2])?(o[4548]=1+(0|o[4548]),ke(0|o[i+-4>>2]),u=t):u=t):u=t},function(i){var t,e=0;t=u,o[(i|=0)>>2]=4848,!(0|n[i+61|0])||(e=0|o[i+52>>2],nn[255&o[o[e>>2]>>2]](e),0|(e=0|o[i+52>>2])&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),0|i)?(o[4548]=1+(0|o[4548]),ke(0|o[i+-4>>2]),u=t):u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)?(o[4548]=1+(0|o[4548]),ke(0|o[i+-4>>2]),u=t):u=t},function(i){0},function(i){var t;t=u,0|(i|=0)?(o[4548]=1+(0|o[4548]),ke(0|o[i+-4>>2]),u=t):u=t},function(i){0},function(i){var t;t=u,0|(i|=0)?(o[4548]=1+(0|o[4548]),ke(0|o[i+-4>>2]),u=t):u=t},function(i){var t,e;t=u,o[(i|=0)>>2]=6032,0|(e=0|o[i+20>>2])&&(0|n[i+24|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+20>>2]=0),n[i+24|0]=1,o[i+20>>2]=0,o[i+12>>2]=0,o[i+16>>2]=0,u=t},function(i){var t,e;if(t=u,o[(i|=0)>>2]=6032,!(0|(e=0|o[i+20>>2])))return n[i+24|0]=1,o[i+20>>2]=0,o[i+12>>2]=0,o[i+16>>2]=0,ke(i),void(u=t);0|n[i+24|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),n[i+24|0]=1,o[i+20>>2]=0,o[i+12>>2]=0,o[i+16>>2]=0,ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},Bi,function(i){var t;t=u,Bi(i|=0),0|i&&ke(i),u=t},Xi,function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,ke((i|=0)+-4|0),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){var t,e=0,r=0;t=u,o[(i|=0)>>2]=8656,0|(e=0|o[i+64>>2])&&(Si(e),0|(r=0|o[i+64>>2]))&&(o[4548]=1+(0|o[4548]),ke(0|o[r+-4>>2])),0|(e=0|o[i+24>>2])&&(0|n[i+28|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+24>>2]=0),n[i+28|0]=1,o[i+24>>2]=0,o[i+16>>2]=0,o[i+20>>2]=0,u=t},function(i){var t,e=0,r=0;t=u,o[(i|=0)>>2]=8656,0|(e=0|o[i+64>>2])&&(Si(e),0|(r=0|o[i+64>>2]))&&(o[4548]=1+(0|o[4548]),ke(0|o[r+-4>>2])),0|(e=0|o[i+24>>2])&&(0|n[i+28|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+24>>2]=0),n[i+28|0]=1,o[i+24>>2]=0,o[i+16>>2]=0,o[i+20>>2]=0,0|i?(o[4548]=1+(0|o[4548]),ke(0|o[i+-4>>2]),u=t):u=t},function(i){var t,e=0,n=0,r=0,f=0;if(t=u,u=u+32|0,s[(i|=0)+32>>2]=0xde0b6b000000000,s[i+36>>2]=0xde0b6b000000000,s[i+40>>2]=0xde0b6b000000000,s[i+44>>2]=0,s[i+48>>2]=-0xde0b6b000000000,s[i+52>>2]=-0xde0b6b000000000,s[i+56>>2]=-0xde0b6b000000000,s[i+60>>2]=0,(0|o[i+16>>2])<=0)u=t;else{e=0;do{r=0|o[i+24>>2],f=0|o[r+(80*e|0)+64>>2],Vn[63&o[8+(0|o[f>>2])>>2]](f,r+(80*e|0)|0,t+16|0,t),n=+s[t+16>>2],+s[i+32>>2]>n&&(s[i+32>>2]=n),n=+s[t>>2],+s[i+48>>2]<n&&(s[i+48>>2]=n),n=+s[t+20>>2],+s[i+36>>2]>n&&(s[i+36>>2]=n),n=+s[t+4>>2],+s[i+52>>2]<n&&(s[i+52>>2]=n),n=+s[t+24>>2],+s[i+40>>2]>n&&(s[i+40>>2]=n),n=+s[t+8>>2],+s[i+56>>2]<n&&(s[i+56>>2]=n),e=e+1|0}while((0|e)<(0|o[i+16>>2]));u=t}},function(i){0},function(i){var t;t=u,0|(i|=0)?(o[4548]=1+(0|o[4548]),ke(0|o[i+-4>>2]),u=t):u=t},function(i){0},function(i){var t;t=u,0|(i|=0)?(o[4548]=1+(0|o[4548]),ke(0|o[i+-4>>2]),u=t):u=t},function(i){0},function(i){var t;t=u,0|(i|=0)?(o[4548]=1+(0|o[4548]),ke(0|o[i+-4>>2]),u=t):u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)?(o[4548]=1+(0|o[4548]),ke(0|o[i+-4>>2]),u=t):u=t},function(i){0},function(i){var t;t=u,0|(i|=0)?(o[4548]=1+(0|o[4548]),ke(0|o[i+-4>>2]),u=t):u=t},function(i){0},function(i){var t;t=u,0|(i|=0)?(o[4548]=1+(0|o[4548]),ke(0|o[i+-4>>2]),u=t):u=t},function(i){var t,e=0;t=u,o[(i|=0)>>2]=10096,0|n[i+192|0]&&(e=0|o[i+136>>2],nn[255&o[o[e>>2]>>2]](e),0|(e=0|o[i+136>>2]))&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),e=i+124|0;do{Si(e=e+-60|0)}while((0|e)!=(i+4|0));u=t},function(i){var t,e=0;t=u,o[(i|=0)>>2]=10096,0|n[i+192|0]&&(e=0|o[i+136>>2],nn[255&o[o[e>>2]>>2]](e),0|(e=0|o[i+136>>2]))&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),e=i+124|0;do{Si(e=e+-60|0)}while((0|e)!=(i+4|0));0|i?(ke(i),u=t):u=t},function(i){0},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},Ri,function(i){var t;t=u,Ri(i|=0),0|i?(ke(i),u=t):u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){var t;t=u,$(i|=0),u=t},function(i){var t;t=u,$(i|=0),0|i?(o[4548]=1+(0|o[4548]),ke(0|o[i+-4>>2]),u=t):u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},ct,function(i){var t;t=u,ct(i|=0),0|i?(ke(i),u=t):u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){var t,e;t=u,o[(i|=0)>>2]=14224,0|(e=0|o[i+52>>2])?(nn[255&o[o[e>>2]>>2]](e),0|(i=0|o[i+52>>2])?(o[4548]=1+(0|o[4548]),ke(0|o[i+-4>>2]),u=t):u=t):u=t},function(i){var t,e=0;t=u,o[(i|=0)>>2]=14224,!(0|(e=0|o[i+52>>2]))||(nn[255&o[o[e>>2]>>2]](e),0|(e=0|o[i+52>>2])&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),0|i)?(o[4548]=1+(0|o[4548]),ke(0|o[i+-4>>2]),u=t):u=t},$,function(i){var t;t=u,$(i|=0),0|i?(o[4548]=1+(0|o[4548]),ke(0|o[i+-4>>2]),u=t):u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){var t,e;t=u,o[(i|=0)>>2]=14224,0|(e=0|o[i+52>>2])?(nn[255&o[o[e>>2]>>2]](e),0|(i=0|o[i+52>>2])?(o[4548]=1+(0|o[4548]),ke(0|o[i+-4>>2]),u=t):u=t):u=t},function(i){var t,e=0;t=u,o[(i|=0)>>2]=14224,!(0|(e=0|o[i+52>>2]))||(nn[255&o[o[e>>2]>>2]](e),0|(e=0|o[i+52>>2])&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),0|i)?(o[4548]=1+(0|o[4548]),ke(0|o[i+-4>>2]),u=t):u=t},Q,function(i){var t;t=u,Q(i|=0),0|i?(ke(i),u=t):u=t},function(i){0},function(i){var t;t=u,0|(i|=0)?(o[4548]=1+(0|o[4548]),ke(0|o[i+-4>>2]),u=t):u=t},function(i){var t,e;t=u,o[(i|=0)>>2]=15144,0|n[i+8|0]&&0|(e=0|o[i+12>>2])?(i=0|o[i+4>>2],on[127&o[16+(0|o[i>>2])>>2]](i,e),u=t):u=t},function(i){var t,e,r;return t=u,o[(i|=0)>>2]=15144,0|n[i+8|0]&&0|(e=0|o[i+12>>2])?(r=0|o[i+4>>2],on[127&o[16+(0|o[r>>2])>>2]](r,e),ke(i),void(u=t)):(ke(i),void(u=t))},function(i){var t,e;t=u,o[(i|=0)>>2]=15232,0|n[i+8|0]&&0|(e=0|o[i+12>>2])?(i=0|o[i+4>>2],on[127&o[16+(0|o[i>>2])>>2]](i,e),u=t):u=t},function(i){var t,e,r;return t=u,o[(i|=0)>>2]=15232,0|n[i+8|0]&&0|(e=0|o[i+12>>2])?(r=0|o[i+4>>2],on[127&o[16+(0|o[r>>2])>>2]](r,e),ke(i),void(u=t)):(ke(i),void(u=t))},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){var t;t=u,ni(i|=0),u=t},function(i){var t;t=u,ni(i|=0),0|i?(o[4548]=1+(0|o[4548]),ke(0|o[i+-4>>2]),u=t):u=t},function(i){0},function(i){var t;t=u,0|(i|=0)?(o[4548]=1+(0|o[4548]),ke(0|o[i+-4>>2]),u=t):u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){var t,e;t=u,o[(i|=0)>>2]=16064,0|n[i+8|0]&&0|(e=0|o[i+12>>2])?(i=0|o[i+4>>2],on[127&o[16+(0|o[i>>2])>>2]](i,e),u=t):u=t},function(i){var t,e,r;return t=u,o[(i|=0)>>2]=16064,0|n[i+8|0]&&0|(e=0|o[i+12>>2])?(r=0|o[i+4>>2],on[127&o[16+(0|o[r>>2])>>2]](r,e),ke(i),void(u=t)):(ke(i),void(u=t))},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},we,function(i){var t;t=u,we(i|=0),0|i?(ke(i),u=t):u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},me,function(i){var t;t=u,me(i|=0),0|i?(ke(i),u=t):u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){var t,e=0;t=u,o[(i|=0)>>2]=16600,o[i+12>>2]=16632,e=0|o[i+60>>2],on[127&o[20+(0|o[e>>2])>>2]](e,0|o[i+76>>2]),e=0|o[i+60>>2],on[127&o[16+(0|o[e>>2])>>2]](e,0|o[i+76>>2]),u=t},function(i){var t,e=0;t=u,o[(i|=0)>>2]=16600,o[i+12>>2]=16632,e=0|o[i+60>>2],on[127&o[20+(0|o[e>>2])>>2]](e,0|o[i+76>>2]),e=0|o[i+60>>2],on[127&o[16+(0|o[e>>2])>>2]](e,0|o[i+76>>2]),0|i?(ke(i),u=t):u=t},function(i){var t,e=0;t=u,o[(i|=0)>>2]=16632,e=0|o[i+48>>2],on[127&o[20+(0|o[e>>2])>>2]](e,0|o[i+64>>2]),e=0|o[i+48>>2],on[127&o[16+(0|o[e>>2])>>2]](e,0|o[i+64>>2]),u=t},function(i){var t,e=0;t=u,o[(i|=0)>>2]=16632,e=0|o[i+48>>2],on[127&o[20+(0|o[e>>2])>>2]](e,0|o[i+64>>2]),e=0|o[i+48>>2],on[127&o[16+(0|o[e>>2])>>2]](e,0|o[i+64>>2]),0|i?(ke(i),u=t):u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){var t,e;t=u,o[(i|=0)>>2]=16984,0|n[i+16|0]&&0|(e=0|o[i+20>>2])?(i=0|o[i+4>>2],on[127&o[16+(0|o[i>>2])>>2]](i,e),u=t):u=t},function(i){var t,e,r;return t=u,o[(i|=0)>>2]=16984,0|n[i+16|0]&&0|(e=0|o[i+20>>2])?(r=0|o[i+4>>2],on[127&o[16+(0|o[r>>2])>>2]](r,e),ke(i),void(u=t)):(ke(i),void(u=t))},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){var t,e;t=u,o[(i|=0)>>2]=17576,0|n[i+8|0]&&0|(e=0|o[i+12>>2])?(i=0|o[i+4>>2],on[127&o[16+(0|o[i>>2])>>2]](i,e),u=t):u=t},function(i){var t,e=0,r=0;t=u,o[(i|=0)>>2]=17576,!(0|n[i+8|0])||(0|(e=0|o[i+12>>2])&&(r=0|o[i+4>>2],on[127&o[16+(0|o[r>>2])>>2]](r,e)),0|i)?(ke(i),u=t):u=t},ie,function(i){var t;t=u,ie(i|=0),0|i?(o[4548]=1+(0|o[4548]),ke(0|o[i+-4>>2]),u=t):u=t},le,function(i){var t;t=u,le(i|=0),0|i&&ke(i),u=t},function(i){var t,e;t=u,o[(i|=0)>>2]=18072,0|(e=0|o[i+32>>2])&&(0|n[i+36|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+32>>2]=0),n[i+36|0]=1,o[i+32>>2]=0,o[i+24>>2]=0,o[i+28>>2]=0,u=t},function(i){var t,e;t=u,o[(i|=0)>>2]=18072,0|(e=0|o[i+32>>2])?(0|n[i+36|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),n[i+36|0]=1,o[i+32>>2]=0,o[i+24>>2]=0,o[i+28>>2]=0):(n[i+36|0]=1,o[i+32>>2]=0,o[i+24>>2]=0,o[i+28>>2]=0),o[4548]=1+(0|o[4548]),ke(0|o[i+-4>>2]),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){0},function(i){0},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},function(i){var t;t=u,u=u+16|0,ke(i|=0),0|P(0|o[4612],0)?At(18576,t):u=t},Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie,Ie],rn=[function(i,t,e,n,r,o){n=+n,C(3)}],on=[Ae,function(i,t){t|=0;var e,n,r,f,a,c=0,h=0;e=u,u=u+176|0,et(e+128|0,(i|=0)+68|0,i+84|0,i+100|0,i+72|0,i+88|0,i+104|0,i+76|0,i+92|0,i+108|0),a=-+s[i+116>>2],f=-+s[i+120>>2],c=-+s[i+124>>2],n=+s[e+128>>2]*a+ +s[e+132>>2]*f+ +s[e+136>>2]*c,r=+s[e+144>>2]*a+ +s[e+148>>2]*f+ +s[e+152>>2]*c,c=+s[e+160>>2]*a+ +s[e+164>>2]*f+ +s[e+168>>2]*c,h=e;do{h=h+16|0}while((0|h)!=(e+48|0));o[e+0>>2]=o[e+128>>2],o[e+4>>2]=o[e+132>>2],o[e+8>>2]=o[e+136>>2],o[e+12>>2]=o[e+140>>2],o[e+16>>2]=o[e+144>>2],o[e+20>>2]=o[e+148>>2],o[e+24>>2]=o[e+152>>2],o[e+28>>2]=o[e+156>>2],o[e+32>>2]=o[e+160>>2],o[e+36>>2]=o[e+164>>2],o[e+40>>2]=o[e+168>>2],o[e+44>>2]=o[e+172>>2],s[e+48>>2]=n,s[e+52>>2]=r,s[e+56>>2]=c,s[e+60>>2]=0,nt(e+64|0,e,i+4|0),o[t+0>>2]=o[e+64>>2],o[t+4>>2]=o[e+68>>2],o[t+8>>2]=o[e+72>>2],o[t+12>>2]=o[e+76>>2],o[t+16>>2]=o[e+80>>2],o[t+20>>2]=o[e+84>>2],o[t+24>>2]=o[e+88>>2],o[t+28>>2]=o[e+92>>2],o[t+32>>2]=o[e+96>>2],o[t+36>>2]=o[e+100>>2],o[t+40>>2]=o[e+104>>2],o[t+44>>2]=o[e+108>>2],o[t+48>>2]=o[e+112>>2],o[t+52>>2]=o[e+116>>2],o[t+56>>2]=o[e+120>>2],o[t+60>>2]=o[e+124>>2],u=e},function(i,t){var e;e=u,u=u+64|0,nt(e,t|=0,(i|=0)+68|0),o[i+4>>2]=o[e+0>>2],o[i+8>>2]=o[e+4>>2],o[i+12>>2]=o[e+8>>2],o[i+16>>2]=o[e+12>>2],o[i+20>>2]=o[e+16>>2],o[i+24>>2]=o[e+20>>2],o[i+28>>2]=o[e+24>>2],o[i+32>>2]=o[e+28>>2],o[i+36>>2]=o[e+32>>2],o[i+40>>2]=o[e+36>>2],o[i+44>>2]=o[e+40>>2],o[i+48>>2]=o[e+44>>2],o[i+52>>2]=o[e+48>>2],o[i+56>>2]=o[e+52>>2],o[i+60>>2]=o[e+56>>2],o[i+64>>2]=o[e+60>>2],u=e},function(i,t){t|=0;var e,r,f,a=0,c=0,h=0;if(e=u,0|n[(i|=0)+527|0])return o[t>>2]=0,o[t+4>>2]=0,void(u=e);o[t>>2]=3,o[t+4>>2]=3,rt(i,(f=0|o[i+28>>2])+4|0,(r=0|o[i+32>>2])+4|0,f+264|0,r+264|0),0|n[i+526|0]&&(a=0|o[t>>2],o[t>>2]=a+1,c=0|o[t+4>>2],o[t+4>>2]=c+-1,h=+s[i+456>>2],+s[i+444>>2]<h)&&+s[i+448>>2]<h&&(o[t>>2]=a+2,o[t+4>>2]=c+-2),0|n[i+525|0]?(o[t>>2]=1+(0|o[t>>2]),o[t+4>>2]=(0|o[t+4>>2])-1,u=e):u=e},function(i,t){t|=0;var e,r,f=0,a=0,c=0,h=0,l=0,d=0,v=0,b=0,_=0,w=0,p=0,m=0,y=0,k=0,g=0,C=0;e=u,u=u+64|0,rt(i|=0,(r=0|o[i+28>>2])+4|0,(v=0|o[i+32>>2])+4|0,r+264|0,v+264|0),h=0|o[t+8>>2],s[h>>2]=1,l=0|o[t+24>>2],s[h+(l+1<<2)>>2]=1,s[h+(2+(l<<1)<<2)>>2]=1,_=+s[i+348>>2],g=+s[i+352>>2],m=+s[i+356>>2],y=+s[r+4>>2]*_+ +s[r+8>>2]*g+ +s[r+12>>2]*m,w=_*+s[r+20>>2]+g*+s[r+24>>2]+m*+s[r+28>>2],m=_*+s[r+36>>2]+g*+s[r+40>>2]+m*+s[r+44>>2],h=0|o[t+12>>2],s[h>>2]=0,s[h+4>>2]=m,s[h+8>>2]=-w,s[h+12>>2]=0,s[h+(l<<2)>>2]=-m,s[h+(l+1<<2)>>2]=0,s[h+(l+2<<2)>>2]=y,s[h+(l+3<<2)>>2]=0,s[h+(l<<1<<2)>>2]=w,s[h+((l<<1|1)<<2)>>2]=-y,s[h+(2+(l<<1)<<2)>>2]=0,s[h+(3+(l<<1)<<2)>>2]=0,h=0|o[t+16>>2],s[h>>2]=-1,s[h+(l+1<<2)>>2]=-1,s[h+(2+(l<<1)<<2)>>2]=-1,g=+s[i+412>>2],_=+s[i+416>>2],b=+s[i+420>>2],k=+s[v+4>>2]*g+ +s[v+8>>2]*_+ +s[v+12>>2]*b,p=g*+s[v+20>>2]+_*+s[v+24>>2]+b*+s[v+28>>2],b=g*+s[v+36>>2]+_*+s[v+40>>2]+b*+s[v+44>>2],h=0|o[t+20>>2],s[h>>2]=0,s[h+4>>2]=-b,s[h+8>>2]=p,s[h+12>>2]=0,s[h+(l<<2)>>2]=b,s[h+(l+1<<2)>>2]=0,s[h+(l+2<<2)>>2]=-k,s[h+(l+3<<2)>>2]=0,s[h+(l<<1<<2)>>2]=-p,s[h+((l<<1|1)<<2)>>2]=k,s[h+(2+(l<<1)<<2)>>2]=0,s[h+(3+(l<<1)<<2)>>2]=0,l=0|o[i+592>>2],_=+s[(2&l?i+600:t+4)>>2]*+s[t>>2],f=0|o[t+24>>2],a=0|o[t+28>>2],d=0|o[t+36>>2],c=0|o[t+40>>2],s[a>>2]=_*(k+ +s[v+52>>2]-y-+s[r+52>>2]),s[d>>2]=-34028234663852886e22,s[c>>2]=34028234663852886e22,1&l?(C=0|o[t+32>>2],s[C>>2]=+s[i+596>>2],s[a+(f<<2)>>2]=_*(p+ +s[v+56>>2]-w-+s[r+56>>2]),s[d+(f<<2)>>2]=-34028234663852886e22,s[c+(f<<2)>>2]=34028234663852886e22,s[C+(f<<2)>>2]=+s[i+596>>2],s[a+(f<<1<<2)>>2]=_*(b+ +s[v+60>>2]-m-+s[r+60>>2]),s[d+(f<<1<<2)>>2]=-34028234663852886e22,s[c+(f<<1<<2)>>2]=34028234663852886e22,s[C+(f<<1<<2)>>2]=+s[i+596>>2]):(s[a+(f<<2)>>2]=_*(p+ +s[v+56>>2]-w-+s[r+56>>2]),s[d+(f<<2)>>2]=-34028234663852886e22,s[c+(f<<2)>>2]=34028234663852886e22,s[a+(f<<1<<2)>>2]=_*(b+ +s[v+60>>2]-m-+s[r+60>>2]),s[d+(f<<1<<2)>>2]=-34028234663852886e22,s[c+(f<<1<<2)>>2]=34028234663852886e22);do{if(0|n[i+526|0]){if(v=0|o[t+12>>2],g=+s[i+456>>2],+s[i+444>>2]<g&&+s[i+448>>2]<g){nt(e,r+4|0,i+300|0),_=+s[e+4>>2],w=+s[e+20>>2],p=+s[e+36>>2],y=+s[e+8>>2],k=+s[e+24>>2],g=+s[e+40>>2],C=(l=0|o[t+24>>2])+(3*f|0)|0,s[v+(3*f<<2)>>2]=_,s[v+(1+(3*f|0)<<2)>>2]=w,s[v+(2+(3*f|0)<<2)>>2]=p,s[v+(C<<2)>>2]=y,s[v+(C+1<<2)>>2]=k,s[v+(C+2<<2)>>2]=g,s[h+(3*f<<2)>>2]=-_,s[h+(1+(3*f|0)<<2)>>2]=-w,s[h+(2+(3*f|0)<<2)>>2]=-p,s[h+(C<<2)>>2]=-y,s[h+(C+1<<2)>>2]=-k,s[h+(C+2<<2)>>2]=-g,m=+s[t>>2]*+s[i+436>>2],a=0|o[t+28>>2],s[a+(3*f<<2)>>2]=m*(_*+s[i+460>>2]+w*+s[i+464>>2]+p*+s[i+468>>2]),s[a+(C<<2)>>2]=m*(y*+s[i+460>>2]+k*+s[i+464>>2]+g*+s[i+468>>2]),d=0|o[t+36>>2],s[d+(3*f<<2)>>2]=-34028234663852886e22,c=0|o[t+40>>2],s[c+(3*f<<2)>>2]=34028234663852886e22,s[d+(C<<2)>>2]=-34028234663852886e22,s[c+(C<<2)>>2]=34028234663852886e22,f=l+C|0;break}y=(g=+s[i+436>>2])*+s[i+460>>2]*g,k=g*g*+s[i+464>>2],g=g*g*+s[i+468>>2],s[v+(3*f<<2)>>2]=y,s[v+(1+(3*f|0)<<2)>>2]=k,s[v+(2+(3*f|0)<<2)>>2]=g,s[h+(3*f<<2)>>2]=-y,s[h+(1+(3*f|0)<<2)>>2]=-k,s[h+(2+(3*f|0)<<2)>>2]=-g,s[a+(3*f<<2)>>2]=+s[t>>2]*+s[i+432>>2]*+s[i+504>>2],4&l&&(s[(0|o[t+32>>2])+(3*f<<2)>>2]=+s[i+604>>2]),s[d+(3*f<<2)>>2]=0,s[c+(3*f<<2)>>2]=34028234663852886e22,f=f+(3*f|0)|0}else f=3*f|0}while(0);if(0|n[i+525|0])return y=(g=+s[i+436>>2])*+s[i+476>>2]*g,k=g*g*+s[i+480>>2],g=g*g*+s[i+484>>2],h=0|o[t+12>>2],v=0|o[t+20>>2],s[h+(f<<2)>>2]=y,s[h+((l=f+1|0)<<2)>>2]=k,s[h+((C=f+2|0)<<2)>>2]=g,s[v+(f<<2)>>2]=-y,s[v+(l<<2)>>2]=-k,s[v+(C<<2)>>2]=-g,s[a+(f<<2)>>2]=+s[t>>2]*+s[i+432>>2]*+s[i+508>>2],4&o[i+592>>2]&&(s[(0|o[t+32>>2])+(f<<2)>>2]=+s[i+604>>2]),+s[i+452>>2]>0?(t=d+(f<<2)|0,+s[i+508>>2]>0?(s[t>>2]=0,s[c+(f<<2)>>2]=34028234663852886e22,void(u=e)):(s[t>>2]=-34028234663852886e22,s[c+(f<<2)>>2]=0,void(u=e))):(s[d+(f<<2)>>2]=-34028234663852886e22,s[c+(f<<2)>>2]=34028234663852886e22,void(u=e));u=e},function(i,t){t|=0,o[(i|=0)+72>>2]=t},function(i,t){var e;return i|=0,e=u,0|(t|=0)&&2&o[t+236>>2]?(on[127&o[92+(0|o[i>>2])>>2]](i,t),void(u=e)):(Vi(i,t),void(u=e))},function(i,t){i|=0;var e,n=0,r=0,f=0,a=0;e=u,nn[255&o[32+(0|o[(t|=0)>>2])>>2]](t),n=0|_n[31&o[16+(0|o[t>>2])>>2]](t,104,1),a=(f=(r=0|o[n+8>>2])+0|0)+104|0;do{o[f>>2]=0,f=f+4|0}while((0|f)<(0|a));if(s[r+88>>2]=+s[i+248>>2],s[r+92>>2]=+s[i+252>>2],s[r+96>>2]=+s[i+256>>2],s[r+100>>2]=+s[i+260>>2],s[r>>2]=+s[i+92>>2],s[r+4>>2]=+s[i+96>>2],s[r+8>>2]=+s[i+100>>2],s[r+12>>2]=+s[i+104>>2],s[r+16>>2]=+s[i+108>>2],s[r+20>>2]=+s[i+116>>2],s[r+24>>2]=+s[i+120>>2],s[r+28>>2]=+s[i+124>>2],s[r+32>>2]=+s[i+128>>2],s[r+36>>2]=+s[i+132>>2],s[r+40>>2]=+s[i+140>>2],s[r+44>>2]=+s[i+144>>2],s[r+48>>2]=+s[i+148>>2],s[r+52>>2]=+s[i+152>>2],s[r+56>>2]=+s[i+168>>2],s[r+60>>2]=+s[i+172>>2],o[r+64>>2]=o[i+112>>2],o[r+68>>2]=o[i+156>>2],o[r+72>>2]=o[i+160>>2],o[r+76>>2]=o[i+164>>2],o[r+80>>2]=o[i+136>>2],tn[31&o[20+(0|o[t>>2])>>2]](t,n,1728,1145853764,r),(0|(r=0|o[i+8>>2]))>0){n=0;do{f=0|o[(0|o[i+16>>2])+(n<<2)>>2],2&o[f+236>>2]&&(a=0|an[127&o[16+(0|o[f>>2])>>2]](f),a=0|_n[31&o[16+(0|o[t>>2])>>2]](t,a,1),r=0|_n[31&o[20+(0|o[f>>2])>>2]](f,0|o[a+8>>2],t),tn[31&o[20+(0|o[t>>2])>>2]](t,a,r,1497645650,f),r=0|o[i+8>>2]),n=n+1|0}while((0|n)<(0|r))}if((0|o[i+212>>2])<=0)return $i(i,t),a=0|o[t>>2],a=0|o[(a=a+36|0)>>2],nn[255&a](t),void(u=e);n=0;do{a=0|o[(0|o[i+220>>2])+(n<<2)>>2],r=0|an[127&o[36+(0|o[a>>2])>>2]](a),r=0|_n[31&o[16+(0|o[t>>2])>>2]](t,r,1),f=0|_n[31&o[40+(0|o[a>>2])>>2]](a,0|o[r+8>>2],t),tn[31&o[20+(0|o[t>>2])>>2]](t,r,f,1397641027,a),n=n+1|0}while((0|n)<(0|o[i+212>>2]));$i(i,t),a=0|o[t>>2],a=0|o[(a=a+36|0)>>2],nn[255&a](t),u=e},function(i,t){t|=0;var e,n=0,r=0,f=0,a=0,s=0,c=0;e=u,c=0|o[(i|=0)+212>>2];i:do{if((0|c)>0){for(r=0|o[i+220>>2],f=0;s=f+1|0,(0|o[(a=r+(f<<2)|0)>>2])!=(0|t);){if(!((0|s)<(0|c)))break i;f=s}(0|f)<(0|c)&&(o[a>>2]=o[r+(c+-1<<2)>>2],o[(0|o[i+220>>2])+(c+-1<<2)>>2]=t,o[i+212>>2]=c+-1)}}while(0);i=0|o[t+28>>2],f=0|o[i+488>>2];i:do{if((0|f)>0){for(r=0|o[i+496>>2],a=0;c=a+1|0,(0|o[(s=r+(a<<2)|0)>>2])!=(0|t);){if(!((0|c)<(0|f)))break i;a=c}(0|a)<(0|f)&&(o[s>>2]=o[r+(f+-1<<2)>>2],o[(0|o[i+496>>2])+(f+-1<<2)>>2]=t,o[i+488>>2]=f+-1,f=f+-1|0)}}while(0);if(o[i+256>>2]=(0|f)>0&1,i=0|o[t+32>>2],(0|(r=0|o[i+488>>2]))<=0)return s=(0|(s=r))>0,s&=1,o[(c=i+256|0)>>2]=s,void(u=e);for(a=0|o[i+496>>2],s=0;f=s+1|0,(0|o[(c=a+(s<<2)|0)>>2])!=(0|t);){if(!((0|f)<(0|r))){n=19;break}s=f}return 19==(0|n)?(s=(0|r)>0,s&=1,o[(c=i+256|0)>>2]=s,void(u=e)):(0|s)>=(0|r)?(s=(0|(s=r))>0,s&=1,o[(c=i+256|0)>>2]=s,void(u=e)):(o[c>>2]=o[a+(r+-1<<2)>>2],o[(0|o[i+496>>2])+(r+-1<<2)>>2]=t,o[i+488>>2]=r+-1,s=(0|(s=r+-1|0))>0,s&=1,o[(c=i+256|0)>>2]=s,void(u=e))},function(i,t){t|=0;var e,r=0,f=0,a=0,s=0,c=0;if(e=u,(0|(a=0|o[(i|=0)+280>>2]))==(0|o[i+284>>2])&&(0|a)<(0|(r=0|a?a<<1:1))){if(0|r?(o[4546]=1+(0|o[4546]),0|(f=0|ye(16+(r<<2|3)|0))?(o[(f+19&-16)-4>>2]=f,f=f+19&-16):f=0,a=0|o[i+280>>2]):f=0,(0|a)>0){s=0;do{0|(c=f+(s<<2)|0)&&(o[c>>2]=o[(0|o[i+288>>2])+(s<<2)>>2]),s=s+1|0}while((0|s)!=(0|a))}0|(s=0|o[i+288>>2])&&(0|n[i+292|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[s+-4>>2]),a=0|o[i+280>>2]),o[i+288>>2]=0),n[i+292|0]=1,o[i+288>>2]=f,o[i+284>>2]=r}if(!(0|(r=(0|o[i+288>>2])+(a<<2)|0)))return c=a+1|0,o[i+280>>2]=c,void(u=e);o[r>>2]=t,c=a+1|0,o[i+280>>2]=c,u=e},function(i,t){t|=0;var e,n,r,f=0,a=0,s=0,c=0;if(e=u,(0|(n=0|o[(i|=0)+280>>2]))<=0)u=e;else{for(r=0|o[i+288>>2],a=0;c=a+1|0,(0|o[(s=r+(a<<2)|0)>>2])!=(0|t);){if(!((0|c)<(0|n))){f=7;break}a=c}7!=(0|f)?((0|a)>=(0|n)||(o[s>>2]=o[r+(n+-1<<2)>>2],o[(0|o[i+288>>2])+(n+-1<<2)>>2]=t,o[i+280>>2]=n+-1),u=e):u=e}},function(i,t){t|=0;var e,n=0,r=0,f=0,a=0,c=0,h=0,l=0;if(e=u,o[(i|=0)+248>>2]=o[t+0>>2],o[i+252>>2]=o[t+4>>2],o[i+256>>2]=o[t+8>>2],o[i+260>>2]=o[t+12>>2],(0|(f=0|o[i+232>>2]))<=0)u=e;else{n=0;do{r=0|o[(0|o[i+240>>2])+(n<<2)>>2],2==(0|(c=0|o[r+216>>2]))|5==(0|c)||1&o[r+504>>2]||(0!=(a=+s[r+344>>2])&&(l=1/a*+s[t+4>>2],h=1/a*+s[t+8>>2],s[r+364>>2]=1/a*+s[t>>2],s[r+368>>2]=l,s[r+372>>2]=h,s[r+376>>2]=0),o[r+380>>2]=o[t+0>>2],o[r+384>>2]=o[t+4>>2],o[r+388>>2]=o[t+8>>2],o[r+392>>2]=o[t+12>>2],f=0|o[i+232>>2]),n=n+1|0}while((0|n)<(0|f));u=e}},function(i,t){var e;t|=0,e=u,o[(i|=0)+0>>2]=o[t+248>>2],o[i+4>>2]=o[t+252>>2],o[i+8>>2]=o[t+256>>2],o[i+12>>2]=o[t+260>>2],u=e},function(i,t){i|=0;var e,r=0,f=0,a=0,c=0,h=0,l=0,d=0,v=0;if(e=u,3&(f=0|o[(t|=0)+204>>2])||1&o[t+504>>2]||(0!=(l=+s[t+344>>2])&&(v=1/l*+s[i+252>>2],d=1/l*+s[i+256>>2],s[t+364>>2]=1/l*+s[i+248>>2],s[t+368>>2]=v,s[t+372>>2]=d,s[t+376>>2]=0),o[t+380>>2]=o[i+248>>2],o[t+384>>2]=o[i+252>>2],o[t+388>>2]=o[i+256>>2],o[t+392>>2]=o[i+260>>2]),0|o[t+192>>2]){if(1&f)((0|o[t+216>>2])-4|0)>>>0<2||(o[t+216>>2]=2);else{if((0|(a=0|o[i+232>>2]))==(0|o[i+236>>2])&&(0|a)<(0|(r=0|a?a<<1:1))){if(0|r?(o[4546]=1+(0|o[4546]),0|(f=0|ye(16+(r<<2|3)|0))?(o[(f+19&-16)-4>>2]=f,f=f+19&-16):f=0,a=0|o[i+232>>2]):f=0,(0|a)>0){c=0;do{0|(h=f+(c<<2)|0)&&(o[h>>2]=o[(0|o[i+240>>2])+(c<<2)>>2]),c=c+1|0}while((0|c)!=(0|a))}0|(c=0|o[i+240>>2])&&(0|n[i+244|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[c+-4>>2]),a=0|o[i+232>>2]),o[i+240>>2]=0),n[i+244|0]=1,o[i+240>>2]=f,o[i+236>>2]=r}0|(r=(0|o[i+240>>2])+(a<<2)|0)&&(o[r>>2]=t),o[i+232>>2]=a+1,f=0|o[t+204>>2]}r=1&f?0:!(2&f),Vn[63&o[36+(0|o[i>>2])>>2]](i,t,r?1:2,r?-1:-3),u=e}else u=e},function(i,t){t|=0;var e,n,r=0,f=0,a=0,s=0;n=u,e=0|o[(i|=0)+232>>2];i:do{if((0|e)>0){for(r=0|o[i+240>>2],f=0;s=f+1|0,(0|o[(a=r+(f<<2)|0)>>2])!=(0|t);){if(!((0|s)<(0|e)))break i;f=s}(0|f)<(0|e)&&(o[a>>2]=o[r+(e+-1<<2)>>2],o[(0|o[i+240>>2])+(e+-1<<2)>>2]=t,o[i+232>>2]=e+-1)}}while(0);Vi(i,t),u=n},function(i,t){t|=0;var e,r=0;e=u,0|n[(i|=0)+273|0]&&0|(r=0|o[i+200>>2])&&(o[4548]=1+(0|o[4548]),ke(0|o[r+-4>>2])),n[i+273|0]=0,o[i+200>>2]=t,o[8+(0|o[i+196>>2])>>2]=t,u=e},function(i,t){var e;t|=0,e=u,on[127&o[64+(0|o[(i|=0)>>2])>>2]](i,t),u=e},function(i,t){var e;t|=0,e=u,on[127&o[68+(0|o[(i|=0)>>2])>>2]](i,t),u=e},function(i,t){var e;t|=0,e=u,on[127&o[64+(0|o[(i|=0)>>2])>>2]](i,t),u=e},function(i,t){var e;t|=0,e=u,on[127&o[68+(0|o[(i|=0)>>2])>>2]](i,t),u=e},function(i,t){i|=0,t|=0;var e,r=0,f=0,a=0,c=0,h=0,l=0,d=0,v=0,b=0,_=0,w=0,p=0,m=0,y=0,k=0;if(e=u,u=u+16|0,It(1440),r=0|o[i+212>>2],(0|(f=0|o[i+180>>2]))<(0|r)){if((0|o[i+184>>2])<(0|r)){if(0|r?(o[4546]=1+(0|o[4546]),0|(c=0|ye(16+(r<<2|3)|0))?(o[(c+19&-16)-4>>2]=c,h=c+19&-16):h=0,c=0|o[i+180>>2]):(c=f,h=0),(0|c)>0){d=0;do{0|(l=h+(d<<2)|0)&&(o[l>>2]=o[(0|o[i+188>>2])+(d<<2)>>2]),d=d+1|0}while((0|d)!=(0|c))}0|(c=0|o[i+188>>2])&&(0|n[i+192|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[c+-4>>2])),o[i+188>>2]=0),n[i+192|0]=1,o[i+188>>2]=h,o[i+184>>2]=r,c=i+188|0}else c=i+188|0;do{0|(h=(0|o[c>>2])+(f<<2)|0)&&(o[h>>2]=0),f=f+1|0}while((0|f)!=(0|r))}for(o[i+180>>2]=r,r=0;!((0|r)>=(0|an[127&o[104+(0|o[i>>2])>>2]](i)));)o[(0|o[i+188>>2])+(r<<2)>>2]=o[(0|o[i+220>>2])+(r<<2)>>2],r=r+1|0;if((0|(r=0|o[i+180>>2]))>1&&Ot(i+176|0,0,r+-1|0),f=0|an[127&o[104+(0|o[i>>2])>>2]](i)?0|o[i+188>>2]:0,r=0|o[i+196>>2],y=0|o[i+180>>2],k=0|an[127&o[20+(0|o[i>>2])>>2]](i),o[r+4>>2]=t,o[r+12>>2]=f,o[r+16>>2]=y,o[r+20>>2]=k,(0|(f=0|o[r+32>>2]))<0){(0|o[r+36>>2])<0&&(0|(c=0|o[r+40>>2])&&(0|n[r+44|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[c+-4>>2])),o[r+40>>2]=0),n[r+44|0]=1,o[r+40>>2]=0,o[r+36>>2]=0);do{0|(c=(0|o[r+40>>2])+(f<<2)|0)&&(o[c>>2]=0),f=f+1|0}while(0|f)}if(o[r+32>>2]=0,(0|(c=0|o[r+52>>2]))<0){(0|o[r+56>>2])<0?(0|(f=0|o[r+60>>2])&&(0|n[r+64|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[f+-4>>2])),o[r+60>>2]=0),n[r+64|0]=1,o[r+60>>2]=0,o[r+56>>2]=0,f=c):f=c;do{0|(c=(0|o[r+60>>2])+(f<<2)|0)&&(o[c>>2]=0),f=f+1|0}while(0|f)}if(o[r+52>>2]=0,(0|(f=0|o[r+72>>2]))<0){(0|o[r+76>>2])<0&&(0|(c=0|o[r+80>>2])&&(0|n[r+84|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[c+-4>>2])),o[r+80>>2]=0),n[r+84|0]=1,o[r+80>>2]=0,o[r+76>>2]=0);do{0|(c=(0|o[r+80>>2])+(f<<2)|0)&&(o[c>>2]=0),f=f+1|0}while(0|f)}if(o[r+72>>2]=0,r=0|o[i+200>>2],h=0|o[8+(0|o[r>>2])>>2],c=0|o[i+8>>2],f=0|o[i+24>>2],f=0|an[127&o[36+(0|o[f>>2])>>2]](f),Pn[63&h](r,c,f),f=0|o[i+204>>2],c=0|o[i+24>>2],r=0|o[i+196>>2],It(14912),(0|(h=0|o[f+28>>2]))<0){(0|o[f+32>>2])<0&&(0|(l=0|o[f+36>>2])&&(0|n[f+40|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[l+-4>>2])),o[f+36>>2]=0),n[f+40|0]=1,o[f+36>>2]=0,o[f+32>>2]=0);do{0|(l=(0|o[f+36>>2])+(h<<2)|0)&&(o[l>>2]=0),h=h+1|0}while(0|h)}if(o[f+28>>2]=0,(0|(v=0|o[f+8>>2]))>0){h=0|o[f+16>>2],d=0;do{if((0|(_=0|o[(l=h+(d<<3)|0)>>2]))==(0|d))b=d;else{w=l;do{b=h+(_<<3)|0,o[w>>2]=o[b>>2],b=0|o[b>>2],_=0|o[(w=h+(b<<3)|0)>>2]}while((0|b)!=(0|_))}o[l>>2]=b,d=d+1|0}while((0|d)!=(0|v));if((0|(v=0|o[f+8>>2]))>1&&(oi(f+4|0,0,v+-1|0),v=0|o[f+8>>2]),(0|v)>0)for(b=0|o[f+16>>2],w=0;;){h=0|o[b+(w<<3)>>2],d=w;do{if(!(l=(0|(d=d+1|0))<(0|v)))break}while((0|o[b+(d<<3)>>2])==(0|h));if((0|w)<(0|d)){_=0|o[i+16>>2],m=1,p=w;do{y=0|o[_+(o[b+(p<<3)+4>>2]<<2)>>2],(0|o[y+208>>2])==(0|h)&&(m=m&1!=(0|(k=0|o[y+216>>2]))&4!=(0|k)),p=p+1|0}while((0|p)!=(0|d));if(m)do{p=0|o[_+(o[b+(w<<3)+4>>2]<<2)>>2],(0|o[p+208>>2])!=(0|h)||((0|o[p+216>>2])-4|0)>>>0<2||(o[p+216>>2]=2),w=w+1|0}while((0|w)<(0|d));else do{p=0|o[_+(o[b+(w<<3)+4>>2]<<2)>>2],(0|o[p+208>>2])==(0|h)&&2==(0|o[p+216>>2])&&(o[p+216>>2]=3,s[p+220>>2]=0),w=w+1|0}while((0|w)<(0|d))}if(!l)break;w=d}}if((0|(h=0|an[127&o[36+(0|o[c>>2])>>2]](c)))>0){d=0;do{if(l=0|Sn[31&o[40+(0|o[c>>2])>>2]](c,d),v=0|o[l+740>>2],b=0|o[l+744>>2],99==(0|(_=0|v&&2!=(0|o[v+216>>2])?101:99))&&(_=0,0|b)&&2!=(0|o[b+216>>2])&&(_=101),101==(0|_)&&(!(2&(k=0|o[v+204>>2])&&2!=(0|o[v+216>>2]))||4&k||3&o[b+204>>2]||(((0|o[b+216>>2])-4|0)>>>0<2||(o[b+216>>2]=1),s[b+220>>2]=0),!(2&(k=0|o[b+204>>2])&&2!=(0|o[b+216>>2]))||4&k||3&o[v+204>>2]||(((0|o[v+216>>2])-4|0)>>>0<2||(o[v+216>>2]=1),s[v+220>>2]=0),0|n[f+64|0]&&0|_n[31&o[28+(0|o[c>>2])>>2]](c,v,b))){if((0|(b=0|o[f+28>>2]))==(0|o[f+32>>2])&&(0|b)<(0|(a=0|b?b<<1:1))){if(0|a?(o[4546]=1+(0|o[4546]),0|(v=0|ye(16+(a<<2|3)|0))?(o[(v+19&-16)-4>>2]=v,v=v+19&-16):v=0,b=0|o[f+28>>2]):v=0,(0|b)>0){_=0;do{0|(w=v+(_<<2)|0)&&(o[w>>2]=o[(0|o[f+36>>2])+(_<<2)>>2]),_=_+1|0}while((0|_)!=(0|b))}0|(_=0|o[f+36>>2])&&(0|n[f+40|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[_+-4>>2]),b=0|o[f+28>>2]),o[f+36>>2]=0),n[f+40|0]=1,o[f+36>>2]=v,o[f+32>>2]=a}0|(v=(0|o[f+36>>2])+(b<<2)|0)&&(o[v>>2]=l),o[f+28>>2]=b+1}d=d+1|0}while((0|d)<(0|h))}a=0|o[4564],k=(0|o[a+16>>2])-1|0,o[a+16>>2]=k;do{if(!(0|k)){if(0|o[a+4>>2]){if(G(0|e,0),k=0|o[4550],s[a+8>>2]=+(((0|o[e+4>>2])-(0|o[k+4>>2])+(1e6*((0|o[e>>2])-(0|o[k>>2])|0)|0)-(0|o[a+12>>2])|0)>>>0)/1e3+ +s[a+8>>2],0|o[a+16>>2])break;a=0|o[4564]}o[4564]=o[a+20>>2]}}while(0);if(a=0|o[f+8>>2],It(14944),0|n[f+64|0]){if((0|(c=0|o[f+28>>2]))>1&&Z(f+24|0,0,c+-1|0),(0|a)>0){d=1,v=0,h=0;do{w=0|o[f+16>>2],l=0|o[w+(v<<3)>>2];i:do{if((0|v)<(0|a))for(_=l,b=1;;){if((0|_)!=(0|l))break i;_=0|o[(0|o[i+16>>2])+(o[w+(v<<3)+4>>2]<<2)>>2],m=0|o[f+48>>2];do{if((0|m)==(0|o[f+52>>2])){if((0|m)>=(0|(w=0|m?m<<1:1)))break;if(0|w?(o[4546]=1+(0|o[4546]),0|(p=0|ye(16+(w<<2|3)|0))?(o[(p+19&-16)-4>>2]=p,p=p+19&-16):p=0,m=0|o[f+48>>2]):p=0,(0|m)>0){y=0;do{0|(k=p+(y<<2)|0)&&(o[k>>2]=o[(0|o[f+56>>2])+(y<<2)>>2]),y=y+1|0}while((0|y)!=(0|m))}0|(y=0|o[f+56>>2])&&(0|n[f+60|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[y+-4>>2]),m=0|o[f+48>>2]),o[f+56>>2]=0),n[f+60|0]=1,o[f+56>>2]=p,o[f+52>>2]=w}}while(0);if(0|(w=(0|o[f+56>>2])+(m<<2)|0)&&(o[w>>2]=_),o[f+48>>2]=m+1,b&=2==(0|(k=0|o[_+216>>2]))|5==(0|k),(0|(v=v+1|0))>=(0|a))break i;w=0|o[f+16>>2],_=0|o[w+(v<<3)>>2]}else b=1}while(0);if((0|h)<(0|c))if(w=0|o[f+36>>2],m=0|o[(_=w+(h<<2)|0)>>2],(0|(p=0|o[208+(0|o[m+740>>2])>>2]))>-1||(p=0|o[208+(0|o[m+744>>2])>>2]),(0|p)==(0|l)){p=h;do{if((0|(p=p+1|0))>=(0|c))break;d=0|o[w+(p<<2)>>2],(0|(m=0|o[208+(0|o[d+740>>2])>>2]))>-1||(m=0|o[208+(0|o[d+744>>2])>>2])}while((0|l)==(0|m));d=p,w=p-h|0}else w=0,_=0;else w=0,_=0;if(b||wn[7&o[8+(0|o[r>>2])>>2]](r,0|o[f+56>>2],0|o[f+48>>2],_,w,l),h=0|w?d:h,(0|(l=0|o[f+48>>2]))<0){(0|o[f+52>>2])<0?(0|(b=0|o[f+56>>2])&&(0|n[f+60|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[b+-4>>2])),o[f+56>>2]=0),n[f+60|0]=1,o[f+56>>2]=0,o[f+52>>2]=0,b=l):b=l;do{0|(l=(0|o[f+56>>2])+(b<<2)|0)&&(o[l>>2]=0),b=b+1|0}while(0|b)}o[f+48>>2]=0}while((0|v)<(0|a))}}else y=0|an[127&o[44+(0|o[c>>2])>>2]](c),k=0|an[127&o[36+(0|o[c>>2])>>2]](c),wn[7&o[8+(0|o[r>>2])>>2]](r,0|o[i+16>>2],0|o[i+8>>2],y,k,-1);r=0|o[4564],k=(0|o[r+16>>2])-1|0,o[r+16>>2]=k;do{if(!(0|k)){if(0|o[r+4>>2]){if(G(0|e,0),k=0|o[4550],s[r+8>>2]=+(((0|o[e+4>>2])-(0|o[k+4>>2])+(1e6*((0|o[e>>2])-(0|o[k>>2])|0)|0)-(0|o[r+12>>2])|0)>>>0)/1e3+ +s[r+8>>2],0|o[r+16>>2])break;r=0|o[4564]}o[4564]=o[r+20>>2]}}while(0);if(yt(0|o[i+196>>2]),k=0|o[i+200>>2],Pn[63&o[16+(0|o[k>>2])>>2]](k,t,0|o[i+72>>2]),i=0|o[4564],k=(0|o[i+16>>2])-1|0,o[i+16>>2]=k,0|k)u=e;else{do{if(0|o[i+4>>2]){if(G(0|e,0),k=0|o[4550],s[i+8>>2]=+(((0|o[e+4>>2])-(0|o[k+4>>2])+(1e6*((0|o[e>>2])-(0|o[k>>2])|0)|0)-(0|o[i+12>>2])|0)>>>0)/1e3+ +s[i+8>>2],0|o[i+16>>2])return void(u=e);i=0|o[4564];break}}while(0);o[4564]=o[i+20>>2],u=e}},function(i,t){},function(i,t){var e;return t|=0,e=u,0|n[(i|=0)+344|0]?(o[t>>2]=0,o[t+4>>2]=0,void(u=e)):(o[t>>2]=3,o[t+4>>2]=3,void(u=e))},function(i,t){t|=0;var e,n,r,f,a,c,h,l=0,d=0,v=0,b=0,_=0,w=0,p=0;if(e=u,r=0|o[(i|=0)+28>>2],_=0|o[i+32>>2],l=0|o[t+8>>2],s[l>>2]=1,b=0|o[t+24>>2],s[l+(b+1<<2)>>2]=1,s[l+(2+(b<<1)<<2)>>2]=1,w=+s[i+300>>2],p=+s[i+304>>2],v=+s[i+308>>2],c=+s[r+4>>2]*w+ +s[r+8>>2]*p+ +s[r+12>>2]*v,f=w*+s[r+20>>2]+p*+s[r+24>>2]+v*+s[r+28>>2],v=w*+s[r+36>>2]+p*+s[r+40>>2]+v*+s[r+44>>2],l=0|o[t+12>>2],s[l>>2]=0,s[l+4>>2]=v,s[l+8>>2]=-f,s[l+12>>2]=0,s[l+(b<<2)>>2]=-v,s[l+(b+1<<2)>>2]=0,s[l+(b+2<<2)>>2]=c,s[l+(b+3<<2)>>2]=0,s[l+(b<<1<<2)>>2]=f,s[l+((b<<1|1)<<2)>>2]=-c,s[l+(2+(b<<1)<<2)>>2]=0,s[l+(3+(b<<1)<<2)>>2]=0,l=0|o[t+16>>2],s[l>>2]=-1,s[l+(b+1<<2)>>2]=-1,s[l+(2+(b<<1)<<2)>>2]=-1,p=+s[i+316>>2],w=+s[i+320>>2],d=+s[i+324>>2],h=+s[_+4>>2]*p+ +s[_+8>>2]*w+ +s[_+12>>2]*d,a=p*+s[_+20>>2]+w*+s[_+24>>2]+d*+s[_+28>>2],d=p*+s[_+36>>2]+w*+s[_+40>>2]+d*+s[_+44>>2],l=0|o[t+20>>2],s[l>>2]=0,s[l+4>>2]=-d,s[l+8>>2]=a,s[l+12>>2]=0,s[l+(b<<2)>>2]=d,s[l+(b+1<<2)>>2]=0,s[l+(b+2<<2)>>2]=-h,s[l+(b+3<<2)>>2]=0,s[l+(b<<1<<2)>>2]=-a,s[l+((b<<1|1)<<2)>>2]=h,s[l+(2+(b<<1)<<2)>>2]=0,s[l+(3+(b<<1)<<2)>>2]=0,b=0|o[i+332>>2],w=+s[(1&b?i+336:t+4)>>2]*+s[t>>2],l=0|o[t+24>>2],n=0|o[t+28>>2],s[n>>2]=w*(h+ +s[_+52>>2]-c-+s[r+52>>2]),s[n+(l<<2)>>2]=w*(a+ +s[_+56>>2]-f-+s[r+56>>2]),s[n+(l<<1<<2)>>2]=w*(d+ +s[_+60>>2]-v-+s[r+60>>2]),2&b&&(_=0|o[t+32>>2],s[_>>2]=+s[i+340>>2],s[_+(l<<2)>>2]=+s[i+340>>2],s[_+(l<<1<<2)>>2]=+s[i+340>>2]),(d=+s[i+356>>2])>0?(s[o[t+36>>2]>>2]=-d,s[o[t+40>>2]>>2]=d,v=+s[i+356>>2]):v=d,v>0&&(s[(0|o[t+36>>2])+(l<<2)>>2]=-d,s[(0|o[t+40>>2])+(l<<2)>>2]=d,v=+s[i+356>>2]),!(v>0))return p=+s[(_=i+352|0)>>2],s[(_=t+52|0)>>2]=p,void(u=e);s[(0|o[t+36>>2])+(l<<1<<2)>>2]=-d,s[(0|o[t+40>>2])+(l<<1<<2)>>2]=d,p=+s[(_=i+352|0)>>2],s[(_=t+52|0)>>2]=p,u=e},function(i,t){t|=0;var e,r=0,f=0,a=0,c=0,h=0,l=0;if(e=u,u=u+48|0,(0|o[(i|=0)+136>>2])<=0)u=e;else{r=0;do{l=0|o[i+144>>2],s[e+32>>2]=0|n[l+(284*r|0)+84|0]?0:1,s[e+36>>2]=0,s[e+40>>2]=1,s[e+44>>2]=0,h=l+(284*r|0)+140|0,o[e+16>>2]=o[h+0>>2],o[e+20>>2]=o[h+4>>2],o[e+24>>2]=o[h+8>>2],o[e+28>>2]=o[h+12>>2],h=0|o[i+120>>2],f=0|o[8+(0|o[t>>2])>>2],c=+s[l+(284*r|0)+(h<<2)+108>>2]+ +s[e+20>>2],a=+s[l+(284*r|0)+(h<<2)+124>>2]+ +s[e+24>>2],s[e>>2]=+s[l+(284*r|0)+(h<<2)+92>>2]+ +s[e+16>>2],s[e+4>>2]=c,s[e+8>>2]=a,s[e+12>>2]=0,Vn[63&f](t,e+16|0,e,e+32|0),Vn[63&o[8+(0|o[t>>2])>>2]](t,e+16|0,(0|o[i+144>>2])+(284*r|0)+16|0,e+32|0),r=r+1|0}while((0|r)<(0|o[i+136>>2]));u=e}},function(i,t){t|=0,o[(i|=0)+260>>2]=1+(0|o[i+260>>2]),o[i+192>>2]=t,o[i+200>>2]=t},function(i,t){i|=0;var e,n=0,r=0;e=u,n=0|o[16+(0|o[(t|=0)>>2])>>2],r=0|an[127&o[16+(0|o[i>>2])>>2]](i),r=0|_n[31&n](t,r,1),n=0|_n[31&o[20+(0|o[i>>2])>>2]](i,0|o[r+8>>2],t),tn[31&o[20+(0|o[t>>2])>>2]](t,r,n,1497645650,i),u=e},function(i,t){t|=0;var e,n=0,r=0,f=0,s=0,c=0,h=0,l=0,d=0,v=0,b=0,_=0,w=0;if(e=u,u=u+32|0,w=0|o[(i|=0)+92>>2],0|an[127&o[56+(0|o[w>>2])>>2]](w)){if(n=0|o[i+92>>2],n=0|an[127&o[28+(0|o[n>>2])>>2]](n),(0|(r=0|o[n+4>>2]))>1&&(vi(n,0,r+-1|0),r=0|o[n+4>>2]),v=r-(0|o[i+104>>2])|0,o[e+16>>2]=0,o[e+20>>2]=0,o[e+24>>2]=0,o[e+28>>2]=0,di(n,v,e+16|0),o[i+104>>2]=0,(0|(v=0|o[n+4>>2]))>0){for(f=0,b=0,l=0,r=0;;){s=0|o[n+12>>2],d=0|o[(c=s+(r<<4)|0)>>2],h=0|o[(s=s+(r<<4)+4|0)>>2],(0|d)==(0|f)?(0|h)==(0|b)?(h=b,d=f,f=12):(d=f,f=8):f=8;i:do{if(8==(0|f)){f=0,_=d+54|0,w=d+48|0,b=0;do{if((0|a[_+(b<<1)>>1])<(0|a[h+48+(b<<1)>>1])){f=12;break i}if((0|a[h+54+(b<<1)>>1])<(0|a[w+(b<<1)>>1])){f=12;break i}b=b+1|0}while((0|b)<3)}}while(0);if(12==(0|f)&&(l=0|o[i+92>>2],Pn[63&o[32+(0|o[l>>2])>>2]](l,c,t),o[c>>2]=0,o[s>>2]=0,l=1+(0|o[i+104>>2])|0,o[i+104>>2]=l,o[3430]=(0|o[3430])-1,v=0|o[n+4>>2]),(0|(r=r+1|0))>=(0|v))break;f=d,b=h}(0|v)>1&&(vi(n,0,v+-1|0),l=0|o[i+104>>2],v=0|o[n+4>>2])}else l=0;w=v-l|0,o[e+0>>2]=0,o[e+4>>2]=0,o[e+8>>2]=0,o[e+12>>2]=0,di(n,w,e),o[i+104>>2]=0,u=e}else u=e},function(i,t){t|=0;var e,n=0,f=0;if(t=u,0|r[(i|=0)+56>>1])u=t;else{if(r[i+64>>1]=1,n=0|r[i+58>>1],e=0|o[i+60>>2],(65535&n)>1)for(n=1,f=1;r[e+(n<<6)+48>>1]=n+1,(65535&(f=f+1<<16>>16))<(65535&(n=0|r[i+58>>1]));)n=65535&f;r[e+((65535&n)-1<<6)+48>>1]=0,u=t}},function(i,t){},function(i,t){},function(i,t){},function(i,t){var e,n,r,f,a,c,h,l,d,v;t|=0,e=u,l=+mn[15&o[48+(0|o[(i|=0)>>2])>>2]](i),a=+mn[15&o[48+(0|o[i>>2])>>2]](i),n=+mn[15&o[48+(0|o[i>>2])>>2]](i),v=(l+ +s[i+28>>2])/+s[i+12>>2],h=(a+ +s[i+32>>2])/+s[i+16>>2],f=(n+ +s[i+36>>2])/+s[i+20>>2],d=+b(+ +s[t>>2]),c=+b(+ +s[t+4>>2]),r=+b(+ +s[t+8>>2]),s[i+12>>2]=d,s[i+16>>2]=c,s[i+20>>2]=r,s[i+24>>2]=0,s[i+28>>2]=v*d-l,s[i+32>>2]=h*c-a,s[i+36>>2]=f*r-n,s[i+40>>2]=0,u=e},function(i,t){s[(i|=0)>>2]=1,s[i+4>>2]=1,s[i+8>>2]=1,s[i+12>>2]=0},function(i,t){t|=0;var e,n,r=0;e=u,r=0|an[127&o[52+(0|o[(i|=0)>>2])>>2]](i),r=0|_n[31&o[16+(0|o[t>>2])>>2]](t,r,1),n=0|_n[31&o[56+(0|o[i>>2])>>2]](i,0|o[r+8>>2],t),tn[31&o[20+(0|o[t>>2])>>2]](t,r,n,1346455635,i),u=e},function(i,t){t|=0;var e,r,f,a,c,h=0;e=u,c=0|an[127&o[28+(0|o[(i|=0)>>2])>>2]](i),(a=+s[c>>2]-+s[t>>2])*a+(f=+s[c+4>>2]-+s[t+4>>2])*f+(r=+s[c+8>>2]-+s[t+8>>2])*r>1.1920928955078125e-7?(ri(i,t),0|n[i+61|0]&&(h=0|o[i+52>>2],nn[255&o[o[h>>2]>>2]](h),0|(h=0|o[i+52>>2]))&&(o[4548]=1+(0|o[4548]),ke(0|o[h+-4>>2])),o[4546]=1+(0|o[4546]),0|(h=0|ye(191))?(o[(h+19&-16)-4>>2]=h,h=h+19&-16):h=0,o[h+52>>2]=282,n[h+60|0]=0,n[h+80|0]=1,o[h+76>>2]=0,o[h+68>>2]=0,o[h+72>>2]=0,n[h+100|0]=1,o[h+96>>2]=0,o[h+88>>2]=0,o[h+92>>2]=0,n[h+120|0]=1,o[h+116>>2]=0,o[h+108>>2]=0,o[h+112>>2]=0,n[h+140|0]=1,o[h+136>>2]=0,o[h+128>>2]=0,o[h+132>>2]=0,o[h+144>>2]=0,n[h+164|0]=1,o[h+160>>2]=0,o[h+152>>2]=0,o[h+156>>2]=0,o[h+168>>2]=0,s[h+4>>2]=-34028234663852886e22,s[h+8>>2]=-34028234663852886e22,s[h+12>>2]=-34028234663852886e22,s[h+16>>2]=0,s[h+20>>2]=34028234663852886e22,s[h+24>>2]=34028234663852886e22,s[h+28>>2]=34028234663852886e22,s[h+32>>2]=0,o[h>>2]=13368,o[i+52>>2]=h,ft(h,0|o[i+48>>2],!!(0|n[i+60|0]),i+16|0,i+32|0),n[i+61|0]=1,u=e):u=e},function(i,t){t|=0;var e,n=0,r=0;e=u,0|(n=0|o[(i|=0)+52>>2])?(r=0|an[127&o[12+(0|o[n>>2])>>2]](n),r=0|_n[31&o[16+(0|o[t>>2])>>2]](t,r,1),n=0|o[i+52>>2],n=0|_n[31&o[16+(0|o[n>>2])>>2]](n,0|o[r+8>>2],t),tn[31&o[20+(0|o[t>>2])>>2]](t,r,n,1213612625,0|o[i+52>>2]),u=e):u=e},function(i,t){t|=0;var e,n=0,r=0;e=u,0|(n=0|o[(i|=0)+56>>2])?(r=0|an[127&o[8+(0|o[n>>2])>>2]](n),r=0|_n[31&o[16+(0|o[t>>2])>>2]](t,r,1),n=0|o[i+56>>2],n=0|_n[31&o[12+(0|o[n>>2])>>2]](n,0|o[r+8>>2],t),tn[31&o[20+(0|o[t>>2])>>2]](t,r,n,1346456916,0|o[i+56>>2]),u=e):u=e},function(i,t){var e,n,r,f,a,c,h,l,d,v;t|=0,e=u,l=+mn[15&o[48+(0|o[(i|=0)>>2])>>2]](i),a=+mn[15&o[48+(0|o[i>>2])>>2]](i),n=+mn[15&o[48+(0|o[i>>2])>>2]](i),v=(l+ +s[i+28>>2])/+s[i+12>>2],h=(a+ +s[i+32>>2])/+s[i+16>>2],f=(n+ +s[i+36>>2])/+s[i+20>>2],d=+b(+ +s[t>>2]),c=+b(+ +s[t+4>>2]),r=+b(+ +s[t+8>>2]),s[i+12>>2]=d,s[i+16>>2]=c,s[i+20>>2]=r,s[i+24>>2]=0,s[i+28>>2]=v*d-l,s[i+32>>2]=h*c-a,s[i+36>>2]=f*r-n,s[i+40>>2]=0,u=e},function(i,t){var e;t|=0,e=u,o[(i|=0)+0>>2]=0,o[i+4>>2]=0,o[i+8>>2]=0,o[i+12>>2]=0,s[i+(o[t+52>>2]<<2)>>2]=1,u=e},function(i,t){i|=0,t|=0;var e,n,r,f,a=0;if(e=u,o[1504]=(0|o[1504])-1,on[127&o[20+(0|o[i>>2])>>2]](i,t),n=0|o[t+768>>2],r=(0|o[i+12>>2])-1|0,a=0|o[i+20>>2],f=0|o[a+(n<<2)>>2],o[a+(n<<2)>>2]=o[a+(r<<2)>>2],o[(0|o[i+20>>2])+(r<<2)>>2]=f,o[768+(0|o[(0|o[i+20>>2])+(n<<2)>>2])>>2]=n,o[i+12>>2]=(0|o[i+12>>2])-1,i=0|o[i+68>>2],0|t){if(!((a=0|o[i+16>>2])>>>0>t>>>0)&&(a+(0|g(0|o[i>>2],0|o[i+4>>2]))|0)>>>0>t>>>0)return o[t>>2]=o[i+12>>2],o[i+12>>2]=t,o[i+8>>2]=1+(0|o[i+8>>2]),void(u=e);o[4548]=1+(0|o[4548]),ke(0|o[t+-4>>2]),u=e}else u=e},function(i,t){i|=0;var e,n=0;if(i=u,(0|(e=0|o[(t|=0)+748>>2]))>0){n=0;do{n=n+1|0}while((0|n)<(0|e))}o[t+748>>2]=0,u=i},function(i,t){var e,n;if(t|=0,e=u,i=0|o[(i|=0)+64>>2],0|t){if(!((n=0|o[i+16>>2])>>>0>t>>>0)&&(n+(0|g(0|o[i>>2],0|o[i+4>>2]))|0)>>>0>t>>>0)return o[t>>2]=o[i+12>>2],o[i+12>>2]=t,o[i+8>>2]=1+(0|o[i+8>>2]),void(u=e);o[4548]=1+(0|o[4548]),ke(0|o[t+-4>>2]),u=e}else u=e},Vi,function(i,t){var e;i|=0,e=u,nn[255&o[32+(0|o[(t|=0)>>2])>>2]](t),$i(i,t),nn[255&o[36+(0|o[t>>2])>>2]](t),u=e},function(i,t){var e,n,f;i|=0,e=u,u=u+128|0,n=0|o[(t|=0)+36>>2],t=0|o[24+(0|o[i+8>>2])>>2],f=0|o[t+(80*n|0)+64>>2],nt(e+56|0,0|o[i+12>>2],t+(80*n|0)|0),t=0|o[i+4>>2],o[e+32>>2]=0,o[e+36>>2]=f,o[e+40>>2]=t,o[e+44>>2]=e+56,o[e+48>>2]=-1,o[e+52>>2]=n,t=0|o[i+24>>2],s[e+4>>2]=1,o[e+8>>2]=0,r[e+12>>1]=1,r[e+14>>1]=-1,o[e+16>>2]=0,o[e>>2]=7808,o[e+20>>2]=t,o[e+24>>2]=n,s[e+4>>2]=+s[t+4>>2],o[e+16>>2]=o[t+16>>2],Ui(0|o[i+16>>2],0|o[i+20>>2],e+32|0,e),u=e},function(i,t){},function(i,t){t|=0;var e,n,r,f,a=0,c=0,h=0,l=0,d=0,v=0,b=0,_=0,w=0;if(f=u,u=u+144|0,(0|o[(i|=0)+16>>2])<=0)return o[(b=i+76|0)+0>>2]=o[t+0>>2],o[b+4>>2]=o[t+4>>2],o[b+8>>2]=o[t+8>>2],o[b+12>>2]=o[t+12>>2],b=0|o[i>>2],b=0|o[(b=b+68|0)>>2],nn[255&b](i),void(u=f);e=f+32|0,n=f+48|0,r=f+64|0,c=0;do{if(v=(b=0|o[i+24>>2])+(80*c|0)|0,o[f+16>>2]=o[v+0>>2],o[f+20>>2]=o[v+4>>2],o[f+24>>2]=o[v+8>>2],o[f+28>>2]=o[v+12>>2],v=b+(80*c|0)+16|0,o[e+0>>2]=o[v+0>>2],o[e+4>>2]=o[v+4>>2],o[e+8>>2]=o[v+8>>2],o[e+12>>2]=o[v+12>>2],v=b+(80*c|0)+32|0,o[n+0>>2]=o[v+0>>2],o[n+4>>2]=o[v+4>>2],o[n+8>>2]=o[v+8>>2],o[n+12>>2]=o[v+12>>2],v=b+(80*c|0)+48|0,o[r+0>>2]=o[v+0>>2],o[r+4>>2]=o[v+4>>2],o[r+8>>2]=o[v+8>>2],o[r+12>>2]=o[v+12>>2],b=0|o[b+(80*c|0)+64>>2],b=0|an[127&o[28+(0|o[b>>2])>>2]](b),o[f+0>>2]=o[b+0>>2],o[f+4>>2]=o[b+4>>2],o[f+8>>2]=o[b+8>>2],_=+s[f+4>>2]*+s[t+4>>2]/+s[i+80>>2],w=+s[f+8>>2]*+s[t+8>>2]/+s[i+84>>2],s[f>>2]=+s[f>>2]*+s[t>>2]/+s[i+76>>2],s[f+4>>2]=_,s[f+8>>2]=w,s[f+12>>2]=0,b=0|o[(0|o[i+24>>2])+(80*c|0)+64>>2],on[127&o[24+(0|o[b>>2])>>2]](b,f),w=+s[f+68>>2]*+s[t+4>>2]/+s[i+80>>2],_=+s[f+72>>2]*+s[t+8>>2]/+s[i+84>>2],s[f+64>>2]=+s[r>>2]*+s[t>>2]/+s[i+76>>2],s[f+68>>2]=w,s[f+72>>2]=_,s[f+76>>2]=0,b=0|o[i+24>>2],o[(v=b+(80*c|0)|0)+0>>2]=o[f+16>>2],o[v+4>>2]=o[f+20>>2],o[v+8>>2]=o[f+24>>2],o[v+12>>2]=o[f+28>>2],o[(v=b+(80*c|0)+16|0)+0>>2]=o[e+0>>2],o[v+4>>2]=o[e+4>>2],o[v+8>>2]=o[e+8>>2],o[v+12>>2]=o[e+12>>2],o[(v=b+(80*c|0)+32|0)+0>>2]=o[n+0>>2],o[v+4>>2]=o[n+4>>2],o[v+8>>2]=o[n+8>>2],o[v+12>>2]=o[n+12>>2],o[(b=b+(80*c|0)+48|0)+0>>2]=o[r+0>>2],o[b+4>>2]=o[r+4>>2],o[b+8>>2]=o[r+8>>2],o[b+12>>2]=o[r+12>>2],0|o[i+64>>2]){h=0|o[(0|o[i+24>>2])+(80*c|0)+64>>2],Vn[63&o[8+(0|o[h>>2])>>2]](h,f+16|0,f+128|0,f+112|0),o[f+80>>2]=o[f+128>>2],o[f+84>>2]=o[f+132>>2],o[f+88>>2]=o[f+136>>2],o[f+92>>2]=o[f+140>>2],o[f+96>>2]=o[f+112>>2],o[f+100>>2]=o[f+116>>2],o[f+104>>2]=o[f+120>>2],o[f+108>>2]=o[f+124>>2],v=0|Ti(h=0|o[i+64>>2],a=0|o[(0|o[i+24>>2])+(80*c|0)+76>>2]);i:do{if(0|v){if(!((0|(l=0|o[h+8>>2]))>-1)){v=0|o[h>>2];break}if((0|l)>0)for(d=0;;){if(d=d+1|0,!(0|(b=0|o[v+32>>2])))break i;if((0|d)>=(0|l)){v=b;break}v=b}}else v=0}while(0);o[a+0>>2]=o[f+80>>2],o[a+4>>2]=o[f+84>>2],o[a+8>>2]=o[f+88>>2],o[a+12>>2]=o[f+92>>2],o[a+16>>2]=o[f+96>>2],o[a+20>>2]=o[f+100>>2],o[a+24>>2]=o[f+104>>2],o[a+28>>2]=o[f+108>>2],Ei(h,v,a)}c=c+1|0}while((0|c)<(0|o[i+16>>2]));o[(b=i+76|0)+0>>2]=o[t+0>>2],o[b+4>>2]=o[t+4>>2],o[b+8>>2]=o[t+8>>2],o[b+12>>2]=o[t+12>>2],b=0|o[i>>2],b=0|o[(b=b+68|0)>>2],nn[255&b](i),u=f},function(i,t){t|=0;var e,n=0,r=0,f=0,a=0,s=0,c=0,h=0,l=0,d=0;if(e=u,u=u+80|0,o[(i|=0)+68>>2]=1+(0|o[i+68>>2]),(0|(n=0|o[i+16>>2]))<=0)return a=0|o[i>>2],a=0|o[(a=a+68|0)>>2],nn[255&a](i),void(u=e);a=n;do{n=n+-1|0,f=0|o[i+24>>2],(0|o[f+(80*n|0)+64>>2])==(0|t)&&(o[i+68>>2]=1+(0|o[i+68>>2]),0|(r=0|o[i+64>>2])&&(Ti(r,f=0|o[f+(80*n|0)+76>>2]),0|(a=0|o[r+4>>2])&&(o[4548]=1+(0|o[4548]),ke(0|o[a+-4>>2])),o[r+4>>2]=f,o[r+12>>2]=(0|o[r+12>>2])-1,a=0|o[i+16>>2],f=0|o[i+24>>2]),a=a+-1|0,l=f+(80*n|0)|0,o[e+0>>2]=o[l+0>>2],o[e+4>>2]=o[l+4>>2],o[e+8>>2]=o[l+8>>2],o[e+12>>2]=o[l+12>>2],h=f+(80*n|0)+16|0,o[e+16>>2]=o[h+0>>2],o[e+20>>2]=o[h+4>>2],o[e+24>>2]=o[h+8>>2],o[e+28>>2]=o[h+12>>2],c=f+(80*n|0)+32|0,o[e+32>>2]=o[c+0>>2],o[e+36>>2]=o[c+4>>2],o[e+40>>2]=o[c+8>>2],o[e+44>>2]=o[c+12>>2],s=f+(80*n|0)+48|0,o[e+48>>2]=o[s+0>>2],o[e+52>>2]=o[s+4>>2],o[e+56>>2]=o[s+8>>2],o[e+60>>2]=o[s+12>>2],r=f+(80*n|0)+64|0,o[e+64>>2]=o[r+0>>2],o[e+68>>2]=o[r+4>>2],o[e+72>>2]=o[r+8>>2],o[e+76>>2]=o[r+12>>2],d=f+(80*a|0)|0,o[l+0>>2]=o[d+0>>2],o[l+4>>2]=o[d+4>>2],o[l+8>>2]=o[d+8>>2],o[l+12>>2]=o[d+12>>2],l=f+(80*a|0)+16|0,o[h+0>>2]=o[l+0>>2],o[h+4>>2]=o[l+4>>2],o[h+8>>2]=o[l+8>>2],o[h+12>>2]=o[l+12>>2],h=f+(80*a|0)+32|0,o[c+0>>2]=o[h+0>>2],o[c+4>>2]=o[h+4>>2],o[c+8>>2]=o[h+8>>2],o[c+12>>2]=o[h+12>>2],c=f+(80*a|0)+48|0,o[s+0>>2]=o[c+0>>2],o[s+4>>2]=o[c+4>>2],o[s+8>>2]=o[c+8>>2],o[s+12>>2]=o[c+12>>2],f=f+(80*a|0)+64|0,o[r+0>>2]=o[f+0>>2],o[r+4>>2]=o[f+4>>2],o[r+8>>2]=o[f+8>>2],o[r+12>>2]=o[f+12>>2],f=0|o[i+24>>2],o[f+(80*a|0)+0>>2]=o[e+0>>2],o[f+(80*a|0)+4>>2]=o[e+4>>2],o[f+(80*a|0)+8>>2]=o[e+8>>2],o[f+(80*a|0)+12>>2]=o[e+12>>2],o[f+(80*a|0)+16>>2]=o[e+16>>2],o[f+(80*a|0)+20>>2]=o[e+20>>2],o[f+(80*a|0)+24>>2]=o[e+24>>2],o[f+(80*a|0)+28>>2]=o[e+28>>2],o[f+(80*a|0)+32>>2]=o[e+32>>2],o[f+(80*a|0)+36>>2]=o[e+36>>2],o[f+(80*a|0)+40>>2]=o[e+40>>2],o[f+(80*a|0)+44>>2]=o[e+44>>2],o[f+(80*a|0)+48>>2]=o[e+48>>2],o[f+(80*a|0)+52>>2]=o[e+52>>2],o[f+(80*a|0)+56>>2]=o[e+56>>2],o[f+(80*a|0)+60>>2]=o[e+60>>2],o[f+(80*a|0)+64>>2]=o[e+64>>2],o[f+(80*a|0)+68>>2]=o[e+68>>2],o[f+(80*a|0)+72>>2]=o[e+72>>2],o[f+(80*a|0)+76>>2]=o[e+76>>2],0|o[i+64>>2]&&(o[36+(0|o[(0|o[i+24>>2])+(80*n|0)+76>>2])>>2]=n),a=(0|o[i+16>>2])-1|0,o[i+16>>2]=a)}while((0|n)>0);d=0|o[i>>2],d=0|o[(d=d+68|0)>>2],nn[255&d](i),u=e},function(i,t){t|=0;var e,n,r,f,a=0,c=0;f=0|o[(i|=0)+68>>2],r=0|o[i+64>>2],n=0|o[i+72>>2],a=+s[t+(f<<2)>>2]/+s[i+(f<<2)+12>>2]*+s[i+60>>2],s[i+60>>2]=a,c=+s[i+56>>2]*(+s[t+(r<<2)>>2]/+s[i+(r<<2)+12>>2]+ +s[t+(n<<2)>>2]/+s[i+(n<<2)+12>>2])*.5,s[i+56>>2]=c,s[i+52>>2]=c/+_(+(a*a+c*c)),c=+b(+ +s[t>>2]),a=+b(+ +s[t+4>>2]),e=+b(+ +s[t+8>>2]),s[i+12>>2]=c,s[i+16>>2]=a,s[i+20>>2]=e,s[i+24>>2]=0},function(i,t){s[(i|=0)>>2]=0,s[i+4>>2]=1,s[i+8>>2]=0,s[i+12>>2]=0},function(i,t){s[(i|=0)>>2]=0,s[i+4>>2]=0,s[i+8>>2]=1,s[i+12>>2]=0},function(i,t){s[(i|=0)>>2]=1,s[i+4>>2]=0,s[i+8>>2]=0,s[i+12>>2]=0},function(i,t){var e,n,r,f,a,c,h,l,d,v;t|=0,e=u,l=+mn[15&o[48+(0|o[(i|=0)>>2])>>2]](i),a=+mn[15&o[48+(0|o[i>>2])>>2]](i),n=+mn[15&o[48+(0|o[i>>2])>>2]](i),v=(l+ +s[i+28>>2])/+s[i+12>>2],h=(a+ +s[i+32>>2])/+s[i+16>>2],f=(n+ +s[i+36>>2])/+s[i+20>>2],d=+b(+ +s[t>>2]),c=+b(+ +s[t+4>>2]),r=+b(+ +s[t+8>>2]),s[i+12>>2]=d,s[i+16>>2]=c,s[i+20>>2]=r,s[i+24>>2]=0,s[i+28>>2]=v*d-l,s[i+32>>2]=h*c-a,s[i+36>>2]=f*r-n,s[i+40>>2]=0,u=e},function(i,t){var e;t|=0,e=u,o[(i|=0)+0>>2]=0,o[i+4>>2]=0,o[i+8>>2]=0,o[i+12>>2]=0,s[i+(o[t+52>>2]<<2)>>2]=1,u=e},function(i,t){t|=0;var e,r=0,f=0,a=0,c=0,h=0,l=0,d=0,v=0,b=0,_=0;if(e=u,u=u+48|0,Mi((i|=0)+4|0,1+((0|g(0|o[i+152>>2],0|o[i+16>>2]))/100|0)|0),0|o[i+164>>2]&&(Mi(i+64|0,b=1+((0|g(0|o[i+148>>2],0|o[i+76>>2]))/100|0)|0),b=(0|o[i+164>>2])-b|0,o[i+164>>2]=(0|b)<0?0:b),h=(1+(0|o[i+144>>2])|0)%2|0,o[i+144>>2]=h,0|(h=0|o[i+(h<<2)+124>>2])){do{if(c=h,h=0|o[(l=h+56|0)>>2],0|(d=0|o[c+52>>2])?o[d+56>>2]=h:o[i+(o[c+60>>2]<<2)+124>>2]=h,0|(d=0|o[l>>2])&&(o[d+52>>2]=o[c+52>>2]),o[c+52>>2]=0,o[l>>2]=o[i+132>>2],0|(l=0|o[i+132>>2])&&(o[l+52>>2]=c),o[i+132>>2]=c,Ti(i+4|0,d=0|o[c+48>>2]),0|(l=0|o[i+8>>2])&&(o[4548]=1+(0|o[4548]),ke(0|o[l+-4>>2])),o[i+8>>2]=d,o[i+16>>2]=(0|o[i+16>>2])-1,o[e+16>>2]=o[c+16>>2],o[e+20>>2]=o[c+20>>2],o[e+24>>2]=o[c+24>>2],o[e+28>>2]=o[c+28>>2],o[e+32>>2]=o[c+32>>2],o[e+36>>2]=o[c+36>>2],o[e+40>>2]=o[c+40>>2],o[e+44>>2]=o[c+44>>2],0|(l=0|o[i+68>>2]))o[i+68>>2]=0;else if(o[4546]=1+(0|o[4546]),0|(l=0|ye(63))&&(o[(l+19&-16)-4>>2]=l,l+19&-16)){d=(v=0+(l+19&-16)|0)+44|0;do{o[v>>2]=0,v=v+4|0}while((0|v)<(0|d));l=l+19&-16}else l=0;o[l+32>>2]=0,o[l+36>>2]=c,o[l+40>>2]=0,o[l+0>>2]=o[e+16>>2],o[l+4>>2]=o[e+20>>2],o[l+8>>2]=o[e+24>>2],o[l+12>>2]=o[e+28>>2],o[l+16>>2]=o[e+32>>2],o[l+20>>2]=o[e+36>>2],o[l+24>>2]=o[e+40>>2],o[l+28>>2]=o[e+44>>2],Ei(i+64|0,0|o[i+64>>2],l),o[i+76>>2]=1+(0|o[i+76>>2]),o[c+48>>2]=l,o[c+60>>2]=2}while(0|h);o[i+164>>2]=o[i+76>>2],n[i+194|0]=1}o[e>>2]=10360,o[e+4>>2]=i,0|n[i+193|0]&&(Di(i+4|0,0|o[i+4>>2],0|o[i+64>>2],e),0|n[i+193|0])&&Di(i+4|0,b=0|o[i+4>>2],b,e);do{if(0|n[i+194|0]&&(f=0|o[i+136>>2],f=0|an[127&o[28+(0|o[f>>2])>>2]](f),(0|(a=0|o[f+4>>2]))>0)){if(h=(0|g(0|o[i+156>>2],a))/100|0,(0|(h=(0|a)<(0|(h=(0|(b=0|o[i+160>>2]))>(0|h)?b:h))?a:h))>0){c=0;do{d=((0|o[i+184>>2])+c|0)%(0|a)|0,v=0|o[f+12>>2],l=0|o[v+(d<<4)>>2],d=0|o[v+(d<<4)+4>>2],v=0|o[l+48>>2],b=0|o[d+48>>2],+s[v>>2]<=+s[b+16>>2]&&+s[v+16>>2]>=+s[b>>2]&&+s[v+4>>2]<=+s[b+20>>2]&&+s[v+20>>2]>=+s[b+4>>2]&&+s[v+8>>2]<=+s[b+24>>2]&&+s[v+24>>2]>=+s[b+8>>2]||(a=0|o[i+136>>2],hn[31&o[12+(0|o[a>>2])>>2]](a,l,d,t),a=0|o[f+4>>2],c=c+-1|0,h=h+-1|0),c=c+1|0}while((0|c)<(0|h));if((0|a)<=0){o[i+184>>2]=0;break}}o[i+184>>2]=((0|o[i+184>>2])+h|0)%(0|a)|0}}while(0);if(o[i+180>>2]=1+(0|o[i+180>>2]),o[i+160>>2]=1,n[i+194|0]=0,0|(f=0|o[i+168>>2])?(a=0|o[i+172>>2],s[i+176>>2]=+(a>>>0)/+(f>>>0)):(s[i+176>>2]=0,a=0|o[i+172>>2]),o[i+172>>2]=a>>>1,o[i+168>>2]=f>>>1,b=0|o[i+136>>2],0|an[127&o[56+(0|o[b>>2])>>2]](b)){for(f=0|o[i+136>>2],f=0|an[127&o[28+(0|o[f>>2])>>2]](f),(0|(l=0|o[f+4>>2]))>1?(vi(f,0,l+-1|0),v=0,h=0,a=0,c=0,r=45):(h=0,v=0,a=0,c=0);45==(0|r)&&(l=0|o[f+4>>2]),!((0|a)>=(0|l));)d=0|o[f+12>>2],r=0|o[(l=d+(a<<4)|0)>>2],b=0|o[(d=d+(a<<4)+4|0)>>2],(0|r)==(0|h)?r=(0|b)==(0|v)?55:49:(h=r,r=49),49==(0|r)&&(r=0,_=0|o[h+48>>2],v=0|o[b+48>>2],+s[_>>2]<=+s[v+16>>2]&&+s[_+16>>2]>=+s[v>>2]&&+s[_+4>>2]<=+s[v+20>>2]&&+s[_+20>>2]>=+s[v+4>>2]&&+s[_+8>>2]<=+s[v+24>>2]&&+s[_+24>>2]>=+s[v+8>>2]?v=b:(v=b,r=55)),55==(0|r)&&(_=0|o[i+136>>2],Pn[63&o[32+(0|o[_>>2])>>2]](_,l,t),o[l>>2]=0,o[d>>2]=0,c=c+1|0),a=a+1|0,r=45;if((0|l)>1&&(vi(f,0,l+-1|0),l=0|o[f+4>>2]),i=l-c|0,(0|c)<0){if((0|o[f+8>>2])<(0|i)){if((0|l)==(0|c)?t=0:(o[4546]=1+(0|o[4546]),0|(t=0|ye(16+(i<<4|3)|0))?(o[(t+19&-16)-4>>2]=t,t=t+19&-16):t=0,c=0|o[f+4>>2]),(0|c)>0){r=0;do{_=0|o[f+12>>2],o[t+(r<<4)>>2]=o[_+(r<<4)>>2],o[t+(r<<4)+4>>2]=o[_+(r<<4)+4>>2],o[t+(r<<4)+8>>2]=o[_+(r<<4)+8>>2],o[t+(r<<4)+12>>2]=o[_+(r<<4)+12>>2],r=r+1|0}while((0|r)!=(0|c))}0|(r=0|o[f+12>>2])&&(0|n[f+16|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[r+-4>>2])),o[f+12>>2]=0),n[f+16|0]=1,o[f+12>>2]=t,o[f+8>>2]=i,t=f+12|0}else t=f+12|0;do{b=(0|o[t>>2])+(l<<4)|0,_=(0|(l=l+1|0))==(0|i),o[b+0>>2]=0,o[b+4>>2]=0,o[b+8>>2]=0,o[b+12>>2]=0}while(!_)}o[f+4>>2]=i,u=e}else u=e},function(i,t){t|=0;var e=0;t=u,(0|o[(i|=0)+16>>2])==(0-(0|o[i+76>>2])|0)?(0|(e=0|o[i+4>>2])&&xi(i+4|0,e),0|(e=0|o[i+8>>2])&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+8>>2]=0,o[i+12>>2]=-1,0|(e=0|o[i+36>>2])&&(0|n[i+40|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+36>>2]=0),n[i+40|0]=1,o[i+36>>2]=0,o[i+28>>2]=0,o[i+32>>2]=0,o[i+20>>2]=0,0|(e=0|o[i+64>>2])&&xi(i+64|0,e),0|(e=0|o[i+68>>2])&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+68>>2]=0,o[i+72>>2]=-1,0|(e=0|o[i+96>>2])&&(0|n[i+100|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+96>>2]=0),n[i+100|0]=1,o[i+96>>2]=0,o[i+88>>2]=0,o[i+92>>2]=0,o[i+80>>2]=0,n[i+193|0]=0,n[i+194|0]=1,o[i+144>>2]=0,o[i+164>>2]=0,o[i+148>>2]=1,o[i+152>>2]=0,o[i+156>>2]=10,o[i+160>>2]=1,o[i+124>>2]=0,o[i+128>>2]=0,o[i+132>>2]=0,o[i+168>>2]=0,o[i+172>>2]=0,o[i+176>>2]=0,o[i+180>>2]=0,o[i+184>>2]=0,o[i+188>>2]=0,u=t):u=t},function(i,t){var e;t|=0,e=u,i=0|o[(i|=0)+4>>2],Sn[31&o[8+(0|o[i>>2])>>2]](i,0|o[t+36>>2]),u=e},function(i,t){var e;t|=0,e=u,i=0|o[(i|=0)+4>>2],Sn[31&o[8+(0|o[i>>2])>>2]](i,0|o[t+36>>2]),u=e},function(i,t){var e;t|=0,e=u,Pn[63&o[8+(0|o[(i|=0)>>2])>>2]](i,t,0|o[48+(0|o[i+8>>2])>>2]),u=e},function(i,t){},function(i,t){t|=0;var e,f=0,a=0,c=0,h=0,l=0,d=0,v=0,b=0;e=u,u=u+112|0,s[(i|=0)+20>>2]=+s[t+16>>2],s[i+24>>2]=+s[t+20>>2],s[i+28>>2]=+s[t+24>>2],s[i+32>>2]=+s[t+28>>2],s[i+4>>2]=+s[t>>2],s[i+8>>2]=+s[t+4>>2],s[i+12>>2]=+s[t+8>>2],s[i+16>>2]=+s[t+12>>2],s[i+36>>2]=+s[t+32>>2],s[i+40>>2]=+s[t+36>>2],s[i+44>>2]=+s[t+40>>2],s[i+48>>2]=+s[t+44>>2],o[i+56>>2]=o[t+48>>2],n[i+60|0]=1&!!(0|o[t+52>>2]),f=0|o[t+56>>2],l=(h=e+48|0)+64|0;do{o[h>>2]=0,h=h+4|0}while((0|h)<(0|l));if((0|(a=0|o[i+88>>2]))<(0|f)){if((0|o[i+92>>2])<(0|f)){if(0|f?(o[4546]=1+(0|o[4546]),0|(c=0|ye(f<<6|19))?(o[(c+19&-16)-4>>2]=c,v=c+19&-16):v=0,d=0|o[i+88>>2]):(d=a,v=0),(0|d)>0){b=0;do{h=v+(b<<6)+0|0,c=(0|o[i+96>>2])+(b<<6)+0|0,l=h+64|0;do{o[h>>2]=o[c>>2],h=h+4|0,c=c+4|0}while((0|h)<(0|l));b=b+1|0}while((0|b)!=(0|d))}0|(c=0|o[i+96>>2])&&(0|n[i+100|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[c+-4>>2])),o[i+96>>2]=0),n[i+100|0]=1,o[i+96>>2]=v,o[i+92>>2]=f,d=i+96|0}else d=i+96|0;do{c=e+48|0,l=(h=(0|o[d>>2])+(a<<6)+0|0)+64|0;do{o[h>>2]=o[c>>2],h=h+4|0,c=c+4|0}while((0|h)<(0|l));a=a+1|0}while((0|a)!=(0|f))}if(o[i+88>>2]=f,(0|f)>0)for(h=0|o[i+96>>2],c=0,a=0|o[t+64>>2];s[h+(c<<6)+16>>2]=+s[a+16>>2],s[h+(c<<6)+20>>2]=+s[a+20>>2],s[h+(c<<6)+24>>2]=+s[a+24>>2],s[h+(c<<6)+28>>2]=+s[a+28>>2],s[h+(c<<6)>>2]=+s[a>>2],s[h+(c<<6)+4>>2]=+s[a+4>>2],s[h+(c<<6)+8>>2]=+s[a+8>>2],s[h+(c<<6)+12>>2]=+s[a+12>>2],o[h+(c<<6)+32>>2]=o[a+32>>2],o[h+(c<<6)+36>>2]=o[a+36>>2],o[h+(c<<6)+40>>2]=o[a+40>>2],(0|(c=c+1|0))!=(0|f);)a=a+48|0;if(f=0|o[t+60>>2],o[e+32>>2]=0,o[e+36>>2]=0,o[e+40>>2]=0,o[e+44>>2]=0,(0|(a=0|o[i+128>>2]))<(0|f)){if((0|o[i+132>>2])<(0|f)){if(0|f?(o[4546]=1+(0|o[4546]),0|(c=0|ye(16+(f<<4|3)|0))?(o[(c+19&-16)-4>>2]=c,h=c+19&-16):h=0,c=0|o[i+128>>2]):(c=a,h=0),(0|c)>0){l=0;do{b=h+(l<<4)|0,v=(0|o[i+136>>2])+(l<<4)|0,o[b+0>>2]=o[v+0>>2],o[b+4>>2]=o[v+4>>2],o[b+8>>2]=o[v+8>>2],o[b+12>>2]=o[v+12>>2],l=l+1|0}while((0|l)!=(0|c))}0|(c=0|o[i+136>>2])&&(0|n[i+140|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[c+-4>>2])),o[i+136>>2]=0),n[i+140|0]=1,o[i+136>>2]=h,o[i+132>>2]=f,c=i+136|0}else c=i+136|0;do{b=(0|o[c>>2])+(a<<4)|0,o[b+0>>2]=o[e+32>>2],o[b+4>>2]=o[e+36>>2],o[b+8>>2]=o[e+40>>2],o[b+12>>2]=o[e+44>>2],a=a+1|0}while((0|a)!=(0|f))}if(o[i+128>>2]=f,(0|f)>0)for(a=0|o[i+136>>2],h=0,c=0|o[t+68>>2];o[a+(h<<4)+12>>2]=o[c+12>>2],r[a+(h<<4)+6>>1]=0|r[c+6>>1],r[a+(h<<4)+8>>1]=0|r[c+8>>1],r[a+(h<<4)+10>>1]=0|r[c+10>>1],r[a+(h<<4)>>1]=0|r[c>>1],r[a+(h<<4)+2>>1]=0|r[c+2>>1],r[a+(h<<4)+4>>1]=0|r[c+4>>1],(0|(h=h+1|0))!=(0|f);)c=c+16|0;if(o[i+144>>2]=o[t+76>>2],f=0|o[t+80>>2],(0|(a=0|o[i+152>>2]))<(0|f)){if((0|o[i+156>>2])<(0|f)){if(0|f?(o[4546]=1+(0|o[4546]),0|(c=0|ye(f<<5|19))?(o[(c+19&-16)-4>>2]=c,h=c+19&-16):h=0,c=0|o[i+152>>2]):(c=a,h=0),(0|c)>0){l=0;do{b=h+(l<<5)|0,v=(0|o[i+160>>2])+(l<<5)|0,o[b+0>>2]=o[v+0>>2],o[b+4>>2]=o[v+4>>2],o[b+8>>2]=o[v+8>>2],o[b+12>>2]=o[v+12>>2],o[b+16>>2]=o[v+16>>2],o[b+20>>2]=o[v+20>>2],o[b+24>>2]=o[v+24>>2],o[b+28>>2]=o[v+28>>2],l=l+1|0}while((0|l)!=(0|c))}0|(c=0|o[i+160>>2])&&(0|n[i+164|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[c+-4>>2])),o[i+160>>2]=0),n[i+164|0]=1,o[i+160>>2]=h,o[i+156>>2]=f,c=i+160|0}else c=i+160|0;do{b=(0|o[c>>2])+(a<<5)|0,o[b+0>>2]=o[e+0>>2],o[b+4>>2]=o[e+4>>2],o[b+8>>2]=o[e+8>>2],o[b+12>>2]=o[e+12>>2],o[b+16>>2]=o[e+16>>2],o[b+20>>2]=o[e+20>>2],o[b+24>>2]=o[e+24>>2],o[b+28>>2]=o[e+28>>2],a=a+1|0}while((0|a)!=(0|f))}if(o[i+152>>2]=f,(0|f)<=0)u=e;else{for(a=0|o[i+160>>2],i=0,t=0|o[t+72>>2];r[a+(i<<5)+6>>1]=0|r[t+14>>1],r[a+(i<<5)+8>>1]=0|r[t+16>>1],r[a+(i<<5)+10>>1]=0|r[t+18>>1],r[a+(i<<5)>>1]=0|r[t+8>>1],r[a+(i<<5)+2>>1]=0|r[t+10>>1],r[a+(i<<5)+4>>1]=0|r[t+12>>1],o[a+(i<<5)+12>>2]=o[t>>2],o[a+(i<<5)+16>>2]=o[t+4>>2],(0|(i=i+1|0))!=(0|f);)t=t+20|0;u=e}},function(i,t){t|=0;var e,f=0,a=0,h=0,l=0,d=0,v=0,b=0,_=0;e=u,u=u+112|0,s[(i|=0)+20>>2]=+c[t+32>>3],s[i+24>>2]=+c[t+40>>3],s[i+28>>2]=+c[t+48>>3],s[i+32>>2]=+c[t+56>>3],s[i+4>>2]=+c[t>>3],s[i+8>>2]=+c[t+8>>3],s[i+12>>2]=+c[t+16>>3],s[i+16>>2]=+c[t+24>>3],s[i+36>>2]=+c[t+64>>3],s[i+40>>2]=+c[t+72>>3],s[i+44>>2]=+c[t+80>>3],s[i+48>>2]=+c[t+88>>3],o[i+56>>2]=o[t+96>>2],n[i+60|0]=1&!!(0|o[t+100>>2]),f=0|o[t+104>>2],d=(l=e+48|0)+64|0;do{o[l>>2]=0,l=l+4|0}while((0|l)<(0|d));if((0|(a=0|o[i+88>>2]))<(0|f)){if((0|o[i+92>>2])<(0|f)){if(0|f?(o[4546]=1+(0|o[4546]),0|(h=0|ye(f<<6|19))?(o[(h+19&-16)-4>>2]=h,b=h+19&-16):b=0,v=0|o[i+88>>2]):(v=a,b=0),(0|v)>0){_=0;do{l=b+(_<<6)+0|0,h=(0|o[i+96>>2])+(_<<6)+0|0,d=l+64|0;do{o[l>>2]=o[h>>2],l=l+4|0,h=h+4|0}while((0|l)<(0|d));_=_+1|0}while((0|_)!=(0|v))}0|(h=0|o[i+96>>2])&&(0|n[i+100|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[h+-4>>2])),o[i+96>>2]=0),n[i+100|0]=1,o[i+96>>2]=b,o[i+92>>2]=f,v=i+96|0}else v=i+96|0;do{h=e+48|0,d=(l=(0|o[v>>2])+(a<<6)+0|0)+64|0;do{o[l>>2]=o[h>>2],l=l+4|0,h=h+4|0}while((0|l)<(0|d));a=a+1|0}while((0|a)!=(0|f))}if(o[i+88>>2]=f,(0|f)>0)for(l=0|o[i+96>>2],h=0,a=0|o[t+112>>2];s[l+(h<<6)+16>>2]=+c[a+32>>3],s[l+(h<<6)+20>>2]=+c[a+40>>3],s[l+(h<<6)+24>>2]=+c[a+48>>3],s[l+(h<<6)+28>>2]=+c[a+56>>3],s[l+(h<<6)>>2]=+c[a>>3],s[l+(h<<6)+4>>2]=+c[a+8>>3],s[l+(h<<6)+8>>2]=+c[a+16>>3],s[l+(h<<6)+12>>2]=+c[a+24>>3],o[l+(h<<6)+32>>2]=o[a+64>>2],o[l+(h<<6)+36>>2]=o[a+68>>2],o[l+(h<<6)+40>>2]=o[a+72>>2],(0|(h=h+1|0))!=(0|f);)a=a+80|0;if(f=0|o[t+108>>2],o[e+32>>2]=0,o[e+36>>2]=0,o[e+40>>2]=0,o[e+44>>2]=0,(0|(a=0|o[i+128>>2]))<(0|f)){if((0|o[i+132>>2])<(0|f)){if(0|f?(o[4546]=1+(0|o[4546]),0|(h=0|ye(16+(f<<4|3)|0))?(o[(h+19&-16)-4>>2]=h,l=h+19&-16):l=0,h=0|o[i+128>>2]):(h=a,l=0),(0|h)>0){d=0;do{_=l+(d<<4)|0,b=(0|o[i+136>>2])+(d<<4)|0,o[_+0>>2]=o[b+0>>2],o[_+4>>2]=o[b+4>>2],o[_+8>>2]=o[b+8>>2],o[_+12>>2]=o[b+12>>2],d=d+1|0}while((0|d)!=(0|h))}0|(h=0|o[i+136>>2])&&(0|n[i+140|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[h+-4>>2])),o[i+136>>2]=0),n[i+140|0]=1,o[i+136>>2]=l,o[i+132>>2]=f,h=i+136|0}else h=i+136|0;do{_=(0|o[h>>2])+(a<<4)|0,o[_+0>>2]=o[e+32>>2],o[_+4>>2]=o[e+36>>2],o[_+8>>2]=o[e+40>>2],o[_+12>>2]=o[e+44>>2],a=a+1|0}while((0|a)!=(0|f))}if(o[i+128>>2]=f,(0|f)>0)for(a=0|o[i+136>>2],l=0,h=0|o[t+116>>2];o[a+(l<<4)+12>>2]=o[h+12>>2],r[a+(l<<4)+6>>1]=0|r[h+6>>1],r[a+(l<<4)+8>>1]=0|r[h+8>>1],r[a+(l<<4)+10>>1]=0|r[h+10>>1],r[a+(l<<4)>>1]=0|r[h>>1],r[a+(l<<4)+2>>1]=0|r[h+2>>1],r[a+(l<<4)+4>>1]=0|r[h+4>>1],(0|(l=l+1|0))!=(0|f);)h=h+16|0;if(o[i+144>>2]=o[t+120>>2],f=0|o[t+124>>2],(0|(a=0|o[i+152>>2]))<(0|f)){if((0|o[i+156>>2])<(0|f)){if(0|f?(o[4546]=1+(0|o[4546]),0|(h=0|ye(f<<5|19))?(o[(h+19&-16)-4>>2]=h,l=h+19&-16):l=0,h=0|o[i+152>>2]):(h=a,l=0),(0|h)>0){d=0;do{_=l+(d<<5)|0,b=(0|o[i+160>>2])+(d<<5)|0,o[_+0>>2]=o[b+0>>2],o[_+4>>2]=o[b+4>>2],o[_+8>>2]=o[b+8>>2],o[_+12>>2]=o[b+12>>2],o[_+16>>2]=o[b+16>>2],o[_+20>>2]=o[b+20>>2],o[_+24>>2]=o[b+24>>2],o[_+28>>2]=o[b+28>>2],d=d+1|0}while((0|d)!=(0|h))}0|(h=0|o[i+160>>2])&&(0|n[i+164|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[h+-4>>2])),o[i+160>>2]=0),n[i+164|0]=1,o[i+160>>2]=l,o[i+156>>2]=f,h=i+160|0}else h=i+160|0;do{_=(0|o[h>>2])+(a<<5)|0,o[_+0>>2]=o[e+0>>2],o[_+4>>2]=o[e+4>>2],o[_+8>>2]=o[e+8>>2],o[_+12>>2]=o[e+12>>2],o[_+16>>2]=o[e+16>>2],o[_+20>>2]=o[e+20>>2],o[_+24>>2]=o[e+24>>2],o[_+28>>2]=o[e+28>>2],a=a+1|0}while((0|a)!=(0|f))}if(o[i+152>>2]=f,(0|f)<=0)u=e;else{for(a=0|o[i+160>>2],i=0,t=0|o[t+128>>2];r[a+(i<<5)+6>>1]=0|r[t+14>>1],r[a+(i<<5)+8>>1]=0|r[t+16>>1],r[a+(i<<5)+10>>1]=0|r[t+18>>1],r[a+(i<<5)>>1]=0|r[t+8>>1],r[a+(i<<5)+2>>1]=0|r[t+10>>1],r[a+(i<<5)+4>>1]=0|r[t+12>>1],o[a+(i<<5)+12>>2]=o[t>>2],o[a+(i<<5)+16>>2]=o[t+4>>2],(0|(i=i+1|0))!=(0|f);)t=t+20|0;u=e}},function(i,t){t|=0,o[(i|=0)+24>>2]=t},function(i,t){t|=0,o[(i|=0)+72>>2]=t},function(i,t){i|=0,t|=0;var e,r=0,f=0,a=0,s=0,c=0,h=0,l=0,d=0;if(e=u,u=u+32|0,n[e+16|0]=1,o[e+12>>2]=0,o[e+4>>2]=0,o[e+8>>2]=0,(0|(d=0|o[i+8>>2]))>0){for(l=0,h=0,r=0,a=0;;){if(f=0|o[i+16>>2],(0|a)==(0|l))if((0|l)<(0|(s=0|l?l<<1:1))){if(0|s?(o[4546]=1+(0|o[4546]),0|(c=0|ye(16+(s<<4|3)|0))?(o[(c+19&-16)-4>>2]=c,l=a,h=c+19&-16):(l=a,h=0)):h=0,(0|l)>0){c=0;do{d=0|o[e+12>>2],o[h+(c<<4)>>2]=o[d+(c<<4)>>2],o[h+(c<<4)+4>>2]=o[d+(c<<4)+4>>2],o[h+(c<<4)+8>>2]=o[d+(c<<4)+8>>2],o[h+(c<<4)+12>>2]=o[d+(c<<4)+12>>2],c=c+1|0}while((0|c)!=(0|l))}0|(c=0|o[e+12>>2])?(o[4548]=1+(0|o[4548]),ke(0|o[c+-4>>2]),o[e+12>>2]=0):a=l,n[e+16|0]=1,o[e+12>>2]=h,o[e+8>>2]=s,c=a,d=0|o[i+8>>2]}else c=l,s=l;else c=a,s=l;if(o[h+(c<<4)>>2]=o[f+(r<<4)>>2],o[h+(c<<4)+4>>2]=o[f+(r<<4)+4>>2],o[h+(c<<4)+8>>2]=o[f+(r<<4)+8>>2],o[h+(c<<4)+12>>2]=o[f+(r<<4)+12>>2],a=c+1|0,(0|(r=r+1|0))>=(0|d))break;l=s}if(o[e+4>>2]=a,(0|c)>-1){r=0;do{hn[31&o[12+(0|o[i>>2])>>2]](i,0|o[h+(r<<4)>>2],0|o[h+(r<<4)+4>>2],t),r=r+1|0}while((0|r)<(0|a))}}else a=0;if((0|o[i+56>>2])>0){t=0|o[i+64>>2],r=0;do{o[t+(r<<2)>>2]=-1,r=r+1|0}while((0|r)<(0|o[i+56>>2]))}if((0|a)>1&&(vi(e,0,a+-1|0),a=0|o[e+4>>2]),(0|a)>0){t=0|o[e+12>>2],r=0;do{_n[31&o[8+(0|o[i>>2])>>2]](i,0|o[t+(r<<4)>>2],0|o[t+(r<<4)+4>>2]),r=r+1|0}while((0|r)<(0|a))}else t=0|o[e+12>>2];0|t?(0|n[e+16|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[t+-4>>2])),o[e+12>>2]=0,u=e):u=e},function(i,t){var e,n,r;i|=0,r=+b(+ +s[(t|=0)>>2]),n=+b(+ +s[t+4>>2]),e=+b(+ +s[t+8>>2]),s[i+12>>2]=r,s[i+16>>2]=n,s[i+20>>2]=e,s[i+24>>2]=0},function(i,t){i|=0;var e,n,r=0,f=0,a=0,s=0,c=0,h=0,l=0;if(n=u,(0|o[(t|=0)+8>>2])<=0)u=n;else{e=0|o[t+16>>2],r=0,f=0;do{if(a=0|o[e+(r<<2)>>2],3&o[a+204>>2])o[a+208>>2]=-1,o[a+212>>2]=-2;else{if(s=0|o[i+16>>2],(0|(c=0|o[(h=s+(f<<3)|0)>>2]))==(0|f))l=f;else do{l=s+(c<<3)|0,o[h>>2]=o[l>>2],l=0|o[l>>2],c=0|o[(h=s+(l<<3)|0)>>2]}while((0|l)!=(0|c));o[a+208>>2]=l,o[s+(f<<3)+4>>2]=r,o[a+212>>2]=-1,f=f+1|0}r=r+1|0}while((0|r)<(0|o[t+8>>2]));u=n}},function(i,t){t|=0;var e,r=0,f=0,a=0,s=0,c=0;if(e=u,0|o[(i|=0)+12>>2])if(0|n[i+8|0]){if((0|(a=0|o[t+4>>2]))==(0|o[t+8>>2])&&(0|a)<(0|(r=0|a?a<<1:1))){if(0|r?(o[4546]=1+(0|o[4546]),0|(f=0|ye(16+(r<<2|3)|0))?(o[(f+19&-16)-4>>2]=f,f=f+19&-16):f=0,a=0|o[t+4>>2]):f=0,(0|a)>0){s=0;do{0|(c=f+(s<<2)|0)&&(o[c>>2]=o[(0|o[t+12>>2])+(s<<2)>>2]),s=s+1|0}while((0|s)!=(0|a))}0|(s=0|o[t+12>>2])&&(0|n[t+16|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[s+-4>>2]),a=0|o[t+4>>2]),o[t+12>>2]=0),n[t+16|0]=1,o[t+12>>2]=f,o[t+8>>2]=r}0|(r=(0|o[t+12>>2])+(a<<2)|0)&&(o[r>>2]=o[i+12>>2]),o[t+4>>2]=a+1,u=e}else u=e;else u=e},function(i,t){t|=0;var e,r=0,f=0,a=0,s=0,c=0;if(e=u,0|o[(i|=0)+12>>2])if(0|n[i+8|0]){if((0|(a=0|o[t+4>>2]))==(0|o[t+8>>2])&&(0|a)<(0|(r=0|a?a<<1:1))){if(0|r?(o[4546]=1+(0|o[4546]),0|(f=0|ye(16+(r<<2|3)|0))?(o[(f+19&-16)-4>>2]=f,f=f+19&-16):f=0,a=0|o[t+4>>2]):f=0,(0|a)>0){s=0;do{0|(c=f+(s<<2)|0)&&(o[c>>2]=o[(0|o[t+12>>2])+(s<<2)>>2]),s=s+1|0}while((0|s)!=(0|a))}0|(s=0|o[t+12>>2])&&(0|n[t+16|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[s+-4>>2]),a=0|o[t+4>>2]),o[t+12>>2]=0),n[t+16|0]=1,o[t+12>>2]=f,o[t+8>>2]=r}0|(r=(0|o[t+12>>2])+(a<<2)|0)&&(o[r>>2]=o[i+12>>2]),o[t+4>>2]=a+1,u=e}else u=e;else u=e},function(i,t){},function(i,t){},function(i,t){t|=0;var e,r=0,f=0,a=0,c=0,h=0;if(e=u,0|n[(i|=0)+165|0]){if((0|o[i+92>>2])>=(0|t))return void(u=e);if(0|t&&(o[4546]=1+(0|o[4546]),0|(f=0|ye(16+(t<<4|3)|0)))?(o[(f+19&-16)-4>>2]=f,r=f+19&-16):r=0,(0|(f=0|o[i+88>>2]))>0){a=0;do{c=r+(a<<4)|0,h=(0|o[i+96>>2])+(a<<4)|0,o[c+0>>2]=o[h+0>>2],o[c+4>>2]=o[h+4>>2],o[c+8>>2]=o[h+8>>2],o[c+12>>2]=o[h+12>>2],a=a+1|0}while((0|a)!=(0|f))}return 0|(f=0|o[i+96>>2])&&(0|n[i+100|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[f+-4>>2])),o[i+96>>2]=0),n[i+100|0]=1,o[i+96>>2]=r,o[i+92>>2]=t,void(u=e)}if((0|o[i+112>>2])>=(0|t))u=e;else{if(0|t&&(o[4546]=1+(0|o[4546]),0|(r=0|ye(16+(t<<2|3)|0)))?(o[(r+19&-16)-4>>2]=r,r=r+19&-16):r=0,(0|(f=0|o[i+108>>2]))>0){c=0;do{0|(a=r+(c<<2)|0)&&(s[a>>2]=+s[(0|o[i+116>>2])+(c<<2)>>2]),c=c+1|0}while((0|c)!=(0|f))}0|(f=0|o[i+116>>2])&&(0|n[i+120|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[f+-4>>2])),o[i+116>>2]=0),n[i+120|0]=1,o[i+116>>2]=r,o[i+112>>2]=t,u=e}},function(i,t){t|=0;var e,f=0,a=0,s=0,c=0;if(e=u,0|n[(i|=0)+164|0]){if((0|o[i+132>>2])>=(0|t))return void(u=e);if(0|t&&(o[4546]=1+(0|o[4546]),0|(f=0|ye(16+(t<<2|3)|0)))?(o[(f+19&-16)-4>>2]=f,f=f+19&-16):f=0,(0|(c=0|o[i+128>>2]))>0){s=0;do{0|(a=f+(s<<2)|0)&&(o[a>>2]=o[(0|o[i+136>>2])+(s<<2)>>2]),s=s+1|0}while((0|s)!=(0|c))}return 0|(a=0|o[i+136>>2])&&(0|n[i+140|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[a+-4>>2])),o[i+136>>2]=0),n[i+140|0]=1,o[i+136>>2]=f,o[i+132>>2]=t,void(u=e)}if(!((0|o[i+152>>2])>=(0|t))){if(0|t&&(o[4546]=1+(0|o[4546]),0|(a=0|ye(19+(t<<1)|0)))?(o[(a+19&-16)-4>>2]=a,f=a+19&-16):f=0,(0|(a=0|o[i+148>>2]))>0){c=0;do{0|(s=f+(c<<1)|0)&&(r[s>>1]=0|r[(0|o[i+156>>2])+(c<<1)>>1]),c=c+1|0}while((0|c)!=(0|a))}return 0|(a=0|o[i+156>>2])&&(0|n[i+160|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[a+-4>>2])),o[i+156>>2]=0),n[i+160|0]=1,o[i+156>>2]=f,o[i+152>>2]=t,void(u=e)}u=e},ri,function(i,t){t|=0;var e,r=0,f=0,a=0,s=0,c=0;if(e=u,0|o[(i|=0)+12>>2])if(0|n[i+8|0]){if((0|(a=0|o[t+4>>2]))==(0|o[t+8>>2])&&(0|a)<(0|(r=0|a?a<<1:1))){if(0|r?(o[4546]=1+(0|o[4546]),0|(f=0|ye(16+(r<<2|3)|0))?(o[(f+19&-16)-4>>2]=f,f=f+19&-16):f=0,a=0|o[t+4>>2]):f=0,(0|a)>0){s=0;do{0|(c=f+(s<<2)|0)&&(o[c>>2]=o[(0|o[t+12>>2])+(s<<2)>>2]),s=s+1|0}while((0|s)!=(0|a))}0|(s=0|o[t+12>>2])&&(0|n[t+16|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[s+-4>>2]),a=0|o[t+4>>2]),o[t+12>>2]=0),n[t+16|0]=1,o[t+12>>2]=f,o[t+8>>2]=r}0|(r=(0|o[t+12>>2])+(a<<2)|0)&&(o[r>>2]=o[i+12>>2]),o[t+4>>2]=a+1,u=e}else u=e;else u=e},function(i,t){t|=0;var e,n=0,r=0,f=0;if(e=u,(0|(r=0|o[(i|=0)+12>>2]))<=0)u=e;else{n=0;do{0|(f=0|o[(0|o[i+20>>2])+(n<<2)>>2])&&(on[127&o[16+(0|o[f>>2])>>2]](f,t),r=0|o[i+12>>2]),n=n+1|0}while((0|n)<(0|r));u=e}},function(i,t){var e;i|=0,e=u,t=0|o[(t|=0)+36>>2],pe(i,0|o[(0|o[24+(0|o[4+(0|o[i+4>>2])>>2])>>2])+(80*t|0)+64>>2],t),u=e},function(i,t){t|=0;var e,n=0,r=0,f=0;if(e=u,i=0|o[(i|=0)+8>>2],(0|(r=0|o[i+8>>2]))<=0)u=e;else{n=0;do{0|(f=0|o[(0|o[i+16>>2])+(12*n|0)+8>>2])&&(on[127&o[16+(0|o[f>>2])>>2]](f,t),r=0|o[i+8>>2]),n=n+1|0}while((0|n)<(0|r));u=e}},function(i,t){},function(i,t){t|=0;var e,r=0,f=0,a=0,s=0,c=0;if(e=u,0|o[(i|=0)+76>>2]){if((0|(a=0|o[t+4>>2]))==(0|o[t+8>>2])&&(0|a)<(0|(r=0|a?a<<1:1))){if(0|r?(o[4546]=1+(0|o[4546]),0|(f=0|ye(16+(r<<2|3)|0))?(o[(f+19&-16)-4>>2]=f,f=f+19&-16):f=0,a=0|o[t+4>>2]):f=0,(0|a)>0){s=0;do{0|(c=f+(s<<2)|0)&&(o[c>>2]=o[(0|o[t+12>>2])+(s<<2)>>2]),s=s+1|0}while((0|s)!=(0|a))}0|(s=0|o[t+12>>2])&&(0|n[t+16|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[s+-4>>2]),a=0|o[t+4>>2]),o[t+12>>2]=0),n[t+16|0]=1,o[t+12>>2]=f,o[t+8>>2]=r}0|(r=(0|o[t+12>>2])+(a<<2)|0)&&(o[r>>2]=o[i+76>>2]),o[t+4>>2]=a+1,u=e}else u=e},function(i,t){t|=0;var e,r=0,f=0,a=0,s=0,c=0;if(e=u,0|o[(i|=0)+20>>2])if(0|n[i+16|0]){if((0|(a=0|o[t+4>>2]))==(0|o[t+8>>2])&&(0|a)<(0|(r=0|a?a<<1:1))){if(0|r?(o[4546]=1+(0|o[4546]),0|(f=0|ye(16+(r<<2|3)|0))?(o[(f+19&-16)-4>>2]=f,f=f+19&-16):f=0,a=0|o[t+4>>2]):f=0,(0|a)>0){s=0;do{0|(c=f+(s<<2)|0)&&(o[c>>2]=o[(0|o[t+12>>2])+(s<<2)>>2]),s=s+1|0}while((0|s)!=(0|a))}0|(s=0|o[t+12>>2])&&(0|n[t+16|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[s+-4>>2]),a=0|o[t+4>>2]),o[t+12>>2]=0),n[t+16|0]=1,o[t+12>>2]=f,o[t+8>>2]=r}0|(r=(0|o[t+12>>2])+(a<<2)|0)&&(o[r>>2]=o[i+20>>2]),o[t+4>>2]=a+1,u=e}else u=e;else u=e},function(i,t){t|=0;var e,r=0,f=0,a=0,s=0,c=0;if(e=u,0|o[(i|=0)+12>>2])if(0|n[i+8|0]){if((0|(a=0|o[t+4>>2]))==(0|o[t+8>>2])&&(0|a)<(0|(r=0|a?a<<1:1))){if(0|r?(o[4546]=1+(0|o[4546]),0|(f=0|ye(16+(r<<2|3)|0))?(o[(f+19&-16)-4>>2]=f,f=f+19&-16):f=0,a=0|o[t+4>>2]):f=0,(0|a)>0){s=0;do{0|(c=f+(s<<2)|0)&&(o[c>>2]=o[(0|o[t+12>>2])+(s<<2)>>2]),s=s+1|0}while((0|s)!=(0|a))}0|(s=0|o[t+12>>2])&&(0|n[t+16|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[s+-4>>2]),a=0|o[t+4>>2]),o[t+12>>2]=0),n[t+16|0]=1,o[t+12>>2]=f,o[t+8>>2]=r}0|(r=(0|o[t+12>>2])+(a<<2)|0)&&(o[r>>2]=o[i+12>>2]),o[t+4>>2]=a+1,u=e}else u=e;else u=e},function(i,t){},function(i,t){},Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae,Ae],fn=[De,function(i,t,e,r,a,c,h,l,d,v){i|=0,t|=0,e|=0,r|=0,a|=0,h|=0,l|=0,d|=0,v|=0;var b=0,w=0,p=0,m=0,y=0,k=0,g=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0,L=0,I=0,A=0,D=0,O=0,R=0,P=0,N=0,B=0,F=0,V=0,U=0,G=0,W=0,z=0,X=0,$=0,H=0,q=0,K=0,Y=0;i=u,u=u+10240|0,$=+s[(c|=0)+52>>2]-+s[a+52>>2],O=+s[c+56>>2]-+s[a+56>>2],s[i>>2]=+s[c+48>>2]-+s[a+48>>2],s[i+4>>2]=$,s[i+8>>2]=O,s[i+12>>2]=0,o[i+10088>>2]=e,o[i+10092>>2]=r,O=+s[c>>2],$=+s[a>>2],D=+s[c+16>>2],E=+s[a+16>>2],T=+s[c+32>>2],H=+s[a+32>>2],B=+s[a+4>>2],q=+s[a+20>>2],F=+s[a+36>>2],C=+s[a+8>>2],N=+s[a+24>>2],R=+s[a+40>>2],X=+s[c+4>>2],z=+s[c+20>>2],W=+s[c+36>>2],G=+s[c+8>>2],U=+s[c+24>>2],V=+s[c+40>>2],s[i+10096>>2]=O*$+D*E+T*H,s[i+10100>>2]=O*B+D*q+T*F,s[i+10104>>2]=O*C+D*N+T*R,s[i+10108>>2]=0,s[i+10112>>2]=$*X+E*z+H*W,s[i+10116>>2]=B*X+q*z+F*W,s[i+10120>>2]=C*X+N*z+R*W,s[i+10124>>2]=0,s[i+10128>>2]=$*G+E*U+H*V,s[i+10132>>2]=B*G+q*U+F*V,s[i+10136>>2]=C*G+N*U+R*V,s[i+10140>>2]=0,R=+s[c+48>>2]-+s[a+48>>2],N=+s[c+52>>2]-+s[a+52>>2],C=+s[c+56>>2]-+s[a+56>>2],F=+s[a>>2],q=+s[c>>2],B=+s[a+16>>2],H=+s[c+16>>2],E=+s[a+32>>2],$=+s[c+32>>2],T=+s[a+4>>2],D=+s[a+20>>2],O=+s[a+36>>2],P=+s[a+8>>2],S=+s[a+24>>2],k=+s[a+40>>2],s[i+10144>>2]=F*q+B*H+E*$,s[i+10148>>2]=F*X+B*z+E*W,s[i+10152>>2]=F*G+B*U+E*V,s[i+10156>>2]=0,s[i+10160>>2]=q*T+H*D+$*O,s[i+10164>>2]=X*T+z*D+W*O,s[i+10168>>2]=G*T+U*D+V*O,s[i+10172>>2]=0,s[i+10176>>2]=q*P+H*S+$*k,s[i+10180>>2]=X*P+z*S+W*k,s[i+10184>>2]=G*P+U*S+V*k,s[i+10188>>2]=0,s[i+10192>>2]=R*F+N*B+C*E,s[i+10196>>2]=R*T+N*D+C*O,s[i+10200>>2]=R*P+N*S+C*k,s[i+10204>>2]=0,o[i+10208>>2]=61,o[i+10212>>2]=0,o[i+10072>>2]=0,o[i+9836>>2]=0,o[i+9840>>2]=0,o[i+9844>>2]=0,o[i+9848>>2]=0,o[i+10084>>2]=2,o[i+10076>>2]=0,s[i+9852>>2]=0,k=+s[i>>2],C=+s[i+4>>2],S=+s[i+8>>2],s[i+9328>>2]=-k,s[i+9332>>2]=-C,s[i+9336>>2]=-S,s[i+9340>>2]=0;do{if(1==(0|ne(i+9708|0,i+10088|0,i+9328|0))){t=i+9304|0,w=i+9308|0,o[(p=i+9296|0)+0>>2]=0,o[p+4>>2]=0,o[p+8>>2]=0,o[p+12>>2]=0,o[i+16>>2]=9,v=i+56|0,o[i+9292>>2]=0,o[v+0>>2]=0,o[v+4>>2]=0,o[v+8>>2]=0,o[v+12>>2]=0,o[v+16>>2]=0,y=0;do{o[i+16+(56*(m=128-y-1|0)|0)+2152>>2]=0,g=0|o[t>>2],o[i+16+(56*m|0)+2156>>2]=g,0|g&&(o[g+44>>2]=i+16+(56*m|0)+2108),o[t>>2]=i+16+(56*m|0)+2108,o[w>>2]=1+(0|o[w>>2]),y=y+1|0}while(128!=(0|y));if(m=0|o[i+10080>>2],(0|o[m+32>>2])>>>0>1&&0|re(i+9708|0)){if(0|(y=0|o[p>>2])){j=0|o[i+9300>>2],g=0|o[w>>2];do{M=y+44|0,0|(L=0|o[(x=y+48|0)>>2])&&(o[L+44>>2]=o[M>>2]),0|(L=0|o[M>>2])&&(o[L+48>>2]=o[x>>2]),(0|o[p>>2])==(0|y)&&(o[p>>2]=o[x>>2]),j=j+-1|0,o[M>>2]=0,o[x>>2]=o[t>>2],0|(x=0|o[t>>2])&&(o[x+44>>2]=y),o[t>>2]=y,g=g+1|0,y=0|o[p>>2]}while(0|y);o[i+9300>>2]=j,o[w>>2]=g}if(o[i+16>>2]=0,o[i+9292>>2]=0,j=0|o[m>>2],x=0|o[m+12>>2],q=+s[x+16>>2],V=+s[j+16>>2]-q,G=+s[x+20>>2],W=+s[j+20>>2]-G,X=+s[x+24>>2],$=+s[j+24>>2]-X,x=0|o[m+4>>2],z=+s[x+16>>2]-q,H=+s[x+20>>2]-G,U=+s[x+24>>2]-X,y=0|o[m+8>>2],q=+s[y+16>>2]-q,G=+s[y+20>>2]-G,V*H*(X=+s[y+24>>2]-X)+(W*U*q+$*z*G-V*U*G-W*z*X)-$*H*q<0?(o[m>>2]=x,o[m+4>>2]=j,q=+s[m+16>>2],s[m+16>>2]=+s[m+20>>2],s[m+20>>2]=q,g=x):(g=j,j=x),M=0|oe(i+16|0,g,j,y,1),x=0|oe(i+16|0,0|o[m+4>>2],0|o[m>>2],0|o[m+12>>2],1),j=0|oe(i+16|0,0|o[m+8>>2],0|o[m+4>>2],0|o[m+12>>2],1),y=0|oe(i+16|0,0|o[m>>2],0|o[m+8>>2],0|o[m+12>>2],1),4==(0|o[i+9300>>2])){if(g=0|o[p>>2],T=+s[g+16>>2],0|(m=0|o[g+48>>2])){for(k=T*T,L=g;L=(g=(C=+s[m+16>>2])*C<k)?m:L,0|(m=0|o[m+48>>2]);)k=g?C*C:k;g=L,T=+s[L+16>>2]}for(k=+s[g>>2],S=+s[g+4>>2],E=+s[g+8>>2],C=+s[g+12>>2],L=0|o[g+20>>2],I=0|o[g+24>>2],A=0|o[g+28>>2],n[M+52|0]=0,o[M+32>>2]=x,n[x+52|0]=0,o[x+32>>2]=M,n[M+53|0]=0,o[M+36>>2]=j,n[j+52|0]=1,o[j+32>>2]=M,n[M+54|0]=0,o[M+40>>2]=y,n[y+52|0]=2,o[y+32>>2]=M,n[x+53|0]=2,o[x+36>>2]=y,n[y+54|0]=1,o[y+40>>2]=x,n[x+54|0]=1,o[x+40>>2]=j,n[j+53|0]=2,o[j+36>>2]=x,n[j+54|0]=1,o[j+40>>2]=y,n[y+53|0]=2,o[y+36>>2]=j,o[i+16>>2]=0,m=0,M=L,x=I,j=A,y=1;;){if(!((A=0|o[i+9292>>2])>>>0<64)){b=48;break}if(o[i+10216>>2]=0,o[i+10220>>2]=0,o[i+10224>>2]=0,o[i+9292>>2]=A+1,n[g+55|0]=y,L=g+4|0,I=g+8|0,fe(i+9708|0,+s[g>>2],+s[L>>2],+s[I>>2],i+16+(A<<5)+60|0),!(+s[g>>2]*+s[i+16+(A<<5)+76>>2]+ +s[L>>2]*+s[i+16+(A<<5)+80>>2]+ +s[I>>2]*+s[i+16+(A<<5)+84>>2]-+s[g+16>>2]>9999999747378752e-20)){b=47;break}I=0,L=1;do{L&=0|ae(i+16|0,y,i+16+(A<<5)+60|0,0|o[g+(I<<2)+32>>2],0|f[g+I+52|0],i+10216|0),I=I+1|0}while(!(I>>>0>2|1^L));if(!L){b=46;break}if(!((0|o[i+10224>>2])>>>0>2)){b=46;break}if(M=0|o[i+10216>>2],x=0|o[i+10220>>2],n[M+53|0]=2,o[M+36>>2]=x,n[x+54|0]=1,o[x+40>>2]=M,j=g+44|0,0|(M=0|o[(x=g+48|0)>>2])&&(o[M+44>>2]=o[j>>2]),0|(M=0|o[j>>2])&&(o[M+48>>2]=o[x>>2]),(0|o[p>>2])==(0|g)&&(o[p>>2]=o[x>>2]),o[i+9300>>2]=(0|o[i+9300>>2])-1,o[j>>2]=0,o[x>>2]=o[t>>2],0|(j=0|o[t>>2])&&(o[j+44>>2]=g),o[t>>2]=g,o[w>>2]=1+(0|o[w>>2]),g=0|o[p>>2],T=+s[g+16>>2],0|(j=0|o[g+48>>2])){for(k=T*T,x=g;x=(g=(C=+s[j+16>>2])*C<k)?j:x,0|(j=0|o[j+48>>2]);)k=g?C*C:k;g=x,T=+s[x+16>>2]}if(k=+s[g>>2],S=+s[g+4>>2],E=+s[g+8>>2],C=+s[g+12>>2],M=0|o[g+20>>2],x=0|o[g+24>>2],j=0|o[g+28>>2],!((m=m+1|0)>>>0<255))break;y=y+1|0}if(46==(0|b)?o[i+16>>2]=4:47==(0|b)?o[i+16>>2]=7:48==(0|b)&&(o[i+16>>2]=6),z=T*k,G=T*S,$=T*E,s[v>>2]=k,s[i+60>>2]=S,s[i+64>>2]=E,s[i+68>>2]=C,s[i+72>>2]=T,o[i+52>>2]=3,o[i+20>>2]=M,o[i+24>>2]=x,o[i+28>>2]=j,X=+s[(L=x+16|0)>>2]-z,V=+s[(I=x+20|0)>>2]-G,W=+s[(A=x+24|0)>>2]-$,F=+s[(g=j+16|0)>>2]-z,U=+s[(x=j+20|0)>>2]-G,H=+s[(j=j+24|0)>>2]-$,H=+_(+((X*U-V*F)*(X*U-V*F)+((V*H-W*U)*(V*H-W*U)+(W*F-X*H)*(W*F-X*H)))),s[i+36>>2]=H,X=+s[g>>2]-z,F=+s[x>>2]-G,W=+s[j>>2]-$,U=+s[(j=M+16|0)>>2]-z,V=+s[(x=M+20|0)>>2]-G,q=+s[(M=M+24|0)>>2]-$,q=+_(+((X*V-F*U)*(X*V-F*U)+((F*q-W*V)*(F*q-W*V)+(W*U-X*q)*(W*U-X*q)))),s[i+40>>2]=q,X=+s[j>>2]-z,U=+s[x>>2]-G,W=+s[M>>2]-$,z=+s[L>>2]-z,G=+s[I>>2]-G,$=+s[A>>2]-$,$=+_(+((X*G-U*z)*(X*G-U*z)+((U*$-W*G)*(U*$-W*G)+(W*z-X*$)*(W*z-X*$)))),s[i+36>>2]=H/($+(H+q)),s[i+40>>2]=q/($+(H+q)),s[i+44>>2]=$/($+(H+q)),9==(0|o[i+16>>2])){C=0,k=0,E=0,T=0,O=0,R=0,P=0,D=0,S=0,v=0;break}0|o[i+52>>2]?(t=i+52|0,b=54):(S=0,E=0,T=0)}else b=49}else b=49;if(49==(0|b)&&(o[i+16>>2]=8,s[v>>2]=k,s[i+60>>2]=C,s[i+64>>2]=S,s[i+68>>2]=0,(E=+_(+(k*k+C*C+S*S)))>0?(S*=1/E,C*=1/E,k*=1/E):(S=0,C=0,k=1),s[v>>2]=k,s[i+60>>2]=C,s[i+64>>2]=S,s[i+68>>2]=0,s[i+72>>2]=0,o[i+52>>2]=1,o[i+20>>2]=o[m>>2],s[i+36>>2]=1,t=i+52|0,b=54),54==(0|b)){k=0,C=0,S=0,b=0;do{p=0|o[i+10208>>2],A=0|o[i+10212>>2],w=(0|o[i+10088>>2])+(A>>1)|0,1&A&&(p=0|o[(0|o[w>>2])+p>>2]),Pn[63&p](i+9312|0,w,0|o[i+16+(b<<2)+4>>2]),q=+s[i+16+(b<<2)+20>>2],k+=+s[i+9312>>2]*q,C+=q*+s[i+9316>>2],S+=q*+s[i+9320>>2],b=b+1|0}while(b>>>0<(0|o[t>>2])>>>0);E=C,T=k}Y=+s[a>>2],K=+s[a+4>>2],N=+s[a+8>>2],F=+s[a+16>>2],V=+s[a+20>>2],U=+s[a+24>>2],W=+s[a+32>>2],X=+s[a+36>>2],H=+s[a+40>>2],B=+s[a+48>>2],O=+s[a+52>>2],R=+s[a+56>>2],P=+s[v>>2],z=E-($=+s[i+72>>2])*(D=+s[i+60>>2]),C=T*Y+E*K+S*N+B,k=T*F+E*V+S*U+O,E=T*W+E*X+S*H+R,T=(G=T-P*$)*Y+z*K+($=S-$*(q=+s[i+64>>2]))*N+B,O=G*F+z*V+$*U+O,R=G*W+z*X+$*H+R,P=-P,D=-D,S=-q,v=1}else C=0,k=0,E=0,T=0,O=0,R=0,P=0,D=0,S=0,v=0}while(0);if(v)return s[l>>2]=C,s[l+4>>2]=k,s[l+8>>2]=E,s[l+12>>2]=0,s[d>>2]=T,s[d+4>>2]=O,s[d+8>>2]=R,s[d+12>>2]=0,s[h>>2]=P,s[h+4>>2]=D,s[h+8>>2]=S,s[h+12>>2]=0,u=i,0|(A=1);if(o[i+9708>>2]=e,o[i+9712>>2]=r,S=+s[c>>2],F=+s[a>>2],E=+s[c+16>>2],V=+s[a+16>>2],T=+s[c+32>>2],U=+s[a+32>>2],G=+s[a+4>>2],W=+s[a+20>>2],z=+s[a+36>>2],$=+s[a+8>>2],q=+s[a+24>>2],Y=+s[a+40>>2],D=+s[c+4>>2],O=+s[c+20>>2],R=+s[c+36>>2],P=+s[c+8>>2],N=+s[c+24>>2],B=+s[c+40>>2],s[i+9716>>2]=S*F+E*V+T*U,s[i+9720>>2]=S*G+E*W+T*z,s[i+9724>>2]=S*$+E*q+T*Y,s[i+9728>>2]=0,s[i+9732>>2]=F*D+V*O+U*R,s[i+9736>>2]=G*D+W*O+z*R,s[i+9740>>2]=$*D+q*O+Y*R,s[i+9744>>2]=0,s[i+9748>>2]=F*P+V*N+U*B,s[i+9752>>2]=G*P+W*N+z*B,s[i+9756>>2]=$*P+q*N+Y*B,s[i+9760>>2]=0,X=+s[c+48>>2]-+s[a+48>>2],H=+s[c+52>>2]-+s[a+52>>2],K=+s[c+56>>2]-+s[a+56>>2],s[i+9764>>2]=S*F+E*V+T*U,s[i+9768>>2]=F*D+V*O+U*R,s[i+9772>>2]=F*P+V*N+U*B,s[i+9776>>2]=0,s[i+9780>>2]=S*G+E*W+T*z,s[i+9784>>2]=G*D+W*O+z*R,s[i+9788>>2]=G*P+W*N+z*B,s[i+9792>>2]=0,s[i+9796>>2]=S*$+E*q+T*Y,s[i+9800>>2]=$*D+q*O+Y*R,s[i+9804>>2]=$*P+q*N+Y*B,s[i+9808>>2]=0,s[i+9812>>2]=X*F+H*V+K*U,s[i+9816>>2]=X*G+H*W+K*z,s[i+9820>>2]=X*$+H*q+K*Y,s[i+9824>>2]=0,o[i+9828>>2]=62,o[i+9832>>2]=0,o[i+9692>>2]=0,o[i+9456>>2]=0,o[i+9460>>2]=0,o[i+9464>>2]=0,o[i+9468>>2]=0,o[i+9704>>2]=2,o[i+9696>>2]=0,s[i+9472>>2]=0,0|ne(i+9328|0,i+9708|0,i))return u=i,0|(A=0);if(c=0|o[i+9700>>2],0|o[c+32>>2]){T=0,D=0,O=0,C=0,S=0,k=0,e=0;do{E=+s[c+(e<<2)+16>>2],v=0|o[i+9828>>2],A=0|o[i+9832>>2],r=(0|o[i+9708>>2])+(A>>1)|0,1&A&&(v=0|o[(0|o[r>>2])+v>>2]),Pn[63&v](i+9312|0,r,0|o[c+(e<<2)>>2]),T+=E*+s[i+9312>>2],D+=E*+s[i+9316>>2],O+=E*+s[i+9320>>2],r=0|o[(0|o[i+9700>>2])+(e<<2)>>2],R=-+s[r>>2],N=-+s[r+4>>2],P=-+s[r+8>>2],r=0|o[i+9828>>2],A=0|o[i+9832>>2],c=(0|o[i+9712>>2])+(A>>1)|0,1&A&&(r=0|o[(0|o[c>>2])+r>>2]),K=+s[i+9732>>2]*R+ +s[i+9736>>2]*N+ +s[i+9740>>2]*P,q=+s[i+9748>>2]*R+ +s[i+9752>>2]*N+ +s[i+9756>>2]*P,s[i+10088>>2]=+s[i+9716>>2]*R+ +s[i+9720>>2]*N+ +s[i+9724>>2]*P,s[i+10092>>2]=K,s[i+10096>>2]=q,s[i+10100>>2]=0,Pn[63&r](i+10216|0,c,i+10088|0),q=+s[i+10216>>2],K=+s[i+10220>>2],Y=+s[i+10224>>2],C+=E*(q*+s[i+9764>>2]+K*+s[i+9768>>2]+Y*+s[i+9772>>2]+ +s[i+9812>>2]),S+=E*(q*+s[i+9780>>2]+K*+s[i+9784>>2]+Y*+s[i+9788>>2]+ +s[i+9816>>2]),k+=E*(q*+s[i+9796>>2]+K*+s[i+9800>>2]+Y*+s[i+9804>>2]+ +s[i+9820>>2]),e=e+1|0,c=0|o[i+9700>>2]}while(e>>>0<(0|o[c+32>>2])>>>0)}else O=0,D=0,T=0,k=0,S=0,C=0;return R=+s[a>>2],P=+s[a+4>>2],N=+s[a+8>>2],F=+s[a+16>>2],V=+s[a+20>>2],U=+s[a+24>>2],W=+s[a+32>>2],z=+s[a+36>>2],X=+s[a+40>>2],B=+s[a+48>>2],G=+s[a+52>>2],$=+s[a+56>>2],K=1/((K=+_(+((H=T-C)*H+(q=D-S)*q+(Y=O-k)*Y)))>9999999747378752e-20?K:1),s[l>>2]=T*R+D*P+O*N+B,s[l+4>>2]=T*F+D*V+O*U+G,s[l+8>>2]=T*W+D*z+O*X+$,s[l+12>>2]=0,s[d>>2]=C*R+S*P+k*N+B,s[d+4>>2]=C*F+S*V+k*U+G,s[d+8>>2]=C*W+S*z+k*X+$,s[d+12>>2]=0,s[h>>2]=K*H,s[h+4>>2]=K*q,s[h+8>>2]=K*Y,s[h+12>>2]=0,u=i,0|(A=0)},function(i,t,e,r,f,a,c,h,l,d){i|=0,t|=0,r|=0,f|=0,a|=0,c|=0,h|=0,l|=0,d|=0;var v=0,b=0,_=0,w=0,p=0,m=0,y=0,k=0,g=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0,L=0,I=0,A=0,D=0,O=0;i=u,u=u+4256|0,w=((0|o[(e|=0)+4>>2])-17|0)>>>0<2?((0|o[r+4>>2])-17|0)>>>0<2:0,v=0;do{ot(),k=+s[12056+(v<<4)>>2],g=+s[12060+(v<<4)>>2],C=+s[12064+(v<<4)>>2],S=+s[f+4>>2]*-k+ +s[f+20>>2]*-g+ +s[f+36>>2]*-C,j=+s[f+8>>2]*-k+ +s[f+24>>2]*-g+ +s[f+40>>2]*-C,s[i+1280+(v<<4)>>2]=+s[f>>2]*-k+ +s[f+16>>2]*-g+ +s[f+32>>2]*-C,s[i+1280+(v<<4)+4>>2]=S,s[i+1280+(v<<4)+8>>2]=j,s[i+1280+(v<<4)+12>>2]=0,j=k*+s[a+4>>2]+g*+s[a+20>>2]+C*+s[a+36>>2],S=k*+s[a+8>>2]+g*+s[a+24>>2]+C*+s[a+40>>2],s[i+288+(v<<4)>>2]=k*+s[a>>2]+g*+s[a+16>>2]+C*+s[a+32>>2],s[i+288+(v<<4)+4>>2]=j,s[i+288+(v<<4)+8>>2]=S,s[i+288+(v<<4)+12>>2]=0,v=v+1|0}while(42!=(0|v));if((0|(v=0|an[127&o[84+(0|o[e>>2])>>2]](e)))>0){for(x=0,M=42;Pn[63&o[88+(0|o[e>>2])>>2]](e,x,i+272|0),j=+s[i+272>>2],S=+s[i+276>>2],C=+s[i+280>>2],g=j*+s[f+16>>2]+S*+s[f+20>>2]+C*+s[f+24>>2],k=j*+s[f+32>>2]+S*+s[f+36>>2]+C*+s[f+40>>2],s[i+272>>2]=+s[f>>2]*j+ +s[f+4>>2]*S+ +s[f+8>>2]*C,s[i+276>>2]=g,s[i+280>>2]=k,s[i+284>>2]=0,ot(),o[(E=12056+(M<<4)|0)+0>>2]=o[i+272>>2],o[E+4>>2]=o[i+276>>2],o[E+8>>2]=o[i+280>>2],o[E+12>>2]=o[i+284>>2],k=+s[i+272>>2],g=+s[i+276>>2],C=+s[i+280>>2],S=+s[f+4>>2]*-k+ +s[f+20>>2]*-g+ +s[f+36>>2]*-C,j=+s[f+8>>2]*-k+ +s[f+24>>2]*-g+ +s[f+40>>2]*-C,s[i+1280+(M<<4)>>2]=+s[f>>2]*-k+ +s[f+16>>2]*-g+ +s[f+32>>2]*-C,s[i+1280+(M<<4)+4>>2]=S,s[i+1280+(M<<4)+8>>2]=j,s[i+1280+(M<<4)+12>>2]=0,j=k*+s[a+4>>2]+g*+s[a+20>>2]+C*+s[a+36>>2],S=k*+s[a+8>>2]+g*+s[a+24>>2]+C*+s[a+40>>2],s[i+288+(M<<4)>>2]=+s[a>>2]*k+ +s[a+16>>2]*g+ +s[a+32>>2]*C,s[i+288+(M<<4)+4>>2]=j,s[i+288+(M<<4)+8>>2]=S,s[i+288+(M<<4)+12>>2]=0,(0|(x=x+1|0))!=(0|v);)M=M+1|0;v=v+42|0}else v=42;if((0|(x=0|an[127&o[84+(0|o[r>>2])>>2]](r)))>0){for(M=0,E=v;Pn[63&o[88+(0|o[r>>2])>>2]](r,M,i+256|0),j=+s[i+256>>2],S=+s[i+260>>2],C=+s[i+264>>2],g=j*+s[a+16>>2]+S*+s[a+20>>2]+C*+s[a+24>>2],k=j*+s[a+32>>2]+S*+s[a+36>>2]+C*+s[a+40>>2],s[i+256>>2]=+s[a>>2]*j+ +s[a+4>>2]*S+ +s[a+8>>2]*C,s[i+260>>2]=g,s[i+264>>2]=k,s[i+268>>2]=0,ot(),o[(T=12056+(E<<4)|0)+0>>2]=o[i+256>>2],o[T+4>>2]=o[i+260>>2],o[T+8>>2]=o[i+264>>2],o[T+12>>2]=o[i+268>>2],k=+s[i+256>>2],g=+s[i+260>>2],C=+s[i+264>>2],S=+s[f+4>>2]*-k+ +s[f+20>>2]*-g+ +s[f+36>>2]*-C,j=+s[f+8>>2]*-k+ +s[f+24>>2]*-g+ +s[f+40>>2]*-C,s[i+1280+(E<<4)>>2]=+s[f>>2]*-k+ +s[f+16>>2]*-g+ +s[f+32>>2]*-C,s[i+1280+(E<<4)+4>>2]=S,s[i+1280+(E<<4)+8>>2]=j,s[i+1280+(E<<4)+12>>2]=0,j=k*+s[a+4>>2]+g*+s[a+20>>2]+C*+s[a+36>>2],S=k*+s[a+8>>2]+g*+s[a+24>>2]+C*+s[a+40>>2],s[i+288+(E<<4)>>2]=+s[a>>2]*k+ +s[a+16>>2]*g+ +s[a+32>>2]*C,s[i+288+(E<<4)+4>>2]=j,s[i+288+(E<<4)+8>>2]=S,s[i+288+(E<<4)+12>>2]=0,(0|(M=M+1|0))!=(0|x);)E=E+1|0;v=x+v|0}if(Vn[63&o[76+(0|o[e>>2])>>2]](e,i+1280|0,i+3264|0,v),Vn[63&o[76+(0|o[r>>2])>>2]](r,i+288|0,i+2272|0,v),(0|v)>0)if(w)for(w=0,k=0xde0b6b000000000,C=0,b=0,g=0;;){if(ot(),y=+s[12056+(w<<4)>>2],m=+s[12060+(w<<4)>>2],p=+s[12068+(w<<4)>>2],y*y+m*m+0>.01&&(j=+s[i+3264+(w<<4)>>2],S=+s[i+3264+(w<<4)+4>>2],_=+s[i+3264+(w<<4)+8>>2],A=+s[i+2272+(w<<4)>>2],I=+s[i+2272+(w<<4)+4>>2],L=+s[i+2272+(w<<4)+8>>2],(_=y*(A*+s[a>>2]+I*+s[a+4>>2]+L*+s[a+8>>2]+ +s[a+48>>2]-(j*+s[f>>2]+S*+s[f+4>>2]+_*+s[f+8>>2]+ +s[f+48>>2]))+m*(A*+s[a+16>>2]+I*+s[a+20>>2]+L*+s[a+24>>2]+ +s[a+52>>2]-(j*+s[f+16>>2]+S*+s[f+20>>2]+_*+s[f+24>>2]+ +s[f+52>>2]))+0)<k)?k=_:(y=C,m=b,p=g),(0|(w=w+1|0))==(0|v)){b=0,_=p;break}C=y,b=m,g=p}else for(g=0,w=0,k=0xde0b6b000000000,y=0,m=0,p=0;;){if(ot(),j=+s[12056+(w<<4)>>2],C=+s[12060+(w<<4)>>2],S=+s[12064+(w<<4)>>2],_=+s[12068+(w<<4)>>2],j*j+C*C+S*S>.01&&(I=+s[i+3264+(w<<4)>>2],A=+s[i+3264+(w<<4)+4>>2],b=+s[i+3264+(w<<4)+8>>2],O=+s[i+2272+(w<<4)>>2],D=+s[i+2272+(w<<4)+4>>2],L=+s[i+2272+(w<<4)+8>>2],(b=j*(O*+s[a>>2]+D*+s[a+4>>2]+L*+s[a+8>>2]+ +s[a+48>>2]-(I*+s[f>>2]+A*+s[f+4>>2]+b*+s[f+8>>2]+ +s[f+48>>2]))+C*(O*+s[a+16>>2]+D*+s[a+20>>2]+L*+s[a+24>>2]+ +s[a+52>>2]-(I*+s[f+16>>2]+A*+s[f+20>>2]+b*+s[f+24>>2]+ +s[f+52>>2]))+S*(O*+s[a+32>>2]+D*+s[a+36>>2]+L*+s[a+40>>2]+ +s[a+56>>2]-(I*+s[f+32>>2]+A*+s[f+36>>2]+b*+s[f+40>>2]+ +s[f+56>>2])))<k)?(g=S,k=b,y=j,m=C):_=p,(0|(w=w+1|0))==(0|v)){b=g;break}p=_}else b=0,k=0xde0b6b000000000,y=0,m=0,_=0;switch(0|o[e+4>>2]){case 4:case 5:case 10:case 11:case 13:case 1:case 0:case 8:break;default:mn[15&o[48+(0|o[e>>2])>>2]](e)}switch(0|o[r+4>>2]){case 4:case 5:case 10:case 11:case 13:case 1:case 0:case 8:break;default:mn[15&o[48+(0|o[r>>2])>>2]](r)}if(k<0)return u=i,0|(T=0);switch(0|o[e+4>>2]){case 0:case 1:case 13:case 11:case 10:case 4:case 5:p=+s[e+44>>2];break;case 8:p=+s[e+28>>2]*+s[e+12>>2];break;default:p=+mn[15&o[48+(0|o[e>>2])>>2]](e)}switch(0|(v=0|o[r+4>>2])){case 8:v=8,g=+s[r+28>>2]*+s[r+12>>2];break;case 0:v=0,g=+s[r+44>>2];break;case 1:v=1,g=+s[r+44>>2];break;case 13:v=13,g=+s[r+44>>2];break;case 11:v=11,g=+s[r+44>>2];break;case 10:v=10,g=+s[r+44>>2];break;case 4:case 5:g=+s[r+44>>2];break;default:g=+mn[15&o[48+(0|o[r>>2])>>2]](r),v=0|o[r+4>>2]}return p=k+(p+g+.5),o[i+176>>2]=11880,s[i+180>>2]=0,s[i+184>>2]=1,s[i+188>>2]=0,s[i+192>>2]=0,o[i+196>>2]=0,o[i+200>>2]=t,o[i+204>>2]=e,o[i+208>>2]=r,o[i+212>>2]=o[e+4>>2],o[i+216>>2]=v,s[i+220>>2]=+mn[15&o[48+(0|o[e>>2])>>2]](e),s[i+224>>2]=+mn[15&o[48+(0|o[r>>2])>>2]](r),n[i+228|0]=0,o[i+236>>2]=-1,o[i+248>>2]=1,o[i+252>>2]=1,A=+s[f+48>>2]+y*p,D=m*p+ +s[f+52>>2],O=b*p+ +s[f+56>>2],o[i+44>>2]=o[f+0>>2],o[i+48>>2]=o[f+4>>2],o[i+52>>2]=o[f+8>>2],o[i+56>>2]=o[f+12>>2],o[i+60>>2]=o[f+16>>2],o[i+64>>2]=o[f+20>>2],o[i+68>>2]=o[f+24>>2],o[i+72>>2]=o[f+28>>2],o[i+76>>2]=o[f+32>>2],o[i+80>>2]=o[f+36>>2],o[i+84>>2]=o[f+40>>2],o[i+88>>2]=o[f+44>>2],s[i+92>>2]=A,s[i+96>>2]=D,s[i+100>>2]=O,s[i+104>>2]=0,o[i+108>>2]=o[a+0>>2],o[i+112>>2]=o[a+4>>2],o[i+116>>2]=o[a+8>>2],o[i+120>>2]=o[a+12>>2],o[i+124>>2]=o[a+16>>2],o[i+128>>2]=o[a+20>>2],o[i+132>>2]=o[a+24>>2],o[i+136>>2]=o[a+28>>2],o[i+140>>2]=o[a+32>>2],o[i+144>>2]=o[a+36>>2],o[i+148>>2]=o[a+40>>2],o[i+152>>2]=o[a+44>>2],o[i+156>>2]=o[a+48>>2],o[i+160>>2]=o[a+52>>2],o[i+164>>2]=o[a+56>>2],o[i+168>>2]=o[a+60>>2],s[i+172>>2]=0xde0b6b000000000,o[i>>2]=13144,n[i+40|0]=0,s[i+180>>2]=-y,s[i+184>>2]=-m,s[i+188>>2]=-b,s[i+192>>2]=0,Ni(i+176|0,i+44|0,i,d,0),p-=+s[i+36>>2],(t=0|n[i+40|0])<<24>>24&&(D=+s[i+24>>2]-m*p,O=+s[i+28>>2]-b*p,s[h>>2]=+s[i+20>>2]-y*p,s[h+4>>2]=D,s[h+8>>2]=O,s[h+12>>2]=0,o[l+0>>2]=o[i+20>>2],o[l+4>>2]=o[i+24>>2],o[l+8>>2]=o[i+28>>2],o[l+12>>2]=o[i+32>>2],s[c>>2]=y,s[c+4>>2]=m,s[c+8>>2]=b,s[c+12>>2]=_),u=i,0|(T=!!(t<<24>>24))},De],an=[Oe,function(i){return 52},function(i){return 212},function(i){return 0|o[(i|=0)+72>>2]},function(i){return 0|o[(i|=0)+200>>2]},function(i){return 0|o[(i|=0)+212>>2]},function(i){return 2},function(i){return 84},function(i){return 488},function(i){return 1},function(i){return 0|o[(i|=0)+92>>2]},function(i){return 0|o[(i|=0)+92>>2]},function(i){return 0|o[(i|=0)+16>>2]},function(i){return 0|o[(i|=0)+16>>2]},function(i){return(i|=0)+4|0},function(i){return 0},function(i){return 1},function(i){return(i|=0)+12|0},function(i){return 4832},function(i){return 52},function(i){return 6},function(i){return 8},function(i){return 12},function(i){return 6},function(i){return 4+(0|o[(i|=0)+48>>2])|0},function(i){return 5008},function(i){return 60},function(i){return 6e3},function(i){return 60},function(i){return 0},function(i){return 5960},function(i){return 5944},function(i){return 0|o[(i|=0)+12>>2]},function(i){var t;return t=u,0|o[(i|=0)+12>>2]?(i=0|o[i+20>>2],u=t,0|i):(u=t,0|(i=0))},function(i){return 0|o[(i|=0)+68>>2]},function(i){return 0|o[(i|=0)+68>>2]},function(i){return(i|=0)+76|0},function(i){return 8824},function(i){return 24},function(i){return 9280},function(i){return 60},function(i){return 9256},function(i){return 9248},function(i){return 10072},function(i){return 60},function(i){return 10032},function(i){return 10016},function(i){return 0|o[(i|=0)+136>>2]},function(i){return 0|o[(i|=0)+136>>2]},function(i){return 0|o[(i|=0)+8>>2]},function(i){return 0|o[(i|=0)+16>>2]},function(i){return 0|o[(i|=0)+24>>2]},function(i){return 84},function(i){return 0|o[(i|=0)+16>>2]},function(i){return 0|o[(i|=0)+16>>2]},function(i){return(i|=0)+4|0},function(i){return 0|o[(i|=0)+8>>2]},function(i){return 0},function(i){return 14872},function(i){return 2},function(i){return 3},function(i){return 3},function(i){return 1},function(i){return 1880},function(i){return 0|o[(i|=0)+24>>2]},function(i){return 1==(0|o[(i|=0)+48>>2])|0},function(i){return 28},function(i){return 15704},function(i){return 12},function(i){return 0|o[(i|=0)+16>>2]},function(i){return 18656},Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe,Oe],sn=[Re,function(i,t,e,n){var r;return i|=0,e=+e,n|=0,r=u,2==(0|(t|=0))|1==(0|t)?n>>>0<3?(s[i+600>>2]=e,o[i+592>>2]=2|o[i+592>>2],void(u=r)):(s[i+432>>2]=e,void(u=r)):4==(0|t)|3==(0|t)?n>>>0<3?(s[i+596>>2]=e,o[i+592>>2]=1|o[i+592>>2],void(u=r)):(s[i+604>>2]=e,o[i+592>>2]=4|o[i+592>>2],void(u=r)):void(u=r)},function(i,t,e,n){var r;if(i|=0,t|=0,e=+e,r=u,-1==(0|(n|=0)))return 4==(0|t)|3==(0|t)?(s[i+340>>2]=e,o[i+332>>2]=2|o[i+332>>2],void(u=r)):2==(0|t)|1==(0|t)?(s[i+336>>2]=e,o[i+332>>2]=1|o[i+332>>2],void(u=r)):void(u=r);u=r},Re],cn=[function(i,t,e,n,r,o){t=+t,e=+e,C(8)}],un=[function(i,t,e,n){t=+t,C(9)}],hn=[Pe,function(i,t,e,n){var f,a,c,h,l;return i|=0,t|=0,e|=0,n|=0,f=u,u=u+96|0,s[f+4>>2]=1,o[f+8>>2]=0,r[f+12>>1]=1,r[f+14>>1]=-1,o[f+16>>2]=0,o[f>>2]=224,o[f+20>>2]=o[t+0>>2],o[f+24>>2]=o[t+4>>2],o[f+28>>2]=o[t+8>>2],o[f+32>>2]=o[t+12>>2],o[f+36>>2]=o[e+0>>2],o[f+40>>2]=o[e+4>>2],o[f+44>>2]=o[e+8>>2],o[f+48>>2]=o[e+12>>2],i=0|o[i+4>>2],Vn[63&o[32+(0|o[i>>2])>>2]](i,t,e,f),0|(e=0|o[f+8>>2])&&2&o[e+236>>2]?4&o[e+204>>2]?(u=f,0|(i=0)):(o[n+0>>2]=o[f+68>>2],o[n+4>>2]=o[f+72>>2],o[n+8>>2]=o[f+76>>2],o[n+12>>2]=o[f+80>>2],o[n+16>>2]=o[f+52>>2],o[n+20>>2]=o[f+56>>2],o[n+24>>2]=o[f+60>>2],o[n+28>>2]=o[f+64>>2],l=+s[n+16>>2],h=+s[n+20>>2],c=+s[n+24>>2],a=1/+_(+(l*l+h*h+c*c)),s[n+16>>2]=l*a,s[n+20>>2]=h*a,s[n+24>>2]=c*a,s[n+32>>2]=+s[f+4>>2],u=f,0|(i=e)):(u=f,0|(i=0))},function(i,t,e,n){return 0},function(i,t,e,n){var r;return i|=0,t|=0,e|=0,n|=0,r=u,u=u+16|0,o[r>>2]=i,o[r+4>>2]=n,n=0|o[i+(144*(0|o[4+(0|o[t+4>>2])>>2])|0)+(o[4+(0|o[e+4>>2])>>2]<<2)+72>>2],n=0|hn[31&o[8+(0|o[n>>2])>>2]](n,r,t,e),u=r,0|n},function(i,t,e,r){i|=0,e|=0,r|=0;var f,a=0,s=0,c=0;return f=u,a=0|o[(t|=0)>>2],a=0|Sn[31&o[56+(0|o[a>>2])>>2]](a,28),0|n[i+4|0]?0|a?(c=0|o[i+8>>2],i=0|o[i+12>>2],s=0|o[t>>2],o[a+4>>2]=s,o[a>>2]=17576,n[a+8|0]=0,o[a+12>>2]=0,n[a+16|0]=1,o[a+20>>2]=c,o[a+24>>2]=i,0|_n[31&o[24+(0|o[s>>2])>>2]](s,0|o[r+8>>2],0|o[e+8>>2])?(c=0|o[a+4>>2],o[a+12>>2]=0|_n[31&o[12+(0|o[c>>2])>>2]](c,0|o[r+8>>2],0|o[e+8>>2]),n[a+8|0]=1,u=f,0|(c=a)):(u=f,0|(c=a))):(u=f,0|(s=0)):0|a?(s=0|o[i+8>>2],i=0|o[i+12>>2],t=0|o[t>>2],o[a+4>>2]=t,o[a>>2]=17576,n[a+8|0]=0,o[a+12>>2]=0,n[a+16|0]=0,o[a+20>>2]=s,o[a+24>>2]=i,0|_n[31&o[24+(0|o[t>>2])>>2]](t,0|o[e+8>>2],0|o[r+8>>2])?(s=0|o[a+4>>2],o[a+12>>2]=0|_n[31&o[12+(0|o[s>>2])>>2]](s,0|o[e+8>>2],0|o[r+8>>2]),n[a+8|0]=1,u=f,0|(s=a)):(u=f,0|(s=a))):(u=f,0|(r=0))},function(i,t,e,r){i|=0,e|=0,r|=0;var f=0;return i=u,f=0|o[(t|=0)>>2],0|(f=0|Sn[31&o[56+(0|o[f>>2])>>2]](f,16))?(t=0|o[t>>2],o[f+4>>2]=t,o[f>>2]=16064,n[f+8|0]=0,o[f+12>>2]=0,0|_n[31&o[24+(0|o[t>>2])>>2]](t,0|o[e+8>>2],0|o[r+8>>2])?(t=0|o[f+4>>2],o[f+12>>2]=0|_n[31&o[12+(0|o[t>>2])>>2]](t,0|o[e+8>>2],0|o[r+8>>2]),n[f+8|0]=1,u=i,0|f):(u=i,0|f)):(u=i,0|(f=0))},function(i,t,e,r){i|=0,e|=0,r|=0;var f,a=0,s=0;return f=u,a=0|o[(t|=0)>>2],0|(a=0|Sn[31&o[56+(0|o[a>>2])>>2]](a,20))?(s=0|o[t+4>>2],i=0|n[i+4|0],t=0|o[t>>2],o[a+4>>2]=t,o[a>>2]=15232,n[a+8|0]=0,o[a+12>>2]=s,n[a+16|0]=i,0|s?(u=f,0|(s=a)):(o[a+12>>2]=0|_n[31&o[12+(0|o[t>>2])>>2]](t,0|o[e+8>>2],0|o[r+8>>2]),n[a+8|0]=1,u=f,0|(s=a))):(u=f,0|(i=0))},function(i,t,e,r){i|=0,e|=0,r|=0;var f=0;return i=u,f=0|o[(t|=0)>>2],0|(f=0|Sn[31&o[56+(0|o[f>>2])>>2]](f,16))?(t=0|o[t>>2],o[f+4>>2]=t,o[f>>2]=15144,n[f+8|0]=0,o[f+12>>2]=0,o[f+12>>2]=0|_n[31&o[12+(0|o[t>>2])>>2]](t,0|o[e+8>>2],0|o[r+8>>2]),n[f+8|0]=1,u=i,0|f):(u=i,0|(f=0))},function(i,t,e,n){return i|=0,e|=0,i=u,e=0|o[(t|=0)>>2],0|(e=0|Sn[31&o[56+(0|o[e>>2])>>2]](e,8))?(o[e+4>>2]=o[t>>2],o[e>>2]=11568,u=i,0|e):(u=i,0|0)},function(i,t,e,r){i|=0,e|=0,r|=0;var f=0;return i=u,f=0|o[(t|=0)>>2],0|(f=0|Sn[31&o[56+(0|o[f>>2])>>2]](f,44))?(o[f+4>>2]=o[t>>2],o[f>>2]=16208,n[f+24|0]=1,o[f+20>>2]=0,o[f+12>>2]=0,o[f+16>>2]=0,n[f+28|0]=1,o[f+32>>2]=o[t+4>>2],n[f+36|0]=0,o[f+40>>2]=o[68+(0|o[r+4>>2])>>2],_e(f,e,r),u=i,0|f):(u=i,0|(f=0))},function(i,t,e,r){i|=0,e|=0,r|=0;var f,a=0,s=0,c=0,h=0,l=0,d=0;if(f=u,i=0|o[(t|=0)>>2],!(0|(i=0|Sn[31&o[56+(0|o[i>>2])>>2]](i,48))))return u=f,0|(l=0);if(o[i+4>>2]=o[t>>2],o[i>>2]=16376,n[i+28|0]=1,o[i+24>>2]=0,o[i+16>>2]=0,o[i+20>>2]=0,o[i+32>>2]=o[t+4>>2],n[i+36|0]=0,o[4546]=1+(0|o[4546]),0|(t=0|ye(87))&&(o[(a=t+19&-16)+-4>>2]=t,t+19&-16)){if(o[(t+19&-16)>>2]=17768,n[a+20|0]=1,o[a+16>>2]=0,o[a+8>>2]=0,o[a+12>>2]=0,n[a+24|0]=0,n[a+44|0]=1,o[a+40>>2]=0,o[a+32>>2]=0,o[a+36>>2]=0,n[a+64|0]=1,o[a+60>>2]=0,o[a+52>>2]=0,o[a+56>>2]=0,o[4546]=1+(0|o[4546]),0|(s=0|ye(43))?(o[(s+19&-16)-4>>2]=s,s=s+19&-16):s=0,(0|(c=0|o[a+8>>2]))>0){h=0;do{0|(l=s+(12*h|0)|0)&&(d=(0|o[a+16>>2])+(12*h|0)|0,o[l+0>>2]=o[d+0>>2],o[l+4>>2]=o[d+4>>2],o[l+8>>2]=o[d+8>>2]),h=h+1|0}while((0|h)!=(0|c))}0|(c=0|o[a+16>>2])&&(0|n[a+20|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[c+-4>>2])),o[a+16>>2]=0),n[a+20|0]=1,o[a+16>>2]=s,o[a+12>>2]=2,he(t+19&-16),a=t+19&-16}else a=0;return o[i+8>>2]=a,o[i+40>>2]=o[68+(0|o[e+4>>2])>>2],o[i+44>>2]=o[68+(0|o[r+4>>2])>>2],u=f,0|(d=i)},function(i,t,e,r){i|=0,e|=0,r|=0;var f=0;return i=u,f=0|o[(t|=0)>>2],0|(f=0|Sn[31&o[56+(0|o[f>>2])>>2]](f,44))?(o[f+4>>2]=o[t>>2],o[f>>2]=16208,n[f+24|0]=1,o[f+20>>2]=0,o[f+12>>2]=0,o[f+16>>2]=0,n[f+28|0]=0,o[f+32>>2]=o[t+4>>2],n[f+36|0]=0,o[f+40>>2]=o[68+(0|o[e+4>>2])>>2],_e(f,e,r),u=i,0|f):(u=i,0|(f=0))},function(i,t,e,r){i|=0,e|=0,r|=0;var f=0;return i=u,f=0|o[(t|=0)>>2],0|(f=0|Sn[31&o[56+(0|o[f>>2])>>2]](f,80))?(o[f+4>>2]=o[t>>2],o[f>>2]=16600,n[f+8|0]=1,t=0|o[t>>2],o[f+12>>2]=16632,o[f+60>>2]=t,o[f+64>>2]=0,o[f+16>>2]=r,o[f+20>>2]=e,e=0|_n[31&o[12+(0|o[t>>2])>>2]](t,0|o[r+8>>2],0|o[e+8>>2]),o[f+76>>2]=e,r=0|o[f+60>>2],on[127&o[20+(0|o[r>>2])>>2]](r,e),u=i,0|f):(u=i,0|(f=0))},function(i,t,e,r){i|=0,e|=0,r|=0;var f=0;return i=u,f=0|o[(t|=0)>>2],0|(f=0|Sn[31&o[56+(0|o[f>>2])>>2]](f,80))?(o[f+4>>2]=o[t>>2],o[f>>2]=16600,n[f+8|0]=0,t=0|o[t>>2],o[f+12>>2]=16632,o[f+60>>2]=t,o[f+64>>2]=0,o[f+16>>2]=e,o[f+20>>2]=r,r=0|_n[31&o[12+(0|o[t>>2])>>2]](t,0|o[e+8>>2],0|o[r+8>>2]),o[f+76>>2]=r,e=0|o[f+60>>2],on[127&o[20+(0|o[e>>2])>>2]](e,r),u=i,0|f):(u=i,0|(f=0))},Y,function(i,t,e,n){var r;return r=u,Y(i|=0,t|=0,e|=0,n|=0),u=r,1},function(i,t,e,n){i|=0,t|=0,e|=0,n|=0;var r,f=0,a=0,s=0,c=0,h=0,l=0,d=0,v=0;if(r=u,o[3432]=1+(0|o[3432]),a=(s=(0|o[t+12>>2])>(0|o[e+12>>2]))?e:t,s=s?t:e,h=0|o[a+12>>2],c=(((c=9*(((e=0|o[s+12>>2])<<16|h)+~((e<<16|h)<<15)>>10^(e<<16|h)+~((e<<16|h)<<15))|0)>>6^c)+~((c>>6^c)<<11)>>16^(c>>6^c)+~((c>>6^c)<<11))&(0|o[i+12>>2])-1,-1==(0|(l=0|o[(0|o[i+44>>2])+(c<<2)>>2])))return u=r,0|(v=0);for(t=0|o[i+16>>2];(0|o[12+(0|o[t+(l<<4)>>2])>>2])!=(0|h)||(0|o[12+(0|o[t+(l<<4)+4>>2])>>2])!=(0|e);)if(-1==(0|(l=0|o[(0|o[i+64>>2])+(l<<2)>>2]))){i=0,f=24;break}if(24==(0|f))return u=r,0|i;if(!(0|(e=t+(l<<4)|0)))return u=r,0|(v=0);if(Pn[63&o[32+(0|o[i>>2])>>2]](i,e,n),t=0|o[t+(l<<4)+12>>2],e=e-(0|o[i+16>>2])>>4,c=(0|o[i+44>>2])+(c<<2)|0,h=0|o[c>>2],l=0|o[i+64>>2],(0|h)!=(0|e)){for(;(0|(v=0|o[(d=l+(h<<2)|0)>>2]))!=(0|e);)h=v;l=0|o[l+(e<<2)>>2],-1==(0|h)?f=12:o[d>>2]=l}else l=0|o[l+(e<<2)>>2],f=12;if(12==(0|f)&&(o[c>>2]=l),c=(0|o[i+8>>2])-1|0,0|(h=0|o[i+72>>2])&&hn[31&o[12+(0|o[h>>2])>>2]](h,a,s,n),(0|c)==(0|e))return o[i+8>>2]=(0|o[i+8>>2])-1,u=r,0|(v=t);if(s=0|o[i+16>>2],a=(((a=9*((a=o[12+(0|o[s+(c<<4)+4>>2])>>2]<<16|o[12+(0|o[s+(c<<4)>>2])>>2])+~(a<<15)>>10^a+~(a<<15))|0)>>6^a)+~((a>>6^a)<<11)>>16^(a>>6^a)+~((a>>6^a)<<11))&(0|o[i+12>>2])-1,n=(0|o[i+44>>2])+(a<<2)|0,l=0|o[n>>2],d=0|o[i+64>>2],(0|l)!=(0|c)){for(;(0|(v=0|o[(h=d+(l<<2)|0)>>2]))!=(0|c);)l=v;d=0|o[d+(c<<2)>>2],-1==(0|l)?f=22:o[h>>2]=d}else d=0|o[d+(c<<2)>>2],f=22;return 22==(0|f)&&(o[n>>2]=d),o[s+(e<<4)+0>>2]=o[s+(c<<4)+0>>2],o[s+(e<<4)+4>>2]=o[s+(c<<4)+4>>2],o[s+(e<<4)+8>>2]=o[s+(c<<4)+8>>2],o[s+(e<<4)+12>>2]=o[s+(c<<4)+12>>2],v=(0|o[i+44>>2])+(a<<2)|0,o[(0|o[i+64>>2])+(e<<2)>>2]=o[v>>2],o[v>>2]=e,o[i+8>>2]=(0|o[i+8>>2])-1,u=r,0|(v=t)},function(i,t,e,r){var f,a,s,c;return i|=0,e|=0,r|=0,e=u,r=0|o[(t|=0)>>2],0|(r=0|Sn[31&o[56+(0|o[r>>2])>>2]](r,36))?(a=0|o[t+4>>2],c=0|o[i+12>>2],s=0|o[i+8>>2],f=0|o[i+16>>2],i=0|o[i+20>>2],o[r+4>>2]=o[t>>2],o[r>>2]=16984,o[r+8>>2]=c,o[r+12>>2]=s,n[r+16|0]=0,o[r+20>>2]=a,n[r+24|0]=0,o[r+28>>2]=f,o[r+32>>2]=i,u=e,0|r):(u=e,0|(r=0))},Pe,Pe,Pe,Pe,Pe,Pe,Pe,Pe,Pe,Pe,Pe,Pe,Pe,Pe],ln=[Ne,function(i,t,e){t=+t,e|=0;var n,r,f,a,c,h=0;n=u,c=+s[(i|=0)+28>>2],f=+s[i+32>>2],h=+s[i+36>>2],a=+mn[15&o[48+(0|o[i>>2])>>2]](i),r=+mn[15&o[48+(0|o[i>>2])>>2]](i),h=2*(h+ +mn[15&o[48+(0|o[i>>2])>>2]](i)),s[e>>2]=t/12*(2*(f+r)*(f+r)*2+h*h),s[e+4>>2]=t/12*(2*(c+a)*(c+a)*2+h*h),s[e+8>>2]=t/12*(2*(c+a)*(c+a)*2+2*(f+r)*(f+r)*2),s[e+12>>2]=0,u=n},function(i,t,e){i|=0,t=+t,i=u,o[(e|=0)+0>>2]=0,o[e+4>>2]=0,o[e+8>>2]=0,o[e+12>>2]=0,u=i},function(i,t,e){t=+t,e|=0;var n,r,f,a,c=0;n=u,u=u+16|0,a=0|o[(i|=0)+52>>2],c=+s[i+((a+2|0)%3<<2)+28>>2],s[n>>2]=c,s[n+4>>2]=c,s[n+8>>2]=c,s[n+12>>2]=0,s[n+(a<<2)>>2]=+s[i+(a<<2)+28>>2]+ +s[n+(a<<2)>>2],c=2*(+s[n>>2]+.03999999910593033),r=2*(+s[n+4>>2]+.03999999910593033),f=2*(+s[n+8>>2]+.03999999910593033),s[e>>2]=.0833333283662796*t*(r*r+f*f),s[e+4>>2]=.0833333283662796*t*(c*c+f*f),s[e+8>>2]=.0833333283662796*t*(c*c+r*r),u=n},function(i,t,e){var n,r,f,a,c;i|=0,t=+t,e|=0,n=u,u=u+96|0,s[n+32>>2]=1,o[n+36>>2]=0,o[n+40>>2]=0,o[n+44>>2]=0,o[n+48>>2]=0,s[n+52>>2]=1,o[n+56>>2]=0,o[n+60>>2]=0,o[n+64>>2]=0,o[n+68>>2]=0,s[n+72>>2]=1,o[(c=n+76|0)+0>>2]=0,o[c+4>>2]=0,o[c+8>>2]=0,o[c+12>>2]=0,o[c+16>>2]=0,Vn[63&o[8+(0|o[i>>2])>>2]](i,n+32|0,n+16|0,n),f=.5*(+s[n>>2]-+s[n+16>>2])*2,r=.5*(+s[n+4>>2]-+s[n+20>>2])*2,a=.5*(+s[n+8>>2]-+s[n+24>>2])*2,s[e>>2]=t/12*(r*r+a*a),s[e+4>>2]=t/12*(f*f+a*a),s[e+8>>2]=t/12*(f*f+r*r),u=n},function(i,t,e){var n,r,f,a,c,h;i|=0,t=+t,e|=0,n=u,u=u+96|0,s[n+32>>2]=1,o[n+36>>2]=0,o[n+40>>2]=0,o[n+44>>2]=0,o[n+48>>2]=0,s[n+52>>2]=1,o[n+56>>2]=0,o[n+60>>2]=0,o[n+64>>2]=0,o[n+68>>2]=0,s[n+72>>2]=1,o[(h=n+76|0)+0>>2]=0,o[h+4>>2]=0,o[h+8>>2]=0,o[h+12>>2]=0,o[h+16>>2]=0,Vn[63&o[8+(0|o[i>>2])>>2]](i,n+32|0,n+16|0,n),a=.5*(+s[n>>2]-+s[n+16>>2]),f=.5*(+s[n+4>>2]-+s[n+20>>2]),c=.5*(+s[n+8>>2]-+s[n+24>>2]),r=+mn[15&o[48+(0|o[i>>2])>>2]](i),s[e>>2]=.0833333283662796*t*(2*(f+r)*(f+r)*2+2*(c+r)*(c+r)*2),s[e+4>>2]=.0833333283662796*t*(2*(a+r)*(a+r)*2+2*(c+r)*(c+r)*2),s[e+8>>2]=.0833333283662796*t*(2*(a+r)*(a+r)*2+2*(f+r)*(f+r)*2),s[e+12>>2]=0,u=n},function(i,t,e){i|=0,t=+t,e|=0;var n,r,f=0,a=0,c=0,h=0;return n=u,u=u+16|0,o[n+0>>2]=o[i+28>>2],o[n+4>>2]=o[i+32>>2],o[n+8>>2]=o[i+36>>2],o[n+12>>2]=o[i+40>>2],r=+mn[15&o[48+(0|o[i>>2])>>2]](i),a=+mn[15&o[48+(0|o[i>>2])>>2]](i),h=+mn[15&o[48+(0|o[i>>2])>>2]](i),s[n>>2]=r+ +s[n>>2],s[n+4>>2]=a+ +s[n+4>>2],s[n+8>>2]=h+ +s[n+8>>2],0|(i=0|o[i+52>>2])?2==(0|i)?(f=2,c=0):(f=1,c=0):(f=0,c=1),h=.25*t*(a=+s[n+(c<<2)>>2])*a+t/12*(h=+s[n+(f<<2)>>2])*h*4,2==(0|i)?(s[e>>2]=h,s[e+4>>2]=h,s[e+8>>2]=.5*t*a*a,s[e+12>>2]=0,void(u=n)):0|i?(s[e>>2]=h,s[e+4>>2]=.5*t*a*a,s[e+8>>2]=h,s[e+12>>2]=0,void(u=n)):(s[e>>2]=.5*t*a*a,s[e+4>>2]=h,s[e+8>>2]=h,s[e+12>>2]=0,void(u=n))},function(i,t,e){t=+t,e|=0;var n,r,f,a,c=0;n=u,u=u+96|0,c=+mn[15&o[48+(0|o[(i|=0)>>2])>>2]](i),s[n+32>>2]=1,o[n+36>>2]=0,o[n+40>>2]=0,o[n+44>>2]=0,o[n+48>>2]=0,s[n+52>>2]=1,o[n+56>>2]=0,o[n+60>>2]=0,o[n+64>>2]=0,o[n+68>>2]=0,s[n+72>>2]=1,o[(a=n+76|0)+0>>2]=0,o[a+4>>2]=0,o[a+8>>2]=0,o[a+12>>2]=0,o[a+16>>2]=0,Vn[63&o[8+(0|o[i>>2])>>2]](i,n+32|0,n+16|0,n),f=2*(c+.5*(+s[n>>2]-+s[n+16>>2])),r=2*(c+.5*(+s[n+4>>2]-+s[n+20>>2])),c=2*(c+.5*(+s[n+8>>2]-+s[n+24>>2])),s[e>>2]=.0833333283662796*t*(r*r+c*c),s[e+4>>2]=.0833333283662796*t*(f*f+c*c),s[e+8>>2]=.0833333283662796*t*(f*f+r*r),s[e+12>>2]=0,u=n},function(i,t,e){i|=0,t=+t,i=u,o[(e|=0)+0>>2]=0,o[e+4>>2]=0,o[e+8>>2]=0,o[e+12>>2]=0,u=i},function(i,t,e){var n;e|=0,n=u,t=.4000000059604645*(t=+t)*+mn[15&o[48+(0|o[(i|=0)>>2])>>2]](i),t*=+mn[15&o[48+(0|o[i>>2])>>2]](i),s[e>>2]=t,s[e+4>>2]=t,s[e+8>>2]=t,s[e+12>>2]=0,u=n},Ne,Ne,Ne,Ne,Ne,Ne],dn=[function(i,t,e,n,r,o,f,a){return C(12),0},function(i,t,e,n,r,o,f,a){var s,c;return c=u,s=+M(696,0|(i|=0),0|(t|=0),0|(e|=0),0|(n|=0),0|(r|=0),0|(o|=0),0|(f|=0),0|(a|=0)),u=c,+s}],vn=[function(i,t,e,n,r,o,f,a,s,c,u){r=+r,o=+o,f=+f,a=+a,u=+u,C(13)}],bn=[Be,function(i,t,e,n,r){return 1},function(i,t,e,n,r){return 1},function(i,t,e,n,r){return 1},function(i,t,e,n,r){return 1},function(i,t,e,r,f){t|=0,e|=0,r|=0,f|=0;var a,c,h,l,d,v,b,_,w,p,m,y,k,g,C,j,S,x,M,E=0,T=0,L=0,I=0,A=0,D=0,O=0,R=0,P=0,N=0,B=0,F=0,V=0,U=0,G=0,W=0;if(a=u,c=(T=!!(0|n[(i|=0)+28|0]))?e:t,t=T?t:e,(0|(T=0|o[i+12>>2]))<=0)return u=a,+(L=1);l=24+(0|o[c+192>>2])|0,d=+s[c+4>>2],v=+s[c+8>>2],b=+s[c+12>>2],j=+s[c+16>>2],_=+s[c+20>>2],w=+s[c+24>>2],h=+s[c+28>>2],S=+s[c+32>>2],p=+s[c+36>>2],m=+s[c+40>>2],y=+s[c+44>>2],x=+s[c+48>>2],k=+s[c+52>>2],g=+s[c+56>>2],C=+s[c+60>>2],M=+s[c+64>>2],e=0|o[c+260>>2],L=1,E=0;do{A=0|o[l>>2],W=+s[A+(80*E|0)>>2],G=+s[A+(80*E|0)+16>>2],U=+s[A+(80*E|0)+32>>2],V=+s[A+(80*E|0)+4>>2],F=+s[A+(80*E|0)+20>>2],B=+s[A+(80*E|0)+36>>2],N=+s[A+(80*E|0)+8>>2],P=+s[A+(80*E|0)+24>>2],R=+s[A+(80*E|0)+40>>2],O=+s[A+(80*E|0)+48>>2],D=+s[A+(80*E|0)+52>>2],I=+s[A+(80*E|0)+56>>2],o[c+260>>2]=e+1,s[c+4>>2]=d*W+v*G+b*U,s[c+8>>2]=d*V+v*F+b*B,s[c+12>>2]=d*N+v*P+b*R,s[c+16>>2]=0,s[c+20>>2]=_*W+w*G+h*U,s[c+24>>2]=_*V+w*F+h*B,s[c+28>>2]=_*N+w*P+h*R,s[c+32>>2]=0,s[c+36>>2]=p*W+m*G+y*U,s[c+40>>2]=p*V+m*F+y*B,s[c+44>>2]=p*N+m*P+y*R,s[c+48>>2]=0,s[c+52>>2]=k+(d*O+v*D+b*I),s[c+56>>2]=g+(_*O+w*D+h*I),s[c+60>>2]=C+(p*O+m*D+y*I),s[c+64>>2]=0,A=0|o[(0|o[i+20>>2])+(E<<2)>>2],L=(I=+bn[15&o[12+(0|o[A>>2])>>2]](A,c,t,r,f))<L?I:L,e=1+(0|o[c+260>>2])|0,o[c+260>>2]=e,s[c+4>>2]=d,s[c+8>>2]=v,s[c+12>>2]=b,s[c+16>>2]=j,s[c+20>>2]=_,s[c+24>>2]=w,s[c+28>>2]=h,s[c+32>>2]=S,s[c+36>>2]=p,s[c+40>>2]=m,s[c+44>>2]=y,s[c+48>>2]=x,s[c+52>>2]=k,s[c+56>>2]=g,s[c+60>>2]=C,s[c+64>>2]=M,E=E+1|0}while((0|E)!=(0|T));return u=a,+L},function(i,t,e,n,r){return 0},function(i,t,e,r,f){t|=0,e|=0,r|=0,f|=0;var a,c,h,l,d,v,b,_,w,p,m,y,k,g,C,j,S,x,M,E,T,L,I,A,D,O,R,P,N=0,B=0,F=0,V=0,U=0,G=0,W=0,z=0,X=0,$=0,H=0,q=0;return f=u,u=u+240|0,i=(r=!!(0|n[(i|=0)+8|0]))?e:t,t=r?t:e,(z=+s[i+116>>2]-+s[i+52>>2])*z+(X=+s[i+120>>2]-+s[i+56>>2])*X+($=+s[i+124>>2]-+s[i+60>>2])*$<(H=+s[i+252>>2])*H?(u=f,+(H=1)):(l=+s[t+4>>2],v=+s[t+20>>2],_=+s[t+36>>2],j=+s[t+8>>2],S=+s[t+24>>2],x=+s[t+40>>2],N=+s[t+12>>2],M=+s[t+28>>2],E=+s[t+44>>2],W=-+s[t+52>>2],z=-+s[t+56>>2],X=-+s[t+60>>2],d=+s[i+4>>2],b=+s[i+20>>2],w=+s[i+36>>2],p=+s[i+8>>2],m=+s[i+24>>2],y=+s[i+40>>2],k=+s[i+12>>2],g=+s[i+28>>2],C=+s[i+44>>2],T=l*W+v*z+_*X+(l*(U=+s[i+52>>2])+v*(V=+s[i+56>>2])+_*(F=+s[i+60>>2])),L=j*W+S*z+x*X+(j*U+S*V+x*F),F=N*W+M*z+E*X+(N*U+M*V+E*F),V=+s[i+68>>2],U=+s[i+84>>2],I=+s[i+100>>2],A=+s[i+72>>2],D=+s[i+88>>2],O=+s[i+104>>2],R=+s[i+76>>2],P=+s[i+92>>2],h=+s[i+108>>2],c=l*W+v*z+_*X+(l*($=+s[i+116>>2])+v*(H=+s[i+120>>2])+_*(B=+s[i+124>>2])),a=j*W+S*z+x*X+(j*$+S*H+x*B),B=N*W+M*z+E*X+(N*$+M*H+E*B),t=0|o[t+192>>2],((0|o[t+4>>2])-21|0)>>>0<9?(s[f+224>>2]=T,s[f+228>>2]=L,s[f+232>>2]=F,s[f+236>>2]=0,c<T?(s[f+224>>2]=c,X=c):X=T,a<L?(s[f+228>>2]=a,$=a):$=L,B<F?(s[f+232>>2]=B,H=B):H=F,s[f+208>>2]=T,s[f+212>>2]=L,s[f+216>>2]=F,s[f+220>>2]=0,T<c?(s[f+208>>2]=c,G=c):G=T,L<a?(s[f+212>>2]=a,W=a):W=L,F<B?(s[f+216>>2]=B,z=B):z=F,q=+s[i+248>>2],s[f+224>>2]=X-q,s[f+228>>2]=$-q,s[f+232>>2]=H-q,s[f+208>>2]=q+G,s[f+212>>2]=q+W,s[f+216>>2]=q+z,o[f>>2]=16760,s[f+4>>2]=l*d+v*b+_*w,s[f+8>>2]=l*p+v*m+_*y,s[f+12>>2]=l*k+v*g+_*C,s[f+16>>2]=0,s[f+20>>2]=j*d+S*b+x*w,s[f+24>>2]=j*p+S*m+x*y,s[f+28>>2]=j*k+S*g+x*C,s[f+32>>2]=0,s[f+36>>2]=N*d+M*b+E*w,s[f+40>>2]=N*p+M*m+E*y,s[f+44>>2]=N*k+M*g+E*C,s[f+48>>2]=0,s[f+52>>2]=T,s[f+56>>2]=L,s[f+60>>2]=F,s[f+64>>2]=0,s[f+68>>2]=l*V+v*U+_*I,s[f+72>>2]=l*A+v*D+_*O,s[f+76>>2]=l*R+v*P+_*h,s[f+80>>2]=0,s[f+84>>2]=j*V+S*U+x*I,s[f+88>>2]=j*A+S*D+x*O,s[f+92>>2]=j*R+S*P+x*h,s[f+96>>2]=0,s[f+100>>2]=N*V+M*U+E*I,s[f+104>>2]=N*A+M*D+E*O,s[f+108>>2]=N*R+M*P+E*h,s[f+112>>2]=0,s[f+116>>2]=c,s[f+120>>2]=a,s[f+124>>2]=B,s[f+128>>2]=0,s[f+196>>2]=q,s[f+200>>2]=+s[i+244>>2],0|t?(Vn[63&o[64+(0|o[t>>2])>>2]](t,f,f+224|0,f+208|0),(N=+s[f+200>>2])<+s[i+244>>2]?(s[i+244>>2]=N,u=f,+(q=N)):(u=f,+(q=1))):(u=f,+(q=1))):(u=f,+(H=1)))},function(i,t,e,r,f){i|=0,e|=0,r|=0;var a,c,h,l,d=0,v=0,b=0;return r=u,u=u+624|0,b=+s[(t|=0)+116>>2]-+s[t+52>>2],l=+s[t+120>>2]-+s[t+56>>2],h=+s[t+124>>2]-+s[t+60>>2],a=+s[e+116>>2]-+s[e+52>>2],v=+s[e+120>>2]-+s[e+56>>2],d=+s[e+124>>2]-+s[e+60>>2],b*b+l*l+h*h<(c=+s[t+252>>2])*c&&a*a+v*v+d*d<(b=+s[e+252>>2])*b?(u=r,+(b=1)):(i=0|o[t+192>>2],b=+s[e+248>>2],o[r+576>>2]=0,s[r+580>>2]=1,s[r+584>>2]=1,s[r+588>>2]=1,s[r+592>>2]=0,o[r+568>>2]=15008,o[r+572>>2]=8,s[r+596>>2]=b,s[r+612>>2]=b,o[r+392>>2]=8584,s[r+556>>2]=0xde0b6b000000000,o[r+560>>2]=0,s[r+564>>2]=0,s[r+340>>2]=9999999747378752e-20,n[r+364|0]=0,o[r+16>>2]=11672,o[r+20>>2]=r+32,o[r+24>>2]=i,o[r+28>>2]=r+568,0|Pi(r+16|0,t+4|0,t+68|0,e+4|0,e+68|0,r+392|0)?(v=+s[r+556>>2],+s[t+244>>2]>v&&(s[t+244>>2]=v),+s[e+244>>2]>v&&(s[e+244>>2]=v),v<1||(v=1)):v=1,i=0|o[e+192>>2],b=+s[t+248>>2],o[r+576>>2]=0,s[r+580>>2]=1,s[r+584>>2]=1,s[r+588>>2]=1,s[r+592>>2]=0,o[r+568>>2]=15008,o[r+572>>2]=8,s[r+596>>2]=b,s[r+612>>2]=b,o[r+392>>2]=8584,s[r+556>>2]=0xde0b6b000000000,o[r+560>>2]=0,s[r+564>>2]=0,s[r+340>>2]=9999999747378752e-20,n[r+364|0]=-16&n[r+364|0],o[r>>2]=11672,o[r+4>>2]=r+32,o[r+8>>2]=r+568,o[r+12>>2]=i,0|Pi(r,t+4|0,t+68|0,e+4|0,e+68|0,r+392|0)?(d=+s[r+556>>2],+s[t+244>>2]>d&&(s[t+244>>2]=d),+s[e+244>>2]>d&&(s[e+244>>2]=d),v>d?(u=r,+(b=d)):(u=r,+(b=v))):(u=r,+(b=v)))},function(i,t,e,n,r){return 1},Be,Be,Be,Be,Be,Be],_n=[Fe,hi,function(i,t,e){var n;return n=u,hi(i|=0,t|=0,e|=0),s[t+52>>2]=+s[i+300>>2],s[t+56>>2]=+s[i+304>>2],s[t+60>>2]=+s[i+308>>2],s[t+64>>2]=+s[i+312>>2],s[t+68>>2]=+s[i+316>>2],s[t+72>>2]=+s[i+320>>2],s[t+76>>2]=+s[i+324>>2],s[t+80>>2]=+s[i+328>>2],s[t+84>>2]=+s[i+332>>2],s[t+88>>2]=+s[i+336>>2],s[t+92>>2]=+s[i+340>>2],s[t+96>>2]=+s[i+344>>2],s[t+100>>2]=+s[i+348>>2],s[t+104>>2]=+s[i+352>>2],s[t+108>>2]=+s[i+356>>2],s[t+112>>2]=+s[i+360>>2],s[t+116>>2]=+s[i+364>>2],s[t+120>>2]=+s[i+368>>2],s[t+124>>2]=+s[i+372>>2],s[t+128>>2]=+s[i+376>>2],s[t+132>>2]=+s[i+380>>2],s[t+136>>2]=+s[i+384>>2],s[t+140>>2]=+s[i+388>>2],s[t+144>>2]=+s[i+392>>2],s[t+148>>2]=+s[i+396>>2],s[t+152>>2]=+s[i+400>>2],s[t+156>>2]=+s[i+404>>2],s[t+160>>2]=+s[i+408>>2],s[t+164>>2]=+s[i+412>>2],s[t+168>>2]=+s[i+416>>2],s[t+172>>2]=+s[i+420>>2],s[t+176>>2]=+s[i+424>>2],s[t+180>>2]=+s[i+444>>2],s[t+184>>2]=+s[i+448>>2],s[t+188>>2]=+s[i+452>>2],s[t+192>>2]=+s[i+428>>2],s[t+196>>2]=+s[i+432>>2],s[t+200>>2]=+s[i+436>>2],s[t+204>>2]=+s[i+440>>2],u=n,1088},function(i,t,e){var n;return n=u,hi(i|=0,t|=0,e|=0),s[t+52>>2]=+s[i+300>>2],s[t+56>>2]=+s[i+304>>2],s[t+60>>2]=+s[i+308>>2],s[t+64>>2]=+s[i+312>>2],s[t+68>>2]=+s[i+316>>2],s[t+72>>2]=+s[i+320>>2],s[t+76>>2]=+s[i+324>>2],s[t+80>>2]=+s[i+328>>2],u=n,2352},function(i,t,e){var n;return n=u,function(i,t,e){i|=0,e|=0;var n,r,f=0,a=0;n=u,s[16+(t|=0)>>2]=+s[i+4>>2],s[t+20>>2]=+s[i+8>>2],s[t+24>>2]=+s[i+12>>2],s[t+28>>2]=+s[i+16>>2],s[t+32>>2]=+s[i+20>>2],s[t+36>>2]=+s[i+24>>2],s[t+40>>2]=+s[i+28>>2],s[t+44>>2]=+s[i+32>>2],s[t+48>>2]=+s[i+36>>2],s[t+52>>2]=+s[i+40>>2],s[t+56>>2]=+s[i+44>>2],s[t+60>>2]=+s[i+48>>2],s[t+64>>2]=+s[i+52>>2],s[t+68>>2]=+s[i+56>>2],s[t+72>>2]=+s[i+60>>2],s[t+76>>2]=+s[i+64>>2],s[t+80>>2]=+s[i+68>>2],s[t+84>>2]=+s[i+72>>2],s[t+88>>2]=+s[i+76>>2],s[t+92>>2]=+s[i+80>>2],s[t+96>>2]=+s[i+84>>2],s[t+100>>2]=+s[i+88>>2],s[t+104>>2]=+s[i+92>>2],s[t+108>>2]=+s[i+96>>2],s[t+112>>2]=+s[i+100>>2],s[t+116>>2]=+s[i+104>>2],s[t+120>>2]=+s[i+108>>2],s[t+124>>2]=+s[i+112>>2],s[t+128>>2]=+s[i+116>>2],s[t+132>>2]=+s[i+120>>2],s[t+136>>2]=+s[i+124>>2],s[t+140>>2]=+s[i+128>>2],s[t+144>>2]=+s[i+132>>2],s[t+148>>2]=+s[i+136>>2],s[t+152>>2]=+s[i+140>>2],s[t+156>>2]=+s[i+144>>2],s[t+160>>2]=+s[i+148>>2],s[t+164>>2]=+s[i+152>>2],s[t+168>>2]=+s[i+156>>2],s[t+172>>2]=+s[i+160>>2],s[t+176>>2]=+s[i+164>>2],s[t+180>>2]=+s[i+168>>2],s[t+184>>2]=+s[i+172>>2],s[t+188>>2]=+s[i+176>>2],o[t+224>>2]=o[i+180>>2],s[t+192>>2]=+s[i+184>>2],o[t>>2]=0,o[t+4>>2]=0|Sn[31&o[28+(0|o[e>>2])>>2]](e,0|o[i+192>>2]),o[t+8>>2]=0,o[t+228>>2]=o[i+204>>2],o[t+232>>2]=o[i+208>>2],o[t+236>>2]=o[i+212>>2],o[t+240>>2]=o[i+216>>2],s[t+196>>2]=+s[i+220>>2],s[t+200>>2]=+s[i+224>>2],s[t+204>>2]=+s[i+232>>2],s[t+208>>2]=+s[i+228>>2],o[t+244>>2]=o[i+236>>2],r=0|Sn[31&o[40+(0|o[e>>2])>>2]](e,i),f=0|Sn[31&o[28+(0|o[e>>2])>>2]](e,r),o[t+12>>2]=f,0|f?(on[127&o[48+(0|o[e>>2])>>2]](e,r),a=+s[(e=i+244|0)>>2],s[(e=t+212|0)>>2]=a,a=+s[(e=i+248|0)>>2],s[(e=t+216|0)>>2]=a,a=+s[(e=i+252|0)>>2],s[(e=t+220|0)>>2]=a,e=0|o[(e=i+256|0)>>2],o[(f=t+248|0)>>2]=e,u=n):(a=+s[(e=i+244|0)>>2],s[(e=t+212|0)>>2]=a,a=+s[(e=i+248|0)>>2],s[(e=t+216|0)>>2]=a,a=+s[(e=i+252|0)>>2],s[(e=t+220|0)>>2]=a,e=0|o[(e=i+256|0)>>2],o[(f=t+248|0)>>2]=e,u=n)}(i|=0,t|=0,e|=0),s[t+256>>2]=+s[i+264>>2],s[t+260>>2]=+s[i+268>>2],s[t+264>>2]=+s[i+272>>2],s[t+268>>2]=+s[i+276>>2],s[t+272>>2]=+s[i+280>>2],s[t+276>>2]=+s[i+284>>2],s[t+280>>2]=+s[i+288>>2],s[t+284>>2]=+s[i+292>>2],s[t+288>>2]=+s[i+296>>2],s[t+292>>2]=+s[i+300>>2],s[t+296>>2]=+s[i+304>>2],s[t+300>>2]=+s[i+308>>2],s[t+304>>2]=+s[i+312>>2],s[t+308>>2]=+s[i+316>>2],s[t+312>>2]=+s[i+320>>2],s[t+316>>2]=+s[i+324>>2],s[t+320>>2]=+s[i+328>>2],s[t+324>>2]=+s[i+332>>2],s[t+328>>2]=+s[i+336>>2],s[t+332>>2]=+s[i+340>>2],s[t+448>>2]=+s[i+344>>2],s[t+336>>2]=+s[i+544>>2],s[t+340>>2]=+s[i+548>>2],s[t+344>>2]=+s[i+552>>2],s[t+348>>2]=+s[i+556>>2],s[t+352>>2]=+s[i+348>>2],s[t+356>>2]=+s[i+352>>2],s[t+360>>2]=+s[i+356>>2],s[t+364>>2]=+s[i+360>>2],s[t+368>>2]=+s[i+364>>2],s[t+372>>2]=+s[i+368>>2],s[t+376>>2]=+s[i+372>>2],s[t+380>>2]=+s[i+376>>2],s[t+384>>2]=+s[i+380>>2],s[t+388>>2]=+s[i+384>>2],s[t+392>>2]=+s[i+388>>2],s[t+396>>2]=+s[i+392>>2],s[t+400>>2]=+s[i+396>>2],s[t+404>>2]=+s[i+400>>2],s[t+408>>2]=+s[i+404>>2],s[t+412>>2]=+s[i+408>>2],s[t+416>>2]=+s[i+412>>2],s[t+420>>2]=+s[i+416>>2],s[t+424>>2]=+s[i+420>>2],s[t+428>>2]=+s[i+424>>2],s[t+432>>2]=+s[i+428>>2],s[t+436>>2]=+s[i+432>>2],s[t+440>>2]=+s[i+436>>2],s[t+444>>2]=+s[i+440>>2],s[t+452>>2]=+s[i+444>>2],s[t+456>>2]=+s[i+448>>2],o[t+484>>2]=0|f[i+452|0],s[t+460>>2]=+s[i+456>>2],s[t+464>>2]=+s[i+460>>2],s[t+468>>2]=+s[i+464>>2],s[t+472>>2]=+s[i+468>>2],s[t+476>>2]=+s[i+472>>2],s[t+480>>2]=+s[i+476>>2],u=n,3256},function(i,t,e){return 0},function(i,t,e){return 0},function(i,t,e){var n,r,f;return i|=0,t|=0,n=u,r=0|Sn[31&o[40+(0|o[(e|=0)>>2])>>2]](e,i),f=0|Sn[31&o[28+(0|o[e>>2])>>2]](e,r),o[t>>2]=f,0|f&&on[127&o[48+(0|o[e>>2])>>2]](e,r),o[t+4>>2]=o[i+4>>2],s[t+28>>2]=+s[i+28>>2],s[t+32>>2]=+s[i+32>>2],s[t+36>>2]=+s[i+36>>2],s[t+40>>2]=+s[i+40>>2],s[t+12>>2]=+s[i+12>>2],s[t+16>>2]=+s[i+16>>2],s[t+20>>2]=+s[i+20>>2],s[t+24>>2]=+s[i+24>>2],s[t+44>>2]=+s[i+44>>2],u=n,1848},function(i,t,e){i|=0,t|=0;var n,r=0,f=0,a=0;n=u,f=0|Sn[31&o[40+(0|o[(e|=0)>>2])>>2]](e,i),a=0|Sn[31&o[28+(0|o[e>>2])>>2]](e,f),o[t>>2]=a,0|a&&on[127&o[48+(0|o[e>>2])>>2]](e,f),o[t+4>>2]=o[i+4>>2],a=0|o[i+48>>2],_n[31&o[56+(0|o[a>>2])>>2]](a,t+12|0,e),s[t+52>>2]=+s[i+12>>2];do{if(0|o[i+52>>2]&&!(1&an[127&o[52+(0|o[e>>2])>>2]](e))){if(0|(f=0|Sn[31&o[24+(0|o[e>>2])>>2]](e,0|o[i+52>>2]))){o[t+40>>2]=f,o[t+44>>2]=0;break}o[t+40>>2]=0|Sn[31&o[28+(0|o[e>>2])>>2]](e,0|o[i+52>>2]),o[t+44>>2]=0,f=0|o[i+52>>2],f=0|an[127&o[12+(0|o[f>>2])>>2]](f),f=0|_n[31&o[16+(0|o[e>>2])>>2]](e,f,1),a=0|o[i+52>>2],a=0|_n[31&o[16+(0|o[a>>2])>>2]](a,0|o[f+8>>2],e),tn[31&o[20+(0|o[e>>2])>>2]](e,f,a,1213612625,0|o[i+52>>2]);break}r=8}while(0);return 8==(0|r)&&(o[t+40>>2]=0,o[t+44>>2]=0),0|o[i+56>>2]&&!(2&an[127&o[52+(0|o[e>>2])>>2]](e))?0|(r=0|Sn[31&o[24+(0|o[e>>2])>>2]](e,0|o[i+56>>2]))?(o[t+48>>2]=r,u=n,4936):(o[t+48>>2]=0|Sn[31&o[28+(0|o[e>>2])>>2]](e,0|o[i+56>>2]),f=0|o[i+56>>2],f=0|an[127&o[8+(0|o[f>>2])>>2]](f),f=0|_n[31&o[16+(0|o[e>>2])>>2]](e,f,1),a=0|o[i+56>>2],a=0|_n[31&o[12+(0|o[a>>2])>>2]](a,0|o[f+8>>2],e),tn[31&o[20+(0|o[e>>2])>>2]](e,f,a,1346456916,0|o[i+56>>2]),u=n,4936):(o[t+48>>2]=0,u=n,4936)},function(i,t,e){var n,r,f;return i|=0,t|=0,n=u,r=0|Sn[31&o[40+(0|o[(e|=0)>>2])>>2]](e,i),f=0|Sn[31&o[28+(0|o[e>>2])>>2]](e,r),o[t>>2]=f,0|f&&on[127&o[48+(0|o[e>>2])>>2]](e,r),o[t+4>>2]=o[i+4>>2],s[t+28>>2]=+s[i+28>>2],s[t+32>>2]=+s[i+32>>2],s[t+36>>2]=+s[i+36>>2],s[t+40>>2]=+s[i+40>>2],s[t+12>>2]=+s[i+12>>2],s[t+16>>2]=+s[i+16>>2],s[t+20>>2]=+s[i+20>>2],s[t+24>>2]=+s[i+24>>2],s[t+44>>2]=+s[i+44>>2],o[t+52>>2]=o[i+52>>2],u=n,5976},function(i,t,e){i|=0,t|=0,e|=0;var r,f,a=0,c=0,h=0,l=0,d=0,v=0;if(r=u,u=u+16|0,o[1504]=1+(0|o[1504]),2&o[i+4>>2]?(c=0|o[t+192>>2],h=+Ln[1&o[20+(0|o[c>>2])>>2]](c,.019999999552965164),s[r+4>>2]=h,c=0|o[e+192>>2],l=+Ln[1&o[20+(0|o[c>>2])>>2]](c,.019999999552965164),s[r>>2]=l,c=h<l?r+4|0:r):c=14208,h=+s[c>>2],l=(f=+s[t+184>>2])<(l=+s[e+184>>2])?f:l,d=0|o[i+68>>2],0|(c=0|o[d+8>>2]))v=0|o[d+12>>2],o[d+12>>2]=o[v>>2],o[d+8>>2]=c+-1,c=v;else{if(4&o[i+4>>2])return u=r,0|(v=0);o[4546]=1+(0|o[4546]),0|(c=0|ye(791))?(o[(c+19&-16)-4>>2]=c,c=c+19&-16):c=0}if(o[c>>2]=1025,o[c+116>>2]=0,n[c+120|0]=0,o[(v=c+124|0)+0>>2]=0,o[v+4>>2]=0,o[v+8>>2]=0,o[v+12>>2]=0,o[v+16>>2]=0,o[v+20>>2]=0,o[v+24>>2]=0,o[v+28>>2]=0,o[c+300>>2]=0,n[c+304|0]=0,o[(v=c+308|0)+0>>2]=0,o[v+4>>2]=0,o[v+8>>2]=0,o[v+12>>2]=0,o[v+16>>2]=0,o[v+20>>2]=0,o[v+24>>2]=0,o[v+28>>2]=0,o[c+484>>2]=0,n[c+488|0]=0,o[(v=c+492|0)+0>>2]=0,o[v+4>>2]=0,o[v+8>>2]=0,o[v+12>>2]=0,o[v+16>>2]=0,o[v+20>>2]=0,o[v+24>>2]=0,o[v+28>>2]=0,o[c+668>>2]=0,n[c+672|0]=0,o[(v=c+676|0)+0>>2]=0,o[v+4>>2]=0,o[v+8>>2]=0,o[v+12>>2]=0,o[v+16>>2]=0,o[v+20>>2]=0,o[v+24>>2]=0,o[v+28>>2]=0,o[c+740>>2]=t,o[c+744>>2]=e,o[c+748>>2]=0,s[c+752>>2]=h,s[c+756>>2]=l,o[c+768>>2]=o[i+12>>2],(0|(e=0|o[i+12>>2]))==(0|o[i+16>>2])&&(0|e)<(0|(a=0|e?e<<1:1))){if(0|a?(o[4546]=1+(0|o[4546]),0|(t=0|ye(16+(a<<2|3)|0))?(o[(t+19&-16)-4>>2]=t,t=t+19&-16):t=0,e=0|o[i+12>>2]):t=0,(0|e)>0){v=0;do{0|(d=t+(v<<2)|0)&&(o[d>>2]=o[(0|o[i+20>>2])+(v<<2)>>2]),v=v+1|0}while((0|v)!=(0|e))}0|(d=0|o[i+20>>2])&&(0|n[i+24|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[d+-4>>2]),e=0|o[i+12>>2]),o[i+20>>2]=0),n[i+24|0]=1,o[i+20>>2]=t,o[i+16>>2]=a}return 0|(a=(0|o[i+20>>2])+(e<<2)|0)&&(o[a>>2]=c),o[i+12>>2]=e+1,u=r,0|(v=c)},function(i,t,e){i|=0,e|=0;var n=0;return i=u,2==(0|(n=0|o[(t|=0)+216>>2]))|5==(0|n)&&2==(0|(n=0|o[e+216>>2]))|5==(0|n)?(u=i,0|(n=0)):0|o[t+256>>2]?(n=0|Sn[31&o[o[t>>2]>>2]](t,e),u=i,0|n):(u=i,0|(n=1))},function(i,t,e){i|=0,e|=0;var n=0;return i=u,e=4&(t=0|o[(t|=0)+204>>2])||4&(n=0|o[e+204>>2])?0:3&t?!(3&n):1,u=i,0|e},function(i,t,e){i|=0,t|=0;var n,r=0,f=0,a=0,c=0,h=0;if(n=u,r=0|Sn[31&o[40+(0|o[(e|=0)>>2])>>2]](e,i),c=0|Sn[31&o[28+(0|o[e>>2])>>2]](e,r),o[t>>2]=c,0|c&&on[127&o[48+(0|o[e>>2])>>2]](e,r),o[t+4>>2]=o[i+4>>2],s[t+20>>2]=+s[i+72>>2],r=0|o[i+16>>2],o[t+16>>2]=r,o[t+12>>2]=0,!(0|r))return u=n,8760;if(r=0|_n[31&o[16+(0|o[e>>2])>>2]](e,76,r),c=0|o[r+8>>2],o[t+12>>2]=0|Sn[31&o[28+(0|o[e>>2])>>2]](e,c),(0|o[t+16>>2])>0)for(a=0|o[i+24>>2],f=0;;){if(s[c+72>>2]=+s[a+(80*f|0)+72>>2],o[c+64>>2]=0|Sn[31&o[28+(0|o[e>>2])>>2]](e,0|o[a+(80*f|0)+64>>2]),0|Sn[31&o[24+(0|o[e>>2])>>2]](e,0|o[(0|o[i+24>>2])+(80*f|0)+64>>2])||(a=0|o[16+(0|o[e>>2])>>2],h=0|o[(0|o[i+24>>2])+(80*f|0)+64>>2],h=0|an[127&o[52+(0|o[h>>2])>>2]](h),h=0|_n[31&a](e,h,1),a=0|o[(0|o[i+24>>2])+(80*f|0)+64>>2],a=0|_n[31&o[56+(0|o[a>>2])>>2]](a,0|o[h+8>>2],e),tn[31&o[20+(0|o[e>>2])>>2]](e,h,a,1346455635,0|o[(0|o[i+24>>2])+(80*f|0)+64>>2])),a=0|o[i+24>>2],o[c+68>>2]=o[a+(80*f|0)+68>>2],s[c>>2]=+s[a+(80*f|0)>>2],s[c+4>>2]=+s[a+(80*f|0)+4>>2],s[c+8>>2]=+s[a+(80*f|0)+8>>2],s[c+12>>2]=+s[a+(80*f|0)+12>>2],s[c+16>>2]=+s[a+(80*f|0)+16>>2],s[c+20>>2]=+s[a+(80*f|0)+20>>2],s[c+24>>2]=+s[a+(80*f|0)+24>>2],s[c+28>>2]=+s[a+(80*f|0)+28>>2],s[c+32>>2]=+s[a+(80*f|0)+32>>2],s[c+36>>2]=+s[a+(80*f|0)+36>>2],s[c+40>>2]=+s[a+(80*f|0)+40>>2],s[c+44>>2]=+s[a+(80*f|0)+44>>2],s[c+48>>2]=+s[a+(80*f|0)+48>>2],s[c+52>>2]=+s[a+(80*f|0)+52>>2],s[c+56>>2]=+s[a+(80*f|0)+56>>2],s[c+60>>2]=+s[a+(80*f|0)+60>>2],(0|(f=f+1|0))>=(0|o[t+16>>2])){t=e;break}c=c+76|0}else t=e;return tn[31&o[20+(0|o[t>>2])>>2]](e,r,8728,1497453121,0|o[r+8>>2]),u=n,8760},function(i,t,e){var n,r,f;return i|=0,t|=0,n=u,r=0|Sn[31&o[40+(0|o[(e|=0)>>2])>>2]](e,i),f=0|Sn[31&o[28+(0|o[e>>2])>>2]](e,r),o[t>>2]=f,0|f&&on[127&o[48+(0|o[e>>2])>>2]](e,r),o[t+4>>2]=o[i+4>>2],s[t+28>>2]=+s[i+28>>2],s[t+32>>2]=+s[i+32>>2],s[t+36>>2]=+s[i+36>>2],s[t+40>>2]=+s[i+40>>2],s[t+12>>2]=+s[i+12>>2],s[t+16>>2]=+s[i+16>>2],s[t+20>>2]=+s[i+20>>2],s[t+24>>2]=+s[i+24>>2],s[t+44>>2]=+s[i+44>>2],o[t+52>>2]=o[i+68>>2],u=n,9264},function(i,t,e){var n,r,f;return i|=0,t|=0,n=u,r=0|Sn[31&o[40+(0|o[(e|=0)>>2])>>2]](e,i),f=0|Sn[31&o[28+(0|o[e>>2])>>2]](e,r),o[t>>2]=f,0|f&&on[127&o[48+(0|o[e>>2])>>2]](e,r),o[t+4>>2]=o[i+4>>2],s[t+28>>2]=+s[i+28>>2],s[t+32>>2]=+s[i+32>>2],s[t+36>>2]=+s[i+36>>2],s[t+40>>2]=+s[i+40>>2],s[t+12>>2]=+s[i+12>>2],s[t+16>>2]=+s[i+16>>2],s[t+20>>2]=+s[i+20>>2],s[t+24>>2]=+s[i+24>>2],s[t+44>>2]=+s[i+44>>2],o[t+52>>2]=o[i+52>>2],u=n,10048},function(i,t,e){var n;i|=0,t|=0,e|=0,n=u;do{if(!(8==(0|t)&8==(0|e))){if(8==(0|t)&1==(0|e)){i=i+76|0;break}if(1==(0|t)&8==(0|e)){i=i+80|0;break}if(!(e|t|0)){i=i+72|0;break}if((0|t)<20&28==(0|e)){i=i+88|0;break}if((0|e)<20&28==(0|t)){i=i+84|0;break}if((0|t)<20){if((0|e)<20){i=i+32|0;break}if((e+-21|0)>>>0<9){i=i+36|0;break}}else if((0|e)<20&&(t+-21|0)>>>0<9){i=i+40|0;break}if(31==(0|t)){if(31==(0|e)){i=i+48|0;break}i=i+44|0;break}if(31==(0|e)){i=i+52|0;break}i=i+56|0;break}i=i+60|0}while(0);return u=n,0|o[i>>2]},function(i,t,e){i|=0,e|=0;var n,a=0,c=0,h=0,l=0,d=0;if(n=u,s[(t|=0)+16>>2]=+s[i+20>>2],s[t+20>>2]=+s[i+24>>2],s[t+24>>2]=+s[i+28>>2],s[t+28>>2]=+s[i+32>>2],s[t>>2]=+s[i+4>>2],s[t+4>>2]=+s[i+8>>2],s[t+8>>2]=+s[i+12>>2],s[t+12>>2]=+s[i+16>>2],s[t+32>>2]=+s[i+36>>2],s[t+36>>2]=+s[i+40>>2],s[t+40>>2]=+s[i+44>>2],s[t+44>>2]=+s[i+48>>2],o[t+48>>2]=o[i+56>>2],o[t+52>>2]=0|f[i+60|0],o[t+56>>2]=o[i+88>>2],0|o[i+88>>2]){if(d=0|Sn[31&o[28+(0|o[e>>2])>>2]](e,0|o[i+96>>2]),o[t+64>>2]=d,0|d){if(d=0|o[i+88>>2],a=0|_n[31&o[16+(0|o[e>>2])>>2]](e,48,d),(0|d)>0)for(c=0|o[i+96>>2],l=0,h=0|o[a+8>>2];s[h+16>>2]=+s[c+(l<<6)+16>>2],s[h+20>>2]=+s[c+(l<<6)+20>>2],s[h+24>>2]=+s[c+(l<<6)+24>>2],s[h+28>>2]=+s[c+(l<<6)+28>>2],s[h>>2]=+s[c+(l<<6)>>2],s[h+4>>2]=+s[c+(l<<6)+4>>2],s[h+8>>2]=+s[c+(l<<6)+8>>2],s[h+12>>2]=+s[c+(l<<6)+12>>2],o[h+32>>2]=o[c+(l<<6)+32>>2],o[h+36>>2]=o[c+(l<<6)+36>>2],o[h+40>>2]=o[c+(l<<6)+40>>2],(0|(l=l+1|0))!=(0|d);)h=h+48|0;else c=0|o[i+96>>2];tn[31&o[20+(0|o[e>>2])>>2]](e,a,14448,1497453121,c)}}else o[t+64>>2]=0;if(o[t+60>>2]=o[i+128>>2],0|o[i+128>>2]){if(d=0|Sn[31&o[28+(0|o[e>>2])>>2]](e,0|o[i+136>>2]),o[t+68>>2]=d,0|d){if(c=0|o[i+128>>2],a=0|_n[31&o[16+(0|o[e>>2])>>2]](e,16,c),(0|c)>0)for(h=0|o[i+136>>2],d=0,l=0|o[a+8>>2];o[l+12>>2]=o[h+(d<<4)+12>>2],r[l+6>>1]=0|r[h+(d<<4)+6>>1],r[l+8>>1]=0|r[h+(d<<4)+8>>1],r[l+10>>1]=0|r[h+(d<<4)+10>>1],r[l>>1]=0|r[h+(d<<4)>>1],r[l+2>>1]=0|r[h+(d<<4)+2>>1],r[l+4>>1]=0|r[h+(d<<4)+4>>1],(0|(d=d+1|0))!=(0|c);)l=l+16|0;else h=0|o[i+136>>2];tn[31&o[20+(0|o[e>>2])>>2]](e,a,14472,1497453121,h)}}else o[t+68>>2]=0;if(o[t+76>>2]=o[i+144>>2],o[t+80>>2]=o[i+152>>2],!(0|o[i+152>>2]))return o[t+72>>2]=0,u=n,14520;if(d=0|Sn[31&o[28+(0|o[e>>2])>>2]](e,0|o[i+160>>2]),o[t+72>>2]=d,!(0|d))return u=n,14520;if(a=0|o[i+152>>2],t=0|_n[31&o[16+(0|o[e>>2])>>2]](e,20,a),(0|a)>0)for(i=0|o[i+160>>2],h=0,c=0|o[t+8>>2];r[c+14>>1]=0|r[i+(h<<5)+6>>1],r[c+16>>1]=0|r[i+(h<<5)+8>>1],r[c+18>>1]=0|r[i+(h<<5)+10>>1],r[c+8>>1]=0|r[i+(h<<5)>>1],r[c+10>>1]=0|r[i+(h<<5)+2>>1],r[c+12>>1]=0|r[i+(h<<5)+4>>1],o[c>>2]=o[i+(h<<5)+12>>2],o[c+4>>2]=o[i+(h<<5)+16>>2],(0|(h=h+1|0))!=(0|a);)c=c+20|0;else i=0|o[i+160>>2];return tn[31&o[20+(0|o[e>>2])>>2]](e,t,14496,1497453121,i),u=n,14520},function(i,t,e){i|=0,t|=0,e|=0;var f,a,s=0,c=0,h=0,l=0,d=0;if(f=u,o[3434]=1+(0|o[3434]),0|(s=0|o[i+24>>2])){if(!(0|_n[31&o[8+(0|o[s>>2])>>2]](s,t,e)))return u=f,0|(d=0)}else{if(!((r[e+6>>1]&r[t+4>>1])<<16>>16))return u=f,0|(d=0);if(!((r[t+6>>1]&r[e+4>>1])<<16>>16))return u=f,0|(d=0)}s=(c=(0|o[t+12>>2])>(0|o[e+12>>2]))?e:t,e=c?t:e,c=0|o[s+12>>2],t=((t=9*(((l=0|o[e+12>>2])<<16|c)+~((l<<16|c)<<15)>>10^(l<<16|c)+~((l<<16|c)<<15))|0)>>6^t)+~((t>>6^t)<<11)>>16^(t>>6^t)+~((t>>6^t)<<11),a=0|o[i+12>>2],d=0|o[(0|o[i+44>>2])+((t&a+-1)<<2)>>2];i:do{if(-1!=(0|d)){for(h=0|o[i+16>>2];(0|o[12+(0|o[h+(d<<4)>>2])>>2])!=(0|c)||(0|o[12+(0|o[h+(d<<4)+4>>2])>>2])!=(0|l);)if(-1==(0|(d=0|o[(0|o[i+64>>2])+(d<<2)>>2])))break i;if(0|(c=h+(d<<4)|0))return u=f,0|(d=c)}}while(0);return h=0|o[i+8>>2],c=0|function(i){var t,e,r,f=0,a=0,s=0,c=0;if(r=u,(0|(t=0|o[4+(i|=0)>>2]))!=(0|o[i+8>>2]))return s=(s=t)+1|0,o[i+4>>2]=s,s=0|o[(s=i+12|0)>>2],u=r,0|s+(t<<4);if((0|t)>=(0|(e=0|t?t<<1:1)))return s=(s=t)+1|0,o[i+4>>2]=s,s=0|o[(s=i+12|0)>>2],u=r,0|s+(t<<4);if(0|e?(o[4546]=1+(0|o[4546]),0|(f=0|ye(16+(e<<4|3)|0))?(o[(f+19&-16)-4>>2]=f,f=f+19&-16):f=0,a=0|o[i+4>>2]):(a=t,f=0),(0|a)>0){s=0;do{c=0|o[i+12>>2],o[f+(s<<4)>>2]=o[c+(s<<4)>>2],o[f+(s<<4)+4>>2]=o[c+(s<<4)+4>>2],o[f+(s<<4)+8>>2]=o[c+(s<<4)+8>>2],o[f+(s<<4)+12>>2]=o[c+(s<<4)+12>>2],s=s+1|0}while((0|s)!=(0|a))}return 0|(s=0|o[i+12>>2])&&(0|n[i+16|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[s+-4>>2]),a=0|o[i+4>>2]),o[i+12>>2]=0),n[i+16|0]=1,o[i+12>>2]=f,o[i+8>>2]=e,c=(c=a)+1|0,o[i+4>>2]=c,c=0|o[(c=i+12|0)>>2],u=r,0|c+(t<<4)}(i+4|0),0|(l=0|o[i+72>>2])&&_n[31&o[8+(0|o[l>>2])>>2]](l,s,e),(0|a)<(0|o[i+12>>2])?(st(i),t=(0|o[i+12>>2])-1&t):t&=a+-1,(0|o[s+12>>2])<(0|o[e+12>>2])?(o[c>>2]=s,o[c+4>>2]=e):(o[c>>2]=e,o[c+4>>2]=s),o[c+8>>2]=0,o[c+12>>2]=0,d=(0|o[i+44>>2])+(t<<2)|0,o[(0|o[i+64>>2])+(h<<2)>>2]=o[d>>2],o[d>>2]=h,u=f,0|(d=c)},function(i,t,e){i|=0,t|=0,e|=0;var n,r=0,f=0,a=0;if(n=u,o[3436]=1+(0|o[3436]),a=(0|o[t+12>>2])>(0|o[e+12>>2]),f=0|o[(a?e:t)+12>>2],(0|(e=(((e=9*(((t=0|o[(a?t:e)+12>>2])<<16|f)+~((t<<16|f)<<15)>>10^(t<<16|f)+~((t<<16|f)<<15))|0)>>6^e)+~((e>>6^e)<<11)>>16^(e>>6^e)+~((e>>6^e)<<11))&(0|o[i+12>>2])-1))>=(0|o[i+36>>2]))return u=n,0|(a=0);if(-1==(0|(a=0|o[(0|o[i+44>>2])+(e<<2)>>2])))return u=n,0|(a=0);for(e=0|o[i+16>>2];(0|o[12+(0|o[e+(a<<4)>>2])>>2])!=(0|f)||(0|o[12+(0|o[e+(a<<4)+4>>2])>>2])!=(0|t);)if(-1==(0|(a=0|o[(0|o[i+64>>2])+(a<<2)>>2]))){f=0,r=8;break}return 8==(0|r)?(u=n,0|f):(u=n,0|(a=e+(a<<4)|0))},function(i,t,e){t|=0,e|=0;var f,a,h=0,l=0,d=0,v=0,b=0,_=0,w=0,p=0,m=0,y=0,k=0,C=0,j=0,S=0;if(f=u,u=u+32|0,d=0|an[127&o[28+(0|o[(i|=0)>>2])>>2]](i),o[t+20>>2]=d,o[t>>2]=0,!(0|d))return C=t+4|0,j=+s[(k=i+4|0)>>2],s[C>>2]=j,j=+s[(C=i+8|0)>>2],s[(C=t+8|0)>>2]=j,j=+s[(C=i+12|0)>>2],s[(C=t+12|0)>>2]=j,j=+s[(C=i+16|0)>>2],s[(C=t+16|0)>>2]=j,u=f,17992;if(d=0|_n[31&o[16+(0|o[e>>2])>>2]](e,32,d),b=0|o[d+8>>2],o[t>>2]=0|Sn[31&o[28+(0|o[e>>2])>>2]](e,b),(0|(a=0|an[127&o[28+(0|o[i>>2])>>2]](i)))>0)for(v=0;;){if(jn[3&o[16+(0|o[i>>2])>>2]](i,f+28|0,f+4|0,f+16|0,f+8|0,f+24|0,f+20|0,f,f+12|0,v),o[b+24>>2]=o[f>>2],o[b+28>>2]=o[f+4>>2],p=b+8|0,m=b+12|0,w=b+16|0,_=b+4|0,o[b+0>>2]=0,o[b+4>>2]=0,o[b+8>>2]=0,o[b+12>>2]=0,o[b+16>>2]=0,o[b+20>>2]=0,2==(0|(y=0|o[f+12>>2]))){if(0|(w=0|o[f>>2])){if(w=0|_n[31&o[16+(0|o[e>>2])>>2]](e,4,3*w|0),m=0|o[w+8>>2],o[p>>2]=0|Sn[31&o[28+(0|o[e>>2])>>2]](e,m),(0|o[f>>2])>0){y=0|o[f+24>>2],p=0;do{k=0|g(0|o[f+20>>2],p),o[m+((C=3*p|0)<<2)>>2]=o[y+k>>2],o[m+(C+1<<2)>>2]=o[y+(k+4)>>2],o[m+(C+2<<2)>>2]=o[y+(k+8)>>2],p=p+1|0}while((0|p)<(0|o[f>>2]))}tn[31&o[20+(0|o[e>>2])>>2]](e,w,17856,1497453121,0|o[w+8>>2])}}else if(5==(0|y)){if(0|(p=0|o[f>>2])){if(m=0|_n[31&o[16+(0|o[e>>2])>>2]](e,4,p),p=0|o[m+8>>2],o[w>>2]=0|Sn[31&o[28+(0|o[e>>2])>>2]](e,p),(0|o[f>>2])>0){w=0;do{k=0|o[f+24>>2],C=0|g(0|o[f+20>>2],w),n[p+(w<<2)|0]=0|n[k+C|0],n[p+(w<<2)+1|0]=0|n[k+(C+1)|0],n[p+(w<<2)+2|0]=0|n[k+(C+2)|0],w=w+1|0}while((0|w)<(0|o[f>>2]))}tn[31&o[20+(0|o[e>>2])>>2]](e,m,17904,1497453121,0|o[m+8>>2])}}else if(3==(0|y)&&0|(h=0|o[f>>2])){if(p=0|_n[31&o[16+(0|o[e>>2])>>2]](e,8,h),w=0|o[p+8>>2],o[m>>2]=0|Sn[31&o[28+(0|o[e>>2])>>2]](e,w),(0|(m=0|o[f>>2]))>0){k=0|o[f+24>>2],y=0|o[f+20>>2],C=0;do{S=0|g(y,C),r[w+(C<<3)>>1]=0|r[k+S>>1],r[w+(C<<3)+2>>1]=0|r[k+(S+2)>>1],r[w+(C<<3)+4>>1]=0|r[k+(S+4)>>1],C=C+1|0}while((0|C)<(0|m))}tn[31&o[20+(0|o[e>>2])>>2]](e,p,17872,1497453121,0|o[p+8>>2])}if(0|(w=0|o[f+16>>2])){if(1==(0|w)&&0|(l=0|o[f+4>>2])){if(w=0|_n[31&o[16+(0|o[e>>2])>>2]](e,32,l),p=0|o[w+8>>2],o[_>>2]=0|Sn[31&o[28+(0|o[e>>2])>>2]](e,p),(0|(m=0|o[f+4>>2]))>0){_=0|o[f+28>>2],y=0|o[f+8>>2],k=0;do{S=0|g(y,k),c[p+(k<<5)>>3]=+c[_+S>>3],c[p+(k<<5)+8>>3]=+c[_+(S+8)>>3],c[p+(k<<5)+16>>3]=+c[_+(S+16)>>3],k=k+1|0}while((0|k)<(0|m))}tn[31&o[20+(0|o[e>>2])>>2]](e,w,17952,1497453121,0|o[w+8>>2])}}else if(0|(_=0|o[f+4>>2])){if(y=0|_n[31&o[16+(0|o[e>>2])>>2]](e,16,_),m=0|o[y+8>>2],o[b>>2]=0|Sn[31&o[28+(0|o[e>>2])>>2]](e,m),(0|(p=0|o[f+4>>2]))>0){_=0|o[f+28>>2],w=0|o[f+8>>2],k=0;do{S=0|g(w,k),s[m+(k<<4)>>2]=+s[_+S>>2],s[m+(k<<4)+4>>2]=+s[_+(S+4)>>2],s[m+(k<<4)+8>>2]=+s[_+(S+8)>>2],k=k+1|0}while((0|k)<(0|p))}tn[31&o[20+(0|o[e>>2])>>2]](e,y,17928,1497453121,0|o[y+8>>2])}if(on[127&o[24+(0|o[i>>2])>>2]](i,v),(0|(v=v+1|0))==(0|a)){h=e;break}b=b+32|0}else h=e;return tn[31&o[20+(0|o[h>>2])>>2]](e,d,17976,1497453121,0|o[d+8>>2]),S=t+4|0,j=+s[(C=i+4|0)>>2],s[S>>2]=j,j=+s[(S=i+8|0)>>2],s[(S=t+8|0)>>2]=j,j=+s[(S=i+12|0)>>2],s[(S=t+12|0)>>2]=j,j=+s[(S=i+16|0)>>2],s[(S=t+16|0)>>2]=j,u=f,17992},function(i,t,e){var n,r,f;return i|=0,t|=0,n=u,r=0|Sn[31&o[40+(0|o[(e|=0)>>2])>>2]](e,i),f=0|Sn[31&o[28+(0|o[e>>2])>>2]](e,r),o[t>>2]=f,0|f&&on[127&o[48+(0|o[e>>2])>>2]](e,r),o[t+4>>2]=o[i+4>>2],u=n,6304},function(i,t,e){i|=0,t|=0,e|=0;var n,r,f,a=0,s=0,c=0,h=0,l=0,d=0,v=0;if(n=u,o[4434]=1+(0|o[4434]),c=9*((e<<16|t)+~((e<<16|t)<<15)>>10^(e<<16|t)+~((e<<16|t)<<15))|0,c=(r=0|o[i+40>>2])+(((0|o[i+12>>2])-1&((c>>6^c)+~((c>>6^c)<<11)>>16^(c>>6^c)+~((c>>6^c)<<11)))<<2)|0,-1==(0|(h=0|o[c>>2])))return u=n,0|(v=0);for(f=0|o[i+16>>2],s=h;(0|o[f+(12*s|0)>>2])!=(0|t)||(0|o[f+(12*s|0)+4>>2])!=(0|e);)if(-1==(0|(s=0|o[(0|o[i+60>>2])+(s<<2)>>2]))){i=0,a=22;break}if(22==(0|a))return u=n,0|i;if(!(f+(12*s|0)|0))return u=n,0|(v=0);if(t=0|o[f+(12*s|0)+8>>2],s=(12*s|0)/12|0,e=0|o[i+60>>2],(0|h)!=(0|s)){for(;(0|(d=0|o[(l=e+(h<<2)|0)>>2]))!=(0|s);)h=d;d=0|o[e+(s<<2)>>2],-1==(0|h)?a=12:o[l>>2]=d}else d=0|o[e+(h<<2)>>2],a=12;if(12==(0|a)&&(o[c>>2]=d),(0|(h=(0|o[i+8>>2])-1|0))==(0|s))return o[i+8>>2]=s,u=n,0|(v=t);if(c=(((c=9*((c=o[f+(12*h|0)+4>>2]<<16|o[f+(12*h|0)>>2])+~(c<<15)>>10^c+~(c<<15))|0)>>6^c)+~((c>>6^c)<<11)>>16^(c>>6^c)+~((c>>6^c)<<11))&(0|o[i+12>>2])-1,(0|(d=0|o[r+(c<<2)>>2]))!=(0|h)){for(;(0|(v=0|o[(l=e+(d<<2)|0)>>2]))!=(0|h);)d=v;e=0|o[e+(h<<2)>>2],-1==(0|d)?a=20:o[l>>2]=e}else e=0|o[e+(h<<2)>>2],a=20;return 20==(0|a)&&(o[r+(c<<2)>>2]=e),o[f+(12*s|0)+0>>2]=o[f+(12*h|0)+0>>2],o[f+(12*s|0)+4>>2]=o[f+(12*h|0)+4>>2],o[f+(12*s|0)+8>>2]=o[f+(12*h|0)+8>>2],v=(0|o[i+40>>2])+(c<<2)|0,o[(0|o[i+60>>2])+(s<<2)>>2]=o[v>>2],o[v>>2]=s,o[i+8>>2]=(0|o[i+8>>2])-1,u=n,0|(v=t)},function(i,t,e){i|=0,t|=0,e|=0;var r,f=0,a=0,s=0,c=0,h=0,l=0,d=0,v=0,b=0;r=u,o[4436]=1+(0|o[4436]),a=((a=9*((e<<16|t)+~((e<<16|t)<<15)>>10^(e<<16|t)+~((e<<16|t)<<15))|0)>>6^a)+~((a>>6^a)<<11)>>16^(a>>6^a)+~((a>>6^a)<<11),f=0|o[i+12>>2],c=0|o[(0|o[i+40>>2])+((f+-1&a)<<2)>>2];i:do{if(-1!=(0|c)){for(s=0|o[i+16>>2];(0|o[s+(12*c|0)>>2])!=(0|t)||(0|o[s+(12*c|0)+4>>2])!=(0|e);)if(-1==(0|(c=0|o[(0|o[i+60>>2])+(c<<2)>>2])))break i;if(0|(s=s+(12*c|0)|0))return u=r,0|(v=s)}}while(0);if((0|(s=0|o[i+8>>2]))==(0|f))if((0|f)<(0|(c=0|f?f<<1:1))){if(0|c?(o[4546]=1+(0|o[4546]),0|(h=0|ye(16+(12*c|3)|0))?(o[(h+19&-16)-4>>2]=h,h=h+19&-16):h=0,l=0|o[i+8>>2]):(l=f,h=0),(0|l)>0){v=0;do{0|(d=h+(12*v|0)|0)&&(b=(0|o[i+16>>2])+(12*v|0)|0,o[d+0>>2]=o[b+0>>2],o[d+4>>2]=o[b+4>>2],o[d+8>>2]=o[b+8>>2]),v=v+1|0}while((0|v)!=(0|l))}0|(l=0|o[i+16>>2])&&(0|n[i+20|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[l+-4>>2])),o[i+16>>2]=0),n[i+20|0]=1,o[i+16>>2]=h,o[i+12>>2]=c,h=0|o[i+8>>2]}else h=f,c=f;else h=s,c=f;return o[i+8>>2]=h+1,h=0|o[i+16>>2],(0|f)<(0|c)?(he(i),f=(0|o[i+12>>2])-1&a):f=f+-1&a,h+(12*s|0)|0?(o[h+(12*s|0)>>2]=t,o[h+(12*s|0)+4>>2]=e,o[h+(12*s|0)+8>>2]=0,t=h+(12*s|0)|0):t=0,o[t+8>>2]=0,b=(0|o[i+40>>2])+(f<<2)|0,o[(0|o[i+60>>2])+(s<<2)>>2]=o[b>>2],o[b>>2]=s,u=r,0|(b=t)},function(i,t,e){e|=0;var n,r,f=0;if(n=u,u=u+64|0,(0|(i|=0))==(0|(t|=0)))return u=n,0|(f=1);if(!(0|t))return u=n,0|(f=0);if(!(0|(t=0|Dt(t,18952))))return u=n,0|(f=0);r=(f=n+0|0)+56|0;do{o[f>>2]=0,f=f+4|0}while((0|f)<(0|r));return o[n>>2]=t,o[n+8>>2]=i,o[n+12>>2]=-1,o[n+48>>2]=1,Vn[63&o[28+(0|o[t>>2])>>2]](t,n,0|o[e>>2],1),1!=(0|o[n+24>>2])?(u=n,0|(f=0)):(o[e>>2]=o[n+16>>2],u=n,0|(f=1))},Fe,Fe,Fe,Fe,Fe,Fe,Fe],wn=[Ve,function(i,t,e,r,f,a){i|=0,t|=0,e|=0,r|=0,f|=0;var s,c=0,h=0,l=0,d=0,v=0,b=0,_=0,w=0;if(s=u,(0|(a|=0))<0)return w=0|o[i+8>>2],Mn[3&o[12+(0|o[w>>2])>>2]](w,t,e,r,f,0|o[i+12>>2],0|o[i+16>>2],0|o[i+4>>2],0|o[i+20>>2],0|o[i+24>>2]),void(u=s);l=0|o[i+16>>2];i:do{if((0|l)>0)for(h=0|o[i+12>>2],v=0;;){if(d=0|o[(c=h+(v<<2)|0)>>2],(0|(b=0|o[208+(0|o[d+28>>2])>>2]))>-1||(b=0|o[208+(0|o[d+32>>2])>>2]),d=v+1|0,(0|b)==(0|a))break i;if(!((0|d)<(0|l))){v=d,c=0;break}v=d}else v=0,c=0}while(0);if((0|v)<(0|l)){d=0|o[i+12>>2],h=0;do{_=0|o[d+(v<<2)>>2],(0|(b=0|o[208+(0|o[_+28>>2])>>2]))>-1||(b=0|o[208+(0|o[_+32>>2])>>2]),h=((0|b)==(0|a)&1)+h|0,v=v+1|0}while((0|v)<(0|l))}else h=0;if(l=0|o[i+4>>2],(0|o[l+72>>2])<2)return w=0|o[i+8>>2],Mn[3&o[12+(0|o[w>>2])>>2]](w,t,e,r,f,c,h,l,0|o[i+20>>2],0|o[i+24>>2]),void(u=s);if((0|e)>0)for(v=0|o[i+32>>2],b=0|o[i+36>>2],a=0;;){if(l=t+(a<<2)|0,(0|v)==(0|b))if((0|b)<(0|(d=0|b?b<<1:1))){if(0|d?(o[4546]=1+(0|o[4546]),0|(v=0|ye(16+(d<<2|3)|0))?(o[(v+19&-16)-4>>2]=v,v=v+19&-16):v=0,b=0|o[i+32>>2]):v=0,(0|b)>0){_=0;do{0|(w=v+(_<<2)|0)&&(o[w>>2]=o[(0|o[i+40>>2])+(_<<2)>>2]),_=_+1|0}while((0|_)!=(0|b))}0|(_=0|o[i+40>>2])&&(0|n[i+44|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[_+-4>>2]),b=0|o[i+32>>2]),o[i+40>>2]=0),n[i+44|0]=1,o[i+40>>2]=v,o[i+36>>2]=d,v=b}else v=b,d=b;else d=b;if(0|(b=(0|o[i+40>>2])+(v<<2)|0)&&(o[b>>2]=o[l>>2]),v=v+1|0,o[i+32>>2]=v,(0|(a=a+1|0))==(0|e))break;b=d}if((0|f)>0)for(a=0|o[i+52>>2],d=0|o[i+56>>2],e=0;;){if(t=r+(e<<2)|0,(0|a)==(0|d))if((0|d)<(0|(l=0|d?d<<1:1))){if(0|l?(o[4546]=1+(0|o[4546]),0|(a=0|ye(16+(l<<2|3)|0))?(o[(a+19&-16)-4>>2]=a,a=a+19&-16):a=0,d=0|o[i+52>>2]):a=0,(0|d)>0){v=0;do{0|(b=a+(v<<2)|0)&&(o[b>>2]=o[(0|o[i+60>>2])+(v<<2)>>2]),v=v+1|0}while((0|v)!=(0|d))}0|(v=0|o[i+60>>2])&&(0|n[i+64|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[v+-4>>2]),d=0|o[i+52>>2]),o[i+60>>2]=0),n[i+64|0]=1,o[i+60>>2]=a,o[i+56>>2]=l,a=d}else a=d,l=d;else l=d;if(0|(d=(0|o[i+60>>2])+(a<<2)|0)&&(o[d>>2]=o[t>>2]),a=a+1|0,o[i+52>>2]=a,(0|(e=e+1|0))==(0|f))break;d=l}if((0|h)>0)for(e=0|o[i+72>>2],l=0|o[i+76>>2],r=0;;){if(f=c+(r<<2)|0,(0|e)==(0|l))if((0|l)<(0|(t=0|l?l<<1:1))){if(0|t?(o[4546]=1+(0|o[4546]),0|(e=0|ye(16+(t<<2|3)|0))?(o[(e+19&-16)-4>>2]=e,e=e+19&-16):e=0,l=0|o[i+72>>2]):e=0,(0|l)>0){a=0;do{0|(d=e+(a<<2)|0)&&(o[d>>2]=o[(0|o[i+80>>2])+(a<<2)>>2]),a=a+1|0}while((0|a)!=(0|l))}0|(a=0|o[i+80>>2])&&(0|n[i+84|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[a+-4>>2]),l=0|o[i+72>>2]),o[i+80>>2]=0),n[i+84|0]=1,o[i+80>>2]=e,o[i+76>>2]=t,e=l}else e=l,t=l;else t=l;if(0|(l=(0|o[i+80>>2])+(e<<2)|0)&&(o[l>>2]=o[f>>2]),e=e+1|0,o[i+72>>2]=e,(0|(r=r+1|0))==(0|h))break;l=t}else e=0|o[i+72>>2];((0|o[i+52>>2])+e|0)<=(0|o[72+(0|o[i+4>>2])>>2])||yt(i),u=s},function(i,t,e,n,f,s){t|=0,e|=0,n|=0,f|=0,s|=0;var c,h=0;if(c=u,0|(h=0|o[(i|=0)+108>>2]))return wn[7&o[24+(0|o[h>>2])>>2]](h,t,e,n,f,s),void(u=c);if((65535&(h=0|r[i+56>>1]))<<1>>>0>1){for(f=1,s=2;e=0|o[i+68>>2],1&r[e+(f<<2)>>1]&&(Sn[31&o[8+(0|o[n>>2])>>2]](n,(0|o[i+60>>2])+(a[e+(f<<2)+2>>1]<<6)|0),h=0|r[i+56>>1]),(f=65535&s)>>>0<((65535&h)<<1|1)>>>0;)s=s+1<<16>>16;u=c}else u=c},function(i,t,e,n,r,f){i|=0,t|=0,e|=0,n|=0,r|=0,f|=0,e=u,u=u+16|0,o[e>>2]=10280,o[e+4>>2]=n,Ai(i+4|0,0|o[i+4>>2],t,n+4|0,n+20|0,+s[n+32>>2],r,f,e),Ai(i+64|0,0|o[i+64>>2],t,n+4|0,n+20|0,+s[n+32>>2],r,f,e),u=e},function(i,t,e,r,f,a){if(i|=0,e|=0,r|=0,f|=0,a|=0,a=u,(0|o[(t|=0)+8>>2])==(0|i))if(n[t+53|0]=1,(0|o[t+4>>2])==(0|r)){if(n[t+52|0]=1,!(0|(r=0|o[t+16>>2])))return o[t+16>>2]=e,o[t+24>>2]=f,o[t+36>>2]=1,1!=(0|f)||1!=(0|o[t+48>>2])||(n[t+54|0]=1),void(u=a);if((0|r)!=(0|e))return o[t+36>>2]=1+(0|o[t+36>>2]),n[t+54|0]=1,void(u=a);2==(0|(e=0|o[t+24>>2]))?o[t+24>>2]=f:f=e,1==(0|f)&&1==(0|o[t+48>>2])?(n[t+54|0]=1,u=a):u=a}else u=a;else u=a},function(i,t,e,r,f,a){var s;if(e|=0,r|=0,f|=0,a|=0,s=u,(0|(i|=0))!=(0|o[(t|=0)+8>>2]))return i=0|o[i+8>>2],wn[7&o[20+(0|o[i>>2])>>2]](i,t,e,r,f,a),void(u=s);if(n[t+53|0]=1,(0|o[t+4>>2])==(0|r)){if(n[t+52|0]=1,!(0|(a=0|o[t+16>>2])))return o[t+16>>2]=e,o[t+24>>2]=f,o[t+36>>2]=1,1!=(0|f)||1!=(0|o[t+48>>2])||(n[t+54|0]=1),void(u=s);if((0|a)!=(0|e))return o[t+36>>2]=1+(0|o[t+36>>2]),n[t+54|0]=1,void(u=s);2==(0|(e=0|o[t+24>>2]))?o[t+24>>2]=f:f=e,1==(0|f)&&1==(0|o[t+48>>2])?(n[t+54|0]=1,u=s):u=s}else u=s},function(i,t,e,r,f,a){e|=0,r|=0,f|=0,a|=0;var s,c=0,h=0,l=0,d=0,v=0,b=0,_=0;if(s=u,(0|(i|=0))!=(0|o[(t|=0)+8>>2])){h=0|n[t+52|0],l=0|n[t+53|0],c=0|o[i+12>>2],n[t+52|0]=0,n[t+53|0]=0,v=1&(d=0|o[i+20>>2])?0|o[(0|o[r>>2])+(d>>8)>>2]:d>>8,b=0|o[i+16>>2],wn[7&o[20+(0|o[b>>2])>>2]](b,t,e,r+v|0,2&d?f:2,a);i:do{if((0|c)>1){d=i+24|0;do{if(0|n[t+54|0])break i;if(0|n[t+52|0]){if(1==(0|o[t+24>>2]))break i;if(!(2&o[i+8>>2]))break i}else if(0|n[t+53|0]&&!(1&o[i+8>>2]))break i;n[t+52|0]=0,n[t+53|0]=0,b=1&(v=0|o[d+4>>2])?0|o[(0|o[r>>2])+(v>>8)>>2]:v>>8,_=0|o[d>>2],wn[7&o[20+(0|o[_>>2])>>2]](_,t,e,r+b|0,2&v?f:2,a),d=d+8|0}while(d>>>0<(i+(c<<3)+16|0)>>>0)}}while(0);return n[t+52|0]=h,n[t+53|0]=l,void(u=s)}if(n[t+53|0]=1,(0|o[t+4>>2])==(0|r)){if(n[t+52|0]=1,!(0|(c=0|o[t+16>>2])))return o[t+16>>2]=e,o[t+24>>2]=f,o[t+36>>2]=1,1!=(0|f)||1!=(0|o[t+48>>2])||(n[t+54|0]=1),void(u=s);if((0|c)!=(0|e))return o[t+36>>2]=1+(0|o[t+36>>2]),n[t+54|0]=1,void(u=s);2==(0|(e=0|o[t+24>>2]))?o[t+24>>2]=f:f=e,1==(0|f)&&1==(0|o[t+48>>2])?(n[t+54|0]=1,u=s):u=s}else u=s},Ve],pn=[Ue,function(i,t,e){t|=0,e=+e;var n,r,o,f=0,a=0;return n=u,a=+s[(i|=0)+28>>2],f=+s[i+32>>2],r=+s[i+36>>2],(o=+s[t>>2])<=a+e&&o>=-a-e&&(a=+s[t+4>>2])<=f+e&&a>=-f-e&&(f=+s[t+8>>2])<=r+e?(u=n,0|(i=f>=-r-e)):(u=n,0|(i=0))},function(i,t,e){t|=0,e=+e;var n,r,f=0,a=0,c=0,h=0,l=0,d=0,v=0,b=0,w=0,p=0,m=0;if(n=u,u=u+32|0,d=+s[(i|=0)+56>>2],p=+s[i+72>>2]-d,l=+s[i+60>>2],b=+s[i+76>>2]-l,h=+s[i+64>>2],m=+s[i+80>>2]-h,v=+s[i+88>>2]-d,w=+s[i+92>>2]-l,f=+s[i+96>>2]-h,r=(a=1/+_(+((p*w-b*v)*(p*w-b*v)+((b*f-m*w)*(b*f-m*w)+(m*v-p*f)*(m*v-p*f)))))*(b*f-m*w),f=a*(m*v-p*f),a*=p*w-b*v,!((h=+s[t>>2]*r+ +s[t+4>>2]*f+a*+s[t+8>>2]-(r*d+f*l+a*h))>=-e)|!(h<=e))return u=n,0|(c=0);for(c=0;;){if(Vn[63&o[104+(0|o[i>>2])>>2]](i,c,n+16|0,n),d=+s[n+16>>2],m=+s[n>>2]-d,b=+s[n+20>>2],v=+s[n+4>>2]-b,l=+s[n+24>>2],p=+s[n+8>>2]-l,w=1/+_(+((f*m-r*v)*(f*m-r*v)+((a*v-f*p)*(a*v-f*p)+(r*p-a*m)*(r*p-a*m)))),c=c+1|0,+s[t>>2]*w*(a*v-f*p)+ +s[t+4>>2]*w*(r*p-a*m)+(f*m-r*v)*w*+s[t+8>>2]-(l*(f*m-r*v)*w+(d*w*(a*v-f*p)+b*w*(r*p-a*m)))<-e){t=0,i=5;break}if((0|c)>=3){t=1,i=5;break}}return 5==(0|i)?(u=n,0|t):0},Ue],mn=[Ge,function(i){var t,e,n,r=0;return t=u,u=u+32|0,Pn[63&o[12+(0|o[(i|=0)>>2])>>2]](i,t+8|0,t),n=+s[t+8>>2],e=+s[t+12>>2],r=+s[t+16>>2],r=+_(+(n*n+e*e+r*r)),u=t,+(r+ +s[t>>2])},mi,function(i){return+ +s[(i|=0)+12>>2]},function(i){return+ +s[(i|=0)+72>>2]},function(i){var t,e,n;return n=u,e=+s[(i|=0)+28>>2],t=+mn[15&o[48+(0|o[i>>2])>>2]](i),mn[15&o[48+(0|o[i>>2])>>2]](i),mn[15&o[48+(0|o[i>>2])>>2]](i),u=n,+(e+t)},function(i){var t,e,n;return n=u,e=+s[(i|=0)+32>>2],mn[15&o[48+(0|o[i>>2])>>2]](i),t=+mn[15&o[48+(0|o[i>>2])>>2]](i),mn[15&o[48+(0|o[i>>2])>>2]](i),u=n,+(e+t)},function(i){var t,e,n;return n=u,e=+s[(i|=0)+28>>2],t=+mn[15&o[48+(0|o[i>>2])>>2]](i),mn[15&o[48+(0|o[i>>2])>>2]](i),mn[15&o[48+(0|o[i>>2])>>2]](i),u=n,+(e+t)},function(i){return+ +s[(i|=0)+28>>2]*+s[i+12>>2]},Ge,Ge,Ge,Ge,Ge,Ge,Ge],yn=[function(i,t,e,n,r,o){return C(19),0},gi,Pi,J],kn=[We,function(i,t,e,n,r,f){var a;return i|=0,t|=0,e|=0,n=+n,r|=0,f|=0,a=u,u=u+64|0,o[a+48>>2]=r,o[a+52>>2]=f,f=0|o[i+212>>2],+s[f+4>>2]>=n?(o[a>>2]=o[i+216>>2],o[a+4>>2]=a+48,o[a+8>>2]=o[t+0>>2],o[a+12>>2]=o[t+4>>2],o[a+16>>2]=o[t+8>>2],o[a+20>>2]=o[t+12>>2],o[a+24>>2]=o[e+0>>2],o[a+28>>2]=o[e+4>>2],o[a+32>>2]=o[e+8>>2],o[a+36>>2]=o[e+12>>2],s[a+40>>2]=n,n=+xn[7&o[12+(0|o[f>>2])>>2]](f,a,0),u=a,+n):(u=a,+n)},function(i,t,e,n,r,f){var a;return i|=0,t|=0,e|=0,n=+n,r|=0,f|=0,a=u,u=u+64|0,o[a+48>>2]=r,o[a+52>>2]=f,f=0|o[i+212>>2],+s[f+4>>2]>=n?(o[a>>2]=o[i+216>>2],o[a+4>>2]=a+48,o[a+8>>2]=o[t+0>>2],o[a+12>>2]=o[t+4>>2],o[a+16>>2]=o[t+8>>2],o[a+20>>2]=o[t+12>>2],o[a+24>>2]=o[e+0>>2],o[a+28>>2]=o[e+4>>2],o[a+32>>2]=o[e+8>>2],o[a+36>>2]=o[e+12>>2],s[a+40>>2]=n,n=+xn[7&o[12+(0|o[f>>2])>>2]](f,a,1),u=a,+n):(u=a,+n)},We],gn=[function(i,t,e,n,r){e=+e,C(21)}],Cn=[function(i,t,e,n,r,o,f,a,s){C(22)},function(i,t,e,n,r,f,a,s,c){if(i|=0,t|=0,e|=0,n|=0,r|=0,f|=0,a|=0,c|=0,e=u,0|o[(s|=0)+44>>2])if(a=0|o[s+20>>2],256&o[s+64>>2]){if((0|a)<=0)return void(u=e);for(r=1;;){if((0|(f=0|o[i+28>>2]))>0){a=0;do{n=0|o[(0|o[i+116>>2])+(a<<2)>>2],t=0|o[i+36>>2],Ht((c=0|o[i+16>>2])+(244*(0|o[t+(152*n|0)+144>>2])|0)|0,c+(244*(0|o[t+(152*n|0)+148>>2])|0)|0,t+(152*n|0)|0),a=a+1|0}while((0|a)!=(0|f));a=0|o[s+20>>2]}if((0|r)>=(0|a))break;r=r+1|0}u=e}else if((0|a)<=0)u=e;else{for(r=1;;){if((0|(f=0|o[i+28>>2]))>0){a=0;do{n=0|o[(0|o[i+116>>2])+(a<<2)>>2],t=0|o[i+36>>2],Ht((c=0|o[i+16>>2])+(244*(0|o[t+(152*n|0)+144>>2])|0)|0,c+(244*(0|o[t+(152*n|0)+148>>2])|0)|0,t+(152*n|0)|0),a=a+1|0}while((0|a)!=(0|f));a=0|o[s+20>>2]}if((0|r)>=(0|a))break;r=r+1|0}u=e}else u=e}],jn=[ze,function(i,t,e,n,r,f,a,s,c,u){t|=0,e|=0,n|=0,r|=0,f|=0,a|=0,s|=0,c|=0,u|=0,i=0|o[(i|=0)+32>>2],o[e>>2]=o[i+(u<<5)+12>>2],o[t>>2]=o[i+(u<<5)+16>>2],o[n>>2]=o[i+(u<<5)+28>>2],o[r>>2]=o[i+(u<<5)+20>>2],o[s>>2]=o[i+(u<<5)>>2],o[f>>2]=o[i+(u<<5)+4>>2],o[a>>2]=o[i+(u<<5)+8>>2],o[c>>2]=o[i+(u<<5)+24>>2]},function(i,t,e,n,r,f,a,s,c,u){t|=0,e|=0,n|=0,r|=0,f|=0,a|=0,s|=0,c|=0,u|=0,i=0|o[(i|=0)+32>>2],o[e>>2]=o[i+(u<<5)+12>>2],o[t>>2]=o[i+(u<<5)+16>>2],o[n>>2]=o[i+(u<<5)+28>>2],o[r>>2]=o[i+(u<<5)+20>>2],o[s>>2]=o[i+(u<<5)>>2],o[f>>2]=o[i+(u<<5)+4>>2],o[a>>2]=o[i+(u<<5)+8>>2],o[c>>2]=o[i+(u<<5)+24>>2]},ze],Sn=[Xe,function(i,t){var e;return i|=0,e=u,(r[(t|=0)+4>>1]&r[i+14>>1])<<16>>16?(t=!!((r[i+12>>1]&r[t+6>>1])<<16>>16),u=e,0|t):(u=e,0|(t=0))},function(i,t){var e;return i|=0,e=u,(r[(t|=0)+4>>1]&r[i+6>>1])<<16>>16?(t=!!((r[i+4>>1]&r[t+6>>1])<<16>>16),u=e,0|t):(u=e,0|(t=0))},function(i,t){return t|=0,0|o[(0|o[(i|=0)+220>>2])+(t<<2)>>2]},function(i,t){return t|=0,0|o[(0|o[(i|=0)+220>>2])+(t<<2)>>2]},function(i,t){var e,n,f;return i|=0,e=u,(0|(f=0|o[(t|=0)>>2]))==(0|(n=0|o[i+80>>2]))?(u=e,0|(t=0)):(r[i+10>>1]&r[t+4>>1])<<16>>16&&(r[t+6>>1]&r[i+8>>1])<<16>>16?(t=0|o[i+92>>2],t=0|_n[31&o[28+(0|o[t>>2])>>2]](t,n,f),u=e,0|t):(u=e,0|(t=0))},function(i,t){var e;return t|=0,e=u,(r[(i|=0)+10>>1]&r[t+4>>1])<<16>>16?(i=!!((r[t+6>>1]&r[i+8>>1])<<16>>16),u=e,0|i):(u=e,0|(i=0))},function(i,t){i|=0,t|=0;var e,r=0,f=0,a=0;e=u;i:do{if(2&o[t+236>>2]&&(0|(r=0|o[i+488>>2]))>0)for(i=0|o[i+496>>2],f=0;;){if(a=0|o[i+(f<<2)>>2],0|n[a+20|0]){if((0|o[a+28>>2])==(0|t)){t=0;break i}if((0|o[a+32>>2])==(0|t)){t=0;break i}}if((0|(f=f+1|0))>=(0|r)){t=1;break}}else t=1}while(0);return u=e,0|t},function(i,t){t|=0;var e,f=0,c=0,h=0,l=0,d=0,v=0,w=0,p=0,m=0,y=0,k=0,g=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0,L=0,I=0,A=0,D=0,O=0,R=0,P=0,N=0,B=0,F=0,V=0,U=0,G=0,z=0,X=0,$=0,H=0,q=0,K=0,Y=0,Q=0,Z=0,J=0,ii=0,ti=0,ei=0,ni=0,ri=0,oi=0;for(e=u,u=u+336|0,0|(l=0|o[(i|=0)+52>>2])&&(nn[255&o[o[l>>2]>>2]](l),0|(f=0|o[i+52>>2]))&&(o[4548]=1+(0|o[4548]),ke(0|o[f+-4>>2])),o[4546]=1+(0|o[4546]),0|(f=0|ye(151))?(o[(f+19&-16)-4>>2]=f,f=f+19&-16):f=0,o[f>>2]=17664,n[f+20|0]=1,o[f+16>>2]=0,o[f+8>>2]=0,o[f+12>>2]=0,n[f+40|0]=1,o[f+36>>2]=0,o[f+28>>2]=0,o[f+32>>2]=0,n[f+60|0]=1,o[f+56>>2]=0,o[f+48>>2]=0,o[f+52>>2]=0,o[i+52>>2]=f,y=0,l=0,C=0,f=0;!((0|y)>=(0|an[127&o[96+(0|o[i>>2])>>2]](i)));){if((0|l)==(0|C))if((0|C)<(0|(j=0|C?C<<1:1))){if(0|j&&(o[4546]=1+(0|o[4546]),0|(w=0|ye(16+(j<<4|3)|0)))?(o[(w+19&-16)-4>>2]=w,k=w+19&-16):k=0,(0|C)>0){g=0;do{ii=f+(g<<4)|0,o[(ti=k+(g<<4)|0)+0>>2]=o[ii+0>>2],o[ti+4>>2]=o[ii+4>>2],o[ti+8>>2]=o[ii+8>>2],o[ti+12>>2]=o[ii+12>>2],g=g+1|0}while((0|g)!=(0|C))}0|f?(o[4548]=1+(0|o[4548]),ke(0|o[f+-4>>2]),g=C,C=j,f=k):(g=C,C=j,f=k)}else g=C;else g=l;o[(ti=f+(l<<4)|0)+0>>2]=o[e+256>>2],o[ti+4>>2]=o[e+260>>2],o[ti+8>>2]=o[e+264>>2],o[ti+12>>2]=o[e+268>>2],Pn[63&o[108+(0|o[i>>2])>>2]](i,y,ti),y=y+1|0,l=g+1|0}if(n[e+212|0]=1,o[e+208>>2]=0,o[e+200>>2]=0,o[e+204>>2]=0,n[e+232|0]=1,o[e+228>>2]=0,o[e+220>>2]=0,o[e+224>>2]=0,n[e+252|0]=1,o[e+248>>2]=0,o[e+240>>2]=0,o[e+244>>2]=0,0|t){if((0|l)>0){for(t=0,L=0,A=0,D=0;;){if(k=t,(0|(t=t+1|0))<(0|l)){y=f+(k<<4)|0,w=f+(k<<4)+4|0,k=f+(k<<4)+8|0,g=t;do{if(S=g,(0|(g=g+1|0))<(0|l)){C=f+(S<<4)|0,j=f+(S<<4)+4|0,x=f+(S<<4)+8|0,S=g;do{for(X=+s[y>>2],E=+s[C>>2]-X,$=+s[w>>2],H=+s[j>>2]-$,T=+s[k>>2],z=+s[x>>2]-T,X=+s[f+(S<<4)>>2]-X,$=+s[f+(S<<4)+4>>2]-$,T=+s[f+(S<<4)+8>>2]-T,Y=1,I=0;;){q=(H*T-z*$)*Y,K=(z*X-E*T)*Y,Y*=E*$-H*X;i:do{if(Y*Y+(q*q+K*K)>9999999747378752e-20){if(Q=1/+_(+(Y*Y+(q*q+K*K))),(0|L)>0){O=0;do{if(q*Q*+s[D+(O<<4)>>2]+K*Q*+s[D+(O<<4)+4>>2]+Y*Q*+s[D+(O<<4)+8>>2]>.9990000128746033)break i;O=O+1|0}while((0|O)<(0|L))}Z=q*Q*+s[y>>2]+K*Q*+s[w>>2]+Y*Q*+s[k>>2],O=0;do{if(q*Q*+s[f+(O<<4)>>2]+K*Q*+s[f+(O<<4)+4>>2]+Y*Q*+s[f+(O<<4)+8>>2]-Z-.009999999776482582>0)break i;O=O+1|0}while((0|O)<(0|l));do{if((0|L)==(0|A))if((0|A)<(0|(R=0|A?A<<1:1))){do{if(0|R){if(o[4546]=1+(0|o[4546]),!(0|(O=0|ye(16+(R<<4|3)|0)))){O=0;break}o[(O+19&-16)-4>>2]=O,O=O+19&-16}else O=0}while(0);if((0|A)>0){P=0;do{ii=D+(P<<4)|0,o[(ti=O+(P<<4)|0)+0>>2]=o[ii+0>>2],o[ti+4>>2]=o[ii+4>>2],o[ti+8>>2]=o[ii+8>>2],o[ti+12>>2]=o[ii+12>>2],P=P+1|0}while((0|P)!=(0|A))}if(!(0|D)){P=A,A=R,D=O;break}o[4548]=1+(0|o[4548]),ke(0|o[D+-4>>2]),P=A,A=R,D=O}else P=A;else P=L}while(0);s[D+(P<<4)>>2]=q*Q,s[D+(P<<4)+4>>2]=K*Q,s[D+(P<<4)+8>>2]=Y*Q,s[D+(P<<4)+12>>2]=-Z,L=L+1|0}}while(0);if(2==(0|(I=I+1|0)))break;Y=-1}S=S+1|0}while((0|S)!=(0|l))}}while((0|g)!=(0|l))}if((0|t)==(0|l)){l=D;break}}if((0|L)>0){for(w=0,t=0,g=0,C=0;;){if(ti=l+(w<<4)|0,o[e+184>>2]=o[ti+0>>2],o[e+188>>2]=o[ti+4>>2],o[e+192>>2]=o[ti+8>>2],E=+s[l+(w<<4)+12>>2],E-=+mn[15&o[48+(0|o[i>>2])>>2]](i),(0|t)==(0|g))if((0|g)<(0|(j=0|g?g<<1:1))){if(0|j&&(o[4546]=1+(0|o[4546]),0|(h=0|ye(16+(j<<4|3)|0)))?(o[(h+19&-16)-4>>2]=h,k=h+19&-16):k=0,(0|g)>0){y=0;do{ii=C+(y<<4)|0,o[(ti=k+(y<<4)|0)+0>>2]=o[ii+0>>2],o[ti+4>>2]=o[ii+4>>2],o[ti+8>>2]=o[ii+8>>2],o[ti+12>>2]=o[ii+12>>2],y=y+1|0}while((0|y)!=(0|g))}0|C?(o[4548]=1+(0|o[4548]),ke(0|o[C+-4>>2]),y=g,g=j):(y=g,g=j)}else y=g,k=C;else y=t,k=C;if(o[(ti=k+(y<<4)|0)+0>>2]=o[e+184>>2],o[ti+4>>2]=o[e+188>>2],o[ti+8>>2]=o[e+192>>2],s[k+(y<<4)+12>>2]=E,t=t+1|0,(0|(w=w+1|0))>=(0|L)){h=k;break}C=k}if((0|t)>0){w=0,j=0,S=0,x=0;do{if(y=w,(0|(w=w+1|0))<(0|t)){k=w;do{if(g=k,(0|(k=k+1|0))<(0|t)){C=k;do{X=+s[h+(g<<4)+4>>2],Q=+s[h+(C<<4)+8>>2],Y=+s[h+(g<<4)+8>>2],$=+s[h+(C<<4)+4>>2],K=+s[h+(C<<4)>>2],H=+s[h+(g<<4)>>2],T=+s[h+(y<<4)+8>>2],z=+s[h+(y<<4)+4>>2],q=+s[h+(y<<4)>>2];i:do{if(($*H-X*K)*($*H-X*K)+((X*Q-Y*$)*(X*Q-Y*$)+(Y*K-Q*H)*(Y*K-Q*H))>9999999747378752e-20&&(K*z-$*q)*(K*z-$*q)+(($*T-Q*z)*($*T-Q*z)+(Q*q-K*T)*(Q*q-K*T))>9999999747378752e-20&&(X*q-H*z)*(X*q-H*z)+((Y*z-X*T)*(Y*z-X*T)+(H*T-Y*q)*(H*T-Y*q))>9999999747378752e-20&&+b(+(M=T*($*H-X*K)+(z*(Y*K-Q*H)+(X*Q-Y*$)*q)))>9.999999974752427e-7){ei=+s[h+(y<<4)+12>>2],Z=+s[h+(g<<4)+12>>2],E=-1/M*((Y*z-X*T)*(ni=+s[h+(C<<4)+12>>2])+((X*Q-Y*$)*ei+($*T-Q*z)*Z)),T=-1/M*((H*T-Y*q)*ni+((Y*K-Q*H)*ei+(Q*q-K*T)*Z)),z=-1/M*((X*q-H*z)*ni+(($*H-X*K)*ei+(K*z-$*q)*Z)),L=0;do{if(+s[h+(L<<4)+12>>2]+(E*+s[h+(L<<4)>>2]+T*+s[h+(L<<4)+4>>2]+z*+s[h+(L<<4)+8>>2])-.009999999776482582>0)break i;L=L+1|0}while((0|L)<(0|t));do{if((0|j)==(0|S)){if((0|S)>=(0|(I=0|S?S<<1:1))){A=S;break}do{if(0|I){if(o[4546]=1+(0|o[4546]),!(0|(L=0|ye(16+(I<<4|3)|0)))){L=0;break}o[(L+19&-16)-4>>2]=L,L=L+19&-16}else L=0}while(0);if((0|S)>0){A=0;do{ii=x+(A<<4)|0,o[(ti=L+(A<<4)|0)+0>>2]=o[ii+0>>2],o[ti+4>>2]=o[ii+4>>2],o[ti+8>>2]=o[ii+8>>2],o[ti+12>>2]=o[ii+12>>2],A=A+1|0}while((0|A)!=(0|S))}if(!(0|x)){A=S,S=I,x=L;break}o[4548]=1+(0|o[4548]),ke(0|o[x+-4>>2]),A=S,S=I,x=L}else A=j}while(0);s[x+(A<<4)>>2]=E,s[x+(A<<4)+4>>2]=T,s[x+(A<<4)+8>>2]=z,s[x+(A<<4)+12>>2]=0,j=j+1|0}}while(0);C=C+1|0}while((0|C)!=(0|t))}}while((0|k)!=(0|t))}}while((0|w)!=(0|t))}else j=0,x=0}else h=0,j=0,x=0}else l=0,h=0,j=0,x=0;Et(e+196|0,x,j),0|x&&(o[4548]=1+(0|o[4548]),ke(0|o[x+-4>>2])),0|h&&(o[4548]=1+(0|o[4548]),ke(0|o[h+-4>>2])),0|l&&(o[4548]=1+(0|o[4548]),ke(0|o[l+-4>>2]))}else Et(e+196|0,f,l);if((0|(y=0|o[e+240>>2]))>0&((0|y)<0^1)){o[4546]=1+(0|o[4546]),0|(h=0|ye(16+(y<<4|3)|0))?(o[(h+19&-16)-4>>2]=h,l=h+19&-16):l=0,h=0;do{o[(ti=l+(h<<4)|0)+0>>2]=o[e+168>>2],o[ti+4>>2]=o[e+172>>2],o[ti+8>>2]=o[e+176>>2],o[ti+12>>2]=o[e+180>>2],h=h+1|0}while((0|h)!=(0|y))}else l=0;n[e+164|0]=1,o[(t=e+160|0)>>2]=0,o[(h=e+152|0)>>2]=0,o[e+156>>2]=0,k=(w=e+112|0)+36|0;do{o[w>>2]=0,w=w+4|0}while((0|w)<(0|k));if(n[e+128|0]=1,o[e+124>>2]=0,o[e+116>>2]=0,o[e+120>>2]=0,(0|y)<0&&W(),(0|y)>0){lt(e+148|0,y),w=0|o[t>>2],k=0;do{0|(g=w+(36*k|0)|0)&&(dt(g,e+112|0),o[g+20>>2]=o[e+132>>2],o[g+24>>2]=o[e+136>>2],o[g+28>>2]=o[e+140>>2],o[g+32>>2]=o[e+144>>2]),k=k+1|0}while((0|k)!=(0|y));k=0|o[e+124>>2],o[h>>2]=y,0|k&&(0|n[e+128|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[k+-4>>2])),o[e+124>>2]=0)}else o[h>>2]=y,w=0;if(n[e+128|0]=1,o[e+124>>2]=0,o[e+116>>2]=0,o[e+120>>2]=0,k=0|o[e+200>>2],g=0|o[i+52>>2],(0|(C=0|o[g+8>>2]))<(0|k)){if((0|o[g+12>>2])<(0|k)){if(0|k?(o[4546]=1+(0|o[4546]),0|(j=0|ye(16+(k<<4|3)|0))?(o[(j+19&-16)-4>>2]=j,j=j+19&-16):j=0,S=0|o[g+8>>2]):(S=C,j=0),(0|S)>0){x=0;do{ti=j+(x<<4)|0,ii=(0|o[g+16>>2])+(x<<4)|0,o[ti+0>>2]=o[ii+0>>2],o[ti+4>>2]=o[ii+4>>2],o[ti+8>>2]=o[ii+8>>2],o[ti+12>>2]=o[ii+12>>2],x=x+1|0}while((0|x)!=(0|S))}0|(S=0|o[g+16>>2])&&(0|n[g+20|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[S+-4>>2])),o[g+16>>2]=0),n[g+20|0]=1,o[g+16>>2]=j,o[g+12>>2]=k,j=g+16|0}else j=g+16|0;do{ti=(0|o[j>>2])+(C<<4)|0,o[ti+0>>2]=o[e+96>>2],o[ti+4>>2]=o[e+100>>2],o[ti+8>>2]=o[e+104>>2],o[ti+12>>2]=o[e+108>>2],C=C+1|0}while((0|C)!=(0|k))}if(o[g+8>>2]=k,(0|k)>0){g=0|o[e+208>>2],C=0;do{ti=(0|o[16+(0|o[i+52>>2])>>2])+(C<<4)|0,ii=g+(C<<4)|0,o[ti+0>>2]=o[ii+0>>2],o[ti+4>>2]=o[ii+4>>2],o[ti+8>>2]=o[ii+8>>2],o[ti+12>>2]=o[ii+12>>2],C=C+1|0}while((0|C)!=(0|k))}if((0|y)>0){k=0;do{g=w+(36*k|0)+4|0,C=w+(36*k|0)+8|0,j=w+(36*k|0)+12|0,w=w+(36*k|0)+16|0,x=S=(0|o[e+228>>2])+(12*(0|o[(0|o[e+248>>2])+(k<<2)>>2])|0)|0,I=0;do{if(A=0|o[x+(12*(0|o[(L=x+4|0)>>2])|0)+8>>2],(0|(D=0|o[g>>2]))==(0|o[C>>2])&&(0|D)<(0|(m=0|D?D<<1:1))){if(0|m?(o[4546]=1+(0|o[4546]),0|(D=0|ye(16+(m<<2|3)|0))?(o[(D+19&-16)-4>>2]=D,O=D+19&-16):O=0,D=0|o[g>>2]):O=0,(0|D)>0){P=0;do{0|(R=O+(P<<2)|0)&&(o[R>>2]=o[(0|o[j>>2])+(P<<2)>>2]),P=P+1|0}while((0|P)!=(0|D))}0|(D=0|o[j>>2])&&(0|n[w|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[D+-4>>2])),o[j>>2]=0),n[w|0]=1,o[j>>2]=O,o[C>>2]=m,D=0|o[g>>2]}0|(O=(0|o[j>>2])+(D<<2)|0)&&(o[O>>2]=A,D=0|o[g>>2]),o[g>>2]=D+1,ii=0|o[x+8>>2],ti=0|o[e+208>>2],M=+s[ti+(ii<<4)>>2]-+s[ti+(A<<4)>>2],E=+s[ti+(ii<<4)+4>>2]-+s[ti+(A<<4)+4>>2],T=+s[ti+(ii<<4)+8>>2]-+s[ti+(A<<4)+8>>2],z=1/+_(+(M*M+E*E+T*T)),(0|I)<2&&(s[e+288+(I<<4)>>2]=M*z,s[e+288+(I<<4)+4>>2]=E*z,s[e+288+(I<<4)+8>>2]=T*z,s[e+288+(I<<4)+12>>2]=0,I=I+1|0),ti=0|o[L>>2],x=x+(12*((0|o[x+(12*ti|0)>>2])+ti|0)|0)|0}while((0|x)!=(0|S));if(j=l+(k<<4)|0,2==(0|I)?(Y=+s[e+292>>2],Q=+s[e+312>>2],Z=+s[e+296>>2],ei=+s[e+308>>2],K=+s[e+304>>2],q=+s[e+288>>2],ii=l+(k<<4)+4|0,ti=l+(k<<4)+8|0,s[l+(k<<4)+12>>2]=0,ni=1/+_(+((Y*Q-Z*ei)*(Y*Q-Z*ei)+(Z*K-Q*q)*(Z*K-Q*q)+(ei*q-Y*K)*(ei*q-Y*K))),s[j>>2]=(Y*Q-Z*ei)*ni,s[ii>>2]=(Z*K-Q*q)*ni,s[ti>>2]=(ei*q-Y*K)*ni,w=0|o[t>>2],s[w+(36*k|0)+20>>2]=(Y*Q-Z*ei)*ni,s[w+(36*k|0)+24>>2]=+s[ii>>2],s[w+(36*k|0)+28>>2]=+s[ti>>2],s[w+(36*k|0)+32>>2]=1.0000000150474662e30):(o[j+0>>2]=0,o[j+4>>2]=0,o[j+8>>2]=0,o[j+12>>2]=0,w=0|o[t>>2]),(0|(C=0|o[w+(36*k|0)+4>>2]))>0){g=0|o[16+(0|o[i+52>>2])>>2],T=+s[j>>2],E=+s[l+(k<<4)+4>>2],M=+s[l+(k<<4)+8>>2],S=0|o[w+(36*k|0)+12>>2],z=1.0000000150474662e30,j=0;do{ti=0|o[S+(j<<2)>>2],z=z>(ni=+s[g+(ti<<4)>>2]*T+ +s[g+(ti<<4)+4>>2]*E+ +s[g+(ti<<4)+8>>2]*M)?ni:z,j=j+1|0}while((0|j)<(0|C))}else z=1.0000000150474662e30;s[w+(36*k|0)+32>>2]=-z,k=k+1|0}while((0|k)<(0|y));if((0|(y=0|o[h>>2]))>0){k=0,m=0,j=0;do{if((0|j)==(0|k))if((0|j)<(0|(k=0|j?j<<1:1))){if(0|k&&(o[4546]=1+(0|o[4546]),0|(p=0|ye(16+(k<<2|3)|0)))?(o[(p+19&-16)-4>>2]=p,g=p+19&-16):g=0,(0|j)>0){C=0;do{0|(S=g+(C<<2)|0)&&(o[S>>2]=o[m+(C<<2)>>2]),C=C+1|0}while((0|C)!=(0|j))}0|m?(o[4548]=1+(0|o[4548]),ke(0|o[m+-4>>2]),m=g):m=g}else k=j;0|(g=m+(j<<2)|0)&&(o[g>>2]=j,y=0|o[h>>2]),j=j+1|0}while((0|j)<(0|y));if(0|j)for(p=e+88|0,g=e+84|0,k=e+76|0,y=e+32|0,C=e+308|0,T=0,E=0,M=0;;){j=0|o[m+((L=j+-1|0)<<2)>>2],o[4546]=1+(0|o[4546]),0|(x=0|ye(23))?(o[(x+19&-16)-4>>2]=x,S=x+19&-16,x+19&-16&&(o[S>>2]=j)):S=0,z=+s[w+(36*j|0)+20>>2],X=+s[w+(36*j|0)+24>>2],$=+s[w+(36*j|0)+28>>2],j=L,D=1,x=1,I=L;i:for(;;){L=(0|j)>0;t:for(;;){do{if(ti=I,I=I+-1|0,(0|ti)<=0)break i;A=0|o[m+(I<<2)>>2]}while(!(z*+s[w+(36*A|0)+20>>2]+X*+s[w+(36*A|0)+24>>2]+$*+s[w+(36*A|0)+28>>2]>.9990000128746033));do{if((0|x)==(0|D)&&(0|D)<(0|(v=0|D?D<<1:1))){do{if(0|v){if(o[4546]=1+(0|o[4546]),!(0|(O=0|ye(16+(v<<2|3)|0)))){O=0;break}o[(O+19&-16)-4>>2]=O,O=O+19&-16}else O=0}while(0);if((0|D)>0){P=0;do{0|(R=O+(P<<2)|0)&&(o[R>>2]=o[S+(P<<2)>>2]),P=P+1|0}while((0|P)!=(0|D))}if(!(0|S)){S=O,D=v;break}o[4548]=1+(0|o[4548]),ke(0|o[S+-4>>2]),S=O,D=v}}while(0);if(0|(O=S+(x<<2)|0)&&(o[O>>2]=A),x=x+1|0,L){for(P=0;R=P+1|0,(0|o[(O=m+(P<<2)|0)>>2])!=(0|A);){if(!((0|R)<(0|j)))continue t;P=R}if((0|P)<(0|j))break}}ii=m+((ti=j+-1|0)<<2)|0,o[O>>2]=o[ii>>2],o[ii>>2]=A,j=ti}if((0|x)>1){n[p|0]=1,o[g>>2]=0,o[k>>2]=0,o[e+80>>2]=0,T=0,E=0,M=0,O=0,L=0;do{if(A=0|o[S+(L<<2)>>2],T=+s[w+(36*A|0)+20>>2]+T,E=+s[w+(36*A|0)+24>>2]+E,M=+s[w+(36*A|0)+28>>2]+M,(0|(R=0|o[(I=w+(36*A|0)+4|0)>>2]))>0)for(A=w+(36*A|0)+12|0,P=O,D=0;;){O=0|o[(0|o[A>>2])+(D<<2)>>2],ti=(0|o[16+(0|o[i+52>>2])>>2])+(O<<4)|0,o[e+56>>2]=o[ti+0>>2],o[e+60>>2]=o[ti+4>>2],o[e+64>>2]=o[ti+8>>2],o[e+68>>2]=o[ti+12>>2];i:do{if((0|P)>0)for(N=0|o[g>>2],B=0;;){if((0|o[N+(24*B|0)+20>>2])==(0|O)){O=P;break i}if((0|(B=B+1|0))>=(0|P)){d=207;break}}else d=207}while(0);if(207==(0|d)){d=0,o[e+0>>2]=o[e+56>>2],o[e+4>>2]=o[e+60>>2],o[e+8>>2]=o[e+64>>2],o[e+12>>2]=o[e+68>>2];do{if((0|P)==(0|o[e+80>>2])){if((0|P)>=(0|(R=0|P?P<<1:1)))break;if(0|R?(o[4546]=1+(0|o[4546]),0|(P=0|ye(16+(24*R|3)|0))?(o[(P+19&-16)-4>>2]=P,N=P+19&-16):N=0,P=0|o[k>>2]):N=0,B=0|o[g>>2],(0|P)<=0)0|B&&(d=216);else{d=0;do{ii=B+(24*d|0)|0,o[(ti=N+(24*d|0)|0)+0>>2]=o[ii+0>>2],o[ti+4>>2]=o[ii+4>>2],o[ti+8>>2]=o[ii+8>>2],o[ti+12>>2]=o[ii+12>>2],o[ti+16>>2]=o[ii+16>>2],o[ti+20>>2]=o[ii+20>>2],d=d+1|0}while((0|d)!=(0|P));d=216}216==(0|d)&&(d=0,!(0|n[p|0])|!(0|B)||(o[4548]=1+(0|o[4548]),ke(0|o[B+-4>>2]),P=0|o[k>>2]),o[g>>2]=0),n[p|0]=1,o[g>>2]=N,o[e+80>>2]=R}}while(0);R=0|o[g>>2],o[(ti=R+(24*P|0)|0)+0>>2]=o[e+0>>2],o[ti+4>>2]=o[e+4>>2],o[ti+8>>2]=o[e+8>>2],o[ti+12>>2]=o[e+12>>2],o[ti+16>>2]=o[e+16>>2],o[R+(24*P|0)+20>>2]=O,O=1+(0|o[k>>2])|0,o[k>>2]=O,R=0|o[I>>2]}if((0|(D=D+1|0))>=(0|R))break;P=O}L=L+1|0}while((0|L)<(0|x));n[e+36|0]=1,o[y>>2]=0,o[e+24>>2]=0,o[e+28>>2]=0,ti=w+(9*(0|o[S>>2])<<2)+20|0,o[e+40>>2]=o[ti+0>>2],o[e+44>>2]=o[ti+4>>2],o[e+48>>2]=o[ti+8>>2],o[e+52>>2]=o[ti+12>>2],T*=ni=1/+_(+(T*T+E*E+M*M)),E*=ni,+b(+(M*=ni))>.7071067690849304?(z=0,$=-M*(X=1/+_(+(M*M+E*E))),X*=E):(z=-E*($=1/+_(+(T*T+E*E))),$*=T,X=0);i:do{if((0|O)<2)if((0|O)>0)for(L=0,P=0,I=0,d=1;;){A=0|o[g>>2];do{if((0|L)==(0|P)){if((0|P)>=(0|(D=0|P?P<<1:1))){R=P,D=P;break}do{if(0|D){if(o[4546]=1+(0|o[4546]),!(0|(R=0|ye(16+(24*D|3)|0)))){O=L,P=0;break}o[(R+19&-16)-4>>2]=R,O=L,P=R+19&-16}else O=P,P=0}while(0);if((0|O)>0){R=0;do{ii=I+(24*R|0)|0,o[(ti=P+(24*R|0)|0)+0>>2]=o[ii+0>>2],o[ti+4>>2]=o[ii+4>>2],o[ti+8>>2]=o[ii+8>>2],o[ti+12>>2]=o[ii+12>>2],o[ti+16>>2]=o[ii+16>>2],o[ti+20>>2]=o[ii+20>>2],R=R+1|0}while((0|R)!=(0|O))}0|I&&(o[4548]=1+(0|o[4548]),ke(0|o[I+-4>>2])),R=L,O=0|o[k>>2],I=P}else R=L,D=P}while(0);if(o[(ti=I+(24*R|0)|0)+0>>2]=o[A+0>>2],o[ti+4>>2]=o[A+4>>2],o[ti+8>>2]=o[A+8>>2],o[ti+12>>2]=o[A+12>>2],o[ti+16>>2]=o[A+16>>2],o[ti+20>>2]=o[A+20>>2],L=L+1|0,(0|d)>=(0|O)){d=272;break i}P=D,d=d+1|0}else I=0,d=307;else{d=0|o[g>>2],L=O,I=0;do{z*+s[d+(24*I|0)>>2]+$*+s[d+(24*I|0)+4>>2]+X*+s[d+(24*I|0)+8>>2]<z*+s[d>>2]+$*+s[d+4>>2]+X*+s[d+8>>2]&&(o[e+288>>2]=o[d+0>>2],o[e+292>>2]=o[d+4>>2],o[e+296>>2]=o[d+8>>2],o[e+300>>2]=o[d+12>>2],o[e+304>>2]=o[d+16>>2],o[e+308>>2]=o[d+20>>2],L=d+(24*I|0)|0,o[d+0>>2]=o[L+0>>2],o[d+4>>2]=o[L+4>>2],o[d+8>>2]=o[L+8>>2],o[d+12>>2]=o[L+12>>2],o[d+16>>2]=o[L+16>>2],o[d+20>>2]=o[L+20>>2],o[(L=d+(24*I|0)|0)+0>>2]=o[e+288>>2],o[L+4>>2]=o[e+292>>2],o[L+8>>2]=o[e+296>>2],o[L+12>>2]=o[e+300>>2],o[L+16>>2]=o[e+304>>2],o[L+20>>2]=o[e+308>>2],L=O),I=I+1|0}while((0|I)<(0|L));if(s[d+16>>2]=-1.0000000150474662e30,(0|L)>1){H=+s[d+4>>2],I=1;do{Z=+s[d+(24*I|0)>>2]-+s[d>>2],ei=+s[d+(24*I|0)+4>>2]-H,ni=+s[d+(24*I|0)+8>>2]-+s[d+8>>2],s[d+(24*I|0)+16>>2]=((z*ei-$*Z)*M+(T*($*ni-X*ei)+E*(X*Z-z*ni)))/+_(+(Z*Z+ei*ei+ni*ni)),I=I+1|0}while((0|I)<(0|L))}for(o[e+272>>2]=o[d+0>>2],o[e+276>>2]=o[d+4>>2],o[e+280>>2]=o[d+8>>2],o[e+284>>2]=o[d+12>>2],vt(e+72|0,e+272|0,1,L+-1|0),I=0|o[g>>2],o[4546]=1+(0|o[4546]),0|(d=0|ye(43))?(o[(d+19&-16)-4>>2]=d,d=d+19&-16):d=0,L=0|o[g>>2],o[d+0>>2]=o[I+0>>2],o[d+4>>2]=o[I+4>>2],o[d+8>>2]=o[I+8>>2],o[d+12>>2]=o[I+12>>2],o[d+16>>2]=o[I+16>>2],o[d+20>>2]=o[I+20>>2],o[4546]=1+(0|o[4546]),0|(I=0|ye(67))?(o[(I+19&-16)-4>>2]=I,I=I+19&-16):I=0,A=0;ii=d+(24*A|0)|0,o[(ti=I+(24*A|0)|0)+0>>2]=o[ii+0>>2],o[ti+4>>2]=o[ii+4>>2],o[ti+8>>2]=o[ii+8>>2],o[ti+12>>2]=o[ii+12>>2],o[ti+16>>2]=o[ii+16>>2],o[ti+20>>2]=o[ii+20>>2],0|A;)A=A+1|0;if(0|d&&(o[4548]=1+(0|o[4548]),ke(0|o[d+-4>>2])),o[(O=I+24|0)+0>>2]=o[L+24>>2],o[O+4>>2]=o[L+28>>2],o[O+8>>2]=o[L+32>>2],o[O+12>>2]=o[L+36>>2],o[O+16>>2]=o[L+40>>2],o[O+20>>2]=o[L+44>>2],2==(0|(O=0|o[k>>2]))){L=2,d=273;break}for(R=2,L=2,D=2,d=2;;){t:do{if((0|R)>1){for(ti=0|o[g>>2],$=+s[(A=ti+(24*d|0)|0)>>2],z=+s[ti+(24*d|0)+4>>2],X=+s[ti+(24*d|0)+8>>2];P=R+-1|0,!(((ei=(Z=+s[I+(24*(ti=R+-2|0)|0)>>2])-+s[I+(24*P|0)>>2])*((Y=+s[I+(24*ti|0)+4>>2])-z)-(K=Y-+s[I+(24*P|0)+4>>2])*(Z-$))*M+(T*(K*((ni=+s[I+(24*ti|0)+8>>2])-X)-(Q=ni-+s[I+(24*P|0)+8>>2])*(Y-z))+E*(Q*(Z-$)-ei*(ni-X)))>0);){if(!((0|P)>1)){R=P,L=P;break t}R=P,L=P}do{if((0|R)==(0|D)){if((0|D)>=(0|(P=0|D?D<<1:1))){R=D;break}do{if(0|P){if(o[4546]=1+(0|o[4546]),!(0|(O=0|ye(16+(24*P|3)|0)))){D=L,N=0;break}o[(O+19&-16)-4>>2]=O,D=L,N=O+19&-16}else N=0}while(0);if((0|D)>0){O=0;do{ii=I+(24*O|0)|0,o[(ti=N+(24*O|0)|0)+0>>2]=o[ii+0>>2],o[ti+4>>2]=o[ii+4>>2],o[ti+8>>2]=o[ii+8>>2],o[ti+12>>2]=o[ii+12>>2],o[ti+16>>2]=o[ii+16>>2],o[ti+20>>2]=o[ii+20>>2],O=O+1|0}while((0|O)!=(0|D))}0|I&&(o[4548]=1+(0|o[4548]),ke(0|o[I+-4>>2])),O=0|o[k>>2],R=L,D=P,I=N}}while(0);o[(R=I+(24*R|0)|0)+0>>2]=o[A+0>>2],o[R+4>>2]=o[A+4>>2],o[R+8>>2]=o[A+8>>2],o[R+12>>2]=o[A+12>>2],o[R+16>>2]=o[A+16>>2],o[R+20>>2]=o[A+20>>2],R=L=L+1|0}}while(0);if((0|(d=d+1|0))==(0|O)){d=272;break}}}}while(0);if(272==(0|d)&&(d=(0|L)>0?273:295),273==(0|d)){R=0,O=0,D=0,d=0;do{A=I+(24*d|0)+20|0;do{if((0|R)==(0|O)){if((0|O)>=(0|(P=0|O?O<<1:1))){R=O;break}do{if(0|P){if(o[4546]=1+(0|o[4546]),!(0|(R=0|ye(16+(P<<2|3)|0)))){B=0;break}o[(R+19&-16)-4>>2]=R,B=R+19&-16}else B=0}while(0);if((0|O)>0){R=0;do{0|(N=B+(R<<2)|0)&&(o[N>>2]=o[D+(R<<2)>>2]),R=R+1|0}while((0|R)!=(0|O))}0|D&&(o[4548]=1+(0|o[4548]),ke(0|o[D+-4>>2]),o[y>>2]=0),n[e+36|0]=1,o[y>>2]=B,o[e+28>>2]=P,D=B,R=O,O=P}}while(0);0|(P=D+(R<<2)|0)&&(o[P>>2]=o[A>>2],R=0|o[e+24>>2]),R=R+1|0,o[e+24>>2]=R,N=0|o[k>>2];i:do{if((0|N)>0){for(P=0|o[g>>2],F=0|o[A>>2],B=0;A=P+(24*B|0)+20|0,B=B+1|0,(0|o[A>>2])!=(0|F);)if((0|B)>=(0|N))break i;o[A>>2]=-1}}while(0);d=d+1|0}while((0|d)<(0|L));O=0|o[k>>2],d=295}i:do{if(295==(0|d))if(d=0,(0|O)>0)for(R=0|o[g>>2],P=0|o[h>>2],D=0;;){if(!(-1==(0|(A=0|o[R+(24*D|0)+20>>2]))|(0|P)<1)){L=0;do{for(N=0;(0|o[S+(N<<2)>>2])!=(0|L);)if((0|(N=N+1|0))>=(0|x)){d=303;break}do{if(303==(0|d)){if(d=0,(0|(F=0|o[w+(36*L|0)+4>>2]))<=0)break;B=0|o[w+(36*L|0)+12>>2],N=0;do{if((0|o[B+(N<<2)>>2])==(0|A)){L=1;break i}N=N+1|0}while((0|N)<(0|F))}}while(0);L=L+1|0}while((0|L)<(0|P))}if((0|(D=D+1|0))>=(0|O)){d=307;break}}else d=307}while(0);307==(0|d)&&(d=0,L=0|o[i+52>>2],(0|(A=0|o[L+28>>2]))==(0|o[L+32>>2])&&(lt(L+24|0,0|A?A<<1:1),A=0|o[L+28>>2]),0|(D=(0|o[L+36>>2])+(36*A|0)|0)&&(dt(D,e+20|0),o[D+20>>2]=o[e+40>>2],o[D+24>>2]=o[e+44>>2],o[D+28>>2]=o[e+48>>2],o[D+32>>2]=o[e+52>>2],A=0|o[L+28>>2]),o[L+28>>2]=A+1,L=0),0|I&&(o[4548]=1+(0|o[4548]),ke(0|o[I+-4>>2])),0|(I=0|o[y>>2])&&(0|n[e+36|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[I+-4>>2])),o[y>>2]=0),0|(I=0|o[g>>2])&&(0|n[p|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[I+-4>>2])),o[g>>2]=0),n[p|0]=1,o[g>>2]=0,o[k>>2]=0,o[e+80>>2]=0,L&(0|x)>0&&(d=324)}else(0|x)>0&&(d=324);if(324==(0|d)){d=0,L=0;do{dt(e+288|0,w+(36*(I=0|o[S+(L<<2)>>2])|0)|0),I=w+(36*I|0)+20|0,o[C+0>>2]=o[I+0>>2],o[C+4>>2]=o[I+4>>2],o[C+8>>2]=o[I+8>>2],o[C+12>>2]=o[I+12>>2],I=0|o[i+52>>2],(0|(A=0|o[I+28>>2]))==(0|o[I+32>>2])&&(lt(I+24|0,0|A?A<<1:1),A=0|o[I+28>>2]),0|(D=(0|o[I+36>>2])+(36*A|0)|0)&&(dt(D,e+288|0),o[D+20>>2]=o[C+0>>2],o[D+24>>2]=o[C+4>>2],o[D+28>>2]=o[C+8>>2],o[D+32>>2]=o[C+12>>2],A=0|o[I+28>>2]),o[I+28>>2]=A+1,0|(I=0|o[e+300>>2])&&(0|n[e+304|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[I+-4>>2])),o[e+300>>2]=0),L=L+1|0}while((0|L)<(0|x))}if(0|S&&(o[4548]=1+(0|o[4548]),ke(0|o[S+-4>>2])),!(0|j)){v=m;break}}else v=m}else v=0}else v=0;if(i=0|o[i+52>>2],o[i+64>>2]=0,o[i+68>>2]=0,o[i+72>>2]=0,o[i+76>>2]=0,(0|(m=0|o[i+28>>2]))>0){for(y=m,j=0,g=0,O=0,F=0,R=0,B=0,N=0,P=0,D=0,x=0,A=0,S=0,p=0;;){if(L=0|o[i+36>>2],(0|(m=0|o[L+(36*p|0)+4>>2]))>0){for(k=65535&p,y=-65536|p,I=0;;){C=I+1|0,V=0|o[L+(36*p|0)+12>>2],I=(G=65535&o[V+(I<<2)>>2])<<16>>16<(V=65535&o[V+(((0|C)==(0|m)?0:C)<<2)>>2])<<16>>16?G:V,L=G<<16>>16<V<<16>>16?V:G,J=G<<16>>16<V<<16>>16?G:V,G=G<<16>>16<V<<16>>16?V:G,V=O+-1|0;i:do{if((((65535&J)<<16)+(G<<16>>16)&V)>>>0<j>>>0&&-1!=(0|(c=0|o[D+((((65535&J)<<16)+(G<<16>>16)&V)<<2)>>2]))){for(U=c;G<<16>>16!=(0|r[N+(U<<2)>>1])||J<<16>>16!=(0|r[N+(U<<2)+2>>1]);)if(-1==(0|(U=0|o[S+(U<<2)>>2]))){U=0;break i}U=-1!=(0|U)?F+(U<<2)|0:0}else U=0}while(0);ti=0|o[i+16>>2],E=+s[ti+(J<<16>>16<<4)>>2]-+s[ti+(G<<16>>16<<4)>>2],M=+s[ti+(J<<16>>16<<4)+4>>2]-+s[ti+(G<<16>>16<<4)+4>>2],T=+s[ti+(J<<16>>16<<4)+8>>2]-+s[ti+(G<<16>>16<<4)+8>>2],z=1/+_(+(E*E+M*M+T*T)),J=0|o[i+48>>2];i:do{if((0|J)>0)for(G=0|o[i+56>>2],ii=0;;){X=+s[G+(ii<<4)>>2],$=+s[G+(ii<<4)+8>>2];do{if(!(+b(+(X-E*z))>1e-6)){if(+b(+(+s[G+(ii<<4)+4>>2]-M*z))>1e-6)break;if(!(+b(+($-T*z))>1e-6))break i}}while(0);do{if(!(+b(+(E*z+X))>1e-6)){if(+b(+(M*z+ +s[G+(ii<<4)+4>>2]))>1e-6)break;if(!(+b(+(T*z+$))>1e-6))break i}}while(0);if((0|(ii=ii+1|0))>=(0|J)){d=359;break}}else d=359}while(0);if(359==(0|d)){d=0;do{if((0|J)==(0|o[i+52>>2])){if((0|J)>=(0|(G=0|J?J<<1:1)))break;if(0|G?(o[4546]=1+(0|o[4546]),0|(J=0|ye(16+(G<<4|3)|0))?(o[(J+19&-16)-4>>2]=J,ii=J+19&-16):ii=0,J=0|o[i+48>>2]):ii=0,(0|J)>0){ti=0;do{ri=ii+(ti<<4)|0,oi=(0|o[i+56>>2])+(ti<<4)|0,o[ri+0>>2]=o[oi+0>>2],o[ri+4>>2]=o[oi+4>>2],o[ri+8>>2]=o[oi+8>>2],o[ri+12>>2]=o[oi+12>>2],ti=ti+1|0}while((0|ti)!=(0|J))}0|(J=0|o[i+56>>2])&&(0|n[i+60|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[J+-4>>2])),o[i+56>>2]=0),n[i+60|0]=1,o[i+56>>2]=ii,o[i+52>>2]=G,J=0|o[i+48>>2]}}while(0);oi=0|o[i+56>>2],s[oi+(J<<4)>>2]=E*z,s[oi+(J<<4)+4>>2]=M*z,s[oi+(J<<4)+8>>2]=T*z,s[oi+(J<<4)+12>>2]=0,o[i+48>>2]=1+(0|o[i+48>>2])}i:do{if(0|U)r[U+2>>1]=k;else{G=((65535&I)<<16)+(L<<16>>16)&V;t:do{if(G>>>0<j>>>0){if(-1==(0|(V=0|o[D+(G<<2)>>2])))break;for(;L<<16>>16!=(0|r[N+(V<<2)>>1])||I<<16>>16!=(0|r[N+(V<<2)+2>>1]);)if(-1==(0|(V=0|o[S+(V<<2)>>2])))break t;if(-1==(0|V))break;r[(oi=F+(V<<2)|0)>>1]=y,r[oi+2>>1]=y>>>16;break i}}while(0);do{if((0|g)==(0|O)){if((0|O)>=(0|(V=0|O?O<<1:1))){J=O,V=O;break}do{if(0|V){if(o[4546]=1+(0|o[4546]),!(0|(U=0|ye(16+(V<<2|3)|0)))){U=0;break}o[(U+19&-16)-4>>2]=U,U=U+19&-16}else U=0}while(0);if((0|O)>0){J=0;do{0|(ii=U+(J<<2)|0)&&(oi=a[(oi=F+(J<<2)|0)>>1]|a[oi+2>>1]<<16,r[ii>>1]=oi,r[ii+2>>1]=oi>>>16),J=J+1|0}while((0|J)!=(0|O))}if(!(0|F)){J=O,F=U;break}o[4548]=1+(0|o[4548]),ke(0|o[F+-4>>2]),J=O,F=U}else J=g,V=O}while(0);0|(U=F+(J<<2)|0)&&(r[U>>1]=y,r[U+2>>1]=y>>>16,J=g),U=J+1|0;do{if((0|R)==(0|B)){if((0|R)>=(0|(B=0|R?R<<1:1))){B=R;break}do{if(0|B){if(o[4546]=1+(0|o[4546]),!(0|(J=0|ye(16+(B<<2|3)|0)))){J=0;break}o[(J+19&-16)-4>>2]=J,J=J+19&-16}else J=0}while(0);if((0|R)>0){ti=0;do{0|(ii=J+(ti<<2)|0)&&(oi=a[(oi=N+(ti<<2)|0)>>1]|a[oi+2>>1]<<16,r[ii>>1]=oi,r[ii+2>>1]=oi>>>16),ti=ti+1|0}while((0|ti)!=(0|R))}if(!(0|N)){N=J;break}o[4548]=1+(0|o[4548]),ke(0|o[N+-4>>2]),N=J}}while(0);if(0|(J=N+(R<<2)|0)&&(r[J>>1]=(65535&I)<<16|65535&L,r[J+2>>1]=((65535&I)<<16|65535&L)>>>16),R=R+1|0,(0|O)<(0|V)){do{if((0|j)<(0|V)){if((0|j)<=(0|V)){do{if((0|P)<(0|V)){do{if(0|V){if(o[4546]=1+(0|o[4546]),!(0|(O=0|ye(16+(V<<2|3)|0)))){O=0;break}o[(O+19&-16)-4>>2]=O,O=O+19&-16}else O=0}while(0);if((0|j)>0){G=0;do{0|(P=O+(G<<2)|0)&&(o[P>>2]=o[D+(G<<2)>>2]),G=G+1|0}while((0|G)!=(0|j))}if(!(0|D)){P=V,D=O;break}o[4548]=1+(0|o[4548]),ke(0|o[D+-4>>2]),P=V,D=O}}while(0);G=j;do{0|(O=D+(G<<2)|0)&&(o[O>>2]=0),G=G+1|0}while((0|G)!=(0|V))}if((0|x)<(0|V)){do{if((0|A)<(0|V)){do{if(0|V){if(o[4546]=1+(0|o[4546]),!(0|(A=0|ye(16+(V<<2|3)|0)))){O=0;break}o[(A+19&-16)-4>>2]=A,O=A+19&-16}else O=0}while(0);if((0|x)>0){A=0;do{0|(G=O+(A<<2)|0)&&(o[G>>2]=o[S+(A<<2)>>2]),A=A+1|0}while((0|A)!=(0|x))}if(!(0|S)){A=V,S=O;break}o[4548]=1+(0|o[4548]),ke(0|o[S+-4>>2]),A=V,S=O}}while(0);do{0|(O=S+(x<<2)|0)&&(o[O>>2]=0),x=x+1|0}while((0|x)!=(0|V))}if((0|V)>0&&(Ce(0|D,-1,0|(oi=V<<2)),Ce(0|S,-1,0|oi)),(0|j)<=0){j=V,x=V;break}O=V+-1|0,x=0;do{oi=D+(((a[N+(x<<2)+2>>1]<<16)+(0|r[N+(x<<2)>>1])&O)<<2)|0,o[S+(x<<2)>>2]=o[oi>>2],o[oi>>2]=x,x=x+1|0}while((0|x)!=(0|j));j=V,x=V}}while(0);G=((65535&I)<<16)+(L<<16>>16)&V+-1}O=D+(G<<2)|0,o[S+(g<<2)>>2]=o[O>>2],o[O>>2]=g,g=U,O=V}}while(0);if((0|C)>=(0|m))break;L=0|o[i+36>>2],I=C}m=0|o[i+28>>2]}else m=y;if((0|(p=p+1|0))>=(0|m))break;y=m}if((0|m)>0){p=0|o[i+36>>2],c=0|o[i+16>>2],z=0,d=0;do{if(y=0|o[p+(36*d|0)+4>>2],k=0|o[p+(36*d|0)+12>>2],g=0|o[k>>2],(y+-2|0)>=1){M=+s[i+64>>2],E=+s[i+68>>2],T=+s[i+72>>2],C=1;do{ri=0|o[k+(C<<2)>>2],oi=0|o[k+((0|(C=C+1|0))%(0|y)<<2)>>2],X=+s[c+(g<<4)>>2],$=+s[c+(ri<<4)>>2],q=+s[c+(g<<4)+4>>2],K=+s[c+(ri<<4)+4>>2],Q=+s[c+(g<<4)+8>>2],Z=+s[c+(ri<<4)+8>>2],H=+s[c+(oi<<4)>>2],Y=+s[c+(oi<<4)+4>>2],ei=+s[c+(oi<<4)+8>>2],M+=.3333333432674408*(X+$+H)*(ni=.5*+_(+(((X-$)*(q-Y)-(q-K)*(X-H))*((X-$)*(q-Y)-(q-K)*(X-H))+(((q-K)*(Q-ei)-(Q-Z)*(q-Y))*((q-K)*(Q-ei)-(Q-Z)*(q-Y))+((Q-Z)*(X-H)-(X-$)*(Q-ei))*((Q-Z)*(X-H)-(X-$)*(Q-ei)))))),s[i+64>>2]=M,E=.3333333432674408*(q+K+Y)*ni+E,s[i+68>>2]=E,T=ni*(Q+Z+ei)*.3333333432674408+T,s[i+72>>2]=T,z+=ni}while((0|C)!=(y+-1|0))}d=d+1|0}while((0|d)<(0|m))}else z=0}else z=0,F=0,N=0,D=0,S=0;if(z=(E=1/z)*+s[i+64>>2],s[i+64>>2]=z,T=E*+s[i+68>>2],s[i+68>>2]=T,E*=+s[i+72>>2],s[i+72>>2]=E,s[i+96>>2]=34028234663852886e22,(0|m)>0)for(c=0|o[i+36>>2],X=34028234663852886e22,d=0;(M=+b(+(+s[c+(36*d|0)+32>>2]+(+s[c+(36*d|0)+20>>2]*z+ +s[c+(36*d|0)+24>>2]*T+ +s[c+(36*d|0)+28>>2]*E))))<X?s[i+96>>2]=M:M=X,!((0|(d=d+1|0))>=(0|m));)X=M;else M=34028234663852886e22;if((0|(d=0|o[i+8>>2]))>0){c=0|o[i+16>>2],X=-34028234663852886e22,$=-34028234663852886e22,H=-34028234663852886e22,z=34028234663852886e22,T=34028234663852886e22,E=34028234663852886e22,p=0;do{z=(ni=+s[c+(p<<4)>>2])<z?ni:z,X=ni>X?ni:X,T=(ni=+s[c+(p<<4)+4>>2])<T?ni:T,$=ni>$?ni:$,E=(ni=+s[c+(p<<4)+8>>2])<E?ni:E,H=ni>H?ni:H,p=p+1|0}while((0|p)<(0|d))}else X=-34028234663852886e22,$=-34028234663852886e22,H=-34028234663852886e22,z=34028234663852886e22,T=34028234663852886e22,E=34028234663852886e22;for(s[i+100>>2]=X+z,s[i+104>>2]=$+T,s[i+108>>2]=E+H,s[i+112>>2]=0,z=X-z,T=$-T,E=H-E,s[i+116>>2]=z,s[i+120>>2]=T,s[i+124>>2]=E,s[i+128>>2]=0,M/=1.7320507764816284,E=.0009765625*(.5*+s[(d=i+((c=z<T?T<E?2:1:z<E?2:0)<<2)+116|0)>>2]-M),s[i+88>>2]=M,s[i+84>>2]=M,s[i+80>>2]=M,T=.5*+s[d>>2],s[(d=i+(c<<2)+80|0)>>2]=T,p=0;;){if(0|te(i)){d=470;break}if(T-=E,s[d>>2]=T,(0|(p=p+1|0))>=1024){d=469;break}}i:do{if(469==(0|d))s[i+88>>2]=M,s[i+84>>2]=M,s[i+80>>2]=M;else if(470==(0|d)){for(M=.0009765625*(+s[i+96>>2]-M),z=+s[i+((1<<(d=1<<c&3)&3)<<2)+80>>2],c=0;E=+s[i+(d<<2)+80>>2],s[i+(d<<2)+80>>2]=M+E,T=M+ +s[i+((1<<d&3)<<2)+80>>2],s[i+((1<<d&3)<<2)+80>>2]=T,c=c+1|0,0|te(i);){if((0|c)>=1024)break i;z=T}s[i+(d<<2)+80>>2]=E,s[i+((1<<d&3)<<2)+80>>2]=z}}while(0);if(0|N&&(o[4548]=1+(0|o[4548]),ke(0|o[N+-4>>2])),0|F&&(o[4548]=1+(0|o[4548]),ke(0|o[F+-4>>2])),0|S&&(o[4548]=1+(0|o[4548]),ke(0|o[S+-4>>2])),0|D&&(o[4548]=1+(0|o[4548]),ke(0|o[D+-4>>2])),0|v&&(o[4548]=1+(0|o[4548]),ke(0|o[v+-4>>2])),(0|(c=0|o[h>>2]))>0){m=0;do{i=w+(36*m|0)+4|0,p=w+(36*m|0)+16|0,0|(d=0|o[(v=w+(36*m|0)+12|0)>>2])&&(0|n[p|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[d+-4>>2])),o[v>>2]=0),n[p|0]=1,o[v>>2]=0,o[i>>2]=0,o[w+(36*m|0)+8>>2]=0,m=m+1|0}while((0|m)!=(0|c));w=0|o[t>>2]}return 0|w&&(0|n[e+164|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[w+-4>>2])),o[t>>2]=0),n[e+164|0]=1,o[t>>2]=0,o[h>>2]=0,o[e+156>>2]=0,0|l&&(o[4548]=1+(0|o[4548]),ke(0|o[l+-4>>2])),function(i){var t=0,e=0;t=u,!(0|(e=0|o[(i=i|0)+52>>2]))||(0|n[i+56|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+52>>2]=0);n[i+56|0]=1,o[i+52>>2]=0,o[i+44>>2]=0,o[i+48>>2]=0,!(0|(e=0|o[i+32>>2]))||(0|n[i+36|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+32>>2]=0);if(n[i+36|0]=1,o[i+32>>2]=0,o[i+24>>2]=0,o[i+28>>2]=0,!(0|(e=0|o[i+12>>2])))return n[i+16|0]=1,o[i+12>>2]=0,o[i+4>>2]=0,o[(e=i+8|0)>>2]=0,void(u=t);0|n[i+16|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2]));o[i+12>>2]=0,n[i+16|0]=1,o[i+12>>2]=0,o[i+4>>2]=0,o[(e=i+8|0)>>2]=0,u=t}(e+196|0),0|f?(o[4548]=1+(0|o[4548]),ke(0|o[f+-4>>2]),u=e,1):(u=e,1)},function(i,t){return t|=0,0|o[(0|o[(i|=0)+20>>2])+(t<<2)>>2]},function(i,t){t|=0;var e,n=0;return e=u,i=0|o[(i|=0)+64>>2],0|(n=0|o[i+8>>2])?(t=0|o[i+12>>2],o[i+12>>2]=o[t>>2],o[i+8>>2]=n+-1,u=e,0|(n=t)):(o[4546]=1+(0|o[4546]),0|(t=0|ye(t+19|0))?(o[(t+19&-16)-4>>2]=t,u=e,0|(n=t+19&-16)):(u=e,0|(n=0)))},function(i,t){var e,n;return t|=0,e=u,n=0|o[(i|=0)+8>>2],Pn[63&o[n+60>>2]](t,n,0|o[i+4>>2]),u=e,0},function(i,t){t|=0;var e,n,r,f,a=0;return e=u,u=u+32|0,a=0|o[(i|=0)+184>>2],0==+s[a+4>>2]?(u=e,0|(t=0)):(t=0|o[t>>2],0|Sn[31&o[8+(0|o[a>>2])>>2]](a,0|o[t+188>>2])?(r=0|o[i+192>>2],f=0|o[t+192>>2],a=0|o[i+184>>2],n=+s[i+188>>2],o[e>>2]=0,o[e+4>>2]=f,o[e+8>>2]=t,o[e+12>>2]=t+4,o[e+16>>2]=-1,o[e+20>>2]=-1,Wi(r,i+36|0,i+100|0,e,a,n),u=e,0|(t=1)):(u=e,0|(t=1)))},function(i,t){t|=0;var e,n,r=0;return e=u,u=u+32|0,r=0|o[(i|=0)+216>>2],0==+s[r+4>>2]?(u=e,0|(t=0)):(t=0|o[t>>2],0|Sn[31&o[8+(0|o[r>>2])>>2]](r,0|o[t+188>>2])?(n=0|o[t+192>>2],r=0|o[i+216>>2],o[e>>2]=0,o[e+4>>2]=n,o[e+8>>2]=t,o[e+12>>2]=t+4,o[e+16>>2]=-1,o[e+20>>2]=-1,Ui(i+68|0,i+132|0,e,r),u=e,0|(t=1)):(u=e,0|(t=1)))},function(i,t){var e;return t|=0,e=u,i=0|o[(i|=0)+12>>2],i=0|Sn[31&o[8+(0|o[i>>2])>>2]](i,t),u=e,0|i},function(i,t){var e;return t|=0,e=u,i=0|o[(i|=0)+20>>2],i=0|Sn[31&o[8+(0|o[i>>2])>>2]](i,t),u=e,0|i},function(i,t){return 1},function(i,t){return 1},function(i,t){var e;return t|=0,e=u,i=0|o[(i|=0)+4>>2],(0|o[t>>2])==(0|i)?(u=e,0|(i=1)):(i=(0|o[t+4>>2])==(0|i),u=e,0|i)},function(i,t){t|=0;var e,n=0;return e=u,n=0|o[(i|=0)+4>>2],(0|o[t>>2])!=(0|n)&&(0|o[t+4>>2])!=(0|n)?(u=e,0):(n=0|o[i+8>>2],Pn[63&o[32+(0|o[n>>2])>>2]](n,t,0|o[i+12>>2]),u=e,0)},Xe,Xe,Xe,Xe,Xe,Xe,Xe,Xe,Xe,Xe,Xe,Xe],xn=[function(i,t,e){return C(25),0},function(i,t,e){t|=0,e|=0;var n,r=0,f=0,a=0,c=0,u=0;return s[(i|=0)+4>>2]=+s[t+24>>2],n=0|o[t>>2],o[i+8>>2]=n,e?(o[i+52>>2]=o[t+8>>2],o[i+56>>2]=o[t+12>>2],o[i+60>>2]=o[t+16>>2],o[i+64>>2]=o[t+20>>2]):(u=+s[t+8>>2],c=+s[t+12>>2],a=+s[t+16>>2],f=+s[n+20>>2]*u+ +s[n+24>>2]*c+ +s[n+28>>2]*a,r=+s[n+36>>2]*u+ +s[n+40>>2]*c+ +s[n+44>>2]*a,s[i+52>>2]=+s[n+4>>2]*u+ +s[n+8>>2]*c+ +s[n+12>>2]*a,s[i+56>>2]=f,s[i+60>>2]=r,s[i+64>>2]=0),u=+s[t+24>>2],s[i+68>>2]=(1-u)*+s[i+20>>2]+ +s[i+36>>2]*u,s[i+72>>2]=(1-u)*+s[i+24>>2]+u*+s[i+40>>2],s[i+76>>2]=(1-u)*+s[i+28>>2]+u*+s[i+44>>2],+ +s[t+24>>2]},function(i,t,e){i|=0,t|=0,e|=0;var n,r=0;n=u;do{if(4==(0|t)|3==(0|t)){if(e>>>0<3){r=+s[i+596>>2];break}r=(e+-3|0)>>>0<3?+s[i+604>>2]:0}else if(2==(0|t)|1==(0|t)){if(e>>>0<3){r=+s[i+600>>2];break}r=(e+-3|0)>>>0<3?+s[i+432>>2]:0}else r=0}while(0);return u=n,+r},function(i,t,e){i|=0,e|=0;var n,r,f=0,a=0,c=0,h=0,l=0;return n=u,(0|(r=0|o[(t|=0)>>2]))==(0|o[i+80>>2])||4&o[r+204>>2]||(+s[i+28>>2]-+s[i+12>>2])*+s[t+8>>2]+(+s[i+32>>2]-+s[i+16>>2])*+s[t+12>>2]+(+s[i+36>>2]-+s[i+20>>2])*+s[t+16>>2]>=-+s[i+84>>2]?(u=n,+(f=1)):(s[i+4>>2]=+s[t+40>>2],o[i+76>>2]=r,e?(o[i+44>>2]=o[t+8>>2],o[i+48>>2]=o[t+12>>2],o[i+52>>2]=o[t+16>>2],o[i+56>>2]=o[t+20>>2]):(l=+s[t+8>>2],h=+s[t+12>>2],c=+s[t+16>>2],a=l*+s[r+20>>2]+h*+s[r+24>>2]+c*+s[r+28>>2],f=l*+s[r+36>>2]+h*+s[r+40>>2]+c*+s[r+44>>2],s[i+44>>2]=+s[r+4>>2]*l+ +s[r+8>>2]*h+ +s[r+12>>2]*c,s[i+48>>2]=a,s[i+52>>2]=f,s[i+56>>2]=0),o[i+60>>2]=o[t+24>>2],o[i+64>>2]=o[t+28>>2],o[i+68>>2]=o[t+32>>2],o[i+72>>2]=o[t+36>>2],l=+s[t+40>>2],u=n,+l)},function(i,t,e){t|=0,e|=0;var n,r,f=0,a=0,c=0,h=0,l=0;return n=u,s[(i|=0)+4>>2]=+s[t+40>>2],r=0|o[t>>2],o[i+76>>2]=r,e?(o[i+44>>2]=o[t+8>>2],o[i+48>>2]=o[t+12>>2],o[i+52>>2]=o[t+16>>2],o[i+56>>2]=o[t+20>>2],e=i+60|0,i=t+24|0,o[e+0>>2]=o[i+0>>2],o[e+4>>2]=o[i+4>>2],o[e+8>>2]=o[i+8>>2],o[e+12>>2]=o[i+12>>2],f=+s[t+40>>2],u=n,+f):(l=+s[t+8>>2],h=+s[t+12>>2],c=+s[t+16>>2],a=l*+s[r+20>>2]+h*+s[r+24>>2]+c*+s[r+28>>2],f=l*+s[r+36>>2]+h*+s[r+40>>2]+c*+s[r+44>>2],s[i+44>>2]=+s[r+4>>2]*l+ +s[r+8>>2]*h+ +s[r+12>>2]*c,s[i+48>>2]=a,s[i+52>>2]=f,s[i+56>>2]=0,e=i+60|0,i=t+24|0,o[e+0>>2]=o[i+0>>2],o[e+4>>2]=o[i+4>>2],o[e+8>>2]=o[i+8>>2],o[e+12>>2]=o[i+12>>2],f=+s[t+40>>2],u=n,+f)},function(i,t,e){i|=0,t|=0,e|=0;var n,r=0;n=u;do{if(-1==(0|e)){if(4==(0|t)|3==(0|t)){r=+s[i+340>>2];break}if(2==(0|t)|1==(0|t)){r=+s[i+336>>2];break}r=34028234663852886e22;break}r=34028234663852886e22}while(0);return u=n,+r},function(i,t,e){var n,r,f;return i|=0,t|=0,e|=0,n=u,u=u+16|0,o[n>>2]=-1,o[n+4>>2]=o[i+16>>2],0|o[t+4>>2]||(o[t+4>>2]=n),f=0|o[i+12>>2],r=+xn[7&o[12+(0|o[f>>2])>>2]](f,t,e),s[i+4>>2]=+s[4+(0|o[i+12>>2])>>2],u=n,+r},function(i,t,e){var n,r,f;return i|=0,t|=0,e|=0,n=u,u=u+16|0,o[n>>2]=-1,o[n+4>>2]=o[i+24>>2],0|o[t+4>>2]||(o[t+4>>2]=n),f=0|o[i+20>>2],r=+xn[7&o[12+(0|o[f>>2])>>2]](f,t,e),s[i+4>>2]=+s[4+(0|o[i+20>>2])>>2],u=n,+r}],Mn=[$e,function(i,t,e,n,r,f,a,c,h,l){if(i|=0,t|=0,e|=0,n|=0,r|=0,f|=0,a|=0,c|=0,h|=0,l|=0,l=u,u=u+16|0,It(3456),Tn[3&o[44+(0|o[i>>2])>>2]](i,t,e,n,r,f,a,c,h),Tn[3&o[48+(0|o[i>>2])>>2]](i,t,e,n,r,f,a,c,h),Dn[1&o[36+(0|o[i>>2])>>2]](i,t,e,c),a=0|o[4564],n=(0|o[a+16>>2])-1|0,o[a+16>>2]=n,0|n)return u=l,0;do{if(0|o[a+4>>2]){if(G(0|l,0),n=0|o[4550],s[a+8>>2]=+(((0|o[l+4>>2])-(0|o[n+4>>2])+(1e6*((0|o[l>>2])-(0|o[n>>2])|0)|0)-(0|o[a+12>>2])|0)>>>0)/1e3+ +s[a+8>>2],0|o[a+16>>2])return u=l,0;a=0|o[4564];break}}while(0);return o[4564]=o[a+20>>2],u=l,0},function(i,t,e,r,f,a,c,h,l,d){t|=0,e|=0,r|=0,f|=0,a|=0,c|=0,h|=0,l|=0,d|=0;var v=0,b=0,_=0,w=0,p=0,m=0,y=0,k=0,C=0;if(a=u,d=0|o[(i|=0)+48>>2],e=0|o[i+28>>2],f=0|o[i+68>>2],1&o[l+64>>2]){if((0|d)>0){r=0|o[i+136>>2],_=0|o[i+192>>2],w=0;do{m=0|o[(p=r+(w<<2)|0)>>2],w=w+1|0,_=1013904223+(0|g(_,1664525))|0,w>>>0<65537?(y=_>>>16^_,w>>>0<257&&(w>>>0<17?(y^=(y>>>8^y)>>>4^y>>>8,w>>>0<5&&(y^=w>>>0<3?(y>>>2^y)>>>1^y>>>2:y>>>2)):y^=y>>>8)):y=_,y=r+((y>>>0)%(w>>>0)<<2)|0,o[p>>2]=o[y>>2],o[y>>2]=m}while((0|w)!=(0|d));o[i+192>>2]=_}if((0|o[l+20>>2])>(0|t)){if((0|e)>0){p=0|o[i+116>>2],w=0|o[i+192>>2],_=0;do{d=0|o[(r=p+(_<<2)|0)>>2],_=_+1|0,w=1013904223+(0|g(w,1664525))|0,_>>>0<65537?(m=w>>>16^w,_>>>0<257&&(_>>>0<17?(m^=(m>>>8^m)>>>4^m>>>8,_>>>0<5&&(m^=_>>>0<3?(m>>>2^m)>>>1^m>>>2:m>>>2)):m^=m>>>8)):m=w,y=p+((m>>>0)%(_>>>0)<<2)|0,o[r>>2]=o[y>>2],o[y>>2]=d}while((0|_)!=(0|e));o[i+192>>2]=w}if((0|f)>0){w=0|o[i+156>>2],_=0|o[i+192>>2],r=0;do{e=0|o[(d=w+(r<<2)|0)>>2],r=r+1|0,_=1013904223+(0|g(_,1664525))|0,r>>>0<65537?(p=_>>>16^_,r>>>0<257&&(r>>>0<17?(p^=(p>>>8^p)>>>4^p>>>8,r>>>0<5&&(p^=r>>>0<3?(p>>>2^p)>>>1^p>>>2:p>>>2)):p^=p>>>8)):p=_,y=w+((p>>>0)%(r>>>0)<<2)|0,o[d>>2]=o[y>>2],o[y>>2]=e}while((0|r)!=(0|f));o[i+192>>2]=_}}}if(r=0|o[i+48>>2],!(256&o[l+64>>2])){if((0|r)>0){v=0;do{f=0|o[(0|o[i+136>>2])+(v<<2)>>2],b=0|o[i+56>>2],(0|o[b+(152*f|0)+136>>2])>(0|t)&&(Xt((r=0|o[i+16>>2])+(244*(0|o[b+(152*f|0)+144>>2])|0)|0,r+(244*(0|o[b+(152*f|0)+148>>2])|0)|0,b+(152*f|0)|0),r=0|o[i+48>>2]),v=v+1|0}while((0|v)<(0|r))}if((0|o[l+20>>2])<=(0|t))return u=a,0;if((0|h)>0){b=0;do{t=0|o[(v=c+(b<<2)|0)>>2],0|n[t+20|0]&&(p=0|Zt(i,0|o[t+28>>2],+s[l+12>>2]),y=0|Zt(i,0|o[32+(0|o[v>>2])>>2],+s[l+12>>2]),m=0|o[i+16>>2],w=0|o[v>>2],Rn[15&o[24+(0|o[w>>2])>>2]](w,m+(244*p|0)|0,m+(244*y|0)|0,+s[l+12>>2])),b=b+1|0}while((0|b)!=(0|h))}if((0|(l=0|o[i+28>>2]))>0){h=0;do{y=0|o[(0|o[i+116>>2])+(h<<2)>>2],m=0|o[i+36>>2],$t((p=0|o[i+16>>2])+(244*(0|o[m+(152*y|0)+144>>2])|0)|0,p+(244*(0|o[m+(152*y|0)+148>>2])|0)|0,m+(152*y|0)|0),h=h+1|0}while((0|h)!=(0|l))}if((0|(l=0|o[i+68>>2]))>0){h=0;do{c=0|o[(0|o[i+156>>2])+(h<<2)>>2],v=0|o[i+76>>2],(k=+s[(0|o[i+36>>2])+(152*(0|o[v+(152*c|0)+140>>2])|0)+100>>2])>0&&(k*=+s[v+(152*c|0)+104>>2],s[v+(152*c|0)+120>>2]=-k,s[v+(152*c|0)+124>>2]=k,Xt((y=0|o[i+16>>2])+(244*(0|o[v+(152*c|0)+144>>2])|0)|0,y+(244*(0|o[v+(152*c|0)+148>>2])|0)|0,v+(152*c|0)|0)),h=h+1|0}while((0|h)!=(0|l))}if((0|(l=0|o[i+88>>2]))<=0)return u=a,0;h=0;do{c=0|o[i+96>>2],(k=+s[(0|o[i+36>>2])+(152*(0|o[c+(152*h|0)+140>>2])|0)+100>>2])>0&&(k=k*(C=+s[c+(152*h|0)+104>>2])>C?C:k*C,s[c+(152*h|0)+120>>2]=-k,s[c+(152*h|0)+124>>2]=k,Xt((y=0|o[i+16>>2])+(244*(0|o[c+(152*h|0)+144>>2])|0)|0,y+(244*(0|o[c+(152*h|0)+148>>2])|0)|0,c+(152*h|0)|0)),h=h+1|0}while((0|h)!=(0|l));return u=a,0}if((0|r)>0){f=0;do{d=0|o[(0|o[i+136>>2])+(f<<2)>>2],e=0|o[i+56>>2],(0|o[e+(152*d|0)+136>>2])>(0|t)&&(Xt((r=0|o[i+16>>2])+(244*(0|o[e+(152*d|0)+144>>2])|0)|0,r+(244*(0|o[e+(152*d|0)+148>>2])|0)|0,e+(152*d|0)|0),r=0|o[i+48>>2]),f=f+1|0}while((0|f)<(0|r))}if((0|o[l+20>>2])<=(0|t))return u=a,0;if((0|h)>0){t=0;do{f=0|o[(e=c+(t<<2)|0)>>2],0|n[f+20|0]&&(p=0|Zt(i,0|o[f+28>>2],+s[l+12>>2]),y=0|Zt(i,0|o[32+(0|o[e>>2])>>2],+s[l+12>>2]),m=0|o[i+16>>2],w=0|o[e>>2],Rn[15&o[24+(0|o[w>>2])>>2]](w,m+(244*p|0)|0,m+(244*y|0)|0,+s[l+12>>2])),t=t+1|0}while((0|t)!=(0|h))}if(d=0|o[l+64>>2],h=0|o[i+28>>2],512&d){if((0|h)<=0)return u=a,0;e=0;do{f=0|o[(0|o[i+116>>2])+(e<<2)>>2],t=0|o[i+36>>2],$t((c=0|o[i+16>>2])+(244*(0|o[t+(152*f|0)+144>>2])|0)|0,c+(244*(0|o[t+(152*f|0)+148>>2])|0)|0,t+(152*f|0)|0),k=+s[t+(152*f|0)+100>>2],f=0|g(e,1+(d>>>4&1)|0),t=0|o[(0|o[i+156>>2])+(f<<2)>>2],c=0|o[i+76>>2],k>0&&(C=k*+s[c+(152*t|0)+104>>2],s[c+(152*t|0)+120>>2]=-C,s[c+(152*t|0)+124>>2]=C,Xt((y=0|o[i+16>>2])+(244*(0|o[c+(152*t|0)+144>>2])|0)|0,y+(244*(0|o[c+(152*t|0)+148>>2])|0)|0,c+(152*t|0)|0)),16&o[l+64>>2]&&(v=0|o[(0|o[i+156>>2])+(f+1<<2)>>2],b=0|o[i+76>>2],k>0)&&(C=k*+s[b+(152*v|0)+104>>2],s[b+(152*v|0)+120>>2]=-C,s[b+(152*v|0)+124>>2]=C,Xt((y=0|o[i+16>>2])+(244*(0|o[b+(152*v|0)+144>>2])|0)|0,y+(244*(0|o[b+(152*v|0)+148>>2])|0)|0,b+(152*v|0)|0)),e=e+1|0}while((0|e)!=(0|h));return u=a,0}if((0|h)>0){l=0;do{y=0|o[(0|o[i+116>>2])+(l<<2)>>2],m=0|o[i+36>>2],$t((p=0|o[i+16>>2])+(244*(0|o[m+(152*y|0)+144>>2])|0)|0,p+(244*(0|o[m+(152*y|0)+148>>2])|0)|0,m+(152*y|0)|0),l=l+1|0}while((0|l)!=(0|h))}if((0|(l=0|o[i+68>>2]))>0){h=0;do{c=0|o[(0|o[i+156>>2])+(h<<2)>>2],v=0|o[i+76>>2],(k=+s[(0|o[i+36>>2])+(152*(0|o[v+(152*c|0)+140>>2])|0)+100>>2])>0&&(C=k*+s[v+(152*c|0)+104>>2],s[v+(152*c|0)+120>>2]=-C,s[v+(152*c|0)+124>>2]=C,Xt((y=0|o[i+16>>2])+(244*(0|o[v+(152*c|0)+144>>2])|0)|0,y+(244*(0|o[v+(152*c|0)+148>>2])|0)|0,v+(152*c|0)|0)),h=h+1|0}while((0|h)!=(0|l))}if((0|(c=0|o[i+88>>2]))<=0)return u=a,0;h=0;do{l=0|o[i+96>>2],(k=+s[(0|o[i+36>>2])+(152*(0|o[l+(152*h|0)+140>>2])|0)+100>>2])>0&&(C=k*(C=+s[l+(152*h|0)+104>>2])>C?C:k*C,s[l+(152*h|0)+120>>2]=-C,s[l+(152*h|0)+124>>2]=C,Xt((y=0|o[i+16>>2])+(244*(0|o[l+(152*h|0)+144>>2])|0)|0,y+(244*(0|o[l+(152*h|0)+148>>2])|0)|0,l+(152*h|0)|0)),h=h+1|0}while((0|h)!=(0|c));return u=a,0},$e],En=[function(i,t,e,n,r){r=+r,C(27)},function(i,t,e,n,r){r=+r}],Tn=[He,function(i,t,e,r,f,a,c,h,l){t|=0,e|=0,r|=0,f|=0,a|=0,c|=0,h|=0,l|=0;var d=0,v=0,w=0,p=0,m=0,y=0,k=0,g=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0,L=0,I=0,A=0,D=0,O=0,R=0,P=0,N=0,B=0,F=0,V=0,U=0,W=0,z=0,X=0,$=0,H=0,q=0,K=0,Y=0,Q=0;if(l=u,u=u+320|0,o[(i|=0)+188>>2]=-1,It(3384),o[i+184>>2]=0,(0|e)>0){w=0;do{o[212+(0|o[t+(w<<2)>>2])>>2]=-1,w=w+1|0}while((0|w)!=(0|e))}if((0|(p=0|o[i+12>>2]))<(e+1|0)){if(e+1|0&&(o[4546]=1+(0|o[4546]),0|(v=0|ye(16+(244*(e+1|0)|3)|0)))?(o[(v+19&-16)-4>>2]=v,v=v+19&-16):v=0,(0|(w=0|o[i+8>>2]))>0){p=0;do{S=v+(244*p|0)|0,j=(Q=0|o[i+16>>2])+(244*p|0)|0,o[S+0>>2]=o[j+0>>2],o[S+4>>2]=o[j+4>>2],o[S+8>>2]=o[j+8>>2],o[S+12>>2]=o[j+12>>2],j=Q+(244*p|0)+16|0,o[(S=v+(244*p|0)+16|0)+0>>2]=o[j+0>>2],o[S+4>>2]=o[j+4>>2],o[S+8>>2]=o[j+8>>2],o[S+12>>2]=o[j+12>>2],j=Q+(244*p|0)+32|0,o[(S=v+(244*p|0)+32|0)+0>>2]=o[j+0>>2],o[S+4>>2]=o[j+4>>2],o[S+8>>2]=o[j+8>>2],o[S+12>>2]=o[j+12>>2],j=Q+(244*p|0)+48|0,o[(S=v+(244*p|0)+48|0)+0>>2]=o[j+0>>2],o[S+4>>2]=o[j+4>>2],o[S+8>>2]=o[j+8>>2],o[S+12>>2]=o[j+12>>2],Se(v+(244*p|0)+64|0,Q+(244*p|0)+64|0,180),p=p+1|0}while((0|p)!=(0|w))}0|(w=0|o[i+16>>2])&&(0|n[i+20|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[w+-4>>2])),o[i+16>>2]=0),n[i+20|0]=1,o[i+16>>2]=v,o[i+12>>2]=e+1,p=e+1|0,v=i+8|0}else v=i+8|0;if(Ce(l+56|0,0,244),(0|(w=0|o[v>>2]))<0){(0|p)<0&&(0|(p=0|o[i+16>>2])&&(0|n[i+20|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[p+-4>>2])),o[i+16>>2]=0),n[i+20|0]=1,o[i+16>>2]=0,o[i+12>>2]=0);do{Q=0|o[i+16>>2],o[(S=Q+(244*w|0)|0)+0>>2]=o[l+56>>2],o[S+4>>2]=o[l+60>>2],o[S+8>>2]=o[l+64>>2],o[S+12>>2]=o[l+68>>2],o[(S=Q+(244*w|0)+16|0)+0>>2]=o[l+72>>2],o[S+4>>2]=o[l+76>>2],o[S+8>>2]=o[l+80>>2],o[S+12>>2]=o[l+84>>2],o[(S=Q+(244*w|0)+32|0)+0>>2]=o[l+88>>2],o[S+4>>2]=o[l+92>>2],o[S+8>>2]=o[l+96>>2],o[S+12>>2]=o[l+100>>2],o[(S=Q+(244*w|0)+48|0)+0>>2]=o[l+104>>2],o[S+4>>2]=o[l+108>>2],o[S+8>>2]=o[l+112>>2],o[S+12>>2]=o[l+116>>2],Se(Q+(244*w|0)+64|0,l+120|0,180),w=w+1|0}while(0|w)}if(o[v>>2]=0,(0|e)>0){v=0;do{p=0|Zt(i,0|o[(w=t+(v<<2)|0)>>2],+s[h+12>>2]),0|(w=0|o[w>>2])&&2&o[w+236>>2]&&0!=+s[w+344>>2]&&(d=0|o[i+16>>2],2&o[w+504>>2])&&(A=+s[h+76>>2],X=1/+s[w+396>>2],q=1/+s[w+400>>2],D=1/+s[w+404>>2],V=+s[w+4>>2],U=+s[w+8>>2],W=+s[w+12>>2],z=+s[w+20>>2],H=+s[w+24>>2],Y=+s[w+28>>2],$=+s[w+36>>2],K=+s[w+40>>2],L=+s[w+44>>2],x=(V*X*V+U*q*U+W*D*W)*(T=+s[w+328>>2])+(X*V*z+q*U*H+D*W*Y)*(M=+s[w+332>>2])+(X*V*$+q*U*K+D*W*L)*(I=+s[w+336>>2]),E=(V*X*z+U*q*H+W*D*Y)*T+(z*X*z+H*q*H+Y*D*Y)*M+(X*z*$+q*H*K+D*Y*L)*I,(D=(M*(L=I*($*X*$+K*q*K+L*D*L)+(T*(V*X*$+U*q*K+W*D*L)+M*(z*X*$+H*q*K+Y*D*L)))-I*E)*(M*L-I*E)+(I*x-T*L)*(I*x-T*L)+(T*E-M*x)*(T*E-M*x))>A*A?(A=(M*L-I*E)*(Y=1/+_(+D)*A),L=Y*(I*x-T*L),x=Y*(T*E-M*x)):(A=M*L-I*E,L=I*x-T*L,x=T*E-M*x),q=+s[h+12>>2],K=(A*+s[w+268>>2]+L*+s[w+284>>2]+x*+s[w+300>>2])*q,Y=q*(A*+s[w+272>>2]+L*+s[w+288>>2]+x*+s[w+304>>2]),s[d+(244*p|0)+224>>2]=+s[d+(244*p|0)+224>>2]-(A*+s[w+264>>2]+L*+s[w+280>>2]+x*+s[w+296>>2])*q,s[d+(244*p|0)+228>>2]=+s[d+(244*p|0)+228>>2]-K,s[d+(244*p|0)+232>>2]=+s[d+(244*p|0)+232>>2]-Y),v=v+1|0}while((0|v)<(0|e))}if((0|c)>0){e=0;do{Q=0|o[a+(e<<2)>>2],nn[255&o[8+(0|o[Q>>2])>>2]](Q),s[Q+36>>2]=0,e=e+1|0}while((0|e)<(0|c))}if((0|(d=0|o[i+168>>2]))<(0|c)&&(0|o[i+172>>2])<(0|c)){if(0|c?(o[4546]=1+(0|o[4546]),0|(e=0|ye(16+(c<<3|3)|0))?(o[(e+19&-16)-4>>2]=e,e=e+19&-16):e=0,d=0|o[i+168>>2]):e=0,(0|d)>0){t=0;do{0|(v=e+(t<<3)|0)&&(S=(0|o[i+176>>2])+(t<<3)|0,Q=0|o[S+4>>2],o[v>>2]=o[S>>2],o[v+4>>2]=Q),t=t+1|0}while((0|t)!=(0|d))}0|(d=0|o[i+176>>2])&&(0|n[i+180|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[d+-4>>2])),o[i+176>>2]=0),n[i+180|0]=1,o[i+176>>2]=e,o[i+172>>2]=c}if(o[i+168>>2]=c,(0|c)>0){e=0,d=0;do{if(v=(t=0|o[i+176>>2])+(e<<3)|0,p=0|o[(w=a+(e<<2)|0)>>2],0|(m=0|o[p+44>>2])){m=(p=m+0|0)+64|0;do{o[p>>2]=0,p=p+4|0}while((0|p)<(0|m));p=0|o[w>>2]}0|n[p+20|0]?(on[127&o[16+(0|o[p>>2])>>2]](p,v),t=0|o[v>>2]):(o[v>>2]=0,o[t+(e<<3)+4>>2]=0,t=0),d=t+d|0,e=e+1|0}while((0|e)<(0|c))}else d=0;if((0|(e=0|o[i+48>>2]))<(0|d)&&(0|o[i+52>>2])<(0|d)){if(0|d?(o[4546]=1+(0|o[4546]),0|(e=0|ye(16+(152*d|3)|0))?(o[(e+19&-16)-4>>2]=e,t=e+19&-16):t=0,e=0|o[i+48>>2]):t=0,(0|e)>0){v=0;do{Se(t+(152*v|0)|0,(0|o[i+56>>2])+(152*v|0)|0,152),v=v+1|0}while((0|v)!=(0|e))}0|(e=0|o[i+56>>2])&&(0|n[i+60|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+56>>2]=0),n[i+60|0]=1,o[i+56>>2]=t,o[i+52>>2]=d}if(o[i+48>>2]=d,(0|c)>0)for(v=0|o[i+176>>2],e=0,d=0;;){if(0|o[(t=v+(d<<3)|0)>>2]){if(C=0|o[i+56>>2],k=0|o[(g=a+(d<<2)|0)>>2],v=0|o[k+28>>2],w=0|o[k+32>>2],y=0|Zt(i,v,+s[h+12>>2]),m=0|Zt(i,w,+s[h+12>>2]),p=0|o[i+16>>2],(0|(S=0|o[k+24>>2]))<=0&&(S=0|o[h+20>>2]),(0|S)>(0|o[i+184>>2])&&(o[i+184>>2]=S),(0|o[t>>2])>0){j=0;do{Ce(C+(152*(Q=j+e|0)|0)|0,0,152),s[C+(152*Q|0)+120>>2]=-34028234663852886e22,s[C+(152*Q|0)+124>>2]=34028234663852886e22,s[C+(152*Q|0)+100>>2]=0,s[C+(152*Q|0)+96>>2]=0,o[C+(152*Q|0)+144>>2]=y,o[C+(152*Q|0)+148>>2]=m,o[C+(152*Q|0)+136>>2]=S,j=j+1|0}while((0|j)<(0|o[t>>2]))}if(o[p+(244*y|0)+64>>2]=0,o[p+(244*y|0)+68>>2]=0,o[p+(244*y|0)+72>>2]=0,o[p+(244*y|0)+76>>2]=0,o[p+(244*y|0)+80>>2]=0,o[p+(244*y|0)+84>>2]=0,o[p+(244*y|0)+88>>2]=0,o[p+(244*y|0)+92>>2]=0,o[p+(244*y|0)+144>>2]=0,o[p+(244*y|0)+148>>2]=0,o[p+(244*y|0)+152>>2]=0,o[p+(244*y|0)+156>>2]=0,o[p+(244*y|0)+160>>2]=0,o[p+(244*y|0)+164>>2]=0,o[p+(244*y|0)+168>>2]=0,o[p+(244*y|0)+172>>2]=0,o[p+(244*m|0)+64>>2]=0,o[p+(244*m|0)+68>>2]=0,o[p+(244*m|0)+72>>2]=0,o[p+(244*m|0)+76>>2]=0,o[p+(244*m|0)+80>>2]=0,o[p+(244*m|0)+84>>2]=0,o[p+(244*m|0)+88>>2]=0,o[p+(244*m|0)+92>>2]=0,o[p+(244*m|0)+144>>2]=0,o[p+(244*m|0)+148>>2]=0,o[p+(244*m|0)+152>>2]=0,o[p+(244*m|0)+156>>2]=0,o[p+(244*m|0)+160>>2]=0,o[p+(244*m|0)+164>>2]=0,o[p+(244*m|0)+168>>2]=0,o[p+(244*m|0)+172>>2]=0,s[l>>2]=1/+s[h+12>>2],s[l+4>>2]=+s[h+32>>2],o[l+8>>2]=C+(152*e|0)+16,o[l+12>>2]=C+(152*e|0),o[l+16>>2]=C+(152*e|0)+48,o[l+20>>2]=C+(152*e|0)+32,o[l+24>>2]=38,o[l+28>>2]=C+(152*e|0)+112,s[(Q=C+(152*e|0)+116|0)>>2]=+s[h+40>>2],s[l+52>>2]=+s[h+4>>2],o[l+32>>2]=Q,o[l+36>>2]=C+(152*e|0)+120,o[l+40>>2]=C+(152*e|0)+124,o[l+48>>2]=o[h+20>>2],Q=0|o[g>>2],on[127&o[20+(0|o[Q>>2])>>2]](Q,l),(0|o[t>>2])>0){j=0;do{S=j+e|0,Q=16+(0|o[g>>2])|0,x=+s[Q>>2],+s[C+(152*S|0)+124>>2]>=x&&(s[C+(152*S|0)+124>>2]=x,x=+s[Q>>2]),x=-x,+s[C+(152*S|0)+120>>2]<=x&&(s[C+(152*S|0)+120>>2]=x),o[C+(152*S|0)+132>>2]=k,Q=0|o[k+28>>2],K=+s[C+(152*S|0)>>2],P=+s[C+(152*S|0)+4>>2],N=+s[C+(152*S|0)+8>>2],x=(K*+s[Q+280>>2]+P*+s[Q+284>>2]+N*+s[Q+288>>2])*+s[Q+548>>2],R=(K*+s[Q+296>>2]+P*+s[Q+300>>2]+N*+s[Q+304>>2])*+s[Q+552>>2],s[C+(152*S|0)+64>>2]=(+s[Q+264>>2]*K+ +s[Q+268>>2]*P+ +s[Q+272>>2]*N)*+s[Q+544>>2],s[C+(152*S|0)+68>>2]=x,s[C+(152*S|0)+72>>2]=R,s[C+(152*S|0)+76>>2]=0,Q=0|o[k+32>>2],R=+s[C+(152*S|0)+32>>2],x=+s[C+(152*S|0)+36>>2],N=+s[C+(152*S|0)+40>>2],P=(R*+s[Q+280>>2]+x*+s[Q+284>>2]+N*+s[Q+288>>2])*+s[Q+548>>2],K=(R*+s[Q+296>>2]+x*+s[Q+300>>2]+N*+s[Q+304>>2])*+s[Q+552>>2],s[C+(152*S|0)+80>>2]=(+s[Q+264>>2]*R+ +s[Q+268>>2]*x+ +s[Q+272>>2]*N)*+s[Q+544>>2],s[C+(152*S|0)+84>>2]=P,s[C+(152*S|0)+88>>2]=K,s[C+(152*S|0)+92>>2]=0,K=+s[v+344>>2],P=+s[C+(152*S|0)+16>>2],R=+s[C+(152*S|0)+20>>2],O=+s[C+(152*S|0)+24>>2],D=+s[C+(152*S|0)>>2],A=+s[C+(152*S|0)+4>>2],I=+s[C+(152*S|0)+8>>2],Y=+s[w+344>>2],L=+s[C+(152*S|0)+48>>2],T=+s[C+(152*S|0)+52>>2],E=+s[C+(152*S|0)+56>>2],M=+s[C+(152*S|0)+32>>2],N=P*K*P+R*K*R+O*K*O+(D*(+s[v+264>>2]*D+ +s[v+268>>2]*A+ +s[v+272>>2]*I)+A*(D*+s[v+280>>2]+A*+s[v+284>>2]+I*+s[v+288>>2])+I*(D*+s[v+296>>2]+A*+s[v+300>>2]+I*+s[v+304>>2]))+(L*Y*L+T*Y*T+E*Y*E)+(M*(+s[w+264>>2]*M+ +s[w+268>>2]*x+ +s[w+272>>2]*N)+x*(M*+s[w+280>>2]+x*+s[w+284>>2]+N*+s[w+288>>2])+N*(M*+s[w+296>>2]+x*+s[w+300>>2]+N*+s[w+304>>2])),$=+b(+N)>1.1920928955078125e-7?1/N:0,s[C+(152*S|0)+108>>2]=$,0|o[p+(244*y|0)+240>>2]?(Y=+s[p+(244*y|0)+208>>2],B=+s[p+(244*y|0)+212>>2],F=+s[p+(244*y|0)+216>>2],V=+s[p+(244*y|0)+224>>2],U=+s[p+(244*y|0)+228>>2],W=+s[p+(244*y|0)+232>>2]):(Y=0,B=0,F=0,V=0,U=0,W=0),0|o[p+(244*m|0)+240>>2]?(K=+s[p+(244*m|0)+208>>2],q=+s[p+(244*m|0)+212>>2],H=+s[p+(244*m|0)+216>>2],N=+s[p+(244*m|0)+224>>2],X=+s[p+(244*m|0)+228>>2],z=+s[p+(244*m|0)+232>>2]):(K=0,q=0,H=0,N=0,X=0,z=0),s[C+(152*S|0)+112>>2]=+s[C+(152*S|0)+112>>2]*$+$*(0-+s[l+52>>2]*((Y+ +s[v+312>>2])*P+(B+ +s[v+316>>2])*R+(F+ +s[v+320>>2])*O+((V+ +s[v+328>>2])*D+(U+ +s[v+332>>2])*A+(W+ +s[v+336>>2])*I)+((K+ +s[w+312>>2])*L+(q+ +s[w+316>>2])*T+(H+ +s[w+320>>2])*E+((N+ +s[w+328>>2])*M+(X+ +s[w+332>>2])*x+(z+ +s[w+336>>2])*+s[C+(152*S|0)+40>>2])))),s[C+(152*S|0)+100>>2]=0,j=j+1|0}while((0|j)<(0|o[t>>2]))}v=0|o[i+176>>2],t=0|o[v+(d<<3)>>2]}else t=0;if((0|(d=d+1|0))>=(0|c))break;e=t+e|0}if(Vn[63&o[28+(0|o[i>>2])>>2]](i,r,f,h),r=0|o[i+48>>2],a=0|o[i+28>>2],c=0|o[i+68>>2],(0|(e=0|o[i+128>>2]))<(0|r)&&(0|o[i+132>>2])<(0|r)){if(0|r?(o[4546]=1+(0|o[4546]),0|(f=0|ye(16+(r<<2|3)|0))?(o[(f+19&-16)-4>>2]=f,f=f+19&-16):f=0,e=0|o[i+128>>2]):f=0,(0|e)>0){d=0;do{0|(t=f+(d<<2)|0)&&(o[t>>2]=o[(0|o[i+136>>2])+(d<<2)>>2]),d=d+1|0}while((0|d)!=(0|e))}0|(e=0|o[i+136>>2])&&(0|n[i+140|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2])),o[i+136>>2]=0),n[i+140|0]=1,o[i+136>>2]=f,o[i+132>>2]=r}if(o[i+128>>2]=r,16&o[h+64>>2]){if((0|(h=0|o[i+108>>2]))<a<<1&&(0|o[i+112>>2])<a<<1){if(0|a?(o[4546]=1+(0|o[4546]),0|(h=0|ye(16+(a<<3|3)|0))?(o[(h+19&-16)-4>>2]=h,f=h+19&-16):f=0,h=0|o[i+108>>2]):f=0,(0|h)>0){d=0;do{0|(e=f+(d<<2)|0)&&(o[e>>2]=o[(0|o[i+116>>2])+(d<<2)>>2]),d=d+1|0}while((0|d)!=(0|h))}0|(h=0|o[i+116>>2])&&(0|n[i+120|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[h+-4>>2])),o[i+116>>2]=0),n[i+120|0]=1,o[i+116>>2]=f,o[i+112>>2]=a<<1}o[i+108>>2]=a<<1}else{if((0|(f=0|o[i+108>>2]))<(0|a)&&(0|o[i+112>>2])<(0|a)){if(0|a?(o[4546]=1+(0|o[4546]),0|(h=0|ye(16+(a<<2|3)|0))?(o[(h+19&-16)-4>>2]=h,h=h+19&-16):h=0,f=0|o[i+108>>2]):h=0,(0|f)>0){d=0;do{0|(e=h+(d<<2)|0)&&(o[e>>2]=o[(0|o[i+116>>2])+(d<<2)>>2]),d=d+1|0}while((0|d)!=(0|f))}0|(f=0|o[i+116>>2])&&(0|n[i+120|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[f+-4>>2])),o[i+116>>2]=0),n[i+120|0]=1,o[i+116>>2]=h,o[i+112>>2]=a}o[i+108>>2]=a}if((0|(h=0|o[i+148>>2]))<(0|c)&&(0|o[i+152>>2])<(0|c)){if(0|c?(o[4546]=1+(0|o[4546]),0|(h=0|ye(16+(c<<2|3)|0))?(o[(h+19&-16)-4>>2]=h,f=h+19&-16):f=0,h=0|o[i+148>>2]):f=0,(0|h)>0){d=0;do{0|(e=f+(d<<2)|0)&&(o[e>>2]=o[(0|o[i+156>>2])+(d<<2)>>2]),d=d+1|0}while((0|d)!=(0|h))}0|(h=0|o[i+156>>2])&&(0|n[i+160|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[h+-4>>2])),o[i+156>>2]=0),n[i+160|0]=1,o[i+156>>2]=f,o[i+152>>2]=c}if(o[i+148>>2]=c,(0|r)>0){h=0|o[i+136>>2],f=0;do{o[h+(f<<2)>>2]=f,f=f+1|0}while((0|f)!=(0|r))}if((0|a)>0){h=0|o[i+116>>2],r=0;do{o[h+(r<<2)>>2]=r,r=r+1|0}while((0|r)!=(0|a))}if((0|c)>0){i=0|o[i+156>>2],h=0;do{o[i+(h<<2)>>2]=h,h=h+1|0}while((0|h)!=(0|c))}if(i=0|o[4564],Q=(0|o[i+16>>2])-1|0,o[i+16>>2]=Q,0|Q)return u=l,0;do{if(0|o[i+4>>2]){if(G(l+304|0,0),Q=0|o[4550],s[i+8>>2]=+(((0|o[l+308>>2])-(0|o[Q+4>>2])+(1e6*((0|o[l+304>>2])-(0|o[Q>>2])|0)|0)-(0|o[i+12>>2])|0)>>>0)/1e3+ +s[i+8>>2],0|o[i+16>>2])return u=l,0;i=0|o[4564];break}}while(0);return o[4564]=o[i+20>>2],u=l,0},function(i,t,e,n,r,f,a,c,h){i|=0,t|=0,e|=0,n|=0,r|=0,f|=0,a|=0,c|=0,h|=0;var l,d=0,v=0;if(l=u,u=u+16|0,It(3416),Cn[1&o[32+(0|o[i>>2])>>2]](i,t,e,n,r,f,a,c,h),(0|(d=(0|(v=0|o[i+184>>2]))>(0|(d=0|o[c+20>>2]))?v:d))>0){v=0;do{Mn[3&o[40+(0|o[i>>2])>>2]](i,v,t,e,n,r,f,a,c,h),v=v+1|0}while((0|v)<(0|d))}if(f=0|o[4564],v=(0|o[f+16>>2])-1|0,o[f+16>>2]=v,0|v)return u=l,0;do{if(0|o[f+4>>2]){if(G(0|l,0),v=0|o[4550],s[f+8>>2]=+(((0|o[l+4>>2])-(0|o[v+4>>2])+(1e6*((0|o[l>>2])-(0|o[v>>2])|0)|0)-(0|o[f+12>>2])|0)>>>0)/1e3+ +s[f+8>>2],0|o[f+16>>2])return u=l,0;f=0|o[4564];break}}while(0);return o[4564]=o[f+20>>2],u=l,0},He],Ln=[function(i,t){return t=+t,C(29),0},function(i,t){var e;return t=+t,e=u,t=+mn[15&o[16+(0|o[(i|=0)>>2])>>2]](i)*t,u=e,+t}],In=[function(i,t,e,n,r,o,f,a,s,c,u,h){r=+r,o=+o,f=+f,a=+a,s=+s,u=+u,C(30)}],An=[qe,function(i,t,e,n,r){i|=0,t|=0,e=+e,n|=0,r|=0;var f,a,c,h,l,d=0;return f=u,u=u+48|0,o[f+32>>2]=n,o[f+36>>2]=r,l=+s[t>>2],h=+s[t+4>>2],d=+s[t+8>>2],c=+s[i+56>>2]*l+ +s[i+60>>2]*h+ +s[i+64>>2]*d,a=l*+s[i+72>>2]+h*+s[i+76>>2]+d*+s[i+80>>2],d=l*+s[i+88>>2]+h*+s[i+92>>2]+d*+s[i+96>>2],o[f>>2]=o[i+48>>2],o[f+4>>2]=f+32,s[f+8>>2]=c,s[f+12>>2]=a,s[f+16>>2]=d,s[f+20>>2]=0,s[f+24>>2]=e,n=0|o[i+44>>2],e=+xn[7&o[12+(0|o[n>>2])>>2]](n,f,1),u=f,+e},function(i,t,e,n,r){i|=0,t|=0,e=+e,n|=0,r|=0;var f,a,c,h,l,d=0;return f=u,u=u+48|0,o[f+32>>2]=n,o[f+36>>2]=r,l=+s[t>>2],h=+s[t+4>>2],d=+s[t+8>>2],c=+s[i+56>>2]*l+ +s[i+60>>2]*h+ +s[i+64>>2]*d,a=l*+s[i+72>>2]+h*+s[i+76>>2]+d*+s[i+80>>2],d=l*+s[i+88>>2]+h*+s[i+92>>2]+d*+s[i+96>>2],o[f>>2]=o[i+48>>2],o[f+4>>2]=f+32,s[f+8>>2]=c,s[f+12>>2]=a,s[f+16>>2]=d,s[f+20>>2]=0,s[f+24>>2]=e,n=0|o[i+44>>2],e=+xn[7&o[12+(0|o[n>>2])>>2]](n,f,1),u=f,+e},qe],Dn=[function(i,t,e,n){return C(32),0},function(i,t,e,r){t|=0,e|=0,r|=0;var f=0,a=0,c=0,h=0,l=0,d=0,v=0,_=0,w=0,p=0,m=0;if(t=u,u=u+80|0,a=0|o[(i|=0)+28>>2],!!(4&(h=0|o[r+64>>2]))&(0|a)>0)if(e=0|o[i+36>>2],c=0|o[i+76>>2],16&h){h=0;do{w=0|o[e+(152*h|0)+132>>2],s[w+120>>2]=+s[e+(152*h|0)+100>>2],_=0|o[e+(152*h|0)+140>>2],s[w+124>>2]=+s[c+(152*_|0)+100>>2],s[w+128>>2]=+s[c+(152*(_+1|0)|0)+100>>2],h=h+1|0}while((0|h)!=(0|a))}else{h=0;do{w=0|o[e+(152*h|0)+132>>2],s[w+120>>2]=+s[e+(152*h|0)+100>>2],s[w+124>>2]=+s[c+(152*(0|o[e+(152*h|0)+140>>2])|0)+100>>2],h=h+1|0}while((0|h)!=(0|a))}if((0|(w=0|o[i+48>>2]))>0){_=0;do{a=0|o[i+56>>2],h=0|o[a+(152*_|0)+132>>2],e=a+(152*_|0)+100|0,0|(c=0|o[h+44>>2])&&(v=+s[e>>2],m=0|o[h+28>>2],d=1/+s[r+12>>2],l=v*+s[a+(152*_|0)+20>>2]*+s[m+352>>2]*d,p=v*+s[a+(152*_|0)+24>>2]*+s[m+356>>2]*d,s[c>>2]=+s[a+(152*_|0)+16>>2]*v*+s[m+348>>2]*d+ +s[c>>2],s[c+4>>2]=l+ +s[c+4>>2],s[c+8>>2]=p+ +s[c+8>>2],p=+s[e>>2],m=0|o[h+32>>2],l=1/+s[r+12>>2],d=p*+s[a+(152*_|0)+52>>2]*+s[m+352>>2]*l,v=p*+s[a+(152*_|0)+56>>2]*+s[m+356>>2]*l,s[c+32>>2]=+s[a+(152*_|0)+48>>2]*p*+s[m+348>>2]*l+ +s[c+32>>2],s[c+36>>2]=d+ +s[c+36>>2],s[c+40>>2]=v+ +s[c+40>>2],m=0|o[h+28>>2],v=+s[e>>2],d=1/+s[r+12>>2],l=+s[a+(152*_|0)+4>>2]*+s[m+548>>2]*v*d,p=v*+s[a+(152*_|0)+8>>2]*+s[m+552>>2]*d,s[c+16>>2]=+s[a+(152*_|0)>>2]*+s[m+544>>2]*v*d+ +s[c+16>>2],s[c+20>>2]=l+ +s[c+20>>2],s[c+24>>2]=p+ +s[c+24>>2],m=0|o[h+32>>2],p=+s[e>>2],l=1/+s[r+12>>2],d=+s[a+(152*_|0)+36>>2]*+s[m+548>>2]*p*l,v=p*+s[a+(152*_|0)+40>>2]*+s[m+552>>2]*l,s[c+48>>2]=+s[a+(152*_|0)+32>>2]*+s[m+544>>2]*p*l+ +s[c+48>>2],s[c+52>>2]=d+ +s[c+52>>2],s[c+56>>2]=v+ +s[c+56>>2]),s[h+36>>2]=+s[e>>2],(p=+b(+ +s[e>>2]))>=+s[h+16>>2]&&(n[h+20|0]=0),_=_+1|0}while((0|_)!=(0|w))}if((0|(_=0|o[i+8>>2]))>0){a=0|o[i+16>>2],e=0;do{c=a+(244*e|0)|0,0|(h=0|o[a+(244*e|0)+240>>2])&&(0|o[r+44>>2]?(d=+s[r+12>>2],l=+s[r+52>>2],s[(h=a+(244*e|0)+176|0)>>2]=+s[a+(244*e|0)+64>>2]+ +s[h>>2],s[(h=a+(244*e|0)+180|0)>>2]=+s[a+(244*e|0)+68>>2]+ +s[h>>2],s[(h=a+(244*e|0)+184|0)>>2]=+s[a+(244*e|0)+72>>2]+ +s[h>>2],s[(h=a+(244*e|0)+192|0)>>2]=+s[a+(244*e|0)+80>>2]+ +s[h>>2],s[(h=a+(244*e|0)+196|0)>>2]=+s[a+(244*e|0)+84>>2]+ +s[h>>2],s[(h=a+(244*e|0)+200|0)>>2]=+s[a+(244*e|0)+88>>2]+ +s[h>>2],_=a+(244*e|0)+148|0,0==+s[(h=a+(244*e|0)+144|0)>>2]&&0==+s[_>>2]&&0==+s[a+(244*e|0)+152>>2]&&0==+s[a+(244*e|0)+160>>2]&&0==+s[a+(244*e|0)+164>>2]&&0==+s[a+(244*e|0)+168>>2]?c=a:f=22,22==(0|f)&&(f=0,v=+s[a+(244*e|0)+164>>2]*l,p=+s[a+(244*e|0)+168>>2]*l,s[t>>2]=+s[a+(244*e|0)+160>>2]*l,s[t+4>>2]=v,s[t+8>>2]=p,s[t+12>>2]=0,bt(c,+s[h>>2],+s[_>>2],+s[a+(244*e|0)+152>>2],t,d,t+16|0),o[c+0>>2]=o[t+16>>2],o[c+4>>2]=o[t+20>>2],o[c+8>>2]=o[t+24>>2],o[c+12>>2]=o[t+28>>2],o[(c=a+(244*e|0)+16|0)+0>>2]=o[t+32>>2],o[c+4>>2]=o[t+36>>2],o[c+8>>2]=o[t+40>>2],o[c+12>>2]=o[t+44>>2],o[(c=a+(244*e|0)+32|0)+0>>2]=o[t+48>>2],o[c+4>>2]=o[t+52>>2],o[c+8>>2]=o[t+56>>2],o[c+12>>2]=o[t+60>>2],o[(c=a+(244*e|0)+48|0)+0>>2]=o[t+64>>2],o[c+4>>2]=o[t+68>>2],o[c+8>>2]=o[t+72>>2],o[c+12>>2]=o[t+76>>2],c=0|o[i+16>>2]),a=c,l=+s[c+(244*e|0)+176>>2],d=+s[c+(244*e|0)+180>>2],v=+s[c+(244*e|0)+184>>2],h=0|o[c+(244*e|0)+240>>2]):(m=a+(244*e|0)+176|0,l=+s[a+(244*e|0)+64>>2]+ +s[m>>2],s[m>>2]=l,m=a+(244*e|0)+180|0,d=+s[a+(244*e|0)+68>>2]+ +s[m>>2],s[m>>2]=d,m=a+(244*e|0)+184|0,v=+s[a+(244*e|0)+72>>2]+ +s[m>>2],s[m>>2]=v,s[(m=a+(244*e|0)+192|0)>>2]=+s[a+(244*e|0)+80>>2]+ +s[m>>2],s[(m=a+(244*e|0)+196|0)>>2]=+s[a+(244*e|0)+84>>2]+ +s[m>>2],s[(m=a+(244*e|0)+200|0)>>2]=+s[a+(244*e|0)+88>>2]+ +s[m>>2]),l+=+s[a+(244*e|0)+208>>2],p=d+ +s[a+(244*e|0)+212>>2],d=v+ +s[a+(244*e|0)+216>>2],o[(w=h+260|0)>>2]=1+(0|o[w>>2]),s[h+312>>2]=l,s[h+316>>2]=p,s[h+320>>2]=d,s[h+324>>2]=0,w=0|o[i+16>>2],m=0|o[w+(244*e|0)+240>>2],d=+s[w+(244*e|0)+192>>2]+ +s[w+(244*e|0)+224>>2],v=+s[w+(244*e|0)+196>>2]+ +s[w+(244*e|0)+228>>2],p=+s[w+(244*e|0)+200>>2]+ +s[w+(244*e|0)+232>>2],o[m+260>>2]=1+(0|o[m+260>>2]),s[m+328>>2]=d,s[m+332>>2]=v,s[m+336>>2]=p,s[m+340>>2]=0,0|o[r+44>>2]&&(w=0|o[i+16>>2],m=0|o[w+(244*e|0)+240>>2],_=w+(244*e|0)|0,o[m+260>>2]=1+(0|o[m+260>>2]),o[m+4>>2]=o[_+0>>2],o[m+8>>2]=o[_+4>>2],o[m+12>>2]=o[_+8>>2],o[m+16>>2]=o[_+12>>2],_=w+(244*e|0)+16|0,o[m+20>>2]=o[_+0>>2],o[m+24>>2]=o[_+4>>2],o[m+28>>2]=o[_+8>>2],o[m+32>>2]=o[_+12>>2],_=w+(244*e|0)+32|0,o[m+36>>2]=o[_+0>>2],o[m+40>>2]=o[_+4>>2],o[m+44>>2]=o[_+8>>2],o[m+48>>2]=o[_+12>>2],w=w+(244*e|0)+48|0,o[m+52>>2]=o[w+0>>2],o[m+56>>2]=o[w+4>>2],o[m+60>>2]=o[w+8>>2],o[m+64>>2]=o[w+12>>2]),a=0|o[i+16>>2],o[212+(0|o[a+(244*e|0)+240>>2])>>2]=-1,_=0|o[i+8>>2]),e=e+1|0}while((0|e)<(0|_))}return(0|o[i+28>>2])<0&&(0|o[i+32>>2])<0&&(0|(r=0|o[i+36>>2])&&(0|n[i+40|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[r+-4>>2])),o[i+36>>2]=0),n[i+40|0]=1,o[i+36>>2]=0,o[i+32>>2]=0),o[i+28>>2]=0,(0|o[i+48>>2])<0&&(0|o[i+52>>2])<0&&(0|(r=0|o[i+56>>2])&&(0|n[i+60|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[r+-4>>2])),o[i+56>>2]=0),n[i+60|0]=1,o[i+56>>2]=0,o[i+52>>2]=0),o[i+48>>2]=0,(0|o[i+68>>2])<0&&(0|o[i+72>>2])<0&&(0|(r=0|o[i+76>>2])&&(0|n[i+80|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[r+-4>>2])),o[i+76>>2]=0),n[i+80|0]=1,o[i+76>>2]=0,o[i+72>>2]=0),o[i+68>>2]=0,(0|o[i+88>>2])<0&&(0|o[i+92>>2])<0&&(0|(r=0|o[i+96>>2])&&(0|n[i+100|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[r+-4>>2])),o[i+96>>2]=0),n[i+100|0]=1,o[i+96>>2]=0,o[i+92>>2]=0),o[i+88>>2]=0,(0|o[i+8>>2])>=0||(0|o[i+12>>2])>=0?(o[i+8>>2]=0,u=t,0):(0|(r=0|o[i+16>>2])&&(0|n[i+20|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[r+-4>>2])),o[i+16>>2]=0),n[i+20|0]=1,o[i+16>>2]=0,o[i+12>>2]=0,o[i+8>>2]=0,u=t,0)}],On=[Ke,function(i,t,e,n,f,c,h,l,d){e|=0,n|=0,f|=0,c|=0,h|=0,l|=0,d|=0;var v,b,_=0,w=0,p=0,m=0,y=0,k=0;if(v=u,u=u+16|0,bi(i|=0,v+6|0,+s[(t|=0)>>2],+s[t+4>>2],+s[t+8>>2],0),bi(i,v,+s[e>>2],+s[e+4>>2],+s[e+8>>2],1),b=0|r[i+64>>1],_=0|o[i+60>>2],r[i+64>>1]=0|r[_+((65535&b)<<6)+48>>1],r[i+56>>1]=1+(0|r[i+56>>1])<<16>>16,o[_+((65535&b)<<6)+12>>2]=65535&b,o[_+((65535&b)<<6)>>2]=f,r[_+((65535&b)<<6)+4>>1]=c,r[_+((65535&b)<<6)+6>>1]=h,o[_+((65535&b)<<6)+8>>2]=d,k=(65534&(y=a[i+56>>1]<<1))-1|0,p=54+(0|o[i+60>>2])|0,r[p>>1]=2+(0|a[p>>1]),p=0|o[i+68>>2],w=a[p+(k<<2)>>1]|a[p+(k<<2)+2>>1]<<16,r[p+((65534&y|1)<<2)>>1]=w,r[p+((65534&y|1)<<2)+2>>1]=w>>>16,p=0|o[i+68>>2],r[p+(k<<2)>>1]=0|r[v+6>>1],r[p+(k<<2)+2>>1]=b,r[p+((65534&y)<<2)>>1]=0|r[v>>1],r[p+((65534&y)<<2)+2>>1]=b,r[_+((65535&b)<<6)+48>>1]=k,r[_+((65535&b)<<6)+54>>1]=y,p=56+(0|o[i+60>>2])|0,r[p>>1]=2+(0|a[p>>1]),p=0|o[i+72>>2],w=a[p+(k<<2)>>1]|a[p+(k<<2)+2>>1]<<16,r[p+((65534&y|1)<<2)>>1]=w,r[p+((65534&y|1)<<2)+2>>1]=w>>>16,p=0|o[i+72>>2],r[p+(k<<2)>>1]=0|r[v+8>>1],r[p+(k<<2)+2>>1]=b,r[p+((65534&y)<<2)>>1]=0|r[v+2>>1],r[p+((65534&y)<<2)+2>>1]=b,r[_+((65535&b)<<6)+50>>1]=k,r[_+((65535&b)<<6)+56>>1]=y,p=58+(0|o[i+60>>2])|0,r[p>>1]=2+(0|a[p>>1]),p=0|o[i+76>>2],w=a[p+(k<<2)>>1]|a[p+(k<<2)+2>>1]<<16,r[p+((65534&y|1)<<2)>>1]=w,r[p+((65534&y|1)<<2)+2>>1]=w>>>16,p=0|o[i+76>>2],r[p+(k<<2)>>1]=0|r[v+10>>1],r[p+(k<<2)+2>>1]=b,r[p+((65534&y)<<2)>>1]=0|r[v+4>>1],r[p+((65534&y)<<2)+2>>1]=b,r[_+((65535&b)<<6)+52>>1]=k,r[_+((65535&b)<<6)+58>>1]=y,y=0|o[i+68>>2],k=0|a[_+((65535&b)<<6)+48>>1],p=0|o[i+60>>2],w=0|r[y+(k+-1<<2)>>1],(0|a[y+(k<<2)>>1])<(65535&w)){for(d=p+(a[y+(k<<2)+2>>1]<<6)+48|0,m=y+(k<<2)|0,y=y+(k+-1<<2)|0;k=0|a[y+2>>1],1&w?r[(k=p+(k<<6)+54|0)>>1]=1+(0|r[k>>1])<<16>>16:r[(k=p+(k<<6)+48|0)>>1]=1+(0|r[k>>1])<<16>>16,r[d>>1]=(0|r[d>>1])-1<<16>>16,w=a[m>>1]|a[m+2>>1]<<16,k=a[y>>1]|a[y+2>>1]<<16,r[m>>1]=k,r[m+2>>1]=k>>>16,r[y>>1]=w,r[y+2>>1]=w>>>16,m=m+-4|0,w=0|r[(y=y+-4|0)>>1],(0|a[m>>1])<(65535&w);)p=0|o[i+60>>2];d=0|o[i+68>>2]}else d=y;y=d+((w=0|a[_+((65535&b)<<6)+54>>1])<<2)|0,p=0|r[(m=d+(w+-1<<2)|0)>>1];i:do{if((0|a[y>>1])<(65535&p))for(d=(k=0|o[i+60>>2])+(a[d+(w<<2)+2>>1]<<6)+54|0,w=k;;){if(k=0|a[m+2>>1],1&p?r[(k=w+(k<<6)+54|0)>>1]=1+(0|r[k>>1])<<16>>16:r[(k=w+(k<<6)+48|0)>>1]=1+(0|r[k>>1])<<16>>16,r[d>>1]=(0|r[d>>1])-1<<16>>16,p=a[y>>1]|a[y+2>>1]<<16,k=a[m>>1]|a[m+2>>1]<<16,r[y>>1]=k,r[y+2>>1]=k>>>16,r[m>>1]=p,r[m+2>>1]=p>>>16,y=y+-4|0,p=0|r[(m=m+-4|0)>>1],!((0|a[y>>1])<(65535&p)))break i;w=0|o[i+60>>2]}}while(0);if(k=0|o[i+72>>2],y=0|a[_+((65535&b)<<6)+50>>1],p=0|o[i+60>>2],w=0|r[k+(y+-1<<2)>>1],(0|a[k+(y<<2)>>1])<(65535&w)){for(d=p+(a[k+(y<<2)+2>>1]<<6)+50|0,m=k+(y<<2)|0,y=k+(y+-1<<2)|0;k=0|a[y+2>>1],1&w?r[(k=p+(k<<6)+56|0)>>1]=1+(0|r[k>>1])<<16>>16:r[(k=p+(k<<6)+50|0)>>1]=1+(0|r[k>>1])<<16>>16,r[d>>1]=(0|r[d>>1])-1<<16>>16,w=a[m>>1]|a[m+2>>1]<<16,k=a[y>>1]|a[y+2>>1]<<16,r[m>>1]=k,r[m+2>>1]=k>>>16,r[y>>1]=w,r[y+2>>1]=w>>>16,m=m+-4|0,w=0|r[(y=y+-4|0)>>1],(0|a[m>>1])<(65535&w);)p=0|o[i+60>>2];k=0|o[i+72>>2]}y=k+((d=0|a[_+((65535&b)<<6)+56>>1])<<2)|0,w=0|r[(m=k+(d+-1<<2)|0)>>1];i:do{if((0|a[y>>1])<(65535&w))for(d=(p=0|o[i+60>>2])+(a[k+(d<<2)+2>>1]<<6)+56|0;;){if(k=0|a[m+2>>1],1&w?r[(k=p+(k<<6)+56|0)>>1]=1+(0|r[k>>1])<<16>>16:r[(k=p+(k<<6)+50|0)>>1]=1+(0|r[k>>1])<<16>>16,r[d>>1]=(0|r[d>>1])-1<<16>>16,w=a[y>>1]|a[y+2>>1]<<16,k=a[m>>1]|a[m+2>>1]<<16,r[y>>1]=k,r[y+2>>1]=k>>>16,r[m>>1]=w,r[m+2>>1]=w>>>16,y=y+-4|0,w=0|r[(m=m+-4|0)>>1],!((0|a[y>>1])<(65535&w)))break i;p=0|o[i+60>>2]}}while(0);return _i(i,2,0|r[_+((65535&b)<<6)+52>>1]),wi(i,2,0|r[_+((65535&b)<<6)+58>>1],l),_=0|o[i+60>>2],0|(i=0|o[i+108>>2])?(o[_+((65535&b)<<6)+60>>2]=0|On[3&o[8+(0|o[i>>2])>>2]](i,t,e,n,f,c,h,l,0),u=v,0|(k=_+((65535&b)<<6)|0)):(u=v,0|(k=_+((65535&b)<<6)|0))},function(i,t,e,f,a,s,c,h,l){if(i|=0,t|=0,e|=0,f|=0,a|=0,s|=0,c|=0,l|=0,l=u,u=u+48|0,o[4546]=1+(0|o[4546]),0|(f=0|ye(83))?(o[(f+19&-16)-4>>2]=f,f=f+19&-16):f=0,o[f>>2]=a,r[f+4>>1]=s,r[f+6>>1]=c,o[(a=f+16|0)+0>>2]=o[t+0>>2],o[a+4>>2]=o[t+4>>2],o[a+8>>2]=o[t+8>>2],o[a+12>>2]=o[t+12>>2],o[(a=f+32|0)+0>>2]=o[e+0>>2],o[a+4>>2]=o[e+4>>2],o[a+8>>2]=o[e+8>>2],o[a+12>>2]=o[e+12>>2],o[f+8>>2]=0,o[(a=f+56|0)>>2]=0,o[(s=f+52|0)>>2]=0,o[l+16>>2]=o[t+0>>2],o[l+20>>2]=o[t+4>>2],o[l+24>>2]=o[t+8>>2],o[l+28>>2]=o[t+12>>2],o[l+32>>2]=o[e+0>>2],o[l+36>>2]=o[e+4>>2],o[l+40>>2]=o[e+8>>2],o[l+44>>2]=o[e+12>>2],o[f+60>>2]=o[i+144>>2],t=1+(0|o[i+188>>2])|0,o[i+188>>2]=t,o[f+12>>2]=t,0|(t=0|o[i+8>>2]))o[i+8>>2]=0;else if(o[4546]=1+(0|o[4546]),0|(t=0|ye(63))&&(o[(t+19&-16)-4>>2]=t,t+19&-16)){e=(c=0+(t+19&-16)|0)+44|0;do{o[c>>2]=0,c=c+4|0}while((0|c)<(0|e));t=t+19&-16}else t=0;return o[t+32>>2]=0,o[t+36>>2]=f,o[t+40>>2]=0,o[t+0>>2]=o[l+16>>2],o[t+4>>2]=o[l+20>>2],o[t+8>>2]=o[l+24>>2],o[t+12>>2]=o[l+28>>2],o[t+16>>2]=o[l+32>>2],o[t+20>>2]=o[l+36>>2],o[t+24>>2]=o[l+40>>2],o[t+28>>2]=o[l+44>>2],Ei(i+4|0,0|o[i+4>>2],t),o[i+16>>2]=1+(0|o[i+16>>2]),o[f+48>>2]=t,t=i+(o[i+144>>2]<<2)+124|0,o[s>>2]=0,o[a>>2]=o[t>>2],0|(e=0|o[t>>2])&&(o[e+52>>2]=f),o[t>>2]=f,0|n[i+193|0]?(u=l,0|f):(o[l>>2]=10360,o[l+4>>2]=i,o[l+8>>2]=f,Ii(0|o[i+4>>2],l+16|0,l),Ii(0|o[i+64>>2],l+16|0,l),u=l,0|f)},Ke],Rn=[Ye,function(i,t,e,n){n=+n},function(i,t,e,r){t|=0,e|=0,r=+r;var f,a=0,c=0,h=0,l=0,d=0,v=0,b=0,w=0,p=0,m=0,y=0,k=0,g=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0,L=0,I=0,A=0,D=0,O=0,R=0,P=0,N=0,B=0,F=0,V=0,U=0,G=0,W=0,z=0,X=0,$=0,H=0,q=0,K=0,Y=0,Q=0,Z=0,J=0,ii=0;if(f=u,u=u+448|0,0|n[(i|=0)+527|0]){if(U=0|o[i+28>>2],R=+s[i+348>>2],I=+s[i+352>>2],A=+s[i+356>>2],T=+s[U+52>>2],L=R*+s[U+4>>2]+I*+s[U+8>>2]+A*+s[U+12>>2]+T,x=+s[U+56>>2],E=R*+s[U+20>>2]+I*+s[U+24>>2]+A*+s[U+28>>2]+x,b=+s[U+60>>2],A=R*+s[U+36>>2]+I*+s[U+40>>2]+A*+s[U+44>>2]+b,U=0|o[i+32>>2],I=+s[i+412>>2],R=+s[i+416>>2],S=+s[i+420>>2],C=+s[U+52>>2],g=I*+s[U+4>>2]+R*+s[U+8>>2]+S*+s[U+12>>2]+C,D=+s[U+56>>2],O=I*+s[U+20>>2]+R*+s[U+24>>2]+S*+s[U+28>>2]+D,k=+s[U+60>>2],S=I*+s[U+36>>2]+R*+s[U+40>>2]+S*+s[U+44>>2]+k,!(0|n[i+524|0])){m=+s[t+192>>2]+ +s[t+80>>2],y=+s[t+196>>2]+ +s[t+84>>2],p=+s[t+200>>2]+ +s[t+88>>2],R=+s[e+192>>2]+ +s[e+80>>2],I=+s[e+196>>2]+ +s[e+84>>2],M=+s[e+200>>2]+ +s[e+88>>2],j=+s[t+176>>2]+ +s[t+64>>2]+((A-b)*y-(E-x)*p)-(+s[e+176>>2]+ +s[e+64>>2]+((S-k)*I-(O-D)*M)),M=+s[t+180>>2]+ +s[t+68>>2]+((L-T)*p-(A-b)*m)-(+s[e+180>>2]+ +s[e+68>>2]+((g-C)*M-(S-k)*R)),I=+s[t+184>>2]+ +s[t+72>>2]+((E-x)*m-(L-T)*y)-(+s[e+184>>2]+ +s[e+72>>2]+((O-D)*R-(g-C)*I)),d=0|o[t+240>>2],a=0;do{y=(w=1/+s[i+(84*a|0)+128>>2])*(-.30000001192092896*((L-g)*(m=+s[(l=i+(84*a|0)+48|0)>>2])+(E-O)*(p=+s[(c=i+(84*a|0)+52|0)>>2])+(A-S)*(y=+s[(h=i+(84*a|0)+56|0)>>2]))/r)-w*(j*m+M*p+I*y),s[i+36>>2]=+s[i+36>>2]+y,p=+s[h>>2],m=+s[c>>2],w=+s[l>>2],v=0|o[i+28>>2],R=+s[v+344>>2],0|d&&(z=((A-b)*w-(L-T)*p)*+s[v+300>>2]+((E-x)*p-(A-b)*m)*+s[v+296>>2]+((L-T)*m-(E-x)*w)*+s[v+304>>2],G=((A-b)*w-(L-T)*p)*+s[v+284>>2]+((E-x)*p-(A-b)*m)*+s[v+280>>2]+((L-T)*m-(E-x)*w)*+s[v+288>>2],W=((A-b)*w-(L-T)*p)*+s[v+268>>2]+((E-x)*p-(A-b)*m)*+s[v+264>>2]+((L-T)*m-(E-x)*w)*+s[v+272>>2],$=y*m*R*+s[t+116>>2],X=y*p*R*+s[t+120>>2],s[t+64>>2]=y*w*R*+s[t+112>>2]+ +s[t+64>>2],s[t+68>>2]=$+ +s[t+68>>2],s[t+72>>2]=X+ +s[t+72>>2],G=G*y*+s[t+100>>2],R=z*y*+s[t+104>>2],s[t+80>>2]=W*y*+s[t+96>>2]+ +s[t+80>>2],s[t+84>>2]=G+ +s[t+84>>2],s[t+88>>2]=R+ +s[t+88>>2]),v=0|o[i+32>>2],R=+s[v+344>>2],0|o[e+240>>2]&&($=((S-k)*w-(g-C)*p)*+s[v+300>>2]+((O-D)*p-(S-k)*m)*+s[v+296>>2]+((g-C)*m-(O-D)*w)*+s[v+304>>2],X=((S-k)*w-(g-C)*p)*+s[v+284>>2]+((O-D)*p-(S-k)*m)*+s[v+280>>2]+((g-C)*m-(O-D)*w)*+s[v+288>>2],z=((S-k)*w-(g-C)*p)*+s[v+268>>2]+((O-D)*p-(S-k)*m)*+s[v+264>>2]+((g-C)*m-(O-D)*w)*+s[v+272>>2],G=R*+s[c>>2]*-y*+s[e+116>>2],W=R*+s[h>>2]*-y*+s[e+120>>2],s[e+64>>2]=+s[e+112>>2]*R*+s[l>>2]*-y+ +s[e+64>>2],s[e+68>>2]=G+ +s[e+68>>2],s[e+72>>2]=W+ +s[e+72>>2],X=X*+s[e+100>>2]*-y,$=$*+s[e+104>>2]*-y,s[e+80>>2]=z*+s[e+96>>2]*-y+ +s[e+80>>2],s[e+84>>2]=X+ +s[e+84>>2],s[e+88>>2]=$+ +s[e+88>>2]),a=a+1|0}while(3!=(0|a))}do{if(0|n[i+552|0])V=0|o[i+28>>2],o[f+352>>2]=o[V+4>>2],o[f+356>>2]=o[V+8>>2],o[f+360>>2]=o[V+12>>2],o[f+364>>2]=o[V+16>>2],o[f+368>>2]=o[V+20>>2],o[f+372>>2]=o[V+24>>2],o[f+376>>2]=o[V+28>>2],o[f+380>>2]=o[V+32>>2],o[f+384>>2]=o[V+36>>2],o[f+388>>2]=o[V+40>>2],o[f+392>>2]=o[V+44>>2],o[f+396>>2]=o[V+48>>2],o[f+400>>2]=o[V+52>>2],o[f+404>>2]=o[V+56>>2],o[f+408>>2]=o[V+60>>2],o[f+412>>2]=o[V+64>>2],V=0|o[i+32>>2],o[f+288>>2]=o[V+4>>2],o[f+292>>2]=o[V+8>>2],o[f+296>>2]=o[V+12>>2],o[f+300>>2]=o[V+16>>2],o[f+304>>2]=o[V+20>>2],o[f+308>>2]=o[V+24>>2],o[f+312>>2]=o[V+28>>2],o[f+316>>2]=o[V+32>>2],o[f+320>>2]=o[V+36>>2],o[f+324>>2]=o[V+40>>2],o[f+328>>2]=o[V+44>>2],o[f+332>>2]=o[V+48>>2],o[f+336>>2]=o[V+52>>2],o[f+340>>2]=o[V+56>>2],o[f+344>>2]=o[V+60>>2],o[f+348>>2]=o[V+64>>2],z=+s[t+196>>2]+ +s[t+84>>2],T=+s[t+200>>2]+ +s[t+88>>2],s[f+272>>2]=+s[t+192>>2]+ +s[t+80>>2],s[f+276>>2]=z,s[f+280>>2]=T,s[f+284>>2]=0,T=+s[e+196>>2]+ +s[e+84>>2],z=+s[e+200>>2]+ +s[e+88>>2],s[f+256>>2]=+s[e+192>>2]+ +s[e+80>>2],s[f+260>>2]=T,s[f+264>>2]=z,s[f+268>>2]=0,s[f+192>>2]=1,o[(V=f+196|0)+0>>2]=0,o[V+4>>2]=0,o[V+8>>2]=0,o[V+12>>2]=0,s[f+212>>2]=1,o[(U=f+216|0)+0>>2]=0,o[U+4>>2]=0,o[U+8>>2]=0,o[U+12>>2]=0,s[f+232>>2]=1,o[(B=f+236|0)+0>>2]=0,o[B+4>>2]=0,o[B+8>>2]=0,o[B+12>>2]=0,o[B+16>>2]=0,bt(f+352|0,0,0,0,f+272|0,r,f+192|0),s[f+128>>2]=1,o[(B=f+132|0)+0>>2]=0,o[B+4>>2]=0,o[B+8>>2]=0,o[B+12>>2]=0,s[f+148>>2]=1,o[(F=f+152|0)+0>>2]=0,o[F+4>>2]=0,o[F+8>>2]=0,o[F+12>>2]=0,s[f+168>>2]=1,o[(N=f+172|0)+0>>2]=0,o[N+4>>2]=0,o[N+8>>2]=0,o[N+12>>2]=0,o[N+16>>2]=0,bt(f+288|0,0,0,0,f+256|0,r,f+128|0),D=(z=+s[i+556>>2])*(2/(z*z+(T=+s[i+560>>2])*T+(X=+s[i+564>>2])*X+(L=+s[i+568>>2])*L)),p=T*(2/(z*z+T*T+X*X+L*L)),O=X*(2/(z*z+T*T+X*X+L*L)),q=+s[i+364>>2],H=+s[i+368>>2],C=(z*O-L*p)*(Q=+s[i+372>>2])+(H*(z*p+L*O)+q*(1-(T*p+X*O))),j=Q*(T*O+L*D)+(q*(z*p-L*O)+H*(1-(z*D+X*O))),S=q*(z*O+L*p)+H*(T*O-L*D)+Q*(1-(z*D+T*p)),x=(1-(T*p+X*O))*(g=+s[i+380>>2])+(z*p+L*O)*(A=+s[i+384>>2])+(z*O-L*p)*(b=+s[i+388>>2]),M=(z*p-L*O)*g+(1-(z*D+X*O))*A+(T*O+L*D)*b,E=(z*O+L*p)*g+(T*O-L*D)*A+(1-(z*D+T*p))*b,W=(1-(T*p+X*O))*(G=+s[i+396>>2])+(z*p+L*O)*(w=+s[i+400>>2])+(z*O-L*p)*(m=+s[i+404>>2]),X=(z*p-L*O)*G+(1-(z*D+X*O))*w+(T*O+L*D)*m,p=(z*O+L*p)*G+(T*O-L*D)*w+(1-(z*D+T*p))*m,T=+s[i+300>>2],D=+s[i+316>>2],z=+s[i+332>>2],L=+s[i+304>>2],O=+s[i+320>>2],$=+s[i+336>>2],I=+s[i+308>>2],R=+s[i+324>>2],y=+s[i+340>>2],k=-+s[i+348>>2],ii=-+s[i+352>>2],Y=-+s[i+356>>2],Q=0*q+0*H+0*Q+ +s[i+412>>2]+(S*(I*k+R*ii+y*Y)+(C*(T*k+D*ii+z*Y)+j*(L*k+O*ii+$*Y))),b=0*g+0*A+0*b+ +s[i+416>>2]+(E*(I*k+R*ii+y*Y)+(x*(T*k+D*ii+z*Y)+M*(L*k+O*ii+$*Y))),Y=0*G+0*w+0*m+ +s[i+420>>2]+(p*(I*k+R*ii+y*Y)+(W*(T*k+D*ii+z*Y)+X*(L*k+O*ii+$*Y))),ii=+s[f+128>>2],k=+s[B>>2],m=+s[f+136>>2],w=+s[f+144>>2],G=+s[f+148>>2],A=+s[F>>2],g=+s[f+160>>2],H=+s[f+164>>2],q=+s[f+168>>2],K=m*Y+(ii*Q+k*b)+ +s[f+176>>2],Z=Y*A+(w*Q+G*b)+ +s[f+180>>2],J=Q*g+b*H+Y*q+ +s[f+184>>2],s[f+64>>2]=(C*T+j*L+S*I)*ii+(x*T+M*L+E*I)*k+(W*T+X*L+p*I)*m,s[f+68>>2]=(C*D+j*O+S*R)*ii+(x*D+M*O+E*R)*k+(W*D+X*O+p*R)*m,s[f+72>>2]=(C*z+j*$+S*y)*ii+(x*z+M*$+E*y)*k+(W*z+X*$+p*y)*m,s[f+76>>2]=0,s[f+80>>2]=(C*T+j*L+S*I)*w+(x*T+M*L+E*I)*G+(W*T+X*L+p*I)*A,s[f+84>>2]=(C*D+j*O+S*R)*w+(x*D+M*O+E*R)*G+(W*D+X*O+p*R)*A,s[f+88>>2]=(C*z+j*$+S*y)*w+(x*z+M*$+E*y)*G+(W*z+X*$+p*y)*A,s[f+92>>2]=0,s[f+96>>2]=(C*T+j*L+S*I)*g+(x*T+M*L+E*I)*H+(W*T+X*L+p*I)*q,s[f+100>>2]=(C*D+j*O+S*R)*g+(x*D+M*O+E*R)*H+(W*D+X*O+p*R)*q,s[f+104>>2]=(C*z+j*$+S*y)*g+(x*z+M*$+E*y)*H+(W*z+X*$+p*y)*q,s[f+108>>2]=0,s[f+112>>2]=K,s[f+116>>2]=Z,s[f+120>>2]=J,s[f+124>>2]=0,J=(W*T+X*L+p*I)*-Y+((C*T+j*L+S*I)*-Q+(x*T+M*L+E*I)*-b),Z=(W*D+X*O+p*R)*-Y+((C*D+j*O+S*R)*-Q+(x*D+M*O+E*R)*-b),b=(W*z+X*$+p*y)*-Y+((C*z+j*$+S*y)*-Q+(x*z+M*$+E*y)*-b),Q=+s[f+192>>2],Y=+s[V>>2],K=+s[f+200>>2],q=+s[f+208>>2],H=+s[f+212>>2],g=+s[U>>2],A=+s[f+224>>2],G=+s[f+228>>2],w=+s[f+232>>2],m=J*Q+Z*Y+b*K+ +s[f+240>>2],k=J*q+Z*H+b*g+ +s[f+244>>2],b=J*A+Z*G+b*w+ +s[f+248>>2],s[f>>2]=(C*T+j*L+S*I)*Q+(C*D+j*O+S*R)*Y+(C*z+j*$+S*y)*K,s[f+4>>2]=(x*T+M*L+E*I)*Q+(x*D+M*O+E*R)*Y+(x*z+M*$+E*y)*K,s[f+8>>2]=(W*T+X*L+p*I)*Q+(W*D+X*O+p*R)*Y+(W*z+X*$+p*y)*K,s[f+12>>2]=0,s[f+16>>2]=(C*T+j*L+S*I)*q+(C*D+j*O+S*R)*H+(C*z+j*$+S*y)*g,s[f+20>>2]=(x*T+M*L+E*I)*q+(x*D+M*O+E*R)*H+(x*z+M*$+E*y)*g,s[f+24>>2]=(W*T+X*L+p*I)*q+(W*D+X*O+p*R)*H+(W*z+X*$+p*y)*g,s[f+28>>2]=0,s[f+32>>2]=(C*T+j*L+S*I)*A+(C*D+j*O+S*R)*G+(C*z+j*$+S*y)*w,s[f+36>>2]=(x*T+M*L+E*I)*A+(x*D+M*O+E*R)*G+(x*z+M*$+E*y)*w,s[f+40>>2]=(W*T+X*L+p*I)*A+(W*D+X*O+p*R)*G+(W*z+X*$+p*y)*w,s[f+44>>2]=0,s[f+48>>2]=m,s[f+52>>2]=k,s[f+56>>2]=b,s[f+60>>2]=0,wt(f+352|0,f+64|0,f+424|0,f+416|0),b=+s[f+416>>2],k=1/r*+s[f+424>>2]*b,m=1/r*b*+s[f+428>>2],b=1/r*b*+s[f+432>>2],wt(f+288|0,f,f+424|0,f+416|0),w=+s[f+416>>2],k-=+s[f+272>>2],m-=+s[f+276>>2],b-=+s[f+280>>2],y=1/r*+s[f+424>>2]*w-+s[f+256>>2],p=1/r*w*+s[f+428>>2]-+s[f+260>>2],w=1/r*w*+s[f+432>>2]-+s[f+264>>2],k*k+m*m+b*b>1.1920928955078125e-7?(S=1/+_(+(k*k+m*m+b*b)),U=0|o[i+28>>2],M=k*S*(k*S*+s[U+264>>2]+m*S*+s[U+280>>2]+b*S*+s[U+296>>2])+m*S*(k*S*+s[U+268>>2]+m*S*+s[U+284>>2]+b*S*+s[U+300>>2])+b*S*(k*S*+s[U+272>>2]+m*S*+s[U+288>>2]+b*S*+s[U+304>>2]),T=k*S,x=m*S,S*=b):(M=0,T=0,x=0,S=0),y*y+p*p+w*w>1.1920928955078125e-7?(j=1/+_(+(y*y+p*p+w*w)),U=0|o[i+32>>2],C=y*j*(y*j*+s[U+264>>2]+p*j*+s[U+280>>2]+w*j*+s[U+296>>2])+p*j*(y*j*+s[U+268>>2]+p*j*+s[U+284>>2]+w*j*+s[U+300>>2])+w*j*(y*j*+s[U+272>>2]+p*j*+s[U+288>>2]+w*j*+s[U+304>>2]),g=y*j,E=p*j,j*=w):(C=0,g=0,E=0,j=0),(j=S*M+j*C)*j+((g=T*M+g*C)*g+(x=x*M+E*C)*x)>1.1920928955078125e-7?(ii=1/+_(+(j*j+(g*g+x*x))),c=0|o[i+28>>2],C=g*ii*(g*ii*+s[c+264>>2]+x*ii*+s[c+280>>2]+j*ii*+s[c+296>>2])+x*ii*(g*ii*+s[c+268>>2]+x*ii*+s[c+284>>2]+j*ii*+s[c+300>>2])+j*ii*(g*ii*+s[c+272>>2]+x*ii*+s[c+288>>2]+j*ii*+s[c+304>>2]),a=0|o[i+32>>2],y=1/((C+(g=g*ii*(g*ii*+s[a+264>>2]+x*ii*+s[a+280>>2]+j*ii*+s[a+296>>2])+x*ii*(g*ii*+s[a+268>>2]+x*ii*+s[a+284>>2]+j*ii*+s[a+300>>2])+j*ii*(g*ii*+s[a+272>>2]+x*ii*+s[a+288>>2]+j*ii*+s[a+304>>2])))*(C+g))*(k*C-y*g),p=1/((C+g)*(C+g))*(m*C-p*g),b=1/((C+g)*(C+g))*(b*C-w*g),(g=+s[i+572>>2])>=0&&(0|n[i+553|0]&&(g/=C),w=+s[i+576>>2],m=+s[i+580>>2],k=+s[i+584>>2],(C=+_(+((y+w)*(y+w)+(p+m)*(p+m)+(b+k)*(b+k))))>g&&(y=g*(y+w)*(1/C)-w,b=g*(b+k)*(1/C)-k,p=g*(p+m)*(1/C)-m),s[i+576>>2]=y+w,s[i+580>>2]=p+m,s[i+584>>2]=b+k),m=y*(1/(w=+_(+(b*b+(p*p+y*y))))),p*=1/w,b*=1/w,0|o[t+240>>2]&&(ii=p*+s[c+300>>2]+m*+s[c+296>>2]+b*+s[c+304>>2],J=p*+s[c+284>>2]+m*+s[c+280>>2]+b*+s[c+288>>2],Z=p*+s[c+268>>2]+m*+s[c+264>>2]+b*+s[c+272>>2],Y=0*w*+s[t+116>>2],Q=0*w*+s[t+120>>2],s[t+64>>2]=0*w*+s[t+112>>2]+ +s[t+64>>2],s[t+68>>2]=Y+ +s[t+68>>2],s[t+72>>2]=Q+ +s[t+72>>2],J=J*w*+s[t+100>>2],ii=ii*w*+s[t+104>>2],s[t+80>>2]=Z*w*+s[t+96>>2]+ +s[t+80>>2],s[t+84>>2]=J+ +s[t+84>>2],s[t+88>>2]=ii+ +s[t+88>>2],a=0|o[i+32>>2]),0|o[e+240>>2]?(ii=p*+s[a+300>>2]+m*+s[a+296>>2]+b*+s[a+304>>2],J=p*+s[a+284>>2]+m*+s[a+280>>2]+b*+s[a+288>>2],Z=p*+s[a+268>>2]+m*+s[a+264>>2]+b*+s[a+272>>2],Y=-0*w*+s[e+116>>2],Q=-0*w*+s[e+120>>2],s[e+64>>2]=-0*w*+s[e+112>>2]+ +s[e+64>>2],s[e+68>>2]=Y+ +s[e+68>>2],s[e+72>>2]=Q+ +s[e+72>>2],J=J*+s[e+100>>2]*-w,ii=ii*+s[e+104>>2]*-w,s[e+80>>2]=Z*+s[e+96>>2]*-w+ +s[e+80>>2],s[e+84>>2]=J+ +s[e+84>>2],s[e+88>>2]=ii+ +s[e+88>>2],B=e+192|0,U=t+192|0,P=e+200|0,F=t+200|0,a=e+88|0,v=t+88|0,c=e+80|0,d=t+80|0,N=e+196|0,V=t+196|0,h=e+84|0,l=t+84|0):(B=e+192|0,U=t+192|0,P=e+200|0,F=t+200|0,a=e+88|0,v=t+88|0,c=e+80|0,d=t+80|0,N=e+196|0,V=t+196|0,h=e+84|0,l=t+84|0)):(B=e+192|0,U=t+192|0,P=e+200|0,F=t+200|0,a=e+88|0,v=t+88|0,c=e+80|0,d=t+80|0,N=e+196|0,V=t+196|0,h=e+84|0,l=t+84|0);else{if(!((w=+s[i+440>>2])>1.1920928955078125e-7)){B=e+192|0,U=t+192|0,P=e+200|0,F=t+200|0,a=e+88|0,v=t+88|0,c=e+80|0,d=t+80|0,N=e+196|0,V=t+196|0,h=e+84|0,l=t+84|0;break}(M=+s[e+192>>2]+ +s[e+80>>2]-(+s[t+192>>2]+ +s[t+80>>2]))*M+(E=+s[e+196>>2]+ +s[e+84>>2]-(+s[t+196>>2]+ +s[t+84>>2]))*E+(x=+s[e+200>>2]+ +s[e+88>>2]-(+s[t+200>>2]+ +s[t+88>>2]))*x>1.1920928955078125e-7?($=1/+_(+(M*M+E*E+x*x)),a=0|o[i+28>>2],b=+s[a+264>>2],j=+s[a+280>>2],k=+s[a+296>>2],m=+s[a+268>>2],S=+s[a+284>>2],g=+s[a+300>>2],p=+s[a+272>>2],C=+s[a+288>>2],y=+s[a+304>>2],a=0|o[i+32>>2],$=w*(1/(M*$*(M*$*b+E*$*j+x*$*k)+E*$*(M*$*m+E*$*S+x*$*g)+x*$*(M*$*p+E*$*C+x*$*y)+(M*$*(M*$*+s[a+264>>2]+E*$*+s[a+280>>2]+x*$*+s[a+296>>2])+E*$*(M*$*+s[a+268>>2]+E*$*+s[a+284>>2]+x*$*+s[a+300>>2])+x*$*(M*$*+s[a+272>>2]+E*$*+s[a+288>>2]+x*$*+s[a+304>>2])))),M=1/(w=+_(+(x*$*x*$+(M*$*M*$+E*$*E*$))))*M*$,E=1/w*E*$,x=1/w*x*$,0|o[t+240>>2]&&($=0*w*+s[t+116>>2],X=0*w*+s[t+120>>2],s[t+64>>2]=0*w*+s[t+112>>2]+ +s[t+64>>2],s[t+68>>2]=$+ +s[t+68>>2],s[t+72>>2]=X+ +s[t+72>>2],X=(E*S+M*j+x*C)*w*+s[t+100>>2],$=(E*g+M*k+x*y)*w*+s[t+104>>2],s[t+80>>2]=(E*m+M*b+x*p)*w*+s[t+96>>2]+ +s[t+80>>2],s[t+84>>2]=X+ +s[t+84>>2],s[t+88>>2]=$+ +s[t+88>>2],a=0|o[i+32>>2]),0|o[e+240>>2]?($=E*+s[a+300>>2]+M*+s[a+296>>2]+x*+s[a+304>>2],X=E*+s[a+284>>2]+M*+s[a+280>>2]+x*+s[a+288>>2],z=E*+s[a+268>>2]+M*+s[a+264>>2]+x*+s[a+272>>2],G=-0*w*+s[e+116>>2],W=-0*w*+s[e+120>>2],s[e+64>>2]=-0*w*+s[e+112>>2]+ +s[e+64>>2],s[e+68>>2]=G+ +s[e+68>>2],s[e+72>>2]=W+ +s[e+72>>2],X=X*+s[e+100>>2]*-w,$=$*+s[e+104>>2]*-w,s[e+80>>2]=z*+s[e+96>>2]*-w+ +s[e+80>>2],s[e+84>>2]=X+ +s[e+84>>2],s[e+88>>2]=$+ +s[e+88>>2],B=e+192|0,U=t+192|0,P=e+200|0,F=t+200|0,a=e+88|0,v=t+88|0,c=e+80|0,d=t+80|0,N=e+196|0,V=t+196|0,h=e+84|0,l=t+84|0):(B=e+192|0,U=t+192|0,P=e+200|0,F=t+200|0,a=e+88|0,v=t+88|0,c=e+80|0,d=t+80|0,N=e+196|0,V=t+196|0,h=e+84|0,l=t+84|0)):(B=e+192|0,U=t+192|0,P=e+200|0,F=t+200|0,a=e+88|0,v=t+88|0,c=e+80|0,d=t+80|0,N=e+196|0,V=t+196|0,h=e+84|0,l=t+84|0)}}while(0);b=+s[U>>2]+ +s[d>>2],w=+s[V>>2]+ +s[l>>2],p=+s[F>>2]+ +s[v>>2],m=+s[B>>2]+ +s[c>>2],y=+s[N>>2]+ +s[h>>2],k=+s[P>>2]+ +s[a>>2],0|n[i+526|0]&&(x=(C=+s[i+528>>2])*+s[i+504>>2]*+s[i+432>>2]/r,(m-b)*(j=+s[i+460>>2])+(y-w)*(S=+s[i+464>>2])+(k-p)*(g=+s[i+468>>2])>0&&(x+=C*((m-b)*j+(y-w)*S+(k-p)*g)*+s[i+436>>2]),Q=(Q=(Z=+s[i+516>>2])+x*+s[i+492>>2])>0?Q:0,s[i+516>>2]=Q,K=+s[i+536>>2],Y=+s[i+540>>2],J=+s[i+544>>2],j=1/(C=+_(+((g*(Q-Z)-J*(ii=K*j*(Q-Z)+S*(Q-Z)*Y+g*(Q-Z)*J))*(g*(Q-Z)-J*ii)+((j*(Q-Z)-K*ii)*(j*(Q-Z)-K*ii)+(S*(Q-Z)-Y*ii)*(S*(Q-Z)-Y*ii)))))*(j*(Q-Z)-K*ii),S=1/C*(S*(Q-Z)-Y*ii),g=1/C*(g*(Q-Z)-J*ii),P=0|o[i+28>>2],0|o[t+240>>2]&&(ii=S*+s[P+300>>2]+j*+s[P+296>>2]+g*+s[P+304>>2],J=S*+s[P+284>>2]+j*+s[P+280>>2]+g*+s[P+288>>2],Z=S*+s[P+268>>2]+j*+s[P+264>>2]+g*+s[P+272>>2],Y=0*C*+s[t+116>>2],Q=0*C*+s[t+120>>2],s[t+64>>2]=0*C*+s[t+112>>2]+ +s[t+64>>2],s[t+68>>2]=Y+ +s[t+68>>2],s[t+72>>2]=Q+ +s[t+72>>2],J=J*C*+s[t+100>>2],ii=ii*C*+s[t+104>>2],s[d>>2]=Z*C*+s[t+96>>2]+ +s[d>>2],s[l>>2]=J+ +s[l>>2],s[v>>2]=ii+ +s[v>>2]),P=0|o[i+32>>2],0|o[e+240>>2]&&(ii=S*+s[P+300>>2]+j*+s[P+296>>2]+g*+s[P+304>>2],J=S*+s[P+284>>2]+j*+s[P+280>>2]+g*+s[P+288>>2],Z=S*+s[P+268>>2]+j*+s[P+264>>2]+g*+s[P+272>>2],Y=-0*C*+s[e+116>>2],Q=-0*C*+s[e+120>>2],s[e+64>>2]=-0*C*+s[e+112>>2]+ +s[e+64>>2],s[e+68>>2]=Y+ +s[e+68>>2],s[e+72>>2]=Q+ +s[e+72>>2],J=J*+s[e+100>>2]*-C,ii=ii*+s[e+104>>2]*-C,s[c>>2]=Z*+s[e+96>>2]*-C+ +s[c>>2],s[h>>2]=J+ +s[h>>2],s[a>>2]=ii+ +s[a>>2])),0|n[i+525|0]?(S=(j=+s[i+532>>2])*+s[i+508>>2]*+s[i+432>>2]/r,(m-b)*(g=+s[i+476>>2])+(y-w)*(C=+s[i+480>>2])+(k-p)*(r=+s[i+484>>2])>0&&(S+=j*((m-b)*g+(y-w)*C+(k-p)*r)*+s[i+436>>2]),w=(w=(b=+s[i+520>>2])+S*+s[i+496>>2])>0?w:0,s[i+520>>2]=w,P=0|o[i+28>>2],0|o[t+240>>2]&&(ii=C*+s[P+300>>2]+g*+s[P+296>>2]+r*+s[P+304>>2],J=C*+s[P+284>>2]+g*+s[P+280>>2]+r*+s[P+288>>2],r=C*+s[P+268>>2]+g*+s[P+264>>2]+r*+s[P+272>>2],C=0*(w-b)*+s[t+116>>2],g=0*(w-b)*+s[t+120>>2],s[t+64>>2]=0*(w-b)*+s[t+112>>2]+ +s[t+64>>2],s[t+68>>2]=C+ +s[t+68>>2],s[t+72>>2]=g+ +s[t+72>>2],g=J*(w-b)*+s[t+100>>2],C=ii*(w-b)*+s[t+104>>2],s[d>>2]=r*(w-b)*+s[t+96>>2]+ +s[d>>2],s[l>>2]=g+ +s[l>>2],s[v>>2]=C+ +s[v>>2],C=+s[i+480>>2],g=+s[i+476>>2],r=+s[i+484>>2]),i=0|o[i+32>>2],0|o[e+240>>2]?(ii=C*+s[i+300>>2]+g*+s[i+296>>2]+r*+s[i+304>>2],J=C*+s[i+284>>2]+g*+s[i+280>>2]+r*+s[i+288>>2],Z=C*+s[i+268>>2]+g*+s[i+264>>2]+r*+s[i+272>>2],Y=-0*(w-b)*+s[e+116>>2],Q=-0*(w-b)*+s[e+120>>2],s[e+64>>2]=-0*(w-b)*+s[e+112>>2]+ +s[e+64>>2],s[e+68>>2]=Y+ +s[e+68>>2],s[e+72>>2]=Q+ +s[e+72>>2],J=J*+s[e+100>>2]*-(w-b),ii=ii*+s[e+104>>2]*-(w-b),s[c>>2]=Z*+s[e+96>>2]*-(w-b)+ +s[c>>2],s[h>>2]=J+ +s[h>>2],s[a>>2]=ii+ +s[a>>2],u=f):u=f):u=f}else u=f},function(i,t,e,r){var f;t|=0,e|=0,r=+r,f=u,+s[(i|=0)+36>>2]>r?(n[i+40|0]=1,o[i+4>>2]=o[t+0>>2],o[i+8>>2]=o[t+4>>2],o[i+12>>2]=o[t+8>>2],o[i+16>>2]=o[t+12>>2],o[i+20>>2]=o[e+0>>2],o[i+24>>2]=o[e+4>>2],o[i+28>>2]=o[e+8>>2],o[i+32>>2]=o[e+12>>2],s[i+36>>2]=r,u=f):u=f},function(i,t,e,r){t|=0,e|=0,r=+r;var f,a,c=0,h=0,l=0,d=0,v=0,w=0,p=0,m=0,y=0,k=0,g=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0;if(a=u,u=u+192|0,f=0|o[(i|=0)+4>>2],!(+s[f+752>>2]<r)){if(c=0|o[f+740>>2],l=8+(0|o[i+8>>2])|0,h=0|o[l>>2],p=+s[e>>2],k=+s[t>>2]*r+p,v=+s[e+4>>2],m=+s[t+4>>2]*r+v,w=+s[e+8>>2],y=+s[t+8>>2]*r+w,(0|c)!=(0|h)?(d=0|o[i+12>>2],x=0|o[d+8>>2],T=k-+s[x+52>>2],C=m-+s[x+56>>2],g=y-+s[x+60>>2],E=p-+s[h+52>>2],M=v-+s[h+56>>2],j=w-+s[h+60>>2],p=T*+s[x+4>>2]+C*+s[x+20>>2]+g*+s[x+36>>2],v=T*+s[x+8>>2]+C*+s[x+24>>2]+g*+s[x+40>>2],w=T*+s[x+12>>2]+C*+s[x+28>>2]+g*+s[x+44>>2],g=E*+s[h+12>>2]+M*+s[h+28>>2]+j*+s[h+44>>2],C=E*+s[h+8>>2]+M*+s[h+24>>2]+j*+s[h+40>>2],j=E*+s[h+4>>2]+M*+s[h+20>>2]+j*+s[h+36>>2]):(M=k-+s[c+52>>2],C=m-+s[c+56>>2],g=y-+s[c+60>>2],d=0|o[i+12>>2],x=0|o[d+8>>2],E=p-+s[x+52>>2],T=v-+s[x+56>>2],j=w-+s[x+60>>2],p=M*+s[c+4>>2]+C*+s[c+20>>2]+g*+s[c+36>>2],v=M*+s[c+8>>2]+C*+s[c+24>>2]+g*+s[c+40>>2],w=M*+s[c+12>>2]+C*+s[c+28>>2]+g*+s[c+44>>2],g=E*+s[x+12>>2]+T*+s[x+28>>2]+j*+s[x+44>>2],C=E*+s[x+8>>2]+T*+s[x+24>>2]+j*+s[x+40>>2],j=E*+s[x+4>>2]+T*+s[x+20>>2]+j*+s[x+36>>2]),s[a>>2]=p,s[a+4>>2]=v,s[a+8>>2]=w,s[a+12>>2]=0,s[a+16>>2]=j,s[a+20>>2]=C,s[a+24>>2]=g,s[a+28>>2]=0,o[a+64>>2]=o[t+0>>2],o[a+68>>2]=o[t+4>>2],o[a+72>>2]=o[t+8>>2],o[a+76>>2]=o[t+12>>2],s[a+80>>2]=r,s[a+84>>2]=0,s[a+88>>2]=0,s[a+92>>2]=0,o[a+112>>2]=0,n[a+116|0]=0,o[a+120>>2]=0,o[a+124>>2]=0,o[a+128>>2]=0,o[a+132>>2]=0,o[a+136>>2]=0,o[a+140>>2]=0,o[a+144>>2]=0,o[a+148>>2]=0,s[a+48>>2]=k,s[a+52>>2]=m,s[a+56>>2]=y,s[a+60>>2]=0,o[a+32>>2]=o[e+0>>2],o[a+36>>2]=o[e+4>>2],o[a+40>>2]=o[e+8>>2],o[a+44>>2]=o[e+12>>2],m=+s[f+752>>2],(0|(t=0|o[f+748>>2]))>0)for(e=0,x=-1,r=m*m;x=(S=(m=+s[f+(184*e|0)+4>>2]-p)*m+(y=+s[f+(184*e|0)+8>>2]-v)*y+(k=+s[f+(184*e|0)+12>>2]-w)*k<r)?e:x,(0|(e=e+1|0))!=(0|t);)r=S?m*m+y*y+k*k:r;else x=-1;return t=0|o[l>>2],S=0|o[d+8>>2],v=(v=+s[t+224>>2]*+s[S+224>>2])<-10?-10:v,s[a+84>>2]=v>10?10:v,s[a+92>>2]=+s[t+228>>2]*+s[S+228>>2],v=(v=+s[t+232>>2]*+s[S+232>>2])<-10?-10:v,s[a+88>>2]=v>10?10:v,v=+s[a+72>>2],+b(+v)>.7071067690849304?(M=+s[a+68>>2],T=1/+_(+(v*v+M*M)),s[a+152>>2]=0,s[a+156>>2]=-T*v,s[a+160>>2]=T*M,s[a+168>>2]=(v*v+M*M)*T,E=+s[a+64>>2],s[a+172>>2]=-E*T*M,s[a+176>>2]=E*(-T*v)):(M=+s[a+64>>2],E=+s[a+68>>2],T=1/+_(+(M*M+E*E)),s[a+152>>2]=-E*T,s[a+156>>2]=T*M,s[a+160>>2]=0,s[a+168>>2]=-v*T*M,s[a+172>>2]=v*(-E*T),s[a+176>>2]=(M*M+E*E)*T),(0|c)!=(0|h)?(o[a+96>>2]=o[i+20>>2],o[a+100>>2]=o[i+16>>2],o[a+104>>2]=o[i+28>>2],o[a+108>>2]=o[i+24>>2]):(o[a+96>>2]=o[i+16>>2],o[a+100>>2]=o[i+20>>2],o[a+104>>2]=o[i+24>>2],o[a+108>>2]=o[i+28>>2]),(0|x)>-1?(t=0|o[(S=f+(184*x|0)+152|0)>>2],M=+s[(l=f+(184*x|0)+124|0)>>2],E=+s[(d=f+(184*x|0)+128|0)>>2],T=+s[(e=f+(184*x|0)+132|0)>>2],c=0|o[(h=f+(184*x|0)+116|0)>>2],Se(f+(184*x|0)+4|0,0|a,184),o[h>>2]=c,s[l>>2]=M,s[d>>2]=E,s[e>>2]=T,o[S>>2]=t,void(u=a)):(ut(f,a),void(u=a))}u=a},function(i,t,e,r){var f;t|=0,e|=0,r=+r,f=u,o[(i|=0)+4>>2]=o[t+0>>2],o[i+8>>2]=o[t+4>>2],o[i+12>>2]=o[t+8>>2],o[i+16>>2]=o[t+12>>2],o[i+20>>2]=o[e+0>>2],o[i+24>>2]=o[e+4>>2],o[i+28>>2]=o[e+8>>2],o[i+32>>2]=o[e+12>>2],s[i+36>>2]=r,n[i+40|0]=1,u=f},function(i,t,e,r){i|=0,e|=0,r=+r;var f,a,c,h,l,d,v=0,b=0,_=0,w=0,p=0,m=0,y=0,k=0,g=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0,L=0,I=0,A=0,D=0,O=0,R=0;return h=u,u=u+16|0,d=+s[(t|=0)>>2],f=+s[t+4>>2],a=+s[t+8>>2],l=+s[e>>2],c=+s[e+4>>2],v=+s[e+8>>2],0|n[i+228|0]?(S=+s[i+36>>2],E=+s[i+52>>2],g=+s[i+68>>2],x=+s[i+40>>2],L=+s[i+56>>2],C=+s[i+72>>2],M=+s[i+44>>2],A=+s[i+60>>2],j=+s[i+76>>2],m=-+s[i+84>>2],y=-+s[i+88>>2],k=-+s[i+92>>2],_=+s[i+164>>2],D=+s[i+168>>2],b=+s[i+172>>2],w=+s[i+180>>2],p=+s[i+184>>2],O=+s[i+188>>2],T=+s[i+196>>2],I=+s[i+200>>2],R=+s[i+204>>2],D=(a*r+v)*(g*_+C*D+j*b)+((d*r+l)*(S*_+x*D+M*b)+(f*r+c)*(E*_+L*D+A*b))+((M*m+A*y+j*k)*b+(_*(S*m+E*y+g*k)+D*(x*m+L*y+C*k))+ +s[i+212>>2]),O=(a*r+v)*(g*w+C*p+j*O)+((d*r+l)*(S*w+x*p+M*O)+(f*r+c)*(E*w+L*p+A*O))+((S*m+E*y+g*k)*w+(x*m+L*y+C*k)*p+(M*m+A*y+j*k)*O+ +s[i+216>>2]),R=(S*m+E*y+g*k)*T+(x*m+L*y+C*k)*I+(M*m+A*y+j*k)*R+ +s[i+220>>2]+((a*r+v)*(g*T+C*I+j*R)+((d*r+l)*(S*T+x*I+M*R)+(f*r+c)*(E*T+L*I+A*R))),s[h>>2]=D+d*(d*(D-l)+f*(O-c)+a*(R-v)),s[h+4>>2]=O+f*(d*(D-l)+f*(O-c)+a*(R-v)),s[h+8>>2]=R+a*(d*(D-l)+f*(O-c)+a*(R-v)),s[h+12>>2]=0,R=d*(D-l)+f*(O-c)+a*(R-v),e=0|o[(e=i+32|0)>>2],i=0|o[e>>2],i=0|o[(i=i+16|0)>>2],Rn[15&i](e,t,h,R),void(u=h)):(S=+s[i+100>>2],g=+s[i+116>>2],E=+s[i+132>>2],j=+s[i+104>>2],y=+s[i+120>>2],M=+s[i+136>>2],C=+s[i+108>>2],p=+s[i+124>>2],x=+s[i+140>>2],I=-+s[i+148>>2],L=-+s[i+152>>2],T=-+s[i+156>>2],O=+s[i+164>>2],w=+s[i+168>>2],R=+s[i+172>>2],D=+s[i+180>>2],A=+s[i+184>>2],_=+s[i+188>>2],k=+s[i+196>>2],m=+s[i+200>>2],b=+s[i+204>>2],w=v*(E*O+M*w+x*R)+(l*(S*O+j*w+C*R)+c*(g*O+y*w+p*R))+((C*I+p*L+x*T)*R+(O*(S*I+g*L+E*T)+w*(j*I+y*L+M*T))+ +s[i+212>>2]),_=v*(E*D+M*A+x*_)+(l*(S*D+j*A+C*_)+c*(g*D+y*A+p*_))+((S*I+g*L+E*T)*D+(j*I+y*L+M*T)*A+(C*I+p*L+x*T)*_+ +s[i+216>>2]),b=(S*I+g*L+E*T)*k+(j*I+y*L+M*T)*m+(C*I+p*L+x*T)*b+ +s[i+220>>2]+(v*(E*k+M*m+x*b)+(l*(S*k+j*m+C*b)+c*(g*k+y*m+p*b))),s[h>>2]=w,s[h+4>>2]=_,s[h+8>>2]=b,s[h+12>>2]=0,v=(d*r+l-w)*+s[t>>2]+(f*r+c-_)*+s[t+4>>2]+(a*r+v-b)*+s[t+8>>2],e=0|o[(e=i+32|0)>>2],i=0|o[e>>2],i=0|o[(i=i+16|0)>>2],Rn[15&i](e,t,h,v),void(u=h))},function(i,t,e,r){var f,a,c,h;if(t|=0,e|=0,r=+r,f=u,u=u+16|0,s[(i|=0)+32>>2]=r,o[i+8>>2]=o[t+0>>2],o[i+12>>2]=o[t+4>>2],o[i+16>>2]=o[t+8>>2],o[i+20>>2]=o[t+12>>2],a=+s[i+28>>2],h=+s[e+4>>2]-a*+s[t+4>>2],c=+s[e+8>>2]-a*+s[t+8>>2],s[f>>2]=+s[e>>2]-+s[t>>2]*a,s[f+4>>2]=h,s[f+8>>2]=c,s[f+12>>2]=0,r=+s[i+24>>2]+a+r,s[i+32>>2]=r,!(r<0))return e=0|o[(e=i+4|0)>>2],i=0|o[e>>2],i=0|o[(i=i+16|0)>>2],Rn[15&i](e,t,f,r),void(u=f);n[i+36|0]=1,e=0|o[(e=i+4|0)>>2],i=0|o[e>>2],i=0|o[(i=i+16|0)>>2],Rn[15&i](e,t,f,r),u=f},function(i,t,e,n){n=+n},Ye,Ye,Ye,Ye,Ye,Ye,Ye],Pn=[Qe,function(i,t,e){var n;t|=0,e|=0,n=u,o[(i|=0)+300>>2]=o[t+0>>2],o[i+304>>2]=o[t+4>>2],o[i+308>>2]=o[t+8>>2],o[i+312>>2]=o[t+12>>2],o[i+316>>2]=o[t+16>>2],o[i+320>>2]=o[t+20>>2],o[i+324>>2]=o[t+24>>2],o[i+328>>2]=o[t+28>>2],o[i+332>>2]=o[t+32>>2],o[i+336>>2]=o[t+36>>2],o[i+340>>2]=o[t+40>>2],o[i+344>>2]=o[t+44>>2],o[i+348>>2]=o[t+48>>2],o[i+352>>2]=o[t+52>>2],o[i+356>>2]=o[t+56>>2],o[i+360>>2]=o[t+60>>2],o[i+364>>2]=o[e+0>>2],o[i+368>>2]=o[e+4>>2],o[i+372>>2]=o[e+8>>2],o[i+376>>2]=o[e+12>>2],o[i+380>>2]=o[e+16>>2],o[i+384>>2]=o[e+20>>2],o[i+388>>2]=o[e+24>>2],o[i+392>>2]=o[e+28>>2],o[i+396>>2]=o[e+32>>2],o[i+400>>2]=o[e+36>>2],o[i+404>>2]=o[e+40>>2],o[i+408>>2]=o[e+44>>2],o[i+412>>2]=o[e+48>>2],o[i+416>>2]=o[e+52>>2],o[i+420>>2]=o[e+56>>2],o[i+424>>2]=o[e+60>>2],nn[255&o[8+(0|o[i>>2])>>2]](i),u=n},function(i,t,e){t|=0,e|=0;var r,f=0,a=0,s=0,c=0,h=0;if(r=u,(0|(s=0|o[(i|=0)+212>>2]))==(0|o[i+216>>2])&&(0|s)<(0|(f=0|s?s<<1:1))){if(0|f?(o[4546]=1+(0|o[4546]),0|(a=0|ye(16+(f<<2|3)|0))?(o[(a+19&-16)-4>>2]=a,a=a+19&-16):a=0,s=0|o[i+212>>2]):a=0,(0|s)>0){h=0;do{0|(c=a+(h<<2)|0)&&(o[c>>2]=o[(0|o[i+220>>2])+(h<<2)>>2]),h=h+1|0}while((0|h)!=(0|s))}0|(c=0|o[i+220>>2])&&(0|n[i+224|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[c+-4>>2]),s=0|o[i+212>>2]),o[i+220>>2]=0),n[i+224|0]=1,o[i+220>>2]=a,o[i+216>>2]=f}0|(f=(0|o[i+220>>2])+(s<<2)|0)&&(o[f>>2]=t),o[i+212>>2]=s+1,e?(Wt(0|o[t+28>>2],t),Wt(0|o[t+32>>2],t),u=r):u=r},function(i,t,e){},function(i,t,e){},function(i,t,e){t|=0,e|=0;var n,f=0,s=0,c=0,h=0,l=0,d=0,v=0,b=0,_=0,w=0;n=u,0|(f=0|o[(i|=0)+108>>2])&&Pn[63&o[12+(0|o[f>>2])>>2]](f,0|o[t+60>>2],e),f=0|o[t+12>>2],t=0|o[i+60>>2],w=0|o[i+92>>2],0|an[127&o[56+(0|o[w>>2])>>2]](w)||(w=0|o[i+92>>2],Pn[63&o[16+(0|o[w>>2])>>2]](w,t+((65535&f)<<6)|0,e)),e=0|a[i+56>>1],s=0|o[i+60>>2],r[s+54>>1]=65534+(0|a[s+54>>1]),r[s+56>>1]=65534+(0|a[s+56>>1]),r[s+58>>1]=65534+(0|a[s+58>>1]),s=0;do{if(c=0|o[(h=i+(s<<2)+68|0)>>2],v=0|a[t+((65535&f)<<6)+(s<<1)+54>>1],r[c+(v<<2)>>1]=0|r[i+6>>1],(b=0|r[c+(v+1<<2)+2>>1])<<16>>16){for(l=(0|o[i+60>>2])+(a[c+(v<<2)+2>>1]<<6)+(s<<1)+54|0,d=c+(v<<2)|0,v=c+(v+1<<2)|0;w=0|r[v>>1],!((0|a[d>>1])<(65535&w))&&(_=0|o[i+60>>2],b&=65535,1&w?r[(w=_+(b<<6)+(s<<1)+54|0)>>1]=(0|r[w>>1])-1<<16>>16:r[(w=_+(b<<6)+(s<<1)+48|0)>>1]=(0|r[w>>1])-1<<16>>16,r[l>>1]=1+(0|r[l>>1])<<16>>16,b=a[d>>1]|a[d+2>>1]<<16,w=a[v>>1]|a[v+2>>1]<<16,r[d>>1]=w,r[d+2>>1]=w>>>16,r[v>>1]=b,r[v+2>>1]=b>>>16,(b=0|r[v+6>>1])<<16>>16);)d=d+4|0,v=v+4|0;v=0|o[h>>2]}else v=c;b=0|a[t+((65535&f)<<6)+(s<<1)+48>>1],r[c+(b<<2)>>1]=0|r[i+6>>1],d=0|r[v+(b+1<<2)+2>>1];i:do{if(d<<16>>16)for(h=(0|o[i+60>>2])+(a[v+(b<<2)+2>>1]<<6)+(s<<1)+48|0,l=v+(b<<2)|0,v=v+(b+1<<2)|0;;){if(b=0|r[v>>1],(0|a[l>>1])<(65535&b))break i;if(_=0|o[i+60>>2],d&=65535,1&b?r[(w=_+(d<<6)+(s<<1)+54|0)>>1]=(0|r[w>>1])-1<<16>>16:r[(w=_+(d<<6)+(s<<1)+48|0)>>1]=(0|r[w>>1])-1<<16>>16,r[h>>1]=1+(0|r[h>>1])<<16>>16,d=a[l>>1]|a[l+2>>1]<<16,w=a[v>>1]|a[v+2>>1]<<16,r[l>>1]=w,r[l+2>>1]=w>>>16,r[v>>1]=d,r[v+2>>1]=d>>>16,!((d=0|r[v+6>>1])<<16>>16))break;l=l+4|0,v=v+4|0}}while(0);r[c+((e<<1)-1<<2)+2>>1]=0,r[c+((e<<1)-1<<2)>>1]=0|r[i+6>>1],s=s+1|0}while(3!=(0|s));r[(0|o[i+60>>2])+((65535&f)<<6)+48>>1]=0|r[i+64>>1],r[i+64>>1]=f,r[i+56>>1]=(0|r[i+56>>1])-1<<16>>16,u=n},function(i,t,e){var n;i|=0,e|=0,n=u,o[(t|=0)+0>>2]=o[i+8>>2],o[t+4>>2]=o[i+12>>2],o[t+8>>2]=o[i+16>>2],o[t+12>>2]=o[i+20>>2],o[e+0>>2]=o[i+24>>2],o[e+4>>2]=o[i+28>>2],o[e+8>>2]=o[i+32>>2],o[e+12>>2]=o[i+36>>2],u=n},function(i,t,e){},function(i,t,e){},function(i,t,e){},function(i,t,e){},function(i,t,e){var n,r,f,a,c,h,l,d;i|=0,t|=0,e|=0,n=u,u=u+96|0,s[n+32>>2]=1,o[n+36>>2]=0,o[n+40>>2]=0,o[n+44>>2]=0,o[n+48>>2]=0,s[n+52>>2]=1,o[n+56>>2]=0,o[n+60>>2]=0,o[n+64>>2]=0,o[n+68>>2]=0,s[n+72>>2]=1,o[(d=n+76|0)+0>>2]=0,o[d+4>>2]=0,o[d+8>>2]=0,o[d+12>>2]=0,o[d+16>>2]=0,Vn[63&o[8+(0|o[i>>2])>>2]](i,n+32|0,n+16|0,n),h=+s[n>>2],l=+s[n+16>>2],a=+s[n+4>>2],c=+s[n+20>>2],r=+s[n+8>>2],f=+s[n+24>>2],s[e>>2]=.5*+_(+((h-l)*(h-l)+(a-c)*(a-c)+(r-f)*(r-f))),s[t>>2]=.5*(l+h),s[t+4>>2]=.5*(c+a),s[t+8>>2]=.5*(f+r),s[t+12>>2]=0,u=n},function(i,t,e){i|=0,e|=0;var n,r,f,a,c=0,h=0;n=u,f=+s[(t|=0)+28>>2],a=+s[t+32>>2],c=+s[t+36>>2],r=+mn[15&o[48+(0|o[t>>2])>>2]](t),h=+mn[15&o[48+(0|o[t>>2])>>2]](t),c+=+mn[15&o[48+(0|o[t>>2])>>2]](t),h=+s[e+4>>2]>=0?a+h:-(a+h),c=+s[e+8>>2]>=0?c:-c,s[i>>2]=+s[e>>2]>=0?f+r:-(f+r),s[i+4>>2]=h,s[i+8>>2]=c,s[i+12>>2]=0,u=n},function(i,t,e){i|=0,e|=0;var n,r=0,o=0;n=+s[(t|=0)+28>>2],o=+s[t+32>>2],o=+s[e+4>>2]>=0?o:-o,r=+s[t+36>>2],r=+s[e+8>>2]>=0?r:-r,s[i>>2]=+s[e>>2]>=0?n:-n,s[i+4>>2]=o,s[i+8>>2]=r,s[i+12>>2]=0},function(i,t,e){switch(i|=0,e|=0,i=u,0|(t|=0)){case 2:return s[e>>2]=0,s[e+4>>2]=1,s[e+8>>2]=0,s[e+12>>2]=0,void(u=i);case 5:return s[e>>2]=0,s[e+4>>2]=0,s[e+8>>2]=-1,s[e+12>>2]=0,void(u=i);case 4:return s[e>>2]=0,s[e+4>>2]=0,s[e+8>>2]=1,s[e+12>>2]=0,void(u=i);case 3:return s[e>>2]=0,s[e+4>>2]=-1,s[e+8>>2]=0,s[e+12>>2]=0,void(u=i);case 1:return s[e>>2]=-1,s[e+4>>2]=0,s[e+8>>2]=0,s[e+12>>2]=0,void(u=i);case 0:return s[e>>2]=1,s[e+4>>2]=0,s[e+8>>2]=0,s[e+12>>2]=0,void(u=i);default:return void(u=i)}},function(i,t,e){t|=0,e|=0;var n,r,f,a,c,h=0;n=u,c=+s[(i|=0)+28>>2],f=+s[i+32>>2],h=+s[i+36>>2],a=+mn[15&o[48+(0|o[i>>2])>>2]](i),r=+mn[15&o[48+(0|o[i>>2])>>2]](i),h+=+mn[15&o[48+(0|o[i>>2])>>2]](i),s[e>>2]=+(1&t^1)*(c+a)-+(1&t)*(c+a),s[e+4>>2]=+(t>>>1&1^1)*(f+r)-+(t>>>1&1)*(f+r),s[e+8>>2]=+(t>>>2&1^1)*h-+(t>>>2&1)*h,s[e+12>>2]=0,u=n},function(i,t,e){var n,r,o,f;switch(t|=0,e|=0,n=u,r=+s[(i|=0)+28>>2],o=+s[i+32>>2],f=+s[i+36>>2],0|e){case 4:return s[t>>2]=0,s[t+4>>2]=0,s[t+8>>2]=1,s[t+12>>2]=-f,void(u=n);case 1:return s[t>>2]=-1,s[t+4>>2]=0,s[t+8>>2]=0,s[t+12>>2]=-r,void(u=n);case 0:return s[t>>2]=1,s[t+4>>2]=0,s[t+8>>2]=0,s[t+12>>2]=-r,void(u=n);case 5:return s[t>>2]=0,s[t+4>>2]=0,s[t+8>>2]=-1,s[t+12>>2]=-f,void(u=n);case 3:return s[t>>2]=0,s[t+4>>2]=-1,s[t+8>>2]=0,s[t+12>>2]=-o,void(u=n);case 2:return s[t>>2]=0,s[t+4>>2]=1,s[t+8>>2]=0,s[t+12>>2]=-o,void(u=n);default:return void(u=n)}},function(i,t,e){var n,r,f,a,c,h;i|=0,t|=0,e|=0,n=u,u=u+176|0,o[n+160>>2]=0,o[n+164>>2]=0,o[n+168>>2]=0,o[n+172>>2]=0,o[n+136>>2]=0,o[n+140>>2]=0,o[n+144>>2]=0,o[n+148>>2]=0,o[n+152>>2]=0,o[n+32>>2]=15728,o[n+36>>2]=0,o[n+40>>2]=0,o[n+44>>2]=0,o[n+48>>2]=0,s[n+52>>2]=1,o[n+56>>2]=o[n+160>>2],o[n+60>>2]=o[n+164>>2],o[n+64>>2]=o[n+168>>2],o[n+68>>2]=0,s[n+72>>2]=1,o[n+76>>2]=0,o[n+80>>2]=0,o[n+84>>2]=0,o[n+88>>2]=0,s[n+92>>2]=1,s[n+96>>2]=0,o[n+100>>2]=o[n+140>>2],o[n+104>>2]=o[n+144>>2],o[n+108>>2]=o[n+148>>2],o[n+112>>2]=o[n+152>>2],s[n+116>>2]=-0xde0b6b000000000,h=+s[e>>2],c=+s[e+4>>2],a=+s[e+8>>2],f=h*+s[n+56>>2]+c+0*a,r=h*+s[n+60>>2]+0*c+a,s[n+120>>2]=h+0*c+0*a,s[n+124>>2]=f,s[n+128>>2]=r,s[n+132>>2]=0,s[n+16>>2]=0xde0b6b000000000,s[n+20>>2]=0xde0b6b000000000,s[n+24>>2]=0xde0b6b000000000,s[n+28>>2]=0,e=0|o[64+(0|o[t>>2])>>2],s[n>>2]=-0xde0b6b000000000,s[n+4>>2]=-0xde0b6b000000000,s[n+8>>2]=-0xde0b6b000000000,s[n+12>>2]=0,Vn[63&e](t,n+32|0,n,n+16|0),o[i+0>>2]=o[n+36>>2],o[i+4>>2]=o[n+40>>2],o[i+8>>2]=o[n+44>>2],o[i+12>>2]=o[n+48>>2],u=n},function(i,t,e){var n;i|=0,e|=0,n=u,Pn[63&o[68+(0|o[(t|=0)>>2])>>2]](i,t,e),u=n},function(i,t,e){t|=0,e|=0;var n,r,h,l,d=0,v=0,b=0,_=0,w=0,p=0;for(l=u,u=u+32|0,v=0|o[(i|=0)+4>>2],jn[3&o[16+(0|o[v>>2])>>2]](v,l+28|0,l+24|0,l+20|0,l+16|0,l+12|0,l+8|0,l+4|0,l,t),v=0|o[l+12>>2],r=0|g(0|o[l+8>>2],e),n=0|o[i+4>>2],h=0|o[l>>2],d=2;_=2==(0|h)?0|o[v+r+(d<<2)>>2]:3==(0|h)?0|a[v+r+(d<<1)>>1]:0|f[v+(d+r)|0],b=0|o[l+28>>2],_=0|g(0|o[l+16>>2],_),0|o[l+20>>2]?(w=+c[b+(_+8)>>3]*+s[n+8>>2],p=+c[b+(_+16)>>3]*+s[n+12>>2],s[i+(d<<4)+12>>2]=+c[b+_>>3]*+s[n+4>>2],s[i+(d<<4)+16>>2]=w,s[i+(d<<4)+20>>2]=p,s[i+(d<<4)+24>>2]=0):(p=+s[b+(_+4)>>2]*+s[n+8>>2],w=+s[b+(_+8)>>2]*+s[n+12>>2],s[i+(d<<4)+12>>2]=+s[b+_>>2]*+s[n+4>>2],s[i+(d<<4)+16>>2]=p,s[i+(d<<4)+20>>2]=w,s[i+(d<<4)+24>>2]=0),(0|d)>0;)d=d+-1|0;_=0|o[i+8>>2],Vn[63&o[8+(0|o[_>>2])>>2]](_,i+12|0,t,e),_=0|o[i+4>>2],on[127&o[24+(0|o[_>>2])>>2]](_,t),u=l},function(i,t,e){t|=0,e|=0;var n,r,f,h,l,d=0,v=0,b=0,_=0,w=0,p=0;if(l=u,u=u+80|0,d=0|o[(i|=0)+4>>2],jn[3&o[16+(0|o[d>>2])>>2]](d,l+28|0,l+24|0,l+20|0,l+16|0,l+12|0,l+8|0,l+4|0,l,t),d=0|o[l+12>>2],f=0|g(0|o[l+8>>2],e),n=0|o[i+4>>2],h=!(0|o[l+20>>2]),r=0|o[l+28>>2],3!=(0|o[l>>2]))return v=0|o[l+16>>2],b=0|g(v,0|o[d+(f+8)>>2]),h?(p=+s[r+(b+4)>>2]*+s[n+8>>2],w=+s[r+(b+8)>>2]*+s[n+12>>2],s[l+64>>2]=+s[r+b>>2]*+s[n+4>>2],s[l+68>>2]=p,s[l+72>>2]=w,s[l+76>>2]=0,_=0|g(v,0|o[d+(f+4)>>2]),w=+s[r+(_+4)>>2]*+s[n+8>>2],p=+s[r+(_+8)>>2]*+s[n+12>>2],s[l+48>>2]=+s[r+_>>2]*+s[n+4>>2],s[l+52>>2]=w,s[l+56>>2]=p,s[l+60>>2]=0,_=0|g(v,0|o[d+f>>2]),p=+s[r+(_+4)>>2]*+s[n+8>>2],w=+s[r+(_+8)>>2]*+s[n+12>>2],s[l+32>>2]=+s[r+_>>2]*+s[n+4>>2],s[l+36>>2]=p,s[l+40>>2]=w,s[l+44>>2]=0,_=0|o[(_=i+8|0)>>2],b=0|o[_>>2],b=0|o[(b=b+8|0)>>2],Vn[63&b](_,l+32|0,t,e),_=0|o[i+4>>2],b=0|o[_>>2],b=0|o[(b=b+24|0)>>2],on[127&b](_,t),void(u=l)):(w=+c[r+(b+8)>>3]*+s[n+8>>2],p=+c[r+(b+16)>>3]*+s[n+12>>2],s[l+64>>2]=+c[r+b>>3]*+s[n+4>>2],s[l+68>>2]=w,s[l+72>>2]=p,s[l+76>>2]=0,_=0|g(v,0|o[d+(f+4)>>2]),p=+c[r+(_+8)>>3]*+s[n+8>>2],w=+c[r+(_+16)>>3]*+s[n+12>>2],s[l+48>>2]=+c[r+_>>3]*+s[n+4>>2],s[l+52>>2]=p,s[l+56>>2]=w,s[l+60>>2]=0,_=0|g(v,0|o[d+f>>2]),w=+c[r+(_+8)>>3]*+s[n+8>>2],p=+c[r+(_+16)>>3]*+s[n+12>>2],s[l+32>>2]=+c[r+_>>3]*+s[n+4>>2],s[l+36>>2]=w,s[l+40>>2]=p,s[l+44>>2]=0,_=0|o[(_=i+8|0)>>2],b=0|o[_>>2],b=0|o[(b=b+8|0)>>2],Vn[63&b](_,l+32|0,t,e),_=0|o[i+4>>2],b=0|o[_>>2],b=0|o[(b=b+24|0)>>2],on[127&b](_,t),void(u=l));for(v=0|o[l+16>>2],b=2;_=0|g(v,0|a[d+f+(b<<1)>>1]),h?(w=+s[r+(_+4)>>2]*+s[n+8>>2],p=+s[r+(_+8)>>2]*+s[n+12>>2],s[l+32+(b<<4)>>2]=+s[r+_>>2]*+s[n+4>>2],s[l+32+(b<<4)+4>>2]=w,s[l+32+(b<<4)+8>>2]=p,s[l+32+(b<<4)+12>>2]=0):(w=+c[r+(_+8)>>3]*+s[n+8>>2],p=+c[r+(_+16)>>3]*+s[n+12>>2],s[l+32+(b<<4)>>2]=+c[r+_>>3]*+s[n+4>>2],s[l+32+(b<<4)+4>>2]=w,s[l+32+(b<<4)+8>>2]=p,s[l+32+(b<<4)+12>>2]=0),(0|b)>0;)b=b+-1|0;_=0|o[(_=i+8|0)>>2],b=0|o[_>>2],b=0|o[(b=b+8|0)>>2],Vn[63&b](_,l+32|0,t,e),_=0|o[i+4>>2],b=0|o[_>>2],b=0|o[(b=b+24|0)>>2],on[127&b](_,t),u=l},function(i,t,e){t|=0,e|=0;var n,r,f,h,l,d=0,v=0,b=0,_=0,w=0;for(l=u,u=u+80|0,d=0|o[(i|=0)+4>>2],jn[3&o[16+(0|o[d>>2])>>2]](d,l+28|0,l+24|0,l+20|0,l+16|0,l+12|0,l+8|0,l+4|0,l,t),d=(0|o[l+12>>2])+(0|g(0|o[l+8>>2],e))|0,f=0|o[i+4>>2],n=3==(0|o[l>>2]),h=!(0|o[l+20>>2]),r=0|o[l+28>>2],v=2;b=n?0|a[d+(v<<1)>>1]:0|o[d+(v<<2)>>2],b=0|g(0|o[l+16>>2],b),h?(w=+s[r+(b+4)>>2]*+s[f+8>>2],_=+s[r+(b+8)>>2]*+s[f+12>>2],s[l+32+(v<<4)>>2]=+s[r+b>>2]*+s[f+4>>2],s[l+32+(v<<4)+4>>2]=w,s[l+32+(v<<4)+8>>2]=_,s[l+32+(v<<4)+12>>2]=0):(_=+c[r+(b+8)>>3]*+s[f+8>>2],w=+c[r+(b+16)>>3]*+s[f+12>>2],s[l+32+(v<<4)>>2]=+c[r+b>>3]*+s[f+4>>2],s[l+32+(v<<4)+4>>2]=_,s[l+32+(v<<4)+8>>2]=w,s[l+32+(v<<4)+12>>2]=0),(0|v)>0;)v=v+-1|0;b=0|o[i+8>>2],Vn[63&o[8+(0|o[b>>2])>>2]](b,l+32|0,t,e),b=0|o[i+4>>2],on[127&o[24+(0|o[b>>2])>>2]](b,t),u=l},function(i,t,e){i|=0,e|=0;var n,r,f,a=0,c=0,h=0;n=u,Pn[63&o[68+(0|o[(t|=0)>>2])>>2]](i,t,e),0!=+mn[15&o[48+(0|o[t>>2])>>2]](t)?(f=(h=+s[e>>2])*h+(c=+s[e+4>>2])*c+(a=+s[e+8>>2])*a<14210854715202004e-30?-1:c,a=1/+_(+((r=h*h+c*c+a*a<14210854715202004e-30?-1:a)*r+((h=h*h+c*c+a*a<14210854715202004e-30?-1:h)*h+f*f))),c=+mn[15&o[48+(0|o[t>>2])>>2]](t),s[i>>2]=a*h*c+ +s[i>>2],s[i+4>>2]=c*a*f+ +s[i+4>>2],s[i+8>>2]=c*a*r+ +s[i+8>>2],u=n):u=n},function(i,t,e){t|=0,e|=0;var n,r=0,f=0,a=0,c=0,h=0,l=0,d=0,v=0,b=0,w=0;n=u,u=u+32|0,o[(i|=0)+0>>2]=0,o[i+4>>2]=0,o[i+8>>2]=0,o[i+12>>2]=0,(r=+s[e>>2])*r+(f=+s[e+4>>2])*f+(a=+s[e+8>>2])*a<9999999747378752e-20?(r=1,f=0,a=0):(r*=w=1/+_(+(r*r+f*f+a*a)),f*=w,a*=w),e=0|o[t+52>>2],l=+s[t+((e+2|0)%3<<2)+28>>2],o[n+16>>2]=0,o[n+20>>2]=0,o[n+24>>2]=0,o[n+28>>2]=0,s[n+16+(e<<2)>>2]=+s[t+(e<<2)+28>>2],h=r*l,c=f*l,l*=a,w=h+ +s[n+16>>2],d=c+ +s[n+20>>2],v=l+ +s[n+24>>2],w-=r*(b=+mn[15&o[48+(0|o[t>>2])>>2]](t)),d-=f*b,(v=a*(b=v-a*b)+(r*w+f*d))>-0xde0b6b000000000?(s[i>>2]=w,s[i+4>>2]=d,s[i+8>>2]=b,s[i+12>>2]=0):v=-0xde0b6b000000000,o[n+0>>2]=0,o[n+4>>2]=0,o[n+8>>2]=0,o[n+12>>2]=0,e=0|o[t+52>>2],s[n+(e<<2)>>2]=-+s[t+(e<<2)+28>>2],h+=+s[n>>2],c+=+s[n+4>>2],w=l+ +s[n+8>>2],h-=r*(l=+mn[15&o[48+(0|o[t>>2])>>2]](t)),c-=f*l,a*(l=w-a*l)+(r*h+f*c)>v?(s[i>>2]=h,s[i+4>>2]=c,s[i+8>>2]=l,s[i+12>>2]=0,u=n):u=n},function(i,t,e){},function(i,t,e){},function(i,t,e){},function(i,t,e){var n,r,f,a=0,c=0,h=0;n=u,Ki(i|=0,t|=0,e|=0),0!=+mn[15&o[48+(0|o[t>>2])>>2]](t)?(f=(h=+s[e>>2])*h+(c=+s[e+4>>2])*c+(a=+s[e+8>>2])*a<14210854715202004e-30?-1:c,a=1/+_(+((r=h*h+c*c+a*a<14210854715202004e-30?-1:a)*r+((h=h*h+c*c+a*a<14210854715202004e-30?-1:h)*h+f*f))),c=+mn[15&o[48+(0|o[t>>2])>>2]](t),s[i>>2]=a*h*c+ +s[i>>2],s[i+4>>2]=c*a*f+ +s[i+4>>2],s[i+8>>2]=c*a*r+ +s[i+8>>2],u=n):u=n},function(i,t,e){var n;n=u,Ki(i|=0,t|=0,e|=0),u=n},function(i,t,e){},function(i,t,e){},function(i,t,e){i|=0,e|=0;var n,r,f,a=0,c=0,h=0;n=u,Pn[63&o[68+(0|o[(t|=0)>>2])>>2]](i,t,e),0!=+mn[15&o[48+(0|o[t>>2])>>2]](t)?(f=(h=+s[e>>2])*h+(c=+s[e+4>>2])*c+(a=+s[e+8>>2])*a<14210854715202004e-30?-1:c,a=1/+_(+((r=h*h+c*c+a*a<14210854715202004e-30?-1:a)*r+((h=h*h+c*c+a*a<14210854715202004e-30?-1:h)*h+f*f))),c=+mn[15&o[48+(0|o[t>>2])>>2]](t),s[i>>2]=a*h*c+ +s[i>>2],s[i+4>>2]=c*a*f+ +s[i+4>>2],s[i+8>>2]=c*a*r+ +s[i+8>>2],u=n):u=n},function(i,t,e){i|=0,e|=0;var n,r,o,f,a,c=0;return n=u,r=+s[(t|=0)+28>>2],c=+s[t+32>>2],a=+s[e>>2],f=+s[e+8>>2],0!=(o=+_(+(a*a+f*f)))?(s[i>>2]=a*(r/o),+s[e+4>>2]<0&&(c=-c),s[i+4>>2]=c,s[i+8>>2]=f*(r/o),void(u=n)):(s[i>>2]=r,+s[e+4>>2]<0&&(c=-c),s[i+4>>2]=c,s[i+8>>2]=0,void(u=n))},function(i,t,e){i|=0,e|=0;var n,r,o,f,a,c=0;return n=u,r=+s[(t|=0)+32>>2],c=+s[t+28>>2],a=+s[e+4>>2],f=+s[e+8>>2],0!=(o=+_(+(a*a+f*f)))?(s[i+4>>2]=a*(r/o),+s[e>>2]<0&&(c=-c),s[i>>2]=c,s[i+8>>2]=f*(r/o),void(u=n)):(s[i+4>>2]=r,+s[e>>2]<0&&(c=-c),s[i>>2]=c,s[i+8>>2]=0,void(u=n))},function(i,t,e){i|=0,e|=0;var n,r,o,f,a,c=0;return n=u,r=+s[(t|=0)+28>>2],c=+s[t+36>>2],a=+s[e>>2],f=+s[e+4>>2],0!=(o=+_(+(a*a+f*f)))?(s[i>>2]=a*(r/o),+s[e+8>>2]<0&&(c=-c),s[i+8>>2]=c,s[i+4>>2]=f*(r/o),void(u=n)):(s[i>>2]=r,+s[e+8>>2]<0&&(c=-c),s[i+8>>2]=c,s[i+4>>2]=0,void(u=n))},function(i,t,e){i|=0,e|=0;var r,f=0,a=0;if(r=u,2==(0|o[(t|=0)+60>>2])?(Ti(i+64|0,f=0|o[t+48>>2]),0|(a=0|o[i+68>>2])&&(o[4548]=1+(0|o[4548]),ke(0|o[a+-4>>2])),o[i+68>>2]=f,o[i+76>>2]=(0|o[i+76>>2])-1):(Ti(i+4|0,f=0|o[t+48>>2]),0|(a=0|o[i+8>>2])&&(o[4548]=1+(0|o[4548]),ke(0|o[a+-4>>2])),o[i+8>>2]=f,o[i+16>>2]=(0|o[i+16>>2])-1),a=0|o[t+52>>2],f=0|o[t+56>>2],0|a?o[a+56>>2]=f:o[i+(o[t+60>>2]<<2)+124>>2]=f,0|(f=0|o[t+56>>2])&&(o[f+52>>2]=o[t+52>>2]),a=0|o[i+136>>2],Pn[63&o[16+(0|o[a>>2])>>2]](a,t,e),!(0|t))return n[(a=i+194|0)|0]=1,void(u=r);o[4548]=1+(0|o[4548]),ke(0|o[t+-4>>2]),n[(a=i+194|0)|0]=1,u=r},function(i,t,e){t|=0,e|=0;var n,r,f=0,a=0,c=0,h=0,l=0,d=0,v=0,b=0,_=0,w=0,p=0,m=0;n=u,r=0|o[(i|=0)+4>>2],i=0|o[i+64>>2];do{if(0|r){if(f=+s[r>>2],0|i){m=+s[i>>2],w=+s[r+16>>2],l=+s[i+16>>2],p=+s[r+4>>2],a=+s[i+4>>2],_=+s[r+20>>2],h=+s[i+20>>2],f=f<m?f:m,a=p<a?p:a,v=(d=+s[r+8>>2])<(v=+s[i+8>>2])?d:v,d=0,l=w>l?w:l,h=_>h?_:h,c=(b=+s[r+24>>2])>(c=+s[i+24>>2])?b:c,b=0;break}a=+s[r+4>>2],v=+s[r+8>>2],d=+s[r+12>>2],l=+s[r+16>>2],h=+s[r+20>>2],c=+s[r+24>>2],b=+s[r+28>>2];break}0|i?(f=+s[i>>2],a=+s[i+4>>2],v=+s[i+8>>2],d=+s[i+12>>2],l=+s[i+16>>2],h=+s[i+20>>2],c=+s[i+24>>2],b=+s[i+28>>2]):(f=0,a=0,v=0,d=0,l=0,h=0,c=0,b=0)}while(0);s[t>>2]=f,s[t+4>>2]=a,s[t+8>>2]=v,s[t+12>>2]=d,s[e>>2]=l,s[e+4>>2]=h,s[e+8>>2]=c,s[e+12>>2]=b,u=n},function(i,t,e){var n,r;i|=0,n=u,(0|(t|=0))!=(0|(e|=0))?(r=0|o[136+(0|o[i+4>>2])>>2],_n[31&o[8+(0|o[r>>2])>>2]](r,0|o[t+36>>2],0|o[e+36>>2]),e=160+(0|o[i+4>>2])|0,o[e>>2]=1+(0|o[e>>2]),u=n):u=n},function(i,t,e){t|=0,e|=0,o[(i|=0)+16>>2]=t,o[i+24>>2]=e},function(i,t,e){t|=0,e|=0,o[(i|=0)+20>>2]=t,o[i+28>>2]=e},function(i,t,e){},function(i,t,e){},function(i,t,e){var n;i|=0,t|=0,e|=0,n=u,u=u+16|0,o[n>>2]=13888,o[n+4>>2]=t,Pn[63&o[48+(0|o[i>>2])>>2]](i,n,e),u=n},function(i,t,e){var n;i|=0,e|=0,i=u,!(0|(n=0|o[(t|=0)+8>>2]))|!(0|e)||(nn[255&o[o[n>>2]>>2]](n),on[127&o[60+(0|o[e>>2])>>2]](e,0|o[t+8>>2]),o[t+8>>2]=0),u=i},function(i,t,e){var n;i|=0,t|=0,e|=0,n=u,u=u+16|0,o[n>>2]=14064,o[n+4>>2]=t,o[n+8>>2]=i,o[n+12>>2]=e,Pn[63&o[48+(0|o[i>>2])>>2]](i,n,e),u=n},function(i,t,e){t|=0,e|=0;var n,r=0,f=0,a=0;if(n=u,(0|o[(i|=0)+8>>2])<=0)u=n;else{r=0;i:for(;;){for(;f=(a=0|o[i+16>>2])+(r<<4)|0,0|Sn[31&o[8+(0|o[t>>2])>>2]](t,f);)if(hn[31&o[12+(0|o[i>>2])>>2]](i,0|o[f>>2],0|o[a+(r<<4)+4>>2],e),o[3430]=(0|o[3430])-1,(0|r)>=(0|o[i+8>>2])){i=7;break i}if((0|(r=r+1|0))>=(0|o[i+8>>2])){i=7;break}}7!=(0|i)||(u=n)}},function(i,t,e){t|=0,e|=0;var n,r=0,f=0,a=0,c=0,h=0,l=0,d=0,v=0,b=0,w=0,p=0;if(n=u,u=u+2048|0,o[(i|=0)+0>>2]=0,o[i+4>>2]=0,o[i+8>>2]=0,o[i+12>>2]=0,(f=+s[e>>2])*f+(a=+s[e+4>>2])*a+(c=+s[e+8>>2])*c<9999999747378752e-20?(f=1,a=0,c=0):(f*=b=1/+_(+(f*f+a*a+c*c)),a*=b,c*=b),(0|an[127&o[96+(0|o[t>>2])>>2]](t))<=0)u=n;else{e=0,h=-0xde0b6b000000000;do{if(((0|an[127&o[96+(0|o[t>>2])>>2]](t))-e|0)<128?(0|(l=(0|an[127&o[96+(0|o[t>>2])>>2]](t))-e|0))>0?r=7:(b=-34028234663852886e22,v=-1):(l=128,r=7),7==(0|r)){r=0,d=0;do{Pn[63&o[108+(0|o[t>>2])>>2]](t,d,n+(d<<4)|0),d=d+1|0}while((0|d)!=(0|l));d=0,b=-34028234663852886e22,v=-1;do{v=(p=(w=f*+s[n+(d<<4)>>2]+a*+s[n+(d<<4)+4>>2]+c*+s[n+(d<<4)+8>>2])>b)?d:v,b=p?w:b,d=d+1|0}while((0|d)!=(0|l))}b>h&&(p=n+(v<<4)|0,o[i+0>>2]=o[p+0>>2],o[i+4>>2]=o[p+4>>2],o[i+8>>2]=o[p+8>>2],o[i+12>>2]=o[p+12>>2],h=b),e=e+128|0}while((0|e)<(0|an[127&o[96+(0|o[t>>2])>>2]](t)));u=n}},function(i,t,e){i|=0,t|=0;var n,r,f,a,c,h=0;return n=u,c=+s[(e|=0)>>2],a=+s[e+4>>2],h=+s[e+8>>2],f=c*+s[t+56>>2]+a*+s[t+60>>2]+h*+s[t+64>>2],r=c*+s[t+72>>2]+a*+s[t+76>>2]+h*+s[t+80>>2],h=c*+s[t+88>>2]+a*+s[t+92>>2]+h*+s[t+96>>2],f<r?(e=t+((e=r<h?2:1)<<4)+56|0,o[i+0>>2]=o[e+0>>2],o[i+4>>2]=o[e+4>>2],o[i+8>>2]=o[e+8>>2],o[i+12>>2]=o[e+12>>2],void(u=n)):(e=t+((e=f<h?2:0)<<4)+56|0,o[i+0>>2]=o[e+0>>2],o[i+4>>2]=o[e+4>>2],o[i+8>>2]=o[e+8>>2],o[i+12>>2]=o[e+12>>2],void(u=n))},function(i,t,e){t|=0,e|=0;var n,r,o,f,a,c=0,h=0,l=0;f=u,h=+s[(i|=0)+56>>2],o=+s[i+72>>2]-h,c=+s[i+60>>2],r=+s[i+76>>2]-c,l=+s[i+64>>2],n=+s[i+80>>2]-l,h=+s[i+88>>2]-h,c=+s[i+92>>2]-c,l=+s[i+96>>2]-l,s[e+12>>2]=0,a=1/+_(+((o*c-r*h)*(o*c-r*h)+((r*l-n*c)*(r*l-n*c)+(n*h-o*l)*(n*h-o*l)))),s[e>>2]=a*(r*l-n*c),s[e+4>>2]=a*(n*h-o*l),s[e+8>>2]=(o*c-r*h)*a,0|t?(s[e>>2]=a*(r*l-n*c)*-1,s[e+4>>2]=a*(n*h-o*l)*-1,s[e+8>>2]=(o*c-r*h)*a*-1,u=f):u=f},function(i,t,e){var n;i|=0,t|=0,n=u,o[(e|=0)+0>>2]=o[i+(t<<4)+56>>2],o[e+4>>2]=o[i+(t<<4)+60>>2],o[e+8>>2]=o[i+(t<<4)+64>>2],o[e+12>>2]=o[i+(t<<4)+68>>2],u=n},function(i,t,e){i|=0,e|=0;var r=0,f=0,a=0,c=0,h=0,l=0,d=0,v=0;if(e=u,(0|o[(t|=0)+8>>2])>0){f=0|o[t+16>>2],a=0,r=0;do{c=0|o[f+(a<<2)>>2],3&o[c+204>>2]||(o[c+208>>2]=r,r=r+1|0),o[c+212>>2]=-1,s[c+244>>2]=1,a=a+1|0}while((0|a)<(0|o[t+8>>2]))}else r=0;if((0|(f=0|o[i+8>>2]))<(0|r)){if((0|o[i+12>>2])<(0|r)){if(0|r?(o[4546]=1+(0|o[4546]),0|(a=0|ye(16+(r<<3|3)|0))?(o[(a+19&-16)-4>>2]=a,c=a+19&-16):c=0,a=0|o[i+8>>2]):(a=f,c=0),(0|a)>0){h=0;do{0|(l=c+(h<<3)|0)&&(v=(0|o[i+16>>2])+(h<<3)|0,d=0|o[v+4>>2],o[l>>2]=o[v>>2],o[l+4>>2]=d),h=h+1|0}while((0|h)!=(0|a))}0|(a=0|o[i+16>>2])&&(0|n[i+20|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[a+-4>>2])),o[i+16>>2]=0),n[i+20|0]=1,o[i+16>>2]=c,o[i+12>>2]=r,a=i+16|0}else a=i+16|0;do{0|(c=(0|o[a>>2])+(f<<3)|0)&&(o[c>>2]=0,o[c+4>>2]=0),f=f+1|0}while((0|f)!=(0|r))}if(o[i+8>>2]=r,(0|r)>0){a=0|o[i+16>>2],f=0;do{o[a+(f<<3)>>2]=f,o[a+(f<<3)+4>>2]=1,f=f+1|0}while((0|f)!=(0|r))}if(r=0|o[t+68>>2],r=0|an[127&o[36+(0|o[r>>2])>>2]](r),0|(t=0|an[127&o[36+(0|o[r>>2])>>2]](r)))if(f=0|an[127&o[20+(0|o[r>>2])>>2]](r),(0|t)<=0)u=e;else{r=0;do{if(c=0|o[o[f+(r<<4)>>2]>>2],a=0|o[o[f+(r<<4)+4>>2]>>2],0|c&&(0|a&&!(7&o[c+204>>2]))&&!(7&o[a+204>>2])){if(h=0|o[c+208>>2],c=0|o[a+208>>2],a=0|o[i+16>>2],(0|(l=0|o[a+(h<<3)>>2]))!=(0|h)){d=a+(h<<3)|0;do{h=a+(l<<3)|0,o[d>>2]=o[h>>2],h=0|o[h>>2],l=0|o[(d=a+(h<<3)|0)>>2]}while((0|h)!=(0|l))}if((0|(l=0|o[a+(c<<3)>>2]))!=(0|c)){d=a+(c<<3)|0;do{c=a+(l<<3)|0,o[d>>2]=o[c>>2],c=0|o[c>>2],l=0|o[(d=a+(c<<3)|0)>>2]}while((0|c)!=(0|l))}(0|h)!=(0|c)&&(o[a+(h<<3)>>2]=c,o[(v=a+(c<<3)+4|0)>>2]=(0|o[v>>2])+(0|o[a+(h<<3)+4>>2]))}r=r+1|0}while((0|r)!=(0|t));u=e}else u=e},function(i,t,e){i|=0,e|=0;var n,r,f,a=0,c=0,h=0;n=u,Pn[63&o[68+(0|o[(t|=0)>>2])>>2]](i,t,e),f=(h=+s[e>>2])*h+(c=+s[e+4>>2])*c+(a=+s[e+8>>2])*a<14210854715202004e-30?-1:c,a=1/+_(+((r=h*h+c*c+a*a<14210854715202004e-30?-1:a)*r+((h=h*h+c*c+a*a<14210854715202004e-30?-1:h)*h+f*f))),c=+mn[15&o[48+(0|o[t>>2])>>2]](t),s[i>>2]=a*h*c+ +s[i>>2],s[i+4>>2]=c*a*f+ +s[i+4>>2],s[i+8>>2]=c*a*r+ +s[i+8>>2],u=n},function(i,t,e){e|=0,e=u,o[(i|=0)+0>>2]=0,o[i+4>>2]=0,o[i+8>>2]=0,o[i+12>>2]=0,u=e},function(i,t,e){var n;t|=0,e|=0,n=u,o[(i|=0)+52>>2]=o[t+0>>2],o[i+56>>2]=o[t+4>>2],o[i+60>>2]=o[t+8>>2],o[i+64>>2]=o[t+12>>2],o[i+68>>2]=o[e+0>>2],o[i+72>>2]=o[e+4>>2],o[i+76>>2]=o[e+8>>2],o[i+80>>2]=o[e+12>>2],o[i+48>>2]=1,u=n},function(i,t,e){var n;i|=0,e|=0,n=u,o[(t|=0)+0>>2]=o[i+52>>2],o[t+4>>2]=o[i+56>>2],o[t+8>>2]=o[i+60>>2],o[t+12>>2]=o[i+64>>2],o[e+0>>2]=o[i+68>>2],o[e+4>>2]=o[i+72>>2],o[e+8>>2]=o[i+76>>2],o[e+12>>2]=o[i+80>>2],u=n},function(i,t,e){t|=0,e|=0;var n,r=0,f=0,a=0,c=0,h=0,l=0,d=0,v=0,b=0,_=0,w=0,p=0,m=0,y=0,k=0,g=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0,L=0,I=0,A=0,D=0,O=0,R=0,P=0;if(n=u,u=u+240|0,o[(i|=0)+4>>2]=1+(0|o[i+4>>2]),t=0|o[t+36>>2],e=0|o[e+36>>2],h=0|o[i+8>>2],P=0|o[24+(0|o[h+4>>2])>>2],a=0|o[P+(80*t|0)+64>>2],R=24+(0|o[4+(0|o[i+12>>2])>>2])|0,c=0|o[(0|o[R>>2])+(80*e|0)+64>>2],h=0|o[h+12>>2],l=+s[h>>2],D=+s[h+4>>2],O=+s[h+8>>2],b=+s[h+16>>2],w=+s[h+20>>2],m=+s[h+24>>2],_=+s[h+32>>2],y=+s[h+36>>2],E=+s[h+40>>2],k=+s[P+(80*t|0)>>2],g=+s[P+(80*t|0)+16>>2],C=+s[P+(80*t|0)+32>>2],j=+s[P+(80*t|0)+4>>2],S=+s[P+(80*t|0)+20>>2],x=+s[P+(80*t|0)+36>>2],p=+s[P+(80*t|0)+8>>2],M=+s[P+(80*t|0)+24>>2],T=+s[P+(80*t|0)+40>>2],d=+s[P+(80*t|0)+48>>2],v=+s[P+(80*t|0)+52>>2],A=+s[P+(80*t|0)+56>>2],L=+s[h+48>>2]+(l*d+D*v+O*A),I=+s[h+52>>2]+(b*d+w*v+m*A),A=+s[h+56>>2]+(_*d+y*v+E*A),s[n+176>>2]=l*k+D*g+O*C,s[n+180>>2]=l*j+D*S+O*x,s[n+184>>2]=l*p+D*M+O*T,s[n+188>>2]=0,s[n+192>>2]=b*k+w*g+m*C,s[n+196>>2]=b*j+w*S+m*x,s[n+200>>2]=b*p+w*M+m*T,s[n+204>>2]=0,s[n+208>>2]=_*k+y*g+E*C,s[n+212>>2]=_*j+y*S+E*x,s[n+216>>2]=_*p+y*M+E*T,s[n+220>>2]=0,s[n+224>>2]=L,s[n+228>>2]=I,s[n+232>>2]=A,s[n+236>>2]=0,h=0|o[12+(0|o[i+12>>2])>>2],A=+s[h>>2],I=+s[h+4>>2],L=+s[h+8>>2],T=+s[h+16>>2],E=+s[h+20>>2],M=+s[h+24>>2],y=+s[h+32>>2],p=+s[h+36>>2],_=+s[h+40>>2],R=0|o[R>>2],x=+s[R+(80*e|0)>>2],S=+s[R+(80*e|0)+16>>2],j=+s[R+(80*e|0)+32>>2],C=+s[R+(80*e|0)+4>>2],g=+s[R+(80*e|0)+20>>2],k=+s[R+(80*e|0)+36>>2],m=+s[R+(80*e|0)+8>>2],w=+s[R+(80*e|0)+24>>2],b=+s[R+(80*e|0)+40>>2],O=+s[R+(80*e|0)+48>>2],D=+s[R+(80*e|0)+52>>2],l=+s[R+(80*e|0)+56>>2],v=+s[h+48>>2]+(A*O+I*D+L*l),d=+s[h+52>>2]+(T*O+E*D+M*l),l=+s[h+56>>2]+(y*O+p*D+_*l),s[n+112>>2]=A*x+I*S+L*j,s[n+116>>2]=A*C+I*g+L*k,s[n+120>>2]=A*m+I*w+L*b,s[n+124>>2]=0,s[n+128>>2]=T*x+E*S+M*j,s[n+132>>2]=T*C+E*g+M*k,s[n+136>>2]=T*m+E*w+M*b,s[n+140>>2]=0,s[n+144>>2]=y*x+p*S+_*j,s[n+148>>2]=y*C+p*g+_*k,s[n+152>>2]=y*m+p*w+_*b,s[n+156>>2]=0,s[n+160>>2]=v,s[n+164>>2]=d,s[n+168>>2]=l,s[n+172>>2]=0,Vn[63&o[8+(0|o[a>>2])>>2]](a,n+176|0,n+96|0,n+80|0),Vn[63&o[8+(0|o[c>>2])>>2]](c,n+112|0,n+64|0,n+48|0),h=+s[n+96>>2]>+s[n+48>>2]||+s[n+80>>2]<+s[n+64>>2]?0:1,(+s[n+104>>2]>+s[n+56>>2]||+s[n+88>>2]<+s[n+72>>2])&&(h=0),+s[n+100>>2]>+s[n+52>>2])u=n;else if(+s[n+84>>2]<+s[n+68>>2]|1^h)u=n;else{R=0|o[i+8>>2],P=0|o[R+8>>2],o[n+24>>2]=R,o[n+28>>2]=a,o[n+32>>2]=P,o[n+36>>2]=n+176,o[n+40>>2]=-1,o[n+44>>2]=t,P=0|o[i+12>>2],a=0|o[P+8>>2],o[n>>2]=P,o[n+4>>2]=c,o[n+8>>2]=a,o[n+12>>2]=n+112,o[n+16>>2]=-1,o[n+20>>2]=e,a=0|o[i+28>>2],o[4438]=1+(0|o[4438]),c=9*((e<<16|t)+~((e<<16|t)<<15)>>10^(e<<16|t)+~((e<<16|t)<<15))|0,c=(0|o[a+12>>2])-1&((c>>6^c)+~((c>>6^c)<<11)>>16^(c>>6^c)+~((c>>6^c)<<11));i:do{if((0|c)<(0|o[a+32>>2])&&-1!=(0|(f=0|o[(0|o[a+40>>2])+(c<<2)>>2]))){for(c=0|o[a+16>>2];(0|o[c+(12*f|0)>>2])!=(0|t)||(0|o[c+(12*f|0)+4>>2])!=(0|e);)if(-1==(0|(f=0|o[(0|o[a+60>>2])+(f<<2)>>2]))){r=17;break i}c+(12*f|0)|0?f=0|o[c+(12*f|0)+8>>2]:r=17}else r=17}while(0);17==(0|r)&&(f=0|o[i+16>>2],f=0|hn[31&o[8+(0|o[f>>2])>>2]](f,n+24|0,n,0|o[i+32>>2]),P=0|o[i+28>>2],o[8+(0|_n[31&o[12+(0|o[P>>2])>>2]](P,t,e))>>2]=f),h=0|o[i+24>>2],R=0|o[h+8>>2],P=0|o[h+12>>2],o[h+8>>2]=n+24,o[12+(0|o[i+24>>2])>>2]=n,h=0|o[i+24>>2],Pn[63&o[8+(0|o[h>>2])>>2]](h,-1,t),h=0|o[i+24>>2],Pn[63&o[12+(0|o[h>>2])>>2]](h,-1,e),tn[31&o[8+(0|o[f>>2])>>2]](f,n+24|0,n,0|o[i+20>>2],0|o[i+24>>2]),o[8+(0|o[i+24>>2])>>2]=R,o[12+(0|o[i+24>>2])>>2]=P,u=n}},function(i,t,e){},function(i,t,e){},function(i,t,e){},function(i,t,e){},function(i,t,e){t|=0,e|=0;var n,r,f,a,c=0;if(n=u,u=u+80|0,r=0|o[o[(i|=0)>>2]>>2],f=0|o[o[i+4>>2]>>2],0|_n[31&o[24+(0|o[t>>2])>>2]](t,r,f))if(c=0|o[r+192>>2],o[n+56>>2]=0,o[n+60>>2]=c,o[n+64>>2]=r,o[n+68>>2]=r+4,o[n+72>>2]=-1,o[n+76>>2]=-1,c=0|o[f+192>>2],o[n+32>>2]=0,o[n+36>>2]=c,o[n+40>>2]=f,o[n+44>>2]=f+4,o[n+48>>2]=-1,o[n+52>>2]=-1,0|(c=0|o[i+8>>2])||(c=0|hn[31&o[8+(0|o[t>>2])>>2]](t,n+56|0,n+32|0,0),o[i+8>>2]=c,0|c)){if(o[n>>2]=11992,o[n+4>>2]=0,o[n+8>>2]=n+56,o[n+12>>2]=n+32,1==(0|o[e+8>>2]))return tn[31&o[8+(0|o[c>>2])>>2]](c,n+56|0,n+32|0,e,n),void(u=n);a=+bn[15&o[12+(0|o[c>>2])>>2]](c,r,f,e,n),+s[e+12>>2]>a?(s[e+12>>2]=a,u=n):u=n}else u=n;else u=n},function(i,t,e){i|=0,t|=0,e|=0;var n,r=0,f=0,a=0,c=0;switch(n=u,u=u+32|0,o[n+16>>2]=o[e+0>>2],o[n+20>>2]=o[e+4>>2],o[n+24>>2]=o[e+8>>2],o[n+28>>2]=o[e+12>>2],(f=+s[n+16>>2])*f+(a=+s[n+20>>2])*a+(r=+s[n+24>>2])*r<14210854715202004e-30&&(s[n+16>>2]=-1,s[n+20>>2]=-1,s[n+24>>2]=-1,s[n+28>>2]=0,f=-1,a=-1,r=-1),c=1/+_(+(f*f+a*a+r*r)),s[n+16>>2]=f*c,s[n+20>>2]=a*c,s[n+24>>2]=r*c,Ci(n,t,n+16|0),0|o[t+4>>2]){case 4:case 5:case 1:case 0:case 10:case 13:case 11:r=+s[t+44>>2];break;case 8:r=+s[t+28>>2]*+s[t+12>>2];break;default:r=+mn[15&o[48+(0|o[t>>2])>>2]](t)}a=r*+s[n+20>>2]+ +s[n+4>>2],c=r*+s[n+24>>2]+ +s[n+8>>2],s[i>>2]=r*+s[n+16>>2]+ +s[n>>2],s[i+4>>2]=a,s[i+8>>2]=c,s[i+12>>2]=0,u=n},Ci,Qe],Nn=[function(){C(36)},function(){z()},function(){var i,t=0,e=0,n=0,r=0,f=0;i=u,u=u+80|0,0|D(18456,3)&&At(18464,i),0|(t=0|A(0|o[4612]))||At(18432,i),0|(e=0|o[t>>2])||At(18432,i),1126902528==(-256&(t=0|o[e+48>>2]))&1129074247==(0|(n=0|o[e+52>>2]))||(o[i>>2]=18280,At(18392,i)),t=1126902529==(0|t)&1129074247==(0|n)?0|o[e+44>>2]:e+80|0,n=0|o[e>>2],e=0|o[n+4>>2],18824==(0|n)&&(f=0|o[(r=t)>>2],f=0|o[(f=f+8|0)>>2],r=0|an[127&f](r),o[i>>2]=18280,o[(f=i+4|0)>>2]=e,o[(f=i+8|0)>>2]=r,At(18296,i)),0|n||(o[i>>2]=18280,o[(f=i+4|0)>>2]=e,At(18344,i)),0|(n=0|Dt(n,18952))||(o[i>>2]=18280,o[(f=i+4|0)>>2]=e,At(18344,i)),r=(f=i+16|0)+56|0;do{o[f>>2]=0,f=f+4|0}while((0|f)<(0|r));o[i+16>>2]=n,o[i+24>>2]=18824,o[i+28>>2]=-1,o[i+64>>2]=1,Vn[63&o[28+(0|o[n>>2])>>2]](n,i+16|0,t,1),1!=(0|o[i+40>>2])&&(o[i>>2]=18280,o[(f=i+4|0)>>2]=e,At(18344,i)),r=0|o[i+32>>2],f=0|o[r>>2],f=0|o[(f=f+8|0)>>2],r=0|an[127&f](r),o[i>>2]=18280,o[(f=i+4|0)>>2]=e,o[(f=i+8|0)>>2]=r,At(18296,i)},function(){var i;i=u,u=u+16|0,0|O(18448,243)?At(18520,i):u=i}],Bn=[Ze,function(i,t,e){t|=0,e=+e,t=u,en[31&o[16+(0|o[(i|=0)>>2])>>2]](i,e),u=t},function(i,t,e){var n;t|=0,e=+e,n=u,on[127&o[12+(0|o[(i|=0)>>2])>>2]](i,t),u=n},Ze],Fn=[function(i,t,e,n){return t=+t,n=+n,C(38),0},function(i,t,e,r){i|=0,t=+t,e|=0,r=+r;var f,a=0,c=0,h=0;if(f=u,u=u+16|0,G(0|o[4550],0),Lt(18208),o[4553]=1+(0|o[4553]),h=0|o[4556],o[4556]=h+1,0|h||(G(0|f,0),h=0|o[4550],o[4555]=(0|o[f+4>>2])-(0|o[h+4>>2])+(1e6*((0|o[f>>2])-(0|o[h>>2])|0)|0)),o[4566]=0,G(0|f,0),It(1352),0|e?(s[i+268>>2]=r,a=+s[i+264>>2]+t,s[i+264>>2]=a,a>=r?(s[i+264>>2]=a-+(a/r|0)*r,t=r,c=e,e=~~(a/r)):(t=r,c=e,e=0)):(s[i+264>>2]=0|n[i+300|0]?0:t,s[i+268>>2]=0,c=e=1&!(+b(+t)<1.1920928955078125e-7)),0|an[127&o[20+(0|o[i>>2])>>2]](i)&&(h=0|an[127&o[20+(0|o[i>>2])>>2]](i),n[3200]=(0|an[127&o[48+(0|o[h>>2])>>2]](h))>>>4&1),0|e){if(c=(0|e)>(0|c)?c:e,en[31&o[164+(0|o[i>>2])>>2]](i,t*+(0|c)),nn[255&o[168+(0|o[i>>2])>>2]](i),(0|c)>0){h=0;do{en[31&o[160+(0|o[i>>2])>>2]](i,t),nn[255&o[80+(0|o[i>>2])>>2]](i),h=h+1|0}while((0|h)<(0|c))}}else nn[255&o[80+(0|o[i>>2])>>2]](i);if(nn[255&o[120+(0|o[i>>2])>>2]](i),o[4566]=1+(0|o[4566]),i=0|o[4564],h=(0|o[i+16>>2])-1|0,o[i+16>>2]=h,0|h)return u=f,0|e;do{if(0|o[i+4>>2]){if(G(0|f,0),h=0|o[4550],s[i+8>>2]=+(((0|o[f+4>>2])-(0|o[h+4>>2])+(1e6*((0|o[f>>2])-(0|o[h>>2])|0)|0)-(0|o[i+12>>2])|0)>>>0)/1e3+ +s[i+8>>2],0|o[i+16>>2])return u=f,0|e;i=0|o[4564];break}}while(0);return o[4564]=o[i+20>>2],u=f,0|e}],Vn=[Je,function(i,t,e,n){t|=0,e|=0,n|=0;var r,f=0,a=0,c=0,h=0,l=0,d=0,v=0,b=0,_=0,w=0,p=0,m=0,y=0,k=0,g=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0,L=0,I=0,A=0,D=0,O=0,R=0,P=0,N=0,B=0,F=0;switch(r=u,u=u+480|0,f=0|an[127&o[20+(0|o[(i|=0)>>2])>>2]](i),Bn[3&o[56+(0|o[f>>2])>>2]](f,t,1),0|(f=0|o[e+4>>2])){case 0:return o[r+400>>2]=o[e+28>>2],o[r+404>>2]=o[e+32>>2],o[r+408>>2]=o[e+36>>2],o[r+412>>2]=o[e+40>>2],h=+mn[15&o[48+(0|o[e>>2])>>2]](e),b=+mn[15&o[48+(0|o[e>>2])>>2]](e),_=+mn[15&o[48+(0|o[e>>2])>>2]](e),h+=+s[r+400>>2],s[r+400>>2]=h,b+=+s[r+404>>2],s[r+404>>2]=b,_+=+s[r+408>>2],s[r+408>>2]=_,w=0|an[127&o[20+(0|o[i>>2])>>2]](i),v=0|o[72+(0|o[w>>2])>>2],s[r+384>>2]=-h,s[r+388>>2]=-b,s[r+392>>2]=-_,s[r+396>>2]=0,tn[31&v](w,r+384|0,r+400|0,t,n),void(u=r);case 10:return w=0|o[e+52>>2],b=+s[e+((w+2|0)%3<<2)+28>>2],_=+s[e+(w<<2)+28>>2],v=0|an[127&o[20+(0|o[i>>2])>>2]](i),cn[0&o[76+(0|o[v>>2])>>2]](v,b,_,w,t,n),void(u=r);case 28:return _=+s[e+64>>2],w=0|an[127&o[20+(0|o[i>>2])>>2]](i),gn[0&o[88+(0|o[w>>2])>>2]](w,e+48|0,_,t,n),void(u=r);case 11:return b=+s[e+56>>2],_=+s[e+60>>2],w=0|o[e+68>>2],v=0|an[127&o[20+(0|o[i>>2])>>2]](i),cn[0&o[84+(0|o[v>>2])>>2]](v,b,_,w,t,n),void(u=r);case 13:return w=0|o[e+52>>2],b=+mn[15&o[92+(0|o[e>>2])>>2]](e),o[r+304>>2]=o[e+28>>2],o[r+308>>2]=o[e+32>>2],o[r+312>>2]=o[e+36>>2],o[r+316>>2]=o[e+40>>2],p=+mn[15&o[48+(0|o[e>>2])>>2]](e),h=+mn[15&o[48+(0|o[e>>2])>>2]](e),_=+mn[15&o[48+(0|o[e>>2])>>2]](e),s[r+304>>2]=p+ +s[r+304>>2],s[r+308>>2]=h+ +s[r+308>>2],s[r+312>>2]=_+ +s[r+312>>2],_=+s[r+304+(w<<2)>>2],v=0|an[127&o[20+(0|o[i>>2])>>2]](i),cn[0&o[80+(0|o[v>>2])>>2]](v,b,_,w,t,n),void(u=r);case 9:if((0|(f=0|o[e+92>>2]))<=0)return void(u=r);do{f=f+-1|0,w=0|o[e+100>>2],T=+s[w+(f<<4)>>2],E=+s[w+(f<<4)+4>>2],_=+s[w+(f<<4)+8>>2],w=0|an[127&o[20+(0|o[i>>2])>>2]](i),v=0|o[16+(0|o[w>>2])>>2],p=+s[(0|o[e+120>>2])+(f<<2)>>2],x=+s[t>>2],S=+s[t+4>>2],M=+s[t+8>>2],C=+s[t+16>>2],g=+s[t+20>>2],j=+s[t+24>>2],y=+s[t+32>>2],m=+s[t+36>>2],k=+s[t+40>>2],h=T*x+E*S+_*M+ +s[t+48>>2],b=T*C+E*g+_*j+ +s[t+52>>2],_=T*y+E*m+_*k+ +s[t+56>>2],s[r+320>>2]=x+0*S+0*M,s[r+324>>2]=0*x+S+0*M,s[r+328>>2]=M+(0*x+0*S),s[r+332>>2]=0,s[r+336>>2]=C+0*g+0*j,s[r+340>>2]=0*C+g+0*j,s[r+344>>2]=j+(0*C+0*g),s[r+348>>2]=0,s[r+352>>2]=y+0*m+0*k,s[r+356>>2]=0*y+m+0*k,s[r+360>>2]=k+(0*y+0*m),s[r+364>>2]=0,s[r+368>>2]=h,s[r+372>>2]=b,s[r+376>>2]=_,s[r+380>>2]=0,un[0&v](w,p,r+320|0,n)}while((0|f)>0);return void(u=r);case 8:return T=+mn[15&o[48+(0|o[e>>2])>>2]](e),w=0|an[127&o[20+(0|o[i>>2])>>2]](i),un[0&o[16+(0|o[w>>2])>>2]](w,T,t,n),void(u=r);case 31:if((0|(f=0|o[e+16>>2]))<=0)return void(u=r);do{f=f+-1|0,w=0|o[e+24>>2],h=+s[w+(80*f|0)>>2],p=+s[w+(80*f|0)+4>>2],k=+s[w+(80*f|0)+8>>2],b=+s[w+(80*f|0)+16>>2],m=+s[w+(80*f|0)+20>>2],C=+s[w+(80*f|0)+24>>2],_=+s[w+(80*f|0)+32>>2],y=+s[w+(80*f|0)+36>>2],S=+s[w+(80*f|0)+40>>2],N=+s[w+(80*f|0)+48>>2],P=+s[w+(80*f|0)+52>>2],T=+s[w+(80*f|0)+56>>2],w=0|o[w+(80*f|0)+64>>2],v=0|o[28+(0|o[i>>2])>>2],R=+s[t>>2],O=+s[t+4>>2],D=+s[t+8>>2],A=+s[t+16>>2],I=+s[t+20>>2],L=+s[t+24>>2],g=+s[t+32>>2],j=+s[t+36>>2],x=+s[t+40>>2],M=N*R+P*O+T*D+ +s[t+48>>2],E=N*A+P*I+T*L+ +s[t+52>>2],T=N*g+P*j+T*x+ +s[t+56>>2],s[r+416>>2]=h*R+b*O+_*D,s[r+420>>2]=p*R+m*O+y*D,s[r+424>>2]=k*R+C*O+S*D,s[r+428>>2]=0,s[r+432>>2]=h*A+b*I+_*L,s[r+436>>2]=p*A+m*I+y*L,s[r+440>>2]=k*A+C*I+S*L,s[r+444>>2]=0,s[r+448>>2]=h*g+b*j+_*x,s[r+452>>2]=p*g+m*j+y*x,s[r+456>>2]=k*g+C*j+S*x,s[r+460>>2]=0,s[r+464>>2]=M,s[r+468>>2]=E,s[r+472>>2]=T,s[r+476>>2]=0,Vn[63&v](i,r+416|0,w,n)}while((0|f)>0);return void(u=r);default:i:do{if((0|f)<7){if(!(0|(f=0|o[e+52>>2]))){if((0|an[127&o[100+(0|o[e>>2])>>2]](e))<=0)break;for(f=0;;)if(Vn[63&o[104+(0|o[e>>2])>>2]](e,f,r+208|0,r+192|0),R=+s[r+208>>2],C=+s[t>>2],D=+s[r+212>>2],j=+s[t+4>>2],I=+s[r+216>>2],S=+s[t+8>>2],M=+s[t+16>>2],E=+s[t+20>>2],T=+s[t+24>>2],A=+s[t+32>>2],O=+s[t+36>>2],P=+s[t+40>>2],x=+s[t+48>>2],L=+s[t+52>>2],N=+s[t+56>>2],s[r+176>>2]=R*C+D*j+I*S+x,s[r+180>>2]=R*M+D*E+I*T+L,s[r+184>>2]=R*A+D*O+I*P+N,s[r+188>>2]=0,I=+s[r+192>>2],D=+s[r+196>>2],R=+s[r+200>>2],s[r+160>>2]=I*C+D*j+R*S+x,s[r+164>>2]=I*M+D*E+R*T+L,s[r+168>>2]=I*A+D*O+R*P+N,s[r+172>>2]=0,w=0|an[127&o[20+(0|o[i>>2])>>2]](i),Vn[63&o[8+(0|o[w>>2])>>2]](w,r+176|0,r+160|0,n),(0|(f=f+1|0))>=(0|an[127&o[100+(0|o[e>>2])>>2]](e)))break i}if((0|o[f+28>>2])>0){a=0;do{l=0|o[f+36>>2],c=0|o[l+(36*a|0)+4>>2];t:do{if((0|c)>0)for(w=d=0|o[l+(36*a|0)+12>>2],b=0,_=0,h=0,d=0|o[d+(c+-1<<2)>>2],v=0;;){if(l=0|o[w+(v<<2)>>2],w=0|o[f+16>>2],b+=+s[w+(l<<4)>>2],h+=+s[w+(l<<4)+4>>2],_+=+s[w+(l<<4)+8>>2],w=0|an[127&o[20+(0|o[i>>2])>>2]](i),B=0|o[8+(0|o[w>>2])>>2],F=0|o[f+16>>2],R=+s[F+(d<<4)>>2],C=+s[t>>2],D=+s[F+(d<<4)+4>>2],j=+s[t+4>>2],I=+s[F+(d<<4)+8>>2],S=+s[t+8>>2],M=+s[t+16>>2],E=+s[t+20>>2],T=+s[t+24>>2],A=+s[t+32>>2],O=+s[t+36>>2],P=+s[t+40>>2],x=+s[t+48>>2],L=+s[t+52>>2],N=+s[t+56>>2],s[r+288>>2]=R*C+D*j+I*S+x,s[r+292>>2]=R*M+D*E+I*T+L,s[r+296>>2]=R*A+D*O+I*P+N,s[r+300>>2]=0,I=+s[F+(l<<4)>>2],D=+s[F+(l<<4)+4>>2],R=+s[F+(l<<4)+8>>2],s[r+272>>2]=I*C+D*j+R*S+x,s[r+276>>2]=I*M+D*E+R*T+L,s[r+280>>2]=I*A+D*O+R*P+N,s[r+284>>2]=0,Vn[63&B](w,r+288|0,r+272|0,n),v=v+1|0,d=0|o[f+36>>2],(0|v)>=(0|o[d+(36*a|0)+4>>2]))break t;w=0|o[d+(36*a|0)+12>>2],d=l}else b=0,_=0,h=0}while(0);b*=1/+(0|c),h*=1/+(0|c),_*=1/+(0|c),F=0|an[127&o[20+(0|o[i>>2])>>2]](i),16384&an[127&o[48+(0|o[F>>2])>>2]](F)&&(s[r+256>>2]=1,s[r+260>>2]=1,s[r+264>>2]=0,s[r+268>>2]=0,F=0|o[f+36>>2],I=+s[F+(36*a|0)+20>>2],D=+s[F+(36*a|0)+24>>2],R=+s[F+(36*a|0)+28>>2],F=0|an[127&o[20+(0|o[i>>2])>>2]](i),B=0|o[8+(0|o[F>>2])>>2],C=+s[t>>2],j=+s[t+4>>2],S=+s[t+8>>2],M=+s[t+16>>2],E=+s[t+20>>2],T=+s[t+24>>2],A=+s[t+32>>2],O=+s[t+36>>2],P=+s[t+40>>2],x=+s[t+48>>2],L=+s[t+52>>2],N=+s[t+56>>2],s[r+240>>2]=b*C+h*j+_*S+x,s[r+244>>2]=b*M+h*E+_*T+L,s[r+248>>2]=b*A+h*O+_*P+N,s[r+252>>2]=0,s[r+224>>2]=(b+I)*C+(h+D)*j+(_+R)*S+x,s[r+228>>2]=(b+I)*M+(h+D)*E+(_+R)*T+L,s[r+232>>2]=(b+I)*A+(h+D)*O+(_+R)*P+N,s[r+236>>2]=0,Vn[63&B](F,r+240|0,r+224|0,r+256|0)),a=a+1|0}while((0|a)<(0|o[f+28>>2]))}}}while(0);return((f=0|o[e+4>>2])+-21|0)>>>0<9&&(s[r+144>>2]=0xde0b6b000000000,s[r+148>>2]=0xde0b6b000000000,s[r+152>>2]=0xde0b6b000000000,s[r+156>>2]=0,s[r+128>>2]=-0xde0b6b000000000,s[r+132>>2]=-0xde0b6b000000000,s[r+136>>2]=-0xde0b6b000000000,s[r+140>>2]=0,f=0|an[127&o[20+(0|o[i>>2])>>2]](i),o[r+32>>2]=6848,o[r+36>>2]=6872,o[r+40>>2]=f,o[r+44>>2]=o[n+0>>2],o[r+48>>2]=o[n+4>>2],o[r+52>>2]=o[n+8>>2],o[r+56>>2]=o[n+12>>2],o[r+60>>2]=o[t+0>>2],o[r+64>>2]=o[t+4>>2],o[r+68>>2]=o[t+8>>2],o[r+72>>2]=o[t+12>>2],o[r+76>>2]=o[t+16>>2],o[r+80>>2]=o[t+20>>2],o[r+84>>2]=o[t+24>>2],o[r+88>>2]=o[t+28>>2],o[r+92>>2]=o[t+32>>2],o[r+96>>2]=o[t+36>>2],o[r+100>>2]=o[t+40>>2],o[r+104>>2]=o[t+44>>2],o[r+108>>2]=o[t+48>>2],o[r+112>>2]=o[t+52>>2],o[r+116>>2]=o[t+56>>2],o[r+120>>2]=o[t+60>>2],Vn[63&o[64+(0|o[e>>2])>>2]](e,r+32|0,r+128|0,r+144|0),f=0|o[e+4>>2]),3!=(0|f)?void(u=r):(s[r+16>>2]=0xde0b6b000000000,s[r+20>>2]=0xde0b6b000000000,s[r+24>>2]=0xde0b6b000000000,s[r+28>>2]=0,s[r>>2]=-0xde0b6b000000000,s[r+4>>2]=-0xde0b6b000000000,s[r+8>>2]=-0xde0b6b000000000,s[r+12>>2]=0,F=0|an[127&o[20+(0|o[i>>2])>>2]](i),o[r+32>>2]=6848,o[r+36>>2]=6872,o[r+40>>2]=F,o[r+44>>2]=o[n+0>>2],o[r+48>>2]=o[n+4>>2],o[r+52>>2]=o[n+8>>2],o[r+56>>2]=o[n+12>>2],o[r+60>>2]=o[t+0>>2],o[r+64>>2]=o[t+4>>2],o[r+68>>2]=o[t+8>>2],o[r+72>>2]=o[t+12>>2],o[r+76>>2]=o[t+16>>2],o[r+80>>2]=o[t+20>>2],o[r+84>>2]=o[t+24>>2],o[r+88>>2]=o[t+28>>2],o[r+92>>2]=o[t+32>>2],o[r+96>>2]=o[t+36>>2],o[r+100>>2]=o[t+40>>2],o[r+104>>2]=o[t+44>>2],o[r+108>>2]=o[t+48>>2],o[r+112>>2]=o[t+52>>2],o[r+116>>2]=o[t+56>>2],o[r+120>>2]=o[t+60>>2],F=0|o[e+92>>2],Vn[63&o[8+(0|o[F>>2])>>2]](F,r+36|0,r,r+16|0),void(u=r))}},function(i,t,e,n){i|=0,t|=0,e|=0,n|=0;var r,f,a,c,h,l,d=0,v=0,b=0,w=0;f=u,u=u+256|0,o[f+32>>2]=7104,o[(d=f+68|0)+0>>2]=o[t+0>>2],o[d+4>>2]=o[t+4>>2],o[d+8>>2]=o[t+8>>2],o[d+12>>2]=o[t+12>>2],o[(r=f+84|0)+0>>2]=o[e+0>>2],o[r+4>>2]=o[e+4>>2],o[r+8>>2]=o[e+8>>2],o[r+12>>2]=o[e+12>>2],o[f+244>>2]=i,o[f+248>>2]=n,s[f+100>>2]=1,o[f+104>>2]=0,o[f+108>>2]=0,o[f+112>>2]=0,o[f+116>>2]=0,s[f+120>>2]=1,o[f+124>>2]=0,o[f+128>>2]=0,o[f+132>>2]=0,o[f+136>>2]=0,s[f+140>>2]=1,o[f+144>>2]=0,o[f+148>>2]=o[d+0>>2],o[f+152>>2]=o[d+4>>2],o[f+156>>2]=o[d+8>>2],o[f+160>>2]=o[d+12>>2],s[f+164>>2]=1,o[f+168>>2]=0,o[f+172>>2]=0,o[f+176>>2]=0,o[f+180>>2]=0,s[f+184>>2]=1,o[f+188>>2]=0,o[f+192>>2]=0,o[f+196>>2]=0,o[f+200>>2]=0,s[f+204>>2]=1,o[f+208>>2]=0,o[f+212>>2]=o[e+0>>2],o[f+216>>2]=o[e+4>>2],o[f+220>>2]=o[e+8>>2],o[f+224>>2]=o[e+12>>2],h=+s[e>>2]-+s[t>>2],a=+s[e+4>>2]-+s[t+4>>2],l=+s[e+8>>2]-+s[t+8>>2],w=h*(c=1/+_(+(h*h+a*a+l*l)))==0?0xde0b6b000000000:1/(h*c),s[f+36>>2]=w,b=a*c==0?0xde0b6b000000000:1/(a*c),s[f+40>>2]=b,v=l*c==0?0xde0b6b000000000:1/(l*c),s[f+44>>2]=v,o[f+52>>2]=w<0&1,o[f+56>>2]=b<0&1,o[f+60>>2]=v<0&1,s[f+64>>2]=h*c*(+s[r>>2]-+s[d>>2])+a*c*(+s[f+88>>2]-+s[f+72>>2])+l*c*(+s[f+92>>2]-+s[f+76>>2]),n=0|o[i+68>>2],d=0|o[24+(0|o[n>>2])>>2],o[f+16>>2]=0,o[f+20>>2]=0,o[f+24>>2]=0,o[f+28>>2]=0,o[f+0>>2]=0,o[f+4>>2]=0,o[f+8>>2]=0,o[f+12>>2]=0,wn[7&d](n,t,e,f+32|0,f+16|0,f),u=f},function(i,t,e,n){var r;r=u,Fi(i|=0,t|=0,e|=0,n|=0),u=r},function(i,t,e,r){i|=0,e|=0,r|=0;var f,a=0,c=0,h=0,l=0,d=0,v=0,b=0,_=0;if(f=u,3&(c=0|o[(t|=0)+204>>2])||1&o[t+504>>2]||(0!=(v=+s[t+344>>2])&&(_=1/v*+s[i+252>>2],b=1/v*+s[i+256>>2],s[t+364>>2]=1/v*+s[i+248>>2],s[t+368>>2]=_,s[t+372>>2]=b,s[t+376>>2]=0),o[t+380>>2]=o[i+248>>2],o[t+384>>2]=o[i+252>>2],o[t+388>>2]=o[i+256>>2],o[t+392>>2]=o[i+260>>2]),0|o[t+192>>2]){if(1&c)((0|o[t+216>>2])-4|0)>>>0<2||(o[t+216>>2]=2);else{if((0|(h=0|o[i+232>>2]))==(0|o[i+236>>2])&&(0|h)<(0|(a=0|h?h<<1:1))){if(0|a?(o[4546]=1+(0|o[4546]),0|(c=0|ye(16+(a<<2|3)|0))?(o[(c+19&-16)-4>>2]=c,c=c+19&-16):c=0,h=0|o[i+232>>2]):c=0,(0|h)>0){l=0;do{0|(d=c+(l<<2)|0)&&(o[d>>2]=o[(0|o[i+240>>2])+(l<<2)>>2]),l=l+1|0}while((0|l)!=(0|h))}0|(l=0|o[i+240>>2])&&(0|n[i+244|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[l+-4>>2]),h=0|o[i+232>>2]),o[i+240>>2]=0),n[i+244|0]=1,o[i+240>>2]=c,o[i+236>>2]=a}0|(a=(0|o[i+240>>2])+(h<<2)|0)&&(o[a>>2]=t),o[i+232>>2]=h+1}Vn[63&o[36+(0|o[i>>2])>>2]](i,t,e,r),u=f}else u=f},function(i,t,e,n){t|=0,e|=0,n|=0,o[(i|=0)+120>>2]=t,o[i+124>>2]=e,o[i+128>>2]=n},function(i,t,e,r){i|=0,t|=0,r|=0;var f,a=0,c=0,h=0,l=0,d=0,v=0,w=0,p=0,m=0,y=0,k=0,g=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0,L=0,I=0,A=0,D=0,O=0,R=0,P=0,N=0,B=0,F=0,V=0,U=0,G=0,W=0,z=0,X=0,$=0,H=0,q=0,K=0,Y=0,Q=0,Z=0,J=0,ii=0,ti=0,ei=0;if(f=u,u=u+80|0,(0|(e|=0))<=0)u=f;else{h=0;do{l=0|o[t+(h<<2)>>2],a=0|o[l+740>>2],m=0|o[l+744>>2],d=0|Zt(i,a,+s[r+12>>2]),v=0|Zt(i,m,+s[r+12>>2]),w=0|o[i+16>>2];do{if(w+(244*d|0)|0){if(0==+s[w+(244*d|0)+128>>2]&&0==+s[w+(244*d|0)+132>>2]&&0==+s[w+(244*d|0)+136>>2]){if(!(w+(244*v|0)|0))break;if(0==+s[w+(244*v|0)+128>>2]&&0==+s[w+(244*v|0)+132>>2]&&0==+s[w+(244*v|0)+136>>2])break}if((0|(k=0|o[l+748>>2]))>0){y=0,D=1;do{if(g=l+(184*y|0)+4|0,+s[(B=l+(184*y|0)+84|0)>>2]<=+s[l+756>>2]){if((0|(k=0|o[i+28>>2]))==(0|o[i+32>>2])&&(0|k)<(0|(p=0|k?k<<1:1))){if(0|p?(o[4546]=1+(0|o[4546]),0|(C=0|ye(16+(152*p|3)|0))?(o[(C+19&-16)-4>>2]=C,C=C+19&-16):C=0,S=0|o[i+28>>2]):(S=k,C=0),(0|S)>0){x=0;do{Se(C+(152*x|0)|0,(0|o[i+36>>2])+(152*x|0)|0,152),x=x+1|0}while((0|x)!=(0|S))}0|(S=0|o[i+36>>2])&&(0|n[i+40|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[S+-4>>2])),o[i+36>>2]=0),n[i+40|0]=1,o[i+36>>2]=C,o[i+32>>2]=p,C=0|o[i+28>>2]}else C=k;o[i+28>>2]=C+1,C=0|o[i+36>>2],R=2&o[a+236>>2]?a:0,O=2&o[m+236>>2]?m:0,o[C+(152*k|0)+144>>2]=d,o[C+(152*k|0)+148>>2]=v,o[C+(152*k|0)+132>>2]=g,z=+s[l+(184*y|0)+52>>2]-+s[a+52>>2],$=+s[l+(184*y|0)+56>>2]-+s[a+56>>2],X=+s[l+(184*y|0)+60>>2]-+s[a+60>>2],s[f+64>>2]=z,s[f+68>>2]=$,s[f+72>>2]=X,s[f+76>>2]=0,F=+s[l+(184*y|0)+36>>2]-+s[m+52>>2],U=+s[l+(184*y|0)+40>>2]-+s[m+56>>2],V=+s[l+(184*y|0)+44>>2]-+s[m+60>>2],s[f+48>>2]=F,s[f+52>>2]=U,s[f+56>>2]=V,s[f+60>>2]=0,0|o[w+(244*d|0)+240>>2]?(ii=+s[w+(244*d|0)+192>>2]+ +s[w+(244*d|0)+224>>2],L=+s[w+(244*d|0)+196>>2]+ +s[w+(244*d|0)+228>>2],E=+s[w+(244*d|0)+200>>2]+ +s[w+(244*d|0)+232>>2],j=+s[w+(244*d|0)+176>>2]+ +s[w+(244*d|0)+208>>2]+(L*X-E*$),E=+s[w+(244*d|0)+180>>2]+ +s[w+(244*d|0)+212>>2]+(E*z-ii*X),L=+s[w+(244*d|0)+184>>2]+ +s[w+(244*d|0)+216>>2]+(ii*$-L*z)):(j=0,E=0,L=0),0|o[w+(244*v|0)+240>>2]?(ii=+s[w+(244*v|0)+192>>2]+ +s[w+(244*v|0)+224>>2],T=+s[w+(244*v|0)+196>>2]+ +s[w+(244*v|0)+228>>2],I=+s[w+(244*v|0)+200>>2]+ +s[w+(244*v|0)+232>>2],A=+s[w+(244*v|0)+176>>2]+ +s[w+(244*v|0)+208>>2]+(T*V-I*U),I=+s[w+(244*v|0)+180>>2]+ +s[w+(244*v|0)+212>>2]+(I*F-ii*V),T=+s[w+(244*v|0)+184>>2]+ +s[w+(244*v|0)+216>>2]+(ii*U-T*F)):(A=0,I=0,T=0),j-=A,E-=I,I=L-T,L=+s[(x=l+(184*y|0)+68|0)>>2],T=+s[(M=l+(184*y|0)+72|0)>>2],A=+s[(S=l+(184*y|0)+76|0)>>2],P=0|o[i+16>>2],W=0|o[P+(244*d|0)+240>>2],G=0|o[P+(244*v|0)+240>>2],0|W?(Z=(($*A-X*T)*+s[W+264>>2]+(X*L-A*z)*+s[W+268>>2]+(T*z-$*L)*+s[W+272>>2])*+s[W+544>>2],ii=(($*A-X*T)*+s[W+280>>2]+(X*L-A*z)*+s[W+284>>2]+(T*z-$*L)*+s[W+288>>2])*+s[W+548>>2],J=(($*A-X*T)*+s[W+296>>2]+(X*L-A*z)*+s[W+300>>2]+(T*z-$*L)*+s[W+304>>2])*+s[W+552>>2]):(Z=0,ii=0,J=0),s[C+(152*k|0)+64>>2]=Z,s[C+(152*k|0)+68>>2]=ii,s[C+(152*k|0)+72>>2]=J,s[C+(152*k|0)+76>>2]=0,q=+s[S>>2],N=+s[M>>2],H=+s[x>>2],0|G?(K=(+s[G+264>>2]*-(U*q-V*N)+ +s[G+268>>2]*-(V*H-q*F)+ +s[G+272>>2]*-(N*F-U*H))*+s[G+544>>2],Y=(+s[G+280>>2]*-(U*q-V*N)+ +s[G+284>>2]*-(V*H-q*F)+ +s[G+288>>2]*-(N*F-U*H))*+s[G+548>>2],Q=(+s[G+296>>2]*-(U*q-V*N)+ +s[G+300>>2]*-(V*H-q*F)+ +s[G+304>>2]*-(N*F-U*H))*+s[G+552>>2]):(K=0,Y=0,Q=0),s[C+(152*k|0)+80>>2]=K,s[C+(152*k|0)+84>>2]=Y,s[C+(152*k|0)+88>>2]=Q,s[C+(152*k|0)+92>>2]=0,Z=0|W?+s[W+344>>2]+((ii*X-J*$)*+s[x>>2]+(J*z-X*Z)*+s[M>>2]+($*Z-ii*z)*+s[S>>2]):0,0|G?(ii=-K,K=-Y,J=-Q,K=+s[G+344>>2]+((V*K-U*J)*+s[x>>2]+(F*J-V*ii)*+s[M>>2]+(U*ii-F*K)*+s[S>>2])):K=0,s[C+(152*k|0)+108>>2]=1/(Z+K),0|W?(o[C+(152*k|0)+16>>2]=o[x+0>>2],o[C+(152*k|0)+20>>2]=o[x+4>>2],o[C+(152*k|0)+24>>2]=o[x+8>>2],o[C+(152*k|0)+28>>2]=o[x+12>>2],s[C+(152*k|0)>>2]=$*A-X*T,s[C+(152*k|0)+4>>2]=X*L-A*z,s[C+(152*k|0)+8>>2]=T*z-$*L,s[C+(152*k|0)+12>>2]=0):(o[C+(152*k|0)+0>>2]=0,o[C+(152*k|0)+4>>2]=0,o[C+(152*k|0)+8>>2]=0,o[C+(152*k|0)+12>>2]=0,o[C+(152*k|0)+16>>2]=0,o[C+(152*k|0)+20>>2]=0,o[C+(152*k|0)+24>>2]=0,o[C+(152*k|0)+28>>2]=0),0|G?(J=-+s[M>>2],ii=-+s[S>>2],s[C+(152*k|0)+48>>2]=-+s[x>>2],s[C+(152*k|0)+52>>2]=J,s[C+(152*k|0)+56>>2]=ii,s[C+(152*k|0)+60>>2]=0,s[C+(152*k|0)+32>>2]=-(U*q-V*N),s[C+(152*k|0)+36>>2]=-(V*H-q*F),s[C+(152*k|0)+40>>2]=-(N*F-U*H),s[C+(152*k|0)+44>>2]=0):(o[C+(152*k|0)+32>>2]=0,o[C+(152*k|0)+36>>2]=0,o[C+(152*k|0)+40>>2]=0,o[C+(152*k|0)+44>>2]=0,o[C+(152*k|0)+48>>2]=0,o[C+(152*k|0)+52>>2]=0,o[C+(152*k|0)+56>>2]=0,o[C+(152*k|0)+60>>2]=0),N=+s[B>>2]+ +s[r+56>>2],0|W?(Z=+s[W+332>>2],J=+s[W+336>>2],ii=+s[W+328>>2],H=Z*X-J*$+ +s[W+312>>2],$=$*ii-Z*z+ +s[W+320>>2],z=+s[W+316>>2]+(J*z-X*ii)):(H=0,$=0,z=0),0|G?(Z=+s[G+332>>2],J=+s[G+336>>2],ii=+s[G+328>>2],X=Z*V-J*U+ +s[G+312>>2],U=U*ii-Z*F+ +s[G+320>>2],F=+s[G+316>>2]+(J*F-V*ii)):(X=0,U=0,F=0),F=+s[x>>2]*(H-X)+(z-F)*+s[M>>2]+($-U)*+s[S>>2],s[C+(152*k|0)+104>>2]=+s[l+(184*y|0)+88>>2],F=(F*=+s[l+(184*y|0)+96>>2])>=-0?0:-F;do{if(4&o[r+64>>2]){V=+s[l+(184*y|0)+124>>2]*+s[r+60>>2],s[C+(152*k|0)+100>>2]=V;do{if(0|W){if(!(0|o[P+(244*d|0)+240>>2]))break;ii=V*+s[P+(244*d|0)+132>>2]*+s[C+(152*k|0)+20>>2]*+s[W+352>>2]*+s[P+(244*d|0)+116>>2],J=V*+s[P+(244*d|0)+136>>2]*+s[C+(152*k|0)+24>>2]*+s[W+356>>2]*+s[P+(244*d|0)+120>>2],s[P+(244*d|0)+64>>2]=+s[P+(244*d|0)+112>>2]*V*+s[P+(244*d|0)+128>>2]*+s[C+(152*k|0)+16>>2]*+s[W+348>>2]+ +s[P+(244*d|0)+64>>2],s[P+(244*d|0)+68>>2]=ii+ +s[P+(244*d|0)+68>>2],s[P+(244*d|0)+72>>2]=J+ +s[P+(244*d|0)+72>>2],J=V*+s[P+(244*d|0)+100>>2]*+s[C+(152*k|0)+68>>2],ii=V*+s[P+(244*d|0)+104>>2]*+s[C+(152*k|0)+72>>2],s[P+(244*d|0)+80>>2]=V*+s[P+(244*d|0)+96>>2]*+s[C+(152*k|0)+64>>2]+ +s[P+(244*d|0)+80>>2],s[P+(244*d|0)+84>>2]=J+ +s[P+(244*d|0)+84>>2],s[P+(244*d|0)+88>>2]=ii+ +s[P+(244*d|0)+88>>2]}}while(0);if(!(0|G))break;if(V=+s[C+(152*k|0)+100>>2],!(0|o[P+(244*v|0)+240>>2]))break;ii=+s[C+(152*k|0)+88>>2],J=+s[C+(152*k|0)+84>>2],Z=+s[C+(152*k|0)+80>>2],Y=V*+s[P+(244*v|0)+132>>2]*+s[C+(152*k|0)+52>>2]*+s[G+352>>2]*+s[P+(244*v|0)+116>>2],Q=V*+s[P+(244*v|0)+136>>2]*+s[C+(152*k|0)+56>>2]*+s[G+356>>2]*+s[P+(244*v|0)+120>>2],s[P+(244*v|0)+64>>2]=+s[P+(244*v|0)+112>>2]*V*+s[P+(244*v|0)+128>>2]*+s[C+(152*k|0)+48>>2]*+s[G+348>>2]+ +s[P+(244*v|0)+64>>2],s[P+(244*v|0)+68>>2]=Y+ +s[P+(244*v|0)+68>>2],s[P+(244*v|0)+72>>2]=Q+ +s[P+(244*v|0)+72>>2],J=J*+s[P+(244*v|0)+100>>2]*-V,ii=ii*+s[P+(244*v|0)+104>>2]*-V,s[P+(244*v|0)+80>>2]=+s[P+(244*v|0)+80>>2]-Z*+s[P+(244*v|0)+96>>2]*-V,s[P+(244*v|0)+84>>2]=+s[P+(244*v|0)+84>>2]-J,s[P+(244*v|0)+88>>2]=+s[P+(244*v|0)+88>>2]-ii}else s[C+(152*k|0)+100>>2]=0}while(0);s[C+(152*k|0)+96>>2]=0,0|o[P+(244*d|0)+240>>2]?(J=+s[P+(244*d|0)+208>>2],Z=+s[P+(244*d|0)+212>>2],Q=+s[P+(244*d|0)+216>>2],V=+s[P+(244*d|0)+224>>2],K=+s[P+(244*d|0)+228>>2],q=+s[P+(244*d|0)+232>>2]):(J=0,Z=0,Q=0,V=0,K=0,q=0),0|o[P+(244*v|0)+240>>2]?(z=+s[P+(244*v|0)+208>>2],Y=+s[P+(244*v|0)+212>>2],U=+s[P+(244*v|0)+216>>2],X=+s[P+(244*v|0)+224>>2],$=+s[P+(244*v|0)+228>>2],H=+s[P+(244*v|0)+232>>2]):(z=0,Y=0,U=0,X=0,$=0,H=0),F-=(J+ +s[P+(244*d|0)+176>>2])*+s[C+(152*k|0)+16>>2]+(Z+ +s[P+(244*d|0)+180>>2])*+s[C+(152*k|0)+20>>2]+(Q+ +s[P+(244*d|0)+184>>2])*+s[C+(152*k|0)+24>>2]+((V+ +s[P+(244*d|0)+192>>2])*+s[C+(152*k|0)>>2]+(K+ +s[P+(244*d|0)+196>>2])*+s[C+(152*k|0)+4>>2]+(q+ +s[P+(244*d|0)+200>>2])*+s[C+(152*k|0)+8>>2])+((z+ +s[P+(244*v|0)+176>>2])*+s[C+(152*k|0)+48>>2]+(Y+ +s[P+(244*v|0)+180>>2])*+s[C+(152*k|0)+52>>2]+(U+ +s[P+(244*v|0)+184>>2])*+s[C+(152*k|0)+56>>2]+((X+ +s[P+(244*v|0)+192>>2])*+s[C+(152*k|0)+32>>2]+($+ +s[P+(244*v|0)+196>>2])*+s[C+(152*k|0)+36>>2]+(H+ +s[P+(244*v|0)+200>>2])*+s[C+(152*k|0)+40>>2])),B=(P=!(0|o[r+44>>2]))||N>+s[r+48>>2]?r+32|0:r+36|0,N>0?(V=0,F-=N/+s[r+12>>2]):V=-N*+s[B>>2]/+s[r+12>>2],V*=ii=+s[C+(152*k|0)+108>>2],F*=ii;do{if(P)c=69;else{if(N>+s[r+48>>2]){c=69;break}s[C+(152*k|0)+112>>2]=F,s[C+(152*k|0)+128>>2]=V}}while(0);69==(0|c)&&(c=0,s[C+(152*k|0)+112>>2]=V+F,s[C+(152*k|0)+128>>2]=0),s[C+(152*k|0)+116>>2]=0,s[C+(152*k|0)+120>>2]=0,s[C+(152*k|0)+124>>2]=1e10,o[C+(152*k|0)+140>>2]=o[i+68>>2],0|R?(F=+s[R+328>>2],N=+s[R+332>>2],V=+s[R+336>>2]):(F=0,N=0,V=0),0|O?(X=+s[O+328>>2],z=+s[O+332>>2],U=+s[O+336>>2]):(X=0,z=0,U=0),F=X-F,N=z-N,V=U-V,s[f+32>>2]=F,s[f+36>>2]=N,s[f+40>>2]=V,s[f+44>>2]=0;do{if((0|D)>0&&+s[l+(184*y|0)+92>>2]>0){if(D=D+-1|0,(U=+_(+(F*F+N*N+V*V)))>+s[r+80>>2]){F*=1/U,s[f+32>>2]=F,N*=1/U,s[f+36>>2]=N,V*=1/U,s[f+40>>2]=V;do{if(0|a){if(!(2&o[a+180>>2]))break;z=+s[a+4>>2],H=+s[a+20>>2],Y=+s[a+36>>2],X=+s[a+8>>2],q=+s[a+24>>2],Z=+s[a+40>>2],$=+s[a+12>>2],K=+s[a+28>>2],ii=+s[a+44>>2],Q=(z*F+H*N+V*Y)*+s[a+164>>2],J=(F*X+N*q+V*Z)*+s[a+168>>2],V=(F*$+N*K+V*ii)*+s[a+172>>2],s[f+32>>2]=z*Q+X*J+$*V,s[f+36>>2]=H*Q+q*J+K*V,s[f+40>>2]=Y*Q+Z*J+ii*V,s[f+44>>2]=0,F=z*Q+X*J+$*V,N=H*Q+q*J+K*V,V=Y*Q+Z*J+ii*V}}while(0);do{if(0|m){if(!(2&o[m+180>>2]))break;z=+s[m+4>>2],H=+s[m+20>>2],Y=+s[m+36>>2],X=+s[m+8>>2],q=+s[m+24>>2],Z=+s[m+40>>2],$=+s[m+12>>2],K=+s[m+28>>2],ii=+s[m+44>>2],Q=(z*F+H*N+Y*V)*+s[m+164>>2],J=(F*X+N*q+V*Z)*+s[m+168>>2],V=(F*$+N*K+V*ii)*+s[m+172>>2],s[f+32>>2]=z*Q+X*J+$*V,s[f+36>>2]=H*Q+q*J+K*V,s[f+40>>2]=Y*Q+Z*J+ii*V,s[f+44>>2]=0,F=z*Q+X*J+$*V,N=H*Q+q*J+K*V,V=Y*Q+Z*J+ii*V}}while(0);if(!(+_(+(F*F+N*N+V*V))>.001))break;Qt(i,f+32|0,d,v,k,g);break}Qt(i,x,d,v,k,g),F=+s[S>>2],+b(+F)>.7071067690849304?(V=+s[M>>2],ii=1/+_(+(F*F+V*V)),s[f+16>>2]=0,s[f+20>>2]=-ii*F,s[f+24>>2]=ii*V,s[f>>2]=(F*F+V*V)*ii,J=+s[x>>2],s[f+4>>2]=-J*ii*V,N=0,z=-ii*F,X=ii*V,U=(F*F+V*V)*ii,V*=-J*ii,F=J*(-ii*F)):(Z=+s[x>>2],J=+s[M>>2],ii=1/+_(+(Z*Z+J*J)),s[f+16>>2]=-J*ii,s[f+20>>2]=ii*Z,s[f+24>>2]=0,s[f>>2]=-F*ii*Z,s[f+4>>2]=F*(-J*ii),N=-J*ii,z=ii*Z,X=0,U=-F*ii*Z,V=F*(-J*ii),F=(Z*Z+J*J)*ii),s[f+8>>2]=F;do{if(0|a){if(!(2&o[a+180>>2]))break;ei=+s[a+4>>2],H=+s[a+20>>2],Y=+s[a+36>>2],ti=+s[a+8>>2],q=+s[a+24>>2],Z=+s[a+40>>2],$=+s[a+12>>2],K=+s[a+28>>2],ii=+s[a+44>>2],Q=(ei*N+H*z+Y*X)*+s[a+164>>2],J=(N*ti+z*q+X*Z)*+s[a+168>>2],X=(N*$+z*K+X*ii)*+s[a+172>>2],s[f+16>>2]=ei*Q+ti*J+$*X,s[f+20>>2]=H*Q+q*J+K*X,s[f+24>>2]=Y*Q+Z*J+ii*X,s[f+28>>2]=0,N=ei*Q+ti*J+$*X,z=H*Q+q*J+K*X,X=Y*Q+Z*J+ii*X}}while(0);do{if(0|m){if(!(2&o[m+180>>2]))break;$=+s[m+4>>2],K=+s[m+20>>2],Z=+s[m+36>>2],H=+s[m+8>>2],Y=+s[m+24>>2],ii=+s[m+40>>2],q=+s[m+12>>2],Q=+s[m+28>>2],ei=+s[m+44>>2],J=($*N+K*z+Z*X)*+s[m+164>>2],ti=(N*H+z*Y+X*ii)*+s[m+168>>2],X=(N*q+z*Q+X*ei)*+s[m+172>>2],s[f+16>>2]=$*J+H*ti+q*X,s[f+20>>2]=K*J+Y*ti+Q*X,s[f+24>>2]=Z*J+ii*ti+ei*X,s[f+28>>2]=0,N=$*J+H*ti+q*X,z=K*J+Y*ti+Q*X,X=Z*J+ii*ti+ei*X}}while(0);do{if(0|a){if(!(2&o[a+180>>2]))break;$=+s[a+4>>2],K=+s[a+20>>2],Z=+s[a+36>>2],H=+s[a+8>>2],Y=+s[a+24>>2],ii=+s[a+40>>2],q=+s[a+12>>2],Q=+s[a+28>>2],ei=+s[a+44>>2],J=($*U+K*V+Z*F)*+s[a+164>>2],ti=(U*H+V*Y+F*ii)*+s[a+168>>2],F=(U*q+V*Q+F*ei)*+s[a+172>>2],s[f>>2]=$*J+H*ti+q*F,s[f+4>>2]=K*J+Y*ti+Q*F,s[f+8>>2]=Z*J+ii*ti+ei*F,s[f+12>>2]=0,U=$*J+H*ti+q*F,V=K*J+Y*ti+Q*F,F=Z*J+ii*ti+ei*F}}while(0);do{if(0|m){if(!(2&o[m+180>>2]))break;$=+s[m+4>>2],K=+s[m+20>>2],Z=+s[m+36>>2],H=+s[m+8>>2],Y=+s[m+24>>2],ii=+s[m+40>>2],q=+s[m+12>>2],Q=+s[m+28>>2],ei=+s[m+44>>2],J=($*U+K*V+Z*F)*+s[m+164>>2],ti=(U*H+V*Y+F*ii)*+s[m+168>>2],F=(U*q+V*Q+F*ei)*+s[m+172>>2],s[f>>2]=$*J+H*ti+q*F,s[f+4>>2]=K*J+Y*ti+Q*F,s[f+8>>2]=Z*J+ii*ti+ei*F,s[f+12>>2]=0,U=$*J+H*ti+q*F,V=K*J+Y*ti+Q*F,F=Z*J+ii*ti+ei*F}}while(0);if(+_(+(N*N+z*z+X*X))>.001&&Qt(i,f+16|0,d,v,k,g),!(+_(+(U*U+V*V+F*F))>.001))break;Qt(i,f,d,v,k,g)}}while(0);do{if(32&o[r+64>>2]){if(!(0|n[l+(184*y|0)+120|0])){c=106;break}if(Yt(i,l+(184*y|0)+156|0,d,v,k,g,f+64|0,f+48|0,1,+s[l+(184*y|0)+136>>2],+s[l+(184*y|0)+144>>2]),!(16&o[r+64>>2]))break;Yt(i,l+(184*y|0)+172|0,d,v,k,g,f+64|0,f+48|0,1,+s[l+(184*y|0)+140>>2],+s[l+(184*y|0)+148>>2])}else c=106}while(0);do{if(106==(0|c)){if(c=0,O=l+(184*y|0)+156|0,z=j-(L*j+E*T+I*A)*(N=+s[x>>2]),U=E-(L*j+E*T+I*A)*(F=+s[M>>2]),j=I-(L*j+E*T+I*A)*(V=+s[S>>2]),s[l+(184*y|0)+156>>2]=z,s[(P=l+(184*y|0)+160|0)>>2]=U,s[(R=l+(184*y|0)+164|0)>>2]=j,s[l+(184*y|0)+168>>2]=0,!(64&o[r+64>>2])&&z*z+U*U+j*j>1.1920928955078125e-7){if(ei=1/+_(+(z*z+U*U+j*j)),s[O>>2]=z*ei,s[P>>2]=ei*U,s[R>>2]=ei*j,Kt(a,O),Kt(m,O),Yt(i,O,d,v,k,g,f+64|0,f+48|0,1,0,0),!(16&o[r+64>>2]))break;W=l+(184*y|0)+172|0,ii=+s[P>>2],Q=+s[S>>2],Y=+s[R>>2],Z=+s[M>>2],ti=+s[x>>2],J=+s[O>>2],s[l+(184*y|0)+172>>2]=ii*Q-Y*Z,s[l+(184*y|0)+184>>2]=0,ei=1/+_(+((ii*Q-Y*Z)*(ii*Q-Y*Z)+(Y*ti-Q*J)*(Y*ti-Q*J)+(Z*J-ii*ti)*(Z*J-ii*ti))),s[W>>2]=(ii*Q-Y*Z)*ei,s[l+(184*y|0)+176>>2]=(Y*ti-Q*J)*ei,s[l+(184*y|0)+180>>2]=(Z*J-ii*ti)*ei,Kt(a,W),Kt(m,W),Yt(i,W,d,v,k,g,f+64|0,f+48|0,1,0,0);break}if(S=l+(184*y|0)+172|0,+b(+V)>.7071067690849304?(ei=1/+_(+(V*V+F*F)),s[O>>2]=0,s[P>>2]=-ei*V,s[R>>2]=ei*F,s[S>>2]=(V*V+F*F)*ei,s[l+(184*y|0)+176>>2]=-N*ei*F,s[l+(184*y|0)+180>>2]=N*(-ei*V)):(ei=1/+_(+(N*N+F*F)),s[O>>2]=-F*ei,s[P>>2]=ei*N,s[R>>2]=0,s[S>>2]=-V*ei*N,s[l+(184*y|0)+176>>2]=V*(-F*ei),s[l+(184*y|0)+180>>2]=(N*N+F*F)*ei),Kt(a,O),Kt(m,O),Yt(i,O,d,v,k,g,f+64|0,f+48|0,1,0,0),16&(x=0|o[r+64>>2])&&(Kt(a,S),Kt(m,S),Yt(i,S,d,v,k,g,f+64|0,f+48|0,1,0,0),x=0|o[r+64>>2]),80&~x)break;n[l+(184*y|0)+120|0]=1}}while(0);g=0|o[i+16>>2],x=0|o[g+(244*d|0)+240>>2],S=0|o[g+(244*v|0)+240>>2],k=0|o[C+(152*k|0)+140>>2],C=0|o[i+76>>2],M=0|o[r+64>>2];do{if(4&M){if(j=+s[l+(184*y|0)+128>>2]*+s[r+60>>2],s[C+(152*k|0)+100>>2]=j,0|x&&(ei=j*(ii=+s[x+344>>2])*+s[C+(152*k|0)+20>>2]*+s[x+352>>2]*+s[g+(244*d|0)+116>>2],ti=j*ii*+s[C+(152*k|0)+24>>2]*+s[x+356>>2]*+s[g+(244*d|0)+120>>2],s[g+(244*d|0)+64>>2]=+s[g+(244*d|0)+112>>2]*j*ii*+s[C+(152*k|0)+16>>2]*+s[x+348>>2]+ +s[g+(244*d|0)+64>>2],s[g+(244*d|0)+68>>2]=ei+ +s[g+(244*d|0)+68>>2],s[g+(244*d|0)+72>>2]=ti+ +s[g+(244*d|0)+72>>2],ti=j*+s[g+(244*d|0)+100>>2]*+s[C+(152*k|0)+68>>2],ei=j*+s[g+(244*d|0)+104>>2]*+s[C+(152*k|0)+72>>2],s[g+(244*d|0)+80>>2]=j*+s[g+(244*d|0)+96>>2]*+s[C+(152*k|0)+64>>2]+ +s[g+(244*d|0)+80>>2],s[g+(244*d|0)+84>>2]=ti+ +s[g+(244*d|0)+84>>2],s[g+(244*d|0)+88>>2]=ei+ +s[g+(244*d|0)+88>>2]),!(0|S))break;if(j=+s[S+344>>2],E=+s[C+(152*k|0)+100>>2],!(0|o[g+(244*v|0)+240>>2]))break;ei=+s[C+(152*k|0)+88>>2],ti=+s[C+(152*k|0)+84>>2],ii=+s[C+(152*k|0)+80>>2],Z=E*j*+s[C+(152*k|0)+52>>2]*+s[S+352>>2]*+s[g+(244*v|0)+116>>2],J=E*j*+s[C+(152*k|0)+56>>2]*+s[S+356>>2]*+s[g+(244*v|0)+120>>2],s[g+(244*v|0)+64>>2]=+s[g+(244*v|0)+112>>2]*E*j*+s[C+(152*k|0)+48>>2]*+s[S+348>>2]+ +s[g+(244*v|0)+64>>2],s[g+(244*v|0)+68>>2]=Z+ +s[g+(244*v|0)+68>>2],s[g+(244*v|0)+72>>2]=J+ +s[g+(244*v|0)+72>>2],ti=ti*+s[g+(244*v|0)+100>>2]*-E,ei=ei*+s[g+(244*v|0)+104>>2]*-E,s[g+(244*v|0)+80>>2]=+s[g+(244*v|0)+80>>2]-ii*+s[g+(244*v|0)+96>>2]*-E,s[g+(244*v|0)+84>>2]=+s[g+(244*v|0)+84>>2]-ti,s[g+(244*v|0)+88>>2]=+s[g+(244*v|0)+88>>2]-ei}else s[C+(152*k|0)+100>>2]=0}while(0);do{if(16&M){if(!(4&M)){s[C+(152*(k+1|0)|0)+100>>2]=0;break}j=+s[l+(184*y|0)+132>>2]*+s[r+60>>2],s[C+(152*(k+1|0)|0)+100>>2]=j;do{if(0|x){if(E=+s[x+344>>2],!(0|o[g+(244*d|0)+240>>2]))break;ei=j*E*+s[C+(152*(k+1|0)|0)+20>>2]*+s[g+(244*d|0)+116>>2],ti=j*E*+s[C+(152*(k+1|0)|0)+24>>2]*+s[g+(244*d|0)+120>>2],s[g+(244*d|0)+64>>2]=+s[g+(244*d|0)+112>>2]*j*E*+s[C+(152*(k+1|0)|0)+16>>2]+ +s[g+(244*d|0)+64>>2],s[g+(244*d|0)+68>>2]=ei+ +s[g+(244*d|0)+68>>2],s[g+(244*d|0)+72>>2]=ti+ +s[g+(244*d|0)+72>>2],ti=j*+s[g+(244*d|0)+100>>2]*+s[C+(152*(k+1|0)|0)+68>>2],ei=j*+s[g+(244*d|0)+104>>2]*+s[C+(152*(k+1|0)|0)+72>>2],s[g+(244*d|0)+80>>2]=j*+s[g+(244*d|0)+96>>2]*+s[C+(152*(k+1|0)|0)+64>>2]+ +s[g+(244*d|0)+80>>2],s[g+(244*d|0)+84>>2]=ti+ +s[g+(244*d|0)+84>>2],s[g+(244*d|0)+88>>2]=ei+ +s[g+(244*d|0)+88>>2]}}while(0);if(!(0|S))break;if(E=+s[S+344>>2],j=+s[C+(152*(k+1|0)|0)+100>>2],!(0|o[g+(244*v|0)+240>>2]))break;ei=+s[C+(152*(k+1|0)|0)+88>>2],ti=+s[C+(152*(k+1|0)|0)+84>>2],ii=+s[C+(152*(k+1|0)|0)+80>>2],Z=j*E*+s[C+(152*(k+1|0)|0)+52>>2]*+s[g+(244*v|0)+116>>2],J=j*E*+s[C+(152*(k+1|0)|0)+56>>2]*+s[g+(244*v|0)+120>>2],s[g+(244*v|0)+64>>2]=+s[g+(244*v|0)+112>>2]*j*E*+s[C+(152*(k+1|0)|0)+48>>2]+ +s[g+(244*v|0)+64>>2],s[g+(244*v|0)+68>>2]=Z+ +s[g+(244*v|0)+68>>2],s[g+(244*v|0)+72>>2]=J+ +s[g+(244*v|0)+72>>2],ti=ti*+s[g+(244*v|0)+100>>2]*-j,ei=ei*+s[g+(244*v|0)+104>>2]*-j,s[g+(244*v|0)+80>>2]=+s[g+(244*v|0)+80>>2]-ii*+s[g+(244*v|0)+96>>2]*-j,s[g+(244*v|0)+84>>2]=+s[g+(244*v|0)+84>>2]-ti,s[g+(244*v|0)+88>>2]=+s[g+(244*v|0)+88>>2]-ei}}while(0);k=0|o[l+748>>2]}y=y+1|0}while((0|y)<(0|k))}}}while(0);h=h+1|0}while((0|h)!=(0|e));u=f}},function(i,t,e,n){i|=0,t|=0,n|=0,i=u,o[(e|=0)+0>>2]=o[t+16>>2],o[e+4>>2]=o[t+20>>2],o[e+8>>2]=o[t+24>>2],o[e+12>>2]=o[t+28>>2],o[n+0>>2]=o[t+32>>2],o[n+4>>2]=o[t+36>>2],o[n+8>>2]=o[t+40>>2],o[n+12>>2]=o[t+44>>2],u=i},function(i,t,e,n){t|=0,e|=0,n|=0;var f,c=0,h=0,l=0,d=0,v=0;if(f=u,0|(c=0|o[(i|=0)+108>>2]))return Vn[63&o[28+(0|o[c>>2])>>2]](c,t,e,n),void(u=f);if((65535&(l=0|r[i+56>>1]))<<1>>>0>1){for(d=1,c=2;v=0|o[i+68>>2],1&r[v+(d<<2)>>1]&&(h=0|o[i+60>>2],d=0|a[v+(d<<2)+2>>1],v=+s[t>>2]>+s[h+(d<<6)+32>>2]||+s[e>>2]<+s[h+(d<<6)+16>>2]?0:1,(+s[t+8>>2]>+s[h+(d<<6)+40>>2]||+s[e+8>>2]<+s[h+(d<<6)+24>>2])&&(v=0),+s[t+4>>2]>+s[h+(d<<6)+36>>2]||+s[e+4>>2]<+s[h+(d<<6)+20>>2]|1^v||(Sn[31&o[8+(0|o[n>>2])>>2]](n,h+(d<<6)|0),l=0|r[i+56>>1])),(d=65535&c)>>>0<((65535&l)<<1|1)>>>0;)c=c+1<<16>>16;u=f}else u=f},function(i,t,e,n){t|=0,e|=0,n|=0;var r,f,a,c,h,l,d,v,_,w,p,m,y,k,g,C=0;r=u,d=(C=+mn[15&o[48+(0|o[(i|=0)>>2])>>2]](i))+ +s[i+28>>2],h=C+ +s[i+32>>2],C+=+s[i+36>>2],g=+b(+ +s[t>>2]),k=+b(+ +s[t+4>>2]),y=+b(+ +s[t+8>>2]),p=+b(+ +s[t+16>>2]),w=+b(+ +s[t+20>>2]),_=+b(+ +s[t+24>>2]),l=+b(+ +s[t+32>>2]),c=+b(+ +s[t+36>>2]),a=+b(+ +s[t+40>>2]),m=+s[t+48>>2],v=+s[t+52>>2],f=+s[t+56>>2],s[e>>2]=m-(d*g+h*k+C*y),s[e+4>>2]=v-(d*p+h*w+C*_),s[e+8>>2]=f-(d*l+h*c+C*a),s[e+12>>2]=0,s[n>>2]=d*g+h*k+C*y+m,s[n+4>>2]=d*p+h*w+C*_+v,s[n+8>>2]=d*l+h*c+C*a+f,s[n+12>>2]=0,u=r},function(i,t,e,n){i|=0,t|=0,e|=0;var r,o=0,f=0,a=0,c=0;if(r=u,(0|(n|=0))<=0)u=r;else{o=0;do{c=+s[i+28>>2],a=+s[i+32>>2],a=+s[t+(o<<4)+4>>2]>=0?a:-a,f=+s[i+36>>2],f=+s[t+(o<<4)+8>>2]>=0?f:-f,s[e+(o<<4)>>2]=+s[t+(o<<4)>>2]>=0?c:-c,s[e+(o<<4)+4>>2]=a,s[e+(o<<4)+8>>2]=f,s[e+(o<<4)+12>>2]=0,o=o+1|0}while((0|o)!=(0|n));u=r}},function(i,t,e,n){t|=0,e|=0,n|=0;var r,f,a=0,c=0,h=0,l=0,d=0,v=0,b=0,_=0;r=u,u=u+96|0,f=+mn[15&o[48+(0|o[(i|=0)>>2])>>2]](i),a=0;do{_=r+80+(a<<2)|0,o[r+80>>2]=0,o[r+84>>2]=0,o[r+88>>2]=0,o[r+92>>2]=0,s[_>>2]=1,c=0|o[64+(0|o[i>>2])>>2],h=+s[r+80>>2],l=+s[r+84>>2],d=+s[r+88>>2],v=h*+s[t+4>>2]+l*+s[t+20>>2]+d*+s[t+36>>2],b=h*+s[t+8>>2]+l*+s[t+24>>2]+d*+s[t+40>>2],s[r+48>>2]=+s[t>>2]*h+ +s[t+16>>2]*l+ +s[t+32>>2]*d,s[r+52>>2]=v,s[r+56>>2]=b,s[r+60>>2]=0,Pn[63&c](r+64|0,i,r+48|0),b=+s[r+64>>2],v=+s[r+68>>2],d=+s[r+72>>2],l=b*+s[t+16>>2]+v*+s[t+20>>2]+d*+s[t+24>>2]+ +s[t+52>>2],h=b*+s[t+32>>2]+v*+s[t+36>>2]+d*+s[t+40>>2]+ +s[t+56>>2],s[r+32>>2]=b*+s[t>>2]+v*+s[t+4>>2]+d*+s[t+8>>2]+ +s[t+48>>2],s[r+36>>2]=l,s[r+40>>2]=h,s[r+44>>2]=0,c=r+32+(a<<2)|0,s[n+(a<<2)>>2]=f+ +s[c>>2],s[_>>2]=-1,_=0|o[64+(0|o[i>>2])>>2],h=+s[r+80>>2],l=+s[r+84>>2],d=+s[r+88>>2],v=h*+s[t+4>>2]+l*+s[t+20>>2]+d*+s[t+36>>2],b=h*+s[t+8>>2]+l*+s[t+24>>2]+d*+s[t+40>>2],s[r>>2]=+s[t>>2]*h+ +s[t+16>>2]*l+ +s[t+32>>2]*d,s[r+4>>2]=v,s[r+8>>2]=b,s[r+12>>2]=0,Pn[63&_](r+16|0,i,r),b=+s[r+16>>2],v=+s[r+20>>2],d=+s[r+24>>2],l=b*+s[t+16>>2]+v*+s[t+20>>2]+d*+s[t+24>>2]+ +s[t+52>>2],h=b*+s[t+32>>2]+v*+s[t+36>>2]+d*+s[t+40>>2]+ +s[t+56>>2],s[r+32>>2]=b*+s[t>>2]+v*+s[t+4>>2]+d*+s[t+8>>2]+ +s[t+48>>2],s[r+36>>2]=l,s[r+40>>2]=h,s[r+44>>2]=0,s[e+(a<<2)>>2]=+s[c>>2]-f,a=a+1|0}while(3!=(0|a));u=r},function(i,t,e,n){i|=0,e|=0,n|=0;var r,f=0;switch(r=u,0|(t|=0)){case 0:f=0,t=1;break;case 8:f=4,t=5;break;case 4:f=0;break;case 3:case 6:f=2;break;case 10:f=5,t=7;break;case 7:f=3;break;case 11:f=6,t=7;break;case 2:f=1,t=3;break;case 1:f=0,t=2;break;case 9:f=4,t=6;break;case 5:f=1;break;default:f=0,t=0}Pn[63&o[108+(0|o[i>>2])>>2]](i,f,e),Pn[63&o[108+(0|o[i>>2])>>2]](i,t,n),u=r},function(i,t,e,n){var r,f,a,c;t|=0,e|=0,n|=0,r=u,u=u+48|0,Pn[63&o[124+(0|o[(i|=0)>>2])>>2]](i,r+32|0,n),c=+s[r+32>>2],a=+s[r+36>>2],f=+s[r+40>>2],s[t>>2]=c,s[t+4>>2]=a,s[t+8>>2]=f,s[t+12>>2]=0,n=0|o[64+(0|o[i>>2])>>2],s[r>>2]=-c,s[r+4>>2]=-a,s[r+8>>2]=-f,s[r+12>>2]=0,Pn[63&n](r+16|0,i,r),o[e+0>>2]=o[r+16>>2],o[e+4>>2]=o[r+20>>2],o[e+8>>2]=o[r+24>>2],o[e+12>>2]=o[r+28>>2],u=r},function(i,t,e,n){t|=0,e|=0,n|=0;var r,f,a,c,h,l,d,v,_,w,p,m,y,k,g,C,j,S,x,M,E,T,L,I=0,A=0,D=0,O=0;r=u,v=.5*(+s[(i|=0)+32>>2]-+s[i+16>>2]),h=.5*(+s[i+36>>2]-+s[i+20>>2]),A=.5*(+s[i+40>>2]-+s[i+24>>2]),d=+mn[15&o[48+(0|o[i>>2])>>2]](i),c=+mn[15&o[48+(0|o[i>>2])>>2]](i),A+=+mn[15&o[48+(0|o[i>>2])>>2]](i),x=.5*(+s[i+32>>2]+ +s[i+16>>2]),j=.5*(+s[i+36>>2]+ +s[i+20>>2]),g=.5*(+s[i+40>>2]+ +s[i+24>>2]),L=+s[t>>2],k=+b(+L),T=+s[t+4>>2],y=+b(+T),O=+s[t+8>>2],m=+b(+O),E=+s[t+16>>2],p=+b(+E),M=+s[t+20>>2],w=+b(+M),D=+s[t+24>>2],_=+b(+D),S=+s[t+32>>2],l=+b(+S),C=+s[t+36>>2],a=+b(+C),I=+s[t+40>>2],f=+b(+I),O=x*L+j*T+g*O+ +s[t+48>>2],D=x*E+j*M+g*D+ +s[t+52>>2],I=x*S+j*C+g*I+ +s[t+56>>2],s[e>>2]=O-((v+d)*k+(h+c)*y+A*m),s[e+4>>2]=D-((v+d)*p+(h+c)*w+A*_),s[e+8>>2]=I-((v+d)*l+(h+c)*a+A*f),s[e+12>>2]=0,s[n>>2]=(v+d)*k+(h+c)*y+A*m+O,s[n+4>>2]=(v+d)*p+(h+c)*w+A*_+D,s[n+8>>2]=(v+d)*l+(h+c)*a+A*f+I,s[n+12>>2]=0,u=r},function(i,t,e,f){t|=0,e|=0,f|=0;var c,h,l,d,v,b,_,w,p,m,y=0,k=0,g=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0,L=0,I=0,A=0,D=0,O=0;if(c=u,u=u+80|0,I=0|o[(i|=0)+48>>2],o[c>>2]=5032,o[c+4>>2]=I,o[c+8>>2]=t,t=0|o[i+52>>2],!(0|n[t+60|0])){g=0|o[t+56>>2];i:do{if((0|g)>0)for(y=0,k=0|o[t+96>>2],i=1;;){if(C=+s[e>>2]>+s[k+16>>2]||+s[f>>2]<+s[k>>2]?0:1,(+s[e+8>>2]>+s[k+24>>2]||+s[f+8>>2]<+s[k+8>>2])&&(C=0),+s[e+4>>2]>+s[k+20>>2]||+s[f+4>>2]<+s[k+4>>2]?(j=S=0|o[k+32>>2],S=-1==(0|S),x=0,C=43):-1==(0|(S=0|o[k+32>>2]))&C?(Pn[63&o[8+(0|o[c>>2])>>2]](c,0|o[k+36>>2],0|o[k+40>>2]),g=0|o[t+56>>2],C=44):(j=S,S=-1==(0|S),x=C,C=43),43==(0|C)&&(C=0,x|S?C=44:(y=j+y|0,k=k+(j<<6)|0)),44==(0|C)&&(y=y+1|0,k=k+64|0),(0|y)>=(0|g))break i;i=i+1|0}else i=0}while(0);return(0|o[3610])>=(0|i)||(o[3610]=i),void(u=c)}if(A=+s[e>>2],D=+s[e+4>>2],O=+s[e+8>>2],A=A<(p=+s[t+4>>2])?p:A,D=D<(b=+s[t+8>>2])?b:D,O=O<(l=+s[t+12>>2])?l:O,m=+s[t+20>>2],_=+s[t+24>>2],d=+s[t+28>>2],w=+s[t+36>>2],v=+s[t+40>>2],h=+s[t+44>>2],e=65534&((m<A?m:A)-p)*w,r[c+66>>1]=e,y=65534&((_<D?_:D)-b)*v,r[c+68>>1]=y,i=65534&((d<O?d:O)-l)*h,r[c+70>>1]=i,O=+s[f>>2],D=(D=+s[f+4>>2])<b?b:D,A=(A=+s[f+8>>2])<l?l:A,f=65535&((m<(O=O<p?p:O)?m:O)-p)*w+1|1,r[c+60>>1]=f,g=65535&((_<D?_:D)-b)*v+1|1,r[c+62>>1]=g,k=65535&((d<A?d:A)-l)*h+1|1,r[c+64>>1]=k,0|(C=0|o[t+144>>2])){if(1==(0|C)){if((0|o[t+152>>2])<=0)return void(u=c);C=0;do{if(S=0|o[t+160>>2],((65535&f)>=(0|a[S+(C<<5)>>1])?(65535&e)<=(0|a[S+(C<<5)+6>>1]):0)&(65535&i)<=(0|a[S+(C<<5)+10>>1])&(65535&k)>=(0|a[S+(C<<5)+4>>1])&(65535&y)<=(0|a[S+(C<<5)+8>>1])&(65535&g)>=(0|a[S+(C<<5)+2>>1])){j=0|o[S+(C<<5)+12>>2],x=0|o[S+(C<<5)+16>>2];i:do{if((0|x)>0)for(M=j,E=(0|o[t+136>>2])+(j<<4)|0,S=1;;){if(I=((65535&f)>=(0|a[E>>1])?(65535&e)<=(0|a[E+6>>1]):0)&(65535&i)<=(0|a[E+10>>1])&(65535&k)>=(0|a[E+4>>1])&(65535&y)<=(0|a[E+8>>1])&(65535&g)>=(0|a[E+2>>1]),(0|(L=0|o[(T=E+12|0)>>2]))>-1&I&&Pn[63&o[8+(0|o[c>>2])>>2]](c,L>>21,2097151&L),I|(0|L)>-1?(M=M+1|0,E=E+16|0):(M=M-(I=0|o[T>>2])|0,E=E+(0-I<<4)|0),(0|M)>=(x+j|0))break i;S=S+1|0}else S=0}while(0);(0|o[3610])<(0|S)&&(o[3610]=S)}C=C+1|0}while((0|C)<(0|o[t+152>>2]));return void(u=c)}return 2==(0|C)?(H(0|o[t+136>>2],c,c+66|0,c+60|0),void(u=c)):void(u=c)}C=0|o[t+56>>2];i:do{if((0|C)>0)for(j=0,S=0|o[t+136>>2],t=1;;){if(M=((65535&f)>=(0|a[S>>1])?(65535&e)<=(0|a[S+6>>1]):0)&(65535&i)<=(0|a[S+10>>1])&(65535&k)>=(0|a[S+4>>1])&(65535&y)<=(0|a[S+8>>1])&(65535&g)>=(0|a[S+2>>1]),(0|(E=0|o[(x=S+12|0)>>2]))>-1&M&&Pn[63&o[8+(0|o[c>>2])>>2]](c,E>>21,2097151&E),M|(0|E)>-1?(j=j+1|0,S=S+16|0):(j=j-(I=0|o[x>>2])|0,S=S+(0-I<<4)|0),(0|j)>=(0|C))break i;t=t+1|0}else t=0}while(0);return(0|o[3610])>=(0|t)||(o[3610]=t),void(u=c)},function(i,t,e,n){t|=0,e|=0,n|=0;var r,f,a,c,h,l,d,v,_,w,p,m,y,k,g=0,C=0,j=0;r=u,u=u+16|0,k=0|o[(i|=0)+52>>2],C=+s[i+((k+2|0)%3<<2)+28>>2],s[r>>2]=C,s[r+4>>2]=C,s[r+8>>2]=C,s[r+12>>2]=0,s[r+(k<<2)>>2]=C+ +s[i+(k<<2)+28>>2],C=+mn[15&o[48+(0|o[i>>2])>>2]](i),g=+mn[15&o[48+(0|o[i>>2])>>2]](i),j=+mn[15&o[48+(0|o[i>>2])>>2]](i),C+=+s[r>>2],s[r>>2]=C,g+=+s[r+4>>2],s[r+4>>2]=g,j+=+s[r+8>>2],p=+b(+ +s[t>>2]),w=+b(+ +s[t+4>>2]),m=+b(+ +s[t+8>>2]),d=+b(+ +s[t+16>>2]),l=+b(+ +s[t+20>>2]),v=+b(+ +s[t+24>>2]),a=+b(+ +s[t+32>>2]),f=+b(+ +s[t+36>>2]),c=+b(+ +s[t+40>>2]),y=+s[t+48>>2],_=+s[t+52>>2],h=+s[t+56>>2],s[e>>2]=y-(j*m+(p*C+w*g)),s[e+4>>2]=_-(j*v+(d*C+l*g)),s[e+8>>2]=h-(j*c+(a*C+f*g)),s[e+12>>2]=0,s[n>>2]=y+(j*m+(p*C+w*g)),s[n+4>>2]=_+(j*v+(d*C+l*g)),s[n+8>>2]=h+(j*c+(a*C+f*g)),s[n+12>>2]=0,u=r},function(i,t,e,n){t|=0,e|=0,n|=0;var r,f,a=0,c=0,h=0,l=0,d=0,v=0,b=0,_=0,w=0,p=0,m=0,y=0,k=0,g=0,C=0;if(r=u,u=u+32|0,c=0|o[(i|=0)+52>>2],f=+s[i+((c+2|0)%3<<2)+28>>2],(0|n)<=0)u=r;else{for(a=0;l=i+(c<<2)+28|0,o[r+16>>2]=0,o[r+20>>2]=0,o[r+24>>2]=0,o[r+28>>2]=0,s[r+16+(c<<2)>>2]=+s[l>>2],h=t+(a<<4)+4|0,c=t+(a<<4)+8|0,y=f*+s[(l=t+(a<<4)|0)>>2]+ +s[r+16>>2],p=f*+s[h>>2]+ +s[r+20>>2],_=f*+s[c>>2]+ +s[r+24>>2],g=+mn[15&o[48+(0|o[i>>2])>>2]](i),(m=+s[l>>2])*(y-g*m)+(w=+s[h>>2])*(p-g*w)+(k=+s[c>>2])*(_-g*k)>-0xde0b6b000000000?(s[e+(a<<4)>>2]=y-g*m,s[e+(a<<4)+4>>2]=p-g*w,s[e+(a<<4)+8>>2]=_-g*k,s[e+(a<<4)+12>>2]=0,b=+s[l>>2],v=+s[h>>2],d=+s[c>>2],_=m*(y-g*m)+w*(p-g*w)+k*(_-g*k)):(b=m,v=w,d=k,_=-0xde0b6b000000000),o[r+0>>2]=0,o[r+4>>2]=0,o[r+8>>2]=0,o[r+12>>2]=0,C=0|o[i+52>>2],s[r+(C<<2)>>2]=-+s[i+(C<<2)+28>>2],b=f*b+ +s[r>>2],v=f*v+ +s[r+4>>2],w=f*d+ +s[r+8>>2],d=+mn[15&o[48+(0|o[i>>2])>>2]](i),(p=+s[l>>2])*(b-d*p)+(m=+s[h>>2])*(v-d*m)+(y=+s[c>>2])*(w-d*y)>_&&(s[e+(a<<4)>>2]=b-d*p,s[e+(a<<4)+4>>2]=v-d*m,s[e+(a<<4)+8>>2]=w-d*y,s[e+(a<<4)+12>>2]=0),(0|(a=a+1|0))!=(0|n);)c=0|o[i+52>>2];u=r}},function(i,t,e,n){var r;i|=0,t|=0,e|=0,n|=0,r=u,u=u+16|0,o[r>>2]=6144,o[r+4>>2]=e,o[r+8>>2]=i,Pn[63&o[48+(0|o[t>>2])>>2]](t,r,n),u=r},Fi,function(i,t,e,n){i|=0,e|=0,n|=0;var r,f,a,c,h,l,d,v,b,w,p,m,y,k,g,C,j,S,x,M,E,T=0,L=0,I=0,A=0,D=0,O=0;if(e=u,u=u+96|0,d=+s[(t|=0)>>2],a=+s[i+28>>2],v=+s[t+4>>2],h=+s[i+32>>2],b=+s[t+8>>2],l=+s[i+36>>2],w=+s[i+44>>2],p=+s[i+48>>2],r=+s[i+52>>2],m=+s[i+60>>2],y=+s[i+64>>2],k=+s[i+68>>2],L=+s[i+76>>2],I=+s[i+80>>2],g=+s[i+84>>2],s[e+80>>2]=d*a+v*h+b*l+L,s[e+84>>2]=d*w+v*p+b*r+I,s[e+88>>2]=d*m+v*y+b*k+g,s[e+92>>2]=0,f=+s[t+16>>2],c=+s[t+20>>2],T=+s[t+24>>2],s[e+64>>2]=f*a+c*h+T*l+L,s[e+68>>2]=f*w+c*p+T*r+I,s[e+72>>2]=f*m+c*y+T*k+g,s[e+76>>2]=0,C=+s[t+32>>2],A=+s[t+36>>2],D=+s[t+40>>2],s[e+48>>2]=C*a+A*h+D*l+L,s[e+52>>2]=C*w+A*p+D*r+I,s[e+56>>2]=C*m+A*y+D*k+g,s[e+60>>2]=0,j=.3333333432674408*(d*a+v*h+b*l+L+(f*a+c*h+T*l+L)+(C*a+A*h+D*l+L)),S=.3333333432674408*(d*w+v*p+b*r+I+(f*w+c*p+T*r+I)+(C*w+A*p+D*r+I)),x=.3333333432674408*(d*m+v*y+b*k+g+(f*m+c*y+T*k+g)+(C*m+A*y+D*k+g)),s[e+32>>2]=j,s[e+36>>2]=S,s[e+40>>2]=x,s[e+44>>2]=0,n=0|o[i+8>>2],!(16384&an[127&o[48+(0|o[n>>2])>>2]](n)))return t=0|o[i+8>>2],O=0|o[t>>2],O=0|o[(O=O+8|0)>>2],n=i+12|0,Vn[63&O](t,e+80|0,e+64|0,n),t=0|o[i+8>>2],O=0|o[t>>2],O=0|o[(O=O+8|0)>>2],Vn[63&O](t,e+64|0,e+48|0,n),t=0|o[i+8>>2],i=0|o[t>>2],i=0|o[(i=i+8|0)>>2],Vn[63&i](t,e+48|0,e+80|0,n),void(u=e);M=f*w+c*p+T*r+I-(d*w+v*p+b*r+I),D=1/+_(+(((E=f*a+c*h+T*l+L-(d*a+v*h+b*l+L))*(I=C*w+A*p+D*r+I-(d*w+v*p+b*r+I))-M*(L=C*a+A*h+D*l+L-(d*a+v*h+b*l+L)))*(E*I-M*L)+((M*(A=C*m+A*y+D*k+g-(d*m+v*y+b*k+g))-(T=f*m+c*y+T*k+g-(d*m+v*y+b*k+g))*I)*(M*A-T*I)+(T*L-E*A)*(T*L-E*A)))),s[e+16>>2]=1,s[e+20>>2]=1,s[e+24>>2]=0,s[e+28>>2]=0,n=0|o[i+8>>2],t=0|o[8+(0|o[n>>2])>>2],s[e>>2]=D*(M*A-T*I)+j,s[e+4>>2]=D*(T*L-E*A)+S,s[e+8>>2]=D*(E*I-M*L)+x,s[e+12>>2]=0,Vn[63&t](n,e+32|0,e,e+16|0),n=0|o[i+8>>2],t=0|o[n>>2],t=0|o[(t=t+8|0)>>2],O=i+12|0,Vn[63&t](n,e+80|0,e+64|0,O),n=0|o[i+8>>2],t=0|o[n>>2],t=0|o[(t=t+8|0)>>2],Vn[63&t](n,e+64|0,e+48|0,O),n=0|o[i+8>>2],t=0|o[n>>2],t=0|o[(t=t+8|0)>>2],Vn[63&t](n,e+48|0,e+80|0,O),u=e},function(i,t,e,n){var r;t|=0,e|=0,n|=0,r=u,Vn[63&o[8+(0|o[(i|=0)>>2])>>2]](i,t,e,n),u=r},function(i,t,e,n){var r;t|=0,e|=0,n|=0,r=u,Vn[63&o[8+(0|o[(i|=0)+-4>>2])>>2]](i+-4|0,t,e,n),u=r},function(i,t,e,r){i|=0,t|=0,e|=0,r|=0;var f,a=0,c=0,h=0,l=0,d=0;f=u,u=u+672|0,o[f+576>>2]=0,s[f+580>>2]=1,s[f+584>>2]=1,s[f+588>>2]=1,s[f+592>>2]=0,o[f+620>>2]=0,o[f+568>>2]=14704,o[f+572>>2]=1,o[f+624>>2]=o[t+0>>2],o[f+628>>2]=o[t+4>>2],o[f+632>>2]=o[t+8>>2],o[f+636>>2]=o[t+12>>2],o[f+640>>2]=o[t+16>>2],o[f+644>>2]=o[t+20>>2],o[f+648>>2]=o[t+24>>2],o[f+652>>2]=o[t+28>>2],o[f+656>>2]=o[t+32>>2],o[f+660>>2]=o[t+36>>2],o[f+664>>2]=o[t+40>>2],o[f+668>>2]=o[t+44>>2],s[f+612>>2]=+s[i+204>>2],s[f+516>>2]=9999999747378752e-20,n[f+540|0]=0,o[f+200>>2]=11736,t=0|o[i+4>>2],o[f+176>>2]=9296,o[f+180>>2]=f+208,o[f+184>>2]=f+200,o[f+188>>2]=t,o[f+192>>2]=f+568,o[f+196>>2]=0,o[f>>2]=8584,o[f+168>>2]=0,s[f+164>>2]=1,s[f+172>>2]=+s[i+208>>2],0|gi(f+176|0,i+8|0,i+72|0,i+136|0,i+136|0,f)&&(a=+s[f+132>>2])*a+(h=+s[f+136>>2])*h+(l=+s[f+140>>2])*l>9999999747378752e-20&&(c=+s[f+164>>2])<+s[i+200>>2]&&(d=1/+_(+(a*a+h*h+l*l)),s[f+132>>2]=a*d,s[f+136>>2]=h*d,s[f+140>>2]=l*d,kn[3&o[12+(0|o[i>>2])>>2]](i,f+132|0,f+148|0,c,e,r)),o[f+568>>2]=14224,0|(e=0|o[f+620>>2])?(nn[255&o[o[e>>2]>>2]](e),0|(e=0|o[f+620>>2])?(o[4548]=1+(0|o[4548]),ke(0|o[e+-4>>2]),u=f):u=f):u=f},function(i,t,e,n){i|=0,e|=0,n|=0;var r,f,a,c,h,l,d,v,b,w,p,m,y,k=0,g=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0,L=0;if(r=u,u=u+32|0,L=+s[(t|=0)+16>>2],j=+s[t>>2],T=+s[t+20>>2],S=+s[t+4>>2],E=+s[t+24>>2],M=+s[t+8>>2],x=+s[t+32>>2],g=+s[t+36>>2],l=(T-S)*((C=+s[t+40>>2])-M)-(E-M)*(g-S),c=(E-M)*(x-j)-(L-j)*(C-M),h=(L-j)*(g-S)-(T-S)*(x-j),s[r+16>>2]=l,s[r+20>>2]=c,s[r+24>>2]=h,s[r+28>>2]=0,(f=l*(p=+s[i+4>>2])+c*(w=+s[i+8>>2])+h*(d=+s[i+12>>2])-(j*l+S*c+M*h))*(l*(m=+s[i+20>>2])+c*(b=+s[i+24>>2])+h*(v=+s[i+28>>2])-(j*l+S*c+M*h))>=0)u=r;else if(!(1&(t=0|o[i+36>>2]))|!(f<=0))if((a=f/(f-(l*m+c*b+h*v-(j*l+S*c+M*h))))<+s[i+40>>2])if(h*((j-=m*a+p*(1-a))*(T-=b*a+w*(1-a))-(S-=b*a+w*(1-a))*(L-=m*a+p*(1-a)))+(l*(S*(E-=v*a+d*(1-a))-(M-=v*a+d*(1-a))*T)+c*(M*L-j*E))>=(k=-9999999747378752e-20*(l*l+c*c+h*h)))if(h*(L*(g-=b*a+w*(1-a))-T*(x-=m*a+p*(1-a)))+(l*(T*(C-=v*a+d*(1-a))-E*g)+c*(E*x-L*C))>=k){if(h*(S*x-j*g)+(l*(M*g-S*C)+c*(j*C-M*x))>=k)return k=1/+_(+(l*l+c*c+h*h)),s[r+16>>2]=l*k,s[r+20>>2]=c*k,s[r+24>>2]=h*k,y=0|o[12+(0|o[i>>2])>>2],!!(2&t)|!(f<=0)?(s[i+40>>2]=+An[3&y](i,r+16|0,a,e,n),void(u=r)):(s[r>>2]=-l*k,s[r+4>>2]=-c*k,s[r+8>>2]=-h*k,s[r+12>>2]=0,s[i+40>>2]=+An[3&y](i,r,a,e,n),void(u=r));u=r}else u=r;else u=r;else u=r;else u=r},function(i,t,e,n){t|=0,e|=0,n|=0;var r,f,a,c,h,l,d,v,_,w,p,m,y,k,g,C,j=0,S=0,x=0,M=0,E=0,T=0,L=0,I=0,A=0,D=0;r=u,T=+s[(i|=0)+48>>2],L=+s[i+32>>2],A=+s[i+52>>2],I=+s[i+36>>2],D=+s[i+56>>2],S=+s[i+40>>2],_=(C=!(0|o[i+16>>2]))?0:.5*(D+S),p=C?0:.5*(A+I),y=C?0:.5*(T+L),M=(C?0:.5*(T-L))+(M=+mn[15&o[48+(0|o[i>>2])>>2]](i)),x=(C?0:.5*(A-I))+(x=+mn[15&o[48+(0|o[i>>2])>>2]](i)),S=(C?0:.5*(D-S))+ +mn[15&o[48+(0|o[i>>2])>>2]](i),D=+s[t>>2],I=+b(+D),A=+s[t+4>>2],L=+b(+A),T=+s[t+8>>2],v=+b(+T),g=+s[t+16>>2],d=+b(+g),k=+s[t+20>>2],l=+b(+k),E=+s[t+24>>2],h=+b(+E),m=+s[t+32>>2],c=+b(+m),w=+s[t+36>>2],a=+b(+w),j=+s[t+40>>2],f=+b(+j),T=y*D+p*A+_*T+ +s[t+48>>2],E=y*g+p*k+_*E+ +s[t+52>>2],j=y*m+p*w+_*j+ +s[t+56>>2],s[e>>2]=T-(M*I+x*L+S*v),s[e+4>>2]=E-(M*d+x*l+S*h),s[e+8>>2]=j-(M*c+x*a+S*f),s[e+12>>2]=0,s[n>>2]=M*I+x*L+S*v+T,s[n+4>>2]=M*d+x*l+S*h+E,s[n+8>>2]=M*c+x*a+S*f+j,s[n+12>>2]=0,u=r},function(i,t,e,n){var r;t|=0,e|=0,n|=0,r=u,Vn[63&o[80+(0|o[(i|=0)>>2])>>2]](i,t,e,n),u=r},function(i,t,e,n){i|=0,t|=0,e|=0;var r,f=0,a=0;if(r=u,u=u+16|0,(0|(n|=0))<=0)u=r;else{f=0;do{a=e+(f<<4)|0,Ki(r,i,t+(f<<4)|0),o[a+0>>2]=o[r+0>>2],o[a+4>>2]=o[r+4>>2],o[a+8>>2]=o[r+8>>2],o[a+12>>2]=o[r+12>>2],f=f+1|0}while((0|f)!=(0|n));u=r}},function(i,t,e,n){t|=0,e|=0,n|=0;var r,f,a,c,h,l,d,v,_,w,p,m,y,k,g,C=0;r=u,d=(C=+mn[15&o[48+(0|o[(i|=0)>>2])>>2]](i))+ +s[i+28>>2],h=C+ +s[i+32>>2],C+=+s[i+36>>2],g=+b(+ +s[t>>2]),k=+b(+ +s[t+4>>2]),y=+b(+ +s[t+8>>2]),p=+b(+ +s[t+16>>2]),w=+b(+ +s[t+20>>2]),_=+b(+ +s[t+24>>2]),l=+b(+ +s[t+32>>2]),c=+b(+ +s[t+36>>2]),a=+b(+ +s[t+40>>2]),m=+s[t+48>>2],v=+s[t+52>>2],f=+s[t+56>>2],s[e>>2]=m-(d*g+h*k+C*y),s[e+4>>2]=v-(d*p+h*w+C*_),s[e+8>>2]=f-(d*l+h*c+C*a),s[e+12>>2]=0,s[n>>2]=d*g+h*k+C*y+m,s[n+4>>2]=d*p+h*w+C*_+v,s[n+8>>2]=d*l+h*c+C*a+f,s[n+12>>2]=0,u=r},function(i,t,e,n){i|=0,t|=0,e|=0;var r,o=0,f=0,a=0,c=0,h=0,l=0;if(r=u,(0|(n|=0))<=0)u=r;else{o=0;do{f=+s[i+28>>2],l=+s[i+32>>2],h=+s[t+(o<<4)>>2],c=+s[t+(o<<4)+8>>2],0==(a=+_(+(h*h+c*c)))?+s[t+(o<<4)+4>>2]<0?(l=-l,h=f,f=0):(h=f,f=0):(+s[t+(o<<4)+4>>2]<0&&(l=-l),h*=f/a,f=c*(f/a)),s[e+(o<<4)>>2]=h,s[e+(o<<4)+4>>2]=l,s[e+(o<<4)+8>>2]=f,o=o+1|0}while((0|o)!=(0|n));u=r}},function(i,t,e,n){i|=0,t|=0,e|=0;var r,o=0,f=0,a=0,c=0,h=0,l=0,d=0;if(r=u,(0|(n|=0))<=0)u=r;else{o=0;do{f=+s[i+32>>2],l=+s[i+28>>2],d=t+(o<<4)|0,h=+s[t+(o<<4)+4>>2],a=+s[t+(o<<4)+8>>2],0==(c=+_(+(h*h+a*a)))?+s[d>>2]<0?(l=-l,h=f,f=0):(h=f,f=0):(+s[d>>2]<0&&(l=-l),h*=f/c,f=a*(f/c)),s[e+(o<<4)>>2]=l,s[e+(o<<4)+4>>2]=h,s[e+(o<<4)+8>>2]=f,o=o+1|0}while((0|o)!=(0|n));u=r}},function(i,t,e,n){i|=0,t|=0,e|=0;var r,o=0,f=0,a=0,c=0,h=0,l=0;if(r=u,(0|(n|=0))<=0)u=r;else{o=0;do{f=+s[i+28>>2],l=+s[i+36>>2],h=+s[t+(o<<4)>>2],c=+s[t+(o<<4)+4>>2],0==(a=+_(+(h*h+c*c)))?+s[t+(o<<4)+8>>2]<0?(l=-l,h=f,f=0):(h=f,f=0):(+s[t+(o<<4)+8>>2]<0&&(l=-l),h*=f/a,f=c*(f/a)),s[e+(o<<4)>>2]=h,s[e+(o<<4)+4>>2]=f,s[e+(o<<4)+8>>2]=l,o=o+1|0}while((0|o)!=(0|n));u=r}},function(i,t,e,n){i|=0,t|=0,n|=0,i=u,o[(e|=0)+0>>2]=o[t+16>>2],o[e+4>>2]=o[t+20>>2],o[e+8>>2]=o[t+24>>2],o[e+12>>2]=o[t+28>>2],o[n+0>>2]=o[t+32>>2],o[n+4>>2]=o[t+36>>2],o[n+8>>2]=o[t+40>>2],o[n+12>>2]=o[t+44>>2],u=i},function(i,t,e,n){var r;i|=0,t|=0,e|=0,n|=0,r=u,u=u+48|0,o[r+32>>2]=10200,o[r+36>>2]=n,o[r+0>>2]=o[t+0>>2],o[r+4>>2]=o[t+4>>2],o[r+8>>2]=o[t+8>>2],o[r+12>>2]=o[t+12>>2],o[r+16>>2]=o[e+0>>2],o[r+20>>2]=o[e+4>>2],o[r+24>>2]=o[e+8>>2],o[r+28>>2]=o[e+12>>2],Ii(0|o[i+4>>2],r,r+32|0),Ii(0|o[i+64>>2],r,r+32|0),u=r},function(i,t,e,r){i|=0,e|=0,r|=0;var f,a=0,c=0,h=0,l=0,d=0,v=0,b=0,_=0,w=0,p=0,m=0,y=0,k=0,g=0,C=0,j=0,S=0,x=0;if(f=u,u=u+32|0,a=(l=+s[(t|=0)>>2])<0xde0b6b000000000?l:0xde0b6b000000000,c=(d=+s[t+4>>2])<0xde0b6b000000000?d:0xde0b6b000000000,h=(v=+s[t+8>>2])<0xde0b6b000000000?v:0xde0b6b000000000,w=(b=+s[t+12>>2])<0?b:0,l=l>-0xde0b6b000000000?l:-0xde0b6b000000000,d=d>-0xde0b6b000000000?d:-0xde0b6b000000000,v=v>-0xde0b6b000000000?v:-0xde0b6b000000000,b=b>0?b:0,a=(C=+s[t+16>>2])<a?C:a,c=(j=+s[t+20>>2])<c?j:c,h=(S=+s[t+24>>2])<h?S:h,w=(x=+s[t+28>>2])<w?x:w,l=l<C?C:l,d=d<j?j:d,v=v<S?S:v,b=b<x?x:b,a=(x=+s[t+32>>2])<a?x:a,c=(S=+s[t+36>>2])<c?S:c,h=(j=+s[t+40>>2])<h?j:h,w=(C=+s[t+44>>2])<w?C:w,l=l<x?x:l,d=d<S?S:d,v=v<j?j:v,b=b<C?C:b,i=0|o[i+4>>2],(0|(t=0|o[i+4>>2]))==(0|o[i+8>>2])&&(0|t)<(0|(_=0|t?t<<1:1))){if(0|_?(o[4546]=1+(0|o[4546]),0|(t=0|ye(_<<6|19))?(o[(t+19&-16)-4>>2]=t,p=t+19&-16):p=0,t=0|o[i+4>>2]):p=0,(0|t)>0){g=0;do{m=p+(g<<6)+0|0,y=(0|o[i+12>>2])+(g<<6)+0|0,k=m+64|0;do{o[m>>2]=o[y>>2],m=m+4|0,y=y+4|0}while((0|m)<(0|k));g=g+1|0}while((0|g)!=(0|t))}0|(t=0|o[i+12>>2])&&(0|n[i+16|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[t+-4>>2])),o[i+12>>2]=0),n[i+16|0]=1,o[i+12>>2]=p,o[i+8>>2]=_,t=0|o[i+4>>2]}g=0|o[i+12>>2],s[g+(t<<6)>>2]=a,s[g+(t<<6)+4>>2]=c,s[g+(t<<6)+8>>2]=h,s[g+(t<<6)+12>>2]=w,s[g+(t<<6)+16>>2]=l,s[g+(t<<6)+20>>2]=d,s[g+(t<<6)+24>>2]=v,s[g+(t<<6)+28>>2]=b,o[g+(t<<6)+32>>2]=-1,o[g+(t<<6)+36>>2]=e,o[g+(t<<6)+40>>2]=r,o[(g=g+(t<<6)+44|0)+0>>2]=o[f+0>>2],o[g+4>>2]=o[f+4>>2],o[g+8>>2]=o[f+8>>2],o[g+12>>2]=o[f+12>>2],o[g+16>>2]=o[f+16>>2],o[i+4>>2]=1+(0|o[i+4>>2]),u=f},function(i,t,e,f){i|=0,e|=0,f|=0;var a,c,h,l,d,v,b,_,w,p=0,m=0,y=0,k=0,g=0,C=0,j=0,S=0,x=0,M=0,E=0,T=0,L=0,I=0,A=0;if(a=u,g=(m=+s[(t|=0)>>2])<0xde0b6b000000000?m:0xde0b6b000000000,S=(y=+s[t+4>>2])<0xde0b6b000000000?y:0xde0b6b000000000,j=(k=+s[t+8>>2])<0xde0b6b000000000?k:0xde0b6b000000000,m=m>-0xde0b6b000000000?m:-0xde0b6b000000000,y=y>-0xde0b6b000000000?y:-0xde0b6b000000000,k=k>-0xde0b6b000000000?k:-0xde0b6b000000000,g=(E=+s[t+16>>2])<g?E:g,S=(T=+s[t+20>>2])<S?T:S,j=(L=+s[t+24>>2])<j?L:j,y=y<T?T:y,k=k<L?L:k,(m=(m=m<E?E:m)<(L=+s[t+32>>2])?L:m)-(g=L<g?L:g)<.0020000000949949026&&(g+=-.0010000000474974513,m+=.0010000000474974513),(y=y<(T=+s[t+36>>2])?T:y)-(S=T<S?T:S)<.0020000000949949026&&(S+=-.0010000000474974513,y+=.0010000000474974513),(k=k<(E=+s[t+40>>2])?E:k)-(j=E<j?E:j)<.0020000000949949026&&(j+=-.0010000000474974513,k+=.0010000000474974513),t=0|o[i+8>>2],w=+s[t+4>>2],b=+s[t+8>>2],T=+s[t+12>>2],_=+s[t+36>>2],E=+s[t+40>>2],L=+s[t+44>>2],t=65534&(g-w)*_,c=65534&(S-b)*E,h=65534&(j-T)*L,l=65535&(m-w)*_+1|1,d=65535&(y-b)*E+1|1,v=65535&(k-T)*L+1|1,i=0|o[i+4>>2],(0|(C=0|o[i+4>>2]))==(0|o[i+8>>2])&&(0|C)<(0|(p=0|C?C<<1:1))){if(0|p?(o[4546]=1+(0|o[4546]),0|(C=0|ye(16+(p<<4|3)|0))?(o[(C+19&-16)-4>>2]=C,x=C+19&-16):x=0,C=0|o[i+4>>2]):x=0,(0|C)>0){M=0;do{I=x+(M<<4)|0,A=(0|o[i+12>>2])+(M<<4)|0,o[I+0>>2]=o[A+0>>2],o[I+4>>2]=o[A+4>>2],o[I+8>>2]=o[A+8>>2],o[I+12>>2]=o[A+12>>2],M=M+1|0}while((0|M)!=(0|C))}0|(C=0|o[i+12>>2])&&(0|n[i+16|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[C+-4>>2])),o[i+12>>2]=0),n[i+16|0]=1,o[i+12>>2]=x,o[i+8>>2]=p,C=0|o[i+4>>2]}A=0|o[i+12>>2],r[A+(C<<4)>>1]=t,r[A+(C<<4)+2>>1]=c,r[A+(C<<4)+4>>1]=h,r[A+(C<<4)+6>>1]=l,r[A+(C<<4)+8>>1]=d,r[A+(C<<4)+10>>1]=v,o[A+(C<<4)+12>>2]=e<<21|f,o[i+4>>2]=1+(0|o[i+4>>2]),u=a},function(i,t,e,n){i|=0,t|=0,e|=0;var r,f=0,a=0,c=0,h=0,l=0,d=0,v=0,b=0,_=0,w=0,p=0,m=0,y=0,k=0,g=0,C=0,j=0;if(r=u,u=u+2048|0,(0|(n|=0))>0){a=0;do{s[e+(a<<4)+12>>2]=-0xde0b6b000000000,a=a+1|0}while((0|a)!=(0|n));c=0;do{if((0|an[127&o[96+(0|o[i>>2])>>2]](i))>0){v=t+(c<<4)|0,b=t+(c<<4)+4|0,a=t+(c<<4)+8|0,l=e+(c<<4)+12|0,h=e+(c<<4)|0,d=0;do{if(((0|an[127&o[96+(0|o[i>>2])>>2]](i))-d|0)<128?(0|(_=(0|an[127&o[96+(0|o[i>>2])>>2]](i))-d|0))>0?f=8:(g=-34028234663852886e22,p=-1):(_=128,f=8),8==(0|f)){f=0,p=0;do{Pn[63&o[108+(0|o[i>>2])>>2]](i,p,r+(p<<4)|0),p=p+1|0}while((0|p)!=(0|_));m=+s[v>>2],w=+s[b>>2],k=+s[a>>2],y=0,g=-34028234663852886e22,p=-1;do{p=(j=(C=m*+s[r+(y<<4)>>2]+w*+s[r+(y<<4)+4>>2]+k*+s[r+(y<<4)+8>>2])>g)?y:p,g=j?C:g,y=y+1|0}while((0|y)!=(0|_))}g>+s[l>>2]&&(j=r+(p<<4)|0,o[h+0>>2]=o[j+0>>2],o[h+4>>2]=o[j+4>>2],o[h+8>>2]=o[j+8>>2],o[h+12>>2]=o[j+12>>2],s[l>>2]=g),d=d+128|0}while((0|d)<(0|an[127&o[96+(0|o[i>>2])>>2]](i)))}c=c+1|0}while((0|c)!=(0|n));u=r}else u=r},function(i,t,e,n){var r;t|=0,e|=0,n|=0,r=u,Vn[63&o[80+(0|o[(i|=0)>>2])>>2]](i,t,e,n),u=r},function(i,t,e,n){i|=0,t|=0,e|=0;var r,f=0,a=0,c=0,h=0,l=0,d=0,v=0,b=0;if(r=u,(0|(n|=0))<=0)u=r;else{f=0;do{b=+s[t+(f<<4)>>2],v=+s[t+(f<<4)+4>>2],c=+s[t+(f<<4)+8>>2],l=b*+s[i+56>>2]+v*+s[i+60>>2]+c*+s[i+64>>2],h=b*+s[i+72>>2]+v*+s[i+76>>2]+c*+s[i+80>>2],c=b*+s[i+88>>2]+v*+s[i+92>>2]+c*+s[i+96>>2],d=i+((d=l<h?h<c?2:1:l<c?2:0)<<4)+56|0,o[(a=e+(f<<4)|0)+0>>2]=o[d+0>>2],o[a+4>>2]=o[d+4>>2],o[a+8>>2]=o[d+8>>2],o[a+12>>2]=o[d+12>>2],f=f+1|0}while((0|f)!=(0|n));u=r}},function(i,t,e,n){var r;t|=0,e|=0,n|=0,r=u,Pn[63&o[108+(0|o[(i|=0)>>2])>>2]](i,t,e),Pn[63&o[108+(0|o[i>>2])>>2]](i,(t+1|0)%3|0,n),u=r},function(i,t,e,n){var r;t|=0,e|=0,n|=0,r=u,Vn[63&o[124+(0|o[(i|=0)>>2])>>2]](i,n,t,e),u=r},function(i,t,e,n){t|=0,e|=0,n|=0;var r,f,a,c,h=0,l=0,d=0;t=u,h=+s[(i|=0)+56>>2],a=+s[i+72>>2]-h,l=+s[i+60>>2],f=+s[i+76>>2]-l,d=+s[i+64>>2],c=+s[i+80>>2]-d,h=+s[i+88>>2]-h,l=+s[i+92>>2]-l,d=+s[i+96>>2]-d,s[e+12>>2]=0,r=1/+_(+((a*l-f*h)*(a*l-f*h)+((f*d-c*l)*(f*d-c*l)+(c*h-a*d)*(c*h-a*d)))),s[e>>2]=r*(f*d-c*l),s[e+4>>2]=r*(c*h-a*d),s[e+8>>2]=(a*l-f*h)*r,o[n+0>>2]=o[i+56>>2],o[n+4>>2]=o[i+60>>2],o[n+8>>2]=o[i+64>>2],o[n+12>>2]=o[i+68>>2],u=t},function(i,t,e,n){t|=0,e|=0,n|=0;var r,f,a,c,h=0,l=0;r=u,f=+mn[15&o[48+(0|o[(i|=0)>>2])>>2]](i),l=+mn[15&o[48+(0|o[i>>2])>>2]](i),h=+mn[15&o[48+(0|o[i>>2])>>2]](i),c=+s[t+52>>2]-l,a=+s[t+56>>2]-h,s[e>>2]=+s[t+48>>2]-f,s[e+4>>2]=c,s[e+8>>2]=a,s[e+12>>2]=0,l+=+s[t+52>>2],h+=+s[t+56>>2],s[n>>2]=f+ +s[t+48>>2],s[n+4>>2]=l,s[n+8>>2]=h,s[n+12>>2]=0,u=r},function(i,t,e,n){i|=0,t|=0,e|=0;var r=0,f=0;if(i=u,(0|(n|=0))>0){t=0;do{f=e+(t<<4)|0,r=(0|(t=t+1|0))==(0|n),o[f+0>>2]=0,o[f+4>>2]=0,o[f+8>>2]=0,o[f+12>>2]=0}while(!r);u=i}else u=i},function(i,t,e,n){t|=0,e|=0,n|=0;var r,h,l,d,v=0,b=0,_=0,w=0,p=0,m=0,y=0,k=0;if(d=u,u=u+80|0,e=0|an[127&o[28+(0|o[(i|=0)>>2])>>2]](i),l=+s[i+4>>2],r=+s[i+8>>2],h=+s[i+12>>2],(0|e)<=0)u=d;else{n=0;do{jn[3&o[16+(0|o[i>>2])>>2]](i,d+76|0,d+52|0,d+64|0,d+56|0,d+72|0,d+68|0,d+48|0,d+60|0,n),v=0|o[d+64>>2];do{if(0|v){if(1==(0|v))if(5==(0|(v=0|o[d+60>>2]))){if(!((0|o[d+48>>2])>0))break;v=0;do{p=0|o[d+72>>2],m=0|g(0|o[d+68>>2],v),y=0|o[d+76>>2],k=0|o[d+56>>2],w=0|g(0|f[p+m|0],k),b=r*+c[y+(w+8)>>3],_=h*+c[y+(w+16)>>3],s[d>>2]=l*+c[y+w>>3],s[d+4>>2]=b,s[d+8>>2]=_,s[d+12>>2]=0,w=0|g(0|f[p+(m+1)|0],k),_=r*+c[y+(w+8)>>3],b=h*+c[y+(w+16)>>3],s[d+16>>2]=l*+c[y+w>>3],s[d+20>>2]=_,s[d+24>>2]=b,s[d+28>>2]=0,k=0|g(0|f[p+(m+2)|0],k),b=r*+c[y+(k+8)>>3],_=h*+c[y+(k+16)>>3],s[d+32>>2]=l*+c[y+k>>3],s[d+36>>2]=b,s[d+40>>2]=_,s[d+44>>2]=0,Vn[63&o[8+(0|o[t>>2])>>2]](t,d,n,v),v=v+1|0}while((0|v)<(0|o[d+48>>2]))}else if(3==(0|v)){if(!((0|o[d+48>>2])>0))break;v=0;do{p=0|o[d+72>>2],m=0|g(0|o[d+68>>2],v),y=0|o[d+76>>2],k=0|o[d+56>>2],w=0|g(0|a[p+m>>1],k),b=r*+c[y+(w+8)>>3],_=h*+c[y+(w+16)>>3],s[d>>2]=l*+c[y+w>>3],s[d+4>>2]=b,s[d+8>>2]=_,s[d+12>>2]=0,w=0|g(0|a[p+(m+2)>>1],k),_=r*+c[y+(w+8)>>3],b=h*+c[y+(w+16)>>3],s[d+16>>2]=l*+c[y+w>>3],s[d+20>>2]=_,s[d+24>>2]=b,s[d+28>>2]=0,k=0|g(0|a[p+(m+4)>>1],k),b=r*+c[y+(k+8)>>3],_=h*+c[y+(k+16)>>3],s[d+32>>2]=l*+c[y+k>>3],s[d+36>>2]=b,s[d+40>>2]=_,s[d+44>>2]=0,Vn[63&o[8+(0|o[t>>2])>>2]](t,d,n,v),v=v+1|0}while((0|v)<(0|o[d+48>>2]))}else{if(2!=(0|v))break;if(!((0|o[d+48>>2])>0))break;v=0;do{m=0|o[d+72>>2],k=0|g(0|o[d+68>>2],v),y=0|o[d+76>>2],p=0|o[d+56>>2],w=0|g(p,0|o[m+k>>2]),b=r*+c[y+(w+8)>>3],_=h*+c[y+(w+16)>>3],s[d>>2]=l*+c[y+w>>3],s[d+4>>2]=b,s[d+8>>2]=_,s[d+12>>2]=0,w=0|g(p,0|o[m+(k+4)>>2]),_=r*+c[y+(w+8)>>3],b=h*+c[y+(w+16)>>3],s[d+16>>2]=l*+c[y+w>>3],s[d+20>>2]=_,s[d+24>>2]=b,s[d+28>>2]=0,k=0|g(p,0|o[m+(k+8)>>2]),b=r*+c[y+(k+8)>>3],_=h*+c[y+(k+16)>>3],s[d+32>>2]=l*+c[y+k>>3],s[d+36>>2]=b,s[d+40>>2]=_,s[d+44>>2]=0,Vn[63&o[8+(0|o[t>>2])>>2]](t,d,n,v),v=v+1|0}while((0|v)<(0|o[d+48>>2]))}}else if(5==(0|(v=0|o[d+60>>2]))){if(!((0|o[d+48>>2])>0))break;v=0;do{y=0|o[d+72>>2],m=0|g(0|o[d+68>>2],v),p=0|o[d+76>>2],w=0|o[d+56>>2],k=0|g(0|f[y+m|0],w),_=r*+s[p+(k+4)>>2],b=h*+s[p+(k+8)>>2],s[d>>2]=l*+s[p+k>>2],s[d+4>>2]=_,s[d+8>>2]=b,s[d+12>>2]=0,k=0|g(0|f[y+(m+1)|0],w),b=r*+s[p+(k+4)>>2],_=h*+s[p+(k+8)>>2],s[d+16>>2]=l*+s[p+k>>2],s[d+20>>2]=b,s[d+24>>2]=_,s[d+28>>2]=0,w=0|g(0|f[y+(m+2)|0],w),_=r*+s[p+(w+4)>>2],b=h*+s[p+(w+8)>>2],s[d+32>>2]=l*+s[p+w>>2],s[d+36>>2]=_,s[d+40>>2]=b,s[d+44>>2]=0,Vn[63&o[8+(0|o[t>>2])>>2]](t,d,n,v),v=v+1|0}while((0|v)<(0|o[d+48>>2]))}else if(2==(0|v)){if(!((0|o[d+48>>2])>0))break;v=0;do{m=0|o[d+72>>2],k=0|g(0|o[d+68>>2],v),y=0|o[d+76>>2],p=0|o[d+56>>2],w=0|g(p,0|o[m+k>>2]),b=r*+s[y+(w+4)>>2],_=h*+s[y+(w+8)>>2],s[d>>2]=l*+s[y+w>>2],s[d+4>>2]=b,s[d+8>>2]=_,s[d+12>>2]=0,w=0|g(p,0|o[m+(k+4)>>2]),_=r*+s[y+(w+4)>>2],b=h*+s[y+(w+8)>>2],s[d+16>>2]=l*+s[y+w>>2],s[d+20>>2]=_,s[d+24>>2]=b,s[d+28>>2]=0,k=0|g(p,0|o[m+(k+8)>>2]),b=r*+s[y+(k+4)>>2],_=h*+s[y+(k+8)>>2],s[d+32>>2]=l*+s[y+k>>2],s[d+36>>2]=b,s[d+40>>2]=_,s[d+44>>2]=0,Vn[63&o[8+(0|o[t>>2])>>2]](t,d,n,v),v=v+1|0}while((0|v)<(0|o[d+48>>2]))}else{if(3!=(0|v))break;if(!((0|o[d+48>>2])>0))break;v=0;do{p=0|o[d+72>>2],m=0|g(0|o[d+68>>2],v),y=0|o[d+76>>2],k=0|o[d+56>>2],w=0|g(0|a[p+m>>1],k),b=r*+s[y+(w+4)>>2],_=h*+s[y+(w+8)>>2],s[d>>2]=l*+s[y+w>>2],s[d+4>>2]=b,s[d+8>>2]=_,s[d+12>>2]=0,w=0|g(0|a[p+(m+2)>>1],k),_=r*+s[y+(w+4)>>2],b=h*+s[y+(w+8)>>2],s[d+16>>2]=l*+s[y+w>>2],s[d+20>>2]=_,s[d+24>>2]=b,s[d+28>>2]=0,k=0|g(0|a[p+(m+4)>>1],k),b=r*+s[y+(k+4)>>2],_=h*+s[y+(k+8)>>2],s[d+32>>2]=l*+s[y+k>>2],s[d+36>>2]=b,s[d+40>>2]=_,s[d+44>>2]=0,Vn[63&o[8+(0|o[t>>2])>>2]](t,d,n,v),v=v+1|0}while((0|v)<(0|o[d+48>>2]))}}while(0);on[127&o[24+(0|o[i>>2])>>2]](i,n),n=n+1|0}while((0|n)!=(0|e));u=d}},function(i,t,e,n){var r;i|=0,t|=0,e|=0,n|=0,r=u,u=u+48|0,o[r>>2]=15792,o[r+4>>2]=t,o[r+8>>2]=o[e+0>>2],o[r+12>>2]=o[e+4>>2],o[r+16>>2]=o[e+8>>2],o[r+20>>2]=o[e+12>>2],o[r+24>>2]=o[n+0>>2],o[r+28>>2]=o[n+4>>2],o[r+32>>2]=o[n+8>>2],o[r+36>>2]=o[n+12>>2],t=0|o[i+48>>2],Vn[63&o[8+(0|o[t>>2])>>2]](t,r,e,n),u=r},function(i,t,e,n){t|=0,n|=0;var r,f,a=0,c=0,h=0;n=u,a=+s[(i|=0)+88>>2],f=+s[i+92>>2],r=+s[i+96>>2],(c=a*+s[t>>2]+f*+s[t+4>>2]+r*+s[t+8>>2])>(h=+s[i+84>>2])?(s[i+84>>2]=c,o[i+4>>2]=o[t+0>>2],o[i+8>>2]=o[t+4>>2],o[i+12>>2]=o[t+8>>2],o[i+16>>2]=o[t+12>>2]):c=h,(h=a*+s[t+16>>2]+f*+s[t+20>>2]+r*+s[t+24>>2])>c&&(s[i+84>>2]=h,o[i+4>>2]=o[t+16>>2],o[i+8>>2]=o[t+20>>2],o[i+12>>2]=o[t+24>>2],o[i+16>>2]=o[t+28>>2],c=h),(a=a*+s[t+32>>2]+f*+s[t+36>>2]+r*+s[t+40>>2])>c?(s[i+84>>2]=a,o[i+4>>2]=o[t+32>>2],o[i+8>>2]=o[t+36>>2],o[i+12>>2]=o[t+40>>2],o[i+16>>2]=o[t+44>>2],u=n):u=n},function(i,t,e,n){i|=0,e|=0,n|=0;var r,f=0,a=0,c=0,h=0,l=0;r=u,((h=(c=+s[(t|=0)>>2])<(a=+s[t+16>>2])?c:a)<(f=+s[t+32>>2])?h:f)>+s[i+24>>2]||+s[(+s[(l=c>a?t:t+16|0)>>2]>f?l:t+32)>>2]<+s[i+8>>2]||((h=(f=+s[t+8>>2])<(a=+s[t+24>>2])?f:a)<(c=+s[t+40>>2])?h:c)>+s[i+32>>2]||+s[(+s[(l=f>a?t+8|0:t+24|0)>>2]>c?l:t+40)>>2]<+s[i+16>>2]||((h=(f=+s[t+4>>2])<(a=+s[t+20>>2])?f:a)<(c=+s[t+36>>2])?h:c)>+s[i+28>>2]||+s[(+s[(l=f>a?t+4|0:t+20|0)>>2]>c?l:t+36)>>2]<+s[i+12>>2]||(l=0|o[i+4>>2],Vn[63&o[8+(0|o[l>>2])>>2]](l,t,e,n)),u=r},function(i,t,e,n){i|=0,e|=0,n|=0;var r,f,a=0,c=0,h=0,l=0,d=0,v=0,b=0;r=u,u=u+128|0,((v=(h=+s[(t|=0)>>2])<(a=+s[t+16>>2])?h:a)<(c=+s[t+32>>2])?v:c)>+s[i+28>>2]||+s[(+s[(d=h>a?t:t+16|0)>>2]>c?d:t+32)>>2]<+s[i+12>>2]||((v=(a=+s[t+8>>2])<(c=+s[t+24>>2])?a:c)<(h=+s[t+40>>2])?v:h)>+s[i+36>>2]||+s[(+s[(d=a>c?t+8|0:t+24|0)>>2]>h?d:t+40)>>2]<+s[i+20>>2]||((v=(h=+s[t+4>>2])<(a=+s[t+20>>2])?h:a)<(c=+s[t+36>>2])?v:c)>+s[i+32>>2]||+s[(+s[(d=h>a?t+4|0:t+20|0)>>2]>c?d:t+36)>>2]<+s[i+16>>2]?u=r:(f=0|o[i+48>>2],l=0|o[i+4>>2],(0|o[4+(0|o[l+4>>2])>>2])>=20?u=r:(o[r+32>>2]=0,s[r+36>>2]=1,s[r+40>>2]=1,s[r+44>>2]=1,s[r+48>>2]=0,o[r+76>>2]=0,o[r+24>>2]=14704,o[r+28>>2]=1,o[r+80>>2]=o[t+0>>2],o[r+84>>2]=o[t+4>>2],o[r+88>>2]=o[t+8>>2],o[r+92>>2]=o[t+12>>2],o[r+96>>2]=o[t+16>>2],o[r+100>>2]=o[t+20>>2],o[r+104>>2]=o[t+24>>2],o[r+108>>2]=o[t+28>>2],o[r+112>>2]=o[t+32>>2],o[r+116>>2]=o[t+36>>2],o[r+120>>2]=o[t+40>>2],o[r+124>>2]=o[t+44>>2],s[r+68>>2]=+s[i+56>>2],b=0|o[i+8>>2],d=0|o[b+8>>2],t=0|o[b+12>>2],o[r>>2]=b,o[r+4>>2]=r+24,o[r+8>>2]=d,o[r+12>>2]=t,o[r+16>>2]=e,o[r+20>>2]=n,t=0|hn[31&o[8+(0|o[f>>2])>>2]](f,l,r,0|o[i+64>>2]),l=0|o[i+44>>2],d=0|o[l+8>>2],(0|o[d+8>>2])==(0|o[8+(0|o[i+8>>2])>>2])?(o[l+8>>2]=r,b=0|o[i+44>>2],Pn[63&o[8+(0|o[b>>2])>>2]](b,e,n)):(d=0|o[l+12>>2],o[l+12>>2]=r,b=0|o[i+44>>2],Pn[63&o[12+(0|o[b>>2])>>2]](b,e,n)),tn[31&o[8+(0|o[t>>2])>>2]](t,0|o[i+4>>2],r,0|o[i+52>>2],0|o[i+44>>2]),e=0|o[i+44>>2],(0|o[8+(0|o[e+8>>2])>>2])==(0|o[8+(0|o[i+8>>2])>>2])?o[e+8>>2]=d:o[e+12>>2]=d,nn[255&o[o[t>>2]>>2]](t),on[127&o[60+(0|o[f>>2])>>2]](f,t),o[r+24>>2]=14224,0|(i=0|o[r+76>>2])?(nn[255&o[o[i>>2]>>2]](i),0|(i=0|o[r+76>>2])?(o[4548]=1+(0|o[4548]),ke(0|o[i+-4>>2]),u=r):u=r):u=r))},function(i,t,e,r){i|=0,t|=0,e|=0,r|=0;var f,a=0;e=u,u=u+784|0,s[e+712>>2]=1,o[e+716>>2]=0,o[e+720>>2]=0,o[e+724>>2]=0,o[e+728>>2]=0,s[e+732>>2]=1,o[e+736>>2]=0,o[e+740>>2]=0,o[e+744>>2]=0,o[e+748>>2]=0,s[e+752>>2]=1,o[(r=e+756|0)+0>>2]=0,o[r+4>>2]=0,o[r+8>>2]=0,o[r+12>>2]=0,o[r+16>>2]=0,o[e+536>>2]=8584,o[e+704>>2]=0,s[e+708>>2]=0,s[e+700>>2]=+s[i+200>>2],f=+s[i+196>>2],o[e+488>>2]=0,s[e+492>>2]=1,s[e+496>>2]=1,s[e+500>>2]=1,s[e+504>>2]=0,o[e+480>>2]=15008,o[e+484>>2]=8,s[e+508>>2]=f,s[e+524>>2]=f,o[e+384>>2]=0,s[e+388>>2]=1,s[e+392>>2]=1,s[e+396>>2]=1,s[e+400>>2]=0,s[e+420>>2]=.03999999910593033,o[e+428>>2]=0,o[e+376>>2]=14704,o[e+380>>2]=1,o[e+432>>2]=o[t+0>>2],o[e+436>>2]=o[t+4>>2],o[e+440>>2]=o[t+8>>2],o[e+444>>2]=o[t+12>>2],o[e+448>>2]=o[t+16>>2],o[e+452>>2]=o[t+20>>2],o[e+456>>2]=o[t+24>>2],o[e+460>>2]=o[t+28>>2],o[e+464>>2]=o[t+32>>2],o[e+468>>2]=o[t+36>>2],o[e+472>>2]=o[t+40>>2],o[e+476>>2]=o[t+44>>2],s[e+324>>2]=9999999747378752e-20,n[e+348|0]=0,o[e>>2]=15320,o[e+4>>2]=e+16,o[e+8>>2]=e+480,o[e+12>>2]=e+376,0|J(e,i+4|0,i+68|0,e+712|0,e+712|0,e+536|0)&&(a=+s[e+700>>2],+s[i+200>>2]>a)&&(s[i+200>>2]=a),o[e+376>>2]=14224,0|(i=0|o[e+428>>2])?(nn[255&o[o[i>>2]>>2]](i),0|(i=0|o[e+428>>2])?(o[4548]=1+(0|o[4548]),ke(0|o[i+-4>>2]),u=e):u=e):u=e},function(i,t,e,r){var f;if(i|=0,e|=0,r|=0,f=u,(0|o[(t|=0)+8>>2])==(0|i))return 0|(i=0|o[t+16>>2])?(0|i)!=(0|e)?(o[t+36>>2]=1+(0|o[t+36>>2]),o[t+24>>2]=2,n[t+54|0]=1,void(u=f)):void(2==(0|o[t+24>>2])?(o[t+24>>2]=r,u=f):u=f):(o[t+16>>2]=e,o[t+24>>2]=r,o[t+36>>2]=1,void(u=f));u=f},function(i,t,e,r){var f;return e|=0,r|=0,f=u,(0|(i|=0))!=(0|o[(t|=0)+8>>2])?(i=0|o[i+8>>2],Vn[63&o[28+(0|o[i>>2])>>2]](i,t,e,r),void(u=f)):0|(i=0|o[t+16>>2])?(0|i)!=(0|e)?(o[t+36>>2]=1+(0|o[t+36>>2]),o[t+24>>2]=2,n[t+54|0]=1,void(u=f)):void(2==(0|o[t+24>>2])?(o[t+24>>2]=r,u=f):u=f):(o[t+16>>2]=e,o[t+24>>2]=r,o[t+36>>2]=1,void(u=f))},function(i,t,e,r){e|=0,r|=0;var f,a,s=0,c=0,h=0,l=0;if(f=u,(0|(i|=0))==(0|o[(t|=0)+8>>2]))return 0|(i=0|o[t+16>>2])?(0|i)!=(0|e)?(o[t+36>>2]=1+(0|o[t+36>>2]),o[t+24>>2]=2,n[t+54|0]=1,void(u=f)):(2!=(0|o[t+24>>2])||(o[t+24>>2]=r),void(u=f)):(o[t+16>>2]=e,o[t+24>>2]=r,o[t+36>>2]=1,void(u=f));if(a=0|o[i+12>>2],c=1&(s=0|o[i+20>>2])?0|o[(0|o[e>>2])+(s>>8)>>2]:s>>8,h=0|o[i+16>>2],Vn[63&o[28+(0|o[h>>2])>>2]](h,t,e+c|0,2&s?r:2),(0|a)<=1)u=f;else{for(s=i+24|0;;){if(h=1&(c=0|o[s+4>>2])?0|o[(0|o[e>>2])+(c>>8)>>2]:c>>8,l=0|o[s>>2],Vn[63&o[28+(0|o[l>>2])>>2]](l,t,e+h|0,2&c?r:2),0|n[t+54|0]){e=16;break}if(!((s=s+8|0)>>>0<(i+(a<<3)+16|0)>>>0)){e=16;break}}16!=(0|e)||(u=f)}},Je,Je,Je,Je,Je,Je,Je,Je,Je,Je,Je];return{cn:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},un:function(i){return 0|(2==(0|(i=0|o[(i|=0)+216>>2]))?0:5!=(0|i))},hn:function(i,t,e,r){i|=0,t|=0,e|=0,r|=0;var f,a,c=0,h=0,l=0;return r=u,o[4546]=1+(0|o[4546]),0|(c=0|ye(343))?(o[(c+19&-16)-4>>2]=c,c=c+19&-16):c=0,n[c+20|0]=1,o[c+16>>2]=0,o[c+8>>2]=0,o[c+12>>2]=0,o[c+24>>2]=i,s[c+28>>2]=0,o[c+32>>2]=0,o[c+36>>2]=1,s[c+40>>2]=1,n[c+44|0]=1,o[c+48>>2]=0,n[c+52|0]=0,n[c+53|0]=1,n[c+54|0]=1,s[c+56>>2]=.03999999910593033,n[c+60|0]=0,s[c+64>>2]=0,o[c+68>>2]=t,o[c+72>>2]=0,n[c+76|0]=1,o[c+80>>2]=0,o[c+84>>2]=0,o[c+88>>2]=0,s[c+92>>2]=.6000000238418579,s[c+96>>2]=1,s[c+100>>2]=.30000001192092896,s[c+104>>2]=.01666666753590107,s[c+108>>2]=0,s[c+116>>2]=20,o[c+112>>2]=10,s[c+124>>2]=.20000000298023224,s[c+128>>2]=.800000011920929,s[c+132>>2]=0,s[c+120>>2]=1,o[c+136>>2]=1,s[c+140>>2]=-.03999999910593033,s[c+144>>2]=.10000000149011612,s[c+148>>2]=0,s[c+152>>2]=.8500000238418579,o[c+156>>2]=260,o[c+160>>2]=2,o[c+164>>2]=128,s[c+168>>2]=100,s[c+172>>2]=1.0000000150474662e30,o[c>>2]=1128,n[c+192|0]=1,o[c+188>>2]=0,o[c+180>>2]=0,o[c+184>>2]=0,o[(t=c+196|0)>>2]=0,o[(f=c+200|0)>>2]=e,n[c+224|0]=1,o[c+220>>2]=0,o[c+212>>2]=0,o[c+216>>2]=0,n[c+244|0]=1,o[c+240>>2]=0,o[c+232>>2]=0,o[c+236>>2]=0,s[c+248>>2]=0,s[c+252>>2]=-10,l=c+256|0,n[c+274|0]=0,n[c+275|0]=0,a=c+292|0,o[l+0>>2]=0,o[l+4>>2]=0,o[l+8>>2]=0,o[l+12>>2]=0,n[a|0]=1,o[c+288>>2]=0,o[c+280>>2]=0,o[c+284>>2]=0,o[c+296>>2]=0,n[c+300|0]=1,n[c+320|0]=1,o[c+316>>2]=0,o[c+308>>2]=0,o[c+312>>2]=0,0|e?n[c+273|0]=0:(o[4546]=1+(0|o[4546]),0|(e=0|ye(215))?(o[(e+19&-16)-4>>2]=e,e=e+19&-16):e=0,o[e>>2]=3328,n[e+20|0]=1,o[e+16>>2]=0,o[e+8>>2]=0,o[e+12>>2]=0,n[e+40|0]=1,o[e+36>>2]=0,o[e+28>>2]=0,o[e+32>>2]=0,n[e+60|0]=1,o[e+56>>2]=0,o[e+48>>2]=0,o[e+52>>2]=0,n[e+80|0]=1,o[e+76>>2]=0,o[e+68>>2]=0,o[e+72>>2]=0,n[e+100|0]=1,o[e+96>>2]=0,o[e+88>>2]=0,o[e+92>>2]=0,n[e+120|0]=1,o[e+116>>2]=0,o[e+108>>2]=0,o[e+112>>2]=0,n[e+140|0]=1,o[e+136>>2]=0,o[e+128>>2]=0,o[e+132>>2]=0,n[e+160|0]=1,o[e+156>>2]=0,o[e+148>>2]=0,o[e+152>>2]=0,n[e+180|0]=1,o[e+176>>2]=0,o[e+168>>2]=0,o[e+172>>2]=0,o[e+192>>2]=0,o[f>>2]=e,n[c+273|0]=1),o[4546]=1+(0|o[4546]),0|(e=0|ye(87))&&(o[(h=e+19&-16)+-4>>2]=e,e+19&-16)?(o[(e+19&-16)>>2]=14896,n[h+20|0]=1,o[h+16>>2]=0,o[h+8>>2]=0,o[h+12>>2]=0,n[h+40|0]=1,o[h+36>>2]=0,o[h+28>>2]=0,o[h+32>>2]=0,n[h+60|0]=1,o[h+56>>2]=0,o[h+48>>2]=0,o[h+52>>2]=0,n[h+64|0]=1,h=e+19&-16):h=0,o[c+204>>2]=h,n[c+272|0]=1,o[4546]=1+(0|o[4546]),0|(h=0|ye(107))?(o[(e=h+19&-16)+-4>>2]=h,h+19&-16?(l=0|o[f>>2],o[(h+19&-16)>>2]=2128,o[e+4>>2]=0,o[e+8>>2]=l,o[e+12>>2]=0,o[e+16>>2]=0,o[e+20>>2]=0,o[e+24>>2]=i,n[e+44|0]=1,o[e+40>>2]=0,o[e+32>>2]=0,o[e+36>>2]=0,n[e+64|0]=1,o[e+60>>2]=0,o[e+52>>2]=0,o[e+56>>2]=0,n[e+84|0]=1,o[e+80>>2]=0,o[e+72>>2]=0,o[e+76>>2]=0,l=h+19&-16,o[t>>2]=l,u=r,0|c):(l=0,o[t>>2]=l,u=r,0|c)):(l=0,o[t>>2]=l,u=r,0|c)},ln:function(i){return(i|=0)+68|0},dn:function(i,t){t=+t,s[(i|=0)>>2]=t},vn:function(i,t){t=+t,s[(i|=0)+8>>2]=t},bn:function(i){return+ +s[(i|=0)+8>>2]},_n:function(i){return+ +s[(i|=0)+216>>2]},wn:function(i){return+ +s[(i|=0)+96>>2]},pn:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},mn:function(i,t){var e;t|=0,e=u,on[127&o[8+(0|o[(i|=0)>>2])>>2]](i,t),u=e},yn:function(i,t){var e;return t=+t,e=u,i=0|Fn[1&o[52+(0|o[(i|=0)>>2])>>2]](i,t,1,.01666666753590107),u=e,0|i},kn:function(i,t,e,n){var r;return t=+t,e|=0,n=+n,r=u,i=0|Fn[1&o[52+(0|o[(i|=0)>>2])>>2]](i,t,e,n),u=r,0|i},gn:function(i,t,e){var n;return t=+t,e|=0,n=u,i=0|Fn[1&o[52+(0|o[(i|=0)>>2])>>2]](i,t,e,.01666666753590107),u=n,0|i},Cn:function(i,t){return t=+t,s[(i|=0)>>2]=+s[i>>2]*t,s[i+4>>2]=+s[i+4>>2]*t,s[i+8>>2]=+s[i+8>>2]*t,0|i},jn:function(i,t,e,n){var r;t|=0,e|=0,n|=0,r=u,Vn[63&o[32+(0|o[(i|=0)>>2])>>2]](i,t,e,n),u=r},Sn:function(i,t,e){var n;t|=0,e|=0,n=u,Bt(0|o[(i|=0)+116>>2],0|o[i+144>>2],t,e),u=n},xn:function(i){return+ +s[(i|=0)>>2]},Mn:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},En:function(i){return(i|=0)+4|0},Tn:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},Ln:function(i,t){var e;i|=0,e=u,!(t|=0)&&3&o[i+204>>2]||(((0|o[i+216>>2])-4|0)>>>0<2||(o[i+216>>2]=1),s[i+220>>2]=0),u=e},In:function(i){var t;t=u,3&o[(i|=0)+204>>2]||(((0|o[i+216>>2])-4|0)>>>0<2||(o[i+216>>2]=1),s[i+220>>2]=0),u=t},An:function(i){i|=0;var t,e=0,r=0,f=0,a=0;t=u,r=0|ye(5260);i:do{if(!(0|r)){for(;e=0|o[4700],o[4700]=e+0,0|e;)if(Nn[3&e](),0|(r=0|ye(5260)))break i;f=0|V(4),o[f>>2]=18640,B(0|f,18688,235)}}while(0);o[r>>2]=6032,o[r+4>>2]=2,n[r+24|0]=1,o[r+20>>2]=0,o[r+12>>2]=0,o[r+16>>2]=0,o[r+28>>2]=11992,o[(e=r+5256|0)>>2]=i,o[r+60>>2]=60,o[r+64>>2]=0|an[127&o[12+(0|o[i>>2])>>2]](i),o[r+68>>2]=0|an[127&o[8+(0|o[i>>2])>>2]](i),i=0;do{f=0;do{a=0|o[e>>2],o[r+(144*i|0)+(f<<2)+72>>2]=0|_n[31&o[16+(0|o[a>>2])>>2]](a,i,f),f=f+1|0}while((0|f)<36);i=i+1|0}while((0|i)<36);return u=t,0|r},Dn:function(i,t){t=+t,s[(i|=0)>>2]=t},On:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},Rn:function(i,t,e,n){i=+i,t=+t,e=+e,n=+n;var r,f=0;r=u,f=0|ye(16);i:do{if(!(0|f)){for(;f=0|o[4700],o[4700]=f+0,0|f;)if(Nn[3&f](),0|(f=0|ye(16)))break i;f=0|V(4),o[f>>2]=18640,B(0|f,18688,235)}}while(0);return s[f>>2]=i,s[f+4>>2]=t,s[f+8>>2]=e,s[f+12>>2]=n,u=r,0|f},Pn:function(i,t){var e;t|=0,e=u,o[(i|=0)+32>>2]=o[t+0>>2],o[i+36>>2]=o[t+4>>2],o[i+40>>2]=o[t+8>>2],o[i+44>>2]=o[t+12>>2],u=e},Nn:function(i,t){var e;t|=0,e=u,o[(i|=0)+16>>2]=o[t+0>>2],o[i+20>>2]=o[t+4>>2],o[i+24>>2]=o[t+8>>2],o[i+28>>2]=o[t+12>>2],u=e},Bn:function(i,t){t=+t,s[(i|=0)+8>>2]=t},Fn:function(i,t,e,n,r){t=+t,e=+e,n=+n,r=+r,s[(i|=0)>>2]=t,s[i+4>>2]=e,s[i+8>>2]=n,s[i+12>>2]=r},Vn:function(i){return(i|=0)+348|0},Un:function(i,t){t=+t,s[(i|=0)+4>>2]=t},Gn:function(i,t){t=+t,s[(i|=0)+108>>2]=t},Wn:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},zn:function(i){i|=0;var t,e,n,r,f=0,a=0,c=0,h=0,l=0,d=0,v=0,b=0,_=0,w=0;return t=u,o[4546]=1+(0|o[4546]),0|(f=0|ye(75))?(o[(f+19&-16)-4>>2]=f,f=f+19&-16):f=0,o[f+8>>2]=0,s[(r=f+12|0)>>2]=1,s[(e=f+16|0)>>2]=1,s[(n=f+20|0)>>2]=1,s[f+24>>2]=0,s[(a=f+44|0)>>2]=.03999999910593033,o[f+52>>2]=0,o[f>>2]=4672,o[f+4>>2]=0,h=+s[i>>2],l=+s[i+4>>2],c=+s[i+8>>2],(c=.10000000149011612*+s[i+((d=h<l?h<c?0:2:l<c?1:2)<<2)>>2])<.03999999910593033?(w=+mi(f),b=+mn[15&o[48+(0|o[f>>2])>>2]](f),l=+mn[15&o[48+(0|o[f>>2])>>2]](f),w+=+s[(_=f+28|0)>>2],b+=+s[(v=f+32|0)>>2],l+=+s[(d=f+36|0)>>2],s[a>>2]=c,c=+mn[15&o[48+(0|o[f>>2])>>2]](f),h=+mn[15&o[48+(0|o[f>>2])>>2]](f),l-=+mn[15&o[48+(0|o[f>>2])>>2]](f),s[_>>2]=w-c,s[v>>2]=b-h,s[d>>2]=l,s[f+40>>2]=0,a=0|o[f>>2]):a=4672,l=+mn[15&o[a+48>>2]](f),b=+mn[15&o[48+(0|o[f>>2])>>2]](f),w=+mn[15&o[48+(0|o[f>>2])>>2]](f),b=+s[i+4>>2]*+s[e>>2]-b,w=+s[i+8>>2]*+s[n>>2]-w,s[f+28>>2]=+s[i>>2]*+s[r>>2]-l,s[f+32>>2]=b,s[f+36>>2]=w,s[f+40>>2]=0,u=t,0|f},Xn:function(i){return 0|o[(i|=0)+744>>2]},$n:function(i,t){t|=0,o[(i|=0)+8>>2]=t},Hn:function(i,t){t=+t,s[(i|=0)+8>>2]=t},qn:function(i){return+ +s[(i|=0)+244>>2]},Kn:function(i,t,e,n,r){t=+t,e=+e,n=+n,r=+r,s[(i|=0)>>2]=t,s[i+4>>2]=e,s[i+8>>2]=n,s[i+12>>2]=r},Yn:function(i,t){var e;t|=0,e=u,on[127&o[24+(0|o[(i|=0)>>2])>>2]](i,t),u=e},Qn:function(i){var t,e,n=0;return e=+s[(i|=0)>>2],t=+s[i+4>>2],n=+s[i+8>>2],+(n=+_(+(e*e+t*t+n*n)))},Zn:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},Jn:function(i,t){t=+t,s[(i|=0)+228>>2]=t},ir:function(i,t){t=+t,s[(i|=0)+96>>2]=t},tr:function(i,t){t=+t,s[(i|=0)+12>>2]=t},er:function(i){return+ +s[(i|=0)+100>>2]},nr:function(i,t){i=+i,t=+t;var e,n=0;return e=u,o[4546]=1+(0|o[4546]),0|(n=0|ye(75))?(o[(n+19&-16)-4>>2]=n,n=n+19&-16):n=0,o[n+8>>2]=0,s[n+12>>2]=1,s[n+16>>2]=1,s[n+20>>2]=1,s[n+24>>2]=0,s[n+44>>2]=.03999999910593033,o[n+4>>2]=10,o[n>>2]=5624,o[n+52>>2]=0,s[n+28>>2]=.5*t,s[n+32>>2]=i,s[n+36>>2]=i,s[n+40>>2]=0,u=e,0|n},rr:function(i,t){var e,n,r,f;t|=0,e=u,o[(i|=0)+348>>2]=o[t+0>>2],o[i+352>>2]=o[t+4>>2],o[i+356>>2]=o[t+8>>2],o[i+360>>2]=o[t+12>>2],f=+s[i+344>>2],r=+s[i+352>>2]*f,n=+s[i+356>>2]*f,s[i+560>>2]=+s[i+348>>2]*f,s[i+564>>2]=r,s[i+568>>2]=n,s[i+572>>2]=0,u=e},ar:function(i,t,e){t=+t,e|=0,s[(0|o[(i|=0)+144>>2])+(284*e|0)+232>>2]=t},sr:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},cr:function(i,t,e){var n;t|=0,e|=0,n=u,Pn[63&o[56+(0|o[(i|=0)>>2])>>2]](i,t,e),u=n},ur:function(i,t){var e;t|=0,e=u,Pn[63&o[56+(0|o[(i|=0)>>2])>>2]](i,t,0),u=e},hr:function(i,t){t=+t,s[(i|=0)+116>>2]=t},Ne:ye,lr:function(i,t){i|=0,t|=0;var e,n,r=0,f=0;e=u,r=0|ye(64);i:do{if(!(0|r)){for(;r=0|o[4700],o[4700]=r+0,0|r;)if(Nn[3&r](),0|(r=0|ye(64)))break i;f=0|V(4),o[f>>2]=18640,B(0|f,18688,235)}}while(0);n=r+48|0,f=r;do{f=f+16|0}while((0|f)!=(0|n));return tt(r,i),o[n+0>>2]=o[t+0>>2],o[n+4>>2]=o[t+4>>2],o[n+8>>2]=o[t+8>>2],o[n+12>>2]=o[t+12>>2],u=e,0|r},dr:function(){var i,t=0,e=0,n=0;i=u,n=0|ye(64);i:do{if(!(0|n)){for(;t=0|o[4700],o[4700]=t+0,0|t;)if(Nn[3&t](),0|(n=0|ye(64)))break i;n=0|V(4),o[n>>2]=18640,B(0|n,18688,235)}}while(0);t=n+48|0,e=n;do{e=e+16|0}while((0|e)!=(0|t));return u=i,0|n},vr:function(i,t){t=+t,s[(i|=0)+220>>2]=t},br:function(i,t){var e;t|=0,e=u,((0|o[(i|=0)+216>>2])-4|0)>>>0<2||(o[i+216>>2]=t),u=e},_r:function(i){var t;t=u,0|(i|=0)?(o[4548]=1+(0|o[4548]),ke(0|o[i+-4>>2]),u=t):u=t},wr:function(i){return+ +s[(i|=0)+8>>2]},pr:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},mr:function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},yr:function(i,t,e){var n;t=+t,e|=0,n=u,ln[15&o[32+(0|o[(i|=0)>>2])>>2]](i,t,e),u=n},kr:function(i,t){var e;t|=0,e=u,o[(i|=0)+68>>2]=o[t+0>>2],o[i+72>>2]=o[t+4>>2],o[i+76>>2]=o[t+8>>2],o[i+80>>2]=o[t+12>>2],u=e},gr:function(i,t){return 2&o[(t|=0)+236>>2]||(t=0),0|t},Cr:function(i,t){t=+t,s[(i|=0)+4>>2]=t},jr:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},Sr:function(i,t,e){t|=0,e|=0;var n,r,o=0,f=0,a=0,c=0,u=0;o=+s[(i|=0)+348>>2],f=+s[i+352>>2],a=+s[t+4>>2]*f,c=+s[i+356>>2],u=+s[t+8>>2]*c,s[i+412>>2]=+s[i+412>>2]+ +s[t>>2]*o,s[i+416>>2]=+s[i+416>>2]+a,s[i+420>>2]=+s[i+420>>2]+u,o=+s[t>>2]*o,f=+s[t+4>>2]*f,c=+s[t+8>>2]*c,u=+s[e+4>>2],n=((a=+s[e+8>>2])*o-(r=+s[e>>2])*c)*+s[i+548>>2],o=(r*f-u*o)*+s[i+552>>2],s[i+428>>2]=+s[i+428>>2]+(u*c-a*f)*+s[i+544>>2],s[i+432>>2]=+s[i+432>>2]+n,s[i+436>>2]=+s[i+436>>2]+o},Mr:function(i,t,e){var n;t=+t,e|=0,n=u,ln[15&o[32+(0|o[(i|=0)>>2])>>2]](i,t,e),u=n},Er:function(i,t){t=+t,s[(i|=0)>>2]=t},Tr:function(i,t,e){var n;t=+t,e|=0,n=u,ln[15&o[32+(0|o[(i|=0)>>2])>>2]](i,t,e),u=n},Lr:function(i,t){var e;return t|=0,e=u,i=0|Sn[31&o[40+(0|o[(i|=0)>>2])>>2]](i,t),u=e,0|i},Ir:function(i,t,e,n){var r;t|=0,e|=0,n|=0,r=u,Vn[63&o[32+(0|o[(i|=0)>>2])>>2]](i,t,e,n),u=r},Ar:function(i,t){t=+t,o[(i|=0)+260>>2]=1+(0|o[i+260>>2]),s[i+224>>2]=t},Dr:function(i,t){var e;t|=0,e=u,on[127&o[92+(0|o[(i|=0)>>2])>>2]](i,t),u=e},Or:function(i,t){t=+t,s[(i|=0)>>2]=t},Rr:function(i,t,e){var n;t=+t,e|=0,n=u,ln[15&o[32+(0|o[(i|=0)>>2])>>2]](i,t,e),u=n},Pr:function(i,t){var e;t|=0,e=u,o[(i|=0)+48>>2]=o[t+0>>2],o[i+52>>2]=o[t+4>>2],o[i+56>>2]=o[t+8>>2],o[i+60>>2]=o[t+12>>2],u=e},Nr:function(i,t){t=+t,s[(i|=0)+8>>2]=t},Br:function(i){return+ +s[(i|=0)+4>>2]},Fr:function(i){return 0|(i|=0)},Vr:function(i){var t;return t=u,i=0|an[127&o[36+(0|o[(i|=0)>>2])>>2]](i),u=t,0|i},Ur:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},Gr:function(i){return+ +s[(i|=0)+12>>2]},Wr:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},zr:function(i,t,e){var n;t=+t,e|=0,n=u,ln[15&o[32+(0|o[(i|=0)>>2])>>2]](i,t,e),u=n},Xr:function(i,t){i=+i,t=+t;var e,n=0;return e=u,o[4546]=1+(0|o[4546]),0|(n=0|ye(95))?(o[(n+19&-16)-4>>2]=n,n=n+19&-16):n=0,o[n+8>>2]=0,s[n+12>>2]=1,s[n+16>>2]=1,s[n+20>>2]=1,s[n+24>>2]=0,s[n+44>>2]=.03999999910593033,o[n>>2]=8848,s[n+56>>2]=i,s[n+60>>2]=t,o[n+4>>2]=11,o[n+64>>2]=0,o[n+68>>2]=1,o[n+72>>2]=2,s[n+28>>2]=i,s[n+32>>2]=t,s[n+36>>2]=i,s[n+52>>2]=i/+_(+(i*i+t*t)),u=e,0|n},$r:function(i,t){t=+t,s[(i|=0)+136>>2]=t},Hr:function(i,t){var e;t|=0,e=u,o[(i|=0)+0>>2]=o[t+0>>2],o[i+4>>2]=o[t+4>>2],o[i+8>>2]=o[t+8>>2],o[i+12>>2]=o[t+12>>2],u=e},qr:function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},Kr:function(i,t){var e;e=u,tt(i|=0,t|=0),u=e},Yr:function(i,t,e){var n;n=u,Ut(i|=0,t=+t,e|=0),u=n},Qr:function(i,t){t=+t,s[(i|=0)+8>>2]=t},Zr:function(i,t){i|=0,t|=0;var e,n=0;return e=u,o[4546]=1+(0|o[4546]),0|(n=0|ye(135))?(o[(n+19&-16)-4>>2]=n,n=n+19&-16):n=0,li(n,i,t,16384,0,0),u=e,0|n},Jr:function(i,t,e){i|=0,t|=0,e|=0;var n,r=0;return n=u,o[4546]=1+(0|o[4546]),0|(r=0|ye(135))?(o[(r+19&-16)-4>>2]=r,r=r+19&-16):r=0,li(r,i,t,65535&e,0,0),u=n,0|r},io:function(i,t,e){var n;t=+t,e|=0,n=u,ln[15&o[32+(0|o[(i|=0)>>2])>>2]](i,t,e),u=n},eo:function(i,t){t=+t,s[(i|=0)+4>>2]=t},no:function(i,t,e,n){i|=0,t|=0,e|=0,n|=0;var r,f=0;return r=u,o[4546]=1+(0|o[4546]),0|(f=0|ye(135))?(o[(f+19&-16)-4>>2]=f,f=f+19&-16):f=0,li(f,i,t,65535&e,n,0),u=r,0|f},ro:function(i,t,e,n,r){i|=0,t|=0,e|=0,n|=0,r|=0;var f,a=0;return f=u,o[4546]=1+(0|o[4546]),0|(a=0|ye(135))?(o[(a+19&-16)-4>>2]=a,a=a+19&-16):a=0,li(a,i,t,65535&e,n,r),u=f,0|a},oo:function(i,t){t=+t,s[(i|=0)>>2]=t},fo:function(i){return+ +s[(i|=0)+128>>2]},ao:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},so:function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},co:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},uo:function(i){return 0|o[(i|=0)+740>>2]},ho:function(i,t){i=+i,t=+t;var e,n=0;return e=u,o[4546]=1+(0|o[4546]),0|(n=0|ye(95))?(o[(n+19&-16)-4>>2]=n,n=n+19&-16):n=0,o[n+8>>2]=0,s[n+12>>2]=1,s[n+16>>2]=1,s[n+20>>2]=1,s[n+24>>2]=0,s[n+44>>2]=.03999999910593033,s[n+56>>2]=i,s[n+60>>2]=t,o[n+4>>2]=11,s[n+52>>2]=i/+_(+(i*i+t*t)),o[n>>2]=9056,o[n+64>>2]=1,o[n+68>>2]=0,o[n+72>>2]=2,s[n+32>>2]=i,s[n+28>>2]=t,s[n+36>>2]=i,u=e,0|n},lo:function(i,t){var e;t|=0,e=u,on[127&o[24+(0|o[(i|=0)>>2])>>2]](i,t),u=e},do:function(i,t){i|=0,t|=0;var e,r,f,a,c=0;return e=u,o[4546]=1+(0|o[4546]),0|(c=0|ye(627))?(o[(c+19&-16)-4>>2]=c,c=c+19&-16):c=0,ui(c,5,i),o[c>>2]=1e3,o[(a=c+300|0)+0>>2]=o[t+0>>2],o[a+4>>2]=o[t+4>>2],o[a+8>>2]=o[t+8>>2],o[a+12>>2]=o[t+12>>2],o[(f=c+316|0)+0>>2]=o[t+16>>2],o[f+4>>2]=o[t+20>>2],o[f+8>>2]=o[t+24>>2],o[f+12>>2]=o[t+28>>2],o[(r=c+332|0)+0>>2]=o[t+32>>2],o[r+4>>2]=o[t+36>>2],o[r+8>>2]=o[t+40>>2],o[r+12>>2]=o[t+44>>2],o[(i=c+348|0)+0>>2]=o[t+48>>2],o[i+4>>2]=o[t+52>>2],o[i+8>>2]=o[t+56>>2],o[i+12>>2]=o[t+60>>2],i=c+364|0,t=c+524|0,n[c+527|0]=0,o[i+0>>2]=o[a+0>>2],o[i+4>>2]=o[a+4>>2],o[i+8>>2]=o[a+8>>2],o[i+12>>2]=o[a+12>>2],o[(i=c+380|0)+0>>2]=o[f+0>>2],o[i+4>>2]=o[f+4>>2],o[i+8>>2]=o[f+8>>2],o[i+12>>2]=o[f+12>>2],o[(i=c+396|0)+0>>2]=o[r+0>>2],o[i+4>>2]=o[r+4>>2],o[i+8>>2]=o[r+8>>2],o[i+12>>2]=o[r+12>>2],i=c+412|0,n[t|0]=0,n[c+525|0]=0,n[c+526|0]=0,n[c+552|0]=0,t=c+572|0,o[i+0>>2]=0,o[i+4>>2]=0,o[i+8>>2]=0,o[i+12>>2]=0,s[t>>2]=-1,s[c+444>>2]=0xde0b6b000000000,s[c+448>>2]=0xde0b6b000000000,s[c+452>>2]=0xde0b6b000000000,s[c+428>>2]=1,s[c+432>>2]=.30000001192092896,s[c+436>>2]=1,s[c+440>>2]=.009999999776482582,s[c+456>>2]=.05000000074505806,o[c+592>>2]=0,s[c+596>>2]=0,s[c+600>>2]=.699999988079071,s[c+604>>2]=0,u=e,0|c},vo:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},bo:function(i,t,e,r){i|=0,t|=0,e|=0,r|=0;var f,a=0;return f=u,o[4546]=1+(0|o[4546]),0|(a=0|ye(627))?(o[(a+19&-16)-4>>2]=a,a=a+19&-16):a=0,o[a+4>>2]=5,o[a+8>>2]=-1,o[a+12>>2]=-1,s[a+16>>2]=34028234663852886e22,n[a+20|0]=1,n[a+21|0]=0,o[a+24>>2]=-1,o[a+28>>2]=i,o[a+32>>2]=t,s[a+36>>2]=0,s[a+40>>2]=.30000001192092896,o[a+44>>2]=0,o[a>>2]=1e3,o[(t=a+300|0)+0>>2]=o[e+0>>2],o[t+4>>2]=o[e+4>>2],o[t+8>>2]=o[e+8>>2],o[t+12>>2]=o[e+12>>2],o[(t=a+316|0)+0>>2]=o[e+16>>2],o[t+4>>2]=o[e+20>>2],o[t+8>>2]=o[e+24>>2],o[t+12>>2]=o[e+28>>2],o[(t=a+332|0)+0>>2]=o[e+32>>2],o[t+4>>2]=o[e+36>>2],o[t+8>>2]=o[e+40>>2],o[t+12>>2]=o[e+44>>2],o[(t=a+348|0)+0>>2]=o[e+48>>2],o[t+4>>2]=o[e+52>>2],o[t+8>>2]=o[e+56>>2],o[t+12>>2]=o[e+60>>2],o[(e=a+364|0)+0>>2]=o[r+0>>2],o[e+4>>2]=o[r+4>>2],o[e+8>>2]=o[r+8>>2],o[e+12>>2]=o[r+12>>2],o[(e=a+380|0)+0>>2]=o[r+16>>2],o[e+4>>2]=o[r+20>>2],o[e+8>>2]=o[r+24>>2],o[e+12>>2]=o[r+28>>2],o[(e=a+396|0)+0>>2]=o[r+32>>2],o[e+4>>2]=o[r+36>>2],o[e+8>>2]=o[r+40>>2],o[e+12>>2]=o[r+44>>2],o[(e=a+412|0)+0>>2]=o[r+48>>2],o[e+4>>2]=o[r+52>>2],o[e+8>>2]=o[r+56>>2],o[e+12>>2]=o[r+60>>2],r=a+524|0,n[a+552|0]=0,n[r|0]=0,n[r+1|0]=0,n[r+2|0]=0,n[r+3|0]=0,s[a+572>>2]=-1,s[a+444>>2]=0xde0b6b000000000,s[a+448>>2]=0xde0b6b000000000,s[a+452>>2]=0xde0b6b000000000,s[a+428>>2]=1,s[a+432>>2]=.30000001192092896,s[a+436>>2]=1,s[a+440>>2]=.009999999776482582,s[a+456>>2]=.05000000074505806,o[a+592>>2]=0,s[a+596>>2]=0,s[a+600>>2]=.699999988079071,s[a+604>>2]=0,u=f,0|a},_o:function(i){return+ +s[(i|=0)>>2]},wo:function(i,t){var e;t|=0,e=u,on[127&o[24+(0|o[(i|=0)>>2])>>2]](i,t),u=e},po:function(i,t){var e;t|=0,e=u,on[127&o[24+(0|o[(i|=0)>>2])>>2]](i,t),u=e},mo:function(i){return+ +s[(i|=0)+8>>2]},yo:function(i,t){i|=0,t|=0;var e,n=0;return e=u,o[4546]=1+(0|o[4546]),0|(n=0|ye(219))?(o[(n+19&-16)-4>>2]=n,n=n+19&-16):n=0,Yi(n,i,t),u=e,0|n},ko:function(){var i,t=0;return i=u,o[4546]=1+(0|o[4546]),0|(t=0|ye(219))?(o[(t+19&-16)-4>>2]=t,t=t+19&-16):t=0,Qi(),Qi(),Yi(t,352,352),u=i,0|t},Co:function(i){i|=0;var t,e=0;return t=u,o[4546]=1+(0|o[4546]),0|(e=0|ye(219))?(o[(e+19&-16)-4>>2]=e,e=e+19&-16):e=0,Qi(),Yi(e,i,352),u=t,0|e},jo:function(i){return 0|(2==(0|(i=0|o[(i|=0)+216>>2]))?0:5!=(0|i))},So:function(i,t,e){i|=0,t|=0,e|=0;var r=0;i=u,r=0|ye(152);i:do{if(!(0|r)){for(;r=0|o[4700],o[4700]=r+0,0|r;)if(Nn[3&r](),0|(r=0|ye(152)))break i;r=0|V(4),o[r>>2]=18640,B(0|r,18688,235)}}while(0);return o[r>>2]=3024,n[r+20|0]=1,o[r+16>>2]=0,o[r+8>>2]=0,o[r+12>>2]=0,n[r+40|0]=1,o[r+36>>2]=0,o[r+28>>2]=0,o[r+32>>2]=0,n[r+60|0]=1,o[r+56>>2]=0,o[r+48>>2]=0,o[r+52>>2]=0,n[r+80|0]=1,o[r+76>>2]=0,o[r+68>>2]=0,o[r+72>>2]=0,o[r+100>>2]=e,s[r+104>>2]=0,n[r+148|0]=1,o[r+144>>2]=0,o[r+136>>2]=0,o[r+140>>2]=0,o[r+116>>2]=t,o[r+120>>2]=0,o[r+124>>2]=2,o[r+128>>2]=1,s[r+112>>2]=0,s[r+108>>2]=0,u=i,0|r},xo:function(i,t){var e;t|=0,e=u,on[127&o[12+(0|o[(i|=0)>>2])>>2]](i,t),u=e},Mo:function(i,t){var e;t|=0,e=u,on[127&o[24+(0|o[(i|=0)>>2])>>2]](i,t),u=e},Eo:function(i,t,e){var n;t=+t,e|=0,n=u,ln[15&o[32+(0|o[(i|=0)>>2])>>2]](i,t,e),u=n},To:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},Lo:function(i){return 0|o[(i|=0)+204>>2]},Io:function(i,t,e,n){var r;t|=0,e|=0,n|=0,r=u,Vn[63&o[24+(0|o[(i|=0)>>2])>>2]](i,t,e,n),u=r},Ao:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},Do:function(i,t){t=+t,s[(i|=0)+124>>2]=t},Oo:function(i,t){t=+t,s[(i|=0)+184>>2]=t},Ro:function(i){return 0|o[(i|=0)+748>>2]},Po:function(i){return+ +s[(i|=0)+136>>2]},No:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},Bo:function(i,t){t=+t,s[(i|=0)+128>>2]=t},Fo:function(i){return 0|o[(i|=0)+204>>2]},Vo:function(i,t){var e;t|=0,e=u,on[127&o[24+(0|o[(i|=0)>>2])>>2]](i,t),u=e},Uo:function(i,t){var e,n;i|=0,n=+s[(t|=0)+4>>2]*+s[i+548>>2],e=+s[t+8>>2]*+s[i+552>>2],s[i+428>>2]=+s[i+428>>2]+ +s[t>>2]*+s[i+544>>2],s[i+432>>2]=+s[i+432>>2]+n,s[i+436>>2]=+s[i+436>>2]+e},Go:function(i,t,e,n){var r,o,f;i|=0,e=+e,n=+n,r=+p(+(t=+t)),o=+p(+e),f=+p(+n),t=+m(+t),e=+m(+e),n=+m(+n),s[i>>2]=o*f,s[i+4>>2]=e*t*f-r*n,s[i+8>>2]=e*r*f+t*n,s[i+12>>2]=0,s[i+16>>2]=o*n,s[i+20>>2]=e*t*n+r*f,s[i+24>>2]=e*r*n-t*f,s[i+28>>2]=0,s[i+32>>2]=-e,s[i+36>>2]=o*t,s[i+40>>2]=o*r,s[i+44>>2]=0},Wo:function(i){return 0|o[(i|=0)+24>>2]},Me:ge,zo:function(i,t){return t|=0,(0|o[(i|=0)+144>>2])+(284*t|0)+92|0},Xo:function(i,t,e){e=+e,t=(t=+t)<0?0:t>1?1:t,s[(i|=0)+444>>2]=t,e=e<0?0:e>1?1:e,s[i+448>>2]=e},$o:function(i){i|=0;var t,e=0,r=0,f=0;return t=u,o[4546]=1+(0|o[4546]),0|(e=0|ye(635))?(o[(e+19&-16)-4>>2]=e,e=e+19&-16):e=0,s[e+164>>2]=1,s[e+168>>2]=1,s[e+172>>2]=1,s[e+176>>2]=0,o[e+180>>2]=0,s[e+184>>2]=0xde0b6b000000000,f=e+204|0,o[(r=e+188|0)+0>>2]=0,o[r+4>>2]=0,o[r+8>>2]=0,o[r+12>>2]=0,o[f>>2]=1,o[e+208>>2]=-1,o[e+212>>2]=-1,o[e+216>>2]=1,s[e+220>>2]=0,s[e+224>>2]=.5,s[e+228>>2]=0,s[e+232>>2]=0,o[e+236>>2]=1,o[e+240>>2]=0,s[e+244>>2]=1,r=e+4|0,o[(f=e+248|0)+0>>2]=0,o[f+4>>2]=0,o[f+8>>2]=0,o[f+12>>2]=0,s[r>>2]=1,f=e+24|0,o[(r=e+8|0)+0>>2]=0,o[r+4>>2]=0,o[r+8>>2]=0,o[r+12>>2]=0,s[f>>2]=1,r=e+44|0,o[(f=e+28|0)+0>>2]=0,o[f+4>>2]=0,o[f+8>>2]=0,o[f+12>>2]=0,s[r>>2]=1,o[(r=e+48|0)+0>>2]=0,o[r+4>>2]=0,o[r+8>>2]=0,o[r+12>>2]=0,o[r+16>>2]=0,o[e>>2]=3216,n[e+500|0]=1,o[e+496>>2]=0,o[e+488>>2]=0,o[e+492>>2]=0,Ft(e,i),u=t,0|e},Ho:function(i,t){var e;t|=0,e=u,on[127&o[24+(0|o[(i|=0)>>2])>>2]](i,t),u=e},qo:function(){var i,t=0;i=u,t=0|ye(196);i:do{if(!(0|t)){for(;t=0|o[4700],o[4700]=t+0,0|t;)if(Nn[3&t](),0|(t=0|ye(196)))break i;t=0|V(4),o[t>>2]=18640,B(0|t,18688,235)}}while(0);return Li(t,0),u=i,0|t},Ko:function(i){return 0|!!(1&n[(i|=0)+120|0])},Yo:function(i,t){var e;t|=0,e=u,on[127&o[24+(0|o[(i|=0)>>2])>>2]](i,t),u=e},Qo:function(i){return(i|=0)+32|0},Zo:function(i,t){t=+t,s[(i|=0)+4>>2]=t},Jo:function(i,t){t=+t,s[(i|=0)+184>>2]=t},if:function(i){return(i|=0)+312|0},tf:function(i,t,e){var n;n=u,Zi(i|=0,t|=0,e|=0),u=n},ef:function(i,t,e){var n;t=+t,e|=0,n=u,ln[15&o[32+(0|o[(i|=0)>>2])>>2]](i,t,e),u=n},nf:function(i,t){var e;t|=0,e=u,o[(i|=0)+260>>2]=1+(0|o[i+260>>2]),o[i+328>>2]=o[t+0>>2],o[i+332>>2]=o[t+4>>2],o[i+336>>2]=o[t+8>>2],o[i+340>>2]=o[t+12>>2],u=e},rf:function(i,t){var e;e=u,Gt(i|=0,t|=0),u=e},ff:ke,af:function(i){return 0|!!(0|o[(i|=0)+8>>2])},sf:function(i){return+ +s[(i|=0)+132>>2]},cf:function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},uf:function(i){return+ +s[(i|=0)+228>>2]},hf:function(i,t){var e;t|=0,e=u,on[127&o[24+(0|o[(i|=0)>>2])>>2]](i,t),u=e},lf:function(i){return 0|o[(i|=0)+136>>2]},df:function(i){i|=0;var t,e=0;return t=u,o[4546]=1+(0|o[4546]),0|(e=0|ye(75))?(o[(e+19&-16)-4>>2]=e,e=e+19&-16):e=0,ji(e,i),o[e>>2]=9800,o[e+52>>2]=2,u=t,0|e},vf:function(i){return(i|=0)+328|0},bf:function(){var i,t=0;return i=u,o[4546]=1+(0|o[4546]),0|(t=0|ye(111))?(o[(t+19&-16)-4>>2]=t,qi(t=t+19&-16,1),u=i,0|t):(qi(t=0,1),u=i,0|t)},_f:function(i){i|=0;var t,e=0;return t=u,o[4546]=1+(0|o[4546]),0|(e=0|ye(111))?(o[(e+19&-16)-4>>2]=e,qi(e=e+19&-16,i),u=t,0|e):(qi(e=0,i),u=t,0|e)},wf:function(i){return 0|o[(i|=0)+24>>2]},pf:function(i){var t,e,n,r,o,f,a,c,u,h,l,d;d=+s[(i|=0)+4>>2],f=+s[i+396>>2],l=+s[i+8>>2],r=+s[i+400>>2],h=+s[i+12>>2],e=+s[i+404>>2],u=+s[i+20>>2],c=+s[i+24>>2],a=+s[i+28>>2],o=+s[i+36>>2],n=+s[i+40>>2],t=+s[i+44>>2],s[i+264>>2]=d*d*f+l*l*r+h*h*e,s[i+268>>2]=d*f*u+l*r*c+h*e*a,s[i+272>>2]=d*f*o+l*r*n+h*e*t,s[i+276>>2]=0,s[i+280>>2]=d*f*u+l*r*c+h*e*a,s[i+284>>2]=u*f*u+c*r*c+a*e*a,s[i+288>>2]=f*u*o+r*c*n+e*a*t,s[i+292>>2]=0,s[i+296>>2]=d*f*o+l*r*n+h*e*t,s[i+300>>2]=u*f*o+c*r*n+a*e*t,s[i+304>>2]=o*f*o+n*r*n+t*e*t,s[i+308>>2]=0},mf:function(i){return(i|=0)+4|0},yf:function(i){return 0|!!(0|o[(i|=0)+8>>2])},kf:function(i,t,e){t|=0,e|=0;var r,f,a,c=0,h=0,l=0,d=0,v=0,b=0,_=0,w=0,p=0;if(a=u,u=u+128|0,o[(i|=0)+68>>2]=1+(0|o[i+68>>2]),o[a+0>>2]=o[t+0>>2],o[a+4>>2]=o[t+4>>2],o[a+8>>2]=o[t+8>>2],o[a+12>>2]=o[t+12>>2],o[a+16>>2]=o[t+16>>2],o[a+20>>2]=o[t+20>>2],o[a+24>>2]=o[t+24>>2],o[a+28>>2]=o[t+28>>2],o[a+32>>2]=o[t+32>>2],o[a+36>>2]=o[t+36>>2],o[a+40>>2]=o[t+40>>2],o[a+44>>2]=o[t+44>>2],o[a+48>>2]=o[t+48>>2],o[a+52>>2]=o[t+52>>2],o[a+56>>2]=o[t+56>>2],o[a+60>>2]=o[t+60>>2],r=0|o[e+4>>2],f=+mn[15&o[48+(0|o[e>>2])>>2]](e),Vn[63&o[8+(0|o[e>>2])>>2]](e,t,a+112|0,a+96|0),b=+s[a+112>>2],+s[i+32>>2]>b&&(s[i+32>>2]=b),b=+s[a+96>>2],+s[i+48>>2]<b&&(s[i+48>>2]=b),b=+s[a+116>>2],+s[i+36>>2]>b&&(s[i+36>>2]=b),b=+s[a+100>>2],+s[i+52>>2]<b&&(s[i+52>>2]=b),b=+s[a+120>>2],+s[i+40>>2]>b&&(s[i+40>>2]=b),b=+s[a+104>>2],+s[i+56>>2]<b&&(s[i+56>>2]=b),0|(t=0|o[i+64>>2])){if(o[a+64>>2]=o[a+112>>2],o[a+68>>2]=o[a+116>>2],o[a+72>>2]=o[a+120>>2],o[a+76>>2]=o[a+124>>2],o[a+80>>2]=o[a+96>>2],o[a+84>>2]=o[a+100>>2],o[a+88>>2]=o[a+104>>2],o[a+92>>2]=o[a+108>>2],l=0|o[i+16>>2],0|(h=0|o[t+4>>2]))o[t+4>>2]=0;else if(o[4546]=1+(0|o[4546]),0|(h=0|ye(63))&&(o[(h+19&-16)-4>>2]=h,h+19&-16)){v=(d=0+(h+19&-16)|0)+44|0;do{o[d>>2]=0,d=d+4|0}while((0|d)<(0|v));h=h+19&-16}else h=0;o[h+32>>2]=0,o[h+36>>2]=l,o[h+40>>2]=0,o[h+0>>2]=o[a+64>>2],o[h+4>>2]=o[a+68>>2],o[h+8>>2]=o[a+72>>2],o[h+12>>2]=o[a+76>>2],o[h+16>>2]=o[a+80>>2],o[h+20>>2]=o[a+84>>2],o[h+24>>2]=o[a+88>>2],o[h+28>>2]=o[a+92>>2],Ei(t,0|o[t>>2],h),o[t+12>>2]=1+(0|o[t+12>>2]),t=i+16|0}else h=0,t=i+16|0;if((0|(l=0|o[t>>2]))==(0|o[i+20>>2])&&(0|l)<(0|(c=0|l?l<<1:1))){if(0|c?(o[4546]=1+(0|o[4546]),0|(l=0|ye(16+(80*c|3)|0))?(o[(l+19&-16)-4>>2]=l,d=l+19&-16):d=0,l=0|o[t>>2]):d=0,(0|l)>0){v=0;do{_=d+(80*v|0)|0,p=(w=0|o[i+24>>2])+(80*v|0)|0,o[_+0>>2]=o[p+0>>2],o[_+4>>2]=o[p+4>>2],o[_+8>>2]=o[p+8>>2],o[_+12>>2]=o[p+12>>2],p=w+(80*v|0)+16|0,o[(_=d+(80*v|0)+16|0)+0>>2]=o[p+0>>2],o[_+4>>2]=o[p+4>>2],o[_+8>>2]=o[p+8>>2],o[_+12>>2]=o[p+12>>2],p=w+(80*v|0)+32|0,o[(_=d+(80*v|0)+32|0)+0>>2]=o[p+0>>2],o[_+4>>2]=o[p+4>>2],o[_+8>>2]=o[p+8>>2],o[_+12>>2]=o[p+12>>2],p=w+(80*v|0)+48|0,o[(_=d+(80*v|0)+48|0)+0>>2]=o[p+0>>2],o[_+4>>2]=o[p+4>>2],o[_+8>>2]=o[p+8>>2],o[_+12>>2]=o[p+12>>2],w=w+(80*v|0)+64|0,o[(_=d+(80*v|0)+64|0)+0>>2]=o[w+0>>2],o[_+4>>2]=o[w+4>>2],o[_+8>>2]=o[w+8>>2],o[_+12>>2]=o[w+12>>2],v=v+1|0}while((0|v)!=(0|l))}0|(l=0|o[i+24>>2])&&(0|n[i+28|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[l+-4>>2])),o[i+24>>2]=0),n[i+28|0]=1,o[i+24>>2]=d,o[i+20>>2]=c,l=0|o[t>>2]}p=0|o[i+24>>2],o[(w=p+(80*l|0)|0)+0>>2]=o[a+0>>2],o[w+4>>2]=o[a+4>>2],o[w+8>>2]=o[a+8>>2],o[w+12>>2]=o[a+12>>2],o[(w=p+(80*l|0)+16|0)+0>>2]=o[a+16>>2],o[w+4>>2]=o[a+20>>2],o[w+8>>2]=o[a+24>>2],o[w+12>>2]=o[a+28>>2],o[(w=p+(80*l|0)+32|0)+0>>2]=o[a+32>>2],o[w+4>>2]=o[a+36>>2],o[w+8>>2]=o[a+40>>2],o[w+12>>2]=o[a+44>>2],o[(w=p+(80*l|0)+48|0)+0>>2]=o[a+48>>2],o[w+4>>2]=o[a+52>>2],o[w+8>>2]=o[a+56>>2],o[w+12>>2]=o[a+60>>2],o[(p=p+(80*l|0)+64|0)>>2]=e,o[p+4>>2]=r,s[p+8>>2]=f,o[p+12>>2]=h,o[t>>2]=1+(0|o[t>>2]),u=a},gf:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},Cf:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},Pe:xe,jf:function(i,t){var e;t|=0,e=u,on[127&o[24+(0|o[(i|=0)>>2])>>2]](i,t),u=e},Sf:function(i,t){t=+t,o[(i|=0)+260>>2]=1+(0|o[i+260>>2]),s[i+228>>2]=t},xf:function(i){return+ +s[(i|=0)+220>>2]},Te:function(i){var t=0;for(t=i|=0;0|n[t|0];)t=t+1|0;return t-i|0},Mf:function(i){return+ +s[(i|=0)+12>>2]},Ef:function(i){var t;return i|=0,t=u,u=u+16|0,!(0|n[48])&&0|j(48)&&x(48),it(i,t),o[8]=o[t+0>>2],o[9]=o[t+4>>2],o[10]=o[t+8>>2],o[11]=o[t+12>>2],u=t,32},Tf:function(i,t){t=+t,s[(i|=0)+132>>2]=t},Lf:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},If:function(i){i|=0;var t,e=0;return t=u,o[4546]=1+(0|o[4546]),0|(e=0|ye(75))?(o[(e+19&-16)-4>>2]=e,e=e+19&-16):e=0,ji(e,i),o[e>>2]=9696,o[e+52>>2]=0,u=t,0|e},Af:function(i,t,e,n){var r;t|=0,e|=0,n|=0,r=u,Vn[63&o[88+(0|o[(i|=0)>>2])>>2]](i,t,e,n),u=r},Df:function(i,t){var e;t|=0,e=u,on[127&o[84+(0|o[(i|=0)>>2])>>2]](i,t),u=e},Of:function(i){var t,e,n=0;return e=+s[(i|=0)>>2],t=+s[i+4>>2],n=+s[i+8>>2],+(n=+_(+(e*e+t*t+n*n)))},Rf:function(i){i=+i;var t,e=0;return t=u,o[4546]=1+(0|o[4546]),0|(e=0|ye(71))?(o[(e+19&-16)-4>>2]=e,e=e+19&-16):e=0,o[e+8>>2]=0,s[e+12>>2]=1,s[e+16>>2]=1,s[e+20>>2]=1,s[e+24>>2]=0,o[e>>2]=15008,o[e+4>>2]=8,s[e+28>>2]=i,s[e+44>>2]=i,u=t,0|e},Pf:function(i){return+ +s[(i|=0)+4>>2]},Nf:function(i,t){t=+t,o[(i|=0)+260>>2]=1+(0|o[i+260>>2]),s[i+228>>2]=t},Bf:function(i){i|=0;var t,e=0;t=u,e=0|ye(8);i:do{if(!(0|e)){for(;e=0|o[4700],o[4700]=e+0,0|e;)if(Nn[3&e](),0|(e=0|ye(8)))break i;e=0|V(4),o[e>>2]=18640,B(0|e,18688,235)}}while(0);return o[e>>2]=3136,o[e+4>>2]=i,u=t,0|e},Ff:function(i,t,e,n,r,f,a,s){var c,h;return t|=0,e|=0,n|=0,r|=0,f|=0,a|=0,s|=0,h=u,c=+dn[1&o[12+(0|o[(i|=0)>>2])>>2]](i,t,e,n,r,f,a,s),u=h,+c},Vf:function(){var i,t=0;return i=u,o[4546]=1+(0|o[4546]),0|(t=0|ye(215))?(o[(t+19&-16)-4>>2]=t,t=t+19&-16):t=0,o[t>>2]=3328,n[t+20|0]=1,o[t+16>>2]=0,o[t+8>>2]=0,o[t+12>>2]=0,n[t+40|0]=1,o[t+36>>2]=0,o[t+28>>2]=0,o[t+32>>2]=0,n[t+60|0]=1,o[t+56>>2]=0,o[t+48>>2]=0,o[t+52>>2]=0,n[t+80|0]=1,o[t+76>>2]=0,o[t+68>>2]=0,o[t+72>>2]=0,n[t+100|0]=1,o[t+96>>2]=0,o[t+88>>2]=0,o[t+92>>2]=0,n[t+120|0]=1,o[t+116>>2]=0,o[t+108>>2]=0,o[t+112>>2]=0,n[t+140|0]=1,o[t+136>>2]=0,o[t+128>>2]=0,o[t+132>>2]=0,n[t+160|0]=1,o[t+156>>2]=0,o[t+148>>2]=0,o[t+152>>2]=0,n[t+180|0]=1,o[t+176>>2]=0,o[t+168>>2]=0,o[t+172>>2]=0,o[t+192>>2]=0,u=i,0|t},Uf:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},Gf:function(i,t){var e;t|=0,e=u,on[127&o[12+(0|o[(i|=0)>>2])>>2]](i,t),u=e},Wf:function(i){return 0|o[(i|=0)+8>>2]},zf:function(i){return(i|=0)+300|0},Xf:function(i,t,e){var n;t=+t,e|=0,n=u,ln[15&o[32+(0|o[(i|=0)>>2])>>2]](i,t,e),u=n},$f:function(i,t,e){var n;return i|=0,t|=0,e|=0,n=u,u=u+16|0,o[n>>2]=o[e>>2],(t=0|_n[31&o[16+(0|o[i>>2])>>2]](i,t,n))?(o[e>>2]=o[n>>2],u=n,1&t):(u=n,1&t)},Hf:function(i){return 0|o[(i|=0)+24>>2]},qf:function(i,t){return t=+t,s[(i|=0)>>2]=+s[i>>2]*t,s[i+4>>2]=+s[i+4>>2]*t,s[i+8>>2]=+s[i+8>>2]*t,0|i},Kf:function(i){i|=0;var t,e=0;return t=u,o[4546]=1+(0|o[4546]),0|(e=0|ye(75))?(o[(e+19&-16)-4>>2]=e,e=e+19&-16):e=0,ji(e,i),u=t,0|e},Yf:function(i){var t;t=u,0|(i|=0)?(o[4548]=1+(0|o[4548]),ke(0|o[i+-4>>2]),u=t):u=t},Qf:function(i,t){var e;t|=0,e=u,o[(i|=0)+260>>2]=1+(0|o[i+260>>2]),o[i+544>>2]=o[t+0>>2],o[i+548>>2]=o[t+4>>2],o[i+552>>2]=o[t+8>>2],o[i+556>>2]=o[t+12>>2],u=e},Zf:function(i,t,e){var n;t=+t,e|=0,n=u,ln[15&o[32+(0|o[(i|=0)>>2])>>2]](i,t,e),u=n},Jf:function(i,t){var e;t|=0,e=u,on[127&o[8+(0|o[(i|=0)>>2])>>2]](i,t),u=e},ia:function(i){return+ +s[(i|=0)>>2]},ta:function(i){var t;return t=u,i=0|(i|=0)?!!(0|Dt(i,19064)):0,u=t,1&i},ea:function(i,t,e){i=+i,t|=0,e|=0;var r,f=0,a=0,c=0;r=u,f=0|ye(140);i:do{if(!(0|f)){for(;f=0|o[4700],o[4700]=f+0,0|f;)if(Nn[3&f](),0|(f=0|ye(140)))break i;c=0|V(4),o[c>>2]=18640,B(0|c,18688,235)}}while(0);s[f>>2]=i,o[f+4>>2]=t,a=f+56|0,c=t=f+8|0;do{c=c+16|0}while((0|c)!=(0|a));return o[f+72>>2]=e,c=f+100|0,o[(a=f+76|0)+0>>2]=0,o[a+4>>2]=0,o[a+8>>2]=0,o[a+12>>2]=0,o[a+16>>2]=0,o[a+20>>2]=0,s[c>>2]=.5,s[f+104>>2]=0,s[f+108>>2]=0,s[f+112>>2]=.800000011920929,s[f+116>>2]=1,n[f+120|0]=0,s[f+124>>2]=.004999999888241291,s[f+128>>2]=.009999999776482582,s[f+132>>2]=.009999999776482582,s[f+136>>2]=.009999999776482582,Ji(t),u=r,0|f},na:function(i){return 0|o[(i|=0)+192>>2]},ra:function(i,t,e,r){i=+i,t|=0,e|=0,r|=0;var f,a,c=0,h=0;f=u,c=0|ye(140);i:do{if(!(0|c)){for(;c=0|o[4700],o[4700]=c+0,0|c;)if(Nn[3&c](),0|(c=0|ye(140)))break i;h=0|V(4),o[h>>2]=18640,B(0|h,18688,235)}}while(0);s[c>>2]=i,o[c+4>>2]=t,a=c+56|0,h=t=c+8|0;do{h=h+16|0}while((0|h)!=(0|a));return o[c+72>>2]=e,o[(h=c+76|0)+0>>2]=o[r+0>>2],o[h+4>>2]=o[r+4>>2],o[h+8>>2]=o[r+8>>2],o[h+12>>2]=o[r+12>>2],s[c+92>>2]=0,s[c+96>>2]=0,s[c+100>>2]=.5,s[c+104>>2]=0,s[c+108>>2]=0,s[c+112>>2]=.800000011920929,s[c+116>>2]=1,n[c+120|0]=0,s[c+124>>2]=.004999999888241291,s[c+128>>2]=.009999999776482582,s[c+132>>2]=.009999999776482582,s[c+136>>2]=.009999999776482582,Ji(t),u=f,0|c},oa:function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},fa:function(i,t){t=+t,s[(i|=0)+104>>2]=t},aa:function(i){return+ +s[(i|=0)+8>>2]},sa:function(i,t){t=+t,o[(i|=0)+260>>2]=1+(0|o[i+260>>2]),s[i+224>>2]=t},ca:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},ua:function(i,t,e,n){t=+t,e=+e,n=+n,s[(i|=0)>>2]=t,s[i+4>>2]=e,s[i+8>>2]=n,s[i+12>>2]=0},ha:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},la:function(i,t){var e;t|=0,e=u,on[127&o[24+(0|o[(i|=0)>>2])>>2]](i,t),u=e},da:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},va:function(i,t){return(i|=0)+(184*(t|=0)|0)+4|0},ba:function(i){return(i|=0)+32|0},_a:function(i){return(i|=0)+48|0},wa:function(i,t){i=+i,t=+t;var e,n=0;return e=u,o[4546]=1+(0|o[4546]),0|(n=0|ye(95))?(o[(n+19&-16)-4>>2]=n,n=n+19&-16):n=0,o[n+8>>2]=0,s[n+12>>2]=1,s[n+16>>2]=1,s[n+20>>2]=1,s[n+24>>2]=0,s[n+44>>2]=.03999999910593033,s[n+56>>2]=i,s[n+60>>2]=t,o[n+4>>2]=11,s[n+52>>2]=i/+_(+(i*i+t*t)),o[n>>2]=8952,o[n+64>>2]=0,o[n+68>>2]=2,o[n+72>>2]=1,s[n+28>>2]=i,s[n+36>>2]=t,s[n+32>>2]=i,u=e,0|n},pa:function(i,t){t=+t,s[(i|=0)+244>>2]=t},ma:function(){var i,t=0;i=u,t=0|ye(24);i:do{if(!(0|t)){for(;t=0|o[4700],o[4700]=t+0,0|t;)if(Nn[3&t](),0|(t=0|ye(24)))break i;t=0|V(4),o[t>>2]=18640,B(0|t,18688,235)}}while(0);return o[t>>2]=0,o[t+4>>2]=0,o[t+8>>2]=4096,o[t+12>>2]=4096,o[t+16>>2]=0,o[t+20>>2]=1,u=i,0|t},ya:function(i){return+ +s[(i|=0)+4>>2]},ka:function(i,t,e){var n;t=+t,e|=0,n=u,ln[15&o[32+(0|o[(i|=0)>>2])>>2]](i,t,e),u=n},ga:function(i,t){t|=0,o[(i|=0)+8>>2]=t},Ca:function(i){return(i|=0)+20|0},ja:function(i){return 0|o[(i|=0)+116>>2]},Sa:function(i){return+ +s[(i|=0)>>2]},Ma:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},Ea:function(i){return+ +s[(i|=0)+104>>2]},Ta:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},La:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},Ia:function(i,t,e){t=+t,e|=0,s[(0|o[(i|=0)+144>>2])+(284*e|0)+252>>2]=t},Aa:function(i,t,e){t=+t,e|=0,s[(0|o[(i|=0)+144>>2])+(284*e|0)+256>>2]=t},Da:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},Oa:function(i){var t;t=u,0|(i|=0)?(nn[255&o[8+(0|o[i>>2])>>2]](i),u=t):u=t},Ra:function(i,t){t=+t,s[(i|=0)+112>>2]=t},Pa:function(i,t,e){i=+i,t=+t,e=+e;var n,r=0;return n=u,o[4546]=1+(0|o[4546]),0|(r=0|ye(35))?(o[(r+19&-16)-4>>2]=r,r=r+19&-16):r=0,s[r>>2]=i,s[r+4>>2]=t,s[r+8>>2]=e,s[r+12>>2]=0,u=n,0|r},Na:function(){var i,t=0;return i=u,o[4546]=1+(0|o[4546]),0|(t=0|ye(35))?(o[(t+19&-16)-4>>2]=t,u=i,0|(t=t+19&-16)):(u=i,0|(t=0))},Ba:function(i,t){t=+t,s[(i|=0)+100>>2]=t},Fa:function(i){var t;return i|=0,t=u,u=u+16|0,!(0|n[24])&&0|j(24)&&x(24),on[127&o[76+(0|o[i>>2])>>2]](t,i),o[2]=o[t+0>>2],o[3]=o[t+4>>2],o[4]=o[t+8>>2],o[5]=o[t+12>>2],u=t,8},Va:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},Ua:function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},Ga:function(i,t){var e;t|=0,e=u,o[(i|=0)+20>>2]=o[t+0>>2],o[i+24>>2]=o[t+4>>2],o[i+28>>2]=o[t+8>>2],o[i+32>>2]=o[t+12>>2],u=e},Wa:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},za:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},Xa:function(i,t){i=+i,t=+t;var e,n=0;return e=u,o[4546]=1+(0|o[4546]),0|(n=0|ye(75))?(o[(n+19&-16)-4>>2]=n,n=n+19&-16):n=0,o[n+8>>2]=0,s[n+12>>2]=1,s[n+16>>2]=1,s[n+20>>2]=1,s[n+24>>2]=0,s[n+44>>2]=.03999999910593033,o[n>>2]=5520,o[n+4>>2]=10,o[n+52>>2]=1,s[n+28>>2]=i,s[n+32>>2]=.5*t,s[n+36>>2]=i,s[n+40>>2]=0,u=e,0|n},$a:function(i,t){var e;t|=0,e=u,on[127&o[24+(0|o[(i|=0)>>2])>>2]](i,t),u=e},Ha:function(i){return+ +s[(i|=0)+124>>2]},qa:function(i,t){var e;t|=0,e=u,on[127&o[24+(0|o[(i|=0)>>2])>>2]](i,t),u=e},Ka:function(){var i,t=0,e=0;return i=u,o[4546]=1+(0|o[4546]),0|(t=0|ye(791))?(o[(t+19&-16)-4>>2]=t,t=t+19&-16):t=0,o[t>>2]=1025,o[t+116>>2]=0,n[t+120|0]=0,o[(e=t+124|0)+0>>2]=0,o[e+4>>2]=0,o[e+8>>2]=0,o[e+12>>2]=0,o[e+16>>2]=0,o[e+20>>2]=0,o[e+24>>2]=0,o[e+28>>2]=0,o[t+300>>2]=0,n[t+304|0]=0,o[(e=t+308|0)+0>>2]=0,o[e+4>>2]=0,o[e+8>>2]=0,o[e+12>>2]=0,o[e+16>>2]=0,o[e+20>>2]=0,o[e+24>>2]=0,o[e+28>>2]=0,o[t+484>>2]=0,n[t+488|0]=0,o[(e=t+492|0)+0>>2]=0,o[e+4>>2]=0,o[e+8>>2]=0,o[e+12>>2]=0,o[e+16>>2]=0,o[e+20>>2]=0,o[e+24>>2]=0,o[e+28>>2]=0,o[t+668>>2]=0,n[t+672|0]=0,o[(e=t+676|0)+0>>2]=0,o[e+4>>2]=0,o[e+8>>2]=0,o[e+12>>2]=0,o[e+16>>2]=0,o[e+20>>2]=0,o[e+24>>2]=0,o[e+28>>2]=0,o[t+740>>2]=0,o[t+744>>2]=0,o[t+748>>2]=0,o[t+768>>2]=0,u=i,0|t},Ya:function(i,t){i|=0,t|=0;var e,n,f=0;e=u,f=0|ye(84);i:do{if(!(0|f)){for(;f=0|o[4700],o[4700]=f+0,0|f;)if(Nn[3&f](),0|(f=0|ye(84)))break i;f=0|V(4),o[f>>2]=18640,B(0|f,18688,235)}}while(0);return s[f+4>>2]=1,o[f+8>>2]=0,r[f+12>>1]=1,r[f+14>>1]=-1,o[f+16>>2]=0,o[f>>2]=224,o[(n=f+20|0)+0>>2]=o[i+0>>2],o[n+4>>2]=o[i+4>>2],o[n+8>>2]=o[i+8>>2],o[n+12>>2]=o[i+12>>2],o[(i=f+36|0)+0>>2]=o[t+0>>2],o[i+4>>2]=o[t+4>>2],o[i+8>>2]=o[t+8>>2],o[i+12>>2]=o[t+12>>2],u=e,0|f},Qa:function(i){var t;t=u,0|(i|=0)?(o[4548]=1+(0|o[4548]),ke(0|o[i+-4>>2]),u=t):u=t},Za:function(i){return+ +s[(i|=0)+4>>2]},Oe:je,Ja:function(){var i,t=0;i=u,u=u+32|0,t=0|ye(92);i:do{if(!(0|t)){for(;t=0|o[4700],o[4700]=t+0,0|t;)if(Nn[3&t](),0|(t=0|ye(92)))break i;t=0|V(4),o[t>>2]=18640,B(0|t,18688,235)}}while(0);return o[i>>2]=0,o[i+4>>2]=0,o[i+8>>2]=4096,o[i+12>>2]=4096,o[i+16>>2]=0,o[i+20>>2]=1,Oi(t,i),u=i,0|t},ts:function(i){i|=0;var t,e=0;t=u,e=0|ye(92);i:do{if(!(0|e)){for(;e=0|o[4700],o[4700]=e+0,0|e;)if(Nn[3&e](),0|(e=0|ye(92)))break i;e=0|V(4),o[e>>2]=18640,B(0|e,18688,235)}}while(0);return Oi(e,i),u=t,0|e},es:function(i){return+ +s[(i|=0)+116>>2]},ns:function(i){return(i|=0)+316|0},fs:function(i,t,e,n,r,f,a,s){var c,h;return t|=0,e|=0,n|=0,r|=0,f|=0,a|=0,s|=0,h=u,c=+dn[1&o[12+(0|o[(i|=0)>>2])>>2]](i,t,e,n,r,f,a,s),u=h,+c},ss:function(i,t,e){var n;t=+t,e|=0,n=u,ln[15&o[32+(0|o[(i|=0)>>2])>>2]](i,t,e),u=n},cs:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},us:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},hs:function(i,t){t|=0,o[(i|=0)+204>>2]=t},ls:function(i){return 0|o[(i|=0)+480>>2]},ds:function(i,t){t=+t,s[(i|=0)+216>>2]=t},vs:function(i,t){var e;return t|=0,e=u,i=0|Sn[31&o[40+(0|o[(i|=0)>>2])>>2]](i,t),u=e,0|i},bs:function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},_s:function(i,t,e,r){i|=0,t|=0,e|=0,r|=0;var f,a=0;return f=u,o[4546]=1+(0|o[4546]),0|(a=0|ye(379))?(o[(a+19&-16)-4>>2]=a,a=a+19&-16):a=0,o[a+4>>2]=3,o[a+8>>2]=-1,o[a+12>>2]=-1,s[a+16>>2]=34028234663852886e22,n[a+20|0]=1,n[a+21|0]=0,o[a+24>>2]=-1,o[a+28>>2]=i,o[a+32>>2]=t,s[a+36>>2]=0,s[a+40>>2]=.30000001192092896,o[a+44>>2]=0,o[a>>2]=2256,o[(t=a+300|0)+0>>2]=o[e+0>>2],o[t+4>>2]=o[e+4>>2],o[t+8>>2]=o[e+8>>2],o[t+12>>2]=o[e+12>>2],o[(e=a+316|0)+0>>2]=o[r+0>>2],o[e+4>>2]=o[r+4>>2],o[e+8>>2]=o[r+8>>2],o[e+12>>2]=o[r+12>>2],o[a+332>>2]=0,n[a+344|0]=0,s[a+348>>2]=.30000001192092896,s[a+352>>2]=1,s[a+356>>2]=0,u=f,0|a},ws:function(i,t){i|=0,t|=0;var e,r,f,a,c,h,l,d=0;return e=u,o[4546]=1+(0|o[4546]),0|(d=0|ye(379))?(o[(d+19&-16)-4>>2]=d,d=d+19&-16):d=0,ui(d,3,i),o[d>>2]=2256,o[(l=d+300|0)+0>>2]=o[t+0>>2],o[l+4>>2]=o[t+4>>2],o[l+8>>2]=o[t+8>>2],o[l+12>>2]=o[t+12>>2],h=+s[t>>2],c=+s[t+4>>2],a=+s[t+8>>2],f=h*+s[i+20>>2]+c*+s[i+24>>2]+a*+s[i+28>>2]+ +s[i+56>>2],r=h*+s[i+36>>2]+c*+s[i+40>>2]+a*+s[i+44>>2]+ +s[i+60>>2],s[d+316>>2]=h*+s[i+4>>2]+c*+s[i+8>>2]+a*+s[i+12>>2]+ +s[i+52>>2],s[d+320>>2]=f,s[d+324>>2]=r,s[d+328>>2]=0,o[d+332>>2]=0,n[d+344|0]=0,s[d+348>>2]=.30000001192092896,s[d+352>>2]=1,s[d+356>>2]=0,u=e,0|d},ps:function(i,t,e){var n;t=+t,e|=0,n=u,ln[15&o[32+(0|o[(i|=0)>>2])>>2]](i,t,e),u=n},ys:function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},ks:function(i){return(i|=0)+4|0},gs:function(i,t){var e;t|=0,e=u,o[(i|=0)+300>>2]=o[t+0>>2],o[i+304>>2]=o[t+4>>2],o[i+308>>2]=o[t+8>>2],o[i+312>>2]=o[t+12>>2],u=e},Re:Se,Cs:function(i,t,e){var n;t=+t,e|=0,n=u,ln[15&o[32+(0|o[(i|=0)>>2])>>2]](i,t,e),u=n},js:function(i){return+ +s[(i|=0)+4>>2]},Ss:function(i,t){i|=0,t|=0;var e,n=0;return e=u,o[4546]=1+(0|o[4546]),0|(n=0|ye(95))?(o[(n+19&-16)-4>>2]=n,n=n+19&-16):n=0,yi(n,i,t,1),u=e,0|n},xs:function(i,t,e){i|=0,t|=0,e|=0;var n,r=0;return n=u,o[4546]=1+(0|o[4546]),0|(r=0|ye(95))?(o[(r+19&-16)-4>>2]=r,r=r+19&-16):r=0,yi(r,i,t,e),u=n,0|r},Ms:function(i,t){t=+t,s[(i|=0)+12>>2]=t},Es:function(i,t){var e;t|=0,e=u,on[127&o[72+(0|o[(i|=0)>>2])>>2]](i,t),u=e},Ts:function(i){return+ +s[(i|=0)+8>>2]},Ls:function(i,t){t|=0,o[(i|=0)+216>>2]=t},Is:function(i,t){return t|=0,(0|o[(i|=0)+144>>2])+(284*t|0)|0},As:function(i,t,e){var n;i|=0,e=+e,n=u,3==(0|(t|=0))?s[i+452>>2]=e:4==(0|t)?s[i+448>>2]=e:5==(0|t)&&(s[i+444>>2]=e),u=n},Ds:function(i){var t;t=u,0|(i|=0)?(nn[255&o[8+(0|o[i>>2])>>2]](i),u=t):u=t},Os:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},Rs:function(i,t,e){t=+t,e=+e,s[(i|=0)+472>>2]=t,s[i+476>>2]=e},Ps:function(i){return 0|(i|=0)},Ns:function(i){return+ +s[(i|=0)+92>>2]},Bs:function(i){var t;return t=u,i=0|an[127&o[36+(0|o[(i|=0)>>2])>>2]](i),u=t,0|i},Fs:function(i){return+ +s[(i|=0)+112>>2]},Vs:function(i,t){var e;i|=0,e=u,!(t|=0)&&3&o[i+204>>2]||(((0|o[i+216>>2])-4|0)>>>0<2||(o[i+216>>2]=1),s[i+220>>2]=0),u=e},Us:function(i){var t;t=u,3&o[(i|=0)+204>>2]||(((0|o[i+216>>2])-4|0)>>>0<2||(o[i+216>>2]=1),s[i+220>>2]=0),u=t},Gs:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},Ws:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},zs:function(i){return(i|=0)+48|0},Xs:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},$s:function(i){return+ +s[(i|=0)>>2]},Hs:function(){var i,t=0;i=u,t=0|ye(12);i:do{if(!(0|t)){for(;t=0|o[4700],o[4700]=t+0,0|t;)if(Nn[3&t](),0|(t=0|ye(12)))break i;t=0|V(4),o[t>>2]=18640,B(0|t,18688,235)}}while(0);return s[t>>2]=.30000001192092896,s[t+4>>2]=1,s[t+8>>2]=0,u=i,0|t},qs:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},Ks:function(i){return+ +s[(i|=0)+108>>2]},Ys:function(i){var t;t=u,Ji(i|=0),u=t},Qs:function(i,t){var e;t|=0,e=u,o[(i|=0)+64>>2]=o[t+0>>2],o[i+68>>2]=o[t+4>>2],o[i+72>>2]=o[t+8>>2],o[i+76>>2]=o[t+12>>2],u=e},Zs:function(i,t){var e;t|=0,e=u,on[127&o[64+(0|o[(i|=0)>>2])>>2]](i,t),u=e},Js:function(i,t){t=+t,s[(i|=0)+4>>2]=t},tc:function(i,t,e){var n;t=+t,e|=0,n=u,ln[15&o[32+(0|o[(i|=0)>>2])>>2]](i,t,e),u=n},ec:function(i,t,e){var n;t=+t,e|=0,n=u,ln[15&o[32+(0|o[(i|=0)>>2])>>2]](i,t,e),u=n},Be:Me,nc:function(i,t){var e;t|=0,e=u,on[127&o[24+(0|o[(i|=0)>>2])>>2]](i,t),u=e},rc:function(i){return+ +s[(i|=0)+12>>2]},oc:function(i){return(i|=0)+64|0},fc:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},ac:function(i){return(i|=0)+36|0},sc:function(i,t){var e;t|=0,e=u,on[127&o[60+(0|o[(i|=0)>>2])>>2]](i,t),u=e},cc:function(){var i,t,e=0;i=u,e=0|ye(8);i:do{if(!(0|e)){for(;e=0|o[4700],o[4700]=e+0,0|e;)if(Nn[3&e](),0|(e=0|ye(8)))break i;e=0|V(4),o[e>>2]=18640,B(0|e,18688,235)}}while(0);return o[(t=e)>>2]=0,o[t+4>>2]=0,r[e+4>>1]=1,r[e+6>>1]=-1,o[e>>2]=576,u=i,0|e},uc:function(i){return(i|=0)+48|0},Ee:Ce,hc:function(i){return(i|=0)+52|0},lc:function(){var i,t=0;return i=u,o[4546]=1+(0|o[4546]),0|(t=0|ye(191))?(o[(t+19&-16)-4>>2]=t,ii(t=t+19&-16,1,1),u=i,0|t):(ii(t=0,1,1),u=i,0|t)},dc:function(i){i|=0;var t,e=0;return t=u,o[4546]=1+(0|o[4546]),0|(e=0|ye(191))?(o[(e+19&-16)-4>>2]=e,ii(e=e+19&-16,i,1),u=t,0|e):(ii(e=0,i,1),u=t,0|e)},vc:function(i,t){i|=0,t|=0;var e,n=0;return e=u,o[4546]=1+(0|o[4546]),0|(n=0|ye(191))?(o[(n+19&-16)-4>>2]=n,ii(n=n+19&-16,i,t),u=e,0|n):(ii(n=0,i,t),u=e,0|n)},bc:function(i){return 0|o[(i|=0)+192>>2]},_c:function(i,t){var e;t|=0,e=u,o[(i|=0)+48>>2]=o[t+0>>2],o[i+52>>2]=o[t+4>>2],o[i+56>>2]=o[t+8>>2],o[i+60>>2]=o[t+12>>2],u=e},wc:function(i){return+ +s[(i|=0)+224>>2]},mc:function(i){return(i|=0)+16|0},yc:function(i,t){var e;t|=0,e=u,o[(i|=0)+348>>2]=o[t+0>>2],o[i+352>>2]=o[t+4>>2],o[i+356>>2]=o[t+8>>2],u=e},kc:function(i,t){var e;t|=0,e=u,o[(i|=0)+260>>2]=1+(0|o[i+260>>2]),o[i+312>>2]=o[t+0>>2],o[i+316>>2]=o[t+4>>2],o[i+320>>2]=o[t+8>>2],o[i+324>>2]=o[t+12>>2],u=e},gc:function(){var i,t=0;i=u,t=0|ye(24);i:do{if(!(0|t)){for(;t=0|o[4700],o[4700]=t+0,0|t;)if(Nn[3&t](),0|(t=0|ye(24)))break i;t=0|V(4),o[t>>2]=18640,B(0|t,18688,235)}}while(0);return s[t>>2]=5.880000114440918,s[t+4>>2]=.8299999833106995,s[t+8>>2]=.8799999952316284,s[t+12>>2]=500,s[t+16>>2]=10.5,s[t+20>>2]=6e3,u=i,0|t},Cc:function(i,t){var e;t|=0,e=u,o[(i|=0)+36>>2]=o[t+0>>2],o[i+40>>2]=o[t+4>>2],o[i+44>>2]=o[t+8>>2],o[i+48>>2]=o[t+12>>2],u=e},jc:function(i,t){t=+t,s[(i|=0)+224>>2]=t},Sc:function(i,t){var e;t|=0,e=u,on[127&o[64+(0|o[(i|=0)>>2])>>2]](i,t),u=e},xc:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},Mc:function(i,t){t=+t,s[(i|=0)+92>>2]=t},Ec:function(i,t){t|=0,n[(i|=0)+120|0]=1&t},Tc:function(i,t){var e;t|=0,e=u,((0|o[(i|=0)+216>>2])-4|0)>>>0<2||(o[i+216>>2]=t),u=e},Lc:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},Ic:function(i){return 0|o[(i|=0)+8>>2]},Ac:function(i,t,e,n){var r,f;t|=0,e|=0,n|=0,r=u,f=0|o[(i|=0)+32>>2],o[f>>2]=1+(0|o[f>>2]),ti(i,0|ei(i,t,0)),ti(i,0|ei(i,e,0)),ti(i,0|ei(i,n,0)),u=r},Dc:function(i,t,e,n,r){var f,a;t|=0,e|=0,n|=0,r|=0,f=u,a=0|o[(i|=0)+32>>2],o[a>>2]=1+(0|o[a>>2]),ti(i,0|ei(i,t,r)),ti(i,0|ei(i,e,r)),ti(i,0|ei(i,n,r)),u=f},Oc:function(i,t){var e,n,r,o,f;i|=0,f=+s[(t|=0)>>2],o=+s[t+4>>2],r=+s[t+8>>2],n=(+s[i+280>>2]*f+ +s[i+284>>2]*o+ +s[i+288>>2]*r)*+s[i+548>>2],e=(+s[i+296>>2]*f+ +s[i+300>>2]*o+ +s[i+304>>2]*r)*+s[i+552>>2],s[i+328>>2]=+s[i+328>>2]+(+s[i+264>>2]*f+ +s[i+268>>2]*o+ +s[i+272>>2]*r)*+s[i+544>>2],s[i+332>>2]=+s[i+332>>2]+n,s[i+336>>2]=+s[i+336>>2]+e},Rc:function(i,t){t|=0,o[(i|=0)+204>>2]=t},Pc:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},Nc:function(i,t){i=+i,t=+t;var e,n=0;return e=u,o[4546]=1+(0|o[4546]),0|(n=0|ye(75))?(o[(n+19&-16)-4>>2]=n,n=n+19&-16):n=0,o[n+8>>2]=0,s[n+12>>2]=1,s[n+16>>2]=1,s[n+20>>2]=1,s[n+24>>2]=0,s[n+44>>2]=.03999999910593033,o[n+4>>2]=10,o[n>>2]=5728,o[n+52>>2]=2,s[n+28>>2]=i,s[n+32>>2]=i,s[n+36>>2]=.5*t,s[n+40>>2]=0,u=e,0|n},Bc:function(i){var t;t=u,0|(i|=0)&&ke(i),u=t},Fc:function(i,t){t|=0,o[(i|=0)+216>>2]=t},Vc:function(i,t){var e;t|=0,e=u,o[(i|=0)+316>>2]=o[t+0>>2],o[i+320>>2]=o[t+4>>2],o[i+324>>2]=o[t+8>>2],o[i+328>>2]=o[t+12>>2],u=e},Uc:function(i,t,e,r,f,a,c,h){i|=0,t|=0,e|=0,r|=0,f=+f,a=+a,c|=0,h|=0;var l,d,v,b,_,w,p,m=0,y=0,k=0,g=0;if(l=u,u=u+288|0,o[l+144>>2]=o[t+0>>2],o[l+148>>2]=o[t+4>>2],o[l+152>>2]=o[t+8>>2],o[l+156>>2]=o[t+12>>2],o[(g=l+160|0)+0>>2]=o[e+0>>2],o[g+4>>2]=o[e+4>>2],o[g+8>>2]=o[e+8>>2],o[g+12>>2]=o[e+12>>2],o[(y=l+176|0)+0>>2]=o[r+0>>2],o[y+4>>2]=o[r+4>>2],o[y+8>>2]=o[r+8>>2],o[y+12>>2]=o[r+12>>2],v=+s[c>>2],b=+s[c+4>>2],_=+s[c+8>>2],w=+s[c+16>>2],d=+s[c+12>>2],p=+s[c+20>>2],o[l+0>>2]=o[l+144>>2],o[l+4>>2]=o[l+148>>2],o[l+8>>2]=o[l+152>>2],o[l+12>>2]=o[l+156>>2],o[l+16>>2]=o[g+0>>2],o[l+20>>2]=o[g+4>>2],o[l+24>>2]=o[g+8>>2],o[l+28>>2]=o[g+12>>2],o[l+32>>2]=o[y+0>>2],o[l+36>>2]=o[y+4>>2],o[l+40>>2]=o[y+8>>2],o[l+44>>2]=o[y+12>>2],(0|(y=0|o[i+136>>2]))==(0|o[i+140>>2])&&(0|y)<(0|(m=0|y?y<<1:1))){if(0|m?(o[4546]=1+(0|o[4546]),0|(c=0|ye(16+(284*m|3)|0))?(o[(c+19&-16)-4>>2]=c,t=c+19&-16):t=0,y=0|o[i+136>>2]):t=0,(0|y)>0){g=0;do{if(0|(c=t+(284*g|0)|0)){e=c+0|0,c=(k=0|o[i+144>>2])+(284*g|0)+0|0,r=e+92|0;do{o[e>>2]=o[c>>2],e=e+4|0,c=c+4|0}while((0|e)<(0|r));c=k+(284*g|0)+92|0,o[(e=t+(284*g|0)+92|0)+0>>2]=o[c+0>>2],o[e+4>>2]=o[c+4>>2],o[e+8>>2]=o[c+8>>2],o[e+12>>2]=o[c+12>>2],c=k+(284*g|0)+108|0,o[(e=t+(284*g|0)+108|0)+0>>2]=o[c+0>>2],o[e+4>>2]=o[c+4>>2],o[e+8>>2]=o[c+8>>2],o[e+12>>2]=o[c+12>>2],c=k+(284*g|0)+124|0,o[(e=t+(284*g|0)+124|0)+0>>2]=o[c+0>>2],o[e+4>>2]=o[c+4>>2],o[e+8>>2]=o[c+8>>2],o[e+12>>2]=o[c+12>>2],c=k+(284*g|0)+140|0,o[(e=t+(284*g|0)+140|0)+0>>2]=o[c+0>>2],o[e+4>>2]=o[c+4>>2],o[e+8>>2]=o[c+8>>2],o[e+12>>2]=o[c+12>>2],c=k+(284*g|0)+156|0,r=(e=t+(284*g|0)+156|0)+128|0;do{o[e>>2]=o[c>>2],e=e+4|0,c=c+4|0}while((0|e)<(0|r))}g=g+1|0}while((0|g)!=(0|y))}0|(c=0|o[i+144>>2])&&(0|n[i+148|0]&&(o[4548]=1+(0|o[4548]),ke(0|o[c+-4>>2])),o[i+144>>2]=0),n[i+148|0]=1,o[i+144>>2]=t,o[i+140>>2]=m,y=0|o[i+136>>2]}if(!(0|(c=(m=0|o[i+144>>2])+(284*y|0)|0)))return t=m,k=(g=y)+1|0,o[i+136>>2]=k,g=t+(284*g|0)|0,Nt(k=0|o[(t=i+116|0)>>2],g,0),k=(k=0|o[i+136>>2])+-1|0,Bt(t=0|o[t>>2],y=0|o[i+144>>2],k,0),u=l,0|g;e=c+0|0,c=l+48|0,r=e+92|0;do{o[e>>2]=o[c>>2],e=e+4|0,c=c+4|0}while((0|e)<(0|r));o[(e=m+(284*y|0)+92|0)+0>>2]=o[l+240>>2],o[e+4>>2]=o[l+244>>2],o[e+8>>2]=o[l+248>>2],o[e+12>>2]=o[l+252>>2],o[(e=m+(284*y|0)+108|0)+0>>2]=o[l+224>>2],o[e+4>>2]=o[l+228>>2],o[e+8>>2]=o[l+232>>2],o[e+12>>2]=o[l+236>>2],o[(e=m+(284*y|0)+124|0)+0>>2]=o[l+208>>2],o[e+4>>2]=o[l+212>>2],o[e+8>>2]=o[l+216>>2],o[e+12>>2]=o[l+220>>2],o[(e=m+(284*y|0)+140|0)+0>>2]=o[l+192>>2],o[e+4>>2]=o[l+196>>2],o[e+8>>2]=o[l+200>>2],o[e+12>>2]=o[l+204>>2],c=l+0|0,r=(e=(m=m+(284*y|0)+156|0)+0|0)+48|0;do{o[e>>2]=o[c>>2],e=e+4|0,c=c+4|0}while((0|e)<(0|r));s[m+48>>2]=f,s[m+52>>2]=d,s[m+56>>2]=a,s[m+60>>2]=v,s[m+64>>2]=b,s[m+68>>2]=_,s[m+72>>2]=w,s[m+76>>2]=0,s[m+80>>2]=0,s[m+84>>2]=0,s[m+88>>2]=.10000000149011612,s[m+92>>2]=p,s[m+96>>2]=0,s[m+100>>2]=0,n[m+104|0]=1&h,c=l+256|0,r=(e=m+105|0)+23|0;do{n[e|0]=0|n[c|0],e=e+1|0,c=c+1|0}while((0|e)<(0|r));return g=0|o[i+136>>2],t=0|o[i+144>>2],k=g+1|0,o[i+136>>2]=k,g=t+(284*g|0)|0,Nt(k=0|o[(t=i+116|0)>>2],g,0),k=(k=0|o[i+136>>2])+-1|0,Bt(t=0|o[t>>2],y=0|o[i+144>>2],k,0),u=l,0|g},Gc:function(i,t){var e;t|=0,e=u,on[127&o[24+(0|o[(i|=0)>>2])>>2]](i,t),u=e},Wc:function(i,t){var e;t|=0,e=u,on[127&o[24+(0|o[(i|=0)>>2])>>2]](i,t),u=e},zc:function(i){var t;t=u,0|(i|=0)?(nn[255&o[4+(0|o[i>>2])>>2]](i),u=t):u=t},Xc:function(){var i,t=0;return i=u,o[4546]=1+(0|o[4546]),0|(t=0|ye(35))?(o[(t+19&-16)-4>>2]=t,u=i,0|(t=t+19&-16)):(u=i,0|(t=0))},$c:function(i,t,e,n){i=+i,t=+t,e=+e,n=+n;var r,f=0;return r=u,o[4546]=1+(0|o[4546]),0|(f=0|ye(35))?(o[(f+19&-16)-4>>2]=f,f=f+19&-16):f=0,s[f>>2]=i,s[f+4>>2]=t,s[f+8>>2]=e,s[f+12>>2]=n,u=r,0|f},Hc:function(i,t,e,n){var r;t|=0,e|=0,n|=0,r=u,Vn[63&o[32+(0|o[(i|=0)>>2])>>2]](i,t,e,n),u=r},qc:function(i,t){var e;t|=0,e=u,o[(i|=0)+52>>2]=o[t+0>>2],o[i+56>>2]=o[t+4>>2],o[i+60>>2]=o[t+8>>2],o[i+64>>2]=o[t+12>>2],u=e},Kc:function(){var i,t=0;i=u,t=0|ye(8);i:do{if(!(0|t)){for(;t=0|o[4700],o[4700]=t+0,0|t;)if(Nn[3&t](),0|(t=0|ye(8)))break i;t=0|V(4),o[t>>2]=18640,B(0|t,18688,235)}}while(0);o[4550]=t,G(0|t,0),o[4552]=18248,o[4553]=0,o[4554]=0,o[4555]=0,o[4556]=0,o[4557]=0,o[4558]=0,o[4559]=0,o[4560]=0,Lt(18208),u=i},runPostSets:function(){},stackAlloc:function(i){var t;return t=u,u=(u=u+(i|=0)|0)+7&-8,0|t},stackSave:function(){return 0|u},stackRestore:function(i){u=i|=0},setThrew:function(i,t){i|=0,t|=0,0|l||(l=i,t)},setTempRet0:function(i){v=i|=0},getTempRet0:function(){return 0|v},dynCall_viiiii:function(i,t,e,n,r,o){t|=0,e|=0,n|=0,r|=0,o|=0,tn[31&(i|=0)](0|t,0|e,0|n,0|r,0|o)},dynCall_vid:function(i,t,e){t|=0,e=+e,en[31&(i|=0)](0|t,+e)},dynCall_vi:function(i,t){t|=0,nn[255&(i|=0)](0|t)},dynCall_viiidii:function(i,t,e,n,r,o,f){t|=0,e|=0,n|=0,r=+r,o|=0,f|=0,rn[0&(i|=0)](0|t,0|e,0|n,+r,0|o,0|f)},dynCall_vii:function(i,t,e){t|=0,e|=0,on[127&(i|=0)](0|t,0|e)},dynCall_iiiiiiiiiii:function(i,t,e,n,r,o,f,a,s,c,u){return t|=0,e|=0,n|=0,r|=0,o|=0,f|=0,a|=0,s|=0,c|=0,u|=0,0|fn[3&(i|=0)](0|t,0|e,0|n,0|r,0|o,0|f,0|a,0|s,0|c,0|u)},dynCall_ii:function(i,t){return t|=0,0|an[127&(i|=0)](0|t)},dynCall_viidi:function(i,t,e,n,r){t|=0,e|=0,n=+n,r|=0,sn[3&(i|=0)](0|t,0|e,+n,0|r)},dynCall_viddiii:function(i,t,e,n,r,o,f){t|=0,e=+e,n=+n,r|=0,o|=0,f|=0,cn[0&(i|=0)](0|t,+e,+n,0|r,0|o,0|f)},dynCall_vidii:function(i,t,e,n,r){t|=0,e=+e,n|=0,r|=0,un[0&(i|=0)](0|t,+e,0|n,0|r)},dynCall_iiiii:function(i,t,e,n,r){return t|=0,e|=0,n|=0,r|=0,0|hn[31&(i|=0)](0|t,0|e,0|n,0|r)},dynCall_vidi:function(i,t,e,n){t|=0,e=+e,n|=0,ln[15&(i|=0)](0|t,+e,0|n)},dynCall_diiiiiiii:function(i,t,e,n,r,o,f,a,s){return t|=0,e|=0,n|=0,r|=0,o|=0,f|=0,a|=0,s|=0,+dn[1&(i|=0)](0|t,0|e,0|n,0|r,0|o,0|f,0|a,0|s)},dynCall_viiiiddddiid:function(i,t,e,n,r,o,f,a,s,c,u,h){t|=0,e|=0,n|=0,r|=0,o=+o,f=+f,a=+a,s=+s,c|=0,u|=0,h=+h,vn[0&(i|=0)](0|t,0|e,0|n,0|r,+o,+f,+a,+s,0|c,0|u,+h)},dynCall_diiiii:function(i,t,e,n,r,o){return t|=0,e|=0,n|=0,r|=0,o|=0,+bn[15&(i|=0)](0|t,0|e,0|n,0|r,0|o)},dynCall_iiii:function(i,t,e,n){return t|=0,e|=0,n|=0,0|_n[31&(i|=0)](0|t,0|e,0|n)},dynCall_viiiiii:function(i,t,e,n,r,o,f){t|=0,e|=0,n|=0,r|=0,o|=0,f|=0,wn[7&(i|=0)](0|t,0|e,0|n,0|r,0|o,0|f)},dynCall_iiid:function(i,t,e,n){return t|=0,e|=0,n=+n,0|pn[3&(i|=0)](0|t,0|e,+n)},dynCall_di:function(i,t){return t|=0,+mn[15&(i|=0)](0|t)},dynCall_iiiiiii:function(i,t,e,n,r,o,f){return t|=0,e|=0,n|=0,r|=0,o|=0,f|=0,0|yn[3&(i|=0)](0|t,0|e,0|n,0|r,0|o,0|f)},dynCall_diiidii:function(i,t,e,n,r,o,f){return t|=0,e|=0,n|=0,r=+r,o|=0,f|=0,+kn[3&(i|=0)](0|t,0|e,0|n,+r,0|o,0|f)},dynCall_viidii:function(i,t,e,n,r,o){t|=0,e|=0,n=+n,r|=0,o|=0,gn[0&(i|=0)](0|t,0|e,+n,0|r,0|o)},dynCall_viiiiiiiii:function(i,t,e,n,r,o,f,a,s,c){t|=0,e|=0,n|=0,r|=0,o|=0,f|=0,a|=0,s|=0,c|=0,Cn[1&(i|=0)](0|t,0|e,0|n,0|r,0|o,0|f,0|a,0|s,0|c)},dynCall_viiiiiiiiii:function(i,t,e,n,r,o,f,a,s,c,u){t|=0,e|=0,n|=0,r|=0,o|=0,f|=0,a|=0,s|=0,c|=0,u|=0,jn[3&(i|=0)](0|t,0|e,0|n,0|r,0|o,0|f,0|a,0|s,0|c,0|u)},dynCall_iii:function(i,t,e){return t|=0,e|=0,0|Sn[31&(i|=0)](0|t,0|e)},dynCall_diii:function(i,t,e,n){return t|=0,e|=0,n|=0,+xn[7&(i|=0)](0|t,0|e,0|n)},dynCall_diiiiiiiiii:function(i,t,e,n,r,o,f,a,s,c,u){return t|=0,e|=0,n|=0,r|=0,o|=0,f|=0,a|=0,s|=0,c|=0,u|=0,+Mn[3&(i|=0)](0|t,0|e,0|n,0|r,0|o,0|f,0|a,0|s,0|c,0|u)},dynCall_viiiid:function(i,t,e,n,r,o){t|=0,e|=0,n|=0,r|=0,o=+o,En[1&(i|=0)](0|t,0|e,0|n,0|r,+o)},dynCall_diiiiiiiii:function(i,t,e,n,r,o,f,a,s,c){return t|=0,e|=0,n|=0,r|=0,o|=0,f|=0,a|=0,s|=0,c|=0,+Tn[3&(i|=0)](0|t,0|e,0|n,0|r,0|o,0|f,0|a,0|s,0|c)},dynCall_did:function(i,t,e){return t|=0,e=+e,+Ln[1&(i|=0)](0|t,+e)},dynCall_viiiidddddidi:function(i,t,e,n,r,o,f,a,s,c,u,h,l){t|=0,e|=0,n|=0,r|=0,o=+o,f=+f,a=+a,s=+s,c=+c,u|=0,h=+h,l|=0,In[0&(i|=0)](0|t,0|e,0|n,0|r,+o,+f,+a,+s,+c,0|u,+h,0|l)},dynCall_diidii:function(i,t,e,n,r,o){return t|=0,e|=0,n=+n,r|=0,o|=0,+An[3&(i|=0)](0|t,0|e,+n,0|r,0|o)},dynCall_diiii:function(i,t,e,n,r){return t|=0,e|=0,n|=0,r|=0,+Dn[1&(i|=0)](0|t,0|e,0|n,0|r)},dynCall_iiiiiiiiii:function(i,t,e,n,r,o,f,a,s,c){return t|=0,e|=0,n|=0,r|=0,o|=0,f|=0,a|=0,s|=0,c|=0,0|On[3&(i|=0)](0|t,0|e,0|n,0|r,0|o,0|f,0|a,0|s,0|c)},dynCall_viiid:function(i,t,e,n,r){t|=0,e|=0,n|=0,r=+r,Rn[15&(i|=0)](0|t,0|e,0|n,+r)},dynCall_viii:function(i,t,e,n){t|=0,e|=0,n|=0,Pn[63&(i|=0)](0|t,0|e,0|n)},dynCall_v:function(i){Nn[3&(i|=0)]()},dynCall_viid:function(i,t,e,n){t|=0,e|=0,n=+n,Bn[3&(i|=0)](0|t,0|e,+n)},dynCall_iidid:function(i,t,e,n,r){return t|=0,e=+e,n|=0,r=+r,0|Fn[1&(i|=0)](0|t,+e,0|n,+r)},dynCall_viiii:function(i,t,e,n,r){t|=0,e|=0,n|=0,r|=0,Vn[63&(i|=0)](0|t,0|e,0|n,0|r)}}}({Math:Math,Int8Array:Int8Array,Int16Array:Int16Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Uint16Array:Uint16Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array},{abort:qa,assert:_,asmPrintInt:function(i,e){t.print("int "+i+","+e)},asmPrintFloat:function(i,e){t.print("float "+i+","+e)},min:li,invoke_viiiii:function(i,e,n,r,o,f){try{t.dynCall_viiiii(i,e,n,r,o,f)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;ot.setThrew(1,0)}},invoke_vid:function(i,e,n){try{t.dynCall_vid(i,e,n)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;ot.setThrew(1,0)}},invoke_vi:function(i,e){try{t.dynCall_vi(i,e)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;ot.setThrew(1,0)}},invoke_viiidii:function(i,e,n,r,o,f,a){try{t.dynCall_viiidii(i,e,n,r,o,f,a)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;ot.setThrew(1,0)}},invoke_vii:function(i,e,n){try{t.dynCall_vii(i,e,n)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;ot.setThrew(1,0)}},invoke_iiiiiiiiiii:function(i,e,n,r,o,f,a,s,c,u,h){try{return t.dynCall_iiiiiiiiiii(i,e,n,r,o,f,a,s,c,u,h)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;ot.setThrew(1,0)}},invoke_ii:function(i,e){try{return t.dynCall_ii(i,e)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;ot.setThrew(1,0)}},invoke_viidi:function(i,e,n,r,o){try{t.dynCall_viidi(i,e,n,r,o)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;ot.setThrew(1,0)}},invoke_viddiii:function(i,e,n,r,o,f,a){try{t.dynCall_viddiii(i,e,n,r,o,f,a)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;ot.setThrew(1,0)}},invoke_vidii:function(i,e,n,r,o){try{t.dynCall_vidii(i,e,n,r,o)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;ot.setThrew(1,0)}},invoke_iiiii:function(i,e,n,r,o){try{return t.dynCall_iiiii(i,e,n,r,o)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;ot.setThrew(1,0)}},invoke_vidi:function(i,e,n,r){try{t.dynCall_vidi(i,e,n,r)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;ot.setThrew(1,0)}},invoke_diiiiiiii:function(i,e,n,r,o,f,a,s,c){try{return t.dynCall_diiiiiiii(i,e,n,r,o,f,a,s,c)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;ot.setThrew(1,0)}},invoke_viiiiddddiid:function(i,e,n,r,o,f,a,s,c,u,h,l){try{t.dynCall_viiiiddddiid(i,e,n,r,o,f,a,s,c,u,h,l)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;ot.setThrew(1,0)}},invoke_diiiii:function(i,e,n,r,o,f){try{return t.dynCall_diiiii(i,e,n,r,o,f)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;ot.setThrew(1,0)}},invoke_iiii:function(i,e,n,r){try{return t.dynCall_iiii(i,e,n,r)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;ot.setThrew(1,0)}},invoke_viiiiii:function(i,e,n,r,o,f,a){try{t.dynCall_viiiiii(i,e,n,r,o,f,a)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;ot.setThrew(1,0)}},invoke_iiid:function(i,e,n,r){try{return t.dynCall_iiid(i,e,n,r)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;ot.setThrew(1,0)}},invoke_di:function(i,e){try{return t.dynCall_di(i,e)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;ot.setThrew(1,0)}},invoke_iiiiiii:function(i,e,n,r,o,f,a){try{return t.dynCall_iiiiiii(i,e,n,r,o,f,a)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;ot.setThrew(1,0)}},invoke_diiidii:function(i,e,n,r,o,f,a){try{return t.dynCall_diiidii(i,e,n,r,o,f,a)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;ot.setThrew(1,0)}},invoke_viidii:function(i,e,n,r,o,f){try{t.dynCall_viidii(i,e,n,r,o,f)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;ot.setThrew(1,0)}},invoke_viiiiiiiii:function(i,e,n,r,o,f,a,s,c,u){try{t.dynCall_viiiiiiiii(i,e,n,r,o,f,a,s,c,u)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;ot.setThrew(1,0)}},invoke_viiiiiiiiii:function(i,e,n,r,o,f,a,s,c,u,h){try{t.dynCall_viiiiiiiiii(i,e,n,r,o,f,a,s,c,u,h)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;ot.setThrew(1,0)}},invoke_iii:function(i,e,n){try{return t.dynCall_iii(i,e,n)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;ot.setThrew(1,0)}},invoke_diii:function(i,e,n,r){try{return t.dynCall_diii(i,e,n,r)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;ot.setThrew(1,0)}},invoke_diiiiiiiiii:function(i,e,n,r,o,f,a,s,c,u,h){try{return t.dynCall_diiiiiiiiii(i,e,n,r,o,f,a,s,c,u,h)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;ot.setThrew(1,0)}},invoke_viiiid:function(i,e,n,r,o,f){try{t.dynCall_viiiid(i,e,n,r,o,f)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;ot.setThrew(1,0)}},invoke_diiiiiiiii:function(i,e,n,r,o,f,a,s,c,u){try{return t.dynCall_diiiiiiiii(i,e,n,r,o,f,a,s,c,u)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;ot.setThrew(1,0)}},invoke_did:function(i,e,n){try{return t.dynCall_did(i,e,n)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;ot.setThrew(1,0)}},invoke_viiiidddddidi:function(i,e,n,r,o,f,a,s,c,u,h,l,d){try{t.dynCall_viiiidddddidi(i,e,n,r,o,f,a,s,c,u,h,l,d)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;ot.setThrew(1,0)}},invoke_diidii:function(i,e,n,r,o,f){try{return t.dynCall_diidii(i,e,n,r,o,f)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;ot.setThrew(1,0)}},invoke_diiii:function(i,e,n,r,o){try{return t.dynCall_diiii(i,e,n,r,o)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;ot.setThrew(1,0)}},invoke_iiiiiiiiii:function(i,e,n,r,o,f,a,s,c,u){try{return t.dynCall_iiiiiiiiii(i,e,n,r,o,f,a,s,c,u)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;ot.setThrew(1,0)}},invoke_viiid:function(i,e,n,r,o){try{t.dynCall_viiid(i,e,n,r,o)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;ot.setThrew(1,0)}},invoke_viii:function(i,e,n,r){try{t.dynCall_viii(i,e,n,r)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;ot.setThrew(1,0)}},invoke_v:function(i){try{t.dynCall_v(i)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;ot.setThrew(1,0)}},invoke_viid:function(i,e,n,r){try{t.dynCall_viid(i,e,n,r)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;ot.setThrew(1,0)}},invoke_iidid:function(i,e,n,r,o){try{return t.dynCall_iidid(i,e,n,r,o)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;ot.setThrew(1,0)}},invoke_viiii:function(i,e,n,r,o){try{t.dynCall_viiii(i,e,n,r,o)}catch(i){if("number"!=typeof i&&"longjmp"!==i)throw i;ot.setThrew(1,0)}},Yc:yi,Qc:function(i,t,e,n){return Fi.getSocket(i)?Vi(i,t,e):(Ci(ji.EBADF),-1)},Zc:Ei,Jc:Hi,Ve:function(i){return x[i|0]?0:(x[i|0]=1,1)},iu:Ji,Ue:function(i,t,e){return tt(i,t,L[e>>2])},tu:qi,eu:function i(e,n){-1==e&&(e=xi),-1==n&&(n=L[e-8>>2]);var r=Array.prototype.slice.call(arguments,2);_(n),t.ta(n),i.buffer||(i.buffer=Qi(4)),L[i.buffer>>2]=e,e=i.buffer;for(var o=0;o<r.length;o++)if(r[o]&&t.$f(r[o],n,e))return e=L[e>>2],0|(ot.setTempRet0(r[o]),e);return e=L[e>>2],0|(ot.setTempRet0(n),e)},nu:function(i){},Ge:function(){},ru:function(i,t,e,n){var r=Ni.getStream(i);if(!r)return Ci(ji.EBADF),-1;try{var o=x;return Ni.write(r,o,t,e,n)}catch(i){return Ni.handleFSError(i),-1}},We:function(i){var t=Array.prototype.slice.call(arguments,1);return+h.getAsmConst(i,t.length).apply(null,t)},ou:Ci,fu:ki,ze:function i(t){var e=i;e.called||(N=N+4095&-4096,e.called=!0,_(h.dynamicAlloc),e.alloc=h.dynamicAlloc,h.dynamicAlloc=function(){qa("cannot dynamically allocate, sbrk now has control")});var n=N;return 0!=t&&e.alloc(t),n},au:Xi,su:function(i){return Si.uncaught_exception--,Ki.push(xi),i},Xe:function(i,t,e){return M.set(M.subarray(t,t+e),i),i},cu:Ui,uu:function(i){throw xi||(xi=i),i+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."},$e:function(){return Hi.apply(null,arguments)},He:function(i){switch(i){case 30:return 4096;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 79:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return"object"==typeof navigator&&navigator.hardwareConcurrency||1}return Ci(ji.EINVAL),-1},qe:function(i){return Wi[i]||0},hu:Si,lu:Mi,du:Yi,Ke:function i(t,e){i.seen||(i.seen={}),t in i.seen||(h.dynCall("v",e),i.seen[t]=1)},vu:Bi,Ye:function(i,t){return 0==i?ji.EINVAL:(L[i>>2]=zi,Wi[zi]=0,zi++,0)},bu:Vi,Qe:function(){return gi},Ze:function(i,t){return i in Wi?(Wi[i]=t,0):ji.EINVAL},Je:Gi,tn:function i(t,e,n){if(!i.initialized){try{L[__ZTVN10__cxxabiv119__pointer_type_infoE>>2]=0}catch(i){}try{L[__ZTVN10__cxxabiv117__class_type_infoE>>2]=1}catch(i){}try{L[__ZTVN10__cxxabiv120__si_class_type_infoE>>2]=2}catch(i){}i.initialized=!0}var r=t-8;throw L[r>>2]=e,L[r+4>>2]=n,xi=t,"uncaught_exception"in Si?Si.uncaught_exception++:Si.uncaught_exception=1,t+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."},en:function(){t.abort()},nn:function(i){return Qi(i+8)+8},_u:Zi,rn:function(i){var t=Math.floor(Date.now()/1e3);return i&&(L[i>>2]=t),t},wu:tt,fn:function(i){var t=Date.now();return L[i>>2]=Math.floor(t/1e3),L[i+4>>2]=Math.floor(1e3*(t-1e3*Math.floor(t/1e3))),0},pu:it,an:function(){qa("trap!")},sn:function(){throw b=!0,"Pure virtual function called!"},STACKTOP:P,STACK_MAX:O,tempDoublePtr:mi,ABORT:b,cttz_i8:rt,ctlz_i8:nt,NaN:NaN,Infinity:1/0,Fe:Pi},U),ft=t.cn=ot.cn,at=t.un=ot.un,st=t.hn=ot.hn,ct=t.ln=ot.ln,ut=t.dn=ot.dn,ht=t.vn=ot.vn,lt=t.bn=ot.bn,dt=t._n=ot._n,vt=t.wn=ot.wn,bt=t.pn=ot.pn,_t=t.mn=ot.mn,wt=t.yn=ot.yn,pt=t.kn=ot.kn,mt=t.gn=ot.gn,yt=t.Cn=ot.Cn,kt=t.jn=ot.jn,gt=t.Sn=ot.Sn,Ct=t.xn=ot.xn,jt=t.Mn=ot.Mn,St=t.En=ot.En,xt=t.Tn=ot.Tn,Mt=t.Ln=ot.Ln,Et=t.In=ot.In,Tt=t.An=ot.An,Lt=t.Dn=ot.Dn,It=t.On=ot.On,At=t.Rn=ot.Rn,Dt=t.Pn=ot.Pn,Ot=t.Nn=ot.Nn,Rt=t.Bn=ot.Bn,Pt=t.Fn=ot.Fn,Nt=t.Vn=ot.Vn,Bt=t.Un=ot.Un,Ft=t.Gn=ot.Gn,Vt=t.Wn=ot.Wn,Ut=t.zn=ot.zn,Gt=t.Xn=ot.Xn,Wt=t.$n=ot.$n,zt=t.Hn=ot.Hn,Xt=t.qn=ot.qn,$t=t.Kn=ot.Kn,Ht=t.Yn=ot.Yn,qt=t.Qn=ot.Qn,Kt=t.Zn=ot.Zn,Yt=t.Jn=ot.Jn,Qt=t.ir=ot.ir,Zt=t.tr=ot.tr,Jt=t.er=ot.er,ie=t.nr=ot.nr,te=t.rr=ot.rr,ee=t.ar=ot.ar,ne=t.sr=ot.sr,re=t.cr=ot.cr,oe=t.ur=ot.ur,fe=t.hr=ot.hr,Qi=t.Ne=ot.Ne,ae=t.lr=ot.lr,se=t.dr=ot.dr,ce=t.vr=ot.vr,ue=t.br=ot.br,he=t._r=ot._r,le=t.wr=ot.wr,de=t.pr=ot.pr,ve=t.mr=ot.mr,be=t.yr=ot.yr,_e=t.kr=ot.kr,we=t.gr=ot.gr,pe=t.Cr=ot.Cr,me=t.jr=ot.jr,ye=t.Sr=ot.Sr,ke=t.Mr=ot.Mr,ge=t.Er=ot.Er,Ce=t.Tr=ot.Tr,je=t.Lr=ot.Lr,Se=t.Ir=ot.Ir,xe=t.Ar=ot.Ar,Me=t.Dr=ot.Dr,Ee=t.Or=ot.Or,Te=t.Rr=ot.Rr,Le=t.Pr=ot.Pr,Ie=t.Nr=ot.Nr,Ae=t.Br=ot.Br,De=t.Fr=ot.Fr,Oe=t.Vr=ot.Vr,Re=t.Ur=ot.Ur,Pe=t.Gr=ot.Gr,Ne=t.Wr=ot.Wr,Be=t.zr=ot.zr,Fe=t.Xr=ot.Xr,Ve=t.$r=ot.$r,Ue=t.Hr=ot.Hr,Ge=t.qr=ot.qr,We=t.Kr=ot.Kr,ze=t.Yr=ot.Yr,Xe=t.Qr=ot.Qr,$e=t.Zr=ot.Zr,He=t.Jr=ot.Jr,qe=t.io=ot.io,Ke=t.eo=ot.eo,Ye=t.no=ot.no,Qe=t.ro=ot.ro,Ze=t.oo=ot.oo,Je=t.fo=ot.fo,tn=t.ao=ot.ao,en=t.so=ot.so,nn=t.co=ot.co,rn=t.uo=ot.uo,on=t.ho=ot.ho,fn=t.lo=ot.lo,an=t.do=ot.do,sn=t.vo=ot.vo,cn=t.bo=ot.bo,un=t._o=ot._o,hn=t.wo=ot.wo,ln=t.po=ot.po,dn=t.mo=ot.mo,vn=t.yo=ot.yo,bn=t.ko=ot.ko,_n=t.Co=ot.Co,wn=t.jo=ot.jo,pn=t.So=ot.So,mn=t.xo=ot.xo,yn=t.Mo=ot.Mo,kn=t.Eo=ot.Eo,gn=t.To=ot.To,Cn=t.Lo=ot.Lo,jn=t.Io=ot.Io,Sn=t.Ao=ot.Ao,xn=t.Do=ot.Do,Mn=t.Oo=ot.Oo,En=t.Ro=ot.Ro,Tn=t.Po=ot.Po,Ln=t.No=ot.No,In=t.Bo=ot.Bo,An=t.Fo=ot.Fo,Dn=t.Vo=ot.Vo,On=t.Uo=ot.Uo,Rn=t.Go=ot.Go,Pn=t.Wo=ot.Wo,Nn=t.Me=ot.Me,Bn=t.zo=ot.zo,Fn=t.Xo=ot.Xo,Vn=t.$o=ot.$o,Un=t.Ho=ot.Ho,Gn=t.qo=ot.qo,Wn=t.Ko=ot.Ko,zn=t.Yo=ot.Yo,Xn=t.Qo=ot.Qo,$n=t.Zo=ot.Zo,Hn=t.Jo=ot.Jo,qn=t.if=ot.if,Kn=t.tf=ot.tf,Yn=t.ef=ot.ef,Qn=t.nf=ot.nf,Zn=t.rf=ot.rf,Jn=t.ff=ot.ff,ir=t.af=ot.af,tr=t.sf=ot.sf,er=t.cf=ot.cf,nr=t.uf=ot.uf,rr=t.hf=ot.hf,or=t.lf=ot.lf,fr=t.df=ot.df,ar=t.vf=ot.vf,sr=t.bf=ot.bf,cr=t._f=ot._f,ur=t.wf=ot.wf,hr=t.pf=ot.pf,lr=t.mf=ot.mf,dr=t.yf=ot.yf,vr=t.kf=ot.kf,br=t.gf=ot.gf,_r=t.Cf=ot.Cf,wr=t.Pe=ot.Pe,pr=t.jf=ot.jf,mr=t.Sf=ot.Sf,yr=t.xf=ot.xf,kr=t.Te=ot.Te,gr=t.Mf=ot.Mf,Cr=t.Ef=ot.Ef,jr=t.Tf=ot.Tf,Sr=t.Lf=ot.Lf,xr=t.If=ot.If,Mr=t.Af=ot.Af,Er=t.Df=ot.Df,Tr=t.Of=ot.Of,Lr=t.Rf=ot.Rf,Ir=t.Pf=ot.Pf,Ar=t.Nf=ot.Nf,Dr=t.Bf=ot.Bf,Or=t.Ff=ot.Ff,Rr=t.Vf=ot.Vf,Pr=t.Uf=ot.Uf,Nr=t.Gf=ot.Gf,Br=t.Wf=ot.Wf,Fr=t.zf=ot.zf,Vr=t.Xf=ot.Xf,Ur=(t.$f=ot.$f,t.Hf=ot.Hf),Gr=t.qf=ot.qf,Wr=t.Kf=ot.Kf,zr=t.Yf=ot.Yf,Xr=t.Qf=ot.Qf,$r=t.Zf=ot.Zf,Hr=t.Jf=ot.Jf,qr=t.ia=ot.ia,Kr=(t.ta=ot.ta,t.ea=ot.ea),Yr=t.na=ot.na,Qr=t.ra=ot.ra,Zr=t.oa=ot.oa,Jr=t.fa=ot.fa,io=t.aa=ot.aa,to=t.sa=ot.sa,eo=t.ca=ot.ca,no=t.ua=ot.ua,ro=t.ha=ot.ha,oo=t.la=ot.la,fo=t.da=ot.da,ao=t.va=ot.va,so=t.ba=ot.ba,co=t._a=ot._a,uo=t.wa=ot.wa,ho=t.pa=ot.pa,lo=t.ma=ot.ma,vo=t.ya=ot.ya,bo=t.ka=ot.ka,_o=t.ga=ot.ga,wo=t.Ca=ot.Ca,po=t.ja=ot.ja,mo=t.Sa=ot.Sa,yo=t.Ma=ot.Ma,ko=t.Ea=ot.Ea,go=t.Ta=ot.Ta,Co=t.La=ot.La,jo=t.Ia=ot.Ia,So=t.Aa=ot.Aa,xo=t.Da=ot.Da,Mo=t.Oa=ot.Oa,Eo=t.Ra=ot.Ra,To=t.Pa=ot.Pa,Lo=t.Na=ot.Na,Io=t.Ba=ot.Ba,Ao=t.Fa=ot.Fa,Do=t.Va=ot.Va,Oo=t.Ua=ot.Ua,Ro=t.Ga=ot.Ga,Po=t.Wa=ot.Wa,No=t.za=ot.za,Bo=t.Xa=ot.Xa,Fo=t.$a=ot.$a,Vo=t.Ha=ot.Ha,Uo=t.qa=ot.qa,Go=t.Ka=ot.Ka,Wo=t.Ya=ot.Ya,zo=t.Qa=ot.Qa,Xo=t.Za=ot.Za,$o=t.Oe=ot.Oe,Ho=t.Ja=ot.Ja,qo=t.ts=ot.ts,Ko=t.es=ot.es,Yo=t.ns=ot.ns,Qo=t.fs=ot.fs,Zo=t.ss=ot.ss,Jo=t.cs=ot.cs,tf=t.us=ot.us,ef=t.hs=ot.hs,nf=t.ls=ot.ls,rf=t.ds=ot.ds,of=t.vs=ot.vs,ff=t.bs=ot.bs,af=t._s=ot._s,sf=t.ws=ot.ws,cf=t.ps=ot.ps,uf=t.ys=ot.ys,hf=t.ks=ot.ks,lf=t.gs=ot.gs,df=t.Re=ot.Re,vf=t.Cs=ot.Cs,bf=t.js=ot.js,_f=t.Ss=ot.Ss,wf=t.xs=ot.xs,pf=t.Ms=ot.Ms,mf=t.Es=ot.Es,yf=t.Ts=ot.Ts,kf=t.Ls=ot.Ls,gf=t.Is=ot.Is,Cf=t.As=ot.As,jf=t.Ds=ot.Ds,Sf=t.Os=ot.Os,xf=t.Rs=ot.Rs,Mf=t.Ps=ot.Ps,Ef=t.Ns=ot.Ns,Tf=t.Bs=ot.Bs,Lf=t.Fs=ot.Fs,If=t.Vs=ot.Vs,Af=t.Us=ot.Us,Df=t.Gs=ot.Gs,Of=t.Ws=ot.Ws,Rf=t.zs=ot.zs,Pf=t.Xs=ot.Xs,Nf=t.$s=ot.$s,Bf=t.Hs=ot.Hs,Ff=t.qs=ot.qs,Vf=t.Ks=ot.Ks,Uf=t.Ys=ot.Ys,Gf=t.Qs=ot.Qs,Wf=t.Zs=ot.Zs,zf=t.Js=ot.Js,Xf=t.tc=ot.tc,$f=t.ec=ot.ec,Hf=t.Be=ot.Be,qf=t.nc=ot.nc,Kf=t.rc=ot.rc,Yf=t.oc=ot.oc,Qf=t.fc=ot.fc,Zf=t.ac=ot.ac,Jf=t.sc=ot.sc,ia=t.cc=ot.cc,ta=t.uc=ot.uc,ea=t.Ee=ot.Ee,na=t.hc=ot.hc,ra=t.lc=ot.lc,oa=t.dc=ot.dc,fa=t.vc=ot.vc,aa=t.bc=ot.bc,sa=t._c=ot._c,ca=t.wc=ot.wc,ua=t.mc=ot.mc,ha=t.yc=ot.yc,la=t.kc=ot.kc,da=t.gc=ot.gc,va=t.Cc=ot.Cc,ba=t.jc=ot.jc,_a=t.Sc=ot.Sc,wa=t.xc=ot.xc,pa=t.Mc=ot.Mc,ma=t.Ec=ot.Ec,ya=t.Tc=ot.Tc,ka=t.Lc=ot.Lc,ga=t.Ic=ot.Ic,Ca=t.Ac=ot.Ac,ja=t.Dc=ot.Dc,Sa=t.Oc=ot.Oc,xa=t.Rc=ot.Rc,Ma=t.Pc=ot.Pc,Ea=t.Nc=ot.Nc,Ta=t.Bc=ot.Bc,La=t.Fc=ot.Fc,Ia=t.Vc=ot.Vc,Aa=t.Uc=ot.Uc,Da=t.Gc=ot.Gc,Oa=t.Wc=ot.Wc,Ra=t.zc=ot.zc,Pa=t.Xc=ot.Xc,Na=t.$c=ot.$c,Ba=t.Hc=ot.Hc,Fa=t.qc=ot.qc,Va=t.Kc=ot.Kc;t.runPostSets=ot.runPostSets,t.dynCall_viiiii=ot.dynCall_viiiii,t.dynCall_vid=ot.dynCall_vid,t.dynCall_vi=ot.dynCall_vi,t.dynCall_viiidii=ot.dynCall_viiidii,t.dynCall_vii=ot.dynCall_vii,t.dynCall_iiiiiiiiiii=ot.dynCall_iiiiiiiiiii,t.dynCall_ii=ot.dynCall_ii,t.dynCall_viidi=ot.dynCall_viidi,t.dynCall_viddiii=ot.dynCall_viddiii,t.dynCall_vidii=ot.dynCall_vidii,t.dynCall_iiiii=ot.dynCall_iiiii,t.dynCall_vidi=ot.dynCall_vidi,t.dynCall_diiiiiiii=ot.dynCall_diiiiiiii,t.dynCall_viiiiddddiid=ot.dynCall_viiiiddddiid,t.dynCall_diiiii=ot.dynCall_diiiii,t.dynCall_iiii=ot.dynCall_iiii,t.dynCall_viiiiii=ot.dynCall_viiiiii,t.dynCall_iiid=ot.dynCall_iiid,t.dynCall_di=ot.dynCall_di,t.dynCall_iiiiiii=ot.dynCall_iiiiiii,t.dynCall_diiidii=ot.dynCall_diiidii,t.dynCall_viidii=ot.dynCall_viidii,t.dynCall_viiiiiiiii=ot.dynCall_viiiiiiiii,t.dynCall_viiiiiiiiii=ot.dynCall_viiiiiiiiii,t.dynCall_iii=ot.dynCall_iii,t.dynCall_diii=ot.dynCall_diii,t.dynCall_diiiiiiiiii=ot.dynCall_diiiiiiiiii,t.dynCall_viiiid=ot.dynCall_viiiid,t.dynCall_diiiiiiiii=ot.dynCall_diiiiiiiii,t.dynCall_did=ot.dynCall_did,t.dynCall_viiiidddddidi=ot.dynCall_viiiidddddidi,t.dynCall_diidii=ot.dynCall_diidii,t.dynCall_diiii=ot.dynCall_diiii,t.dynCall_iiiiiiiiii=ot.dynCall_iiiiiiiiii,t.dynCall_viiid=ot.dynCall_viiid,t.dynCall_viii=ot.dynCall_viii,t.dynCall_v=ot.dynCall_v,t.dynCall_viid=ot.dynCall_viid,t.dynCall_iidid=ot.dynCall_iidid,t.dynCall_viiii=ot.dynCall_viiii;h.stackAlloc=ot.stackAlloc,h.stackSave=ot.stackSave,h.stackRestore=ot.stackRestore,h.setTempRet0=ot.setTempRet0,h.getTempRet0=ot.getTempRet0;var Ua,Ga=function(){var i={math:{}};i.math.Long=function(i,t){this.low_=0|i,this.high_=0|t},i.math.Long.IntCache_={},i.math.Long.fromInt=function(t){if(-128<=t&&t<128){var e=i.math.Long.IntCache_[t];if(e)return e}var n=new i.math.Long(0|t,t<0?-1:0);return-128<=t&&t<128&&(i.math.Long.IntCache_[t]=n),n},i.math.Long.fromNumber=function(t){return isNaN(t)||!isFinite(t)?i.math.Long.ZERO:t<=-i.math.Long.TWO_PWR_63_DBL_?i.math.Long.MIN_VALUE:t+1>=i.math.Long.TWO_PWR_63_DBL_?i.math.Long.MAX_VALUE:t<0?i.math.Long.fromNumber(-t).negate():new i.math.Long(t%i.math.Long.TWO_PWR_32_DBL_|0,t/i.math.Long.TWO_PWR_32_DBL_|0)},i.math.Long.fromBits=function(t,e){return new i.math.Long(t,e)},i.math.Long.fromString=function(t,e){if(0==t.length)throw Error("number format error: empty string");var n=e||10;if(n<2||36<n)throw Error("radix out of range: "+n);if("-"==t.charAt(0))return i.math.Long.fromString(t.substring(1),n).negate();if(t.indexOf("-")>=0)throw Error('number format error: interior "-" character: '+t);for(var r=i.math.Long.fromNumber(Math.pow(n,8)),o=i.math.Long.ZERO,f=0;f<t.length;f+=8){var a=Math.min(8,t.length-f),s=parseInt(t.substring(f,f+a),n);if(a<8){var c=i.math.Long.fromNumber(Math.pow(n,a));o=o.multiply(c).add(i.math.Long.fromNumber(s))}else o=(o=o.multiply(r)).add(i.math.Long.fromNumber(s))}return o},i.math.Long.TWO_PWR_16_DBL_=65536,i.math.Long.TWO_PWR_24_DBL_=1<<24,i.math.Long.TWO_PWR_32_DBL_=i.math.Long.TWO_PWR_16_DBL_*i.math.Long.TWO_PWR_16_DBL_,i.math.Long.TWO_PWR_31_DBL_=i.math.Long.TWO_PWR_32_DBL_/2,i.math.Long.TWO_PWR_48_DBL_=i.math.Long.TWO_PWR_32_DBL_*i.math.Long.TWO_PWR_16_DBL_,i.math.Long.TWO_PWR_64_DBL_=i.math.Long.TWO_PWR_32_DBL_*i.math.Long.TWO_PWR_32_DBL_,i.math.Long.TWO_PWR_63_DBL_=i.math.Long.TWO_PWR_64_DBL_/2,i.math.Long.ZERO=i.math.Long.fromInt(0),i.math.Long.ONE=i.math.Long.fromInt(1),i.math.Long.NEG_ONE=i.math.Long.fromInt(-1),i.math.Long.MAX_VALUE=i.math.Long.fromBits(-1,2147483647),i.math.Long.MIN_VALUE=i.math.Long.fromBits(0,-2147483648),i.math.Long.TWO_PWR_24_=i.math.Long.fromInt(1<<24),i.math.Long.prototype.toInt=function(){return this.low_},i.math.Long.prototype.toNumber=function(){return this.high_*i.math.Long.TWO_PWR_32_DBL_+this.getLowBitsUnsigned()},i.math.Long.prototype.toString=function(t){var e=t||10;if(e<2||36<e)throw Error("radix out of range: "+e);if(this.isZero())return"0";if(this.isNegative()){if(this.equals(i.math.Long.MIN_VALUE)){var n=i.math.Long.fromNumber(e),r=this.div(n),o=r.multiply(n).subtract(this);return r.toString(e)+o.toInt().toString(e)}return"-"+this.negate().toString(e)}for(var f=i.math.Long.fromNumber(Math.pow(e,6)),a=(o=this,"");;){var s=o.div(f),c=o.subtract(s.multiply(f)).toInt().toString(e);if((o=s).isZero())return c+a;for(;c.length<6;)c="0"+c;a=""+c+a}},i.math.Long.prototype.getHighBits=function(){return this.high_},i.math.Long.prototype.getLowBits=function(){return this.low_},i.math.Long.prototype.getLowBitsUnsigned=function(){return this.low_>=0?this.low_:i.math.Long.TWO_PWR_32_DBL_+this.low_},i.math.Long.prototype.getNumBitsAbs=function(){if(this.isNegative())return this.equals(i.math.Long.MIN_VALUE)?64:this.negate().getNumBitsAbs();for(var t=0!=this.high_?this.high_:this.low_,e=31;e>0&&!(t&1<<e);e--);return 0!=this.high_?e+33:e+1},i.math.Long.prototype.isZero=function(){return 0==this.high_&&0==this.low_},i.math.Long.prototype.isNegative=function(){return this.high_<0},i.math.Long.prototype.isOdd=function(){return!(1&~this.low_)},i.math.Long.prototype.equals=function(i){return this.high_==i.high_&&this.low_==i.low_},i.math.Long.prototype.notEquals=function(i){return this.high_!=i.high_||this.low_!=i.low_},i.math.Long.prototype.lessThan=function(i){return this.compare(i)<0},i.math.Long.prototype.lessThanOrEqual=function(i){return this.compare(i)<=0},i.math.Long.prototype.greaterThan=function(i){return this.compare(i)>0},i.math.Long.prototype.greaterThanOrEqual=function(i){return this.compare(i)>=0},i.math.Long.prototype.compare=function(i){if(this.equals(i))return 0;var t=this.isNegative(),e=i.isNegative();return t&&!e?-1:!t&&e?1:this.subtract(i).isNegative()?-1:1},i.math.Long.prototype.negate=function(){return this.equals(i.math.Long.MIN_VALUE)?i.math.Long.MIN_VALUE:this.not().add(i.math.Long.ONE)},i.math.Long.prototype.add=function(t){var e=this.high_>>>16,n=65535&this.high_,r=this.low_>>>16,o=65535&this.low_,f=t.high_>>>16,a=65535&t.high_,s=t.low_>>>16,c=0,u=0,h=0,l=0;return h+=(l+=o+(65535&t.low_))>>>16,l&=65535,u+=(h+=r+s)>>>16,h&=65535,c+=(u+=n+a)>>>16,u&=65535,c+=e+f,c&=65535,i.math.Long.fromBits(h<<16|l,c<<16|u)},i.math.Long.prototype.subtract=function(i){return this.add(i.negate())},i.math.Long.prototype.multiply=function(t){if(this.isZero())return i.math.Long.ZERO;if(t.isZero())return i.math.Long.ZERO;if(this.equals(i.math.Long.MIN_VALUE))return t.isOdd()?i.math.Long.MIN_VALUE:i.math.Long.ZERO;if(t.equals(i.math.Long.MIN_VALUE))return this.isOdd()?i.math.Long.MIN_VALUE:i.math.Long.ZERO;if(this.isNegative())return t.isNegative()?this.negate().multiply(t.negate()):this.negate().multiply(t).negate();if(t.isNegative())return this.multiply(t.negate()).negate();if(this.lessThan(i.math.Long.TWO_PWR_24_)&&t.lessThan(i.math.Long.TWO_PWR_24_))return i.math.Long.fromNumber(this.toNumber()*t.toNumber());var e=this.high_>>>16,n=65535&this.high_,r=this.low_>>>16,o=65535&this.low_,f=t.high_>>>16,a=65535&t.high_,s=t.low_>>>16,c=65535&t.low_,u=0,h=0,l=0,d=0;return l+=(d+=o*c)>>>16,d&=65535,h+=(l+=r*c)>>>16,l&=65535,h+=(l+=o*s)>>>16,l&=65535,u+=(h+=n*c)>>>16,h&=65535,u+=(h+=r*s)>>>16,h&=65535,u+=(h+=o*a)>>>16,h&=65535,u+=e*c+n*s+r*a+o*f,u&=65535,i.math.Long.fromBits(l<<16|d,u<<16|h)},i.math.Long.prototype.div=function(t){if(t.isZero())throw Error("division by zero");if(this.isZero())return i.math.Long.ZERO;if(this.equals(i.math.Long.MIN_VALUE)){if(t.equals(i.math.Long.ONE)||t.equals(i.math.Long.NEG_ONE))return i.math.Long.MIN_VALUE;if(t.equals(i.math.Long.MIN_VALUE))return i.math.Long.ONE;if((r=this.shiftRight(1).div(t).shiftLeft(1)).equals(i.math.Long.ZERO))return t.isNegative()?i.math.Long.ONE:i.math.Long.NEG_ONE;var e=this.subtract(t.multiply(r));return r.add(e.div(t))}if(t.equals(i.math.Long.MIN_VALUE))return i.math.Long.ZERO;if(this.isNegative())return t.isNegative()?this.negate().div(t.negate()):this.negate().div(t).negate();if(t.isNegative())return this.div(t.negate()).negate();var n=i.math.Long.ZERO;for(e=this;e.greaterThanOrEqual(t);){for(var r=Math.max(1,Math.floor(e.toNumber()/t.toNumber())),o=Math.ceil(Math.log(r)/Math.LN2),f=o<=48?1:Math.pow(2,o-48),a=i.math.Long.fromNumber(r),s=a.multiply(t);s.isNegative()||s.greaterThan(e);)r-=f,s=(a=i.math.Long.fromNumber(r)).multiply(t);a.isZero()&&(a=i.math.Long.ONE),n=n.add(a),e=e.subtract(s)}return n},i.math.Long.prototype.modulo=function(i){return this.subtract(this.div(i).multiply(i))},i.math.Long.prototype.not=function(){return i.math.Long.fromBits(~this.low_,~this.high_)},i.math.Long.prototype.and=function(t){return i.math.Long.fromBits(this.low_&t.low_,this.high_&t.high_)},i.math.Long.prototype.or=function(t){return i.math.Long.fromBits(this.low_|t.low_,this.high_|t.high_)},i.math.Long.prototype.xor=function(t){return i.math.Long.fromBits(this.low_^t.low_,this.high_^t.high_)},i.math.Long.prototype.shiftLeft=function(t){if(0==(t&=63))return this;var e=this.low_;if(t<32){var n=this.high_;return i.math.Long.fromBits(e<<t,n<<t|e>>>32-t)}return i.math.Long.fromBits(0,e<<t-32)},i.math.Long.prototype.shiftRight=function(t){if(0==(t&=63))return this;var e=this.high_;if(t<32){var n=this.low_;return i.math.Long.fromBits(n>>>t|e<<32-t,e>>t)}return i.math.Long.fromBits(e>>t-32,e>=0?0:-1)},i.math.Long.prototype.shiftRightUnsigned=function(t){if(0==(t&=63))return this;var e=this.high_;if(t<32){var n=this.low_;return i.math.Long.fromBits(n>>>t|e<<32-t,e>>>t)}return 32==t?i.math.Long.fromBits(e,0):i.math.Long.fromBits(e>>>t-32,0)};var t,e="Modern Browser";function n(i,t,e){null!=i&&("number"==typeof i?this.fromNumber(i,t,e):null==t&&"string"!=typeof i?this.fromString(i,256):this.fromString(i,t))}function r(){return new n(null)}"Microsoft Internet Explorer"==e?(n.prototype.am=function(i,t,e,n,r,o){for(var f=32767&t,a=t>>15;--o>=0;){var s=32767&this[i],c=this[i++]>>15,u=a*s+c*f;r=((s=f*s+((32767&u)<<15)+e[n]+(1073741823&r))>>>30)+(u>>>15)+a*c+(r>>>30),e[n++]=1073741823&s}return r},t=30):"Netscape"!=e?(n.prototype.am=function(i,t,e,n,r,o){for(;--o>=0;){var f=t*this[i++]+e[n]+r;r=Math.floor(f/67108864),e[n++]=67108863&f}return r},t=26):(n.prototype.am=function(i,t,e,n,r,o){for(var f=16383&t,a=t>>14;--o>=0;){var s=16383&this[i],c=this[i++]>>14,u=a*s+c*f;r=((s=f*s+((16383&u)<<14)+e[n]+r)>>28)+(u>>14)+a*c,e[n++]=268435455&s}return r},t=28),n.prototype.DB=t,n.prototype.DM=(1<<t)-1,n.prototype.DV=1<<t;n.prototype.FV=Math.pow(2,52),n.prototype.F1=52-t,n.prototype.F2=2*t-52;var o,f,a=new Array;for(o="0".charCodeAt(0),f=0;f<=9;++f)a[o++]=f;for(o="a".charCodeAt(0),f=10;f<36;++f)a[o++]=f;for(o="A".charCodeAt(0),f=10;f<36;++f)a[o++]=f;function s(i){return"0123456789abcdefghijklmnopqrstuvwxyz".charAt(i)}function c(i,t){var e=a[i.charCodeAt(t)];return null==e?-1:e}function u(i){var t=r();return t.fromInt(i),t}function h(i){var t,e=1;return 0!=(t=i>>>16)&&(i=t,e+=16),0!=(t=i>>8)&&(i=t,e+=8),0!=(t=i>>4)&&(i=t,e+=4),0!=(t=i>>2)&&(i=t,e+=2),0!=(t=i>>1)&&(i=t,e+=1),e}function l(i){this.m=i}function d(i){this.m=i,this.mp=i.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<<i.DB-15)-1,this.mt2=2*i.t}l.prototype.convert=function(i){return i.s<0||i.compareTo(this.m)>=0?i.mod(this.m):i},l.prototype.revert=function(i){return i},l.prototype.reduce=function(i){i.divRemTo(this.m,null,i)},l.prototype.mulTo=function(i,t,e){i.multiplyTo(t,e),this.reduce(e)},l.prototype.sqrTo=function(i,t){i.squareTo(t),this.reduce(t)},d.prototype.convert=function(i){var t=r();return i.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),i.s<0&&t.compareTo(n.ZERO)>0&&this.m.subTo(t,t),t},d.prototype.revert=function(i){var t=r();return i.copyTo(t),this.reduce(t),t},d.prototype.reduce=function(i){for(;i.t<=this.mt2;)i[i.t++]=0;for(var t=0;t<this.m.t;++t){var e=32767&i[t],n=e*this.mpl+((e*this.mph+(i[t]>>15)*this.mpl&this.um)<<15)&i.DM;for(i[e=t+this.m.t]+=this.m.am(0,n,i,t,0,this.m.t);i[e]>=i.DV;)i[e]-=i.DV,i[++e]++}i.clamp(),i.drShiftTo(this.m.t,i),i.compareTo(this.m)>=0&&i.subTo(this.m,i)},d.prototype.mulTo=function(i,t,e){i.multiplyTo(t,e),this.reduce(e)},d.prototype.sqrTo=function(i,t){i.squareTo(t),this.reduce(t)},n.prototype.copyTo=function(i){for(var t=this.t-1;t>=0;--t)i[t]=this[t];i.t=this.t,i.s=this.s},n.prototype.fromInt=function(i){this.t=1,this.s=i<0?-1:0,i>0?this[0]=i:i<-1?this[0]=i+DV:this.t=0},n.prototype.fromString=function(i,t){var e;if(16==t)e=4;else if(8==t)e=3;else if(256==t)e=8;else if(2==t)e=1;else if(32==t)e=5;else{if(4!=t)return void this.fromRadix(i,t);e=2}this.t=0,this.s=0;for(var r=i.length,o=!1,f=0;--r>=0;){var a=8==e?255&i[r]:c(i,r);a<0?"-"==i.charAt(r)&&(o=!0):(o=!1,0==f?this[this.t++]=a:f+e>this.DB?(this[this.t-1]|=(a&(1<<this.DB-f)-1)<<f,this[this.t++]=a>>this.DB-f):this[this.t-1]|=a<<f,(f+=e)>=this.DB&&(f-=this.DB))}8==e&&128&i[0]&&(this.s=-1,f>0&&(this[this.t-1]|=(1<<this.DB-f)-1<<f)),this.clamp(),o&&n.ZERO.subTo(this,this)},n.prototype.clamp=function(){for(var i=this.s&this.DM;this.t>0&&this[this.t-1]==i;)--this.t},n.prototype.dlShiftTo=function(i,t){var e;for(e=this.t-1;e>=0;--e)t[e+i]=this[e];for(e=i-1;e>=0;--e)t[e]=0;t.t=this.t+i,t.s=this.s},n.prototype.drShiftTo=function(i,t){for(var e=i;e<this.t;++e)t[e-i]=this[e];t.t=Math.max(this.t-i,0),t.s=this.s},n.prototype.lShiftTo=function(i,t){var e,n=i%this.DB,r=this.DB-n,o=(1<<r)-1,f=Math.floor(i/this.DB),a=this.s<<n&this.DM;for(e=this.t-1;e>=0;--e)t[e+f+1]=this[e]>>r|a,a=(this[e]&o)<<n;for(e=f-1;e>=0;--e)t[e]=0;t[f]=a,t.t=this.t+f+1,t.s=this.s,t.clamp()},n.prototype.rShiftTo=function(i,t){t.s=this.s;var e=Math.floor(i/this.DB);if(e>=this.t)t.t=0;else{var n=i%this.DB,r=this.DB-n,o=(1<<n)-1;t[0]=this[e]>>n;for(var f=e+1;f<this.t;++f)t[f-e-1]|=(this[f]&o)<<r,t[f-e]=this[f]>>n;n>0&&(t[this.t-e-1]|=(this.s&o)<<r),t.t=this.t-e,t.clamp()}},n.prototype.subTo=function(i,t){for(var e=0,n=0,r=Math.min(i.t,this.t);e<r;)n+=this[e]-i[e],t[e++]=n&this.DM,n>>=this.DB;if(i.t<this.t){for(n-=i.s;e<this.t;)n+=this[e],t[e++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;e<i.t;)n-=i[e],t[e++]=n&this.DM,n>>=this.DB;n-=i.s}t.s=n<0?-1:0,n<-1?t[e++]=this.DV+n:n>0&&(t[e++]=n),t.t=e,t.clamp()},n.prototype.multiplyTo=function(i,t){var e=this.abs(),r=i.abs(),o=e.t;for(t.t=o+r.t;--o>=0;)t[o]=0;for(o=0;o<r.t;++o)t[o+e.t]=e.am(0,r[o],t,o,0,e.t);t.s=0,t.clamp(),this.s!=i.s&&n.ZERO.subTo(t,t)},n.prototype.squareTo=function(i){for(var t=this.abs(),e=i.t=2*t.t;--e>=0;)i[e]=0;for(e=0;e<t.t-1;++e){var n=t.am(e,t[e],i,2*e,0,1);(i[e+t.t]+=t.am(e+1,2*t[e],i,2*e+1,n,t.t-e-1))>=t.DV&&(i[e+t.t]-=t.DV,i[e+t.t+1]=1)}i.t>0&&(i[i.t-1]+=t.am(e,t[e],i,2*e,0,1)),i.s=0,i.clamp()},n.prototype.divRemTo=function(i,t,e){var o=i.abs();if(!(o.t<=0)){var f=this.abs();if(f.t<o.t)return null!=t&&t.fromInt(0),void(null!=e&&this.copyTo(e));null==e&&(e=r());var a=r(),s=this.s,c=i.s,u=this.DB-h(o[o.t-1]);u>0?(o.lShiftTo(u,a),f.lShiftTo(u,e)):(o.copyTo(a),f.copyTo(e));var l=a.t,d=a[l-1];if(0!=d){var v=d*(1<<this.F1)+(l>1?a[l-2]>>this.F2:0),b=this.FV/v,_=(1<<this.F1)/v,w=1<<this.F2,p=e.t,m=p-l,y=null==t?r():t;for(a.dlShiftTo(m,y),e.compareTo(y)>=0&&(e[e.t++]=1,e.subTo(y,e)),n.ONE.dlShiftTo(l,y),y.subTo(a,a);a.t<l;)a[a.t++]=0;for(;--m>=0;){var k=e[--p]==d?this.DM:Math.floor(e[p]*b+(e[p-1]+w)*_);if((e[p]+=a.am(0,k,e,m,0,l))<k)for(a.dlShiftTo(m,y),e.subTo(y,e);e[p]<--k;)e.subTo(y,e)}null!=t&&(e.drShiftTo(l,t),s!=c&&n.ZERO.subTo(t,t)),e.t=l,e.clamp(),u>0&&e.rShiftTo(u,e),s<0&&n.ZERO.subTo(e,e)}}},n.prototype.invDigit=function(){if(this.t<1)return 0;var i=this[0];if(!(1&i))return 0;var t=3&i;return(t=(t=(t=(t=t*(2-(15&i)*t)&15)*(2-(255&i)*t)&255)*(2-((65535&i)*t&65535))&65535)*(2-i*t%this.DV)%this.DV)>0?this.DV-t:-t},n.prototype.isEven=function(){return 0==(this.t>0?1&this[0]:this.s)},n.prototype.exp=function(i,t){if(i>4294967295||i<1)return n.ONE;var e=r(),o=r(),f=t.convert(this),a=h(i)-1;for(f.copyTo(e);--a>=0;)if(t.sqrTo(e,o),(i&1<<a)>0)t.mulTo(o,f,e);else{var s=e;e=o,o=s}return t.revert(e)},n.prototype.toString=function(i){if(this.s<0)return"-"+this.negate().toString(i);var t;if(16==i)t=4;else if(8==i)t=3;else if(2==i)t=1;else if(32==i)t=5;else{if(4!=i)return this.toRadix(i);t=2}var e,n=(1<<t)-1,r=!1,o="",f=this.t,a=this.DB-f*this.DB%t;if(f-- >0)for(a<this.DB&&(e=this[f]>>a)>0&&(r=!0,o=s(e));f>=0;)a<t?(e=(this[f]&(1<<a)-1)<<t-a,e|=this[--f]>>(a+=this.DB-t)):(e=this[f]>>(a-=t)&n,a<=0&&(a+=this.DB,--f)),e>0&&(r=!0),r&&(o+=s(e));return r?o:"0"},n.prototype.negate=function(){var i=r();return n.ZERO.subTo(this,i),i},n.prototype.abs=function(){return this.s<0?this.negate():this},n.prototype.compareTo=function(i){var t=this.s-i.s;if(0!=t)return t;var e=this.t;if(0!=(t=e-i.t))return this.s<0?-t:t;for(;--e>=0;)if(0!=(t=this[e]-i[e]))return t;return 0},n.prototype.bitLength=function(){return this.t<=0?0:this.DB*(this.t-1)+h(this[this.t-1]^this.s&this.DM)},n.prototype.mod=function(i){var t=r();return this.abs().divRemTo(i,null,t),this.s<0&&t.compareTo(n.ZERO)>0&&i.subTo(t,t),t},n.prototype.modPowInt=function(i,t){var e;return e=i<256||t.isEven()?new l(t):new d(t),this.exp(i,e)},n.ZERO=u(0),n.ONE=u(1),n.prototype.fromRadix=function(i,t){this.fromInt(0),null==t&&(t=10);for(var e=this.chunkSize(t),r=Math.pow(t,e),o=!1,f=0,a=0,s=0;s<i.length;++s){var u=c(i,s);u<0?"-"==i.charAt(s)&&0==this.signum()&&(o=!0):(a=t*a+u,++f>=e&&(this.dMultiply(r),this.dAddOffset(a,0),f=0,a=0))}f>0&&(this.dMultiply(Math.pow(t,f)),this.dAddOffset(a,0)),o&&n.ZERO.subTo(this,this)},n.prototype.chunkSize=function(i){return Math.floor(Math.LN2*this.DB/Math.log(i))},n.prototype.signum=function(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1},n.prototype.dMultiply=function(i){this[this.t]=this.am(0,i-1,this,0,0,this.t),++this.t,this.clamp()},n.prototype.dAddOffset=function(i,t){if(0!=i){for(;this.t<=t;)this[this.t++]=0;for(this[t]+=i;this[t]>=this.DV;)this[t]-=this.DV,++t>=this.t&&(this[this.t++]=0),++this[t]}},n.prototype.toRadix=function(i){if(null==i&&(i=10),0==this.signum()||i<2||i>36)return"0";var t=this.chunkSize(i),e=Math.pow(i,t),n=u(e),o=r(),f=r(),a="";for(this.divRemTo(n,o,f);o.signum()>0;)a=(e+f.intValue()).toString(i).substr(1)+a,o.divRemTo(n,o,f);return f.intValue().toString(i)+a},n.prototype.intValue=function(){if(this.s<0){if(1==this.t)return this[0]-this.DV;if(0==this.t)return-1}else{if(1==this.t)return this[0];if(0==this.t)return 0}return(this[1]&(1<<32-this.DB)-1)<<this.DB|this[0]},n.prototype.addTo=function(i,t){for(var e=0,n=0,r=Math.min(i.t,this.t);e<r;)n+=this[e]+i[e],t[e++]=n&this.DM,n>>=this.DB;if(i.t<this.t){for(n+=i.s;e<this.t;)n+=this[e],t[e++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;e<i.t;)n+=i[e],t[e++]=n&this.DM,n>>=this.DB;n+=i.s}t.s=n<0?-1:0,n>0?t[e++]=n:n<-1&&(t[e++]=this.DV+n),t.t=e,t.clamp()};var v={abs:function(t,e){var n,r=new i.math.Long(t,e);n=r.isNegative()?r.negate():r,L[mi>>2]=n.low_,L[mi+4>>2]=n.high_},ensureTemps:function(){v.ensuredTemps||(v.ensuredTemps=!0,v.two32=new n,v.two32.fromString("4294967296",10),v.two64=new n,v.two64.fromString("18446744073709551616",10),v.temp1=new n,v.temp2=new n)},lh2bignum:function(i,t){var e=new n;e.fromString(t.toString(),10);var r=new n;e.multiplyTo(v.two32,r);var o=new n;o.fromString(i.toString(),10);var f=new n;return o.addTo(r,f),f},stringify:function(t,e,r){var o=new i.math.Long(t,e).toString();if(r&&"-"==o[0]){v.ensureTemps();var f=new n;f.fromString(o,10),o=new n,v.two64.addTo(f,o),o=o.toString(10)}return o},fromString:function(t,e,r,o,f){v.ensureTemps();var a=new n;a.fromString(t,e);var s=new n;s.fromString(r,10);var c=new n;if(c.fromString(o,10),f&&a.compareTo(n.ZERO)<0){var u=new n;a.addTo(v.two64,u),a=u}var h=!1;a.compareTo(s)<0?(a=s,h=!0):a.compareTo(c)>0&&(a=c,h=!0);var l=i.math.Long.fromString(a.toString());if(L[mi>>2]=l.low_,L[mi+4>>2]=l.high_,h)throw"range error"}};return v}();if(pi)if(t.memoryInitializerPrefixURL&&(pi=t.memoryInitializerPrefixURL+pi),r||a){var Wa=t.readBinary(pi);M.set(Wa,8)}else _i(),$i.asyncLoad(pi,function(i){M.set(i,8),wi()},function(i){throw"could not load memory initializer "+pi});function za(i){this.name="ExitStatus",this.message="Program terminated with exit("+i+")",this.status=i}za.prototype=new Error,za.prototype.constructor=za;var Xa=null;function $a(i){function e(){t.calledRun||(t.calledRun=!0,b||(K(),G(X),o&&null!==Xa&&t.printErr("pre-main prep time: "+(Date.now()-Xa)+" ms"),t.mu&&Ka&&t.callMain(i),function(){if(t.postRun)for("function"==typeof t.postRun&&(t.postRun=[t.postRun]);t.postRun.length;)Q(t.postRun.shift());G(H)}()))}i=i||t.arguments,null===Xa&&(Xa=Date.now()),di>0?t.printErr("run() called, but dependencies remain, so not running"):(!function(){if(t.preRun)for("function"==typeof t.preRun&&(t.preRun=[t.preRun]);t.preRun.length;)Y(t.preRun.shift());G(W)}(),di>0||t.calledRun||(t.setStatus?(t.setStatus("Running..."),setTimeout(function(){setTimeout(function(){t.setStatus("")},1),e()},1)):e()))}function Ha(i){if(!t.noExitRuntime)if(b=!0,P=Ua,G($),r)process.stdout.once("drain",function(){process.exit(i)}),console.log(" "),setTimeout(function(){process.exit(i)},500);else{if(!a||"function"!=typeof quit)throw new za(i);quit(i)}}function qa(i){i&&(t.print(i),t.printErr(i)),b=!0;throw"abort() at "+S()+"\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information."}if(bi=function i(){!t.calledRun&&Ka&&$a(),t.calledRun||(bi=i)},t.callMain=t.callMain=function(i){_(0==di,"cannot call main when async dependencies remain! (listen on __ATMAIN__)"),_(0==W.length,"cannot call main when preRun functions remain to be called"),i=i||[],K();var e=i.length+1;function n(){for(var i=0;i<3;i++)r.push(0)}var r=[g(Z(t.thisProgram),"i8",0)];n();for(var o=0;o<e-1;o+=1)r.push(g(Z(i[o]),"i8",0)),n();r.push(0),r=g(r,"i32",0),Ua=P;try{Ha(t.mu(e,r,0))}catch(i){if(i instanceof za)return;if("SimulateInfiniteLoop"==i)return void(t.noExitRuntime=!0);throw i&&"object"==typeof i&&i.stack&&t.printErr("exception thrown: "+[i,i.stack]),i}finally{0}},t.run=t.run=$a,t.exit=t.exit=Ha,t.abort=t.abort=qa,t.preInit)for("function"==typeof t.preInit&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.pop()();var Ka=!0;function Ya(){}function Qa(i){return(i||Ya).yu}function Za(i,t){var e=Qa(t),n=e[i];return n||((n=Object.create((t||Ya).prototype)).ptr=i,e[i]=n)}function Ja(i){return"string"==typeof i?g(Z(i),"i8",1):i}function is(){throw"cannot construct a btMatrix3x3, no constructor in IDL"}function ts(){this.ptr=ia(),Qa(ts)[this.ptr]=this}function es(i,t,e){if(i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),void 0===(e=e&&"object"==typeof e?e.ptr:Ja(e)))return this.ptr=_f(i,t),void(Qa(es)[this.ptr]=this);this.ptr=wf(i,t,e),Qa(es)[this.ptr]=this}function ns(){this.ptr=Gn(),Qa(ns)[this.ptr]=this}function rs(){this.ptr=Rr(),Qa(rs)[this.ptr]=this}function os(i,t){i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),this.ptr=Bo(i,t),Qa(os)[this.ptr]=this}function fs(i,t,e,n,r){return i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),e=e&&"object"==typeof e?e.ptr:Ja(e),n=n&&"object"==typeof n?n.ptr:Ja(n),r=r&&"object"==typeof r?r.ptr:Ja(r),void 0===e?(this.ptr=$e(i,t),void(Qa(fs)[this.ptr]=this)):void 0===n?(this.ptr=He(i,t,e),void(Qa(fs)[this.ptr]=this)):void 0===r?(this.ptr=Ye(i,t,e,n),void(Qa(fs)[this.ptr]=this)):(this.ptr=Qe(i,t,e,n,r),void(Qa(fs)[this.ptr]=this))}function as(i,t,e,n){if(i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),e=e&&"object"==typeof e?e.ptr:Ja(e),void 0===(n=n&&"object"==typeof n?n.ptr:Ja(n)))return this.ptr=Kr(i,t,e),void(Qa(as)[this.ptr]=this);this.ptr=Qr(i,t,e,n),Qa(as)[this.ptr]=this}function ss(){throw"cannot construct a btManifoldPoint, no constructor in IDL"}function cs(){throw"cannot construct a btStridingMeshInterface, no constructor in IDL"}function us(){throw"cannot construct a btBroadphaseInterface, no constructor in IDL"}function hs(){throw"cannot construct a btCollisionObject, no constructor in IDL"}function ls(i,t,e,n){i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),e=e&&"object"==typeof e?e.ptr:Ja(e),n=n&&"object"==typeof n?n.ptr:Ja(n),this.ptr=st(i,t,e,n),Qa(ls)[this.ptr]=this}function ds(i,t,e,n){return i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),e=e&&"object"==typeof e?e.ptr:Ja(e),n=n&&"object"==typeof n?n.ptr:Ja(n),void 0===e?(this.ptr=sf(i,t),void(Qa(ds)[this.ptr]=this)):void 0===n?(this.ptr=_emscripten_bind_btPoint2PointConstraint_btPoint2PointConstraint_3(i,t,e),void(Qa(ds)[this.ptr]=this)):(this.ptr=af(i,t,e,n),void(Qa(ds)[this.ptr]=this))}function vs(){throw"cannot construct a btMotionState, no constructor in IDL"}function bs(i,t,e,n){return i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),e=e&&"object"==typeof e?e.ptr:Ja(e),n=n&&"object"==typeof n?n.ptr:Ja(n),void 0===e?(this.ptr=an(i,t),void(Qa(bs)[this.ptr]=this)):void 0===n?(this.ptr=_emscripten_bind_btConeTwistConstraint_btConeTwistConstraint_3(i,t,e),void(Qa(bs)[this.ptr]=this)):(this.ptr=cn(i,t,e,n),void(Qa(bs)[this.ptr]=this))}function _s(i,t){i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),this.ptr=Fe(i,t),Qa(_s)[this.ptr]=this}function ws(i){if(void 0===(i=i&&"object"==typeof i?i.ptr:Ja(i)))return this.ptr=Ho(),void(Qa(ws)[this.ptr]=this);this.ptr=qo(i),Qa(ws)[this.ptr]=this}function ps(){throw"cannot construct a ContactResultCallback, no constructor in IDL"}function ms(i,t){i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),this.ptr=uo(i,t),Qa(ms)[this.ptr]=this}function ys(i,t){i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),this.ptr=on(i,t),Qa(ys)[this.ptr]=this}function ks(i,t){return i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),void 0===i?(this.ptr=ra(),void(Qa(ks)[this.ptr]=this)):void 0===t?(this.ptr=oa(i),void(Qa(ks)[this.ptr]=this)):(this.ptr=fa(i,t),void(Qa(ks)[this.ptr]=this))}function gs(){throw"cannot construct a btCollisionConfiguration, no constructor in IDL"}function Cs(){this.ptr=Go(),Qa(Cs)[this.ptr]=this}function js(i){i=i&&"object"==typeof i?i.ptr:Ja(i),this.ptr=Ut(i),Qa(js)[this.ptr]=this}function Ss(i){i=i&&"object"==typeof i?i.ptr:Ja(i),this.ptr=Tt(i),Qa(Ss)[this.ptr]=this}function xs(){this.ptr=da(),Qa(xs)[this.ptr]=this}function Ms(i){if(void 0===(i=i&&"object"==typeof i?i.ptr:Ja(i)))return this.ptr=sr(),void(Qa(Ms)[this.ptr]=this);this.ptr=cr(i),Qa(Ms)[this.ptr]=this}function Es(){throw"cannot construct a btCollisionObjectWrapper, no constructor in IDL"}function Ts(i,t){return i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),void 0===i?(this.ptr=bn(),void(Qa(Ts)[this.ptr]=this)):void 0===t?(this.ptr=_n(i),void(Qa(Ts)[this.ptr]=this)):(this.ptr=vn(i,t),void(Qa(Ts)[this.ptr]=this))}function Ls(){throw"cannot construct a btTriangleMeshShape, no constructor in IDL"}function Is(){throw"cannot construct a btDispatcher, no constructor in IDL"}function As(i,t){i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),this.ptr=Wo(i,t),Qa(As)[this.ptr]=this}function Ds(){throw"cannot construct a btDynamicsWorld, no constructor in IDL"}function Os(i,t){i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),this.ptr=ie(i,t),Qa(Os)[this.ptr]=this}function Rs(i,t,e,n){i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),e=e&&"object"==typeof e?e.ptr:Ja(e),n=n&&"object"==typeof n?n.ptr:Ja(n),this.ptr=At(i,t,e,n),Qa(Rs)[this.ptr]=this}function Ps(i,t){i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),this.ptr=Ea(i,t),Qa(Ps)[this.ptr]=this}function Ns(i){i=i&&"object"==typeof i?i.ptr:Ja(i),this.ptr=Dr(i),Qa(Ns)[this.ptr]=this}function Bs(){throw"cannot construct a RayResultCallback, no constructor in IDL"}function Fs(){throw"cannot construct a btWheelInfo, no constructor in IDL"}function Vs(){throw"cannot construct a btConcaveShape, no constructor in IDL"}function Us(i,t,e,n){return i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),e=e&&"object"==typeof e?e.ptr:Ja(e),n=n&&"object"==typeof n?n.ptr:Ja(n),void 0===i?(this.ptr=Pa(),void(Qa(Us)[this.ptr]=this)):void 0===t?(this.ptr=_emscripten_bind_btVector4_btVector4_1(i),void(Qa(Us)[this.ptr]=this)):void 0===e?(this.ptr=_emscripten_bind_btVector4_btVector4_2(i,t),void(Qa(Us)[this.ptr]=this)):void 0===n?(this.ptr=_emscripten_bind_btVector4_btVector4_3(i,t,e),void(Qa(Us)[this.ptr]=this)):(this.ptr=Na(i,t,e,n),void(Qa(Us)[this.ptr]=this))}function Gs(){throw"cannot construct a btActionInterface, no constructor in IDL"}function Ws(){throw"cannot construct a btOverlappingPairCache, no constructor in IDL"}function zs(i,t,e){return i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),e=e&&"object"==typeof e?e.ptr:Ja(e),void 0===i?(this.ptr=Lo(),void(Qa(zs)[this.ptr]=this)):void 0===t?(this.ptr=_emscripten_bind_btVector3_btVector3_1(i),void(Qa(zs)[this.ptr]=this)):void 0===e?(this.ptr=_emscripten_bind_btVector3_btVector3_2(i,t),void(Qa(zs)[this.ptr]=this)):(this.ptr=To(i,t,e),void(Qa(zs)[this.ptr]=this))}function Xs(){throw"cannot construct a btVehicleRaycaster, no constructor in IDL"}function $s(i){i=i&&"object"==typeof i?i.ptr:Ja(i),this.ptr=Lr(i),Qa($s)[this.ptr]=this}function Hs(){this.ptr=lo(),Qa(Hs)[this.ptr]=this}function qs(){throw"cannot construct a btCollisionShape, no constructor in IDL"}function Ks(){this.ptr=Bf(),Qa(Ks)[this.ptr]=this}function Ys(){throw"cannot construct a btConstraintSolver, no constructor in IDL"}function Qs(i,t,e){i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),e=e&&"object"==typeof e?e.ptr:Ja(e),this.ptr=pn(i,t,e),Qa(Qs)[this.ptr]=this}function Zs(i){i=i&&"object"==typeof i?i.ptr:Ja(i),this.ptr=Vn(i),Qa(Zs)[this.ptr]=this}function Js(i){i=i&&"object"==typeof i?i.ptr:Ja(i),this.ptr=xr(i),Qa(Js)[this.ptr]=this}function ic(i){i=i&&"object"==typeof i?i.ptr:Ja(i),this.ptr=fr(i),Qa(ic)[this.ptr]=this}function tc(i,t){return i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),void 0===i?(this.ptr=se(),void(Qa(tc)[this.ptr]=this)):void 0===t?(this.ptr=_emscripten_bind_btTransform_btTransform_1(i),void(Qa(tc)[this.ptr]=this)):(this.ptr=ae(i,t),void(Qa(tc)[this.ptr]=this))}function ec(){throw"cannot construct a btCollisionWorld, no constructor in IDL"}function nc(){throw"cannot construct a btQuadWord, no constructor in IDL"}function rc(i){i=i&&"object"==typeof i?i.ptr:Ja(i),this.ptr=Wr(i),Qa(rc)[this.ptr]=this}function oc(){throw"cannot construct a btTypedConstraint, no constructor in IDL"}return t.noInitialRun&&(Ka=!1),t.noExitRuntime=!0,$a(),Ya.prototype=Object.create(Ya.prototype),Ya.prototype.constructor=Ya,Ya.prototype.ku=Ya,Ya.yu={},t.WrapperObject=Ya,t.getCache=Qa,t.wrapPointer=Za,t.castObject=function(i,t){return Za(i.ptr,t)},t.NULL=Za(0),t.destroy=function(i){if(!i.gu)throw"Error: Cannot destroy object. (Did you create it yourself?)";i.gu(),delete Qa(i.ku)[i.ptr]},t.compare=function(i,t){return i.ptr===t.ptr},t.getPointer=function(i){return i.ptr},t.getClass=function(i){return i.ku},is.prototype=Object.create(Ya.prototype),is.prototype.constructor=is,is.prototype.ku=is,is.yu={},t.btMatrix3x3=is,is.prototype.setEulerZYX=function(i,t,e){var n=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),e=e&&"object"==typeof e?e.ptr:Ja(e),Rn(n,i,t,e)},is.prototype.gu=function(){var i=this.ptr;ve(i)},ts.prototype=Object.create(ps.prototype),ts.prototype.constructor=ts,ts.prototype.ku=ts,ts.yu={},t.ConcreteContactResultCallback=ts,ts.prototype.addSingleResult=function(i,t,e,n,r,o,f){var a=this.ptr;return i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),e=e&&"object"==typeof e?e.ptr:Ja(e),n=n&&"object"==typeof n?n.ptr:Ja(n),r=r&&"object"==typeof r?r.ptr:Ja(r),o=o&&"object"==typeof o?o.ptr:Ja(o),f=f&&"object"==typeof f?f.ptr:Ja(f),Or(a,i,t,e,n,r,o,f)},ts.prototype.gu=function(){var i=this.ptr;xo(i)},es.prototype=Object.create(Ls.prototype),es.prototype.constructor=es,es.prototype.ku=es,es.yu={},t.btBvhTriangleMeshShape=es,es.prototype.setLocalScaling=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Ht(t,i)},es.prototype.calculateLocalInertia=function(i,t){var e=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),Be(e,i,t)},es.prototype.gu=function(){var i=this.ptr;Qf(i)},ns.prototype=Object.create(Ya.prototype),ns.prototype.constructor=ns,ns.prototype.ku=ns,ns.yu={},t.btDbvtBroadphase=ns,ns.prototype.gu=function(){var i=this.ptr;No(i)},rs.prototype=Object.create(Ya.prototype),rs.prototype.constructor=rs,rs.prototype.ku=rs,rs.yu={},t.btSequentialImpulseConstraintSolver=rs,rs.prototype.gu=function(){var i=this.ptr;Ln(i)},os.prototype=Object.create(qs.prototype),os.prototype.constructor=os,os.prototype.ku=os,os.yu={},t.btCapsuleShape=os,os.prototype.setLocalScaling=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Fo(t,i)},os.prototype.calculateLocalInertia=function(i,t){var e=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),vf(e,i,t)},os.prototype.gu=function(){var i=this.ptr;xt(i)},fs.prototype=Object.create(Ya.prototype),fs.prototype.constructor=fs,fs.prototype.ku=fs,fs.yu={},t.btAxisSweep3=fs,fs.prototype.gu=function(){var i=this.ptr;go(i)},as.prototype=Object.create(Ya.prototype),as.prototype.constructor=as,as.prototype.ku=as,as.yu={},t.btRigidBodyConstructionInfo=as,as.prototype.get_m_linearDamping=function(){var i=this.ptr;return Ef(i)},as.prototype.set_m_linearDamping=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),pa(t,i)},as.prototype.get_m_angularDamping=function(){var i=this.ptr;return vt(i)},as.prototype.set_m_angularDamping=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Qt(t,i)},as.prototype.get_m_friction=function(){var i=this.ptr;return Jt(i)},as.prototype.set_m_friction=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Io(t,i)},as.prototype.get_m_rollingFriction=function(){var i=this.ptr;return ko(i)},as.prototype.set_m_rollingFriction=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Jr(t,i)},as.prototype.get_m_restitution=function(){var i=this.ptr;return Vf(i)},as.prototype.set_m_restitution=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Ft(t,i)},as.prototype.get_m_linearSleepingThreshold=function(){var i=this.ptr;return Lf(i)},as.prototype.set_m_linearSleepingThreshold=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Eo(t,i)},as.prototype.get_m_angularSleepingThreshold=function(){var i=this.ptr;return Ko(i)},as.prototype.set_m_angularSleepingThreshold=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),fe(t,i)},as.prototype.get_m_additionalDamping=function(){var i=this.ptr;return Wn(i)},as.prototype.set_m_additionalDamping=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),ma(t,i)},as.prototype.get_m_additionalDampingFactor=function(){var i=this.ptr;return Vo(i)},as.prototype.set_m_additionalDampingFactor=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),xn(t,i)},as.prototype.get_m_additionalLinearDampingThresholdSqr=function(){var i=this.ptr;return Je(i)},as.prototype.set_m_additionalLinearDampingThresholdSqr=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),In(t,i)},as.prototype.get_m_additionalAngularDampingThresholdSqr=function(){var i=this.ptr;return tr(i)},as.prototype.set_m_additionalAngularDampingThresholdSqr=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),jr(t,i)},as.prototype.get_m_additionalAngularDampingFactor=function(){var i=this.ptr;return Tn(i)},as.prototype.set_m_additionalAngularDampingFactor=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Ve(t,i)},as.prototype.gu=function(){var i=this.ptr;uf(i)},ss.prototype=Object.create(Ya.prototype),ss.prototype.constructor=ss,ss.prototype.ku=ss,ss.yu={},t.btManifoldPoint=ss,ss.prototype.getPositionWorldOnA=function(){var i=this.ptr;return Za(Rf(i),zs)},ss.prototype.getPositionWorldOnB=function(){var i=this.ptr;return Za(so(i),zs)},ss.prototype.get_m_localPointA=function(){var i=this.ptr;return Za(Mf(i),zs)},ss.prototype.set_m_localPointA=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Ue(t,i)},ss.prototype.get_m_localPointB=function(){var i=this.ptr;return Za(ua(i),zs)},ss.prototype.set_m_localPointB=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Ot(t,i)},ss.prototype.get_m_positionWorldOnB=function(){var i=this.ptr;return Za(Xn(i),zs)},ss.prototype.set_m_positionWorldOnB=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Dt(t,i)},ss.prototype.get_m_positionWorldOnA=function(){var i=this.ptr;return Za(co(i),zs)},ss.prototype.set_m_positionWorldOnA=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),sa(t,i)},ss.prototype.get_m_normalWorldOnB=function(){var i=this.ptr;return Za(Yf(i),zs)},ss.prototype.set_m_normalWorldOnB=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Gf(t,i)},ss.prototype.gu=function(){var i=this.ptr;Zr(i)},cs.prototype=Object.create(Ya.prototype),cs.prototype.constructor=cs,cs.prototype.ku=cs,cs.yu={},t.btStridingMeshInterface=cs,cs.prototype.gu=function(){var i=this.ptr;Sf(i)},us.prototype=Object.create(Ya.prototype),us.prototype.constructor=us,us.prototype.ku=us,us.yu={},t.btBroadphaseInterface=us,us.prototype.gu=function(){var i=this.ptr;jt(i)},hs.prototype=Object.create(Ya.prototype),hs.prototype.constructor=hs,hs.prototype.ku=hs,hs.yu={},t.btCollisionObject=hs,hs.prototype.getCollisionShape=function(){var i=this.ptr;return Za(Yr(i),qs)},hs.prototype.setContactProcessingThreshold=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Mn(t,i)},hs.prototype.setActivationState=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),ue(t,i)},hs.prototype.forceActivationState=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),kf(t,i)},hs.prototype.activate=function(i){var t=this.ptr;void 0!==(i=i&&"object"==typeof i?i.ptr:Ja(i))?Mt(t,i):Et(t)},hs.prototype.isActive=function(){var i=this.ptr;return at(i)},hs.prototype.setRestitution=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),mr(t,i)},hs.prototype.setFriction=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),to(t,i)},hs.prototype.getWorldTransform=function(){var i=this.ptr;return Za(lr(i),tc)},hs.prototype.getCollisionFlags=function(){var i=this.ptr;return Cn(i)},hs.prototype.setCollisionFlags=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),ef(t,i)},hs.prototype.gu=function(){var i=this.ptr;Mo(i)},ls.prototype=Object.create(Ds.prototype),ls.prototype.constructor=ls,ls.prototype.ku=ls,ls.yu={},t.btDiscreteDynamicsWorld=ls,ls.prototype.setGravity=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),mf(t,i)},ls.prototype.getGravity=function(){var i=this.ptr;return Za(Ao(i),zs)},ls.prototype.addRigidBody=function(i,t,e){var n=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),e=e&&"object"==typeof e?e.ptr:Ja(e),void 0!==t?void 0!==e?Mr(n,i,t,e):_emscripten_bind_btDiscreteDynamicsWorld_addRigidBody_2(n,i,t):Er(n,i)},ls.prototype.removeRigidBody=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Me(t,i)},ls.prototype.addConstraint=function(i,t){var e=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),void 0!==(t=t&&"object"==typeof t?t.ptr:Ja(t))?re(e,i,t):oe(e,i)},ls.prototype.removeConstraint=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Jf(t,i)},ls.prototype.stepSimulation=function(i,t,e){var n=this.ptr;return i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),e=e&&"object"==typeof e?e.ptr:Ja(e),void 0===t?wt(n,i):void 0===e?mt(n,i,t):pt(n,i,t,e)},ls.prototype.getDispatcher=function(){var i=this.ptr;return Za(Ur(i),Is)},ls.prototype.rayTest=function(i,t,e){var n=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),e=e&&"object"==typeof e?e.ptr:Ja(e),Ba(n,i,t,e)},ls.prototype.addAction=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Wf(t,i)},ls.prototype.gu=function(){var i=this.ptr;_r(i)},ds.prototype=Object.create(Ya.prototype),ds.prototype.constructor=ds,ds.prototype.ku=ds,ds.yu={},t.btPoint2PointConstraint=ds,ds.prototype.setPivotA=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),lf(t,i)},ds.prototype.setPivotB=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Ia(t,i)},ds.prototype.getPivotInA=function(){var i=this.ptr;return Za(Fr(i),zs)},ds.prototype.getPivotInB=function(){var i=this.ptr;return Za(Yo(i),zs)},ds.prototype.get_m_setting=function(){var i=this.ptr;return Za(Nt(i),Ks)},ds.prototype.set_m_setting=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),ha(t,i)},ds.prototype.gu=function(){var i=this.ptr;ne(i)},vs.prototype=Object.create(Ya.prototype),vs.prototype.constructor=vs,vs.prototype.ku=vs,vs.yu={},t.btMotionState=vs,vs.prototype.getWorldTransform=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Hr(t,i)},vs.prototype.setWorldTransform=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),mn(t,i)},vs.prototype.gu=function(){var i=this.ptr;tf(i)},bs.prototype=Object.create(oc.prototype),bs.prototype.constructor=bs,bs.prototype.ku=bs,bs.yu={},t.btConeTwistConstraint=bs,bs.prototype.setLimit=function(i,t){var e=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),Cf(e,i,t)},bs.prototype.gu=function(){var i=this.ptr;Do(i)},_s.prototype=Object.create(qs.prototype),_s.prototype.constructor=_s,_s.prototype.ku=_s,_s.yu={},t.btConeShape=_s,_s.prototype.setLocalScaling=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),oo(t,i)},_s.prototype.calculateLocalInertia=function(i,t){var e=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),Xf(e,i,t)},_s.prototype.gu=function(){var i=this.ptr;Ma(i)},ws.prototype=Object.create(Ya.prototype),ws.prototype.constructor=ws,ws.prototype.ku=ws,ws.yu={},t.btDefaultCollisionConfiguration=ws,ws.prototype.gu=function(){var i=this.ptr;eo(i)},ps.prototype=Object.create(Ya.prototype),ps.prototype.constructor=ps,ps.prototype.ku=ps,ps.yu={},t.ContactResultCallback=ps,ps.prototype.addSingleResult=function(i,t,e,n,r,o,f){var a=this.ptr;return i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),e=e&&"object"==typeof e?e.ptr:Ja(e),n=n&&"object"==typeof n?n.ptr:Ja(n),r=r&&"object"==typeof r?r.ptr:Ja(r),o=o&&"object"==typeof o?o.ptr:Ja(o),f=f&&"object"==typeof f?f.ptr:Ja(f),Qo(a,i,t,e,n,r,o,f)},ps.prototype.gu=function(){var i=this.ptr;Pf(i)},ms.prototype=Object.create(_s.prototype),ms.prototype.constructor=ms,ms.prototype.ku=ms,ms.yu={},t.btConeShapeZ=ms,ms.prototype.setLocalScaling=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),rr(t,i)},ms.prototype.calculateLocalInertia=function(i,t){var e=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),ke(e,i,t)},ms.prototype.gu=function(){var i=this.ptr;Ra(i)},ys.prototype=Object.create(_s.prototype),ys.prototype.constructor=ys,ys.prototype.ku=ys,ys.yu={},t.btConeShapeX=ys,ys.prototype.setLocalScaling=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),ln(t,i)},ys.prototype.calculateLocalInertia=function(i,t){var e=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),cf(e,i,t)},ys.prototype.gu=function(){var i=this.ptr;gn(i)},ks.prototype=Object.create(cs.prototype),ks.prototype.constructor=ks,ks.prototype.ku=ks,ks.yu={},t.btTriangleMesh=ks,ks.prototype.addTriangle=function(i,t,e,n){var r=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),e=e&&"object"==typeof e?e.ptr:Ja(e),void 0!==(n=n&&"object"==typeof n?n.ptr:Ja(n))?ja(r,i,t,e,n):Ca(r,i,t,e)},ks.prototype.gu=function(){var i=this.ptr;Co(i)},gs.prototype=Object.create(Ya.prototype),gs.prototype.constructor=gs,gs.prototype.ku=gs,gs.yu={},t.btCollisionConfiguration=gs,gs.prototype.gu=function(){var i=this.ptr;It(i)},Cs.prototype=Object.create(Ya.prototype),Cs.prototype.constructor=Cs,Cs.prototype.ku=Cs,Cs.yu={},t.btPersistentManifold=Cs,Cs.prototype.getBody0=function(){var i=this.ptr;return Za(rn(i),hs)},Cs.prototype.getBody1=function(){var i=this.ptr;return Za(Gt(i),hs)},Cs.prototype.getNumContacts=function(){var i=this.ptr;return En(i)},Cs.prototype.getContactPoint=function(i){var t=this.ptr;return i=i&&"object"==typeof i?i.ptr:Ja(i),Za(ao(t,i),ss)},Cs.prototype.gu=function(){var i=this.ptr;he(i)},js.prototype=Object.create(qs.prototype),js.prototype.constructor=js,js.prototype.ku=js,js.yu={},t.btBoxShape=js,js.prototype.setLocalScaling=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Oa(t,i)},js.prototype.calculateLocalInertia=function(i,t){var e=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),qe(e,i,t)},js.prototype.gu=function(){var i=this.ptr;fo(i)},Ss.prototype=Object.create(Is.prototype),Ss.prototype.constructor=Ss,Ss.prototype.ku=Ss,Ss.yu={},t.btCollisionDispatcher=Ss,Ss.prototype.getNumManifolds=function(){var i=this.ptr;return Oe(i)},Ss.prototype.getManifoldByIndexInternal=function(i){var t=this.ptr;return i=i&&"object"==typeof i?i.ptr:Ja(i),Za(je(t,i),Cs)},Ss.prototype.gu=function(){var i=this.ptr;bt(i)},xs.prototype=Object.create(Ya.prototype),xs.prototype.constructor=xs,xs.prototype.ku=xs,xs.yu={},t.btVehicleTuning=xs,Ms.prototype=Object.create(qs.prototype),Ms.prototype.constructor=Ms,Ms.prototype.ku=Ms,Ms.yu={},t.btCompoundShape=Ms,Ms.prototype.addChildShape=function(i,t){var e=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),vr(e,i,t)},Ms.prototype.setLocalScaling=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),zn(t,i)},Ms.prototype.calculateLocalInertia=function(i,t){var e=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),kn(e,i,t)},Ms.prototype.gu=function(){var i=this.ptr;Ne(i)},Es.prototype=Object.create(Ya.prototype),Es.prototype.constructor=Es,Es.prototype.ku=Es,Es.yu={},t.btCollisionObjectWrapper=Es,Ts.prototype=Object.create(vs.prototype),Ts.prototype.constructor=Ts,Ts.prototype.ku=Ts,Ts.yu={},t.btDefaultMotionState=Ts,Ts.prototype.getWorldTransform=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),_t(t,i)},Ts.prototype.setWorldTransform=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Nr(t,i)},Ts.prototype.gu=function(){var i=this.ptr;Kt(i)},Ls.prototype=Object.create(Vs.prototype),Ls.prototype.constructor=Ls,Ls.prototype.ku=Ls,Ls.yu={},t.btTriangleMeshShape=Ls,Ls.prototype.setLocalScaling=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Uo(t,i)},Ls.prototype.calculateLocalInertia=function(i,t){var e=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),bo(e,i,t)},Ls.prototype.gu=function(){var i=this.ptr;Ff(i)},Is.prototype=Object.create(Ya.prototype),Is.prototype.constructor=Is,Is.prototype.ku=Is,Is.yu={},t.btDispatcher=Is,Is.prototype.getNumManifolds=function(){var i=this.ptr;return Tf(i)},Is.prototype.getManifoldByIndexInternal=function(i){var t=this.ptr;return i=i&&"object"==typeof i?i.ptr:Ja(i),Za(of(t,i),Cs)},Is.prototype.gu=function(){var i=this.ptr;br(i)},As.prototype=Object.create(Bs.prototype),As.prototype.constructor=As,As.prototype.ku=As,As.yu={},t.ClosestRayResultCallback=As,As.prototype.hasHit=function(){var i=this.ptr;return dr(i)},As.prototype.get_m_rayFromWorld=function(){var i=this.ptr;return Za(wo(i),zs)},As.prototype.set_m_rayFromWorld=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Ro(t,i)},As.prototype.get_m_rayToWorld=function(){var i=this.ptr;return Za(Zf(i),zs)},As.prototype.set_m_rayToWorld=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),va(t,i)},As.prototype.get_m_hitNormalWorld=function(){var i=this.ptr;return Za(na(i),zs)},As.prototype.set_m_hitNormalWorld=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Fa(t,i)},As.prototype.get_m_hitPointWorld=function(){var i=this.ptr;return Za(ct(i),zs)},As.prototype.set_m_hitPointWorld=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),_e(t,i)},As.prototype.get_m_collisionObject=function(){var i=this.ptr;return Za(ga(i),hs)},As.prototype.set_m_collisionObject=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Wt(t,i)},As.prototype.gu=function(){var i=this.ptr;Re(i)},Ds.prototype=Object.create(ec.prototype),Ds.prototype.constructor=Ds,Ds.prototype.ku=Ds,Ds.yu={},t.btDynamicsWorld=Ds,Ds.prototype.addAction=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),_a(t,i)},Ds.prototype.getDispatcher=function(){var i=this.ptr;return Za(ur(i),Is)},Ds.prototype.rayTest=function(i,t,e){var n=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),e=e&&"object"==typeof e?e.ptr:Ja(e),kt(n,i,t,e)},Ds.prototype.gu=function(){var i=this.ptr;Jo(i)},Os.prototype=Object.create(os.prototype),Os.prototype.constructor=Os,Os.prototype.ku=Os,Os.yu={},t.btCapsuleShapeX=Os,Os.prototype.setLocalScaling=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),pr(t,i)},Os.prototype.calculateLocalInertia=function(i,t){var e=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),Te(e,i,t)},Os.prototype.gu=function(){var i=this.ptr;ro(i)},Rs.prototype=Object.create(nc.prototype),Rs.prototype.constructor=Rs,Rs.prototype.ku=Rs,Rs.yu={},t.btQuaternion=Rs,Rs.prototype.setValue=function(i,t,e,n){var r=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),e=e&&"object"==typeof e?e.ptr:Ja(e),n=n&&"object"==typeof n?n.ptr:Ja(n),Pt(r,i,t,e,n)},Rs.prototype.x=function(){var i=this.ptr;return un(i)},Rs.prototype.y=function(){var i=this.ptr;return Ir(i)},Rs.prototype.z=function(){var i=this.ptr;return dn(i)},Rs.prototype.w=function(){var i=this.ptr;return gr(i)},Rs.prototype.setX=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),ut(t,i)},Rs.prototype.setY=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),zf(t,i)},Rs.prototype.setZ=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),ht(t,i)},Rs.prototype.setW=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),pf(t,i)},Rs.prototype.gu=function(){var i=this.ptr;er(i)},Ps.prototype=Object.create(os.prototype),Ps.prototype.constructor=Ps,Ps.prototype.ku=Ps,Ps.yu={},t.btCapsuleShapeZ=Ps,Ps.prototype.setLocalScaling=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),fn(t,i)},Ps.prototype.calculateLocalInertia=function(i,t){var e=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),Zo(e,i,t)},Ps.prototype.gu=function(){var i=this.ptr;ka(i)},Ns.prototype=Object.create(Xs.prototype),Ns.prototype.constructor=Ns,Ns.prototype.ku=Ns,Ns.yu={},t.btDefaultVehicleRaycaster=Ns,Ns.prototype.gu=function(){var i=this.ptr;wa(i)},Bs.prototype=Object.create(Ya.prototype),Bs.prototype.constructor=Bs,Bs.prototype.ku=Bs,Bs.yu={},t.RayResultCallback=Bs,Bs.prototype.hasHit=function(){var i=this.ptr;return ir(i)},Bs.prototype.get_m_collisionObject=function(){var i=this.ptr;return Za(Br(i),hs)},Bs.prototype.set_m_collisionObject=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),_o(t,i)},Bs.prototype.gu=function(){var i=this.ptr;nn(i)},Fs.prototype=Object.create(Ya.prototype),Fs.prototype.constructor=Fs,Fs.prototype.ku=Fs,Fs.yu={},t.btWheelInfo=Fs,Fs.prototype.get_m_suspensionStiffness=function(){var i=this.ptr;return dt(i)},Fs.prototype.set_m_suspensionStiffness=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),rf(t,i)},Fs.prototype.get_m_wheelsDampingRelaxation=function(){var i=this.ptr;return ca(i)},Fs.prototype.set_m_wheelsDampingRelaxation=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),ba(t,i)},Fs.prototype.get_m_wheelsDampingCompression=function(){var i=this.ptr;return yr(i)},Fs.prototype.set_m_wheelsDampingCompression=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),ce(t,i)},Fs.prototype.get_m_frictionSlip=function(){var i=this.ptr;return nr(i)},Fs.prototype.set_m_frictionSlip=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Yt(t,i)},Fs.prototype.get_m_rollInfluence=function(){var i=this.ptr;return Xt(i)},Fs.prototype.set_m_rollInfluence=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),ho(t,i)},Fs.prototype.gu=function(){var i=this.ptr;Ge(i)},Vs.prototype=Object.create(qs.prototype),Vs.prototype.constructor=Vs,Vs.prototype.ku=Vs,Vs.yu={},t.btConcaveShape=Vs,Vs.prototype.setLocalScaling=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),hn(t,i)},Vs.prototype.calculateLocalInertia=function(i,t){var e=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),Yn(e,i,t)},Vs.prototype.gu=function(){var i=this.ptr;sn(i)},Us.prototype=Object.create(zs.prototype),Us.prototype.constructor=Us,Us.prototype.ku=Us,Us.yu={},t.btVector4=Us,Us.prototype.w=function(){var i=this.ptr;return Kf(i)},Us.prototype.setValue=function(i,t,e,n){var r=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),e=e&&"object"==typeof e?e.ptr:Ja(e),n=n&&"object"==typeof n?n.ptr:Ja(n),$t(r,i,t,e,n)},Us.prototype.length=function(){var i=this.ptr;return Tr(i)},Us.prototype.x=function(){var i=this.ptr;return Nf(i)},Us.prototype.y=function(){var i=this.ptr;return vo(i)},Us.prototype.z=function(){var i=this.ptr;return yf(i)},Us.prototype.setX=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Ee(t,i)},Us.prototype.setY=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),$n(t,i)},Us.prototype.setZ=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Ie(t,i)},Us.prototype.op_mul=function(i){var t=this.ptr;return i=i&&"object"==typeof i?i.ptr:Ja(i),Za(Gr(t,i),zs)},Us.prototype.gu=function(){var i=this.ptr;zo(i)},Gs.prototype=Object.create(Ya.prototype),Gs.prototype.constructor=Gs,Gs.prototype.ku=Gs,Gs.yu={},t.btActionInterface=Gs,Gs.prototype.gu=function(){var i=this.ptr;Pr(i)},Ws.prototype=Object.create(Ya.prototype),Ws.prototype.constructor=Ws,Ws.prototype.ku=Ws,Ws.yu={},t.btOverlappingPairCache=Ws,Ws.prototype.gu=function(){var i=this.ptr;tn(i)},zs.prototype=Object.create(Ya.prototype),zs.prototype.constructor=zs,zs.prototype.ku=zs,zs.yu={},t.btVector3=zs,zs.prototype.length=function(){var i=this.ptr;return qt(i)},zs.prototype.x=function(){var i=this.ptr;return qr(i)},zs.prototype.y=function(){var i=this.ptr;return bf(i)},zs.prototype.z=function(){var i=this.ptr;return io(i)},zs.prototype.setX=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Lt(t,i)},zs.prototype.setY=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Ke(t,i)},zs.prototype.setZ=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Rt(t,i)},zs.prototype.setValue=function(i,t,e){var n=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),e=e&&"object"==typeof e?e.ptr:Ja(e),no(n,i,t,e)},zs.prototype.op_mul=function(i){var t=this.ptr;return i=i&&"object"==typeof i?i.ptr:Ja(i),Za(yt(t,i),zs)},zs.prototype.gu=function(){var i=this.ptr;zr(i)},Xs.prototype=Object.create(Ya.prototype),Xs.prototype.constructor=Xs,Xs.prototype.ku=Xs,Xs.yu={},t.btVehicleRaycaster=Xs,Xs.prototype.gu=function(){var i=this.ptr;me(i)},$s.prototype=Object.create(qs.prototype),$s.prototype.constructor=$s,$s.prototype.ku=$s,$s.yu={},t.btSphereShape=$s,$s.prototype.setLocalScaling=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),qf(t,i)},$s.prototype.calculateLocalInertia=function(i,t){var e=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),Ce(e,i,t)},$s.prototype.gu=function(){var i=this.ptr;Sn(i)},Hs.prototype=Object.create(Ya.prototype),Hs.prototype.constructor=Hs,Hs.prototype.ku=Hs,Hs.yu={},t.btDefaultCollisionConstructionInfo=Hs,Hs.prototype.gu=function(){var i=this.ptr;ff(i)},qs.prototype=Object.create(Ya.prototype),qs.prototype.constructor=qs,qs.prototype.ku=qs,qs.yu={},t.btCollisionShape=qs,qs.prototype.setLocalScaling=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Dn(t,i)},qs.prototype.calculateLocalInertia=function(i,t){var e=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),be(e,i,t)},qs.prototype.gu=function(){var i=this.ptr;yo(i)},Ks.prototype=Object.create(Ya.prototype),Ks.prototype.constructor=Ks,Ks.prototype.ku=Ks,Ks.yu={},t.btConstraintSetting=Ks,Ks.prototype.get_m_tau=function(){var i=this.ptr;return mo(i)},Ks.prototype.set_m_tau=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),ge(t,i)},Ks.prototype.get_m_damping=function(){var i=this.ptr;return Xo(i)},Ks.prototype.set_m_damping=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),pe(t,i)},Ks.prototype.get_m_impulseClamp=function(){var i=this.ptr;return le(i)},Ks.prototype.set_m_impulseClamp=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),zt(t,i)},Ks.prototype.gu=function(){var i=this.ptr;en(i)},Ys.prototype=Object.create(Ya.prototype),Ys.prototype.constructor=Ys,Ys.prototype.ku=Ys,Ys.yu={},t.btConstraintSolver=Ys,Ys.prototype.gu=function(){var i=this.ptr;Po(i)},Qs.prototype=Object.create(Gs.prototype),Qs.prototype.constructor=Qs,Qs.prototype.ku=Qs,Qs.yu={},t.btRaycastVehicle=Qs,Qs.prototype.applyEngineForce=function(i,t){var e=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),jo(e,i,t)},Qs.prototype.setSteeringValue=function(i,t){var e=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),ee(e,i,t)},Qs.prototype.getWheelTransformWS=function(i){var t=this.ptr;return i=i&&"object"==typeof i?i.ptr:Ja(i),Za(Bn(t,i),tc)},Qs.prototype.updateWheelTransform=function(i,t){var e=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),gt(e,i,t)},Qs.prototype.addWheel=function(i,t,e,n,r,o,f){var a=this.ptr;return i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),e=e&&"object"==typeof e?e.ptr:Ja(e),n=n&&"object"==typeof n?n.ptr:Ja(n),r=r&&"object"==typeof r?r.ptr:Ja(r),o=o&&"object"==typeof o?o.ptr:Ja(o),f=f&&"object"==typeof f?f.ptr:Ja(f),Za(Aa(a,i,t,e,n,r,o,f),Fs)},Qs.prototype.getNumWheels=function(){var i=this.ptr;return or(i)},Qs.prototype.getRigidBody=function(){var i=this.ptr;return Za(po(i),Zs)},Qs.prototype.getWheelInfo=function(i){var t=this.ptr;return i=i&&"object"==typeof i?i.ptr:Ja(i),Za(gf(t,i),Fs)},Qs.prototype.setBrake=function(i,t){var e=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),So(e,i,t)},Qs.prototype.setCoordinateSystem=function(i,t,e){var n=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),e=e&&"object"==typeof e?e.ptr:Ja(e),jn(n,i,t,e)},Qs.prototype.gu=function(){var i=this.ptr;Df(i)},Zs.prototype=Object.create(hs.prototype),Zs.prototype.constructor=Zs,Zs.prototype.ku=Zs,Zs.yu={},t.btRigidBody=Zs,Zs.prototype.getCenterOfMassTransform=function(){var i=this.ptr;return Za(St(i),tc)},Zs.prototype.setCenterOfMassTransform=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Zn(t,i)},Zs.prototype.setSleepingThresholds=function(i,t){var e=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),xf(e,i,t)},Zs.prototype.setDamping=function(i,t){var e=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),Fn(e,i,t)},Zs.prototype.setMassProps=function(i,t){var e=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),ze(e,i,t)},Zs.prototype.setLinearFactor=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),te(t,i)},Zs.prototype.applyTorque=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),On(t,i)},Zs.prototype.applyForce=function(i,t){var e=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),ye(e,i,t)},Zs.prototype.applyTorqueImpulse=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Sa(t,i)},Zs.prototype.applyImpulse=function(i,t){var e=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),Kn(e,i,t)},Zs.prototype.updateInertiaTensor=function(){var i=this.ptr;hr(i)},Zs.prototype.getLinearVelocity=function(){var i=this.ptr;return Za(qn(i),zs)},Zs.prototype.getAngularVelocity=function(){var i=this.ptr;return Za(ar(i),zs)},Zs.prototype.setLinearVelocity=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),la(t,i)},Zs.prototype.setAngularVelocity=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Qn(t,i)},Zs.prototype.getMotionState=function(){var i=this.ptr;return Za(nf(i),vs)},Zs.prototype.setAngularFactor=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Xr(t,i)},Zs.prototype.upcast=function(i){var t=this.ptr;return i=i&&"object"==typeof i?i.ptr:Ja(i),Za(we(t,i),Zs)},Zs.prototype.getCollisionShape=function(){var i=this.ptr;return Za(aa(i),qs)},Zs.prototype.setContactProcessingThreshold=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Hn(t,i)},Zs.prototype.setActivationState=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),ya(t,i)},Zs.prototype.forceActivationState=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),La(t,i)},Zs.prototype.activate=function(i){var t=this.ptr;void 0!==(i=i&&"object"==typeof i?i.ptr:Ja(i))?If(t,i):Af(t)},Zs.prototype.isActive=function(){var i=this.ptr;return wn(i)},Zs.prototype.setRestitution=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Ar(t,i)},Zs.prototype.setFriction=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),xe(t,i)},Zs.prototype.getWorldTransform=function(){var i=this.ptr;return Za(hf(i),tc)},Zs.prototype.getCollisionFlags=function(){var i=this.ptr;return An(i)},Zs.prototype.setCollisionFlags=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),xa(t,i)},Zs.prototype.gu=function(){var i=this.ptr;jf(i)},Js.prototype=Object.create(rc.prototype),Js.prototype.constructor=Js,Js.prototype.ku=Js,Js.yu={},t.btCylinderShapeX=Js,Js.prototype.setLocalScaling=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Un(t,i)},Js.prototype.calculateLocalInertia=function(i,t){var e=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),$f(e,i,t)},Js.prototype.gu=function(){var i=this.ptr;Of(i)},ic.prototype=Object.create(rc.prototype),ic.prototype.constructor=ic,ic.prototype.ku=ic,ic.yu={},t.btCylinderShapeZ=ic,ic.prototype.setLocalScaling=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Da(t,i)},ic.prototype.calculateLocalInertia=function(i,t){var e=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),$r(e,i,t)},ic.prototype.gu=function(){var i=this.ptr;de(i)},tc.prototype=Object.create(Ya.prototype),tc.prototype.constructor=tc,tc.prototype.ku=tc,tc.yu={},t.btTransform=tc,tc.prototype.setIdentity=function(){var i=this.ptr;Uf(i)},tc.prototype.setOrigin=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Le(t,i)},tc.prototype.setRotation=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),We(t,i)},tc.prototype.getOrigin=function(){var i=this.ptr;return Za(ta(i),zs)},tc.prototype.getRotation=function(){var i=this.ptr;return Za(Cr(i),Rs)},tc.prototype.getBasis=function(){var i=this.ptr;return Za(De(i),is)},tc.prototype.gu=function(){var i=this.ptr;Ta(i)},ec.prototype=Object.create(Ya.prototype),ec.prototype.constructor=ec,ec.prototype.ku=ec,ec.yu={},t.btCollisionWorld=ec,ec.prototype.getDispatcher=function(){var i=this.ptr;return Za(Pn(i),Is)},ec.prototype.rayTest=function(i,t,e){var n=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),e=e&&"object"==typeof e?e.ptr:Ja(e),Se(n,i,t,e)},ec.prototype.gu=function(){var i=this.ptr;Vt(i)},nc.prototype=Object.create(Ya.prototype),nc.prototype.constructor=nc,nc.prototype.ku=nc,nc.yu={},t.btQuadWord=nc,nc.prototype.x=function(){var i=this.ptr;return Ct(i)},nc.prototype.y=function(){var i=this.ptr;return Ae(i)},nc.prototype.z=function(){var i=this.ptr;return lt(i)},nc.prototype.w=function(){var i=this.ptr;return Pe(i)},nc.prototype.setX=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Ze(t,i)},nc.prototype.setY=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Bt(t,i)},nc.prototype.setZ=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Xe(t,i)},nc.prototype.setW=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),Zt(t,i)},nc.prototype.gu=function(){var i=this.ptr;Oo(i)},rc.prototype=Object.create(qs.prototype),rc.prototype.constructor=rc,rc.prototype.ku=rc,rc.yu={},t.btCylinderShape=rc,rc.prototype.setLocalScaling=function(i){var t=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),yn(t,i)},rc.prototype.calculateLocalInertia=function(i,t){var e=this.ptr;i=i&&"object"==typeof i?i.ptr:Ja(i),t=t&&"object"==typeof t?t.ptr:Ja(t),Vr(e,i,t)},rc.prototype.gu=function(){var i=this.ptr;ft(i)},oc.prototype=Object.create(Ya.prototype),oc.prototype.constructor=oc,oc.prototype.ku=oc,oc.yu={},t.btTypedConstraint=oc,oc.prototype.gu=function(){var i=this.ptr;Sr(i)},this.Ammo=t,this}.call({}),ci=class extends I{constructor(i,t,e,n){super(i,t),this.transform=new Y,this.material=n,this.geometry=e,this.buffers={}}setup(){var i=this.xt,t=this.material.ensureProgram(this.St);t&&this.St.useProgram(t),this.buffers.position=i.createBuffer(),i.bindBuffer(i.ARRAY_BUFFER,this.buffers.position),i.bufferData(i.ARRAY_BUFFER,new Float32Array(this.geometry.positions),i.STATIC_DRAW),this.buffers.normal=i.createBuffer(),i.bindBuffer(i.ARRAY_BUFFER,this.buffers.normal),i.bufferData(i.ARRAY_BUFFER,new Float32Array(this.geometry.normals),i.STATIC_DRAW),this.buffers.uv=i.createBuffer(),i.bindBuffer(i.ARRAY_BUFFER,this.buffers.uv),i.bufferData(i.ARRAY_BUFFER,new Float32Array(this.geometry.uv||[]),i.STATIC_DRAW);var e=this.material.getVertexColors?this.material.getVertexColors(this.geometry):new Float32Array([]);this.buffers.color=i.createBuffer(),i.bindBuffer(i.ARRAY_BUFFER,this.buffers.color),i.bufferData(i.ARRAY_BUFFER,e,i.STATIC_DRAW),this.buffers.indices=i.createBuffer(),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,this.buffers.indices),i.bufferData(i.ELEMENT_ARRAY_BUFFER,new Uint16Array(this.geometry.indices),i.STATIC_DRAW),this.indexCount=this.geometry.indices.length}draw(i){var t=this.xt,e=this.material&&this.material.ensureProgram&&this.material.ensureProgram(this.St);if(e){this.St.useProgram(e);var n=t.canvas.clientWidth/t.canvas.clientHeight,r=i.getProjectionMatrix(n),o=i.getViewMatrix(),f=this.transform.getModelMatrix(),a=v.create();v.multiply(a,o,f);var s=this.transform.getNormalMatrix(a),c=i=>this.St.getAttributeLocation(e,i,"uniform");this.St.setProgramAttribute(e,"aVertexPosition",this.buffers.position,3),this.St.setProgramAttribute(e,"aVertexNormal",this.buffers.normal,3),this.St.setProgramAttribute(e,"aVertexColor",this.buffers.color,4),this.St.setProgramAttribute(e,"aTextureCoord",this.buffers.uv,2);var u=c("uUseTexture");if(null!==u&&t.uniform1i(u,this.material.texture?1:0),this.material.texture){var h=this.material.textureUnit||0;this.material.texture.bind(h);var l=c("uTexture");null!==l&&t.uniform1i(l,h)}var d=c("uProjectionMatrix");null!==d&&t.uniformMatrix4fv(d,!1,r);var b=c("uModelViewMatrix");null!==b&&t.uniformMatrix4fv(b,!1,a);var _=c("uNormalMatrix");null!==_&&t.uniformMatrix4fv(_,!1,s);var w=this.St.getLights(this.scene).slice(0,8),p=[],m=[],y=[],k=[],g=[],C=i=>Array.isArray(i)?[i[0]||0,i[1]||0,i[2]||0]:i&&"object"==typeof i&&void 0!==i.x&&void 0!==i.y&&void 0!==i.z?[i.x,i.y,i.z]:[0,0,0];for(var j of w){var S="ambient"===j.type?0:"point"===j.type?2:1;p.push(S);var x=Array.isArray(j.color)?j.color:[1,1,1];m.push(x[0]||0,x[1]||0,x[2]||0),k.push(j.intensity||0),g.push(j.range||1);var M=C(2===S?j.position:j.direction||j.position),E=M[0],T=M[1],L=M[2];2===S?y.push(o[0]*E+o[4]*T+o[8]*L+o[12],o[1]*E+o[5]*T+o[9]*L+o[13],o[2]*E+o[6]*T+o[10]*L+o[14]):y.push(o[0]*E+o[4]*T+o[8]*L,o[1]*E+o[5]*T+o[9]*L,o[2]*E+o[6]*T+o[10]*L)}var I=c("uLightCount");if(null!==I&&t.uniform1i(I,w.length),w.length>0){var A=c("uLightType[0]");null!==A&&t.uniform1iv(A,new Int32Array(p));var D=c("uLightColor[0]");null!==D&&t.uniform3fv(D,new Float32Array(m));var O=c("uLightVector[0]");null!==O&&t.uniform3fv(O,new Float32Array(y));var R=c("uLightIntensity[0]");null!==R&&t.uniform1fv(R,new Float32Array(k));var P=c("uLightRange[0]");null!==P&&t.uniform1fv(P,new Float32Array(g))}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.buffers.indices),t.drawElements(t.TRIANGLES,this.indexCount,t.UNSIGNED_SHORT,0)}}},ui=class i{constructor(i,t=null){if(!i)throw new _.Error("Constructing a Material requires a GameLib instance.");this.gameLib=i,this.program=t,this.hasColor=!1,this.color=null,this.gradient=null,this.texture=null,this.textureUnit=0,this.uniforms={}}static webGL1VertexShader="attribute vec3 aVertexPosition;\nattribute vec3 aVertexNormal;\nattribute vec4 aVertexColor;\nattribute vec2 aTextureCoord;\nuniform mat4 uProjectionMatrix;\nuniform mat4 uModelViewMatrix;\nuniform mat4 uNormalMatrix;\nvarying vec4 vColor;\nvarying vec2 vUV;\nvarying vec3 vNormal;\nvarying vec3 vViewPosition;\nvoid main() {\n vec4 viewPosition = uModelViewMatrix * vec4(aVertexPosition, 1.0);\n vColor = aVertexColor;\n vUV = aTextureCoord;\n vNormal = normalize((uNormalMatrix * vec4(aVertexNormal, 0.0)).xyz);\n vViewPosition = viewPosition.xyz;\n gl_Position = uProjectionMatrix * viewPosition;\n}\n";static webGL1FragmentShader="precision mediump float;\n#define MAX_LIGHTS 8\nvarying vec4 vColor;\nvarying vec2 vUV;\nvarying vec3 vNormal;\nvarying vec3 vViewPosition;\nuniform sampler2D uTexture;\nuniform bool uUseTexture;\nuniform int uLightCount;\nuniform int uLightType[MAX_LIGHTS];\nuniform vec3 uLightColor[MAX_LIGHTS];\nuniform vec3 uLightVector[MAX_LIGHTS];\nuniform float uLightIntensity[MAX_LIGHTS];\nuniform float uLightRange[MAX_LIGHTS];\nvec3 calculateLighting() {\n vec3 normal = normalize(vNormal);\n vec3 illumination = vec3(0.0);\n for (int i = 0; i < MAX_LIGHTS; i++) {\n if (i >= uLightCount) {\n break;\n }\n if (uLightType[i] == 0) {\n illumination += uLightColor[i] * uLightIntensity[i];\n } else {\n vec3 toLight;\n float attenuation = 1.0;\n if (uLightType[i] == 1) {\n toLight = normalize(uLightVector[i]);\n } else {\n vec3 delta = uLightVector[i] - vViewPosition;\n float distanceToLight = length(delta);\n toLight = normalize(delta);\n float ratio = distanceToLight / max(uLightRange[i], 0.0001);\n attenuation = 1.0 / (1.0 + ratio * ratio);\n }\n float diffuse = max(dot(normal, toLight), 0.0);\n illumination += uLightColor[i] * uLightIntensity[i] * diffuse * attenuation;\n }\n }\n return illumination;\n}\nvoid main() {\n vec4 color = vColor;\n if (uUseTexture) {\n color *= texture2D(uTexture, vUV);\n }\n vec3 litRGB = color.rgb * calculateLighting();\n gl_FragColor = vec4(litRGB, color.a);\n}\n";static webGL2VertexShader="#version 300 es\nin vec3 aVertexPosition;\nin vec3 aVertexNormal;\nin vec4 aVertexColor;\nin vec2 aTextureCoord;\nuniform mat4 uProjectionMatrix;\nuniform mat4 uModelViewMatrix;\nuniform mat4 uNormalMatrix;\nout vec4 vColor;\nout vec2 vUV;\nout vec3 vNormal;\nout vec3 vViewPosition;\nvoid main() {\n vec4 viewPosition = uModelViewMatrix * vec4(aVertexPosition, 1.0);\n vColor = aVertexColor;\n vUV = aTextureCoord;\n vNormal = normalize((uNormalMatrix * vec4(aVertexNormal, 0.0)).xyz);\n vViewPosition = viewPosition.xyz;\n gl_Position = uProjectionMatrix * viewPosition;\n}\n";static webGL2FragmentShader="#version 300 es\nprecision mediump float;\n#define MAX_LIGHTS 8\nin vec4 vColor;\nin vec2 vUV;\nin vec3 vNormal;\nin vec3 vViewPosition;\nuniform sampler2D uTexture;\nuniform bool uUseTexture;\nuniform int uLightCount;\nuniform int uLightType[MAX_LIGHTS];\nuniform vec3 uLightColor[MAX_LIGHTS];\nuniform vec3 uLightVector[MAX_LIGHTS];\nuniform float uLightIntensity[MAX_LIGHTS];\nuniform float uLightRange[MAX_LIGHTS];\nout vec4 outColor;\nvec3 calculateLighting() {\n vec3 normal = normalize(vNormal);\n vec3 illumination = vec3(0.0);\n for (int i = 0; i < MAX_LIGHTS; i++) {\n if (i >= uLightCount) {\n break;\n }\n if (uLightType[i] == 0) {\n illumination += uLightColor[i] * uLightIntensity[i];\n } else {\n vec3 toLight;\n float attenuation = 1.0;\n if (uLightType[i] == 1) {\n toLight = normalize(uLightVector[i]);\n } else {\n vec3 delta = uLightVector[i] - vViewPosition;\n float distanceToLight = length(delta);\n toLight = normalize(delta);\n float ratio = distanceToLight / max(uLightRange[i], 0.0001);\n attenuation = 1.0 / (1.0 + ratio * ratio);\n }\n float diffuse = max(dot(normal, toLight), 0.0);\n illumination += uLightColor[i] * uLightIntensity[i] * diffuse * attenuation;\n }\n }\n return illumination;\n}\nvoid main() {\n vec4 color = vColor;\n if (uUseTexture) {\n color *= texture(uTexture, vUV);\n }\n vec3 litRGB = color.rgb * calculateLighting();\n outColor = vec4(litRGB, color.a);\n}\n";static get standardVertexShader(){return i.webGL1VertexShader}static get standardFragmentShader(){return i.webGL1FragmentShader}static normalizeColor(i){return Array.isArray(i)?3===i.length?[i[0],i[1],i[2],1]:i.length>=4?[i[0],i[1],i[2],i[3]]:[1,1,1,1]:[1,1,1,1]}static interpolate(i,t,e){return i+(t-i)*e}static createStandardProgram(t){if(!t||!t.webgl)throw new _.Error("Material.createStandardProgram(gameLib) requires a GameLib instance with a WebGL context.");var e=t.webgl,n=!t.options||!1!==t.options.webGL2,r=n?i.webGL2VertexShader:i.webGL1VertexShader,o=n?i.webGL2FragmentShader:i.webGL1FragmentShader,f=t.compileShader(e.VERTEX_SHADER,r),a=t.compileShader(e.FRAGMENT_SHADER,o);if(!f||!a)return console.warn("[GameLib] Standard material shader compilation failed."),null;var s=t.createProgram(f,a);return s||(console.warn("[GameLib] Standard material shader linking failed."),null)}static getDefaultProgram(t){return i.createStandardProgram(t)}ensureProgram(t=this.gameLib){return!this.program&&t&&(this.program=i.createStandardProgram(t)),this.program}setColor(t){return this.color=i.normalizeColor(t),this.hasColor=!0,this.gradient=null,this}setTexture(i){return this.texture=i,this}setGradient(t,e={}){return Array.isArray(t)&&0!==t.length?(this.gradient={source:e.source||"uv",axis:e.axis||"y",stops:t.map(t=>!Array.isArray(t)||t.length<2?null:[Number(t[0]),i.normalizeColor(t[1])]).filter(Boolean).sort((i,t)=>i[0]-t[0])},0===this.gradient.stops.length?(this.gradient=null,this):(this.hasColor=!0,this.color=null,this)):(this.gradient=null,this)}interpolateGradient(t){if(!this.gradient||0===this.gradient.stops.length)return[1,1,1,1];var e=this.gradient.stops;if(t<=e[0][0])return e[0][1];for(var n=0;n<e.length-1;n++){var r=e[n],o=e[n+1];if(t>=r[0]&&t<=o[0]){var f=(t-r[0])/(o[0]-r[0]||1);return[i.interpolate(r[1][0],o[1][0],f),i.interpolate(r[1][1],o[1][1],f),i.interpolate(r[1][2],o[1][2],f),i.interpolate(r[1][3],o[1][3],f)]}}return e[e.length-1][1]}getVertexColors(t){var e=Math.max(1,Math.floor((t.positions?.length||0)/3)),n=[];if(!this.hasColor&&!this.gradient){for(var r=0;r<e;r++)n.push(1,1,1,1);return new Float32Array(n)}if(this.gradient){var o=(this.gradient.axis||"y").toLowerCase(),f="x"===o?0:"z"===o?2:1,a=[];if("position"===(this.gradient.source||"uv").toLowerCase()&&Array.isArray(t.positions))for(r=0;r<e;r++)a.push(t.positions[3*r+f]);else if(Array.isArray(t.uv)){var s="x"===o?0:1;for(r=0;r<e;r++)a.push(t.uv[2*r+s]??.5)}else if(Array.isArray(t.positions))for(r=0;r<e;r++)a.push(t.positions[3*r+f]);else for(r=0;r<e;r++)a.push(.5);for(r=0;r<e;r++){var c=this.interpolateGradient(a[r]);n.push(c[0],c[1],c[2],c[3])}return new Float32Array(n)}var u=i.normalizeColor(this.color||[1,1,1,1]);for(r=0;r<e;r++)n.push(u[0],u[1],u[2],u[3]);return new Float32Array(n)}},hi=class i{constructor(i,t=null,e={}){this.gl=i,this.options=e,this.target=e.target||i.TEXTURE_2D,this.texture=i.createTexture(),i.bindTexture(this.target,this.texture),this.setParameters(e),null!==t&&this.update(t)}setParameters(i={}){const t=this.gl,e=this.target;return t.texParameteri(e,t.TEXTURE_WRAP_S,i.wrapS||t.CLAMP_TO_EDGE),t.texParameteri(e,t.TEXTURE_WRAP_T,i.wrapT||t.CLAMP_TO_EDGE),t.texParameteri(e,t.TEXTURE_MIN_FILTER,i.minFilter||t.LINEAR),t.texParameteri(e,t.TEXTURE_MAG_FILTER,i.magFilter||t.LINEAR),this}update(i){const t=this.gl;return t.bindTexture(this.target,this.texture),void 0!==this.options.flipY&&t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,this.options.flipY),t.texImage2D(this.target,0,this.options.internalFormat||t.RGBA,this.options.format||t.RGBA,this.options.type||t.UNSIGNED_BYTE,i),this.options.generateMipmaps&&t.generateMipmap(this.target),this}bind(i=0){const t=this.gl;return t.activeTexture(t.TEXTURE0+i),t.bindTexture(this.target,this.texture),this}static fromImage(t,e,n={}){return new i(t,e,n)}static load(t,e,n={}){return _.AssetManager.shared.loadImage(e,{crossOrigin:n.crossOrigin}).then(e=>i.fromImage(t,e,n))}},li=class{constructor(){throw new _.Error("Class TextureFactory may not be constructed!")}static create(i,t,e={}){return t instanceof hi?t:new hi(i,t,e)}static fromImage(i,t,e={}){return hi.fromImage(i,t,e)}static load(i,t,e={}){return hi.load(i,t,e)}},di=class extends z{constructor(i,t,e,n,r,o,f,a={}){super(i,t,e,n,r,o,a.color),this.isTexturedUI=!0,this.source=document.createElement("canvas"),this.source.width=Math.max(1,Math.ceil(r)),this.source.height=Math.max(1,Math.ceil(o)),this.textureDirty=!0;var s=this.source.getContext("2d"),c=new Path2D(f);a.fillStyle&&(s.fillStyle=a.fillStyle,s.fill(c)),a.strokeStyle&&(s.strokeStyle=a.strokeStyle,s.lineWidth=a.lineWidth||1,s.stroke(c))}},vi=class extends z{constructor(i,t,e,n,r,o,f,a={}){super(i,t,e,n,r,o,a.color),this.isTexturedUI=!0,this.source=null,this.textureDirty=!0;var s=new Image;a.crossOrigin&&(s.crossOrigin=a.crossOrigin),s.onload=()=>{this.source=s,this.textureDirty=!0},s.onerror=()=>{console.warn(`[GameLib] Failed to load image: ${f}`)},s.src=f}},bi=class extends z{constructor(i,t,e,n,r,o,f,a={}){super(i,t,e,n,r,o,a.color),this.isTexturedUI=!0,this.source=document.createElement("canvas"),this.source.width=Math.max(1,Math.ceil(r)),this.source.height=Math.max(1,Math.ceil(o)),this.text=f,this.font=a.font||"24px sans-serif",this.fillStyle=a.fillStyle||"#ffffff",this.textAlign=a.textAlign||"left",this.textBaseline=a.textBaseline||"top",this.textureDirty=!0,this.Cu()}setText(i){return this.text=i,this.Cu(),this}Cu(){var i=this.source.getContext("2d");i.clearRect(0,0,this.source.width,this.source.height),i.font=this.font,i.fillStyle=this.fillStyle,i.textAlign=this.textAlign,i.textBaseline=this.textBaseline,i.fillText(this.text,0,0,this.source.width),this.textureDirty=!0}},_i=class{constructor(){throw new _.Error("Class UI may not be constructed!")}static UIRenderer=W;static UIObject=z;static Path=di;static Image=vi;static Text=bi},wi=class extends I{constructor(i,t,e,{color:n=[1,1,1],intensity:r=1,direction:o=new q(0,-1,0),range:f=10}){super(i,t),this.isLight=!0,this.type="point",this.position=e,this.color=n,this.intensity=r,this.direction=o,this.range=f}},pi=class extends I{constructor(i,t,e,{color:n=[1,1,1],intensity:r=1,direction:o=new q(0,-1,0),range:f=10}){super(i,t),this.isLight=!0,this.type="directional",this.position=e,this.color=n,this.intensity=r,this.direction=o,this.range=f}},mi=class extends I{constructor(i,t,e,{color:n=[1,1,1],intensity:r=1,direction:o=new q(0,-1,0),range:f=10}){super(i,t),this.isLight=!0,this.type="ambient",this.position=e,this.color=n,this.intensity=r,this.direction=o,this.range=f}},yi=class{constructor(){throw new _.Error("Class Lighting may not be constructed!")}static PointLight=wi;static DirectionalLight=pi;static AmbientLight=mi},ki=class{constructor(){throw new _.Error("Wrapper class GameLib3D may not be constructed!")}static Utils=L;static Object=I;static ShaderFactory=G;static GameLib=$;static Transform=Y;static Position=H;static Rotation=q;static Scale=K;static Geometry=ai;static Camera=Q;static Ammo=si;static Mesh=ci;static Material=ui;static Texture=hi;static TextureFactory=li;static UI=_i;static Lighting=yi},gi={GameLibCore:_,GameLib2D:T,GameLib3D:ki};for(V=0;V<Object.keys(gi).length;V++)F=Object.keys(gi)[V],self[F]=gi[F]})();
|
|
2
|
+
/*!
|
|
3
|
+
GameLib
|
|
4
|
+
Copyright (c) 2025 Charles Jager
|
|
5
|
+
Libraries Used in GameLib:
|
|
6
|
+
Ammo.js Copyright (c) 2011 ammo.js contributors
|
|
7
|
+
Matter.js Copyright (c) Liam Brummitt and contributors
|
|
8
|
+
*/
|