diff --git a/package-lock.json b/package-lock.json index 6a1c848a..b4c0f68d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4228,9 +4228,9 @@ "dev": true }, "acorn-jsx": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.1.tgz", - "integrity": "sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.2.tgz", + "integrity": "sha512-tiNTrP1MP0QrChmD2DdupCr6HWSFeKVw5d/dHTu4Y7rkAkRhU/Dt7dphAfIUyxtHpl/eBVip5uTNSpQJHylpAw==", "dev": true }, "acorn-walk": { @@ -4494,6 +4494,31 @@ "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", "dev": true }, + "babel-eslint": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.0.3.tgz", + "integrity": "sha512-z3U7eMY6r/3f3/JB9mTsLjyxrv0Yb1zb8PCWCLpguxfCzBIZUwy23R1t/XKewP+8mEN2Ck8Dtr4q20z6ce6SoA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "eslint-visitor-keys": "^1.0.0", + "resolve": "^1.12.0" + }, + "dependencies": { + "resolve": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", + "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + } + } + }, "babel-jest": { "version": "24.9.0", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-24.9.0.tgz", @@ -6118,9 +6143,9 @@ } }, "deglob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/deglob/-/deglob-3.1.0.tgz", - "integrity": "sha512-al10l5QAYaM/PeuXkAr1Y9AQz0LCtWsnJG23pIgh44hDxHFOj36l6qvhfjnIWBYwZOqM1fXUFV9tkjL7JPdGvw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/deglob/-/deglob-4.0.1.tgz", + "integrity": "sha512-/g+RDZ7yf2HvoW+E5Cy+K94YhgcFgr6C8LuHZD1O5HoNPkf3KY6RfXJ0DBGlB/NkLi5gml+G9zqRzk9S0mHZCg==", "dev": true, "requires": { "find-root": "^1.0.0", @@ -6417,9 +6442,9 @@ } }, "eslint": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.1.0.tgz", - "integrity": "sha512-QhrbdRD7ofuV09IuE2ySWBz0FyXCq0rriLTZXZqaWSI79CVtHVRdkFuFTViiqzZhkCgfOh9USpriuGN2gIpZDQ==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.4.0.tgz", + "integrity": "sha512-WTVEzK3lSFoXUovDHEbkJqCVPEPwbhCq4trDktNI6ygs7aO41d4cDT0JFAT5MivzZeVLWlg7vHL+bgrQv/t3vA==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -6429,9 +6454,9 @@ "debug": "^4.0.1", "doctrine": "^3.0.0", "eslint-scope": "^5.0.0", - "eslint-utils": "^1.3.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^6.0.0", + "eslint-utils": "^1.4.2", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.1.1", "esquery": "^1.0.1", "esutils": "^2.0.2", "file-entry-cache": "^5.0.1", @@ -6489,20 +6514,14 @@ } }, "glob-parent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.0.0.tgz", - "integrity": "sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", + "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", "dev": true, "requires": { "is-glob": "^4.0.1" } }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, "import-fresh": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.1.0.tgz", @@ -6558,15 +6577,15 @@ } }, "eslint-config-standard": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-13.0.1.tgz", - "integrity": "sha512-zLKp4QOgq6JFgRm1dDCVv1Iu0P5uZ4v5Wa4DTOkg2RFMxdCX/9Qf7lz9ezRj2dBRa955cWQF/O/LWEiYWAHbTw==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-14.1.0.tgz", + "integrity": "sha512-EF6XkrrGVbvv8hL/kYa/m6vnvmUT+K82pJJc4JJVMM6+Qgqh0pnwprSxdduDLB9p/7bIxD+YV5O0wfb8lmcPbA==", "dev": true }, "eslint-config-standard-jsx": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-7.0.0.tgz", - "integrity": "sha512-OiKOF3MFVmWOCVfsi8GHlVorOEiBsPzAnUhM3c6HML94O2krbdQ/eMABySHgHHOIBYRls9sR9I3lo6O0vXhVEg==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-8.1.0.tgz", + "integrity": "sha512-ULVC8qH8qCqbU792ZOO6DaiaZyHNS/5CZt3hKqHkEhVlhPEPN3nfBqqxJCyp59XrjIBZPu1chMYe9T2DXZ7TMw==", "dev": true }, "eslint-import-resolver-node": { @@ -6612,13 +6631,21 @@ } }, "eslint-plugin-es": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-1.4.0.tgz", - "integrity": "sha512-XfFmgFdIUDgvaRAlaXUkxrRg5JSADoRC8IkKLc/cISeR3yHVMefFHQZpcyXXEUUPHfy5DwviBcrfqlyqEwlQVw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-2.0.0.tgz", + "integrity": "sha512-f6fceVtg27BR02EYnBhgWLFQfK6bN4Ll0nQFrBHOlCsAyxeZkn0NHns5O0YZOPrV1B3ramd6cgFwaoFLcSkwEQ==", "dev": true, "requires": { - "eslint-utils": "^1.3.0", - "regexpp": "^2.0.1" + "eslint-utils": "^1.4.2", + "regexpp": "^3.0.0" + }, + "dependencies": { + "regexpp": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.0.0.tgz", + "integrity": "sha512-Z+hNr7RAVWxznLPuA7DIh8UNX1j9CDrUQxskw9IrBE1Dxue2lyXT+shqEIeLUjrokxIP8CMy1WkjgG3rTsd5/g==", + "dev": true + } } }, "eslint-plugin-import": { @@ -6710,13 +6737,13 @@ } }, "eslint-plugin-node": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-9.1.0.tgz", - "integrity": "sha512-ZwQYGm6EoV2cfLpE1wxJWsfnKUIXfM/KM09/TlorkukgCAwmkgajEJnPCmyzoFPQQkmvo5DrW/nyKutNIw36Mw==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-10.0.0.tgz", + "integrity": "sha512-1CSyM/QCjs6PXaT18+zuAXsjXGIGo5Rw630rSKwokSs2jrYURQc4R5JZpoanNCqwNmepg+0eZ9L7YiRUJb8jiQ==", "dev": true, "requires": { - "eslint-plugin-es": "^1.4.0", - "eslint-utils": "^1.3.1", + "eslint-plugin-es": "^2.0.0", + "eslint-utils": "^1.4.2", "ignore": "^5.1.1", "minimatch": "^3.0.4", "resolve": "^1.10.1", @@ -6790,9 +6817,9 @@ } }, "eslint-plugin-standard": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-4.0.0.tgz", - "integrity": "sha512-OwxJkR6TQiYMmt1EsNRMe5qG3GsbjlcOhbGUBY4LtavF9DsLaTcoR+j2Tdjqi23oUwKNUqX7qcn5fPStafMdlA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-4.0.1.tgz", + "integrity": "sha512-v/KBnfyaOMPmZc/dmc6ozOdWqekGp7bBGq4jLAecEfPGmfKiWS4sA8sC0LqiV9w5qmXAtXVn4M3p1jSyhY85SQ==", "dev": true }, "eslint-scope": { @@ -6821,20 +6848,20 @@ "dev": true }, "espree": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.0.0.tgz", - "integrity": "sha512-lJvCS6YbCn3ImT3yKkPe0+tJ+mH6ljhGNjHQH9mRtiO6gjhVAOhVXW1yjnwqGwTkK3bGbye+hb00nFNmu0l/1Q==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.1.1.tgz", + "integrity": "sha512-EYbr8XZUhWbYCqQRW0duU5LxzL5bETN6AjKBGy1302qqzPaCH10QbRg3Wvco79Z8x9WbiE8HYB4e75xl6qUYvQ==", "dev": true, "requires": { - "acorn": "^6.0.7", - "acorn-jsx": "^5.0.0", - "eslint-visitor-keys": "^1.0.0" + "acorn": "^7.0.0", + "acorn-jsx": "^5.0.2", + "eslint-visitor-keys": "^1.1.0" }, "dependencies": { "acorn": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz", - "integrity": "sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz", + "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==", "dev": true } } @@ -13448,9 +13475,9 @@ } }, "p-limit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", + "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -16008,29 +16035,29 @@ "dev": true }, "standard": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/standard/-/standard-13.1.0.tgz", - "integrity": "sha512-h3NaMzsa88+/xtjXCMvdn6EWWdlodsI/HvtsQF+EGwrF9kVNwNha9TkFABU6bSBoNfC79YDyIAq9ekxOMBFkuw==", + "version": "14.3.1", + "resolved": "https://registry.npmjs.org/standard/-/standard-14.3.1.tgz", + "integrity": "sha512-TUQwU7znlZLfgKH1Zwn/D84FitWZkUTfbxSiz/vFx+4c9GV+clSfG/qLiLZOlcdyzhw3oF5/pZydNjbNDfHPEw==", "dev": true, "requires": { - "eslint": "~6.1.0", - "eslint-config-standard": "13.0.1", - "eslint-config-standard-jsx": "7.0.0", + "eslint": "~6.4.0", + "eslint-config-standard": "14.1.0", + "eslint-config-standard-jsx": "8.1.0", "eslint-plugin-import": "~2.18.0", - "eslint-plugin-node": "~9.1.0", + "eslint-plugin-node": "~10.0.0", "eslint-plugin-promise": "~4.2.1", "eslint-plugin-react": "~7.14.2", "eslint-plugin-standard": "~4.0.0", - "standard-engine": "~11.0.1" + "standard-engine": "^12.0.0" } }, "standard-engine": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-11.0.1.tgz", - "integrity": "sha512-WZQ5PpEDfRzPFk+H9xvKVQPQIxKnAQB2cb2Au4NyTCtdw5R0pyMBUZLbPXyFjnlhe8Ae+zfNrWU4m6H5b7cEAg==", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-12.0.0.tgz", + "integrity": "sha512-gJIIRb0LpL7AHyGbN9+hJ4UJns37lxmNTnMGRLC8CFrzQ+oB/K60IQjKNgPBCB2VP60Ypm6f8DFXvhVWdBOO+g==", "dev": true, "requires": { - "deglob": "^3.0.0", + "deglob": "^4.0.0", "get-stdin": "^7.0.0", "minimist": "^1.1.0", "pkg-conf": "^3.1.0" diff --git a/package.json b/package.json index b8060fd4..2926cab3 100644 --- a/package.json +++ b/package.json @@ -8,11 +8,15 @@ "node": "=8.16.0", "npm": "=6.4.1" }, + "standard": { + "parser": "babel-eslint" + }, "devDependencies": { "@ampproject/rollup-plugin-closure-compiler": "^0.10.0", "@babel/core": "^7.6.2", "@babel/preset-env": "^7.6.2", "@babel/preset-react": "^7.0.0", + "babel-eslint": "^10.0.3", "babel-jest": "^24.9.0", "buble": "0.19.4", "jest": "^24.9.0", @@ -30,7 +34,7 @@ "rollup-plugin-serve": "^1.0.1", "rollup-plugin-string": "^3.0.0", "rollup-watch": "^4.3.1", - "standard": "^13.1.0" + "standard": "^14.3.1" }, "scripts": { "postinstall": "npm run bootstrap", @@ -39,12 +43,13 @@ "build-opentype": "npm run bootstrap && lerna exec --scope=troika-3d-text -- npm run build-opentype", "build-typr": "lerna exec --scope=troika-3d-text -- npm run build-typr", "build-yoga": "npm run bootstrap && lerna exec --scope=troika-3d-ui -- npm run build-yoga", + "build-physics-ammo": "npm run bootstrap && lerna exec --scope=troika-physics -- npm run build-ammo", "test": "jest", "build-examples": "lerna exec --scope=troika-examples -- npm run build", "serve-examples": "lerna exec --scope=troika-examples -- npm run serve", "examples": "npm run serve-examples", "serve-docs": "cd website && npm start", "clean": "lerna exec -- rm -rf dist", - "lint": "lerna exec -- standard src/**/*.js src/**/*.jsx" + "lint": "lerna exec --no-bail -- standard src/**/*.js src/**/*.jsx --parser babel-eslint" } } diff --git a/packages/troika-3d/src/facade/Scene3DFacade.js b/packages/troika-3d/src/facade/Scene3DFacade.js index 9f585193..fb8da63b 100644 --- a/packages/troika-3d/src/facade/Scene3DFacade.js +++ b/packages/troika-3d/src/facade/Scene3DFacade.js @@ -68,6 +68,20 @@ class Scene3DFacade extends Object3DFacade { this.threeObject.fog = fogObj } + /** + * Sets the ThreeJS Scene's `background` property. + * + * Parameters supported: + * - Color + * - Texture + * - CubeTexture + * + * @memberof Scene3DFacade + */ + set background(backgroundDef) { + this.threeObject.background = backgroundDef + } + getBoundingSphere() { return INFINITE_SPHERE } diff --git a/packages/troika-3d/src/facade/World3DFacade.js b/packages/troika-3d/src/facade/World3DFacade.js index 5f863fe1..22a50c71 100644 --- a/packages/troika-3d/src/facade/World3DFacade.js +++ b/packages/troika-3d/src/facade/World3DFacade.js @@ -87,6 +87,7 @@ class World3DFacade extends WorldBaseFacade { facade: Scene3DFacade, lights: this.lights, objects: this.objects, + background: this.background, fog: this.fog, onClick: this.onBackgroundClick ? this._onBgClick : null } diff --git a/packages/troika-3d/src/react/Canvas3D.jsx b/packages/troika-3d/src/react/Canvas3D.jsx index aae13c82..6b69e4ef 100644 --- a/packages/troika-3d/src/react/Canvas3D.jsx +++ b/packages/troika-3d/src/react/Canvas3D.jsx @@ -28,6 +28,7 @@ class Canvas3D extends ReactCanvasBase { antialias: props.antialias, rendererClass: props.rendererClass, backgroundColor: props.backgroundColor, + background: props.background, shadows: props.shadows, camera: props.camera, lights: props.lights, diff --git a/packages/troika-core/src/facade/WorldBaseFacade.js b/packages/troika-core/src/facade/WorldBaseFacade.js index 795c65e9..c655d3c1 100644 --- a/packages/troika-core/src/facade/WorldBaseFacade.js +++ b/packages/troika-core/src/facade/WorldBaseFacade.js @@ -484,6 +484,9 @@ WorldBaseFacade.prototype._notifyWorldHandlers = { removeAllEventListeners(source) { this.eventRegistry.removeAllListenersForFacade(source) }, + dispatchEvent(source, data) { + this.eventRegistry.forEachFacadeListenerOfType(data.targetFacade, data.type, data.handler, null) + }, addHtmlOverlay(source) { this._htmlOverlays[source.$facadeId] = source }, diff --git a/packages/troika-examples/index.css b/packages/troika-examples/index.css index f3f98b22..34c5c637 100644 --- a/packages/troika-examples/index.css +++ b/packages/troika-examples/index.css @@ -75,4 +75,9 @@ a { right: 0; padding: 10px 20px; background: rgba(255,255,255,.1); +} + +.example_desc.dark { + color: rgba(0,0,0,.7); + background: rgba(0,0,0,.1); } \ No newline at end of file diff --git a/packages/troika-examples/index.js b/packages/troika-examples/index.js index 95e85655..b3932390 100644 --- a/packages/troika-examples/index.js +++ b/packages/troika-examples/index.js @@ -12,11 +12,17 @@ import UIExample from './ui2/UIExample' import DragDrop from './dragdrop/DragDropExample' import LevelOfDetail from './lod/LevelOfDetailExample' import CurveAnim from './curve-anim/CurveAnimExample' +import Bezier3DExample from './bezier-3d/Bezier3DExample' import Canvas2DExample from './canvas2d/Canvas2DExample' import EasingsExample from './easings/EasingsExample' import InstanceableExample from './instanceable/InstanceableExample' import InceptionExample from './inception/InceptionExample' -import Bezier3DExample from './bezier-3d/Bezier3DExample' +import RigidBodyExample from './physics/rigidBody/RigidBodyExample' +import SoftBodyExample from './physics/softBody/SoftBodyExample' +import SoftRopeExample from './physics/softBody/SoftRopeExample' +import KinematicsExample from './physics/kinematics/KinematicsExample' +import CollisionEventExample from './physics/collisionEvents/CollisionEventExample' +import MouseInteractionExample from './physics/mouse-interaction/MouseInteractionExample' import 'react-dat-gui/dist/index.css' import './index.css' @@ -38,7 +44,13 @@ const EXAMPLES = [ {id: 'twoDee', name: 'Canvas2D', component: Canvas2DExample, disableVR:true}, {id: 'easings', name: 'Animation Easings', component: EasingsExample, disableVR:true}, {id: 'instanceable', name: 'Instanceable Objects', component: InstanceableExample}, - {id: 'inception', name: 'Inception', component: InceptionExample} + {id: 'inception', name: 'Inception', component: InceptionExample}, + {id: 'physics-rigid-body', name: 'Physics / Rigid Body', component: RigidBodyExample}, + {id: 'physics-soft-body', name: 'Physics / Soft Body', component: SoftBodyExample}, + {id: 'physics-soft-rope', name: 'Physics / Soft Rope', component: SoftRopeExample}, + {id: 'physics-kinematics', name: 'Physics / Kinematics', component: KinematicsExample}, + {id: 'physics-collisions', name: 'Physics / Collision Events', component: CollisionEventExample}, + {id: 'physics-mouse-interaction', name: 'Physics / Mouse Interaction', component: MouseInteractionExample} ] class ExamplesApp extends React.Component { diff --git a/packages/troika-examples/package-lock.json b/packages/troika-examples/package-lock.json new file mode 100644 index 00000000..736cc4ad --- /dev/null +++ b/packages/troika-examples/package-lock.json @@ -0,0 +1,238 @@ +{ + "name": "troika-examples", + "version": "0.15.2", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/runtime": { + "version": "7.6.0", + "resolved": "https://nexus.int.protectwise.net/c/content/repositories/npm-upstream/@babel/runtime/-/runtime-7.6.0.tgz", + "integrity": "sha512-89eSBLJsxNxOERC0Op4vd+0Bqm6wRMqMbFtV3i0/fbaWw/mJ8Q3eBvgX0G4SyrOOLCtbu98HspF8o09MRT+KzQ==", + "requires": { + "regenerator-runtime": "^0.13.2" + } + }, + "@icons/material": { + "version": "0.2.4", + "resolved": "https://nexus.int.protectwise.net/c/content/repositories/npm-upstream/@icons/material/-/material-0.2.4.tgz", + "integrity": "sha512-QPcGmICAPbGLGb6F/yNf/KzKqvFx8z5qx3D1yFqVAjoFmXK35EgyW+cJ57Te3CNsmzblwtzakLGFqHPqrfb4Tw==" + }, + "adaptive-bezier-curve": { + "version": "1.0.3", + "resolved": "https://nexus.int.protectwise.net/content/groups/npm-all/adaptive-bezier-curve/-/adaptive-bezier-curve-1.0.3.tgz", + "integrity": "sha1-R3V3q+h9coDUbKQWSfbCJkb+gic=" + }, + "classnames": { + "version": "2.2.6", + "resolved": "https://nexus.int.protectwise.net/content/groups/npm-all/classnames/-/classnames-2.2.6.tgz", + "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" + }, + "d3-hierarchy": { + "version": "1.1.8", + "resolved": "https://nexus.int.protectwise.net/content/groups/npm-all/d3-hierarchy/-/d3-hierarchy-1.1.8.tgz", + "integrity": "sha512-L+GHMSZNwTpiq4rt9GEsNcpLa4M96lXMR8M/nMG9p5hBE0jy6C+3hWtyZMenPQdwla249iJy7Nx0uKt3n+u9+w==" + }, + "d3-voronoi": { + "version": "1.1.4", + "resolved": "https://nexus.int.protectwise.net/content/groups/npm-all/d3-voronoi/-/d3-voronoi-1.1.4.tgz", + "integrity": "sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==" + }, + "gl-vec2": { + "version": "1.3.0", + "resolved": "https://nexus.int.protectwise.net/content/groups/npm-all/gl-vec2/-/gl-vec2-1.3.0.tgz", + "integrity": "sha512-YiqaAuNsheWmUV0Sa8k94kBB0D6RWjwZztyO+trEYS8KzJ6OQB/4686gdrf59wld4hHFIvaxynO3nRxpk1Ij/A==" + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://nexus.int.protectwise.net/content/groups/npm-all/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://nexus.int.protectwise.net/content/groups/npm-all/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://nexus.int.protectwise.net/content/groups/npm-all/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + }, + "lodash.clamp": { + "version": "4.0.3", + "resolved": "https://nexus.int.protectwise.net/content/groups/npm-all/lodash.clamp/-/lodash.clamp-4.0.3.tgz", + "integrity": "sha1-XCS+3u7vB1NWDcK0y0Zx+Qpt36o=" + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://nexus.int.protectwise.net/content/groups/npm-all/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" + }, + "lodash.isfinite": { + "version": "3.3.2", + "resolved": "https://nexus.int.protectwise.net/content/groups/npm-all/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz", + "integrity": "sha1-+4m2WpqAKBgz8LdHizpRBPiY67M=" + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://nexus.int.protectwise.net/content/groups/npm-all/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" + }, + "lodash.isundefined": { + "version": "3.0.1", + "resolved": "https://nexus.int.protectwise.net/content/groups/npm-all/lodash.isundefined/-/lodash.isundefined-3.0.1.tgz", + "integrity": "sha1-I+89lTVWUgOmbO/VuDD4SJEa+0g=" + }, + "lodash.result": { + "version": "4.5.2", + "resolved": "https://nexus.int.protectwise.net/content/groups/npm-all/lodash.result/-/lodash.result-4.5.2.tgz", + "integrity": "sha1-y0Wyf7kU6qjY7m8M57KHC4fLcKo=" + }, + "lodash.set": { + "version": "4.3.2", + "resolved": "https://nexus.int.protectwise.net/content/groups/npm-all/lodash.set/-/lodash.set-4.3.2.tgz", + "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=" + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://nexus.int.protectwise.net/content/groups/npm-all/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "material-colors": { + "version": "1.2.6", + "resolved": "https://nexus.int.protectwise.net/content/groups/npm-all/material-colors/-/material-colors-1.2.6.tgz", + "integrity": "sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://nexus.int.protectwise.net/content/groups/npm-all/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "polyline-miter-util": { + "version": "1.0.1", + "resolved": "https://nexus.int.protectwise.net/content/groups/npm-all/polyline-miter-util/-/polyline-miter-util-1.0.1.tgz", + "integrity": "sha1-tpPyOJ6g3tNqa89ezS7OS2kX2Vc=", + "requires": { + "gl-vec2": "^1.0.0" + } + }, + "polyline-normals": { + "version": "2.0.2", + "resolved": "https://nexus.int.protectwise.net/content/groups/npm-all/polyline-normals/-/polyline-normals-2.0.2.tgz", + "integrity": "sha1-oXN+ddjA3MsaWR+csn8J7vS30TU=", + "requires": { + "polyline-miter-util": "^1.0.1" + } + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://nexus.int.protectwise.net/content/groups/npm-all/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, + "react": { + "version": "16.9.0", + "resolved": "https://nexus.int.protectwise.net/content/groups/npm-all/react/-/react-16.9.0.tgz", + "integrity": "sha512-+7LQnFBwkiw+BobzOF6N//BdoNw0ouwmSJTEm9cglOOmsg/TMiFHZLe2sEoN5M7LgJTj9oHH0gxklfnQe66S1w==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" + } + }, + "react-color": { + "version": "2.17.3", + "resolved": "https://nexus.int.protectwise.net/content/groups/npm-all/react-color/-/react-color-2.17.3.tgz", + "integrity": "sha512-1dtO8LqAVotPIChlmo6kLtFS1FP89ll8/OiA8EcFRDR+ntcK+0ukJgByuIQHRtzvigf26dV5HklnxDIvhON9VQ==", + "requires": { + "@icons/material": "^0.2.4", + "lodash": "^4.17.11", + "material-colors": "^1.2.1", + "prop-types": "^15.5.10", + "reactcss": "^1.2.0", + "tinycolor2": "^1.4.1" + } + }, + "react-dat-gui": { + "version": "4.0.0", + "resolved": "https://nexus.int.protectwise.net/content/groups/npm-all/react-dat-gui/-/react-dat-gui-4.0.0.tgz", + "integrity": "sha512-7knFkbdzx1DbpAA/Xb5Y5HCyrsFpr53PjYlLD1DFqzpU/1z9KSOq3Tt1rp44AI0712X5WCpOav56IHZcAnXCGg==", + "requires": { + "@babel/runtime": "^7.5.5", + "classnames": "2.2.6", + "lodash.clamp": "^4.0.2", + "lodash.clonedeep": "^4.3.2", + "lodash.isfinite": "^3.3.1", + "lodash.isstring": "^4.0.1", + "lodash.isundefined": "^3.0.1", + "lodash.result": "^4.4.0", + "lodash.set": "^4.2.0", + "react-color": "^2.13.8" + } + }, + "react-dom": { + "version": "16.9.0", + "resolved": "https://nexus.int.protectwise.net/content/groups/npm-all/react-dom/-/react-dom-16.9.0.tgz", + "integrity": "sha512-YFT2rxO9hM70ewk9jq0y6sQk8cL02xm4+IzYBz75CQGlClQQ1Bxq0nhHF6OtSbit+AIahujJgb/CPRibFkMNJQ==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.15.0" + } + }, + "react-is": { + "version": "16.9.0", + "resolved": "https://nexus.int.protectwise.net/content/groups/npm-all/react-is/-/react-is-16.9.0.tgz", + "integrity": "sha512-tJBzzzIgnnRfEm046qRcURvwQnZVXmuCbscxUO5RWrGTXpon2d4c8mI0D8WE6ydVIm29JiLB6+RslkIvym9Rjw==" + }, + "reactcss": { + "version": "1.2.3", + "resolved": "https://nexus.int.protectwise.net/content/groups/npm-all/reactcss/-/reactcss-1.2.3.tgz", + "integrity": "sha512-KiwVUcFu1RErkI97ywr8nvx8dNOpT03rbnma0SSalTYjkrPYaEajR4a/MRt6DZ46K6arDRbWMNHF+xH7G7n/8A==", + "requires": { + "lodash": "^4.0.1" + } + }, + "regenerator-runtime": { + "version": "0.13.3", + "resolved": "https://nexus.int.protectwise.net/content/groups/npm-all/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", + "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==" + }, + "scheduler": { + "version": "0.15.0", + "resolved": "https://nexus.int.protectwise.net/content/groups/npm-all/scheduler/-/scheduler-0.15.0.tgz", + "integrity": "sha512-xAefmSfN6jqAa7Kuq7LIJY0bwAPG3xlCj0HMEBQk1lxYiDKZscY2xJ5U/61ZTrYbmNQbXa+gc7czPkVo11tnCg==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "three": { + "version": "0.107.0", + "resolved": "https://nexus.int.protectwise.net/content/groups/npm-all/three/-/three-0.107.0.tgz", + "integrity": "sha512-vqbKJRLBEviPVa7poEzXocobicwxzsctr5mnymA7n8fEzcVS49rYP0RrwqZ98JqujRoruK+/YzcchNpRP+kXsQ==" + }, + "three-line-2d": { + "version": "1.1.6", + "resolved": "https://nexus.int.protectwise.net/content/groups/npm-all/three-line-2d/-/three-line-2d-1.1.6.tgz", + "integrity": "sha1-yqIJzhZq01+aPmuEZV5ABd2We3I=", + "requires": { + "inherits": "^2.0.1", + "object-assign": "^4.0.1", + "polyline-normals": "^2.0.0" + } + }, + "tinycolor2": { + "version": "1.4.1", + "resolved": "https://nexus.int.protectwise.net/content/groups/npm-all/tinycolor2/-/tinycolor2-1.4.1.tgz", + "integrity": "sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g=" + } + } +} diff --git a/packages/troika-examples/package.json b/packages/troika-examples/package.json index 4f54b71c..10a301da 100644 --- a/packages/troika-examples/package.json +++ b/packages/troika-examples/package.json @@ -30,6 +30,7 @@ "troika-3d-ui": "^0.15.5", "troika-animation": "^0.15.0", "troika-core": "^0.15.3", + "troika-physics": "^0.15.1", "troika-three-utils": "^0.15.3", "troika-xr": "^0.15.5" } diff --git a/packages/troika-examples/physics/_shared/facades/Ground.js b/packages/troika-examples/physics/_shared/facades/Ground.js new file mode 100644 index 00000000..09d243f7 --- /dev/null +++ b/packages/troika-examples/physics/_shared/facades/Ground.js @@ -0,0 +1,33 @@ +import { + BoxBufferGeometry, + Mesh, + MeshPhongMaterial +} from 'three' +import { Object3DFacade } from 'troika-3d' + +const sx = 40 +const sy = 0.2 +const sz = 40 + +const geometry = new BoxBufferGeometry(sx, sy, sz, 1, 1, 1) +const material = new MeshPhongMaterial({ + transparent: true, + opacity: 0.2, + color: 0xFFFFFF, + refractionRatio: 1.0 +}) + +export default class Ground extends Object3DFacade { + constructor (parent) { + const ground = new Mesh(geometry, material.clone()) + super(parent, ground) + } + + set environmentMap (envMapTexture) { + this.threeObject.material.envMap = envMapTexture + } + + set color (c) { + this.threeObject.material.color.set(c) + } +} diff --git a/packages/troika-examples/physics/_shared/facades/PhysicsCube.js b/packages/troika-examples/physics/_shared/facades/PhysicsCube.js new file mode 100644 index 00000000..3ba42df1 --- /dev/null +++ b/packages/troika-examples/physics/_shared/facades/PhysicsCube.js @@ -0,0 +1,46 @@ +import { + BoxBufferGeometry, + Mesh, + MeshPhongMaterial +} from 'three' +import { extendAsPhysical } from 'troika-physics' +import { Object3DFacade } from 'troika-3d' + +const DEFAULT_RADIUS = 1 +const SEGS = 10 // Soft vol needs some internal segments to "move" + +const material = new MeshPhongMaterial({ + transparent: true, + opacity: 1.0 +}) + +class Cube extends Object3DFacade { + constructor (parent) { + const geometry = new BoxBufferGeometry(DEFAULT_RADIUS, DEFAULT_RADIUS, DEFAULT_RADIUS, SEGS, SEGS, SEGS) // Unique geometry to allow Soft Body demo to modify the vertices without affecting other demos + const mesh = new Mesh(geometry, material.clone()) + super(parent, mesh) + } + + set radius (r) { + this.scaleX = this.scaleY = this.scaleZ = r + } + + get radius () { + return this.scaleZ + } + + get color () { + return this.threeObject.material.color.getHex() + } + + set color (c) { + this.threeObject.material.color.set(c) + } + + set opacity (o) { + this.threeObject.visible = o > 0 + this.threeObject.material.opacity = o + } +} + +export default extendAsPhysical(Cube) diff --git a/packages/troika-examples/physics/_shared/facades/PhysicsCubeInstanceable.js b/packages/troika-examples/physics/_shared/facades/PhysicsCubeInstanceable.js new file mode 100644 index 00000000..4a219e0c --- /dev/null +++ b/packages/troika-examples/physics/_shared/facades/PhysicsCubeInstanceable.js @@ -0,0 +1,43 @@ +import { + BoxBufferGeometry, + Mesh, + MeshPhongMaterial, + Color +} from 'three' +import { Instanceable3DFacade } from 'troika-3d' +import { extendAsPhysical } from 'troika-physics' + +const DEFAULT_RADIUS = 1 +const SEGMENTS = 10 + +// Common shared geometry +const geometry = new BoxBufferGeometry(DEFAULT_RADIUS, DEFAULT_RADIUS, DEFAULT_RADIUS, SEGMENTS, SEGMENTS, SEGMENTS) + +// Common shared material, declaring the diffuse color as an instanceable uniform +const material = new MeshPhongMaterial() +material.instanceUniforms = ['diffuse'] + +// Single mesh shared between all instanceables +const protoObj = new Mesh(geometry, material) + +class InstanceableCube extends Instanceable3DFacade { + constructor (parent) { + super(parent) + this.instancedThreeObject = protoObj + } + + afterUpdate () { + let { color, radius } = this + if (this.hovered) color = 0xffffff + if (color !== this._color) { + this.setInstanceUniform('diffuse', new Color(color)) + this._color = color + } + if (radius !== this._radius) { + this.scaleX = this.scaleY = this.scaleZ = this._radius = radius + } + super.afterUpdate() + } +} + +export default extendAsPhysical(InstanceableCube) diff --git a/packages/troika-examples/physics/_shared/facades/PhysicsGround.js b/packages/troika-examples/physics/_shared/facades/PhysicsGround.js new file mode 100644 index 00000000..e3bcb81b --- /dev/null +++ b/packages/troika-examples/physics/_shared/facades/PhysicsGround.js @@ -0,0 +1,40 @@ +import { + BoxGeometry, + Mesh, + MeshPhongMaterial +} from 'three' +import { Object3DFacade } from 'troika-3d' +import { extendAsPhysical } from 'troika-physics' + +const sx = 20 +const sy = 1 +const sz = 20 + +const geometry = new BoxGeometry(sx, sy, sz, 1, 1, 1) +const material = new MeshPhongMaterial({ + transparent: true, + opacity: 0.8, + color: 0xFFFFFF, + refractionRatio: 0.8 +}) + +class Ground extends Object3DFacade { + constructor (parent) { + const ground = new Mesh(geometry, material.clone()) + super(parent, ground) + } + + set opacity (o) { + this.threeObject.material.opacity = o + } + + set color (c) { + this.threeObject.material.color.set(c) + } + + set environmentMap (envMapTexture) { + this.threeObject.material.envMap = envMapTexture + } +} + +export default extendAsPhysical(Ground) diff --git a/packages/troika-examples/physics/_shared/facades/PhysicsRope.js b/packages/troika-examples/physics/_shared/facades/PhysicsRope.js new file mode 100644 index 00000000..597f464c --- /dev/null +++ b/packages/troika-examples/physics/_shared/facades/PhysicsRope.js @@ -0,0 +1,60 @@ +import { + BufferGeometry, + LineBasicMaterial, + BufferAttribute, + LineSegments +} from 'three' +import { extendAsPhysical } from 'troika-physics' +import { Object3DFacade } from 'troika-3d' + +const SEGS = 20 + +const material = new LineBasicMaterial({ + transparent: true, + opacity: 1.0 +}) + +class Rope extends Object3DFacade { + constructor (parent) { + const geometry = new BufferGeometry() // Unique geometry to allow Soft Body demo to modify the vertices without affecting other demos + + const LEN = 5 + var segmentLength = LEN / SEGS + var ropePositions = [] + var ropeIndices = [] + + const x = 0 + const y = 5 + const z = 0 + + for (let i = 0; i < SEGS + 1; i++) { + ropePositions.push(x, y + i * segmentLength, z) + } + + for (let i = 0; i < SEGS; i++) { + ropeIndices.push(i, i + 1) + } + geometry.setIndex(new BufferAttribute(new Uint16Array(ropeIndices), 1)) + geometry.setAttribute('position', new BufferAttribute(new Float32Array(ropePositions), 3)) + geometry.computeBoundingSphere() + + const mesh = new LineSegments(geometry, material) + + super(parent, mesh) + } + + get color () { + return this.threeObject.material.color.getHex() + } + + set color (c) { + this.threeObject.material.color.set(c) + } + + set opacity (o) { + this.threeObject.visible = o > 0 + this.threeObject.material.opacity = o + } +} + +export default extendAsPhysical(Rope) diff --git a/packages/troika-examples/physics/_shared/facades/PhysicsSphere.js b/packages/troika-examples/physics/_shared/facades/PhysicsSphere.js new file mode 100644 index 00000000..2b4afc87 --- /dev/null +++ b/packages/troika-examples/physics/_shared/facades/PhysicsSphere.js @@ -0,0 +1,45 @@ +import { + SphereBufferGeometry, + Mesh, + MeshPhongMaterial +} from 'three' +import { extendAsPhysical } from 'troika-physics' +import { Object3DFacade } from 'troika-3d' + +const DEFAULT_RADIUS = 1 + +const material = new MeshPhongMaterial({ + transparent: true, + opacity: 1.0 +}) + +class Sphere extends Object3DFacade { + constructor (parent) { + const geometry = new SphereBufferGeometry(DEFAULT_RADIUS, 32, 32) // Unique geometry to allow Soft Body demo to modify the vertices without affecting other demos + const mesh = new Mesh(geometry, material.clone()) + super(parent, mesh) + } + + set radius (r) { + this.scaleX = this.scaleY = this.scaleZ = r + } + + get radius () { + return this.scaleZ + } + + get color () { + return this.threeObject.material.color.getHex() + } + + set color (c) { + this.threeObject.material.color.set(c) + } + + set opacity (o) { + this.threeObject.visible = o > 0 + this.threeObject.material.opacity = o + } +} + +export default extendAsPhysical(Sphere) diff --git a/packages/troika-examples/physics/_shared/facades/PhysicsSphereInstanceable.js b/packages/troika-examples/physics/_shared/facades/PhysicsSphereInstanceable.js new file mode 100644 index 00000000..ba64bdae --- /dev/null +++ b/packages/troika-examples/physics/_shared/facades/PhysicsSphereInstanceable.js @@ -0,0 +1,43 @@ +import { + SphereBufferGeometry, + Mesh, + MeshPhongMaterial, + Color +} from 'three' +import { Instanceable3DFacade } from 'troika-3d' +import { extendAsPhysical } from 'troika-physics' + +const DEFAULT_RADIUS = 1 +const SEGMENTS = 16 + +// Common shared geometry +const geometry = new SphereBufferGeometry(DEFAULT_RADIUS, SEGMENTS, SEGMENTS) + +// Common shared material, declaring the diffuse color as an instanceable uniform +const material = new MeshPhongMaterial() +material.instanceUniforms = ['diffuse'] + +// Single mesh shared between all instanceables +const protoObj = new Mesh(geometry, material) + +class InstanceableSphere extends Instanceable3DFacade { + constructor (parent) { + super(parent) + this.instancedThreeObject = protoObj + } + + afterUpdate () { + let { color, radius } = this + if (this.hovered) color = 0xffffff + if (color !== this._color) { + this.setInstanceUniform('diffuse', new Color(color)) + this._color = color + } + if (radius !== this._radius) { + this.scaleX = this.scaleY = this.scaleZ = this._radius = radius + } + super.afterUpdate() + } +} + +export default extendAsPhysical(InstanceableSphere) diff --git a/packages/troika-examples/physics/_shared/textures/cracks/decal-diffuse.png b/packages/troika-examples/physics/_shared/textures/cracks/decal-diffuse.png new file mode 100644 index 00000000..c18707c7 Binary files /dev/null and b/packages/troika-examples/physics/_shared/textures/cracks/decal-diffuse.png differ diff --git a/packages/troika-examples/physics/_shared/textures/cracks/decal-normal.jpg b/packages/troika-examples/physics/_shared/textures/cracks/decal-normal.jpg new file mode 100644 index 00000000..d7bbf626 Binary files /dev/null and b/packages/troika-examples/physics/_shared/textures/cracks/decal-normal.jpg differ diff --git a/packages/troika-examples/physics/_shared/textures/envMap/Yokohama/negx.jpg b/packages/troika-examples/physics/_shared/textures/envMap/Yokohama/negx.jpg new file mode 100755 index 00000000..e0861b13 Binary files /dev/null and b/packages/troika-examples/physics/_shared/textures/envMap/Yokohama/negx.jpg differ diff --git a/packages/troika-examples/physics/_shared/textures/envMap/Yokohama/negy.jpg b/packages/troika-examples/physics/_shared/textures/envMap/Yokohama/negy.jpg new file mode 100755 index 00000000..fc1891b3 Binary files /dev/null and b/packages/troika-examples/physics/_shared/textures/envMap/Yokohama/negy.jpg differ diff --git a/packages/troika-examples/physics/_shared/textures/envMap/Yokohama/negz.jpg b/packages/troika-examples/physics/_shared/textures/envMap/Yokohama/negz.jpg new file mode 100755 index 00000000..c1ffbb42 Binary files /dev/null and b/packages/troika-examples/physics/_shared/textures/envMap/Yokohama/negz.jpg differ diff --git a/packages/troika-examples/physics/_shared/textures/envMap/Yokohama/posx.jpg b/packages/troika-examples/physics/_shared/textures/envMap/Yokohama/posx.jpg new file mode 100755 index 00000000..2521b8e4 Binary files /dev/null and b/packages/troika-examples/physics/_shared/textures/envMap/Yokohama/posx.jpg differ diff --git a/packages/troika-examples/physics/_shared/textures/envMap/Yokohama/posy.jpg b/packages/troika-examples/physics/_shared/textures/envMap/Yokohama/posy.jpg new file mode 100755 index 00000000..8980554b Binary files /dev/null and b/packages/troika-examples/physics/_shared/textures/envMap/Yokohama/posy.jpg differ diff --git a/packages/troika-examples/physics/_shared/textures/envMap/Yokohama/posz.jpg b/packages/troika-examples/physics/_shared/textures/envMap/Yokohama/posz.jpg new file mode 100755 index 00000000..f0cb218b Binary files /dev/null and b/packages/troika-examples/physics/_shared/textures/envMap/Yokohama/posz.jpg differ diff --git a/packages/troika-examples/physics/_shared/textures/envMap/Yokohama/readme.txt b/packages/troika-examples/physics/_shared/textures/envMap/Yokohama/readme.txt new file mode 100755 index 00000000..d9bd5141 --- /dev/null +++ b/packages/troika-examples/physics/_shared/textures/envMap/Yokohama/readme.txt @@ -0,0 +1,13 @@ +Author +====== + +This is the work of Emil Persson, aka Humus. +http://www.humus.name + + + +License +======= + +This work is licensed under a Creative Commons Attribution 3.0 Unported License. +http://creativecommons.org/licenses/by/3.0/ diff --git a/packages/troika-examples/physics/collisionEvents/CollisionDecal.js b/packages/troika-examples/physics/collisionEvents/CollisionDecal.js new file mode 100644 index 00000000..4bc00c28 --- /dev/null +++ b/packages/troika-examples/physics/collisionEvents/CollisionDecal.js @@ -0,0 +1,80 @@ +import { + Mesh, + MeshPhongMaterial, + BoxBufferGeometry, + TextureLoader, + Euler, + Vector2, + Vector3, + Matrix4 +} from 'three' +import { Object3DFacade } from 'troika-3d' +import { DecalGeometry } from 'three/examples/jsm/geometries/DecalGeometry' + +const textureLoader = new TextureLoader() +const decalDiffuse = textureLoader.load('physics/_shared/textures/cracks/decal-diffuse.png') +const decalNormal = textureLoader.load('physics/_shared/textures/cracks/decal-normal.jpg') + +const tempGeometry = new BoxBufferGeometry(1, 1, 1, 1, 1, 1, 1, 1) + +const decalMaterial = new MeshPhongMaterial({ + specular: 0x444444, + map: decalDiffuse, + normalMap: decalNormal, + // map: crackTextures.large, + normalScale: new Vector2(1, 1), + shininess: 30, + transparent: true, + depthTest: true, + depthWrite: false, + polygonOffset: true, + polygonOffsetFactor: -4, + wireframe: false, + refractionRatio: 0.8 +}) + +export default class CollisionDecal extends Object3DFacade { + constructor (parent) { + const mesh = new Mesh(tempGeometry, decalMaterial.clone()) + super(parent, mesh) + } + + set color (c) { + this.threeObject.material.color.set(c) + } + + set environmentMap (envMapTexture) { + this.threeObject.material.envMap = envMapTexture + } + + afterUpdate () { + super.afterUpdate() + + if (!this._hasDecal) { + this._hasDecal = true + const { + targetXYZ, + normalXYZ, + scaledForce + } = this.collision + + const collisionWorldPos = new Vector3().fromArray(targetXYZ) + const mx = new Matrix4().lookAt( + new Vector3().fromArray(normalXYZ), // eye + new Vector3(0, 0, 0), // center + new Vector3(0, 1, 0) // up + ) + const rot = new Euler().setFromRotationMatrix(mx) + + // TODO It would be better to create the DecalGeometry in the constructor, + // and just update its position attributes here. I'm unsure what else would + // need to be updated though + this.threeObject.geometry = new DecalGeometry( + this.parent.threeObject, // Decals "wrap" the mesh they are applied to + collisionWorldPos, // position + rot, + new Vector3(scaledForce, scaledForce, scaledForce) // size/scale + ) + } + } +} diff --git a/packages/troika-examples/physics/collisionEvents/CollisionEventExample.jsx b/packages/troika-examples/physics/collisionEvents/CollisionEventExample.jsx new file mode 100644 index 00000000..d25ba921 --- /dev/null +++ b/packages/troika-examples/physics/collisionEvents/CollisionEventExample.jsx @@ -0,0 +1,287 @@ +import React from 'react' +import { Canvas3D, Group3DFacade } from 'troika-3d' +import { CubeTextureLoader } from 'three' +import { PhysicsManager } from 'troika-physics' +import DatGui, { DatBoolean, DatButton, DatNumber } from 'react-dat-gui' +import Ground from '../_shared/facades/Ground' +import PhysicsSphereInstanceable from '../_shared/facades/PhysicsSphereInstanceable' +import PhysicsCubeInstanceable from '../_shared/facades/PhysicsCubeInstanceable' +import PhysicsGround from '../_shared/facades/PhysicsGround' +import CollisionDecal from './CollisionDecal' + +const MIN_FORCE = 2 +const MAX_DECALS = 40 + +const scale = function (opts) { + const istart = opts.domain[0] + const istop = opts.domain[1] + const ostart = opts.range[0] + const ostop = opts.range[1] + + return function scale (value) { + return ostart + (ostop - ostart) * ((value - istart) / (istop - istart)) + } +} + +const forceScale = scale({ + domain: [0, 2000], + range: [1, 5] +}) + +const cubeMapDir = 'physics/_shared/textures/envMap/Yokohama/' +const backgroundTexture = new CubeTextureLoader().load([ + `${cubeMapDir}/posx.jpg`, + `${cubeMapDir}/negx.jpg`, + `${cubeMapDir}/posy.jpg`, + `${cubeMapDir}/negy.jpg`, + `${cubeMapDir}/posz.jpg`, + `${cubeMapDir}/negz.jpg` +]) + +export default class CollisionEventExample extends React.Component { + constructor (props) { + super(props) + + this.collisionId = 1 + this._getInitialState = this._getInitialState.bind(this) + this._getThings = this._getThings.bind(this) + this.handleClear = this.handleClear.bind(this) + this.handleSpawnThings = this.handleSpawnThings.bind(this) + + this.handleGroundCollision = this.handleGroundCollision.bind(this) + + this.state = this._getInitialState() + + this.handleConfigUpdate = (newConfig) => { + this.setState({ config: newConfig }) + } + } + + _getThings (numThings) { + const things = [] + const idBase = Date.now() + for (let i = 0; i < numThings; i++) { + things.push({ + isBox: Math.random() > 0.5, + id: `thing_${idBase}_${i}`, + radius: Math.max(0.01, Math.random()), + x: -2 + (Math.random() * 2), + y: (6 + (i * 2)), + z: -2 + (Math.random() * 2), + rotateX: Math.random() * 2 * Math.PI, + rotateY: Math.random() * 2 * Math.PI, + rotateZ: Math.random() * 2 * Math.PI, + mass: Math.round(1 + (Math.random() * 10)), + friction: Math.max(0.1, Math.random()), + restitution: Math.max(0.1, Math.random()), + color: Math.round(Math.random() * 0xffffff) + }) + } + return things + } + + _getInitialState () { + return { + groundColor: 0xFFFFFF, + collisions: [], + config: { + physicsActive: true, + debugPhysics: false, + numToAdd: 20 + }, + things: this._getThings(1) + } + } + + handleSpawnThings () { + this.setState({ + things: this.state.things.concat(this._getThings(this.state.config.numToAdd)) + }) + } + + handleClear () { + this.setState({ + things: [], + collisions: [] + }) + } + + handleGroundCollision (e) { + if (!e.collisionTarget) { + return + } + const collidedThingColor = e.collisionTarget.color + const newState = { + groundColor: collidedThingColor + } + if (e.collisionContacts && e.collisionContacts.length > 0) { + const firstContact = e.collisionContacts[0] + const scaledForce = forceScale(firstContact.force) + if (scaledForce >= MIN_FORCE) { + firstContact.id = this.collisionId++ + firstContact.scaledForce = scaledForce + firstContact.color = collidedThingColor + + this.state.collisions.push(firstContact) + newState.collisions = this.state.collisions + newState.collisions.reverse() + newState.collisions.length = MAX_DECALS // Max decals + newState.collisions.reverse() + } + } + this.setState(newState) + } + + render () { + const state = this.state + const { width, height } = this.props + const { config } = state + + return ( +
+ ({ + key: collision.id, + facade: CollisionDecal, + y: 0, + collision: collision, + color: collision.color, + receiveShadow: true, + environmentMap: backgroundTexture + })) + }, + ...state.things.map((thing, i) => { + const _facade = thing.isBox ? PhysicsCubeInstanceable : PhysicsSphereInstanceable + + return { + key: thing.id, + facade: _facade, + id: thing.id, + x: thing.x, + y: thing.y, + z: thing.z, + rotateX: thing.rotateX, + rotateY: thing.rotateY, + rotateZ: thing.rotateZ, + radius: thing.radius, + color: thing.color, + opacity: 1, + + physics: { + mass: thing.mass, + friction: thing.friction, // 0.5, + rollingFriction: thing.friction, + restitution: thing.isSoftBody ? 0 : thing.restitution + }, + + castShadow: true, + receiveShadow: true + } + }) + + ] + } + ] + } + ] + } + ]} + /> + + + + + + + + + + +
+

+ Demonstration of the onCollision event exposed by troika-physics. Collision events carry information about each participant Facade pair. + Dynamic Objects: {state.things.length.toLocaleString()}
+ Collisions: {state.collisions.length.toLocaleString()} +

+ Cubemap image credits: http://www.humus.name/index.php +
+
+ ) + } +} diff --git a/packages/troika-examples/physics/kinematics/FanBlade.js b/packages/troika-examples/physics/kinematics/FanBlade.js new file mode 100644 index 00000000..bf566a84 --- /dev/null +++ b/packages/troika-examples/physics/kinematics/FanBlade.js @@ -0,0 +1,37 @@ +import { + BoxGeometry, + Mesh, + MeshPhongMaterial +} from 'three' +import { Object3DFacade } from 'troika-3d' +import { extendAsPhysical } from 'troika-physics' + +const sx = 0.5 +const sy = 0.5 +const sz = 10 + +const geometry = new BoxGeometry(sx, sy, sz, 1, 1, 1) +const material = new MeshPhongMaterial({ + transparent: true, + opacity: 1.0, + color: 0xFFFFFF, + refractionRatio: 0.8 +}) + +class FanBlade extends Object3DFacade { + constructor (parent) { + const ground = new Mesh(geometry, material.clone()) + + super(parent, ground) + } + + set color (c) { + this.threeObject.material.color.set(c) + } + + set environmentMap (envMapTexture) { + this.threeObject.material.envMap = envMapTexture + } +} + +export default extendAsPhysical(FanBlade) diff --git a/packages/troika-examples/physics/kinematics/KinematicsExample.jsx b/packages/troika-examples/physics/kinematics/KinematicsExample.jsx new file mode 100644 index 00000000..4ff19f40 --- /dev/null +++ b/packages/troika-examples/physics/kinematics/KinematicsExample.jsx @@ -0,0 +1,224 @@ +import React from 'react' +import { Canvas3D, Group3DFacade } from 'troika-3d' +import { PhysicsManager } from 'troika-physics' +import DatGui, { DatBoolean, DatButton, DatNumber } from 'react-dat-gui' +import PhysicsSphereInstanceable from '../_shared/facades/PhysicsSphereInstanceable' +import PhysicsCubeInstanceable from '../_shared/facades/PhysicsCubeInstanceable' +import PhysicsGround from '../_shared/facades/PhysicsGround' +import FanBlade from './FanBlade' + +export default class KinematicsExample extends React.Component { + constructor (props) { + super(props) + + this._getInitialState = this._getInitialState.bind(this) + this._getThings = this._getThings.bind(this) + this.handleClear = this.handleClear.bind(this) + this.handleSpawnObjects = this.handleSpawnObjects.bind(this) + + this.state = this._getInitialState() + + this.handleConfigUpdate = (newConfig) => { + this.setState({ config: newConfig }) + } + } + + _getThings (numThings) { + const things = [] + const idBase = Date.now() + for (let i = 0; i < numThings; i++) { + things.push({ + isBox: Math.random() > 0.5, + id: `thing_${idBase}_${i}`, + radius: Math.max(0.01, Math.random()), + x: -2 + (Math.random() * 2), + y: (6 + (i * 2)), + z: -2 + (Math.random() * 2), + rotateX: Math.random() * 2 * Math.PI, + rotateY: Math.random() * 2 * Math.PI, + rotateZ: Math.random() * 2 * Math.PI, + mass: Math.round(1 + (Math.random() * 10)), + friction: Math.max(0.1, Math.random()), + restitution: Math.max(0.1, Math.random()), + color: Math.round(Math.random() * 0xffffff) + }) + } + return things + } + + _getInitialState () { + return { + config: { + physicsActive: true, + debugPhysics: false, + bladeSpinning: true, + bladeHeight: 1, + bladeSpeed: 0.3, + numToAdd: 5 + }, + things: this._getThings(5) + } + } + + handleSpawnObjects () { + this.setState({ + things: this.state.things.concat(this._getThings(this.state.config.numToAdd)) + }) + } + + handleClear () { + this.setState({ + things: [] + }) + } + + render () { + const state = this.state + const { width, height } = this.props + const { config } = state + + return ( +
+ { + const _facade = thing.isBox ? PhysicsCubeInstanceable : PhysicsSphereInstanceable + + return { + key: thing.id, + facade: _facade, + id: thing.id, + x: thing.x, + y: thing.y, + z: thing.z, + rotateX: thing.rotateX, + rotateY: thing.rotateY, + rotateZ: thing.rotateZ, + radius: thing.radius, + color: thing.color, + opacity: 1, + physics: { + mass: thing.mass, + friction: thing.friction, + rollingFriction: thing.friction, + restitution: thing.restitution + }, + castShadow: true, + receiveShadow: true + } + }) + + ] + } + ] + } + ]} + /> + + + + + + + + + + + + + + +
+

+ Kinematic Objects are controlled by Troika, but still participate in collisions with Dynamic objects in the Physics World. +

+
+
+ ) + } +} diff --git a/packages/troika-examples/physics/mouse-interaction/AirHockeyTable.js b/packages/troika-examples/physics/mouse-interaction/AirHockeyTable.js new file mode 100644 index 00000000..93da6b46 --- /dev/null +++ b/packages/troika-examples/physics/mouse-interaction/AirHockeyTable.js @@ -0,0 +1,171 @@ +import { + BoxGeometry, + BoxBufferGeometry, + Mesh, + MeshPhongMaterial, + MeshBasicMaterial, + Color +} from 'three' +import { Object3DFacade, Group3DFacade, Instanceable3DFacade } from 'troika-3d' +import { extendAsPhysical } from 'troika-physics' + +const floorGeometry = new BoxGeometry(1, 1, 1) //, 10, 10, 10) +const wallMaterial = new MeshPhongMaterial({ + transparent: true, + opacity: 0.8, + color: 0xFFFFFF, + refractionRatio: 0.8 +}) + +class Box extends Object3DFacade { + constructor (parent) { + const ground = new Mesh(floorGeometry, wallMaterial.clone()) + super(parent, ground) + } + + set opacity (o) { + this.threeObject.material.opacity = o + } + + set color (c) { + this.threeObject.material.color.set(c) + } + + set environmentMap (envMapTexture) { + this.threeObject.material.envMap = envMapTexture + } +} + +const wallBufferGeometry = new BoxBufferGeometry(1, 1, 1) +const wallMesh = new Mesh(wallBufferGeometry, wallMaterial) +wallMaterial.instanceUniforms = ['diffuse'] + +class Wall extends Instanceable3DFacade { + constructor (parent) { + super(parent) + this.instancedThreeObject = wallMesh + } + + set color (c) { + if (!this._color !== c) { + this.setInstanceUniform('diffuse', new Color(c)) + } + this._color = c + } +} + +class _AirHockeyTable extends Group3DFacade { + afterUpdate () { + if (!this._hasChildren) { + this._hasChildren = true + const targetSize = this.width / 3 // Near/far wall divided into this for a center target + + this.children = [ + { + key: 'ground', + facade: Box, + x: 0, + y: -(this.wallThickness * 3) / 2, + z: 0, + scaleX: this.width, + scaleY: this.wallThickness * 3, + scaleZ: this.length, + color: 0xFFFFFF, + castShadow: true, + receiveShadow: true + }, + { + key: 'wall_left', + facade: Wall, + x: -this.width / 2, + y: this.height / 2, + scaleX: this.wallThickness, + scaleY: this.height, + scaleZ: this.length, + color: 0xEEEEEE, + castShadow: true, + receiveShadow: true + }, + { + key: 'wall_right', + facade: Wall, + x: this.width / 2, + y: this.height / 2, + scaleX: this.wallThickness, + scaleY: this.height, + scaleZ: this.length, + color: 0xEEEEEE, + castShadow: true, + receiveShadow: true + }, + { + key: 'wall_near_right', + facade: Wall, + x: this.width / 2 - targetSize / 2, + y: this.height / 2, + z: this.length / 2, + scaleX: targetSize, + scaleY: this.height, + scaleZ: this.wallThickness, + color: 0xDDDDDD, + castShadow: true, + receiveShadow: true + }, + { + key: 'wall_near_left', + facade: Wall, + x: -this.width / 2 + targetSize / 2, + y: this.height / 2, + z: this.length / 2, + scaleX: targetSize, + scaleY: this.height, + scaleZ: this.wallThickness, + color: 0xDDDDDD, + castShadow: true, + receiveShadow: true + }, + { + key: 'wall_far_right', + facade: Wall, + x: this.width / 2 - targetSize / 2, + y: this.height / 2, + z: -this.length / 2, + scaleX: targetSize, + scaleY: this.height, + scaleZ: this.wallThickness, + color: 0xDDDDDD, + castShadow: true, + receiveShadow: true + }, + { + key: 'wall_far_left', + facade: Wall, + x: -this.width / 2 + targetSize / 2, + y: this.height / 2, + z: -this.length / 2, + scaleX: targetSize, + scaleY: this.height, + scaleZ: this.wallThickness, + color: 0xDDDDDD, + castShadow: true, + receiveShadow: true + } + ] + } + + super.afterUpdate() + } +} + +export const AirHockeyTable = extendAsPhysical(_AirHockeyTable) + +class _TableSurface extends Object3DFacade { + constructor (parent) { + const geometry = new BoxBufferGeometry(1, 1, 1, 1, 1, 1) + const material = new MeshBasicMaterial({ color: 0xFF0000 }) + const mesh = new Mesh(geometry, material.clone()) + super(parent, mesh) + } +} + +export const TableSurface = extendAsPhysical(_TableSurface) \ No newline at end of file diff --git a/packages/troika-examples/physics/mouse-interaction/MouseInteractionExample.jsx b/packages/troika-examples/physics/mouse-interaction/MouseInteractionExample.jsx new file mode 100644 index 00000000..307ba0cb --- /dev/null +++ b/packages/troika-examples/physics/mouse-interaction/MouseInteractionExample.jsx @@ -0,0 +1,309 @@ +import React from 'react' +import { Plane, Vector3 } from 'three' +import { Canvas3D, Group3DFacade } from 'troika-3d' +import { PhysicsManager } from 'troika-physics' +import DatGui, { DatBoolean, DatButton, DatNumber } from 'react-dat-gui' +import Puck from './Puck' +import Paddle from './Paddle' +import { AirHockeyTable, TableSurface } from './AirHockeyTable' + +const WIDTH = 20 +const LENGTH = 42 + +export default class KinematicsExample extends React.Component { + constructor (props) { + super(props) + + this._getInitialState = this._getInitialState.bind(this) + this._getThings = this._getThings.bind(this) + this.handleClear = this.handleClear.bind(this) + this.handleSpawnObjects = this.handleSpawnObjects.bind(this) + + this._onPaddleMouseOver = this._onPaddleMouseOver.bind(this) + this._onPaddleMouseOut = this._onPaddleMouseOut.bind(this) + this._onPaddleDragStart = this._onPaddleDragStart.bind(this) + this._onPaddleDrag = this._onPaddleDrag.bind(this) + this._onPaddleDragEnd = this._onPaddleDragEnd.bind(this) + // this._onPaddleDragEnter = this._onPaddleDragEnter.bind(this) + // this._onPaddleDragLeave = this._onPaddleDragLeave.bind(this) + + this.state = this._getInitialState() + + this.handleConfigUpdate = (newConfig) => { + this.setState({ config: newConfig }) + } + } + + _getThings (numThings) { + const things = [] + const idBase = Date.now() + for (let i = 0; i < numThings; i++) { + things.push({ + isBox: Math.random() > 0.5, + id: `thing_${idBase}_${i}`, + radius: Math.max(0.01, Math.random()), + x: -5 + (Math.random() * 10), + y: 2 + (Math.random() * 2), + z: -5 + (Math.random() * 10), + mass: 4, + friction: 0.5, + restitution: 0.1, + color: Math.round(Math.random() * 0xffffff) + }) + } + return things + } + + _getInitialState () { + return { + config: { + physicsActive: true, + debugPhysics: false, + // bladeSpinning: true, + // bladeHeight: 1, + tableFriction: 0.5, + paddleFriction: 0.5, + paddleMass: 8, + puckFriction: 0.5, + puckMass: 800, + numToAdd: 5 + }, + things: this._getThings(3), + dragX: 0, + dragZ: 0 + } + } + + handleSpawnObjects () { + this.setState({ + things: this.state.things.concat(this._getThings(this.state.config.numToAdd)) + }) + } + + handleClear () { + this.setState({ + things: [] + }) + } + + _onPaddleMouseOver (e) { + this.setState({ hoveredPaddle: e.target.id }) + } + + _onPaddleMouseOut () { + this.setState({ hoveredPaddle: null }) + } + + _onPaddleDragStart (e) { + this.setState({ draggedPaddle: e.target.id }) + } + + _onPaddleDrag (e) { + const tablePlane = new Plane().setComponents(0, 1, 0, 0)// .applyMatrix4(systemTransformMatrix) + const ray = e.ray // all pointer events in a 3D world are guaranteed to have a `ray` + const posVec3 = ray.intersectPlane(tablePlane, new Vector3()) + if (posVec3) { + this.setState({ + dragX: posVec3.x, + dragZ: posVec3.z + }) + } + } + + _onPaddleDragEnd (e) { + this.setState({ + draggedPaddle: null + // droppablePaddle: null + }) + } + + _onPaddleDragEnter (e) { + this.setState({ droppablePaddle: e.target.id }) + } + + _onPaddleDragLeave (e) { + this.setState({ droppablePaddle: null }) + } + + render () { + const state = this.state + const { width, height } = this.props + const { config } = state + + return ( +
+ 0 ? state.things[0] : { x: 0, y: 0, z: 0 } + lookAt: { x: 0, y: 0, z: 0 } + }} + objects={[ + { + key: 'physicsManager', + facade: PhysicsManager, + y: 0, + x: 0, + simulationEnabled: config.physicsActive, + debug: config.debugPhysics, + children: [ + { + key: 'table-hockey', + facade: Group3DFacade, + children: [ + { + key: 'tableSurface', + facade: TableSurface, + onDragStart: this._onPaddleDragStart, + onDrag: this._onPaddleDrag, + onDragEnd: this._onPaddleDragEnd, + pointerEvents: true, + x: 0, + y: 0.01, + z: 0, + scaleX: WIDTH, + scaleY: 0.1, + scaleZ: LENGTH, + physics: { + restitution: 0.001, + friction: config.tableFriction, + // mass: 999, + isStatic: true // Will produce a combined triangle mesh optimized for Static bodies + // isKinematic: true + } + }, + { + key: 'table', + facade: AirHockeyTable, + x: 0, + y: 0, + z: 0, + height: 2, + width: WIDTH, + length: LENGTH, + wallThickness: 0.2, + color: 0xFF0000, + physics: { + restitution: 0.01, + friction: config.tableFriction, + // mass: 999, + isStatic: true // Will produce a combined triangle mesh optimized for Static bodies + // isKinematic: true + } + }, + { + key: 'paddle', + facade: Paddle, + height: 1, + radius: 3, + x: state.dragX, + y: 0, + z: state.dragZ, + // animation: [ + // { + // paused: !config.paddleDragged, + // 0: { x: -5, z: 5 }, + // 100: { x: 5, z: -5 }, + // duration: 3000, + // iterations: Infinity, + // direction: 'alternate' + // } + // ], + opacity: 1, + physics: { + isKinematic: true, + friction: config.paddleFriction, + mass: config.paddleMass + // restitution: 0.01 + }, + castShadow: true, + receiveShadow: true, + + pointerEvents: true, //! isDraggedPaddle, + + onMouseOver: this._onPaddleMouseOver, + onMouseOut: this._onPaddleMouseOut + + // transition: { + // x: TRANS, + // y: TRANS, + // z: TRANS + // } + + // onDragEnter: !isDraggedPaddle && this._onPaddleDragEnter, + // onDragLeave: !isDraggedPaddle && this._onPaddleDragLeave, + // onDrop: !isDraggedPaddle && this._onPlanetDrop, + }, + ...state.things.map((thing, i) => { + return { + key: thing.id, + facade: Puck, + id: thing.id, + x: thing.x, + y: thing.y, + z: thing.z, + radius: thing.radius, + color: thing.color, + opacity: 1, + physics: { + mass: config.puckMass, // thing.mass, + friction: config.puckFriction // thing.friction, + // restitution: 0.01 thing.restitution + }, + castShadow: true, + receiveShadow: true + } + }) + + ] + } + ] + } + ]} + /> + + + + + + + + + + + {/* + */} + + + + + + +
+

+ Kinematic Objects are controlled by Troika, but still participate in collisions with Dynamic objects in the Physics World. +

+
+
+ ) + } +} diff --git a/packages/troika-examples/physics/mouse-interaction/Paddle.js b/packages/troika-examples/physics/mouse-interaction/Paddle.js new file mode 100644 index 00000000..76413380 --- /dev/null +++ b/packages/troika-examples/physics/mouse-interaction/Paddle.js @@ -0,0 +1,131 @@ +// import { +// CylinderBufferGeometry, +// Mesh, +// MeshPhongMaterial +// } from 'three' +// import { Object3DFacade, Instanceable3DFacade } from 'troika-3d' +// import { extendAsPhysical } from 'troika-physics' + +// const RADIUS = 1.2 +// const HEIGHT = 1 + +// const geometry = new CylinderBufferGeometry(RADIUS, RADIUS, HEIGHT, 20) +// const material = new MeshPhongMaterial({ +// transparent: true, +// opacity: 1.0, +// color: 0xFFFFFF, +// refractionRatio: 0.8 +// }) + +// class Paddle extends Object3DFacade { +// constructor (parent) { +// const mesh = new Mesh(geometry, material.clone()) + +// super(parent, mesh) +// } + +// set color (c) { +// this.threeObject.material.color.set(c) +// } + +// set environmentMap (envMapTexture) { +// this.threeObject.material.envMap = envMapTexture +// } +// } + +// export default extendAsPhysical(Paddle) + +import { + CylinderBufferGeometry, + SphereBufferGeometry, + Mesh, + MeshPhongMaterial +} from 'three' +import { Object3DFacade, Group3DFacade } from 'troika-3d' +import { extendAsPhysical } from 'troika-physics' + +const cyl = new CylinderBufferGeometry(1, 1, 1, 32) +const sph = new SphereBufferGeometry(1, 32, 32) //, 10, 10, 10) +const material = new MeshPhongMaterial({ + color: 0xaaaaaa, + refractionRatio: 0.8 +}) + +class Disk extends Object3DFacade { + constructor (parent) { + const ground = new Mesh(cyl, material) + super(parent, ground) + } +} + +class Handle extends Object3DFacade { + constructor (parent) { + const ground = new Mesh(cyl, material) + super(parent, ground) + } +} + +class HandleTop extends Object3DFacade { + constructor (parent) { + const ground = new Mesh(sph, material) + super(parent, ground) + } +} + +const HANDLE_RATIO = 5 + +class Paddle extends Group3DFacade { + afterUpdate () { + if (!this._hasChildren) { + this._hasChildren = true + + const diskHeight = this.height / 2.5 + + this.children = [ + { + key: 'disk', + facade: Disk, + x: 0, + y: diskHeight / 2, + z: 0, + scaleX: this.radius / 2, + scaleY: diskHeight, + scaleZ: this.radius / 2, + castShadow: true, + receiveShadow: true, + pointerEvents: true + }, + { + key: 'handle', + facade: Handle, + x: 0, + y: this.height / 2, + z: 0, + scaleX: this.radius / HANDLE_RATIO, + scaleY: this.height, + scaleZ: this.radius / HANDLE_RATIO, + castShadow: true, + receiveShadow: true, + pointerEvents: true + }, + { + key: 'handle_top', + facade: HandleTop, + x: 0, + y: this.height, + z: 0, + scaleX: this.radius / HANDLE_RATIO, + scaleY: this.radius / HANDLE_RATIO, + scaleZ: this.radius / HANDLE_RATIO, + castShadow: true, + receiveShadow: true, + pointerEvents: true + } + ] + } + + super.afterUpdate() + } +} + +export default extendAsPhysical(Paddle) diff --git a/packages/troika-examples/physics/mouse-interaction/Puck.js b/packages/troika-examples/physics/mouse-interaction/Puck.js new file mode 100644 index 00000000..bea9a5fa --- /dev/null +++ b/packages/troika-examples/physics/mouse-interaction/Puck.js @@ -0,0 +1,34 @@ +import { + CylinderBufferGeometry, + Mesh, + MeshPhongMaterial, + Color +} from 'three' +import { Instanceable3DFacade } from 'troika-3d' +import { extendAsPhysical } from 'troika-physics' + +const RADIUS = 1 +const HEIGHT = 0.5 + +const geometry = new CylinderBufferGeometry(RADIUS, RADIUS, HEIGHT, 20) +const material = new MeshPhongMaterial({ + color: 0xFFFFFF +}) +material.instanceUniforms = ['diffuse'] +const puck = new Mesh(geometry, material) + +class Puck extends Instanceable3DFacade { + constructor (parent) { + super(parent) + this.instancedThreeObject = puck + } + + set color (c) { + if (!this._color !== c) { + this.setInstanceUniform('diffuse', new Color(c)) + } + this._color = c + } +} + +export default extendAsPhysical(Puck) diff --git a/packages/troika-examples/physics/rigidBody/RigidBodyExample.jsx b/packages/troika-examples/physics/rigidBody/RigidBodyExample.jsx new file mode 100644 index 00000000..d91461a0 --- /dev/null +++ b/packages/troika-examples/physics/rigidBody/RigidBodyExample.jsx @@ -0,0 +1,239 @@ +import React from 'react' +import { Canvas3D, Group3DFacade } from 'troika-3d' +import { PhysicsManager } from 'troika-physics' +import DatGui, { DatBoolean, DatButton, DatSelect, DatNumber } from 'react-dat-gui' +import PhysicsGround from '../_shared/facades/PhysicsGround' +import PhysicsSphere from '../_shared/facades/PhysicsSphere' +import PhysicsSphereInstanceable from '../_shared/facades/PhysicsSphereInstanceable' +import PhysicsCube from '../_shared/facades/PhysicsCube' +import PhysicsCubeInstanceable from '../_shared/facades/PhysicsCubeInstanceable' + +function find (arr, testFn) { + for (let i = 0, len = arr.length; i < len; i++) { + if (testFn(arr[i])) { + return arr[i] + } + } + return null +} + +export default class RigidBodyExample extends React.Component { + constructor (props) { + super(props) + + this._getInitialState = this._getInitialState.bind(this) + this._getThings = this._getThings.bind(this) + this.handleClear = this.handleClear.bind(this) + this.handleAddThings = this.handleAddThings.bind(this) + this._onThingMouseOver = this._onThingMouseOver.bind(this) + this._onThingMouseOut = this._onThingMouseOut.bind(this) + this._onThingMouseUp = this._onThingMouseUp.bind(this) + + this.state = this._getInitialState() + + this.handleConfigUpdate = (newConfig) => { + this.setState({ config: newConfig }) + } + } + + _getThings (numThings) { + const things = [] + const idBase = Date.now() + for (let i = 0; i < numThings; i++) { + things.push({ + isCube: Math.random() > 0.5, + id: `thing_${idBase}_${i}`, + radius: Math.max(0.01, Math.random()), + x: -2 + (Math.random() * 2), + y: (6 + (i * 2)), + z: -2 + (Math.random() * 2), + rotateX: Math.random() * 2 * Math.PI, + rotateY: Math.random() * 2 * Math.PI, + rotateZ: Math.random() * 2 * Math.PI, + mass: Math.round(1 + (Math.random() * 10)), + friction: Math.max(0.1, Math.random()), + restitution: Math.max(0.1, Math.random()), + color: Math.round(Math.random() * 0xffffff) + }) + } + return things + } + + _getInitialState () { + return { + hoveredThing: null, + config: { + physicsActive: true, + debugPhysics: false, + useInstanced: 'Instanced', + numToAdd: 20, + tableRestitution: 0.5 + }, + things: this._getThings(20) + } + } + + handleAddThings () { + this.setState({ + things: this.state.things.concat(this._getThings(this.state.config.numToAdd)) + }) + } + + handleClear () { + this.setState({ + hoveredThing: null, + things: [] + }) + } + + _onThingMouseOver (e) { + this.setState({ hoveredThing: e.target.id }) + } + + _onThingMouseOut () { + this.setState({ hoveredThing: null }) + } + + _onThingMouseUp (e) { + const clickedThing = find(this.state.things, d => d.id === e.target.id) + clickedThing.radius *= 1.5 + clickedThing.mass *= 10 + this.forceUpdate() + } + + render () { + const state = this.state + const { width, height } = this.props + const { config } = state + + return ( +
+ { + const isHoveredThing = state.hoveredThing === thing.id + const _facade = config.useInstanced === 'Instanced' ? ( + thing.isCube ? PhysicsCubeInstanceable : PhysicsSphereInstanceable + ) : ( + thing.isCube ? PhysicsCube : PhysicsSphere + ) + + return { + key: thing.id, + facade: _facade, + id: thing.id, + x: thing.x, + y: thing.y, + z: thing.z, + rotateX: thing.rotateX, + rotateY: thing.rotateY, + rotateZ: thing.rotateZ, + radius: thing.radius, + color: isHoveredThing ? 0x222222 : thing.color, + opacity: 1, + + physics: { + mass: thing.mass, + friction: thing.friction, + rollingFriction: thing.friction, + restitution: thing.isSoftBody ? 0 : thing.restitution + }, + + pointerEvents: true, + onMouseOver: this._onThingMouseOver, + onMouseOut: this._onThingMouseOut, + onMouseUp: this._onThingMouseUp, + + castShadow: true, + receiveShadow: true + } + }) + + ] + } + ] + } + ]} + /> + + + + + + + + + + + + + +
+

+ Demonstration of basic rigid body physics and seamless compatibility with `troika` events. Click on physical objects to enlarge them and multiply their mass dramatically. + Dynamic Objects: {state.things.length.toLocaleString()} +

+
+
+ ) + } +} diff --git a/packages/troika-examples/physics/softBody/SoftBodyExample.jsx b/packages/troika-examples/physics/softBody/SoftBodyExample.jsx new file mode 100644 index 00000000..e3665ab3 --- /dev/null +++ b/packages/troika-examples/physics/softBody/SoftBodyExample.jsx @@ -0,0 +1,244 @@ +import React from 'react' +import { Canvas3D, Group3DFacade } from 'troika-3d' +import { PhysicsManager } from 'troika-physics' +import DatGui, { DatBoolean, DatButton, DatNumber } from 'react-dat-gui' +import PhysicsGround from '../_shared/facades/PhysicsGround' +import PhysicsSphere from '../_shared/facades/PhysicsSphere' +import PhysicsSphereInstanceable from '../_shared/facades/PhysicsSphereInstanceable' +import PhysicsCube from '../_shared/facades/PhysicsCube' +import PhysicsCubeInstanceable from '../_shared/facades/PhysicsCubeInstanceable' + +export default class SoftBodyExample extends React.Component { + constructor (props) { + super(props) + + this._getInitialState = this._getInitialState.bind(this) + this._getThings = this._getThings.bind(this) + this.handleClear = this.handleClear.bind(this) + this.handleAddThings = this.handleAddThings.bind(this) + + this.state = this._getInitialState() + + this.handleConfigUpdate = (newConfig) => { + this.setState({ config: newConfig }) + } + } + + _getThings (numThings) { + const things = [] + const idBase = Date.now() + for (let i = 0; i < numThings; i++) { + things.push({ + isCube: Math.random() > 0.5, + id: `thing_${idBase}_${i}`, + radius: Math.max(0.01, Math.random()), + x: -2 + (Math.random() * 2), + y: (6 + (i * 2)), + z: -2 + (Math.random() * 2), + rotateX: Math.random() * 2 * Math.PI, + rotateY: Math.random() * 2 * Math.PI, + rotateZ: Math.random() * 2 * Math.PI, + mass: Math.round(1 + (Math.random() * 10)), + friction: Math.max(0.1, Math.random()), + restitution: Math.max(0.1, Math.random()), + color: Math.round(Math.random() * 0xffffff) + }) + } + return things + } + + _getInitialState () { + return { + config: { + physicsActive: true, + debugPhysics: false, + numToAdd: 5, + spherePressure: 150, + cubePressure: 500, + softSphere: true, + softCube: false + }, + things: this._getThings(5) + } + } + + handleAddThings () { + this.setState({ + things: this.state.things.concat(this._getThings(this.state.config.numToAdd)) + }) + } + + handleClear () { + this.setState({ + things: [] + }) + } + + render () { + const state = this.state + const { width, height } = this.props + const { config } = state + + return ( +
+ { + const _facade = thing.isCube ? PhysicsCubeInstanceable : PhysicsSphereInstanceable + + return { + key: thing.id, + facade: _facade, + id: thing.id, + x: thing.x, + y: thing.y, + z: thing.z, + rotateX: thing.rotateX, + rotateY: thing.rotateY, + rotateZ: thing.rotateZ, + radius: thing.radius, + color: thing.color, + opacity: 1, + + physics: { + mass: thing.mass, + friction: thing.friction, + rollingFriction: thing.friction, + restitution: thing.isSoftBody ? 0 : thing.restitution + }, + + pointerEvents: true, + onMouseOver: this._onThingMouseOver, + onMouseOut: this._onThingMouseOut, + onMouseUp: this._onThingMouseUp, + + castShadow: true, + receiveShadow: true + } + }) + + ] + } + ] + } + ]} + /> + + + + + + + + + + + + + + + + +
+

+ Demonstration of soft body physics and collisions with rigid bodies. + Dynamic Objects: {state.things.length.toLocaleString()} +

+
+
+ ) + } +} diff --git a/packages/troika-examples/physics/softBody/SoftRopeExample.jsx b/packages/troika-examples/physics/softBody/SoftRopeExample.jsx new file mode 100644 index 00000000..252c653c --- /dev/null +++ b/packages/troika-examples/physics/softBody/SoftRopeExample.jsx @@ -0,0 +1,275 @@ +import React from 'react' +import { Canvas3D, Group3DFacade } from 'troika-3d' +import { PhysicsManager } from 'troika-physics' +import DatGui, { DatBoolean, DatButton, DatNumber } from 'react-dat-gui' +import PhysicsGround from '../_shared/facades/PhysicsGround' +import PhysicsSphere from '../_shared/facades/PhysicsSphere' +import PhysicsSphereInstanceable from '../_shared/facades/PhysicsSphereInstanceable' +import PhysicsCube from '../_shared/facades/PhysicsCube' +import PhysicsCubeInstanceable from '../_shared/facades/PhysicsCubeInstanceable' +import PhysicsRope from '../_shared/facades/PhysicsRope' + +export default class SoftBodyExample extends React.Component { + constructor (props) { + super(props) + + this._getInitialState = this._getInitialState.bind(this) + this._getThings = this._getThings.bind(this) + this.handleClear = this.handleClear.bind(this) + this.handleAddThings = this.handleAddThings.bind(this) + + this.state = this._getInitialState() + + this.handleConfigUpdate = (newConfig) => { + this.setState({ config: newConfig }) + } + } + + _getThings (numThings) { + const things = [] + const idBase = Date.now() + for (let i = 0; i < numThings; i++) { + things.push({ + isCube: Math.random() > 0.5, + id: `thing_${idBase}_${i}`, + radius: Math.max(0.01, Math.random()), + x: -2 + (Math.random() * 2), + y: (6 + (i * 2)), + z: -2 + (Math.random() * 2), + rotateX: Math.random() * 2 * Math.PI, + rotateY: Math.random() * 2 * Math.PI, + rotateZ: Math.random() * 2 * Math.PI, + mass: Math.round(1 + (Math.random() * 10)), + friction: Math.max(0.1, Math.random()), + restitution: Math.max(0.1, Math.random()), + color: Math.round(Math.random() * 0xffffff) + }) + } + return things + } + + _getInitialState () { + return { + config: { + physicsActive: true, + debugPhysics: false, + numToAdd: 5, + spherePressure: 150, + cubePressure: 500 + }, + things: this._getThings(0) + } + } + + handleAddThings () { + this.setState({ + things: this.state.things.concat(this._getThings(this.state.config.numToAdd)) + }) + } + + handleClear () { + this.setState({ + things: [] + }) + } + + render () { + const state = this.state + const { width, height } = this.props + const { config } = state + + return ( +
+ { + const _facade = thing.isCube ? PhysicsCubeInstanceable : PhysicsSphereInstanceable + + return { + key: thing.id, + facade: _facade, + id: thing.id, + x: thing.x, + y: thing.y, + z: thing.z, + rotateX: thing.rotateX, + rotateY: thing.rotateY, + rotateZ: thing.rotateZ, + radius: thing.radius, + color: thing.color, + opacity: 1, + + physics: { + mass: thing.mass, + friction: thing.friction, + rollingFriction: thing.friction, + restitution: thing.isSoftBody ? 0 : thing.restitution + }, + + pointerEvents: true, + onMouseOver: this._onThingMouseOver, + onMouseOut: this._onThingMouseOut, + onMouseUp: this._onThingMouseUp, + + castShadow: true, + receiveShadow: true + } + }) + + ] + } + ] + } + ]} + /> + + + + + + + + + + + + + +
+

+ Demonstration of soft body physics and collisions with rigid bodies. + Dynamic Objects: {state.things.length.toLocaleString()} +

+
+
+ ) + } +} diff --git a/packages/troika-physics/README.md b/packages/troika-physics/README.md new file mode 100644 index 00000000..6efaec5a --- /dev/null +++ b/packages/troika-physics/README.md @@ -0,0 +1,93 @@ +# `troika-physics` +[![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com) + +> TODO: description + +## Usage + +``` +const troikaPhysics = require('troika-physics'); + +// TODO: DEMONSTRATE API +``` + +## About Ammo.js and Bullet Physics +ammo.js (the initial engine used for `troika-physics`) is a javascript port of the Bullet physics engine. + +##### Resources: +* [Bullet Physics Manual](http://www.cs.kent.edu/~ruttan/GameEngines/lectures/Bullet_User_Manual) +* [Bullet API Documentation](https://pybullet.org/Bullet/BulletFull/index.html) +* [Bullet QuickStart Guide](https://docs.google.com/document/d/10sXEhzFRSnvFcl3XxNGhnD4N2SedqwdAvK3dsihxVUA/edit#heading=h.czaspku18mzs) +* [Great Resource for Collisions](https://github.com/AndresTraks/BulletSharp/wiki/Collision-Callbacks-and-Triggers) + +## Roadmap/TODO +- [x] Rigid Bodies + - [x] Instancing Support (via `InstanceableObject3DFacade`) + - [x] `onCollision` events +- [x] Soft Bodies/Volumes (experimental) + - [ ] Instancing Support + - [ ] `onCollision` events +- [ ] Collision Filtering +- [ ] Constraints +- [ ] Collision Shape caching/sharing/manager + - [ ] Generate new shape instances when `localScaling` is different from the cache. +- [x] Handle changes to `physics` properties (mass, restitution, friction, etc.) while simulation is running +- [x] Kinematic Bodies (use `isKinematic: true`) +- [x] Static Bodies (`isStatic: true`) +- [ ] CoM (Center of Mass) handling via `physics` configuration +- [ ] Simpler user-specified collider configuration +- [x] Inlined Ammo.js WASM engine, for simpler distribution +- [x] Custom Ammo.js build +- [ ] Fallback to ASM.js Ammo build if WASM is unsupported +- [ ] Automatic handling of Physics-extended Groups. + - [ ] For `static` groups, generate a merged triangle mesh collider by recursively iterating over all child geometries + - [x] For non-`static` groups, generate a Bullet compound shape, producing a single rigid body representing the +- [ ] Height-field terrain +- [ ] RaycastVehicle +- [ ] Ghost objects (trigger volumes) +- [ ] SharedArrayBuffer for soft body vertices/indices https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer +- [x] (possible) implementation of DebugDrawer to help diagnose collision shape issues. https://github.com/InfiniteLee/ammo-debug-drawer/blob/master/examples/index.html + - [x] Will need to be re-added in the custom WASM AmmoJS build -- possible dev-only output? + +## Known issues and limitations +- Ammo/Bullet `btCompoundShape` (generated by extending a group as physical) child shapes do *not* play nicely with Three/Troika scaling. A warning will be emitted to the console if child objects added to a Compound Shape are scaled. +- Compound shapes must be rigid bodies. + +## External docs and useful information + +### Ammo Soft Body configuration +Ammo/Bullet Soft Body `cfg` properties. Set via `cfg.set_(..args)`. +``` +eAeroModel::_ aeromodel; // Aerodynamic model (default: V_Point) +btScalar kVCF; // Velocities correction factor (Baumgarte) +btScalar kDP; // Damping coefficient [0,1] +btScalar kDG; // Drag coefficient [0,+inf] +btScalar kLF; // Lift coefficient [0,+inf] +btScalar kPR; // Pressure coefficient [-inf,+inf] +btScalar kVC; // Volume conversation coefficient [0,+inf] +btScalar kDF; // Dynamic friction coefficient [0,1] +btScalar kMT; // Pose matching coefficient [0,1] +btScalar kCHR; // Rigid contacts hardness [0,1] +btScalar kKHR; // Kinetic contacts hardness [0,1] +btScalar kSHR; // Soft contacts hardness [0,1] +btScalar kAHR; // Anchors hardness [0,1] +btScalar kSRHR_CL; // Soft vs rigid hardness [0,1] (cluster only) +btScalar kSKHR_CL; // Soft vs kinetic hardness [0,1] (cluster only) +btScalar kSSHR_CL; // Soft vs soft hardness [0,1] (cluster only) +btScalar kSR_SPLT_CL; // Soft vs rigid impulse split [0,1] (cluster only) +btScalar kSK_SPLT_CL; // Soft vs rigid impulse split [0,1] (cluster only) +btScalar kSS_SPLT_CL; // Soft vs rigid impulse split [0,1] (cluster only) +btScalar maxvolume; // Maximum volume ratio for pose +btScalar timescale; // Time scale +int viterations; // Velocities solver iterations +int piterations; // Positions solver iterations +int diterations; // Drift solver iterations +int citerations; // Cluster solver iterations +int collisions; // Collisions flags +tVSolverArray m_vsequence; // Velocity solvers sequence +tPSolverArray m_psequence; // Position solvers sequence +tPSolverArray m_dsequence; // Drift solvers sequence +``` + +### Emscripten settings +[https://github.com/emscripten-core/emscripten/blob/incoming/src/settings.js](https://github.com/emscripten-core/emscripten/blob/incoming/src/settings.js) \ No newline at end of file diff --git a/packages/troika-physics/build-ammo.js b/packages/troika-physics/build-ammo.js new file mode 100644 index 00000000..3d6901d8 --- /dev/null +++ b/packages/troika-physics/build-ammo.js @@ -0,0 +1,136 @@ +const path = require('path') +const { spawn } = require('child_process') +const { + copy, + remove, + ensureDir +} = require('fs-extra') +const replace = require('replace-in-file') + +const { LERNA_ROOT_PATH } = process.env +if (!LERNA_ROOT_PATH) { + throw new Error('Please execute `npm run build-physics` from the repository root.') +} + +const rootDir = path.resolve(LERNA_ROOT_PATH) +const srcAmmoDir = path.resolve(rootDir, 'node_modules/ammo.js/') + +const workingDir = path.resolve(rootDir, '.tmp') +const workingAmmoDir = path.resolve(workingDir, 'ammo.js/') +const workingAmmoOutputCompat = path.resolve(workingAmmoDir, 'builds/ammo.js') +const workingAmmoOutputWasm = path.resolve(workingAmmoDir, 'builds/ammo.wasm.js') + +const destDir = path.resolve(rootDir, 'packages/troika-physics/libs') +const destPathCompat = path.resolve(destDir, 'troika-ammo.js') +const destPathWasm = path.resolve(destDir, 'troika-ammo.wasm.js') + +const CUSTOM_BANNER = ` +/* Custom WASM build for troika generated at ${new Date().toISOString()} + * customizations: + * - \`SINGLE_FILE\` WASM output to simplify portability when used with a web worker + * - Closure compiler used + * - specify \`ENVIRONMENT="worker"\` so strip browser and node related code. Simplifies build, as we no longer need to mock out \`fs\` and \`path\` to satisfy it. + * - Strip unused components (UTF8ToString) + */ +` + +async function customizeAmmoWasm () { + await replace({ + files: path.resolve(workingAmmoDir, 'make.py'), + from: [ + '// This is ammo.js, a port of Bullet Physics to JavaScript. zlib licensed.', + "wasm = 'wasm' in sys.argv", + "closure = 'closure' in sys.argv", + 'EXPORTED_RUNTIME_METHODS=["UTF8ToString"]', + 'WASM=1 ' // First-occurrence only + ], + to: [ + ` +// This is ammo.js, a port of Bullet Physics to JavaScript. zlib licensed. +${CUSTOM_BANNER} + `, + 'wasm = True', // Force WASM output + 'closure = True', // Force Closure compiler output (?) + 'EXPORTED_RUNTIME_METHODS=[]', // Strip unneeded UTF8ToString + 'WASM=1 -s SINGLE_FILE=1 -s ENVIRONMENT="worker" ' // Generate WASM output with base64-encoded wasm output inline + ] + }) +} + +// FIXME find something cleaner than this. +async function convertToES6Module (file) { + await replace({ + files: file, + from: [ + 'if (typeof exports === \'object\' && typeof module === \'object\')', + ' module.exports = Ammo;', + ' else if (typeof define === \'function\' && define[\'amd\'])', + ' define([], function() { return Ammo; });', + ' else if (typeof exports === \'object\')', + ' exports["Ammo"] = Ammo;' + ], + to: [ + 'export default Ammo;', + '', + '', + '', + '', + '' + ] + }) +} + +function dockerBuild () { + return new Promise((resolve, reject) => { + const child = spawn('docker-compose', ['up'], { + cwd: workingAmmoDir + }) + + child.stdout.pipe(process.stdout) + child.stderr.pipe(process.stderr) + child.on('close', (code) => { + resolve(code) + }) + }) +} + +async function buildTroikaAmmoCompat () { + // Compatibility Ammo.js (ASM.js) just copied from pre-built source. + await copy(workingAmmoOutputCompat, destPathCompat) + console.log(`buildTroikaAmmoWasm: copied to "${workingAmmoOutputCompat}" -> "${destPathCompat}"`) +} + +async function buildTroikaAmmoWasm () { + console.log('buildTroikaAmmoWasm: modifying ammo.js make.py') + await customizeAmmoWasm() + + console.log('buildTroikaAmmoWasm: executing ammo.js build (docker-compose up)') + const dockerExitCode = await dockerBuild() + + if (dockerExitCode === 0) { + await convertToES6Module(workingAmmoOutputWasm) + await copy(workingAmmoOutputWasm, destPathWasm) + console.log(`buildTroikaAmmoWasm: copied to "${workingAmmoOutputWasm}" -> "${destPathWasm}"`) + } +} + +async function buildAmmo () { + // await remove(destDir) // Nuke old output if needed + + // 0: Copy ammo.js source into a temporary working directory since we'll be mutating config files + console.log('build-ammo: creating working directory in root (".tmp")') + await ensureDir(workingDir) + console.log(`build-ammo: copied "ammo.js" source to working dir: "${srcAmmoDir}" -> "${workingAmmoDir}"`) + await copy(srcAmmoDir, workingAmmoDir) + + // Build fallback ASM.js output + await buildTroikaAmmoCompat() + + // Build WASM output second, as it needs to further modify the build config files + await buildTroikaAmmoWasm() + + console.log('build-ammo: cleaning up ".tmp"') + await remove(workingDir) // Cleanup working dir +} + +buildAmmo() diff --git a/packages/troika-physics/libs/troika-ammo.js b/packages/troika-physics/libs/troika-ammo.js new file mode 100644 index 00000000..f481a780 --- /dev/null +++ b/packages/troika-physics/libs/troika-ammo.js @@ -0,0 +1,688 @@ + + // This is ammo.js, a port of Bullet Physics to JavaScript. zlib licensed. + +var Ammo = (function() { + var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; + return ( +function(Ammo) { + Ammo = Ammo || {}; + +var c;var d;d||(d=typeof Ammo !== 'undefined' ? Ammo : {});var aa={},ba;for(ba in d)d.hasOwnProperty(ba)&&(aa[ba]=d[ba]);var ca=!1,da=!1,ea=!1,fa=!1,ha=!1;ca="object"===typeof window;da="function"===typeof importScripts;ea=(fa="object"===typeof process&&"object"===typeof process.versions&&"string"===typeof process.versions.node)&&!ca&&!da;ha=!ca&&!ea&&!da;var ia="",ka,la,ma; +if(ea){ia=__dirname+"/";var na,oa;ka=function(a,b){var e=pa(a);e||(na||(na=require("fs")),oa||(oa=require("path")),a=oa.normalize(a),e=na.readFileSync(a));return b?e:e.toString()};ma=function(a){a=ka(a,!0);a.buffer||(a=new Uint8Array(a));assert(a.buffer);return a};1=f);)++e;if(16h?f+=String.fromCharCode(h):(h-=65536,f+=String.fromCharCode(55296|h>>10,56320|h&1023))}}else f+=String.fromCharCode(h)}return f}"undefined"!==typeof TextDecoder&&new TextDecoder("utf-16le"); +var buffer,Aa,Ba,Ca,Da,Ea=d.TOTAL_MEMORY||67108864;buffer=d.buffer?d.buffer:new ArrayBuffer(Ea);Ea=buffer.byteLength;var Fa=buffer;buffer=Fa;d.HEAP8=Aa=new Int8Array(Fa);d.HEAP16=new Int16Array(Fa);d.HEAP32=Ca=new Int32Array(Fa);d.HEAPU8=Ba=new Uint8Array(Fa);d.HEAPU16=new Uint16Array(Fa);d.HEAPU32=new Uint32Array(Fa);d.HEAPF32=Da=new Float32Array(Fa);d.HEAPF64=new Float64Array(Fa);Ca[6940]=5270672; +function Ga(a){for(;0>>16)*f+e*(b>>>16)<<16)|0}); +Math.clz32||(Math.clz32=function(a){var b=32,e=a>>16;e&&(b-=16,a=e);if(e=a>>8)b-=8,a=e;if(e=a>>4)b-=4,a=e;if(e=a>>2)b-=2,a=e;return a>>1?b-2:b-a});Math.trunc||(Math.trunc=function(a){return 0>a?Math.ceil(a):Math.floor(a)});var Na=0,Oa=null,Pa=null;d.preloadedImages={};d.preloadedAudios={}; +var sa=null,Qa="data:application/octet-stream;base64,",Ra=[function(a,b,e,f,h,n,B,S){a=d.getCache(d.ConcreteContactResultCallback)[a];if(!a.hasOwnProperty("addSingleResult"))throw"a JSImplementation must implement all functions, you forgot ConcreteContactResultCallback::addSingleResult.";return a.addSingleResult(b,e,f,h,n,B,S)},function(a,b,e,f){a=d.getCache(d.DebugDrawer)[a];if(!a.hasOwnProperty("drawLine"))throw"a JSImplementation must implement all functions, you forgot DebugDrawer::drawLine."; +a.drawLine(b,e,f)},function(a,b,e,f,h,n){a=d.getCache(d.DebugDrawer)[a];if(!a.hasOwnProperty("drawContactPoint"))throw"a JSImplementation must implement all functions, you forgot DebugDrawer::drawContactPoint.";a.drawContactPoint(b,e,f,h,n)},function(a,b){a=d.getCache(d.DebugDrawer)[a];if(!a.hasOwnProperty("reportErrorWarning"))throw"a JSImplementation must implement all functions, you forgot DebugDrawer::reportErrorWarning.";a.reportErrorWarning(b)},function(a,b,e){a=d.getCache(d.DebugDrawer)[a]; +if(!a.hasOwnProperty("draw3dText"))throw"a JSImplementation must implement all functions, you forgot DebugDrawer::draw3dText.";a.draw3dText(b,e)},function(a,b){a=d.getCache(d.DebugDrawer)[a];if(!a.hasOwnProperty("setDebugMode"))throw"a JSImplementation must implement all functions, you forgot DebugDrawer::setDebugMode.";a.setDebugMode(b)},function(a){a=d.getCache(d.DebugDrawer)[a];if(!a.hasOwnProperty("getDebugMode"))throw"a JSImplementation must implement all functions, you forgot DebugDrawer::getDebugMode."; +return a.getDebugMode()}];Ia.push({Ca:function(){Sa()}});sa="data:application/octet-stream;base64,AAAAAAAAAAARAAoAERERAAAAAAUAAAAAAAAJAAAAAAsAAAAAAAAAABEADwoREREDCgcAARMJCwsAAAkGCwAACwAGEQAAABEREQAAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAARAAoKERERAAoAAAIACQsAAAAJAAsAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA0AAAAEDQAAAAAJDgAAAAAADgAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAPAAAAAA8AAAAACRAAAAAAABAAABAAABIAAAASEhIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAABISEgAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAAAAAAoAAAAACgAAAAAJCwAAAAAACwAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAwAAAAACQwAAAAAAAwAAAwAADAxMjM0NTY3ODlBQkNERUYEKgAApioAACwqAAB0KgAA8AEAAAAAAAAEKgAAACsAACwqAADRKgAACAIAAAAAAAAEKgAAKCsAAAQqAABUKwAALCoAAD0rAAAoAgAAAAAAAAQqAAB6KwAALCoAAGQrAABAAgAAAAAAACwqAACWKwAACAIAAAAAAAAEKgAA5SsAACwqAADFKwAAaAIAAAAAAAAEKgAARy0AACwqAAA5LQAAgAIAAAAAAAAsKgAAyDIAAKgCAAAAAAAABCoAAOIyAAAsKgAA9TIAACAGAAAAAAAALCoAACEzAADQAgAAAAAAAAQqAABcMwAALCoAAH0zAADQAgAAAAAAACwqAACxMwAA0AIAAAAAAAAsKgAA3zMAANACAAAAAAAALCoAAMc0AADQBQAAAAAAACwqAADUNAAAKAMAAAAAAAAEKgAA9DQAAAQqAAAHNQAALCoAABw1AAAwAwAAAAAAACwqAAA7NQAAcAoAAAAAAAAsKgAAzDUAAHgDAAAAAAAALCoAAK41AADgCQAAAAAAACwqAADuNQAAKAMAAAAAAAAsKgAADzYAACgDAAAAAAAALCoAADI2AAAoAwAAAAAAACwqAABUNgAAeAMAAAAAAAAsKgAAdjYAAMgDAAAAAAAABCoAAJY2AAAsKgAAojcAAMgDAAAAAAAALCoAAOU2AAAQCgAAAAAAACwqAAC2NgAAqAkAAAAAAAAEKgAAyDYAACwqAACFNwAAEAoAAAAAAAAsKgAAVjgAAHAEAAAAAAAALCoAAAc4AAA4BAAAAAAAACwqAAAhOAAASAQAAAAAAAAEKgAAOzgAACwqAABxOAAAyAMAAAAAAAAsKgAApTgAANAFAAAAAAAALCoAAFU6AACQBAAAAAAAACwqAAA3OQAA+AEAAAAAAAAsKgAAbzoAAEgHAAAAAAAALCoAAIE6AACwBAAAAAAAAAQqAACfOgAALCoAAM06AAD4BAAAAAAAACwqAAD9OgAA+AQAAAAAAAAsKgAAOTsAAMgEAAAAAAAALCoAAHo7AAD4BAAAAAAAAFQqAACvOwAAAAAAAAEAAAAQBQAAAgQAAAQqAADDOwAALCoAAOo7AAD4BAAAAAAAACwqAAAZPAAA+AQAAAAAAAAsKgAATDwAAPgEAAAAAAAALCoAAKo8AABYBQAAAAAAAAQqAADQPAAALCoAAOU8AABwBQAAAAAAAAQqAAD4PAAALCoAAAw9AAAgAgAAAAAAACwqAABWPQAAqAUAAAAAAAAsKgAAKD0AAPgBAAAAAAAALCoAAHc9AABwBQAAAAAAACwqAACYPQAAyAUAAAAAAAAEKgAAsT0AAAQqAADbPQAALCoAAO89AADQBQAAAAAAACwqAAD/PQAA2AUAAAAAAAAsKgAASD4AAMgLAAAAAAAALCoAABo+AAAYBgAAAAAAAAQqAAA0PgAALCoAAGA+AAAwBgAAAAAAAAQqAACCPgAALCoAAJ0+AADQAgAAAAAAACwqAADNPgAA0AIAAAAAAAAsKgAA+D4AANACAAAAAAAALCoAACs/AADQAgAAAAAAACwqAABcPwAA0AIAAAAAAAAsKgAAfT8AANACAAAAAAAALCoAALE/AADQAgAAAAAAACwqAADmPwAA0AIAAAAAAAAsKgAAE0AAANACAAAAAAAALCoAAExAAADQAgAAAAAAAAQqAAB+QAAALCoAAMVAAADIAwAAAAAAACwqAACgQQAAeAwAAAAAAAAsKgAA50AAABAKAAAAAAAALCoAAIVBAAAQCgAAAAAAACwqAADEQQAAeAwAAAAAAAAsKgAA4UEAAEAHAAAAAAAABCoAAPRBAAAEKgAAm0UAACwqAACLRAAAOAQAAAAAAAAsKgAAYEIAAAgCAAAAAAAALCoAAOVCAAAoAwAAAAAAACwqAABjQwAA2AsAAAAAAAAsKgAA+EMAANgLAAAAAAAAVCoAAKFEAAAAAAAAAgAAABAKAAACAAAAGAoAAAIEAAAsKgAAwkUAAPABAAAAAAAALCoAAF9GAADoCwAAAAAAACwqAAAQRwAA6AsAAAAAAAAsKgAAz0cAADgEAAAAAAAALCoAAAFIAABIBAAAAAAAACwqAADnRwAAMAcAAAAAAAAsKgAAG0gAAHgMAAAAAAAALCoAAIdJAADQAgAAAAAAACwqAABtSQAAeAwAAAAAAAAsKgAAQEgAADAHAAAAAAAALCoAAFtIAABABwAAAAAAACwqAADoSAAAQAcAAAAAAAAsKgAAyEkAAHgMAAAAAAAALCoAAK9JAAAoAwAAAAAAACwqAAAISgAAeAwAAAAAAAAsKgAA50kAACgDAAAAAAAALCoAAGVKAADICQAAAAAAACwqAACMSgAA4AkAAAAAAAAsKgAAoEoAANAIAAAAAAAALCoAALVKAADQCAAAAAAAACwqAAD7SgAA8AkAAAAAAAAsKgAAF0sAAOAJAAAAAAAALCoAANVLAABoCQAAAAAAACwqAAAnSwAAQAkAAAAAAAAEKgAAlUsAACwqAADuSwAAQAkAAAAAAAAsKgAAVkwAAEAJAAAAAAAALCoAAFJNAABwCgAAAAAAACwqAADHTAAAEAoAAAAAAAAsKgAA30wAABgKAAAAAAAALCoAAItNAABwCgAAAAAAACwqAACgTQAA4AkAAAAAAAAsKgAAuk0AAKgJAAAAAAAABCoAAPRNAAAsKgAAB04AAMgJAAAAAAAALCoAABdOAADQCQAAAAAAACwqAAAvTgAA4AkAAAAAAAAsKgAAb04AALgJAAAAAAAABCoAAINOAAAEKgAAmE4AACwqAADaTgAA4AkAAAAAAAAsKgAA9E4AACAKAAAAAAAALCoAAA9PAAAgCgAAAAAAACwqAABMTwAAuAkAAAAAAAAsKgAAIU8AABgKAAAAAAAALCoAAGhPAADICQAAAAAAACwqAAB9TwAAqAkAAAAAAAAsKgAAik8AANALAAAAAAAALCoAAJtPAAAYCgAAAAAAACwqAAD2TwAAGAoAAAAAAAAsKgAAZlAAAHAKAAAAAAAALCoAAKBQAADgCQAAAAAAACwqAAC8UAAA0AoAAAAAAAAsKgAA2VAAANAKAAAAAAAALCoAAOxQAADYDAAAAAAAACwqAAAvUQAAIAsAAAAAAAAsKgAA/VAAADALAAAAAAAABCoAABdRAAAsKgAAPlEAAEgLAAAAAAAALCoAAFBRAABAAgAAAAAAACwqAABYUgAASAsAAAAAAAAsKgAAaVEAABgGAAAAAAAALCoAANdRAAAYBgAAAAAAACwqAAC5UgAAMAsAAAAAAAAsKgAAd1IAACgDAAAAAAAALCoAAIxSAAAoAwAAAAAAACwqAACjUgAAKAMAAAAAAAAEKgAAzFIAAAQqAAA2UwAALCoAAEdTAAAQCgAAAAAAACwqAABjUwAAEAoAAAAAAAAsKgAALVQAABgMAAAAAAAALCoAAIJTAABABwAAAAAAAAQqAABRVAAALCoAAHJUAAAYDAAAAAAAACwqAACmVAAAyAUAAAAAAAAsKgAAk1QAAEAHAAAAAAAALCoAALhUAADIBQAAAAAAACwqAADWVAAAcAwAAAAAAAAEKgAA6lQAACwqAAARVQAAyAMAAAAAAAAsKgAAMlUAAMgDAAAAAAAALCoAAEVVAAB4DAAAAAAAACwqAABoVQAAcAwAAAAAAAAsKgAAe1UAAHAMAAAAAAAABCoAAJRVAAAEKgAArlUAACwqAADDVQAA6AwAAAAAAAAEKgAAc1YAAAUAAAAAAAAAAAAAAGoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMAAAAXAAAArWsAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwqAAAlVwAAkA0AAAAAAAAsKgAA0lYAAKANAAAAAAAABCoAAPNWAAAsKgAAAFcAAIANAAAAAAAALCoAAHtXAACQDQAAAAAAACwqAACdVwAAuA0AAAAAAAAsKgAAwVcAAIANAAAAAAAAAAAAAPgBAAABAAAAAgAAAAEAAAABAAAAAAAAAPABAAADAAAABAAAAAEAAAABAAAAAAAAABACAAAFAAAABgAAAAIAAAACAAAAAAAAAAgCAAAHAAAACAAAAAIAAAABAAAAAAAAACACAAAJAAAACgAAAAEAAAAAAAAAMAIAAAsAAAAMAAAAAQAAAAIAAAAAAAAAKAIAAA0AAAAOAAAAAQAAAAEAAAAAAAAASAIAAA8AAAAQAAAAAQAAAAEAAAABAAAAAAAAAEACAAARAAAAEgAAAAEAAAABAAAAAQAAAAAAAABYAgAAEwAAABQAAAACAAAAAwAAAAAAAABwAgAAFQAAABYAAAADAAAAAQAAAAAAAABoAgAAFwAAABgAAAADAAAAAQAAAAAAAACIAgAAGQAAABoAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAwAAAAIAAAAEAAAAAQAAAAIAAAABAAAAAQAAAAEAAAADAAAAAgAAAAEAAAACAAAAAwAAAAEAAAAAAAAAgAIAABsAAAAcAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAACAAAAAQAAAAEAAAABAAAAAwAAAAIAAAABAAAAAgAAAAMAAAABAAAAAAAAAJgCAAAdAAAAHgAAAAIAAAADAAAAAwAAAAUAAAABAAAAAgAAAB8AAAAEAAAABQAAAAYAAAAEAAAABwAAAAUAAAAGAAAAAAAAALACAAAgAAAAIQAAAAYAAAAHAAAAAgAAAAgAAAAAAAAA+AIAACIAAAAjAAAAAgAAAAAAAADoAgAAIgAAACQAAAADAAAAAAAAANgCAAAiAAAAJQAAAAQAAAAAAAAAwAIAACIAAAAmAAAABQAAAAAAAAAIAwAABAAAACcAAAAoAAAACAAAAAkAAAADAAAACQAAAAcAAAAAAAAAGAMAACkAAAAqAAAACAAAAAoAAAACAAAABQAAAAYAAAAAAAAAOAMAACsAAAAsAAAAAQAAAAEAAAADAAAACgAAAAAAAABIAwAALQAAAC4AAAAEAAAACQAAAAEAAAABAAAACwAAAAsAAAACAAAADAAAAAwAAAAEAAAAAgAAAA0AAAAEAAAADQAAAAUAAAAAAAAAiAMAACkAAAAvAAAACAAAAA4AAAACAAAABQAAAAYAAAAAAAAAWAMAACkAAAAwAAAACAAAAA8AAAACAAAABQAAAAYAAAAAAAAAaAMAADEAAAAyAAAABgAAAAkAAAABAAAAAQAAABAAAAAOAAAAAwAAAA8AAAAMAAAABQAAAAMAAAAQAAAABQAAAA0AAAAKAAAACwAAAAMAAAAHAAAACAAAABEAAAAMAAAAEgAAAAAAAACoAwAAKQAAADMAAAANAAAAEQAAAAIAAAAFAAAABgAAAAAAAACYAwAAKQAAADQAAAAOAAAAEQAAAAIAAAAFAAAABgAAAAAAAAC4AwAANQAAADYAAAAEAAAAAQAAABIAAAAAAAAA0AMAADcAAAA4AAAABQAAAAIAAAATAAAAAAAAAOADAAA5AAAAOgAAAAkAAAAAAAAAAAQAAAYAAAAUAAAADwAAADsAAAA8AAAAAAAAAPADAAA9AAAAPgAAAAoAAAAJAAAAAQAAAAEAAAAQAAAADgAAAAQAAAATAAAADAAAAAcAAAAEAAAAEAAAAAUAAAANAAAAEAAAABEAAAADAAAACwAAAAgAAAAUAAAAEgAAAAcAAAAVAAAAFgAAAAwAAAATAAAAFwAAAA0AAAABAAAADgAAAAAAAAAIBAAAPwAAAEAAAAAPAAAAAAAAABgEAABBAAAAQgAAAEMAAABEAAAAFQAAABgAAABFAAAAEAAAABEAAAASAAAAFgAAAEYAAAAXAAAAAQAAABQAAAAYAAAAGQAAABoAAAAbAAAAHAAAAEcAAAAdAAAAEwAAAB4AAAAfAAAAGQAAABoAAAAIAAAACQAAABsAAABIAAAAIAAAACEAAAAiAAAAIwAAAAgAAAAJAAAASQAAACQAAAAKAAAACwAAAAwAAABKAAAAJQAAAA0AAAAAAAAAKAQAAEsAAABMAAAACgAAAAAAAABQBAAATQAAAE4AAAAGAAAAAwAAACYAAAAAAAAAYAQAAAsAAABPAAAAUAAAACcAAAAcAAAABgAAACgAAAAAAAAAcAQAAFEAAABSAAAAQwAAAEQAAAAVAAAAGAAAAFMAAAAQAAAAFAAAABIAAAApAAAARgAAACoAAAABAAAAFAAAABgAAAAZAAAAGgAAABsAAAAcAAAARwAAAB0AAAATAAAAHgAAAB8AAAAZAAAAGgAAAAgAAAAJAAAAHQAAAEgAAAAgAAAAIQAAACIAAAAjAAAADgAAAAkAAABJAAAAJAAAAAoAAAAPAAAADAAAAEoAAAAlAAAADQAAAAAAAACABAAAAwAAAFQAAAAMAAAABAAAAAAAAACgBAAAVQAAAFYAAAABAAAAAAAAALgEAABXAAAAWAAAAFkAAAABAAAAKwAAACwAAAABAAAAAgAAAAUAAAAeAAAABwAAAAAAAADIBAAAWgAAAFsAAABcAAAAAQAAAC0AAAAuAAAAAQAAAAMAAAAGAAAAHwAAAAgAAABdAAAAAAAAANgEAABaAAAAXgAAAFwAAAABAAAALQAAAC8AAAABAAAAAwAAAAYAAAAgAAAACQAAAF0AAAAVAAAAAAAAAOgEAABaAAAAXwAAAGAAAAABAAAAMAAAADEAAAABAAAABAAAAAcAAAAhAAAACgAAAAAAAAD4BAAAWgAAAGEAAABZAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAHgAAAAcAAAAAAAAAGAUAAFoAAABiAAAAWQAAAAEAAAAyAAAAMwAAAAEAAAAFAAAACAAAACIAAAALAAAAAAAAACgFAABaAAAAYwAAAGQAAAABAAAANAAAADUAAAACAAAABgAAAAkAAAAjAAAADAAAABYAAAAAAAAAOAUAAFoAAABlAAAAZgAAAAEAAAA2AAAANwAAAAEAAAAHAAAACgAAACQAAAANAAAAAAAAAEgFAABnAAAAaAAAABcAAAABAAAAGAAAAGkAAAAlAAAAFQAAAAEAAAABAAAAAgAAAAEAAAACAAAAAAAAAGAFAABqAAAAawAAAAMAAAA4AAAAEAAAABEAAAAWAAAAAAAAAHgFAAAJAAAAbAAAAAYAAAAAAAAAiAUAAG0AAABuAAAABAAAADkAAAA6AAAABQAAADsAAAA8AAAAPQAAAAYAAAAmAAAAbwAAACcAAAA+AAAAAAAAAJgFAAADAAAAcAAAAAEAAAALAAAAAAAAALgFAABxAAAAcgAAAAEAAAABAAAAAgAAAAAAAAACAAAAAAAAAAEAAAAAAAAA0AUAAAQAAABzAAAAdAAAACcAAAAoAAAADgAAAAkAAAAAAAAA2AUAAAQAAAB1AAAAdgAAACcAAAAoAAAADgAAAAkAAAAZAAAAFwAAAAAAAADoBQAABAAAAHcAAAB4AAAAJwAAACgAAAAOAAAACQAAABoAAAAYAAAAAAAAAPgFAAB5AAAAegAAAAcAAAAPAAAAPwAAAEAAAAAQAAAAEQAAABkAAAApAAAADQAAACoAAAArAAAALAAAAA4AAABBAAAAAAAAAAgGAAB7AAAAfAAAAA8AAAAAAAAAIAYAAH0AAAB+AAAABgAAAAcAAAASAAAACAAAAAAAAADIBgAAIgAAAH8AAAAIAAAAAAAAALgGAAAiAAAAgAAAAAkAAAAAAAAAqAYAACIAAACBAAAACgAAAAAAAACYBgAAIgAAAIIAAAALAAAAAAAAAIgGAAAiAAAAgwAAAAwAAAAAAAAAeAYAACIAAACEAAAADQAAAAAAAABoBgAAIgAAAIUAAAAOAAAAAAAAAFgGAAAiAAAAhgAAAA8AAAAAAAAASAYAACIAAACHAAAAEAAAAAAAAAA4BgAAIgAAAIgAAAARAAAAAAAAANgGAACJAAAAigAAABsAAABCAAAAAAAAAOAGAACLAAAAjAAAAAcAAAAEAAAAQwAAAAAAAADwBgAAjQAAAI4AAAAIAAAABQAAAEQAAAAAAAAAAAcAADkAAACPAAAAGgAAAAAAAAAQBwAAkAAAAJEAAAAbAAAAAAAAACAHAACSAAAAkwAAAAkAAAAGAAAARQAAAAAAAAAwBwAAlAAAAJUAAAAcAAAAHQAAAAMAAAAAAAAASAcAAJYAAACXAAAAQwAAAEQAAAAVAAAAGAAAAJgAAAAQAAAAFAAAABwAAABGAAAARgAAAEcAAAAAAAAAUAcAAEsAAACZAAAAEAAAAAAAAACQBwAAOQAAAJoAAAAdAAAAAQAAAAAAAACABwAAOQAAAJsAAAAdAAAAAgAAAAAAAABwBwAAKQAAAJwAAAAIAAAASAAAAAIAAAAFAAAABgAAAAAAAABgBwAABwAAAJ0AAAARAAAADAAAAAAAAACgBwAAngAAAJ8AAAAeAAAAHwAAAPz///+gBwAAoAAAAKEAAAAgAAAAAAAAAOAHAAA5AAAAogAAACEAAAABAAAAAAAAANAHAAA5AAAAowAAACEAAAACAAAAAAAAAMAHAAADAAAApAAAABIAAAANAAAAAAAAAPAHAABLAAAApQAAABMAAAAAAAAAAAgAAEsAAACmAAAAFAAAAAAAAAAQCAAAlAAAAKcAAAAcAAAAHQAAAAQAAAAAAAAAIAgAAKgAAACpAAAACgAAAAcAAABJAAAAAAAAADAIAACqAAAAqwAAABIAAAAAAAAAQAgAAKwAAACtAAAACwAAAAgAAABKAAAAAAAAAHAIAACUAAAArgAAAB4AAAAfAAAABQAAAAAAAABgCAAAlAAAAK8AAAAgAAAAIQAAAAYAAAAAAAAAUAgAAJQAAACwAAAAHAAAAB0AAAAHAAAAAAAAAIAIAACxAAAAsgAAAAwAAAAJAAAASwAAAAAAAACQCAAAKQAAALMAAAAIAAAATAAAAAIAAAAFAAAABgAAAAAAAACgCAAAtAAAALUAAAANAAAACgAAAE0AAAAAAAAAsAgAACkAAAC2AAAAIgAAABEAAAACAAAABQAAAAYAAAAAAAAAwAgAALcAAAC4AAAAIgAAAAkAAAABAAAAAQAAAE4AAAAtAAAABQAAAC4AAAAMAAAAEgAAAAUAAAAvAAAAEwAAAA0AAABPAAAAuQAAAAAAAADQCAAAMQAAALoAAAAjAAAACQAAAAEAAAABAAAAUAAAAA4AAAAGAAAAMAAAAFEAAAAHAAAABAAAADEAAAAUAAAADQAAACMAAAAkAAAAAwAAACQAAAAIAAAAEQAAAAwAAAAAAAAA4AgAADEAAAC7AAAAIwAAAAkAAAABAAAAAQAAAFAAAAAOAAAABgAAADIAAABSAAAABwAAAAQAAAAxAAAAFAAAAA0AAAAjAAAAJAAAAAMAAAAkAAAACAAAABEAAAAMAAAAAAAAAPAIAAAxAAAAvAAAACMAAAAJAAAAAQAAAAEAAABQAAAADgAAAAYAAAAzAAAAUwAAAAcAAAAEAAAAMQAAABQAAAANAAAAIwAAACQAAAADAAAAJAAAAAgAAAARAAAADAAAAAAAAAAACQAAvQAAAL4AAAAlAAAACQAAAAEAAAABAAAAVAAAAA4AAAAHAAAANAAAAAwAAAAHAAAABAAAADUAAAAVAAAADQAAABAAAAAlAAAAAwAAACYAAAAIAAAAEQAAAAwAAAAAAAAAEAkAADEAAAC/AAAAJwAAAAkAAAABAAAAAQAAABAAAAAOAAAACAAAADYAAAAMAAAAEwAAAAYAAAAQAAAABQAAAA0AAAAmAAAAJwAAAAMAAAAoAAAACAAAABEAAAAMAAAAAAAAACAJAADAAAAAwQAAACkAAAAJAAAAAQAAAAEAAABVAAAANwAAAAkAAAA4AAAADAAAAAQAAAACAAAAOQAAABYAAAANAAAAKgAAACgAAAApAAAAVgAAAFcAAAAAAAAAMAkAAMIAAADDAAAAKgAAAAAAAABICQAAwgAAAMQAAAArAAAAAAAAAFgJAADCAAAAxQAAACwAAAAAAAAAaAkAAMYAAADHAAAAKQAAAAkAAAABAAAAAQAAAFgAAAA3AAAACQAAADoAAAAMAAAABAAAAAIAAAANAAAABAAAAA0AAAArAAAAKAAAACkAAAAAAAAAeAkAADkAAADIAAAALAAAAAAAAACICQAAyQAAAMoAAAAtAAAAAAAAAJgJAADLAAAAzAAAAC4AAAAJAAAAAQAAAAEAAABZAAAAOwAAAAoAAAA8AAAADAAAAAQAAAACAAAAPQAAABcAAAANAAAALwAAAAAAAACoCQAAPQAAAM0AAAAjAAAACQAAAAEAAAABAAAAEAAAAA4AAAALAAAAAQAAAAwAAAAHAAAABAAAABAAAAAFAAAADQAAABAAAAAtAAAAAwAAADAAAAAIAAAAEQAAAAwAAAAHAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAAAAADgCQAAMQAAAM4AAAAjAAAACQAAAAEAAAABAAAAEAAAAA4AAAABAAAAAQAAAAwAAAAHAAAABAAAABAAAAAFAAAADQAAABAAAAABAAAAAwAAAAEAAAAIAAAAEQAAAAwAAAAAAAAAAAoAAM8AAADQAAAAMQAAAAkAAAABAAAAAQAAAFoAAAAOAAAACwAAAD4AAAAMAAAABwAAAAQAAAA/AAAAGAAAAA0AAAAuAAAALwAAAAMAAAAyAAAACAAAABEAAAAMAAAABwAAAEAAAABBAAAAMwAAADAAAABCAAAANAAAAAIAAAABAAAAAAAAACAKAAAxAAAA0QAAADUAAAAJAAAAAQAAAAEAAABbAAAADgAAAAwAAABDAAAAXAAAABQAAAAEAAAARAAAABkAAAANAAAAEAAAADEAAAADAAAANgAAAAgAAAARAAAADAAAAAAAAAAwCgAAMQAAANIAAAA1AAAACQAAAAEAAAABAAAAWwAAAA4AAAAMAAAARQAAAFwAAAAUAAAABAAAAEQAAAAZAAAADQAAABAAAAAxAAAAAwAAADYAAAAIAAAAEQAAAAwAAAAAAAAAQAoAADEAAADTAAAANQAAAAkAAAABAAAAAQAAAFsAAAAOAAAADAAAAEYAAABcAAAAFAAAAAQAAABEAAAAGQAAAA0AAAAQAAAAMQAAAAMAAAA2AAAACAAAABEAAAAMAAAAAAAAAFAKAAA9AAAA1AAAADEAAAAJAAAAAQAAAAEAAABdAAAARwAAAAsAAABIAAAADAAAAAcAAAAEAAAAEAAAAAUAAAANAAAAMgAAADMAAAADAAAANwAAAAgAAAARAAAADAAAAAcAAABJAAAASgAAADgAAAA0AAAASwAAADkAAAADAAAAAAAAAGAKAADJAAAA1QAAADoAAAAAAAAAgAoAAD0AAADWAAAAOwAAAAkAAAABAAAAAQAAAF4AAAAOAAAADQAAAEwAAAAMAAAAFQAAAAQAAAAQAAAABQAAAA0AAAA1AAAANgAAAAMAAAA8AAAACAAAAE0AAAA3AAAABwAAAE4AAABPAAAAPQAAADgAAABQAAAAPgAAAAQAAAA5AAAAAAAAAJAKAADXAAAA2AAAABMAAABRAAAAGgAAAF8AAABgAAAAFAAAAAAAAACwCgAAyQAAANkAAAA/AAAAAAAAAKAKAADJAAAA2gAAAEAAAAAAAAAAwAoAANsAAADcAAAAQQAAAAkAAAABAAAAAQAAAGEAAABSAAAADgAAAFMAAAAMAAAABAAAAAIAAAANAAAABAAAAA0AAABCAAAADgAAAAAAAADQCgAAMQAAAN0AAABDAAAACQAAAAEAAAABAAAAYgAAAA4AAAAPAAAAVAAAAGMAAAAWAAAABAAAAFUAAAAbAAAADQAAADoAAAA7AAAAAwAAAEQAAAAIAAAAEQAAAAwAAAAHAAAAAAAAAOAKAAAxAAAA3gAAAEMAAAAJAAAAAQAAAAEAAABiAAAADgAAAA8AAABWAAAAYwAAABYAAAAEAAAAVQAAABsAAAANAAAAOgAAADwAAAADAAAARQAAAAgAAAARAAAADAAAAAgAAAAAAAAA8AoAADEAAADfAAAAQwAAAAkAAAABAAAAAQAAAGIAAAAOAAAADwAAAFcAAABjAAAAFgAAAAQAAABVAAAAGwAAAA0AAAA6AAAAPQAAAAMAAABGAAAACAAAABEAAAAMAAAACQAAAAAAAAAACwAA4AAAAOEAAABHAAAAAQAAAAIAAABkAAAAZQAAAFgAAABmAAAAZwAAAFkAAAA+AAAAPwAAAFoAAAAcAAAAAAAAABALAADiAAAA4wAAAAEAAABAAAAADgAAAEgAAAACAAAASQAAAGgAAABbAAAAXAAAAEEAAABpAAAA5AAAAAAAAAAgCwAA4gAAAOUAAAABAAAAQAAAAA4AAABIAAAAAgAAAEkAAABoAAAAWwAAAFwAAABBAAAAaQAAAOQAAAAAAAAAOAsAAOYAAADnAAAAHQAAABUAAABCAAAAXQAAAF4AAABfAAAAQwAAAGAAAABEAAAAagAAAEUAAAAeAAAAYQAAAGsAAABsAAAAAAAAAFgLAADoAAAA6QAAAB8AAAAWAAAARgAAAGIAAABjAAAAZAAAAEcAAABlAAAASAAAAG0AAABJAAAAIAAAAGYAAABuAAAAbwAAAAAAAABoCwAAewAAAOoAAAAVAAAAAAAAAHgLAAB7AAAA6wAAABYAAAAAAAAAiAsAAOwAAADtAAAAAgAAAEoAAAAPAAAASgAAAAMAAABLAAAAcAAAAGcAAABoAAAASwAAAHEAAADuAAAAAAAAAJgLAAApAAAA7wAAAEwAAAByAAAAAgAAAAUAAAAGAAAAAAAAAKgLAAApAAAA8AAAAAgAAABzAAAAAgAAAAUAAAAGAAAAAAAAALgLAAApAAAA8QAAAAgAAAB0AAAAAgAAAAUAAAAGAAAAAAAAANALAADyAAAA8wAAABMAAABRAAAAGgAAAF8AAABgAAAAAAAAAOgLAAA5AAAA9AAAACEAAAABAAAAAAAAAPgLAAD1AAAA9gAAAAEAAAAAAAAACAwAAJQAAAD3AAAATQAAAE4AAAAIAAAAAAAAACAMAAD1AAAA+AAAAAIAAAAAAAAAMAwAAHEAAAD5AAAAAgAAAAAAAABADAAAlAAAAPoAAABPAAAAUAAAAAkAAAAAAAAAUAwAAHEAAAD7AAAAAwAAAAAAAABgDAAA/AAAAP0AAAAQAAAAAAAAAIgMAAD+AAAA/wAAABEAAAALAAAAdQAAAAAAAACYDAAAAAEAAAEBAAASAAAADAAAAHYAAAAAAAAAqAwAAPwAAAACAQAAEwAAAAAAAAC4DAAA/AAAAAMBAAAUAAAAAAAAAMgMAAAEAQAABQEAACEAAAAiAAAAaQAAAAAAAADQDAAABgEAAAcBAAAAAAAA2AwAAAgBAAAJAQAARwAAAAEAAAACAAAAZAAAAGUAAABYAAAAdwAAAHgAAABZAAAAPgAAAD8AAABaAAAAHAAAAEBpAAD/////AAAAAIANAAAKAQAACwEAAAwBAAANAQAAJAAAAAQAAAAVAAAATAAAAAAAAACoDQAACgEAAA4BAAAMAQAADQEAACQAAAAFAAAAFgAAAE0AAAAAAAAA2A0AAAoBAAAPAQAADAEAAA0BAAAkAAAABgAAABcAAABOAAAATjE2YnRDb2xsaXNpb25Xb3JsZDI3Q2xvc2VzdENvbnZleFJlc3VsdENhbGxiYWNrRQBOMTZidENvbGxpc2lvbldvcmxkMjBDb252ZXhSZXN1bHRDYWxsYmFja0UATjE2YnRDb2xsaXNpb25Xb3JsZDI0QWxsSGl0c1JheVJlc3VsdENhbGxiYWNrRQBOMTZidENvbGxpc2lvbldvcmxkMTdSYXlSZXN1bHRDYWxsYmFja0UAMThidFZlaGljbGVSYXljYXN0ZXIAMjBidERlZmF1bHRNb3Rpb25TdGF0ZQAxM2J0TW90aW9uU3RhdGUAMTlidEdob3N0UGFpckNhbGxiYWNrADI1YnRPdmVybGFwcGluZ1BhaXJDYWxsYmFjawBOMTZidENvbGxpc2lvbldvcmxkMjRDbG9zZXN0UmF5UmVzdWx0Q2FsbGJhY2tFADI5Q29uY3JldGVDb250YWN0UmVzdWx0Q2FsbGJhY2sATjE2YnRDb2xsaXNpb25Xb3JsZDIxQ29udGFjdFJlc3VsdENhbGxiYWNrRQB7IHZhciBzZWxmID0gTW9kdWxlWydnZXRDYWNoZSddKE1vZHVsZVsnQ29uY3JldGVDb250YWN0UmVzdWx0Q2FsbGJhY2snXSlbJDBdOyBpZiAoIXNlbGYuaGFzT3duUHJvcGVydHkoJ2FkZFNpbmdsZVJlc3VsdCcpKSB0aHJvdyAnYSBKU0ltcGxlbWVudGF0aW9uIG11c3QgaW1wbGVtZW50IGFsbCBmdW5jdGlvbnMsIHlvdSBmb3Jnb3QgQ29uY3JldGVDb250YWN0UmVzdWx0Q2FsbGJhY2s6OmFkZFNpbmdsZVJlc3VsdC4nOyByZXR1cm4gc2VsZlsnYWRkU2luZ2xlUmVzdWx0J10oJDEsJDIsJDMsJDQsJDUsJDYsJDcpOyB9ADExRGVidWdEcmF3ZXIAMTJidElEZWJ1Z0RyYXcAeyB2YXIgc2VsZiA9IE1vZHVsZVsnZ2V0Q2FjaGUnXShNb2R1bGVbJ0RlYnVnRHJhd2VyJ10pWyQwXTsgaWYgKCFzZWxmLmhhc093blByb3BlcnR5KCdkcmF3TGluZScpKSB0aHJvdyAnYSBKU0ltcGxlbWVudGF0aW9uIG11c3QgaW1wbGVtZW50IGFsbCBmdW5jdGlvbnMsIHlvdSBmb3Jnb3QgRGVidWdEcmF3ZXI6OmRyYXdMaW5lLic7IHNlbGZbJ2RyYXdMaW5lJ10oJDEsJDIsJDMpOyB9AHsgdmFyIHNlbGYgPSBNb2R1bGVbJ2dldENhY2hlJ10oTW9kdWxlWydEZWJ1Z0RyYXdlciddKVskMF07IGlmICghc2VsZi5oYXNPd25Qcm9wZXJ0eSgnZHJhd0NvbnRhY3RQb2ludCcpKSB0aHJvdyAnYSBKU0ltcGxlbWVudGF0aW9uIG11c3QgaW1wbGVtZW50IGFsbCBmdW5jdGlvbnMsIHlvdSBmb3Jnb3QgRGVidWdEcmF3ZXI6OmRyYXdDb250YWN0UG9pbnQuJzsgc2VsZlsnZHJhd0NvbnRhY3RQb2ludCddKCQxLCQyLCQzLCQ0LCQ1KTsgfQB7IHZhciBzZWxmID0gTW9kdWxlWydnZXRDYWNoZSddKE1vZHVsZVsnRGVidWdEcmF3ZXInXSlbJDBdOyBpZiAoIXNlbGYuaGFzT3duUHJvcGVydHkoJ3JlcG9ydEVycm9yV2FybmluZycpKSB0aHJvdyAnYSBKU0ltcGxlbWVudGF0aW9uIG11c3QgaW1wbGVtZW50IGFsbCBmdW5jdGlvbnMsIHlvdSBmb3Jnb3QgRGVidWdEcmF3ZXI6OnJlcG9ydEVycm9yV2FybmluZy4nOyBzZWxmWydyZXBvcnRFcnJvcldhcm5pbmcnXSgkMSk7IH0AeyB2YXIgc2VsZiA9IE1vZHVsZVsnZ2V0Q2FjaGUnXShNb2R1bGVbJ0RlYnVnRHJhd2VyJ10pWyQwXTsgaWYgKCFzZWxmLmhhc093blByb3BlcnR5KCdkcmF3M2RUZXh0JykpIHRocm93ICdhIEpTSW1wbGVtZW50YXRpb24gbXVzdCBpbXBsZW1lbnQgYWxsIGZ1bmN0aW9ucywgeW91IGZvcmdvdCBEZWJ1Z0RyYXdlcjo6ZHJhdzNkVGV4dC4nOyBzZWxmWydkcmF3M2RUZXh0J10oJDEsJDIpOyB9AHsgdmFyIHNlbGYgPSBNb2R1bGVbJ2dldENhY2hlJ10oTW9kdWxlWydEZWJ1Z0RyYXdlciddKVskMF07IGlmICghc2VsZi5oYXNPd25Qcm9wZXJ0eSgnc2V0RGVidWdNb2RlJykpIHRocm93ICdhIEpTSW1wbGVtZW50YXRpb24gbXVzdCBpbXBsZW1lbnQgYWxsIGZ1bmN0aW9ucywgeW91IGZvcmdvdCBEZWJ1Z0RyYXdlcjo6c2V0RGVidWdNb2RlLic7IHNlbGZbJ3NldERlYnVnTW9kZSddKCQxKTsgfQB7IHZhciBzZWxmID0gTW9kdWxlWydnZXRDYWNoZSddKE1vZHVsZVsnRGVidWdEcmF3ZXInXSlbJDBdOyBpZiAoIXNlbGYuaGFzT3duUHJvcGVydHkoJ2dldERlYnVnTW9kZScpKSB0aHJvdyAnYSBKU0ltcGxlbWVudGF0aW9uIG11c3QgaW1wbGVtZW50IGFsbCBmdW5jdGlvbnMsIHlvdSBmb3Jnb3QgRGVidWdEcmF3ZXI6OmdldERlYnVnTW9kZS4nOyByZXR1cm4gc2VsZlsnZ2V0RGVidWdNb2RlJ10oKTsgfQAyM2J0RGVmYXVsdFNvZnRCb2R5U29sdmVyADE2YnRTb2Z0Qm9keVNvbHZlcgA0MWJ0U29mdEJvZHlSaWdpZEJvZHlDb2xsaXNpb25Db25maWd1cmF0aW9uAE4zNWJ0U29mdEJvZHlDb25jYXZlQ29sbGlzaW9uQWxnb3JpdGhtMTdTd2FwcGVkQ3JlYXRlRnVuY0UAMzBidENvbGxpc2lvbkFsZ29yaXRobUNyZWF0ZUZ1bmMATjM1YnRTb2Z0Qm9keUNvbmNhdmVDb2xsaXNpb25BbGdvcml0aG0xMENyZWF0ZUZ1bmNFAE4yOWJ0U29mdFJpZ2lkQ29sbGlzaW9uQWxnb3JpdGhtMTBDcmVhdGVGdW5jRQBOMjhidFNvZnRTb2Z0Q29sbGlzaW9uQWxnb3JpdGhtMTBDcmVhdGVGdW5jRQBTb2Z0Qm9keU1hdGVyaWFsRGF0YQBTb2Z0Qm9keU5vZGVEYXRhAFNvZnRCb2R5TGlua0RhdGEAU29mdEJvZHlGYWNlRGF0YQBTb2Z0Qm9keVRldHJhRGF0YQBTb2Z0UmlnaWRBbmNob3JEYXRhAFNvZnRCb2R5UG9zZURhdGEAU29mdEJvZHlDbHVzdGVyRGF0YQBidFNvZnRCb2R5Sm9pbnREYXRhAGJ0U29mdEJvZHlGbG9hdERhdGEAMTBidFNvZnRCb2R5AE4xMGJ0U29mdEJvZHkxNVJheUZyb21Ub0Nhc3RlckUATjZidERidnQ4SUNvbGxpZGVFAE4xMGJ0U29mdEJvZHk1Sm9pbnRFAE4xMGJ0U29mdEJvZHk2Q0pvaW50RQBTb2Z0Qm9keQAyNGJ0U29mdEJvZHlDb2xsaXNpb25TaGFwZQBVcGRhdGVDbHVzdGVycwBTb2Z0Qm9keSBhcHBseUZvcmNlcwBBcHBseUNsdXN0ZXJzAGJ0Q29udmV4SW50ZXJuYWxTaGFwZURhdGEAU09GVENMVVNURVIAMjdidFNvZnRDbHVzdGVyQ29sbGlzaW9uU2hhcGUATjE1YnRTb2Z0Q29sbGlkZXJzMTJDb2xsaWRlQ0xfUlNFAE4xNWJ0U29mdENvbGxpZGVyczExQ2x1c3RlckJhc2VFAE4xNWJ0U29mdENvbGxpZGVyczEzQ29sbGlkZVNERl9SU0UATjE1YnRTb2Z0Q29sbGlkZXJzMTJDb2xsaWRlVkZfU1NFAE4xNWJ0U29mdENvbGxpZGVyczEyQ29sbGlkZUNMX1NTRQAyOWJ0U29mdFJpZ2lkQ29sbGlzaW9uQWxnb3JpdGhtADIwYnRDb2xsaXNpb25BbGdvcml0aG0AVHJpYW5nbGUAMTVidFRyaWFuZ2xlU2hhcGUATjEyYnRDb252ZXhDYXN0MTBDYXN0UmVzdWx0RQBaTjM1YnRTb2Z0Qm9keUNvbmNhdmVDb2xsaXNpb25BbGdvcml0aG0yMWNhbGN1bGF0ZVRpbWVPZkltcGFjdEVQMTdidENvbGxpc2lvbk9iamVjdFMxX1JLMTZidERpc3BhdGNoZXJJbmZvUDE2YnRNYW5pZm9sZFJlc3VsdEUzMUxvY2FsVHJpYW5nbGVTcGhlcmVDYXN0Q2FsbGJhY2sAMjZidFNvZnRCb2R5VHJpYW5nbGVDYWxsYmFjawAzNWJ0U29mdEJvZHlDb25jYXZlQ29sbGlzaW9uQWxnb3JpdGhtAHNvbHZlU29mdENvbnN0cmFpbnRzAHByZWRpY3RVbmNvbnN0cmFpbnRNb3Rpb25Tb2Z0Qm9keQByYXlUZXN0ADIzYnRTb2Z0U2luZ2xlUmF5Q2FsbGJhY2sAMjNidEJyb2FkcGhhc2VSYXlDYWxsYmFjawAyNGJ0QnJvYWRwaGFzZUFhYmJDYWxsYmFjawAyNGJ0U29mdFJpZ2lkRHluYW1pY3NXb3JsZAAyOGJ0U29mdFNvZnRDb2xsaXNpb25BbGdvcml0aG0AYnRSaWdpZEJvZHlGbG9hdERhdGEAMTFidFJpZ2lkQm9keQBpbnRlcm5hbFNpbmdsZVN0ZXBTaW11bGF0aW9uAHVwZGF0ZUFjdGlvbnMAY3JlYXRlUHJlZGljdGl2ZUNvbnRhY3RzAHJlbGVhc2UgcHJlZGljdGl2ZSBjb250YWN0IG1hbmlmb2xkcwBwcmVkaWN0aXZlIGNvbnZleFN3ZWVwVGVzdAAzNGJ0Q2xvc2VzdE5vdE1lQ29udmV4UmVzdWx0Q2FsbGJhY2sAdXBkYXRlQWN0aXZhdGlvblN0YXRlAHNvbHZlQ29uc3RyYWludHMAY2FsY3VsYXRlU2ltdWxhdGlvbklzbGFuZHMAaW50ZWdyYXRlVHJhbnNmb3JtcwBDQ0QgbW90aW9uIGNsYW1waW5nAGFwcGx5IHNwZWN1bGF0aXZlIGNvbnRhY3QgcmVzdGl0dXRpb24AcHJlZGljdFVuY29uc3RyYWludE1vdGlvbgBzeW5jaHJvbml6ZU1vdGlvblN0YXRlcwBzdGVwU2ltdWxhdGlvbgBidER5bmFtaWNzV29ybGRGbG9hdERhdGEAZGVidWdEcmF3V29ybGQAMjNidERpc2NyZXRlRHluYW1pY3NXb3JsZAAxNWJ0RHluYW1pY3NXb3JsZAAyN0lucGxhY2VTb2x2ZXJJc2xhbmRDYWxsYmFjawBOMjVidFNpbXVsYXRpb25Jc2xhbmRNYW5hZ2VyMTRJc2xhbmRDYWxsYmFja0UAMTdidEZpeGVkQ29uc3RyYWludABidEdlbmVyaWM2RG9mQ29uc3RyYWludERhdGEAMjNidEdlbmVyaWM2RG9mQ29uc3RyYWludABidEdlbmVyaWM2RG9mU3ByaW5nQ29uc3RyYWludERhdGEAMjlidEdlbmVyaWM2RG9mU3ByaW5nQ29uc3RyYWludABidFBvaW50MlBvaW50Q29uc3RyYWludEZsb2F0RGF0YQAyM2J0UG9pbnQyUG9pbnRDb25zdHJhaW50AGJ0VHlwZWRDb25zdHJhaW50RmxvYXREYXRhADE3YnRUeXBlZENvbnN0cmFpbnQAMTNidFR5cGVkT2JqZWN0AGJ0U2xpZGVyQ29uc3RyYWludERhdGEAMThidFNsaWRlckNvbnN0cmFpbnQAYnRDb25lVHdpc3RDb25zdHJhaW50RGF0YQAyMWJ0Q29uZVR3aXN0Q29uc3RyYWludABidEhpbmdlQ29uc3RyYWludEZsb2F0RGF0YQAxN2J0SGluZ2VDb25zdHJhaW50AHNvbHZlR3JvdXBDYWNoZUZyaWVuZGx5SXRlcmF0aW9ucwBzb2x2ZUdyb3VwQ2FjaGVGcmllbmRseVNldHVwAHNvbHZlR3JvdXAAMzVidFNlcXVlbnRpYWxJbXB1bHNlQ29uc3RyYWludFNvbHZlcgAxOGJ0Q29uc3RyYWludFNvbHZlcgAxNmJ0UmF5Y2FzdFZlaGljbGUAMTdidEFjdGlvbkludGVyZmFjZQAyNWJ0RGVmYXVsdFZlaGljbGVSYXljYXN0ZXIANDNidEtpbmVtYXRpY0Nsb3Nlc3ROb3RNZUNvbnZleFJlc3VsdENhbGxiYWNrADMwYnRLaW5lbWF0aWNDaGFyYWN0ZXJDb250cm9sbGVyADMwYnRDaGFyYWN0ZXJDb250cm9sbGVySW50ZXJmYWNlADIyYnRTdWJzaW1wbGV4Q29udmV4Q2FzdAAxMmJ0Q29udmV4Q2FzdABidENvbGxpc2lvbk9iamVjdEZsb2F0RGF0YQAxN2J0Q29sbGlzaW9uT2JqZWN0ADEzYnRHaG9zdE9iamVjdAAyNGJ0UGFpckNhY2hpbmdHaG9zdE9iamVjdAAyM2J0Q29sbGlzaW9uUGFpckNhbGxiYWNrADE3YnRPdmVybGFwQ2FsbGJhY2sAMjFidENvbGxpc2lvbkRpc3BhdGNoZXIAMzFidERlZmF1bHRDb2xsaXNpb25Db25maWd1cmF0aW9uADI0YnRDb2xsaXNpb25Db25maWd1cmF0aW9uAE4zMWJ0Q29udmV4UGxhbmVDb2xsaXNpb25BbGdvcml0aG0xMENyZWF0ZUZ1bmNFAE4yNmJ0Qm94Qm94Q29sbGlzaW9uQWxnb3JpdGhtMTBDcmVhdGVGdW5jRQBOMzRidFNwaGVyZVRyaWFuZ2xlQ29sbGlzaW9uQWxnb3JpdGhtMTBDcmVhdGVGdW5jRQBOMzJidFNwaGVyZVNwaGVyZUNvbGxpc2lvbkFsZ29yaXRobTEwQ3JlYXRlRnVuY0UATjE2YnRFbXB0eUFsZ29yaXRobTEwQ3JlYXRlRnVuY0UATjI4YnRDb21wb3VuZENvbGxpc2lvbkFsZ29yaXRobTE3U3dhcHBlZENyZWF0ZUZ1bmNFAE4zNmJ0Q29tcG91bmRDb21wb3VuZENvbGxpc2lvbkFsZ29yaXRobTEwQ3JlYXRlRnVuY0UATjI4YnRDb21wb3VuZENvbGxpc2lvbkFsZ29yaXRobTEwQ3JlYXRlRnVuY0UATjMzYnRDb252ZXhDb25jYXZlQ29sbGlzaW9uQWxnb3JpdGhtMTdTd2FwcGVkQ3JlYXRlRnVuY0UATjMzYnRDb252ZXhDb25jYXZlQ29sbGlzaW9uQWxnb3JpdGhtMTBDcmVhdGVGdW5jRQAyNWJ0U2ltdWxhdGlvbklzbGFuZE1hbmFnZXIAaXNsYW5kVW5pb25GaW5kQW5kUXVpY2tTb3J0AHByb2Nlc3NJc2xhbmRzADMxYnRDb252ZXhQbGFuZUNvbGxpc2lvbkFsZ29yaXRobQBaTjMzYnRDb252ZXhDb25jYXZlQ29sbGlzaW9uQWxnb3JpdGhtMjFjYWxjdWxhdGVUaW1lT2ZJbXBhY3RFUDE3YnRDb2xsaXNpb25PYmplY3RTMV9SSzE2YnREaXNwYXRjaGVySW5mb1AxNmJ0TWFuaWZvbGRSZXN1bHRFMzFMb2NhbFRyaWFuZ2xlU3BoZXJlQ2FzdENhbGxiYWNrADI0YnRDb252ZXhUcmlhbmdsZUNhbGxiYWNrADMzYnRDb252ZXhDb25jYXZlQ29sbGlzaW9uQWxnb3JpdGhtADI2YnRCb3hCb3hDb2xsaXNpb25BbGdvcml0aG0AMTZidE1hbmlmb2xkUmVzdWx0AE4zNmJ0RGlzY3JldGVDb2xsaXNpb25EZXRlY3RvckludGVyZmFjZTZSZXN1bHRFAHBlcmZvcm1EaXNjcmV0ZUNvbGxpc2lvbkRldGVjdGlvbgBkaXNwYXRjaEFsbENvbGxpc2lvblBhaXJzAFpOMTZidENvbGxpc2lvbldvcmxkMjFyYXlUZXN0U2luZ2xlSW50ZXJuYWxFUksxMWJ0VHJhbnNmb3JtUzJfUEsyNGJ0Q29sbGlzaW9uT2JqZWN0V3JhcHBlclJOU18xN1JheVJlc3VsdENhbGxiYWNrRUUxNUxvY2FsSW5mb0FkZGVyMgBaTjE2YnRDb2xsaXNpb25Xb3JsZDIxcmF5VGVzdFNpbmdsZUludGVybmFsRVJLMTFidFRyYW5zZm9ybVMyX1BLMjRidENvbGxpc2lvbk9iamVjdFdyYXBwZXJSTlNfMTdSYXlSZXN1bHRDYWxsYmFja0VFOVJheVRlc3RlcgBaTjE2YnRDb2xsaXNpb25Xb3JsZDIxcmF5VGVzdFNpbmdsZUludGVybmFsRVJLMTFidFRyYW5zZm9ybVMyX1BLMjRidENvbGxpc2lvbk9iamVjdFdyYXBwZXJSTlNfMTdSYXlSZXN1bHRDYWxsYmFja0VFMjlCcmlkZ2VUcmlhbmdsZVJheWNhc3RDYWxsYmFja18wAFpOMTZidENvbGxpc2lvbldvcmxkMjFyYXlUZXN0U2luZ2xlSW50ZXJuYWxFUksxMWJ0VHJhbnNmb3JtUzJfUEsyNGJ0Q29sbGlzaW9uT2JqZWN0V3JhcHBlclJOU18xN1JheVJlc3VsdENhbGxiYWNrRUUyOUJyaWRnZVRyaWFuZ2xlUmF5Y2FzdENhbGxiYWNrADE5YnRTaW5nbGVSYXlDYWxsYmFjawAxN0RlYnVnRHJhd2NhbGxiYWNrAGNhbGN1bGF0ZU92ZXJsYXBwaW5nUGFpcnMAdXBkYXRlQWFiYnMAAU92ZXJmbG93IGluIEFBQkIsIG9iamVjdCByZW1vdmVkIGZyb20gc2ltdWxhdGlvbgBJZiB5b3UgY2FuIHJlcHJvZHVjZSB0aGlzLCBwbGVhc2UgZW1haWwgYnVnc0Bjb250aW51b3VzcGh5c2ljcy5jb20KAFBsZWFzZSBpbmNsdWRlIGFib3ZlIGluZm9ybWF0aW9uLCB5b3VyIFBsYXRmb3JtLCB2ZXJzaW9uIG9mIE9TLgoAVGhhbmtzLgoAMTZidENvbGxpc2lvbldvcmxkAGNvbnZleFN3ZWVwQ29tcG91bmQAWk4xNmJ0Q29sbGlzaW9uV29ybGQyNW9iamVjdFF1ZXJ5U2luZ2xlSW50ZXJuYWxFUEsxM2J0Q29udmV4U2hhcGVSSzExYnRUcmFuc2Zvcm1TNV9QSzI0YnRDb2xsaXNpb25PYmplY3RXcmFwcGVyUk5TXzIwQ29udmV4UmVzdWx0Q2FsbGJhY2tFZkUxNExvY2FsSW5mb0FkZGVyAFpOMTZidENvbGxpc2lvbldvcmxkMjVvYmplY3RRdWVyeVNpbmdsZUludGVybmFsRVBLMTNidENvbnZleFNoYXBlUksxMWJ0VHJhbnNmb3JtUzVfUEsyNGJ0Q29sbGlzaW9uT2JqZWN0V3JhcHBlclJOU18yMENvbnZleFJlc3VsdENhbGxiYWNrRWZFMzJCcmlkZ2VUcmlhbmdsZUNvbnZleGNhc3RDYWxsYmFja18wAFpOMTZidENvbGxpc2lvbldvcmxkMjVvYmplY3RRdWVyeVNpbmdsZUludGVybmFsRVBLMTNidENvbnZleFNoYXBlUksxMWJ0VHJhbnNmb3JtUzVfUEsyNGJ0Q29sbGlzaW9uT2JqZWN0V3JhcHBlclJOU18yMENvbnZleFJlc3VsdENhbGxiYWNrRWZFMzJCcmlkZ2VUcmlhbmdsZUNvbnZleGNhc3RDYWxsYmFjawBjb252ZXhTd2VlcFRlc3QAMjFidFNpbmdsZVN3ZWVwQ2FsbGJhY2sAMjNidEJyaWRnZWRNYW5pZm9sZFJlc3VsdAAyM2J0U2luZ2xlQ29udGFjdENhbGxiYWNrADM0YnRTcGhlcmVUcmlhbmdsZUNvbGxpc2lvbkFsZ29yaXRobQAyNGJ0UGVydHVyYmVkQ29udGFjdFJlc3VsdABaTjIzYnRDb252ZXhDb252ZXhBbGdvcml0aG0xNnByb2Nlc3NDb2xsaXNpb25FUEsyNGJ0Q29sbGlzaW9uT2JqZWN0V3JhcHBlclMyX1JLMTZidERpc3BhdGNoZXJJbmZvUDE2YnRNYW5pZm9sZFJlc3VsdEUyMWJ0V2l0aG91dE1hcmdpblJlc3VsdABaTjIzYnRDb252ZXhDb252ZXhBbGdvcml0aG0xNnByb2Nlc3NDb2xsaXNpb25FUEsyNGJ0Q29sbGlzaW9uT2JqZWN0V3JhcHBlclMyX1JLMTZidERpc3BhdGNoZXJJbmZvUDE2YnRNYW5pZm9sZFJlc3VsdEUxM2J0RHVtbXlSZXN1bHQAMjNidENvbnZleENvbnZleEFsZ29yaXRobQBOMjNidENvbnZleENvbnZleEFsZ29yaXRobTEwQ3JlYXRlRnVuY0UAMjJidENvbXBvdW5kTGVhZkNhbGxiYWNrADI4YnRDb21wb3VuZENvbGxpc2lvbkFsZ29yaXRobQAzMGJ0Q29tcG91bmRDb21wb3VuZExlYWZDYWxsYmFjawAzNmJ0Q29tcG91bmRDb21wb3VuZENvbGxpc2lvbkFsZ29yaXRobQBidENvbXBvdW5kU2hhcGVDaGlsZERhdGEAYnRDb21wb3VuZFNoYXBlRGF0YQBDb21wb3VuZAAxNWJ0Q29tcG91bmRTaGFwZQBidENvbmVTaGFwZURhdGEAQ29uZQAxMWJ0Q29uZVNoYXBlAENvbmVaADEyYnRDb25lU2hhcGVaAENvbmVYADEyYnRDb25lU2hhcGVYAGJ0UG9zaXRpb25BbmRSYWRpdXMAYnRNdWx0aVNwaGVyZVNoYXBlRGF0YQBNdWx0aVNwaGVyZQAxOGJ0TXVsdGlTcGhlcmVTaGFwZQBTUEhFUkUAMTNidFNwaGVyZVNoYXBlAFpOSzIyYnRCdmhUcmlhbmdsZU1lc2hTaGFwZTE5cHJvY2Vzc0FsbFRyaWFuZ2xlc0VQMThidFRyaWFuZ2xlQ2FsbGJhY2tSSzlidFZlY3RvcjNTNF9FMjFNeU5vZGVPdmVybGFwQ2FsbGJhY2sAMjFidE5vZGVPdmVybGFwQ2FsbGJhY2sAYnRUcmlhbmdsZU1lc2hTaGFwZURhdGEAQlZIVFJJQU5HTEVNRVNIADIyYnRCdmhUcmlhbmdsZU1lc2hTaGFwZQBaTjIyYnRCdmhUcmlhbmdsZU1lc2hTaGFwZTE0cGVyZm9ybVJheWNhc3RFUDE4YnRUcmlhbmdsZUNhbGxiYWNrUks5YnRWZWN0b3IzUzRfRTIxTXlOb2RlT3ZlcmxhcENhbGxiYWNrAFpOMjJidEJ2aFRyaWFuZ2xlTWVzaFNoYXBlMTdwZXJmb3JtQ29udmV4Y2FzdEVQMThidFRyaWFuZ2xlQ2FsbGJhY2tSSzlidFZlY3RvcjNTNF9TNF9TNF9FMjFNeU5vZGVPdmVybGFwQ2FsbGJhY2sAMjFTdXBwb3J0VmVydGV4Q2FsbGJhY2sAWk5LMTlidFRyaWFuZ2xlTWVzaFNoYXBlMTlwcm9jZXNzQWxsVHJpYW5nbGVzRVAxOGJ0VHJpYW5nbGVDYWxsYmFja1JLOWJ0VmVjdG9yM1M0X0UxNkZpbHRlcmVkQ2FsbGJhY2sAVFJJQU5HTEVNRVNIADE5YnRUcmlhbmdsZU1lc2hTaGFwZQBidFN0YXRpY1BsYW5lU2hhcGVEYXRhAFNUQVRJQ1BMQU5FADE4YnRTdGF0aWNQbGFuZVNoYXBlADIzYnRQb2x5aGVkcmFsQ29udmV4U2hhcGUAMzRidFBvbHloZWRyYWxDb252ZXhBYWJiQ2FjaGluZ1NoYXBlAGJ0Q29sbGlzaW9uU2hhcGVEYXRhADE2YnRDb2xsaXNpb25TaGFwZQAxM2J0Q29udmV4U2hhcGUAMjFidENvbnZleEludGVybmFsU2hhcGUAMzJidENvbnZleEludGVybmFsQWFiYkNhY2hpbmdTaGFwZQBidENvbnZleEh1bGxTaGFwZURhdGEAQ29udmV4ADE3YnRDb252ZXhIdWxsU2hhcGUAMThidFRyaWFuZ2xlQ2FsbGJhY2sAMzFidEludGVybmFsVHJpYW5nbGVJbmRleENhbGxiYWNrAGJ0Q2Fwc3VsZVNoYXBlRGF0YQBDYXBzdWxlU2hhcGUAMTRidENhcHN1bGVTaGFwZQBDYXBzdWxlWAAxNWJ0Q2Fwc3VsZVNoYXBlWABDYXBzdWxlWgAxNWJ0Q2Fwc3VsZVNoYXBlWgAyNkxvY2FsU3VwcG9ydFZlcnRleENhbGxiYWNrAENvbnZleFRyaW1lc2gAMjVidENvbnZleFRyaWFuZ2xlTWVzaFNoYXBlADE0YnRDb25jYXZlU2hhcGUAQm94ADEwYnRCb3hTaGFwZQAxNGJ0T3B0aW1pemVkQnZoAFpOMTRidE9wdGltaXplZEJ2aDVidWlsZEVQMjNidFN0cmlkaW5nTWVzaEludGVyZmFjZWJSSzlidFZlY3RvcjNTNF9FMjBOb2RlVHJpYW5nbGVDYWxsYmFjawBaTjE0YnRPcHRpbWl6ZWRCdmg1YnVpbGRFUDIzYnRTdHJpZGluZ01lc2hJbnRlcmZhY2ViUks5YnRWZWN0b3IzUzRfRTI5UXVhbnRpemVkTm9kZVRyaWFuZ2xlQ2FsbGJhY2sASEVJR0hURklFTEQAMjVidEhlaWdodGZpZWxkVGVycmFpblNoYXBlAGJ0Q3lsaW5kZXJTaGFwZURhdGEAQ3lsaW5kZXJZADE1YnRDeWxpbmRlclNoYXBlAEN5bGluZGVyWAAxNmJ0Q3lsaW5kZXJTaGFwZVgAQ3lsaW5kZXJaADE2YnRDeWxpbmRlclNoYXBlWgAxNGJ0VHJpYW5nbGVNZXNoADIwYnRBeGlzU3dlZXAzSW50ZXJuYWxJdEUAMjFidEJyb2FkcGhhc2VJbnRlcmZhY2UAMTJidEF4aXNTd2VlcDMAMTVidE51bGxQYWlyQ2FjaGUAMjJidE92ZXJsYXBwaW5nUGFpckNhY2hlAFpOMjhidEhhc2hlZE92ZXJsYXBwaW5nUGFpckNhY2hlMTljbGVhblByb3h5RnJvbVBhaXJzRVAxN2J0QnJvYWRwaGFzZVByb3h5UDEyYnREaXNwYXRjaGVyRTE3Q2xlYW5QYWlyQ2FsbGJhY2sAWk4yOGJ0SGFzaGVkT3ZlcmxhcHBpbmdQYWlyQ2FjaGUzN3JlbW92ZU92ZXJsYXBwaW5nUGFpcnNDb250YWluaW5nUHJveHlFUDE3YnRCcm9hZHBoYXNlUHJveHlQMTJidERpc3BhdGNoZXJFMThSZW1vdmVQYWlyQ2FsbGJhY2sAMjhidEhhc2hlZE92ZXJsYXBwaW5nUGFpckNhY2hlADE4YnREYnZ0VHJlZUNvbGxpZGVyADIwQnJvYWRwaGFzZUFhYmJUZXN0ZXIAMTlCcm9hZHBoYXNlUmF5VGVzdGVyADE2YnREYnZ0QnJvYWRwaGFzZQAxMmJ0RGlzcGF0Y2hlcgBidE9wdGltaXplZEJ2aE5vZGVEYXRhAGJ0UXVhbnRpemVkQnZoTm9kZURhdGEAYnRCdmhTdWJ0cmVlSW5mb0RhdGEAYnRRdWFudGl6ZWRCdmhGbG9hdERhdGEAMTRidFF1YW50aXplZEJ2aAAyNWJ0VHJpYW5nbGVSYXljYXN0Q2FsbGJhY2sAMjhidFRyaWFuZ2xlQ29udmV4Y2FzdENhbGxiYWNrAFpOMzNidE1pbmtvd3NraVBlbmV0cmF0aW9uRGVwdGhTb2x2ZXIxMmNhbGNQZW5EZXB0aEVSMjJidFZvcm9ub2lTaW1wbGV4U29sdmVyUEsxM2J0Q29udmV4U2hhcGVTNF9SSzExYnRUcmFuc2Zvcm1TN19SOWJ0VmVjdG9yM1M5X1M5X1AxMmJ0SURlYnVnRHJhd0UyMGJ0SW50ZXJtZWRpYXRlUmVzdWx0ADMzYnRNaW5rb3dza2lQZW5ldHJhdGlvbkRlcHRoU29sdmVyADMwYnRDb252ZXhQZW5ldHJhdGlvbkRlcHRoU29sdmVyADMwYnRHamtFcGFQZW5ldHJhdGlvbkRlcHRoU29sdmVyADE2YnRQb2ludENvbGxlY3RvcgAxNWJ0R2prQ29udmV4Q2FzdAAyN2J0Q29udGludW91c0NvbnZleENvbGxpc2lvbgAxN2J0R2prUGFpckRldGVjdG9yADM2YnREaXNjcmV0ZUNvbGxpc2lvbkRldGVjdG9ySW50ZXJmYWNlADMwYnRBY3RpdmF0aW5nQ29sbGlzaW9uQWxnb3JpdGhtADE2YnRFbXB0eUFsZ29yaXRobQAzMmJ0U3BoZXJlU3BoZXJlQ29sbGlzaW9uQWxnb3JpdGhtADE2YnRCb3hCb3hEZXRlY3RvcgAyMlNwaGVyZVRyaWFuZ2xlRGV0ZWN0b3IAMjNidEhhc2hlZFNpbXBsZVBhaXJDYWNoZQAxOGJ0Q29udmV4UG9seWhlZHJvbgAyNmJ0VHJpYW5nbGVJbmRleFZlcnRleEFycmF5AGJ0SW50SW5kZXhEYXRhAGJ0U2hvcnRJbnRJbmRleFRyaXBsZXREYXRhAGJ0Q2hhckluZGV4VHJpcGxldERhdGEAYnRWZWN0b3IzRmxvYXREYXRhAGJ0VmVjdG9yM0RvdWJsZURhdGEAYnRNZXNoUGFydERhdGEAYnRTdHJpZGluZ01lc2hJbnRlcmZhY2VEYXRhADIzYnRTdHJpZGluZ01lc2hJbnRlcmZhY2UAUm9vdAAtKyAgIDBYMHgAKG51bGwpAC0wWCswWCAwWC0weCsweCAweABpbmYASU5GAG5hbgBOQU4AdGVybWluYXRpbmcATjEwX19jeHhhYml2MTE2X19zaGltX3R5cGVfaW5mb0UAU3Q5dHlwZV9pbmZvAE4xMF9fY3h4YWJpdjEyMF9fc2lfY2xhc3NfdHlwZV9pbmZvRQBOMTBfX2N4eGFiaXYxMTdfX2NsYXNzX3R5cGVfaW5mb0UAdGVybWluYXRlX2hhbmRsZXIgdW5leHBlY3RlZGx5IHJldHVybmVkAGludABmbG9hdAAuAE4xMF9fY3h4YWJpdjExN19fcGJhc2VfdHlwZV9pbmZvRQBOMTBfX2N4eGFiaXYxMTlfX3BvaW50ZXJfdHlwZV9pbmZvRQBOMTBfX2N4eGFiaXYxMjFfX3ZtaV9jbGFzc190eXBlX2luZm9F"; +function Ta(a){return a.replace(/\b__Z[\w\d_]+/g,function(a){return a===a?a:a+" ["+a+"]"})}function Ua(){var a=Error();if(!a.stack){try{throw Error(0);}catch(b){a=b}if(!a.stack)return"(no stack trace available)"}return a.stack.toString()}var Va={},Wa=[];function Xa(a){a&&Va[a].Zf++}function Ya(a){if(!a||Va[a])return a;for(var b in Va)for(var e=+b,f=Va[e].Yf,h=f.length,n=0;n>2]}var cb={};function db(){qa("OOM")}var eb=!1;function ra(a){for(var b=[],e=0;e>4; +h=(h&15)<<4|n>>2;var S=(n&3)<<6|B;b+=String.fromCharCode(f);64!==n&&(b+=String.fromCharCode(h));64!==B&&(b+=String.fromCharCode(S))}while(e> +2]=a);return a},k:function(a,b){ab=b;try{return cb.Da(),bb(),bb(),bb(),bb(),0}catch(e){return qa(e),-e.za}},l:function(a,b){ab=b;try{var e=bb(),f=bb(),h=bb();for(b=a=0;b>2],B=Ca[f+(8*b+4)>>2],S=0;S>2]=b/1E3|0;Ca[a+4>>2]=b%1E3*1E3|0;return 0},y:function(){qa("trap!")},z:db,A:function(a){return a},B:Ta,C:function(){var a=d._fflush;a&&a(0);Za[1].length&&$a(1,10);Za[2].length&&$a(2,10)},D:Ua,E:function(){var a=Ua();d.extraStackTrace&& +(a+="\n"+d.extraStackTrace());return Ta(a)},F:27776,G:27760};// EMSCRIPTEN_START_ASM +var g=(/** @suppress {uselessCode} */ function(global,env,buffer) { +"use asm";var a=new global.Int8Array(buffer),b=new global.Int16Array(buffer),c=new global.Int32Array(buffer),d=new global.Uint8Array(buffer),e=new global.Uint16Array(buffer),f=new global.Float32Array(buffer),g=new global.Float64Array(buffer),h=env.F|0,i=env.G|0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=global.Math.abs,s=global.Math.sqrt,t=global.Math.pow,u=global.Math.cos,v=global.Math.sin,w=global.Math.acos,x=global.Math.asin,y=global.Math.atan2,z=global.Math.imul,A=global.Math.clz32,B=env.a,C=env.b,D=env.c,E=env.d,F=env.e,G=env.f,H=env.g,I=env.h,J=env.i,K=env.j,L=env.k,M=env.l,N=env.m,O=env.n,P=env.o,Q=env.p,R=env.q,S=env.r,T=env.s,U=env.t,V=env.u,W=env.v,X=env.w,Y=env.x,Z=env.y,_=env.z,$=env.A,aa=env.B,ba=env.C,ca=env.D,da=env.E,ea=27792,fa=5270672,ga=0.0; +// EMSCRIPTEN_START_FUNCS +function ge(b){b=b|0;var d=0,e=0;c[b>>2]=6336;if(a[b+20>>0]|0){d=c[b+16>>2]|0;e=c[d+16>>2]|0;if(e){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0);d=c[b+16>>2]|0}if(d|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}}if(a[b+12>>0]|0){d=c[b+8>>2]|0;e=c[d+16>>2]|0;if(e){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0);d=c[b+8>>2]|0}if(d|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}}d=c[b+32>>2]|0;Ca[c[c[d>>2]>>2]&511](d);d=c[b+32>>2]|0;if(d|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}d=c[b+36>>2]|0;Ca[c[c[d>>2]>>2]&511](d);d=c[b+36>>2]|0;if(d|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}d=c[b+40>>2]|0;Ca[c[c[d>>2]>>2]&511](d);d=c[b+40>>2]|0;if(d|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}d=c[b+44>>2]|0;Ca[c[c[d>>2]>>2]&511](d);d=c[b+44>>2]|0;if(d|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}d=c[b+48>>2]|0;Ca[c[c[d>>2]>>2]&511](d);d=c[b+48>>2]|0;if(d|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}d=c[b+52>>2]|0;Ca[c[c[d>>2]>>2]&511](d);d=c[b+52>>2]|0;if(d|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}d=c[b+56>>2]|0;Ca[c[c[d>>2]>>2]&511](d);d=c[b+56>>2]|0;if(d|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}d=c[b+60>>2]|0;Ca[c[c[d>>2]>>2]&511](d);d=c[b+60>>2]|0;if(d|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}d=c[b+76>>2]|0;Ca[c[c[d>>2]>>2]&511](d);d=c[b+76>>2]|0;if(d|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}d=c[b+80>>2]|0;Ca[c[c[d>>2]>>2]&511](d);d=c[b+80>>2]|0;if(d|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}d=c[b+72>>2]|0;Ca[c[c[d>>2]>>2]&511](d);d=c[b+72>>2]|0;if(d|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}d=c[b+88>>2]|0;Ca[c[c[d>>2]>>2]&511](d);d=c[b+88>>2]|0;if(d|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}d=c[b+84>>2]|0;Ca[c[c[d>>2]>>2]&511](d);d=c[b+84>>2]|0;if(d|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}d=c[b+24>>2]|0;if(d|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}d=c[b+28>>2]|0;Ca[c[c[d>>2]>>2]&511](d);d=c[b+28>>2]|0;if(!d)return;c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0);return}function he(b,d){b=b|0;d=+d;var e=0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0,u=0.0;r=ea;ea=ea+16|0;Fi(14828);e=c[b+232>>2]|0;if((e|0)>0){q=0;do{p=c[(c[b+240>>2]|0)+(q<<2)>>2]|0;if(!(c[p+204>>2]&3)){n=+f[p+444>>2];j=+t(+(1.0-n),+d);g=+f[p+312>>2]*j;f[p+312>>2]=g;h=j*+f[p+316>>2];f[p+316>>2]=h;j=j*+f[p+320>>2];f[p+320>>2]=j;o=+f[p+448>>2];i=+t(+(1.0-o),+d);l=+f[p+328>>2]*i;f[p+328>>2]=l;k=i*+f[p+332>>2];f[p+332>>2]=k;i=i*+f[p+336>>2];f[p+336>>2]=i;do if(a[p+452>>0]|0){if(l*l+k*k+i*i<+f[p+464>>2]?g*g+h*h+j*j<+f[p+460>>2]:0){u=+f[p+456>>2];f[p+328>>2]=l*u;f[p+332>>2]=k*u;f[p+336>>2]=i*u;f[p+312>>2]=g*u;f[p+316>>2]=h*u;f[p+320>>2]=j*u;g=g*u;m=h*u;j=j*u;l=l*u;k=k*u;i=i*u}else m=h;h=+s(+(g*g+m*m+j*j));do if(h.004999999888241291){f[p+312>>2]=g-g*(1.0/h)*.004999999888241291;f[p+316>>2]=m-m*(1.0/h)*.004999999888241291;f[p+320>>2]=j-j*(1.0/h)*.004999999888241291;break}else{c[p+312>>2]=0;c[p+312+4>>2]=0;c[p+312+8>>2]=0;c[p+312+12>>2]=0;break}while(0);g=+s(+(l*l+k*k+i*i));if(g.004999999888241291){f[p+328>>2]=l-l*(1.0/g)*.004999999888241291;f[p+332>>2]=k-k*(1.0/g)*.004999999888241291;f[p+336>>2]=i-i*(1.0/g)*.004999999888241291;break}else{c[p+328>>2]=0;c[p+328+4>>2]=0;c[p+328+8>>2]=0;c[p+328+12>>2]=0;break}}while(0);ag(p+4|0,+f[p+312>>2],+f[p+316>>2],+f[p+320>>2],p+328|0,d,p+68|0);e=c[b+232>>2]|0}q=q+1|0}while((q|0)<(e|0))}e=c[2685]|0;b=(c[e+16>>2]|0)+-1|0;c[e+16>>2]=b;if(b|0){ea=r;return}do if(c[e+4>>2]|0){Y(r|0,0)|0;b=c[6746]|0;f[e+8>>2]=+f[e+8>>2]+ +(((c[r+4>>2]|0)-(c[b+4>>2]|0)+(((c[r>>2]|0)-(c[b>>2]|0)|0)*1e6|0)-(c[e+12>>2]|0)|0)>>>0)/1.0e3;if(!(c[e+16>>2]|0)){e=c[2685]|0;break}else{ea=r;return}}while(0);c[2685]=c[e+20>>2];ea=r;return}function ie(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;c[b+16>>2]=c[a+4>>2];c[b+20>>2]=c[a+8>>2];c[b+24>>2]=c[a+12>>2];c[b+28>>2]=c[a+16>>2];c[b+32>>2]=c[a+20>>2];c[b+36>>2]=c[a+24>>2];c[b+40>>2]=c[a+28>>2];c[b+44>>2]=c[a+32>>2];c[b+48>>2]=c[a+36>>2];c[b+52>>2]=c[a+40>>2];c[b+56>>2]=c[a+44>>2];c[b+60>>2]=c[a+48>>2];c[b+64>>2]=c[a+52>>2];c[b+68>>2]=c[a+56>>2];c[b+72>>2]=c[a+60>>2];c[b+76>>2]=c[a+64>>2];c[b+80>>2]=c[a+68>>2];c[b+84>>2]=c[a+72>>2];c[b+88>>2]=c[a+76>>2];c[b+92>>2]=c[a+80>>2];c[b+96>>2]=c[a+84>>2];c[b+100>>2]=c[a+88>>2];c[b+104>>2]=c[a+92>>2];c[b+108>>2]=c[a+96>>2];c[b+112>>2]=c[a+100>>2];c[b+116>>2]=c[a+104>>2];c[b+120>>2]=c[a+108>>2];c[b+124>>2]=c[a+112>>2];c[b+128>>2]=c[a+116>>2];c[b+132>>2]=c[a+120>>2];c[b+136>>2]=c[a+124>>2];c[b+140>>2]=c[a+128>>2];c[b+144>>2]=c[a+132>>2];c[b+148>>2]=c[a+136>>2];c[b+152>>2]=c[a+140>>2];c[b+156>>2]=c[a+144>>2];c[b+160>>2]=c[a+148>>2];c[b+164>>2]=c[a+152>>2];c[b+168>>2]=c[a+156>>2];c[b+172>>2]=c[a+160>>2];c[b+176>>2]=c[a+164>>2];c[b+180>>2]=c[a+168>>2];c[b+184>>2]=c[a+172>>2];c[b+188>>2]=c[a+176>>2];c[b+224>>2]=c[a+180>>2];c[b+192>>2]=c[a+184>>2];c[b>>2]=0;c[b+4>>2]=ta[c[(c[d>>2]|0)+28>>2]&31](d,c[a+192>>2]|0)|0;c[b+8>>2]=0;c[b+228>>2]=c[a+204>>2];c[b+232>>2]=c[a+208>>2];c[b+236>>2]=c[a+212>>2];c[b+240>>2]=c[a+216>>2];c[b+196>>2]=c[a+220>>2];c[b+200>>2]=c[a+224>>2];c[b+204>>2]=c[a+232>>2];c[b+208>>2]=c[a+228>>2];c[b+244>>2]=c[a+236>>2];e=ta[c[(c[d>>2]|0)+40>>2]&31](d,a)|0;f=ta[c[(c[d>>2]|0)+28>>2]&31](d,e)|0;c[b+12>>2]=f;if(!f){d=a+244|0;d=c[d>>2]|0;f=b+212|0;c[f>>2]=d;f=a+248|0;f=c[f>>2]|0;d=b+216|0;c[d>>2]=f;d=a+252|0;d=c[d>>2]|0;f=b+220|0;c[f>>2]=d;a=a+256|0;a=c[a>>2]|0;f=b+248|0;c[f>>2]=a;return 15808}Ia[c[(c[d>>2]|0)+48>>2]&127](d,e);d=a+244|0;d=c[d>>2]|0;f=b+212|0;c[f>>2]=d;f=a+248|0;f=c[f>>2]|0;d=b+216|0;c[d>>2]=f;d=a+252|0;d=c[d>>2]|0;f=b+220|0;c[f>>2]=d;a=a+256|0;a=c[a>>2]|0;f=b+248|0;c[f>>2]=a;return 15808}function je(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,g=0,h=0.0,i=0,j=0.0,k=0.0,l=0,m=0,n=0.0;if(!(c[a>>2]|0)){c[a>>2]=d;c[d+32>>2]=0;return}e=c[b+40>>2]|0;if(!e)m=b;else{h=+f[d>>2]+ +f[d+16>>2];k=+f[d+4>>2]+ +f[d+20>>2];j=+f[d+8>>2]+ +f[d+24>>2];do{m=c[b+36>>2]|0;n=+r(+(h-(+f[m>>2]+ +f[m+16>>2])))+ +r(+(k-(+f[m+4>>2]+ +f[m+20>>2])))+ +r(+(j-(+f[m+8>>2]+ +f[m+24>>2])));b=c[b+36+((!(n<+r(+(h-(+f[e>>2]+ +f[e+16>>2])))+ +r(+(k-(+f[e+4>>2]+ +f[e+20>>2])))+ +r(+(j-(+f[e+8>>2]+ +f[e+24>>2]))))&1)<<2)>>2]|0;e=c[b+40>>2]|0}while((e|0)!=0);m=b}l=m+32|0;g=c[l>>2]|0;b=c[a+4>>2]|0;if(!b){c[6747]=(c[6747]|0)+1;e=kb(63)|0;if(!e)b=0;else{c[(e+4+15&-16)+-4>>2]=e;b=e+4+15&-16}e=b;i=e+44|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(i|0))}else c[a+4>>2]=0;c[b+32>>2]=g;c[b+36>>2]=0;e=b+40|0;c[e>>2]=0;n=+f[d>>2];k=+f[m>>2];f[b>>2]=n>2];n=+f[m+16>>2];f[b+16>>2]=k>n?k:n;n=+f[d+4>>2];k=+f[m+4>>2];f[b+4>>2]=n>2];n=+f[m+20>>2];f[b+20>>2]=k>n?k:n;n=+f[d+8>>2];k=+f[m+8>>2];f[b+8>>2]=n>2];n=+f[m+24>>2];f[b+24>>2]=k>n?k:n;if(!g){c[b+36>>2]=m;c[l>>2]=b;c[e>>2]=d;c[d+32>>2]=b;c[a>>2]=b;return}c[g+36+(((c[(c[l>>2]|0)+40>>2]|0)==(m|0)&1)<<2)>>2]=b;c[b+36>>2]=m;c[l>>2]=b;c[e>>2]=d;c[d+32>>2]=b;h=+f[b>>2];while(1){e=g+4|0;if(((((+f[g>>2]<=h?+f[e>>2]<=+f[b+4>>2]:0)?+f[g+8>>2]<=+f[b+8>>2]:0)?+f[g+16>>2]>=+f[b+16>>2]:0)?+f[g+20>>2]>=+f[b+20>>2]:0)?+f[g+24>>2]>=+f[b+24>>2]:0){e=21;break}d=c[g+36>>2]|0;a=c[g+40>>2]|0;k=+f[d>>2];h=+f[a>>2];h=k>2]=h;k=+f[d+16>>2];n=+f[a+16>>2];f[g+16>>2]=k>n?k:n;n=+f[d+4>>2];k=+f[a+4>>2];f[e>>2]=n>2];n=+f[a+20>>2];f[g+20>>2]=k>n?k:n;n=+f[d+8>>2];k=+f[a+8>>2];f[g+8>>2]=n>2];n=+f[a+24>>2];f[g+24>>2]=k>n?k:n;e=c[g+32>>2]|0;if(!e){e=21;break}else{b=g;g=e}}if((e|0)==21)return}function ke(b,d){b=b|0;d=d|0;var e=0,g=0.0,i=0.0,j=0.0,k=0,l=0.0,m=0.0;if(a[b+48>>0]|0){c[d>>2]=0;c[d+4>>2]=0;return}c[d>>2]=4;c[d+4>>2]=2;Zb(b,(c[b+28>>2]|0)+4|0,(c[b+32>>2]|0)+4|0);f[b+1088>>2]=0.0;a[b+297>>0]=0;l=+f[b+192>>2];m=+f[b+196>>2];do if(l<=m){i=+f[b+892>>2];j=+f[b+908>>2];g=+f[b+924>>2];g=+y(+(+f[b+832>>2]*i+ +f[b+848>>2]*j+ +f[b+864>>2]*g),+(+f[b+828>>2]*i+ +f[b+844>>2]*j+ +f[b+860>>2]*g));do if(!(l>=m)){if(g3.1415927410125732)i=(l-g)%6.2831854820251465+-6.2831854820251465;else i=(l-g)%6.2831854820251465;else i=(l-g)%6.2831854820251465+6.2831854820251465;i=+r(+i);if(!((m-g)%6.2831854820251465<-3.1415927410125732))if((m-g)%6.2831854820251465>3.1415927410125732)j=(m-g)%6.2831854820251465+-6.2831854820251465;else j=(m-g)%6.2831854820251465;else j=(m-g)%6.2831854820251465+6.2831854820251465;k=i<+r(+j);g=k?g:g+6.2831854820251465;break}if(g>m){if(!((g-m)%6.2831854820251465<-3.1415927410125732))if((g-m)%6.2831854820251465>3.1415927410125732)i=(g-m)%6.2831854820251465+-6.2831854820251465;else i=(g-m)%6.2831854820251465;else i=(g-m)%6.2831854820251465+6.2831854820251465;i=+r(+i);if(!((g-l)%6.2831854820251465<-3.1415927410125732))if((g-l)%6.2831854820251465>3.1415927410125732)j=(g-l)%6.2831854820251465+-6.2831854820251465;else j=(g-l)%6.2831854820251465;else j=(g-l)%6.2831854820251465+6.2831854820251465;k=+r(+j)>2]=g;if(g>2]=g-l;a[b+297>>0]=1;k=1;break}if(g>m){f[b+1088>>2]=g-m;a[b+297>>0]=1;k=1}else k=0}else k=0;while(0);a[b+296>>0]=0;e=c[b+1032>>2]|0;c[b+1080>>2]=e;g=+f[b+184>>2];i=+f[b+188>>2];j=(c[h>>2]=e,+f[h>>2]);do if(!(g<=i))e=32;else{if(!(ij)){e=32;break}}else g=i;f[b+1032>>2]=j-g;a[b+296>>0]=1;e=34}while(0);if((e|0)==32?(f[b+1032>>2]=0.0,a[b+1096>>0]|0):0)e=34;if((e|0)==34){c[d>>2]=(c[d>>2]|0)+1;c[d+4>>2]=(c[d+4>>2]|0)+-1}if(k<<24>>24==0?(a[b+1112>>0]|0)==0:0)return;c[d>>2]=(c[d>>2]|0)+1;c[d+4>>2]=(c[d+4>>2]|0)+-1;return}function le(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0.0,h=0.0,i=0.0,j=0.0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0;k=ea;ea=ea+128|0;a=c[a+16>>2]|0;n=+f[a+892>>2];x=+f[a+896>>2];y=+f[a+900>>2];w=+f[a+908>>2];l=+f[a+912>>2];h=+f[a+916>>2];v=+f[b>>2];u=+f[b+4>>2];t=+f[b+8>>2];r=+f[b+16>>2];q=+f[b+20>>2];p=+f[b+24>>2];m=+f[b+32>>2];g=+f[b+36>>2];i=+f[b+40>>2];s=+f[b+48>>2];o=+f[b+52>>2];j=+f[b+56>>2];f[k>>2]=n*v+x*u+y*t+s;f[k+4>>2]=n*r+x*q+y*p+o;f[k+8>>2]=n*m+x*g+y*i+j;f[k+12>>2]=0.0;f[k+16>>2]=w*v+x*u+y*t+s;f[k+20>>2]=w*r+x*q+y*p+o;f[k+24>>2]=w*m+x*g+y*i+j;f[k+28>>2]=0.0;f[k+32>>2]=w*v+l*u+y*t+s;f[k+36>>2]=w*r+l*q+y*p+o;f[k+40>>2]=w*m+l*g+y*i+j;f[k+44>>2]=0.0;f[k+48>>2]=n*v+l*u+y*t+s;f[k+52>>2]=n*r+l*q+y*p+o;f[k+56>>2]=n*m+l*g+y*i+j;f[k+60>>2]=0.0;f[k+64>>2]=n*v+x*u+h*t+s;f[k+68>>2]=n*r+x*q+h*p+o;f[k+72>>2]=n*m+x*g+h*i+j;f[k+76>>2]=0.0;f[k+80>>2]=w*v+x*u+h*t+s;f[k+84>>2]=w*r+x*q+h*p+o;f[k+88>>2]=w*m+x*g+h*i+j;f[k+92>>2]=0.0;f[k+96>>2]=w*v+l*u+h*t+s;f[k+100>>2]=w*r+l*q+h*p+o;f[k+104>>2]=w*m+l*g+h*i+j;f[k+108>>2]=0.0;f[k+112>>2]=n*v+l*u+h*t+s;f[k+116>>2]=n*r+l*q+h*p+o;f[k+120>>2]=n*m+l*g+h*i+j;f[k+124>>2]=0.0;c[e>>2]=c[k>>2];c[e+4>>2]=c[k+4>>2];c[e+8>>2]=c[k+8>>2];c[e+12>>2]=c[k+12>>2];c[d>>2]=c[k>>2];c[d+4>>2]=c[k+4>>2];c[d+8>>2]=c[k+8>>2];c[d+12>>2]=c[k+12>>2];b=1;do{g=+f[k+(b<<4)>>2];if(g<+f[d>>2])f[d>>2]=g;h=+f[k+(b<<4)+4>>2];if(h<+f[d+4>>2])f[d+4>>2]=h;i=+f[k+(b<<4)+8>>2];if(i<+f[d+8>>2])f[d+8>>2]=i;j=+f[k+(b<<4)+12>>2];if(j<+f[d+12>>2])f[d+12>>2]=j;if(+f[e>>2]>2]=g;if(+f[e+4>>2]>2]=h;if(+f[e+8>>2]>2]=i;if(+f[e+12>>2]>2]=j;b=b+1|0}while((b|0)!=8);ea=k;return}function me(b,d){b=b|0;d=d|0;var e=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0;q=ea;ea=ea+64|0;Yf(c[b+116>>2]|0,d,0);e=+f[d+204>>2]+ +f[d+212>>2];o=e*+f[d+56>>2]+ +f[d+40>>2];p=e*+f[d+60>>2]+ +f[d+44>>2];f[d+16>>2]=+f[d+52>>2]*e+ +f[d+36>>2];f[d+20>>2]=o;f[d+24>>2]=p;f[d+28>>2]=0.0;f[q+32>>2]=-1.0;r=c[b+100>>2]|0;r=wa[c[(c[r>>2]|0)+8>>2]&31](r,d+36|0,d+16|0,q)|0;c[d+88>>2]=0;if(!r){c[d+32>>2]=c[d+204>>2];f[d+272>>2]=0.0;p=-+f[d+56>>2];o=-+f[d+60>>2];f[d>>2]=-+f[d+52>>2];f[d+4>>2]=p;f[d+8>>2]=o;f[d+12>>2]=0.0;o=1.0;p=-1.0;r=d+268|0;f[r>>2]=o;ea=q;return +p}p=e*+f[q+32>>2];c[d>>2]=c[q+16>>2];c[d+4>>2]=c[q+16+4>>2];c[d+8>>2]=c[q+16+8>>2];c[d+12>>2]=c[q+16+12>>2];a[d+84>>0]=1;if((a[24952]|0)==0?DC(24952)|0:0){c[q+40>>2]=0;c[q+40+4>>2]=0;c[q+40+8>>2]=0;c[q+40+12>>2]=0;sf(26260,0.0,0,0,q+40|0);PB(24952)}c[6616]=c[6616]|1;f[6651]=0.0;o=+f[6661]*0.0;e=+f[6662]*0.0;f[6656]=+f[6660]*0.0;f[6657]=o;f[6658]=e;f[6659]=0.0;c[6664]=0;c[6665]=0;c[6666]=0;c[6667]=0;e=+f[6653]*0.0;o=+f[6654]*0.0;f[6705]=+f[6652]*0.0;f[6706]=e;f[6707]=o;f[6708]=0.0;c[d+88>>2]=26260;o=p-+f[d+212>>2];f[d+32>>2]=o;e=+f[d+204>>2];h=+f[d+208>>2]*.009999999776482582;g=oe+h)f[d+32>>2]=g>e+h?e+h:g;c[d+16>>2]=c[q>>2];c[d+16+4>>2]=c[q+4>>2];c[d+16+8>>2]=c[q+8>>2];c[d+16+12>>2]=c[q+12>>2];l=+f[d>>2];m=+f[d+4>>2];n=+f[d+8>>2];o=l*+f[d+52>>2]+m*+f[d+56>>2]+n*+f[d+60>>2];b=c[b+116>>2]|0;i=+f[d+16>>2]-+f[b+52>>2];k=+f[d+20>>2]-+f[b+56>>2];j=+f[d+24>>2]-+f[b+60>>2];e=+f[b+332>>2];g=+f[b+336>>2];h=+f[b+328>>2];if(!(o>=-.10000000149011612)){f[d+272>>2]=-1.0/o*(l*(e*j-k*g+ +f[b+312>>2])+m*(i*g-j*h+ +f[b+316>>2])+n*(k*h-i*e+ +f[b+320>>2]));o=-1.0/o;r=d+268|0;f[r>>2]=o;ea=q;return +p}else{f[d+272>>2]=0.0;o=10.0;r=d+268|0;f[r>>2]=o;ea=q;return +p}return 0.0}function ne(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0;v=+f[b>>2];u=+f[b+4>>2];t=+f[b+8>>2];r=1.0/+s(+(v*v+u*u+t*t));z=+f[d>>2];y=+f[d+4>>2];x=+f[d+8>>2];w=1.0/+s(+(z*z+y*y+x*x));C=t*r*(y*w)-u*r*(x*w);B=v*r*(x*w)-t*r*(z*w);A=u*r*(z*w)-v*r*(y*w);d=c[a+28>>2]|0;e=+f[d+4>>2];h=+f[d+20>>2];j=+f[d+36>>2];g=+f[d+8>>2];i=+f[d+24>>2];k=+f[d+40>>2];l=+f[d+12>>2];n=+f[d+28>>2];p=+f[d+44>>2];m=-+f[d+52>>2];o=-+f[d+56>>2];q=-+f[d+60>>2];f[a+48>>2]=j*A+(e*C+h*B);f[a+52>>2]=j*(x*w)+(e*(z*w)+h*(y*w));f[a+56>>2]=e*(v*r)+u*r*h+t*r*j;f[a+60>>2]=0.0;f[a+64>>2]=A*k+(g*C+i*B);f[a+68>>2]=z*w*g+y*w*i+x*w*k;f[a+72>>2]=v*r*g+u*r*i+t*r*k;f[a+76>>2]=0.0;f[a+80>>2]=C*l+B*n+A*p;f[a+84>>2]=z*w*l+y*w*n+x*w*p;f[a+88>>2]=v*r*l+u*r*n+t*r*p;f[a+92>>2]=0.0;f[a+96>>2]=e*0.0+h*0.0+j*0.0+(e*m+h*o+j*q);f[a+100>>2]=g*0.0+i*0.0+k*0.0+(g*m+i*o+k*q);f[a+104>>2]=l*0.0+n*0.0+p*0.0+(l*m+n*o+p*q);f[a+108>>2]=0.0;d=c[a+32>>2]|0;q=+f[d+4>>2];p=+f[d+20>>2];o=+f[d+36>>2];n=+f[d+8>>2];m=+f[d+24>>2];l=+f[d+40>>2];k=+f[d+12>>2];i=+f[d+28>>2];g=+f[d+44>>2];j=-+f[d+52>>2];h=-+f[d+56>>2];e=-+f[d+60>>2];f[a+112>>2]=C*q+B*p+A*o;f[a+116>>2]=z*w*q+y*w*p+x*w*o;f[a+120>>2]=v*r*q+u*r*p+t*r*o;f[a+124>>2]=0.0;f[a+128>>2]=C*n+B*m+A*l;f[a+132>>2]=z*w*n+y*w*m+x*w*l;f[a+136>>2]=v*r*n+u*r*m+t*r*l;f[a+140>>2]=0.0;f[a+144>>2]=C*k+B*i+A*g;f[a+148>>2]=z*w*k+y*w*i+x*w*g;f[a+152>>2]=v*r*k+u*r*i+t*r*g;f[a+156>>2]=0.0;f[a+160>>2]=q*0.0+p*0.0+o*0.0+(q*j+p*h+o*e);f[a+164>>2]=n*0.0+m*0.0+l*0.0+(n*j+m*h+l*e);f[a+168>>2]=k*0.0+i*0.0+g*0.0+(k*j+i*h+g*e);f[a+172>>2]=0.0;gc(a,(c[a+28>>2]|0)+4|0,(c[a+32>>2]|0)+4|0);return}function oe(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;a:do if(!(rt(b,c[d+8>>2]|0,g)|0)){if(!(rt(b,c[d>>2]|0,g)|0)){i=c[b+12>>2]|0;An(b+16|0,d,e,f,g);if((i|0)<=1)break;h=c[b+8>>2]|0;if((h&2|0)==0?(c[d+36>>2]|0)!=1:0){if(!(h&1)){h=b+24|0;while(1){if(a[d+54>>0]|0)break a;if((c[d+36>>2]|0)==1)break a;An(h,d,e,f,g);h=h+8|0;if(h>>>0>=(b+16+(i<<3)|0)>>>0)break a}}h=b+24|0;while(1){if(a[d+54>>0]|0)break a;if((c[d+36>>2]|0)==1?(c[d+24>>2]|0)==1:0)break a;An(h,d,e,f,g);h=h+8|0;if(h>>>0>=(b+16+(i<<3)|0)>>>0)break a}}h=b+24|0;while(1){if(a[d+54>>0]|0)break a;An(h,d,e,f,g);h=h+8|0;if(h>>>0>=(b+16+(i<<3)|0)>>>0)break a}}if((c[d+16>>2]|0)!=(e|0)?(c[d+20>>2]|0)!=(e|0):0){c[d+32>>2]=f;if((c[d+44>>2]|0)!=4){f=b+16+(c[b+12>>2]<<3)|0;h=0;i=0;j=b+16|0;b:while(1){if(j>>>0>=f>>>0){f=18;break}a[d+52>>0]=0;a[d+53>>0]=0;hn(j,d,e,e,1,g);if(a[d+54>>0]|0){f=18;break}do if(a[d+53>>0]|0){if(!(a[d+52>>0]|0))if(!(c[b+8>>2]&1)){f=19;break b}else{i=1;break}if((c[d+24>>2]|0)==1){h=1;f=19;break b}if(!(c[b+8>>2]&2)){h=1;f=19;break b}else{h=1;i=1}}while(0);j=j+8|0}if((f|0)==18)if(i)f=19;else i=4;if((f|0)==19)i=3;c[d+44>>2]=i;if(h&1)break}c[d+20>>2]=e;c[d+40>>2]=(c[d+40>>2]|0)+1;if((c[d+36>>2]|0)!=1)break;if((c[d+24>>2]|0)!=2)break;a[d+54>>0]=1;break}if((f|0)==1)c[d+32>>2]=1}else Jr(d,e,f);while(0);return}function pe(b){b=b|0;var d=0.0,e=0.0,g=0.0,h=0,i=0,j=0,k=0;h=ea;ea=ea+16|0;if(!(a[b+1308>>0]|0)){ea=h;return}f[b+928>>2]=0.0;f[b+992>>2]=0.0;f[b+1056>>2]=0.0;c[b+712>>2]=0;c[b+712+4>>2]=0;c[b+712+8>>2]=0;c[b+712+12>>2]=0;gc(b,(c[b+28>>2]|0)+4|0,(c[b+32>>2]|0)+4|0);Ca[c[(c[b>>2]|0)+44>>2]&511](b);d=+f[b+1284>>2];e=+f[b+1288>>2];g=+f[b+1292>>2];if(+f[b+696>>2]>=+f[b+680>>2]){k=(a[b+1300>>0]|0)==0;i=c[(k?b+1160|0:b+1096|0)>>2]|0;j=c[(k?b+1144|0:b+1080|0)>>2]|0;c[h>>2]=c[(k?b+1128|0:b+1064|0)>>2];c[h+4>>2]=j;c[h+8>>2]=i;f[h+12>>2]=0.0;Mg(c[b+28>>2]|0,c[b+32>>2]|0,b+176|0,h,d,e,g,d,e,g)}if(+f[b+700>>2]>=+f[b+684>>2]){i=(a[b+1300>>0]|0)==0;k=c[(i?b+1164|0:b+1100|0)>>2]|0;j=c[(i?b+1148|0:b+1084|0)>>2]|0;c[h>>2]=c[(i?b+1132|0:b+1068|0)>>2];c[h+4>>2]=j;c[h+8>>2]=k;f[h+12>>2]=0.0;Mg(c[b+28>>2]|0,c[b+32>>2]|0,b+260|0,h,d,e,g,d,e,g)}if(+f[b+704>>2]>=+f[b+688>>2]){i=(a[b+1300>>0]|0)==0;k=c[(i?b+1168|0:b+1104|0)>>2]|0;j=c[(i?b+1152|0:b+1088|0)>>2]|0;c[h>>2]=c[(i?b+1136|0:b+1072|0)>>2];c[h+4>>2]=j;c[h+8>>2]=k;f[h+12>>2]=0.0;Mg(c[b+28>>2]|0,c[b+32>>2]|0,b+344|0,h,d,e,g,d,e,g)}if(df(b,0)|0){c[h>>2]=c[b+1208>>2];c[h+4>>2]=c[b+1208+4>>2];c[h+8>>2]=c[b+1208+8>>2];c[h+12>>2]=c[b+1208+12>>2];Sf(c[b+28>>2]|0,c[b+32>>2]|0,b+428|0,h)}if(df(b,1)|0){c[h>>2]=c[b+1224>>2];c[h+4>>2]=c[b+1224+4>>2];c[h+8>>2]=c[b+1224+8>>2];c[h+12>>2]=c[b+1224+12>>2];Sf(c[b+28>>2]|0,c[b+32>>2]|0,b+512|0,h)}if(df(b,2)|0){c[h>>2]=c[b+1240>>2];c[h+4>>2]=c[b+1240+4>>2];c[h+8>>2]=c[b+1240+8>>2];c[h+12>>2]=c[b+1240+12>>2];Sf(c[b+28>>2]|0,c[b+32>>2]|0,b+596|0,h)}ea=h;return}function qe(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;c[6725]=(c[6725]|0)+1;g=c[d+24>>2]|0;if(!g){if(!((b[f+6>>1]&b[e+4>>1])<<16>>16)){d=0;return d|0}if(!((b[e+6>>1]&b[f+4>>1])<<16>>16)){d=0;return d|0}}else if(!(va[c[(c[g>>2]|0)+8>>2]&63](g,e,f)|0)){d=0;return d|0}l=(c[e+12>>2]|0)>(c[f+12>>2]|0);m=l?f:e;i=c[m+12>>2]|0;l=l?e:f;f=c[l+12>>2]|0;k=(f<<16|i)+~((f<<16|i)<<15)|0;k=((10?k>>10:k)^k)*9|0;k=(6?k>>6:k)^k;k=(16?k+~(k<<11)>>16:k+~(k<<11)|0)^k+~(k<<11);j=c[d+12>>2]|0;g=c[(c[d+44>>2]|0)+((k&j+-1)<<2)>>2]|0;a:do if((g|0)!=-1){h=c[d+16>>2]|0;e=g;while(1){g=h+(e<<4)|0;if((c[(c[g>>2]|0)+12>>2]|0)==(i|0)?(c[(c[h+(e<<4)+4>>2]|0)+12>>2]|0)==(f|0):0)break;e=c[(c[d+64>>2]|0)+(e<<2)>>2]|0;if((e|0)==-1)break a}return g|0}while(0);i=c[d+8>>2]|0;if((i|0)==(j|0)){g=(j|0)==0?1:j<<1;if((j|0)<(g|0)){if(!g){f=j;h=0}else{c[6747]=(c[6747]|0)+1;e=kb((g<<4|3)+16|0)|0;if(!e)e=0;else{c[(e+4+15&-16)+-4>>2]=e;e=e+4+15&-16}f=c[d+8>>2]|0;h=e}if((f|0)>0){e=0;do{n=c[d+16>>2]|0;c[h+(e<<4)>>2]=c[n+(e<<4)>>2];c[h+(e<<4)+4>>2]=c[n+(e<<4)+4>>2];c[h+(e<<4)+8>>2]=c[n+(e<<4)+8>>2];c[h+(e<<4)+12>>2]=c[n+(e<<4)+12>>2];e=e+1|0}while((e|0)!=(f|0))}e=c[d+16>>2]|0;if(e|0){if(a[d+20>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0)}c[d+16>>2]=0}a[d+20>>0]=1;c[d+16>>2]=h;c[d+12>>2]=g;e=c[d+8>>2]|0}else{e=j;g=j}}else{e=i;g=j}c[d+8>>2]=e+1;f=c[d+16>>2]|0;e=c[d+72>>2]|0;if(e){va[c[(c[e>>2]|0)+8>>2]&63](e,m,l)|0;g=c[d+12>>2]|0}if((j|0)<(g|0)){Fe(d);g=(c[d+12>>2]|0)+-1&k}else g=k&j+-1;n=(c[m+12>>2]|0)<(c[l+12>>2]|0);c[f+(i<<4)>>2]=n?m:l;c[f+(i<<4)+4>>2]=n?l:m;c[f+(i<<4)+8>>2]=0;c[f+(i<<4)+8+4>>2]=0;n=(c[d+44>>2]|0)+(g<<2)|0;c[(c[d+64>>2]|0)+(i<<2)>>2]=c[n>>2];c[n>>2]=i;n=f+(i<<4)|0;return n|0}function re(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0,h=0,i=0.0,j=0.0,k=0.0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0.0,t=0,u=0.0,v=0.0,w=0.0,x=0;x=ea;ea=ea+32|0;r=c[a+12>>2]|0;s=+f[r+(((e+d|0)/2|0)*24|0)>>2];u=+f[r+(((e+d|0)/2|0)*24|0)+4>>2];v=+f[r+(((e+d|0)/2|0)*24|0)+8>>2];w=+f[r+(((e+d|0)/2|0)*24|0)+16>>2];t=c[r+(((e+d|0)/2|0)*24|0)+20>>2]|0;g=d;h=e;while(1){n=+f[b>>2];o=+f[b+4>>2];p=+f[b+8>>2];q=(s-n)*(s-n)+(u-o)*(u-o)+(v-p)*(v-p);a:while(1){m=r+(g*24|0)|0;i=+f[r+(g*24|0)+16>>2];do if(i!=w){if(!(i>2]-n;k=+f[r+(g*24|0)+4>>2]-o;j=+f[r+(g*24|0)+8>>2]-p;if(i*i+k*k+j*j!=q)if(i*i+k*k+j*j>2]|0)<(t|0))break;else break a}while(0);g=g+1|0}b:while(1){l=r+(h*24|0)|0;i=+f[r+(h*24|0)+16>>2];do if(w!=i){if(!(w>2]-n;k=+f[r+(h*24|0)+4>>2]-o;j=+f[r+(h*24|0)+8>>2]-p;if(q!=i*i+k*k+j*j)if(q>2]|0))break;else break b}while(0);h=h+-1|0}if((g|0)<=(h|0)){c[x>>2]=c[m>>2];c[x+4>>2]=c[m+4>>2];c[x+8>>2]=c[m+8>>2];c[x+12>>2]=c[m+12>>2];c[x+16>>2]=c[m+16>>2];c[x+20>>2]=c[m+20>>2];c[m>>2]=c[l>>2];c[m+4>>2]=c[l+4>>2];c[m+8>>2]=c[l+8>>2];c[m+12>>2]=c[l+12>>2];c[m+16>>2]=c[l+16>>2];c[m+20>>2]=c[l+20>>2];r=(c[a+12>>2]|0)+(h*24|0)|0;c[r>>2]=c[x>>2];c[r+4>>2]=c[x+4>>2];c[r+8>>2]=c[x+8>>2];c[r+12>>2]=c[x+12>>2];c[r+16>>2]=c[x+16>>2];c[r+20>>2]=c[x+20>>2];g=g+1|0;h=h+-1|0}if((g|0)>(h|0))break;r=c[a+12>>2]|0}if((h|0)>(d|0))re(a,b,d,h);if((g|0)>=(e|0)){ea=x;return}re(a,b,g,e);ea=x;return}function se(a,b){a=a|0;b=b|0;var d=0.0,e=0,g=0.0,h=0,i=0,j=0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0;j=c[a+28>>2]|0;k=c[a+32>>2]|0;h=c[b+8>>2]|0;f[h>>2]=1.0;e=c[b+24>>2]|0;f[h+(e+1<<2)>>2]=1.0;f[h+((e<<1)+2<<2)>>2]=1.0;l=+f[a+300>>2];q=+f[a+304>>2];g=+f[a+308>>2];o=+f[j+4>>2]*l+ +f[j+8>>2]*q+ +f[j+12>>2]*g;m=l*+f[j+20>>2]+q*+f[j+24>>2]+g*+f[j+28>>2];g=l*+f[j+36>>2]+q*+f[j+40>>2]+g*+f[j+44>>2];h=c[b+12>>2]|0;c[h>>2]=0;f[h+4>>2]=g;f[h+8>>2]=-m;f[h+12>>2]=0.0;f[h+(e<<2)>>2]=-g;c[h+(e<<2)+4>>2]=0;f[h+(e<<2)+8>>2]=o;f[h+(e<<2)+12>>2]=0.0;f[h+(e<<1<<2)>>2]=m;f[h+(e<<1<<2)+4>>2]=-o;c[h+(e<<1<<2)+8>>2]=0;f[h+(e<<1<<2)+12>>2]=0.0;h=c[b+16>>2]|0;f[h>>2]=-1.0;f[h+(e+1<<2)>>2]=-1.0;f[h+((e<<1)+2<<2)>>2]=-1.0;q=+f[a+316>>2];l=+f[a+320>>2];d=+f[a+324>>2];p=+f[k+4>>2]*q+ +f[k+8>>2]*l+ +f[k+12>>2]*d;n=q*+f[k+20>>2]+l*+f[k+24>>2]+d*+f[k+28>>2];d=q*+f[k+36>>2]+l*+f[k+40>>2]+d*+f[k+44>>2];h=c[b+20>>2]|0;c[h>>2]=0;f[h+4>>2]=-d;f[h+8>>2]=n;f[h+12>>2]=0.0;f[h+(e<<2)>>2]=d;c[h+(e<<2)+4>>2]=0;f[h+(e<<2)+8>>2]=-p;f[h+(e<<2)+12>>2]=0.0;f[h+(e<<1<<2)>>2]=-n;f[h+(e<<1<<2)+4>>2]=p;c[h+(e<<1<<2)+8>>2]=0;f[h+(e<<1<<2)+12>>2]=0.0;h=c[a+332>>2]|0;l=+f[((h&1|0)==0?b+4|0:a+336|0)>>2]*+f[b>>2];i=c[b+28>>2]|0;f[i>>2]=l*(p+ +f[k+52>>2]-o-+f[j+52>>2]);f[i+(e<<2)>>2]=l*(n+ +f[k+56>>2]-m-+f[j+56>>2]);f[i+(e<<1<<2)>>2]=l*(d+ +f[k+60>>2]-g-+f[j+60>>2]);if(h&2|0){k=c[b+32>>2]|0;c[k>>2]=c[a+340>>2];c[k+(e<<2)>>2]=c[a+340>>2];c[k+(e<<1<<2)>>2]=c[a+340>>2]}g=+f[a+356>>2];if(g>0.0){f[c[b+36>>2]>>2]=-g;f[c[b+40>>2]>>2]=g;d=+f[a+356>>2]}else d=g;if(d>0.0){f[(c[b+36>>2]|0)+(e<<2)>>2]=-g;f[(c[b+40>>2]|0)+(e<<2)>>2]=g;d=+f[a+356>>2]}if(!(d>0.0)){j=a+352|0;j=c[j>>2]|0;k=b+52|0;c[k>>2]=j;return}f[(c[b+36>>2]|0)+(e<<1<<2)>>2]=-g;f[(c[b+40>>2]|0)+(e<<1<<2)>>2]=g;j=a+352|0;j=c[j>>2]|0;k=b+52|0;c[k>>2]=j;return}function te(b,d,e,g,h){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0.0,j=0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0,q=0.0,r=0.0,s=0.0,t=0,u=0.0,v=0.0,w=0.0,x=0,y=0.0,z=0.0,A=0,B=0.0,C=0,D=0.0,E=0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0;j=(a[b+28>>0]|0)!=0;C=j?e:d;j=j?d:e;d=c[b+12>>2]|0;if((d|0)<=0){B=1.0;return +B}l=(c[C+192>>2]|0)+24|0;m=+f[C+4>>2];y=+f[C+8>>2];z=+f[C+12>>2];A=c[C+16>>2]|0;B=+f[C+20>>2];n=+f[C+24>>2];o=+f[C+28>>2];p=c[C+32>>2]|0;q=+f[C+36>>2];r=+f[C+40>>2];s=+f[C+44>>2];t=c[C+48>>2]|0;u=+f[C+52>>2];v=+f[C+56>>2];w=+f[C+60>>2];x=c[C+64>>2]|0;e=c[C+260>>2]|0;i=1.0;k=0;do{E=c[l>>2]|0;P=+f[E+(k*80|0)>>2];O=+f[E+(k*80|0)+16>>2];N=+f[E+(k*80|0)+32>>2];M=+f[E+(k*80|0)+4>>2];L=+f[E+(k*80|0)+20>>2];K=+f[E+(k*80|0)+36>>2];J=+f[E+(k*80|0)+8>>2];I=+f[E+(k*80|0)+24>>2];H=+f[E+(k*80|0)+40>>2];G=+f[E+(k*80|0)+48>>2];F=+f[E+(k*80|0)+52>>2];D=+f[E+(k*80|0)+56>>2];c[C+260>>2]=e+1;f[C+4>>2]=m*P+y*O+z*N;f[C+8>>2]=m*M+y*L+z*K;f[C+12>>2]=m*J+y*I+z*H;f[C+16>>2]=0.0;f[C+20>>2]=B*P+n*O+o*N;f[C+24>>2]=B*M+n*L+o*K;f[C+28>>2]=B*J+n*I+o*H;f[C+32>>2]=0.0;f[C+36>>2]=q*P+r*O+s*N;f[C+40>>2]=q*M+r*L+s*K;f[C+44>>2]=q*J+r*I+s*H;f[C+48>>2]=0.0;f[C+52>>2]=u+(m*G+y*F+z*D);f[C+56>>2]=v+(B*G+n*F+o*D);f[C+60>>2]=w+(q*G+r*F+s*D);f[C+64>>2]=0.0;E=c[(c[b+20>>2]|0)+(k<<2)>>2]|0;D=+na[c[(c[E>>2]|0)+12>>2]&15](E,C,j,g,h);i=D>2]|0)+1|0;c[C+260>>2]=e;f[C+4>>2]=m;f[C+8>>2]=y;f[C+12>>2]=z;c[C+16>>2]=A;f[C+20>>2]=B;f[C+24>>2]=n;f[C+28>>2]=o;c[C+32>>2]=p;f[C+36>>2]=q;f[C+40>>2]=r;f[C+44>>2]=s;c[C+48>>2]=t;f[C+52>>2]=u;f[C+56>>2]=v;f[C+60>>2]=w;c[C+64>>2]=x;k=k+1|0}while((k|0)!=(d|0));return +i}function ue(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c[6724]=(c[6724]|0)+1;j=(c[b+12>>2]|0)>(c[d+12>>2]|0);l=j?d:b;h=c[l+12>>2]|0;j=j?b:d;g=c[j+12>>2]|0;i=(g<<16|h)+~((g<<16|h)<<15)|0;i=((10?i>>10:i)^i)*9|0;i=(6?i>>6:i)^i;i=((16?i+~(i<<11)>>16:i+~(i<<11)|0)^i+~(i<<11))&(c[a+12>>2]|0)+-1;b=c[(c[a+44>>2]|0)+(i<<2)>>2]|0;if((b|0)==-1){o=0;return o|0}f=c[a+16>>2]|0;while(1){d=f+(b<<4)|0;if((c[(c[d>>2]|0)+12>>2]|0)==(h|0)?(c[(c[f+(b<<4)+4>>2]|0)+12>>2]|0)==(g|0):0)break;b=c[(c[a+64>>2]|0)+(b<<2)>>2]|0;if((b|0)==-1){b=0;o=25;break}}if((o|0)==25)return b|0;Ma[c[(c[a>>2]|0)+32>>2]&127](a,d,e);n=c[f+(b<<4)+12>>2]|0;m=d-(c[a+16>>2]|0)|0;m=4?m>>4:m;h=(c[a+44>>2]|0)+(i<<2)|0;b=c[h>>2]|0;d=c[a+64>>2]|0;if((b|0)!=(m|0)){g=b;while(1){f=d+(g<<2)|0;b=c[f>>2]|0;if((b|0)==(m|0))break;else g=b}b=c[d+(m<<2)>>2]|0;if((g|0)==-1)o=12;else c[f>>2]=b}else{b=c[d+(m<<2)>>2]|0;o=12}if((o|0)==12)c[h>>2]=b;k=(c[a+8>>2]|0)+-1|0;b=c[a+72>>2]|0;if(b|0)wa[c[(c[b>>2]|0)+12>>2]&31](b,l,j,e)|0;if((k|0)==(m|0)){c[a+8>>2]=(c[a+8>>2]|0)+-1;o=n;return o|0}h=c[a+16>>2]|0;i=c[(c[h+(k<<4)+4>>2]|0)+12>>2]<<16|c[(c[h+(k<<4)>>2]|0)+12>>2];i=((10?i+~(i<<15)>>10:i+~(i<<15)|0)^i+~(i<<15))*9|0;i=(6?i>>6:i)^i;i=((16?i+~(i<<11)>>16:i+~(i<<11)|0)^i+~(i<<11))&(c[a+12>>2]|0)+-1;j=(c[a+44>>2]|0)+(i<<2)|0;b=c[j>>2]|0;d=c[a+64>>2]|0;if((b|0)!=(k|0)){g=b;while(1){f=d+(g<<2)|0;b=c[f>>2]|0;if((b|0)==(k|0))break;else g=b}b=c[d+(k<<2)>>2]|0;if((g|0)==-1)o=23;else c[f>>2]=b}else{b=c[d+(k<<2)>>2]|0;o=23}if((o|0)==23)c[j>>2]=b;c[h+(m<<4)>>2]=c[h+(k<<4)>>2];c[h+(m<<4)+4>>2]=c[h+(k<<4)+4>>2];c[h+(m<<4)+8>>2]=c[h+(k<<4)+8>>2];c[h+(m<<4)+12>>2]=c[h+(k<<4)+12>>2];o=(c[a+44>>2]|0)+(i<<2)|0;c[(c[a+64>>2]|0)+(m<<2)>>2]=c[o>>2];c[o>>2]=m;c[a+8>>2]=(c[a+8>>2]|0)+-1;o=n;return o|0}function ve(b,d){b=b|0;d=d|0;var e=0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0;o=ea;ea=ea+64|0;e=c[d+192>>2]|0;Pa[c[(c[e>>2]|0)+8>>2]&127](e,d+4|0,o+48|0,o+32|0);k=+f[o+48>>2]+-.019999999552965164;f[o+48>>2]=k;l=+f[o+48+4>>2]+-.019999999552965164;f[o+48+4>>2]=l;j=+f[o+48+8>>2]+-.019999999552965164;f[o+48+8>>2]=j;g=+f[o+32>>2]+.019999999552965164;f[o+32>>2]=g;h=+f[o+32+4>>2]+.019999999552965164;f[o+32+4>>2]=h;i=+f[o+32+8>>2]+.019999999552965164;f[o+32+8>>2]=i;if(((a[b+44>>0]|0)!=0?(c[d+236>>2]|0)==2:0)?(c[d+204>>2]&3|0)==0:0){e=c[d+192>>2]|0;Pa[c[(c[e>>2]|0)+8>>2]&127](e,d+68|0,o+16|0,o);k=+f[o+16>>2]+-.019999999552965164;f[o+16>>2]=k;l=+f[o+16+4>>2]+-.019999999552965164;f[o+16+4>>2]=l;h=+f[o+16+8>>2]+-.019999999552965164;f[o+16+8>>2]=h;i=+f[o>>2]+.019999999552965164;f[o>>2]=i;j=+f[o+4>>2]+.019999999552965164;f[o+4>>2]=j;m=+f[o+8>>2]+.019999999552965164;f[o+8>>2]=m;g=+f[o+48>>2];if(k>2]=k;else k=g;g=+f[o+48+4>>2];if(l>2]=l;else l=g;g=+f[o+48+8>>2];if(h>2]=h;n=h}else n=g;g=+f[o+16+12>>2];if(g<+f[o+48+12>>2])f[o+48+12>>2]=g;g=+f[o+32>>2];if(g>2]=i;g=i}h=+f[o+32+4>>2];if(h>2]=j;h=j}i=+f[o+32+8>>2];if(i>2]=m;i=m}j=+f[o+12>>2];if(+f[o+32+12>>2]>2]=j;j=n}e=c[b+68>>2]|0;if((c[d+204>>2]&1|0)==0?(k=g-k,m=h-l,n=i-j,!(k*k+m*m+n*n<999999995904.0)):0){if((c[d+216>>2]&-2|0)!=4)c[d+216>>2]=5;if(!(a[17627]|0)){ea=o;return}e=c[b+72>>2]|0;if(!e){ea=o;return}a[17627]=0;Ia[c[(c[e>>2]|0)+36>>2]&127](e,17628);d=c[b+72>>2]|0;Ia[c[(c[d>>2]|0)+36>>2]&127](d,17677);d=c[b+72>>2]|0;Ia[c[(c[d>>2]|0)+36>>2]&127](d,17745);b=c[b+72>>2]|0;Ia[c[(c[b>>2]|0)+36>>2]&127](b,17810);ea=o;return}Ta[c[(c[e>>2]|0)+16>>2]&31](e,c[d+188>>2]|0,o+48|0,o+32|0,c[b+24>>2]|0);ea=o;return}function we(a,b,e){a=a|0;b=b|0;e=e|0;var g=0.0,h=0.0,i=0.0,j=0;ch(a,b,e)|0;c[b+52>>2]=c[a+552>>2];c[b+56>>2]=c[a+556>>2];c[b+60>>2]=c[a+560>>2];c[b+64>>2]=c[a+564>>2];c[b+68>>2]=c[a+568>>2];c[b+72>>2]=c[a+572>>2];c[b+76>>2]=c[a+576>>2];c[b+80>>2]=c[a+580>>2];c[b+84>>2]=c[a+584>>2];c[b+88>>2]=c[a+588>>2];c[b+92>>2]=c[a+592>>2];c[b+96>>2]=c[a+596>>2];c[b+100>>2]=c[a+600>>2];c[b+104>>2]=c[a+604>>2];c[b+108>>2]=c[a+608>>2];c[b+112>>2]=c[a+612>>2];c[b+116>>2]=c[a+616>>2];c[b+120>>2]=c[a+620>>2];c[b+124>>2]=c[a+624>>2];c[b+128>>2]=c[a+628>>2];c[b+132>>2]=c[a+632>>2];c[b+136>>2]=c[a+636>>2];c[b+140>>2]=c[a+640>>2];c[b+144>>2]=c[a+644>>2];c[b+148>>2]=c[a+648>>2];c[b+152>>2]=c[a+652>>2];c[b+156>>2]=c[a+656>>2];c[b+160>>2]=c[a+660>>2];c[b+164>>2]=c[a+664>>2];c[b+168>>2]=c[a+668>>2];c[b+172>>2]=c[a+672>>2];c[b+176>>2]=c[a+676>>2];c[b+184>>2]=d[a+736>>0];c[b+188>>2]=d[a+737>>0];c[b+196>>2]=c[a+684>>2];c[b+192>>2]=c[a+680>>2];c[b+180>>2]=d[a+740>>0];g=+f[a+688>>2];h=+f[a+692>>2];if(!((g-h)%6.2831854820251465<-3.1415927410125732))if((g-h)%6.2831854820251465>3.1415927410125732)i=(g-h)%6.2831854820251465+-6.2831854820251465;else i=(g-h)%6.2831854820251465;else i=(g-h)%6.2831854820251465+6.2831854820251465;f[b+200>>2]=i;if((g+h)%6.2831854820251465<-3.1415927410125732){i=(g+h)%6.2831854820251465+6.2831854820251465;e=b+204|0;f[e>>2]=i;e=a+696|0;e=c[e>>2]|0;j=b+208|0;c[j>>2]=e;j=a+700|0;j=c[j>>2]|0;e=b+212|0;c[e>>2]=j;e=a+704|0;e=c[e>>2]|0;a=b+216|0;c[a>>2]=e;return 15409}if(!((g+h)%6.2831854820251465>3.1415927410125732)){i=(g+h)%6.2831854820251465;j=b+204|0;f[j>>2]=i;j=a+696|0;j=c[j>>2]|0;e=b+208|0;c[e>>2]=j;e=a+700|0;e=c[e>>2]|0;j=b+212|0;c[j>>2]=e;a=a+704|0;a=c[a>>2]|0;j=b+216|0;c[j>>2]=a;return 15409}i=(g+h)%6.2831854820251465+-6.2831854820251465;j=b+204|0;f[j>>2]=i;j=a+696|0;j=c[j>>2]|0;e=b+208|0;c[e>>2]=j;e=a+700|0;e=c[e>>2]|0;j=b+212|0;c[j>>2]=e;a=a+704|0;a=c[a>>2]|0;j=b+216|0;c[j>>2]=a;return 15409}function xe(b,d,e,g,h){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0;i=Bs()|0;c[i+4>>2]=7;c[i+8>>2]=-1;c[i+12>>2]=-1;f[i+16>>2]=3402823466385288598117041.0e14;a[i+20>>0]=1;a[i+21>>0]=0;c[i+24>>2]=-1;c[i+28>>2]=b;c[i+32>>2]=d;f[i+36>>2]=0.0;f[i+40>>2]=.30000001192092896;c[i+44>>2]=0;c[i>>2]=5712;a[i+48>>0]=0;c[i+52>>2]=c[e>>2];c[i+52+4>>2]=c[e+4>>2];c[i+52+8>>2]=c[e+8>>2];c[i+52+12>>2]=c[e+12>>2];c[i+68>>2]=c[e+16>>2];c[i+68+4>>2]=c[e+16+4>>2];c[i+68+8>>2]=c[e+16+8>>2];c[i+68+12>>2]=c[e+16+12>>2];c[i+84>>2]=c[e+32>>2];c[i+84+4>>2]=c[e+32+4>>2];c[i+84+8>>2]=c[e+32+8>>2];c[i+84+12>>2]=c[e+32+12>>2];c[i+100>>2]=c[e+48>>2];c[i+100+4>>2]=c[e+48+4>>2];c[i+100+8>>2]=c[e+48+8>>2];c[i+100+12>>2]=c[e+48+12>>2];c[i+116>>2]=c[g>>2];c[i+116+4>>2]=c[g+4>>2];c[i+116+8>>2]=c[g+8>>2];c[i+116+12>>2]=c[g+12>>2];c[i+132>>2]=c[g+16>>2];c[i+132+4>>2]=c[g+16+4>>2];c[i+132+8>>2]=c[g+16+8>>2];c[i+132+12>>2]=c[g+16+12>>2];c[i+148>>2]=c[g+32>>2];c[i+148+4>>2]=c[g+32+4>>2];c[i+148+8>>2]=c[g+32+8>>2];c[i+148+12>>2]=c[g+32+12>>2];c[i+164>>2]=c[g+48>>2];c[i+164+4>>2]=c[g+48+4>>2];c[i+164+8>>2]=c[g+48+8>>2];c[i+164+12>>2]=c[g+48+12>>2];a[i+180>>0]=h&1;f[i+184>>2]=1.0;f[i+188>>2]=-1.0;f[i+192>>2]=0.0;f[i+196>>2]=0.0;f[i+200>>2]=1.0;f[i+204>>2]=.699999988079071;f[i+208>>2]=0.0;f[i+212>>2]=0.0;f[i+216>>2]=1.0;f[i+220>>2]=.699999988079071;f[i+224>>2]=0.0;f[i+228>>2]=0.0;f[i+264>>2]=1.0;f[i+268>>2]=.699999988079071;f[i+272>>2]=1.0;f[i+276>>2]=0.0;f[i+280>>2]=1.0;f[i+284>>2]=.699999988079071;f[i+288>>2]=1.0;f[i+292>>2]=0.0;f[i+232>>2]=1.0;f[i+236>>2]=.699999988079071;f[i+240>>2]=1.0;f[i+244>>2]=0.0;f[i+248>>2]=1.0;f[i+252>>2]=.699999988079071;f[i+256>>2]=1.0;f[i+260>>2]=0.0;a[i+1096>>0]=0;f[i+1116>>2]=0.0;f[i+1120>>2]=0.0;f[i+1124>>2]=0.0;c[i+300>>2]=0;c[i+1100>>2]=0;c[i+1100+4>>2]=0;c[i+1100+8>>2]=0;a[i+1100+12>>0]=0;a[i+49>>0]=1;Zb(i,(c[i+28>>2]|0)+4|0,(c[i+32>>2]|0)+4|0);return i|0}function ye(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=ea;ea=ea+32|0;a[o+16>>0]=1;c[o+12>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;if((c[b+8>>2]|0)>0){g=0;f=0;e=0;h=0;m=0;do{k=c[b+16>>2]|0;l=k+(m<<4)|0;if((g|0)==(f|0)){j=(f|0)==0?1:f<<1;if((f|0)<(j|0)){if(j){c[6747]=(c[6747]|0)+1;e=kb((j<<4|3)+16|0)|0;if(!e){f=g;h=0}else{c[(e+4+15&-16)+-4>>2]=e;f=g;h=e+4+15&-16}}else h=0;if((f|0)>0){e=0;do{i=c[o+12>>2]|0;c[h+(e<<4)>>2]=c[i+(e<<4)>>2];c[h+(e<<4)+4>>2]=c[i+(e<<4)+4>>2];c[h+(e<<4)+8>>2]=c[i+(e<<4)+8>>2];c[h+(e<<4)+12>>2]=c[i+(e<<4)+12>>2];e=e+1|0}while((e|0)!=(f|0))}e=c[o+12>>2]|0;if(!e)g=f;else{if(!(a[o+16>>0]|0))g=f;else{c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0)}c[o+12>>2]=0}a[o+16>>0]=1;c[o+12>>2]=h;e=h;i=g;f=j;h=j}else i=f}else i=g;c[e+(i<<4)>>2]=c[l>>2];c[e+(i<<4)+4>>2]=c[k+(m<<4)+4>>2];c[e+(i<<4)+8>>2]=c[k+(m<<4)+8>>2];c[e+(i<<4)+12>>2]=c[k+(m<<4)+12>>2];g=i+1|0;m=m+1|0}while((m|0)<(c[b+8>>2]|0));c[o+4>>2]=g;c[o+8>>2]=h;if((i|0)>-1){e=c[o+12>>2]|0;f=0;while(1){wa[c[(c[b>>2]|0)+12>>2]&31](b,c[e+(f<<4)>>2]|0,c[e+(f<<4)+4>>2]|0,d)|0;if((f|0)<(i|0))f=f+1|0;else break}}}else g=0;if((c[b+56>>2]|0)>0){e=c[b+64>>2]|0;f=0;do{c[e+(f<<2)>>2]=-1;f=f+1|0}while((f|0)<(c[b+56>>2]|0))}if((g|0)<=1)if((g|0)<=0){e=c[o+12>>2]|0;if(!e){ea=o;return}}else n=26;else{qd(o,0,g+-1|0);n=26}if((n|0)==26){e=c[o+12>>2]|0;f=0;do{va[c[(c[b>>2]|0)+8>>2]&63](b,c[e+(f<<4)>>2]|0,c[e+(f<<4)+4>>2]|0)|0;f=f+1|0}while((f|0)<(g|0))}c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0);c[o+12>>2]=0;ea=o;return}function ze(b,d,e){b=b|0;d=d|0;e=e|0;var g=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0.0;c[6721]=(c[6721]|0)+1;if(!(c[b+4>>2]&2))j=.019999999552965164;else{k=c[d+192>>2]|0;i=+ia[c[(c[k>>2]|0)+20>>2]&1](k,.019999999552965164);k=c[e+192>>2]|0;j=+ia[c[(c[k>>2]|0)+20>>2]&1](k,.019999999552965164);j=i>2];i=+f[e+184>>2];i=m>2]|0;h=c[g+8>>2]|0;if(!h){if(c[b+4>>2]&4|0){b=0;return b|0}c[6747]=(c[6747]|0)+1;g=kb(791)|0;if(!g)g=0;else{c[(g+4+15&-16)+-4>>2]=g;g=g+4+15&-16}h=g;k=g}else{k=c[g+12>>2]|0;c[g+12>>2]=c[k>>2];c[g+8>>2]=h+-1;h=k}c[h>>2]=1025;c[k+116>>2]=0;a[k+120>>0]=0;g=k+124|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;c[g+16>>2]=0;c[g+20>>2]=0;c[g+24>>2]=0;c[g+28>>2]=0;c[k+300>>2]=0;a[k+304>>0]=0;g=k+308|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;c[g+16>>2]=0;c[g+20>>2]=0;c[g+24>>2]=0;c[g+28>>2]=0;c[k+484>>2]=0;a[k+488>>0]=0;g=k+492|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;c[g+16>>2]=0;c[g+20>>2]=0;c[g+24>>2]=0;c[g+28>>2]=0;c[k+668>>2]=0;a[k+672>>0]=0;g=k+676|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;c[g+16>>2]=0;c[g+20>>2]=0;c[g+24>>2]=0;c[g+28>>2]=0;c[k+740>>2]=d;c[k+744>>2]=e;c[k+748>>2]=0;f[k+752>>2]=j;f[k+756>>2]=i;e=k;g=c[b+12>>2]|0;c[k+768>>2]=g;if((g|0)==(c[b+16>>2]|0)?(l=(g|0)==0?1:g<<1,(g|0)<(l|0)):0){if(!l)h=0;else{c[6747]=(c[6747]|0)+1;g=kb((l<<2|3)+16|0)|0;if(!g)h=0;else{c[(g+4+15&-16)+-4>>2]=g;h=g+4+15&-16}g=c[b+12>>2]|0}if((g|0)>0){d=0;do{c[h+(d<<2)>>2]=c[(c[b+20>>2]|0)+(d<<2)>>2];d=d+1|0}while((d|0)!=(g|0))}d=c[b+20>>2]|0;if(d){if(a[b+24>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0);g=c[b+12>>2]|0}c[b+20>>2]=0}a[b+24>>0]=1;c[b+20>>2]=h;c[b+16>>2]=l}c[(c[b+20>>2]|0)+(g<<2)>>2]=e;c[b+12>>2]=g+1;b=k;return b|0}function Ae(b,d,e,g,h){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0;i=js(460)|0;Yc(i,b,d,e);c[i>>2]=4936;a[i+340>>0]=1;c[i+336>>2]=0;c[i+328>>2]=0;c[i+332>>2]=0;f[i+352>>2]=1.2000000476837158;f[i+356>>2]=0.0;f[i+360>>2]=0.0;f[i+364>>2]=1.0e3;c[i+368>>2]=0;c[i+368+4>>2]=0;c[i+368+8>>2]=0;c[i+368+12>>2]=0;c[i+368+16>>2]=0;c[i+368+20>>2]=0;c[i+368+24>>2]=0;c[i+396>>2]=-1054867456;c[i+400>>2]=0;f[i+404>>2]=0.0;a[i+424>>0]=1;c[i+420>>2]=0;c[i+412>>2]=0;c[i+416>>2]=0;c[i+452>>2]=h;a[i+456>>0]=0;if(!h){c[6747]=(c[6747]|0)+1;g=kb(59)|0;if(!g)g=0;else{c[(g+4+15&-16)+-4>>2]=g;g=g+4+15&-16}f[g+12>>2]=1.0;c[g+8>>2]=0;c[g+4>>2]=5;c[g>>2]=4060;a[g+36>>0]=1;c[g+32>>2]=0;c[g+24>>2]=0;c[g+28>>2]=0;a[g+16>>0]=1;c[i+452>>2]=g;a[i+456>>0]=1}c[i+344>>2]=4302;a[i+348>>0]=1;a[i+349>>0]=0;a[i+350>>0]=0;c[i+384>>2]=d;c[i+388>>2]=b;Ih(i+408|0);e=c[i+412>>2]|0;if((e|0)<=0){d=i+428|0;f[d>>2]=.25;d=i+432|0;c[d>>2]=0;d=i+436|0;c[d>>2]=0;d=i+444|0;c[d>>2]=1;d=i+448|0;c[d>>2]=1;f[i+352>>2]=1.2000000476837158;f[i+356>>2]=0.0;f[i+360>>2]=0.0;d=i+392|0;c[d>>2]=0;c[i+368>>2]=0;c[i+368+4>>2]=0;c[i+368+8>>2]=0;c[i+368+12>>2]=0;c[i+396>>2]=-1054867456;c[i+400>>2]=0;f[i+404>>2]=0.0;Ih(i+408|0);return i|0}h=0;do{d=(c[i+420>>2]|0)+(h<<2)|0;g=c[d>>2]|0;c[d>>2]=0;if(g|0)do{d=g;g=c[g+280>>2]|0;LJ(d)}while((g|0)!=0);h=h+1|0}while((h|0)!=(e|0));d=i+428|0;f[d>>2]=.25;d=i+432|0;c[d>>2]=0;d=i+436|0;c[d>>2]=0;d=i+444|0;c[d>>2]=1;d=i+448|0;c[d>>2]=1;f[i+352>>2]=1.2000000476837158;f[i+356>>2]=0.0;f[i+360>>2]=0.0;d=i+392|0;c[d>>2]=0;c[i+368>>2]=0;c[i+368+4>>2]=0;c[i+368+8>>2]=0;c[i+368+12>>2]=0;c[i+396>>2]=-1054867456;c[i+400>>2]=0;f[i+404>>2]=0.0;Ih(i+408|0);return i|0}function Be(a,b,e){a=a|0;b=b|0;e=e|0;ch(a,b,e)|0;c[b+52>>2]=c[a+48>>2];c[b+56>>2]=c[a+52>>2];c[b+60>>2]=c[a+56>>2];c[b+64>>2]=c[a+60>>2];c[b+68>>2]=c[a+64>>2];c[b+72>>2]=c[a+68>>2];c[b+76>>2]=c[a+72>>2];c[b+80>>2]=c[a+76>>2];c[b+84>>2]=c[a+80>>2];c[b+88>>2]=c[a+84>>2];c[b+92>>2]=c[a+88>>2];c[b+96>>2]=c[a+92>>2];c[b+100>>2]=c[a+96>>2];c[b+104>>2]=c[a+100>>2];c[b+108>>2]=c[a+104>>2];c[b+112>>2]=c[a+108>>2];c[b+116>>2]=c[a+112>>2];c[b+120>>2]=c[a+116>>2];c[b+124>>2]=c[a+120>>2];c[b+128>>2]=c[a+124>>2];c[b+132>>2]=c[a+128>>2];c[b+136>>2]=c[a+132>>2];c[b+140>>2]=c[a+136>>2];c[b+144>>2]=c[a+140>>2];c[b+148>>2]=c[a+144>>2];c[b+152>>2]=c[a+148>>2];c[b+156>>2]=c[a+152>>2];c[b+160>>2]=c[a+156>>2];c[b+164>>2]=c[a+160>>2];c[b+168>>2]=c[a+164>>2];c[b+172>>2]=c[a+168>>2];c[b+176>>2]=c[a+172>>2];c[b+228>>2]=c[a+868>>2];c[b+212>>2]=c[a+872>>2];c[b+196>>2]=c[a+680>>2];c[b+180>>2]=c[a+696>>2];c[b+232>>2]=c[a+932>>2];c[b+216>>2]=c[a+936>>2];c[b+200>>2]=c[a+684>>2];c[b+184>>2]=c[a+700>>2];c[b+236>>2]=c[a+996>>2];c[b+220>>2]=c[a+1e3>>2];c[b+204>>2]=c[a+688>>2];c[b+188>>2]=c[a+704>>2];c[b+244>>2]=d[a+1300>>0];c[b+248>>2]=d[a+1301>>0];c[b+276>>2]=c[a+1316>>2];c[b+324>>2]=c[a+1364>>2];c[b+252>>2]=d[a+1309>>0];c[b+300>>2]=c[a+1340>>2];c[b+280>>2]=c[a+1320>>2];c[b+328>>2]=c[a+1368>>2];c[b+256>>2]=d[a+1310>>0];c[b+304>>2]=c[a+1344>>2];c[b+284>>2]=c[a+1324>>2];c[b+332>>2]=c[a+1372>>2];c[b+260>>2]=d[a+1311>>0];c[b+308>>2]=c[a+1348>>2];c[b+288>>2]=c[a+1328>>2];c[b+336>>2]=c[a+1376>>2];c[b+264>>2]=d[a+1312>>0];c[b+312>>2]=c[a+1352>>2];c[b+292>>2]=c[a+1332>>2];c[b+340>>2]=c[a+1380>>2];c[b+268>>2]=d[a+1313>>0];c[b+316>>2]=c[a+1356>>2];c[b+296>>2]=c[a+1336>>2];c[b+344>>2]=c[a+1384>>2];c[b+272>>2]=d[a+1314>>0];c[b+320>>2]=c[a+1360>>2];return 15127}function Ce(a,b,d){a=a|0;b=b|0;d=+d;var e=0.0,g=0.0,h=0.0,i=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0;i=ea;ea=ea+32|0;k=+f[a+56>>2];p=+f[a+72>>2]-k;j=+f[a+60>>2];n=+f[a+76>>2]-j;l=+f[a+64>>2];q=+f[a+80>>2]-l;m=+f[a+88>>2]-k;o=+f[a+92>>2]-j;g=+f[a+96>>2]-l;h=1.0/+s(+((p*o-n*m)*(p*o-n*m)+((n*g-q*o)*(n*g-q*o)+(q*m-p*g)*(q*m-p*g))));e=(n*g-q*o)*h;g=(q*m-p*g)*h;h=(p*o-n*m)*h;j=+f[b+8>>2]*h+(+f[b>>2]*e+ +f[b+4>>2]*g)-(l*h+(k*e+j*g));if(!(j>=-d)|!(j<=d)){a=0;ea=i;return a|0}Pa[c[(c[a>>2]|0)+104>>2]&127](a,0,i+16|0,i);l=+f[i+16>>2];p=+f[i>>2]-l;n=+f[i+16+4>>2];m=+f[i+4>>2]-n;k=+f[i+16+8>>2];o=+f[i+8>>2]-k;q=1.0/+s(+((g*p-e*m)*(g*p-e*m)+((h*m-g*o)*(h*m-g*o)+(e*o-h*p)*(e*o-h*p))));if(+f[b+8>>2]*((g*p-e*m)*q)+(+f[b>>2]*((h*m-g*o)*q)+ +f[b+4>>2]*((e*o-h*p)*q))-(k*((g*p-e*m)*q)+(l*((h*m-g*o)*q)+n*((e*o-h*p)*q)))<-d){a=0;ea=i;return a|0}Pa[c[(c[a>>2]|0)+104>>2]&127](a,1,i+16|0,i);l=+f[i+16>>2];p=+f[i>>2]-l;n=+f[i+16+4>>2];m=+f[i+4>>2]-n;k=+f[i+16+8>>2];o=+f[i+8>>2]-k;q=1.0/+s(+((g*p-e*m)*(g*p-e*m)+((h*m-g*o)*(h*m-g*o)+(e*o-h*p)*(e*o-h*p))));if(+f[b+8>>2]*((g*p-e*m)*q)+(+f[b>>2]*((h*m-g*o)*q)+ +f[b+4>>2]*((e*o-h*p)*q))-(k*((g*p-e*m)*q)+(l*((h*m-g*o)*q)+n*((e*o-h*p)*q)))<-d){a=0;ea=i;return a|0}Pa[c[(c[a>>2]|0)+104>>2]&127](a,2,i+16|0,i);l=+f[i+16>>2];p=+f[i>>2]-l;n=+f[i+16+4>>2];m=+f[i+4>>2]-n;k=+f[i+16+8>>2];o=+f[i+8>>2]-k;q=1.0/+s(+((g*p-e*m)*(g*p-e*m)+((h*m-g*o)*(h*m-g*o)+(e*o-h*p)*(e*o-h*p))));if(+f[b+8>>2]*((g*p-e*m)*q)+(+f[b>>2]*((h*m-g*o)*q)+ +f[b+4>>2]*((e*o-h*p)*q))-(k*((g*p-e*m)*q)+(l*((h*m-g*o)*q)+n*((e*o-h*p)*q)))<-d){a=0;ea=i;return a|0}a=1;ea=i;return a|0}function De(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;i=c[b+4>>2]|0;if((i|0)==(c[b+8>>2]|0)?(h=(i|0)==0?1:i<<1,(i|0)<(h|0)):0){if(!h){f=i;g=0}else{c[6747]=(c[6747]|0)+1;e=kb((h*244|3)+16|0)|0;if(!e)e=0;else{c[(e+4+15&-16)+-4>>2]=e;e=e+4+15&-16}f=c[b+4>>2]|0;g=e}if((f|0)>0){e=0;do{k=g+(e*244|0)|0;j=c[b+12>>2]|0;l=j+(e*244|0)|0;c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];k=j+(e*244|0)+16|0;l=g+(e*244|0)+16|0;c[l>>2]=c[k>>2];c[l+4>>2]=c[k+4>>2];c[l+8>>2]=c[k+8>>2];c[l+12>>2]=c[k+12>>2];l=j+(e*244|0)+32|0;k=g+(e*244|0)+32|0;c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];k=g+(e*244|0)+48|0;l=j+(e*244|0)+48|0;c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];vh(g+(e*244|0)+64|0,j+(e*244|0)+64|0,180)|0;e=e+1|0}while((e|0)!=(f|0))}e=c[b+12>>2]|0;if(e|0){if(a[b+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0)}c[b+12>>2]=0}a[b+16>>0]=1;c[b+12>>2]=g;c[b+8>>2]=h;e=c[b+4>>2]|0}else e=i;c[b+4>>2]=e+1;l=c[b+12>>2]|0;c[l+(i*244|0)>>2]=c[d>>2];c[l+(i*244|0)+4>>2]=c[d+4>>2];c[l+(i*244|0)+8>>2]=c[d+8>>2];c[l+(i*244|0)+12>>2]=c[d+12>>2];c[l+(i*244|0)+16>>2]=c[d+16>>2];c[l+(i*244|0)+16+4>>2]=c[d+16+4>>2];c[l+(i*244|0)+16+8>>2]=c[d+16+8>>2];c[l+(i*244|0)+16+12>>2]=c[d+16+12>>2];c[l+(i*244|0)+32>>2]=c[d+32>>2];c[l+(i*244|0)+32+4>>2]=c[d+32+4>>2];c[l+(i*244|0)+32+8>>2]=c[d+32+8>>2];c[l+(i*244|0)+32+12>>2]=c[d+32+12>>2];c[l+(i*244|0)+48>>2]=c[d+48>>2];c[l+(i*244|0)+48+4>>2]=c[d+48+4>>2];c[l+(i*244|0)+48+8>>2]=c[d+48+8>>2];c[l+(i*244|0)+48+12>>2]=c[d+48+12>>2];vh(l+(i*244|0)+64|0,d+64|0,180)|0;return (c[b+12>>2]|0)+(i*244|0)|0}function Ee(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0.0,h=0.0,i=0.0,j=0.0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,t=0.0,u=0.0,v=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0;k=ea;ea=ea+64|0;m=+f[a+20>>2];u=+f[a+40>>2];o=+f[a+24>>2];r=+f[a+36>>2];t=+f[a+32>>2];l=+f[a+16>>2];j=+f[a>>2];i=+f[a+4>>2];p=+f[a+8>>2];h=1.0/((m*u-o*r)*j+i*(o*t-u*l)+(r*l-m*t)*p);A=+f[b>>2];z=+f[b+4>>2];B=+f[b+8>>2];y=+f[b+16>>2];x=+f[b+20>>2];v=+f[b+24>>2];q=+f[b+32>>2];n=+f[b+36>>2];g=+f[b+40>>2];f[k+16>>2]=B*((r*l-m*t)*h)+(A*((m*u-o*r)*h)+z*((o*t-u*l)*h));f[k+16+4>>2]=B*((t*i-r*j)*h)+(A*((r*p-u*i)*h)+z*((u*j-t*p)*h));f[k+16+8>>2]=B*((m*j-l*i)*h)+(A*((o*i-m*p)*h)+z*((l*p-o*j)*h));f[k+16+12>>2]=0.0;f[k+16+16>>2]=(m*u-o*r)*h*y+(o*t-u*l)*h*x+(r*l-m*t)*h*v;f[k+16+20>>2]=(r*p-u*i)*h*y+(u*j-t*p)*h*x+(t*i-r*j)*h*v;f[k+16+24>>2]=(o*i-m*p)*h*y+(l*p-o*j)*h*x+(m*j-l*i)*h*v;f[k+16+28>>2]=0.0;f[k+16+32>>2]=(m*u-o*r)*h*q+(o*t-u*l)*h*n+(r*l-m*t)*h*g;f[k+16+36>>2]=(r*p-u*i)*h*q+(u*j-t*p)*h*n+(t*i-r*j)*h*g;f[k+16+40>>2]=(o*i-m*p)*h*q+(l*p-o*j)*h*n+(m*j-l*i)*h*g;f[k+16+44>>2]=0.0;Gg(k+16|0,k);g=+f[k>>2];h=+f[k+4>>2];i=+f[k+8>>2];l=+f[k+12>>2];j=1.0/+s(+(g*g+h*h+i*i+l*l));f[k>>2]=g*j;f[k+4>>2]=h*j;f[k+8>>2]=i*j;f[k+12>>2]=l*j;l=l*j<-1.0?-1.0:l*j;f[e>>2]=+w(+(l>1.0?1.0:l))*2.0;f[d>>2]=g*j;f[d+4>>2]=h*j;f[d+8>>2]=i*j;f[d+12>>2]=0.0;if(g*j*(g*j)+h*j*(h*j)+i*j*(i*j)<1.4210854715202004e-14){c[d>>2]=1065353216;c[d+4>>2]=0;c[d+8>>2]=0;f[d+12>>2]=0.0;ea=k;return}else{B=1.0/+s(+(g*j*(g*j)+h*j*(h*j)+i*j*(i*j)));f[d>>2]=g*j*B;f[d+4>>2]=h*j*B;f[d+8>>2]=i*j*B;ea=k;return}}function Fe(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=c[b+12>>2]|0;k=c[b+36>>2]|0;if((k|0)>=(j|0))return;do if((c[b+40>>2]|0)<(j|0)){if(!j){g=k;d=0}else{c[6747]=(c[6747]|0)+1;d=kb((j<<2|3)+16|0)|0;if(!d)d=0;else{c[(d+4+15&-16)+-4>>2]=d;d=d+4+15&-16}g=c[b+36>>2]|0}e=c[b+44>>2]|0;if((g|0)<=0){if(!e){a[b+48>>0]=1;c[b+44>>2]=d;c[b+40>>2]=j;i=b+44|0;break}}else{f=0;do{c[d+(f<<2)>>2]=c[e+(f<<2)>>2];f=f+1|0}while((f|0)!=(g|0))}if(a[b+48>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0)}a[b+48>>0]=1;c[b+44>>2]=d;c[b+40>>2]=j;i=b+44|0}else{d=c[b+44>>2]|0;i=b+44|0}while(0);hk(d+(k<<2)|0,0,(j<<2)-(k<<2)|0)|0;c[b+36>>2]=j;h=c[b+56>>2]|0;if((h|0)<(j|0)){do if((c[b+60>>2]|0)<(j|0)){if(!j){g=h;d=0}else{c[6747]=(c[6747]|0)+1;d=kb((j<<2|3)+16|0)|0;if(!d)d=0;else{c[(d+4+15&-16)+-4>>2]=d;d=d+4+15&-16}g=c[b+56>>2]|0}e=c[b+64>>2]|0;if((g|0)<=0){if(!e){a[b+68>>0]=1;c[b+64>>2]=d;c[b+60>>2]=j;break}}else{f=0;do{c[d+(f<<2)>>2]=c[e+(f<<2)>>2];f=f+1|0}while((f|0)!=(g|0))}if(a[b+68>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0)}a[b+68>>0]=1;c[b+64>>2]=d;c[b+60>>2]=j}else d=c[b+64>>2]|0;while(0);hk(d+(h<<2)|0,0,(j<<2)-(h<<2)|0)|0}c[b+56>>2]=j;if((j|0)>0){hk(c[i>>2]|0,-1,j<<2|0)|0;hk(c[b+64>>2]|0,-1,j<<2|0)|0}if((k|0)<=0)return;g=c[b+16>>2]|0;d=c[i>>2]|0;e=c[b+64>>2]|0;f=0;do{j=c[(c[g+(f<<4)+4>>2]|0)+12>>2]<<16|c[(c[g+(f<<4)>>2]|0)+12>>2];j=((10?j+~(j<<15)>>10:j+~(j<<15)|0)^j+~(j<<15))*9|0;j=(6?j>>6:j)^j;j=d+((((16?j+~(j<<11)>>16:j+~(j<<11)|0)^j+~(j<<11))&(c[b+12>>2]|0)+-1)<<2)|0;c[e+(f<<2)>>2]=c[j>>2];c[j>>2]=f;f=f+1|0}while((f|0)!=(k|0));return}function Ge(b,d,e){b=b|0;d=d|0;e=e|0;var g=0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0;g=Hs()|0;c[g+4>>2]=4;c[g>>2]=5660;c[g+8>>2]=-1;c[g+12>>2]=-1;f[g+16>>2]=3402823466385288598117041.0e14;a[g+20>>0]=1;a[g+21>>0]=0;c[g+24>>2]=-1;c[g+28>>2]=b;Jk();c[g+32>>2]=25640;f[g+36>>2]=0.0;f[g+40>>2]=.30000001192092896;c[g+44>>2]=0;c[g>>2]=5820;c[g+552>>2]=c[d>>2];c[g+552+4>>2]=c[d+4>>2];c[g+552+8>>2]=c[d+8>>2];c[g+552+12>>2]=c[d+12>>2];c[g+568>>2]=c[d+16>>2];c[g+568+4>>2]=c[d+16+4>>2];c[g+568+8>>2]=c[d+16+8>>2];c[g+568+12>>2]=c[d+16+12>>2];c[g+584>>2]=c[d+32>>2];c[g+584+4>>2]=c[d+32+4>>2];c[g+584+8>>2]=c[d+32+8>>2];c[g+584+12>>2]=c[d+32+12>>2];c[g+600>>2]=c[d+48>>2];c[g+600+4>>2]=c[d+48+4>>2];c[g+600+8>>2]=c[d+48+8>>2];c[g+600+12>>2]=c[d+48+12>>2];c[g+616>>2]=c[d>>2];c[g+616+4>>2]=c[d+4>>2];c[g+616+8>>2]=c[d+8>>2];c[g+616+12>>2]=c[d+12>>2];c[g+632>>2]=c[d+16>>2];c[g+632+4>>2]=c[d+16+4>>2];c[g+632+8>>2]=c[d+16+8>>2];c[g+632+12>>2]=c[d+16+12>>2];c[g+648>>2]=c[d+32>>2];c[g+648+4>>2]=c[d+32+4>>2];c[g+648+8>>2]=c[d+32+8>>2];c[g+648+12>>2]=c[d+32+12>>2];c[g+664>>2]=c[d+48>>2];c[g+664+4>>2]=c[d+48+4>>2];c[g+664+8>>2]=c[d+48+8>>2];c[g+664+12>>2]=c[d+48+12>>2];f[g+688>>2]=0.0;f[g+692>>2]=-1.0;f[g+696>>2]=.8999999761581421;f[g+700>>2]=.30000001192092896;f[g+704>>2]=1.0;f[g+708>>2]=0.0;f[g+712>>2]=0.0;a[g+716>>0]=0;a[g+736>>0]=0;a[g+737>>0]=0;a[g+738>>0]=0;a[g+739>>0]=1;a[g+740>>0]=e&1;c[g+748>>2]=0;d=c[g+28>>2]|0;l=+f[g+600>>2];k=+f[g+604>>2];j=+f[g+608>>2];i=l*+f[d+20>>2]+k*+f[d+24>>2]+j*+f[d+28>>2]+ +f[d+56>>2];h=l*+f[d+36>>2]+k*+f[d+40>>2]+j*+f[d+44>>2]+ +f[d+60>>2];f[g+664>>2]=l*+f[d+4>>2]+k*+f[d+8>>2]+j*+f[d+12>>2]+ +f[d+52>>2];f[g+668>>2]=i;f[g+672>>2]=h;f[g+676>>2]=0.0;f[g+732>>2]=e?-1.0:1.0;return g|0}function He(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=c[b+12>>2]|0;k=c[b+32>>2]|0;if((k|0)>=(j|0))return;do if((c[b+36>>2]|0)<(j|0)){if(!j){g=k;d=0}else{c[6747]=(c[6747]|0)+1;d=kb((j<<2|3)+16|0)|0;if(!d)d=0;else{c[(d+4+15&-16)+-4>>2]=d;d=d+4+15&-16}g=c[b+32>>2]|0}e=c[b+40>>2]|0;if((g|0)<=0){if(!e){a[b+44>>0]=1;c[b+40>>2]=d;c[b+36>>2]=j;i=b+40|0;break}}else{f=0;do{c[d+(f<<2)>>2]=c[e+(f<<2)>>2];f=f+1|0}while((f|0)!=(g|0))}if(a[b+44>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0)}a[b+44>>0]=1;c[b+40>>2]=d;c[b+36>>2]=j;i=b+40|0}else{d=c[b+40>>2]|0;i=b+40|0}while(0);hk(d+(k<<2)|0,0,(j<<2)-(k<<2)|0)|0;c[b+32>>2]=j;h=c[b+52>>2]|0;if((h|0)<(j|0)){do if((c[b+56>>2]|0)<(j|0)){if(!j){g=h;d=0}else{c[6747]=(c[6747]|0)+1;d=kb((j<<2|3)+16|0)|0;if(!d)d=0;else{c[(d+4+15&-16)+-4>>2]=d;d=d+4+15&-16}g=c[b+52>>2]|0}e=c[b+60>>2]|0;if((g|0)<=0){if(!e){a[b+64>>0]=1;c[b+60>>2]=d;c[b+56>>2]=j;break}}else{f=0;do{c[d+(f<<2)>>2]=c[e+(f<<2)>>2];f=f+1|0}while((f|0)!=(g|0))}if(a[b+64>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0)}a[b+64>>0]=1;c[b+60>>2]=d;c[b+56>>2]=j}else d=c[b+60>>2]|0;while(0);hk(d+(h<<2)|0,0,(j<<2)-(h<<2)|0)|0}c[b+52>>2]=j;if((j|0)>0){hk(c[i>>2]|0,-1,j<<2|0)|0;hk(c[b+60>>2]|0,-1,j<<2|0)|0}if((k|0)<=0)return;g=c[b+16>>2]|0;d=c[i>>2]|0;e=c[b+60>>2]|0;f=0;do{j=c[g+(f*12|0)+4>>2]<<16|c[g+(f*12|0)>>2];j=((10?j+~(j<<15)>>10:j+~(j<<15)|0)^j+~(j<<15))*9|0;j=(6?j>>6:j)^j;j=d+((((16?j+~(j<<11)>>16:j+~(j<<11)|0)^j+~(j<<11))&(c[b+12>>2]|0)+-1)<<2)|0;c[e+(f<<2)>>2]=c[j>>2];c[j>>2]=f;f=f+1|0}while((f|0)!=(k|0));return}function Ie(b,d){b=b|0;d=d|0;var e=0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0;e=Hs()|0;c[e+4>>2]=4;c[e>>2]=5660;c[e+8>>2]=-1;c[e+12>>2]=-1;f[e+16>>2]=3402823466385288598117041.0e14;a[e+20>>0]=1;a[e+21>>0]=0;c[e+24>>2]=-1;c[e+28>>2]=b;Jk();c[e+32>>2]=25640;f[e+36>>2]=0.0;f[e+40>>2]=.30000001192092896;c[e+44>>2]=0;c[e>>2]=5820;c[e+552>>2]=c[d>>2];c[e+552+4>>2]=c[d+4>>2];c[e+552+8>>2]=c[d+8>>2];c[e+552+12>>2]=c[d+12>>2];c[e+568>>2]=c[d+16>>2];c[e+568+4>>2]=c[d+16+4>>2];c[e+568+8>>2]=c[d+16+8>>2];c[e+568+12>>2]=c[d+16+12>>2];c[e+584>>2]=c[d+32>>2];c[e+584+4>>2]=c[d+32+4>>2];c[e+584+8>>2]=c[d+32+8>>2];c[e+584+12>>2]=c[d+32+12>>2];c[e+600>>2]=c[d+48>>2];c[e+600+4>>2]=c[d+48+4>>2];c[e+600+8>>2]=c[d+48+8>>2];c[e+600+12>>2]=c[d+48+12>>2];c[e+616>>2]=c[d>>2];c[e+616+4>>2]=c[d+4>>2];c[e+616+8>>2]=c[d+8>>2];c[e+616+12>>2]=c[d+12>>2];c[e+632>>2]=c[d+16>>2];c[e+632+4>>2]=c[d+16+4>>2];c[e+632+8>>2]=c[d+16+8>>2];c[e+632+12>>2]=c[d+16+12>>2];c[e+648>>2]=c[d+32>>2];c[e+648+4>>2]=c[d+32+4>>2];c[e+648+8>>2]=c[d+32+8>>2];c[e+648+12>>2]=c[d+32+12>>2];c[e+664>>2]=c[d+48>>2];c[e+664+4>>2]=c[d+48+4>>2];c[e+664+8>>2]=c[d+48+8>>2];c[e+664+12>>2]=c[d+48+12>>2];f[e+688>>2]=0.0;f[e+692>>2]=-1.0;f[e+696>>2]=.8999999761581421;f[e+700>>2]=.30000001192092896;f[e+704>>2]=1.0;f[e+708>>2]=0.0;f[e+712>>2]=0.0;a[e+716>>0]=0;a[e+736>>0]=0;a[e+737>>0]=0;a[e+738>>0]=0;a[e+739>>0]=1;a[e+740>>0]=0;c[e+748>>2]=0;d=c[e+28>>2]|0;k=+f[e+600>>2];j=+f[e+604>>2];i=+f[e+608>>2];h=k*+f[d+20>>2]+j*+f[d+24>>2]+i*+f[d+28>>2]+ +f[d+56>>2];g=k*+f[d+36>>2]+j*+f[d+40>>2]+i*+f[d+44>>2]+ +f[d+60>>2];f[e+664>>2]=k*+f[d+4>>2]+j*+f[d+8>>2]+i*+f[d+12>>2]+ +f[d+52>>2];f[e+668>>2]=h;f[e+672>>2]=g;f[e+676>>2]=0.0;f[e+732>>2]=1.0;return e|0}function Je(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=ea;ea=ea+384|0;h=c[(c[a>>2]|0)+8>>2]|0;g=NJ(b)|0;qs(f+368|0,g,g+4|0,g+8|0);d=NJ(d)|0;qs(f+352|0,d,g+4|0,g+8|0);Pa[h&127](a,f+368|0,f+352|0,e);b=c[(c[a>>2]|0)+8>>2]|0;qs(f+336|0,d,g+4|0,g+8|0);qs(f+320|0,d,d+4|0,g+8|0);Pa[b&127](a,f+336|0,f+320|0,e);b=c[(c[a>>2]|0)+8>>2]|0;qs(f+304|0,d,d+4|0,g+8|0);qs(f+288|0,g,d+4|0,g+8|0);Pa[b&127](a,f+304|0,f+288|0,e);b=c[(c[a>>2]|0)+8>>2]|0;qs(f+272|0,g,d+4|0,g+8|0);qs(f+256|0,g,g+4|0,g+8|0);Pa[b&127](a,f+272|0,f+256|0,e);b=c[(c[a>>2]|0)+8>>2]|0;qs(f+240|0,g,g+4|0,g+8|0);qs(f+224|0,g,g+4|0,d+8|0);Pa[b&127](a,f+240|0,f+224|0,e);b=c[(c[a>>2]|0)+8>>2]|0;qs(f+208|0,d,g+4|0,g+8|0);qs(f+192|0,d,g+4|0,d+8|0);Pa[b&127](a,f+208|0,f+192|0,e);b=c[(c[a>>2]|0)+8>>2]|0;qs(f+176|0,d,d+4|0,g+8|0);qs(f+160|0,d,d+4|0,d+8|0);Pa[b&127](a,f+176|0,f+160|0,e);b=c[(c[a>>2]|0)+8>>2]|0;qs(f+144|0,g,d+4|0,g+8|0);qs(f+128|0,g,d+4|0,d+8|0);Pa[b&127](a,f+144|0,f+128|0,e);b=c[(c[a>>2]|0)+8>>2]|0;qs(f+112|0,g,g+4|0,d+8|0);qs(f+96|0,d,g+4|0,d+8|0);Pa[b&127](a,f+112|0,f+96|0,e);b=c[(c[a>>2]|0)+8>>2]|0;qs(f+80|0,d,g+4|0,d+8|0);qs(f+64|0,d,d+4|0,d+8|0);Pa[b&127](a,f+80|0,f+64|0,e);b=c[(c[a>>2]|0)+8>>2]|0;qs(f+48|0,d,d+4|0,d+8|0);qs(f+32|0,g,d+4|0,d+8|0);Pa[b&127](a,f+48|0,f+32|0,e);b=c[(c[a>>2]|0)+8>>2]|0;qs(f+16|0,g,d+4|0,d+8|0);qs(f,g,g+4|0,d+8|0);Pa[b&127](a,f+16|0,f,e);ea=f;return}function Ke(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=ta[c[(c[d>>2]|0)+40>>2]&31](d,a)|0;g=ta[c[(c[d>>2]|0)+28>>2]&31](d,e)|0;c[b>>2]=g;if(g|0)Ia[c[(c[d>>2]|0)+48>>2]&127](d,e);c[b+4>>2]=c[a+4>>2];c[b+20>>2]=c[a+72>>2];e=c[a+16>>2]|0;c[b+16>>2]=e;c[b+12>>2]=0;if(!e)return 19016;g=va[c[(c[d>>2]|0)+16>>2]&63](d,76,e)|0;e=c[g+8>>2]|0;c[b+12>>2]=ta[c[(c[d>>2]|0)+28>>2]&31](d,e)|0;if((c[b+16>>2]|0)>0){f=0;while(1){h=c[a+24>>2]|0;c[e+72>>2]=c[h+(f*80|0)+72>>2];c[e+64>>2]=ta[c[(c[d>>2]|0)+28>>2]&31](d,c[h+(f*80|0)+64>>2]|0)|0;if(!(ta[c[(c[d>>2]|0)+24>>2]&31](d,c[(c[a+24>>2]|0)+(f*80|0)+64>>2]|0)|0)){h=c[(c[d>>2]|0)+16>>2]|0;i=c[(c[a+24>>2]|0)+(f*80|0)+64>>2]|0;i=ra[c[(c[i>>2]|0)+52>>2]&127](i)|0;i=va[h&63](d,i,1)|0;h=c[(c[a+24>>2]|0)+(f*80|0)+64>>2]|0;h=va[c[(c[h>>2]|0)+56>>2]&63](h,c[i+8>>2]|0,d)|0;Ta[c[(c[d>>2]|0)+20>>2]&31](d,i,h,1346455635,c[(c[a+24>>2]|0)+(f*80|0)+64>>2]|0)}i=c[a+24>>2]|0;c[e+68>>2]=c[i+(f*80|0)+68>>2];c[e>>2]=c[i+(f*80|0)>>2];c[e+4>>2]=c[i+(f*80|0)+4>>2];c[e+8>>2]=c[i+(f*80|0)+8>>2];c[e+12>>2]=c[i+(f*80|0)+12>>2];c[e+16>>2]=c[i+(f*80|0)+16>>2];c[e+20>>2]=c[i+(f*80|0)+20>>2];c[e+24>>2]=c[i+(f*80|0)+24>>2];c[e+28>>2]=c[i+(f*80|0)+28>>2];c[e+32>>2]=c[i+(f*80|0)+32>>2];c[e+36>>2]=c[i+(f*80|0)+36>>2];c[e+40>>2]=c[i+(f*80|0)+40>>2];c[e+44>>2]=c[i+(f*80|0)+44>>2];c[e+48>>2]=c[i+(f*80|0)+48>>2];c[e+52>>2]=c[i+(f*80|0)+52>>2];c[e+56>>2]=c[i+(f*80|0)+56>>2];c[e+60>>2]=c[i+(f*80|0)+60>>2];f=f+1|0;if((f|0)>=(c[b+16>>2]|0)){e=d;break}else e=e+76|0}}else e=d;Ta[c[(c[e>>2]|0)+20>>2]&31](d,g,18991,1497453121,c[g+8>>2]|0);return 19016}function Le(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0,h=0.0,i=0.0,j=0.0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0;g=ea;ea=ea+256|0;c[g+32>>2]=6804;k=g+32+36|0;c[k>>2]=c[b>>2];c[k+4>>2]=c[b+4>>2];c[k+8>>2]=c[b+8>>2];c[k+12>>2]=c[b+12>>2];l=g+32+52|0;c[l>>2]=c[d>>2];c[l+4>>2]=c[d+4>>2];c[l+8>>2]=c[d+8>>2];c[l+12>>2]=c[d+12>>2];c[g+32+212>>2]=a;c[g+32+216>>2]=e;c[g+32+68>>2]=1065353216;c[g+32+72>>2]=0;c[g+32+72+4>>2]=0;c[g+32+72+8>>2]=0;c[g+32+72+12>>2]=0;c[g+32+88>>2]=1065353216;c[g+32+92>>2]=0;c[g+32+92+4>>2]=0;c[g+32+92+8>>2]=0;c[g+32+92+12>>2]=0;c[g+32+108>>2]=1065353216;c[g+32+112>>2]=0;c[g+32+116>>2]=c[k>>2];c[g+32+116+4>>2]=c[k+4>>2];c[g+32+116+8>>2]=c[k+8>>2];c[g+32+116+12>>2]=c[k+12>>2];c[g+32+132>>2]=1065353216;c[g+32+136>>2]=0;c[g+32+136+4>>2]=0;c[g+32+136+8>>2]=0;c[g+32+136+12>>2]=0;c[g+32+152>>2]=1065353216;c[g+32+156>>2]=0;c[g+32+156+4>>2]=0;c[g+32+156+8>>2]=0;c[g+32+156+12>>2]=0;c[g+32+172>>2]=1065353216;c[g+32+176>>2]=0;c[g+32+180>>2]=c[d>>2];c[g+32+180+4>>2]=c[d+4>>2];c[g+32+180+8>>2]=c[d+8>>2];c[g+32+180+12>>2]=c[d+12>>2];m=+f[d>>2]-+f[b>>2];j=+f[d+4>>2]-+f[b+4>>2];i=+f[d+8>>2]-+f[b+8>>2];h=1.0/+s(+(m*m+j*j+i*i));p=m*h==0.0?999999984306749440.0:1.0/(m*h);f[g+32+4>>2]=p;o=j*h==0.0?999999984306749440.0:1.0/(j*h);f[g+32+8>>2]=o;n=i*h==0.0?999999984306749440.0:1.0/(i*h);f[g+32+12>>2]=n;c[g+32+20>>2]=p<0.0&1;c[g+32+24>>2]=o<0.0&1;c[g+32+28>>2]=n<0.0&1;f[g+32+32>>2]=m*h*(+f[l>>2]-+f[k>>2])+j*h*(+f[g+32+56>>2]-+f[g+32+40>>2])+i*h*(+f[g+32+60>>2]-+f[g+32+44>>2]);a=c[a+68>>2]|0;e=c[(c[a>>2]|0)+24>>2]|0;c[g+16>>2]=0;c[g+16+4>>2]=0;c[g+16+8>>2]=0;c[g+16+12>>2]=0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;Va[e&7](a,b,d,g+32|0,g+16|0,g);ea=g;return}function Me(a,b,c,d,e,g,h,i){a=a|0;b=+b;c=+c;d=+d;e=e|0;g=+g;h=+h;i=+i;var j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0;z=+f[e>>2];y=+f[e+16>>2];x=+f[e+32>>2];w=+f[e+4>>2];v=+f[e+20>>2];u=+f[e+36>>2];t=+f[e+8>>2];s=+f[e+24>>2];r=+f[e+40>>2];j=d-((z*0.0+y*-i+x*h)*0.0+(w*0.0+v*-i+u*h)*i+(t*0.0+s*-i+r*h)*-h)+c;o=0.0-((z*0.0+y*-i+x*h)*-i+(w*0.0+v*-i+u*h)*0.0+(t*0.0+s*-i+r*h)*g)+0.0;l=0.0-((z*0.0+y*-i+x*h)*h+(w*0.0+v*-i+u*h)*-g+(t*0.0+s*-i+r*h)*0.0)+0.0;m=0.0-((z*i+y*0.0+x*-g)*0.0+(w*i+v*0.0+u*-g)*i+(t*i+s*0.0+r*-g)*-h)+0.0;n=d-((z*i+y*0.0+x*-g)*-i+(w*i+v*0.0+u*-g)*0.0+(t*i+s*0.0+r*-g)*g)+c;k=0.0-((z*i+y*0.0+x*-g)*h+(w*i+v*0.0+u*-g)*-g+(t*i+s*0.0+r*-g)*0.0)+0.0;p=0.0-((z*-h+y*g+x*0.0)*0.0+(w*-h+v*g+u*0.0)*i+(t*-h+s*g+r*0.0)*-h)+0.0;q=0.0-((z*-h+y*g+x*0.0)*-i+(w*-h+v*g+u*0.0)*0.0+(t*-h+s*g+r*0.0)*g)+0.0;h=d-((z*-h+y*g+x*0.0)*h+(w*-h+v*g+u*0.0)*-g+(t*-h+s*g+r*0.0)*0.0)+c;i=1.0/(l*(q*m-n*p)+(j*(n*h-k*q)+o*(k*p-h*m)));f[a>>2]=(q*m-n*p)*i*0.0+(1.0/b*((n*h-k*q)*i)+(k*p-h*m)*i*0.0);f[a+4>>2]=(p*o-q*j)*i*0.0+(1.0/b*((q*l-h*o)*i)+(h*j-p*l)*i*0.0);f[a+8>>2]=(n*j-m*o)*i*0.0+(1.0/b*((k*o-n*l)*i)+(m*l-k*j)*i*0.0);f[a+12>>2]=0.0;f[a+16>>2]=(q*m-n*p)*i*0.0+((n*h-k*q)*i*0.0+1.0/b*((k*p-h*m)*i));f[a+20>>2]=(p*o-q*j)*i*0.0+((q*l-h*o)*i*0.0+1.0/b*((h*j-p*l)*i));f[a+24>>2]=(n*j-m*o)*i*0.0+((k*o-n*l)*i*0.0+1.0/b*((m*l-k*j)*i));f[a+28>>2]=0.0;f[a+32>>2]=1.0/b*((q*m-n*p)*i)+((n*h-k*q)*i*0.0+(k*p-h*m)*i*0.0);f[a+36>>2]=1.0/b*((p*o-q*j)*i)+((q*l-h*o)*i*0.0+(h*j-p*l)*i*0.0);f[a+40>>2]=1.0/b*((n*j-m*o)*i)+((k*o-n*l)*i*0.0+(m*l-k*j)*i*0.0);f[a+44>>2]=0.0;return}function Ne(a,b,d,e,g){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;var h=0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0;h=ea;ea=ea+128|0;if(!b){ea=h;return}if(c[b+40>>2]|0){Ne(a,c[b+36>>2]|0,d+1|0,e,g);Ne(a,c[b+40>>2]|0,d+1|0,e,g)}if((d|0)<0){ea=h;return}l=+f[b>>2];q=+f[b+16>>2];j=+f[b+4>>2];p=+f[b+20>>2];i=+f[b+8>>2];o=+f[b+24>>2];k=(l+q)*.5-(q-l)*.5;m=(j+p)*.5-(p-j)*.5;n=(i+o)*.5-(o-i)*.5;l=(l+q)*.5+(q-l)*.5;j=(j+p)*.5+(p-j)*.5;i=(i+o)*.5+(o-i)*.5;b=(c[b+40>>2]|0)==0?g:e;f[h>>2]=k;f[h+4>>2]=m;f[h+8>>2]=n;f[h+12>>2]=0.0;f[h+16>>2]=l;f[h+20>>2]=m;f[h+24>>2]=n;f[h+28>>2]=0.0;f[h+32>>2]=l;f[h+36>>2]=j;f[h+40>>2]=n;f[h+44>>2]=0.0;f[h+48>>2]=k;f[h+52>>2]=j;f[h+56>>2]=n;f[h+60>>2]=0.0;f[h+64>>2]=k;f[h+68>>2]=m;f[h+72>>2]=i;f[h+76>>2]=0.0;f[h+80>>2]=l;f[h+84>>2]=m;f[h+88>>2]=i;f[h+92>>2]=0.0;f[h+96>>2]=l;f[h+100>>2]=j;f[h+104>>2]=i;f[h+108>>2]=0.0;f[h+112>>2]=k;f[h+116>>2]=j;f[h+120>>2]=i;f[h+124>>2]=0.0;Pa[c[(c[a>>2]|0)+8>>2]&127](a,h,h+16|0,b);Pa[c[(c[a>>2]|0)+8>>2]&127](a,h+16|0,h+32|0,b);Pa[c[(c[a>>2]|0)+8>>2]&127](a,h+32|0,h+48|0,b);Pa[c[(c[a>>2]|0)+8>>2]&127](a,h+48|0,h,b);Pa[c[(c[a>>2]|0)+8>>2]&127](a,h+64|0,h+80|0,b);Pa[c[(c[a>>2]|0)+8>>2]&127](a,h+80|0,h+96|0,b);Pa[c[(c[a>>2]|0)+8>>2]&127](a,h+96|0,h+112|0,b);Pa[c[(c[a>>2]|0)+8>>2]&127](a,h+112|0,h+64|0,b);Pa[c[(c[a>>2]|0)+8>>2]&127](a,h,h+64|0,b);Pa[c[(c[a>>2]|0)+8>>2]&127](a,h+16|0,h+80|0,b);Pa[c[(c[a>>2]|0)+8>>2]&127](a,h+32|0,h+96|0,b);Pa[c[(c[a>>2]|0)+8>>2]&127](a,h+48|0,h+112|0,b);ea=h;return}function Oe(b,d,e,g,h,i){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0;q=ea;ea=ea+96|0;m=q;n=m+96|0;do{c[m>>2]=0;m=m+4|0}while((m|0)<(n|0));if(!i)p=c[c[b+880>>2]>>2]|0;else p=i;i=c[b+772>>2]|0;if((i|0)==(c[b+776>>2]|0)?(o=(i|0)==0?1:i<<1,(i|0)<(o|0)):0){if(!o)j=0;else{c[6747]=(c[6747]|0)+1;i=kb((o*104|3)+16|0)|0;if(!i)j=0;else{c[(i+4+15&-16)+-4>>2]=i;j=i+4+15&-16}i=c[b+772>>2]|0}if((i|0)>0){k=0;do{m=j+(k*104|0)|0;l=(c[b+780>>2]|0)+(k*104|0)|0;n=m+104|0;do{c[m>>2]=c[l>>2];m=m+4|0;l=l+4|0}while((m|0)<(n|0));k=k+1|0}while((k|0)!=(i|0))}i=c[b+780>>2]|0;if(i|0){if(a[b+784>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0)}c[b+780>>2]=0}a[b+784>>0]=1;c[b+780>>2]=j;c[b+776>>2]=o;i=c[b+772>>2]|0}m=c[b+780>>2]|0;c[m+(i*104|0)>>2]=0;c[m+(i*104|0)+4>>2]=p;m=m+(i*104|0)+8|0;l=q;n=m+96|0;do{c[m>>2]=c[l>>2];m=m+4|0;l=l+4|0}while((m|0)<(n|0));p=c[b+772>>2]|0;c[b+772>>2]=p+1;o=c[b+780>>2]|0;k=c[b+720>>2]|0;c[o+(p*104|0)+8>>2]=k+(d*104|0);n=c[b+720>>2]|0;c[o+(p*104|0)+12>>2]=n+(e*104|0);l=c[b+720>>2]|0;c[o+(p*104|0)+16>>2]=l+(g*104|0);m=c[b+720>>2]|0;c[o+(p*104|0)+20>>2]=m+(h*104|0);y=+f[k+(d*104|0)+8>>2];v=+f[k+(d*104|0)+12>>2];z=+f[k+(d*104|0)+16>>2];s=+f[l+(g*104|0)+8>>2]-y;x=+f[l+(g*104|0)+12>>2]-v;u=+f[l+(g*104|0)+16>>2]-z;t=+f[m+(h*104|0)+8>>2]-y;w=+f[m+(h*104|0)+12>>2]-v;r=+f[m+(h*104|0)+16>>2]-z;f[o+(p*104|0)+24>>2]=(+f[n+(e*104|0)+16>>2]-z)*(s*w-x*t)+((+f[n+(e*104|0)+8>>2]-y)*(x*r-u*w)+(+f[n+(e*104|0)+12>>2]-v)*(u*t-s*r));a[b+924>>0]=1;ea=q;return}function Pe(b,d,e,g){b=b|0;d=d|0;e=e|0;g=g|0;var h=0.0;g=ea;ea=ea+784|0;c[g+712>>2]=1065353216;c[g+712+4>>2]=0;c[g+712+4+4>>2]=0;c[g+712+4+8>>2]=0;c[g+712+4+12>>2]=0;c[g+712+20>>2]=1065353216;c[g+712+24>>2]=0;c[g+712+24+4>>2]=0;c[g+712+24+8>>2]=0;c[g+712+24+12>>2]=0;c[g+712+40>>2]=1065353216;e=g+712+44|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[g+536>>2]=4752;c[g+536+168>>2]=0;f[g+536+172>>2]=0.0;c[g+536+164>>2]=c[b+200>>2];e=c[b+196>>2]|0;c[g+480+8>>2]=0;c[g+480+12>>2]=1065353216;c[g+480+16>>2]=1065353216;c[g+480+20>>2]=1065353216;f[g+480+24>>2]=0.0;c[g+480>>2]=7884;c[g+480+4>>2]=8;c[g+480+28>>2]=e;c[g+480+44>>2]=e;c[g+376+8>>2]=0;c[g+376+12>>2]=1065353216;c[g+376+16>>2]=1065353216;c[g+376+20>>2]=1065353216;f[g+376+24>>2]=0.0;f[g+376+44>>2]=.03999999910593033;c[g+376+52>>2]=0;c[g+376>>2]=4780;c[g+376+4>>2]=1;c[g+376+56>>2]=c[d>>2];c[g+376+56+4>>2]=c[d+4>>2];c[g+376+56+8>>2]=c[d+8>>2];c[g+376+56+12>>2]=c[d+12>>2];c[g+376+72>>2]=c[d+16>>2];c[g+376+72+4>>2]=c[d+16+4>>2];c[g+376+72+8>>2]=c[d+16+8>>2];c[g+376+72+12>>2]=c[d+16+12>>2];c[g+376+88>>2]=c[d+32>>2];c[g+376+88+4>>2]=c[d+32+4>>2];c[g+376+88+8>>2]=c[d+32+8>>2];c[g+376+88+12>>2]=c[d+32+12>>2];f[g+16+308>>2]=9.999999747378752e-05;a[g+16+332>>0]=0;c[g>>2]=6076;c[g+4>>2]=g+16;c[g+8>>2]=g+480;c[g+12>>2]=g+376;if(dc(g,b+4|0,b+68|0,g+712|0,g+712|0,g+536|0)|0?(h=+f[g+536+164>>2],+f[b+200>>2]>h):0)f[b+200>>2]=h;c[g+376>>2]=8336;e=c[g+376+52>>2]|0;if(!e){ea=g;return}Ca[c[c[e>>2]>>2]&511](e);e=c[g+376+52>>2]|0;if(!e){ea=g;return}c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0);ea=g;return}function Qe(d,e,f,g,h,i,j,k,l){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0;n=ea;ea=ea+48|0;c[6747]=(c[6747]|0)+1;g=kb(83)|0;if(!g)m=0;else{c[(g+4+15&-16)+-4>>2]=g;m=g+4+15&-16}c[m>>2]=h;b[m+4>>1]=i;b[m+6>>1]=j;i=m+16|0;c[i>>2]=c[e>>2];c[i+4>>2]=c[e+4>>2];c[i+8>>2]=c[e+8>>2];c[i+12>>2]=c[e+12>>2];i=m+32|0;c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];c[i+8>>2]=c[f+8>>2];c[i+12>>2]=c[f+12>>2];c[m+8>>2]=0;i=m+56|0;c[i>>2]=0;j=m+52|0;c[j>>2]=0;c[n+16>>2]=c[e>>2];c[n+16+4>>2]=c[e+4>>2];c[n+16+8>>2]=c[e+8>>2];c[n+16+12>>2]=c[e+12>>2];c[n+16+16>>2]=c[f>>2];c[n+16+16+4>>2]=c[f+4>>2];c[n+16+16+8>>2]=c[f+8>>2];c[n+16+16+12>>2]=c[f+12>>2];c[m+60>>2]=c[d+144>>2];g=(c[d+188>>2]|0)+1|0;c[d+188>>2]=g;c[m+12>>2]=g;g=c[d+8>>2]|0;if(!g){c[6747]=(c[6747]|0)+1;g=kb(63)|0;if(!g)g=0;else{c[(g+4+15&-16)+-4>>2]=g;g=g+4+15&-16}k=g;l=k+44|0;do{c[k>>2]=0;k=k+4|0}while((k|0)<(l|0))}else c[d+8>>2]=0;c[g+32>>2]=0;c[g+36>>2]=m;c[g+40>>2]=0;c[g>>2]=c[n+16>>2];c[g+4>>2]=c[n+16+4>>2];c[g+8>>2]=c[n+16+8>>2];c[g+12>>2]=c[n+16+12>>2];c[g+16>>2]=c[n+16+16>>2];c[g+20>>2]=c[n+16+20>>2];c[g+24>>2]=c[n+16+24>>2];c[g+28>>2]=c[n+16+28>>2];je(d+4|0,c[d+4>>2]|0,g);c[d+16>>2]=(c[d+16>>2]|0)+1;c[m+48>>2]=g;k=d+124+(c[d+144>>2]<<2)|0;c[j>>2]=0;c[i>>2]=c[k>>2];g=c[k>>2]|0;if(g|0)c[g+52>>2]=m;c[k>>2]=m;if(a[d+193>>0]|0){ea=n;return m|0}c[n>>2]=10216;c[n+4>>2]=d;c[n+8>>2]=m;Zd(c[d+4>>2]|0,n+16|0,n);Zd(c[d+64>>2]|0,n+16|0,n);ea=n;return m|0}function Re(a,b,d){a=a|0;b=+b;d=+d;var e=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0,m=0,n=0,o=0,p=0.0,q=0,r=0,s=0,t=0,u=0.0,v=0.0,w=0.0,x=0,y=0.0;x=c[a+832>>2]|0;if((x|0)<=0)return;a=c[a+840>>2]|0;q=0;do{l=c[a+(q*56|0)>>2]|0;o=c[a+(q*56|0)+4>>2]|0;m=c[o+8>>2]|0;n=c[o+12>>2]|0;o=c[o+16>>2]|0;r=a+(q*56|0)+8|0;j=+f[r>>2];s=a+(q*56|0)+12|0;i=+f[s>>2];t=a+(q*56|0)+16|0;v=+f[t>>2];b=+f[m+8>>2]*j+ +f[n+8>>2]*i+ +f[o+8>>2]*v;e=+f[m+12>>2]*j+ +f[n+12>>2]*i+ +f[o+12>>2]*v;d=+f[m+16>>2]*j+ +f[n+16>>2]*i+ +f[o+16>>2]*v;p=+f[l+8>>2];g=+f[l+12>>2];h=+f[l+16>>2];u=p-+f[l+24>>2]-(b-(j*+f[m+24>>2]+i*+f[n+24>>2]+v*+f[o+24>>2]));w=g-+f[l+28>>2]-(e-(j*+f[m+28>>2]+i*+f[n+28>>2]+v*+f[o+28>>2]));v=h-+f[l+32>>2]-(d-(j*+f[m+32>>2]+i*+f[n+32>>2]+v*+f[o+32>>2]));i=+f[a+(q*56|0)+24>>2];j=+f[a+(q*56|0)+28>>2];k=+f[a+(q*56|0)+32>>2];if(u*i+w*j+v*k<0.0){e=+f[a+(q*56|0)+40>>2]-(p*i+g*j+h*k-(b*i+e*j+d*k));b=i*e+0.0;d=j*e+0.0;e=k*e+0.0}else{b=0.0;d=0.0;e=0.0}y=+f[a+(q*56|0)+44>>2];b=b-y*(u-i*(u*i+w*j+v*k));d=d-y*(w-j*(u*i+w*j+v*k));v=e-y*(v-k*(u*i+w*j+v*k));w=+f[a+(q*56|0)+48>>2];f[l+8>>2]=p+w*b;f[l+12>>2]=g+w*d;f[l+16>>2]=h+w*v;l=a+(q*56|0)+52|0;w=+f[l>>2]*+f[r>>2];f[m+8>>2]=+f[m+8>>2]-b*w;f[m+12>>2]=+f[m+12>>2]-d*w;f[m+16>>2]=+f[m+16>>2]-v*w;w=+f[l>>2]*+f[s>>2];f[n+8>>2]=+f[n+8>>2]-b*w;f[n+12>>2]=+f[n+12>>2]-d*w;f[n+16>>2]=+f[n+16>>2]-v*w;w=+f[l>>2]*+f[t>>2];f[o+8>>2]=+f[o+8>>2]-b*w;f[o+12>>2]=+f[o+12>>2]-d*w;f[o+16>>2]=+f[o+16>>2]-v*w;q=q+1|0}while((q|0)!=(x|0));return}function Se(b,d,e,g,h){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;k=ea;ea=ea+160|0;i=c[b+12>>2]|0;if(!i){ea=k;return}l=(a[b+16>>0]|0)!=0;m=l?e:d;e=l?d:e;o=c[m+4>>2]|0;n=c[e+4>>2]|0;c[h+4>>2]=i;d=c[i+752>>2]|0;c[k+136>>2]=10616;c[k+136+4>>2]=o;c[k+136+8>>2]=n;c[k+136+12>>2]=d;f[k+128>>2]=999999984306749440.0;d=c[m+12>>2]|0;c[k>>2]=c[d>>2];c[k+4>>2]=c[d+4>>2];c[k+8>>2]=c[d+8>>2];c[k+12>>2]=c[d+12>>2];c[k+16>>2]=c[d+16>>2];c[k+16+4>>2]=c[d+16+4>>2];c[k+16+8>>2]=c[d+16+8>>2];c[k+16+12>>2]=c[d+16+12>>2];c[k+32>>2]=c[d+32>>2];c[k+32+4>>2]=c[d+32+4>>2];c[k+32+8>>2]=c[d+32+8>>2];c[k+32+12>>2]=c[d+32+12>>2];c[k+48>>2]=c[d+48>>2];c[k+48+4>>2]=c[d+48+4>>2];c[k+48+8>>2]=c[d+48+8>>2];c[k+48+12>>2]=c[d+48+12>>2];e=c[e+12>>2]|0;c[k+64>>2]=c[e>>2];c[k+64+4>>2]=c[e+4>>2];c[k+64+8>>2]=c[e+8>>2];c[k+64+12>>2]=c[e+12>>2];c[k+80>>2]=c[e+16>>2];c[k+80+4>>2]=c[e+16+4>>2];c[k+80+8>>2]=c[e+16+8>>2];c[k+80+12>>2]=c[e+16+12>>2];c[k+96>>2]=c[e+32>>2];c[k+96+4>>2]=c[e+32+4>>2];c[k+96+8>>2]=c[e+32+8>>2];c[k+96+12>>2]=c[e+32+12>>2];c[k+112>>2]=c[e+48>>2];c[k+112+4>>2]=c[e+48+4>>2];c[k+112+8>>2]=c[e+48+8>>2];c[k+112+12>>2]=c[e+48+12>>2];Sc(k+136|0,k,h,c[g+20>>2]|0,l);do if(a[b+8>>0]|0?(j=c[h+4>>2]|0,c[j+748>>2]|0):0){i=c[j+740>>2]|0;d=c[(c[h+8>>2]|0)+8>>2]|0;if((i|0)==(d|0)){Hd(j,i+4|0,(c[(c[h+12>>2]|0)+8>>2]|0)+4|0);break}else{Hd(j,(c[(c[h+12>>2]|0)+8>>2]|0)+4|0,d+4|0);break}}while(0);ea=k;return}function Te(b,d,e,g,h){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0;g=ea;ea=ea+608|0;o=+f[d+116>>2]-+f[d+52>>2];n=+f[d+120>>2]-+f[d+56>>2];m=+f[d+124>>2]-+f[d+60>>2];i=+f[e+116>>2]-+f[e+52>>2];k=+f[e+120>>2]-+f[e+56>>2];j=+f[e+124>>2]-+f[e+60>>2];l=+f[d+252>>2];if(o*o+n*n+m*m>2],i*i+k*k+j*j>2]|0;h=c[e+248>>2]|0;c[g+552+8>>2]=0;c[g+552+12>>2]=1065353216;c[g+552+16>>2]=1065353216;c[g+552+20>>2]=1065353216;f[g+552+24>>2]=0.0;c[g+552>>2]=7884;c[g+552+4>>2]=8;c[g+552+28>>2]=h;c[g+552+44>>2]=h;c[g+376>>2]=4752;f[g+376+164>>2]=999999984306749440.0;c[g+376+168>>2]=0;f[g+376+172>>2]=0.0;f[g+16+308>>2]=9.999999747378752e-05;a[g+16+332>>0]=0;c[g>>2]=10452;c[g+4>>2]=g+16;c[g+8>>2]=b;c[g+12>>2]=g+552;if(yc(g,d+4|0,d+68|0,e+4|0,e+68|0,g+376|0)|0){i=+f[g+376+164>>2];if(+f[d+244>>2]>i)f[d+244>>2]=i;if(+f[e+244>>2]>i)f[e+244>>2]=i;if(i<1.0)j=i;else j=1.0}else j=1.0;b=c[e+192>>2]|0;h=c[d+248>>2]|0;c[g+552+8>>2]=0;c[g+552+12>>2]=1065353216;c[g+552+16>>2]=1065353216;c[g+552+20>>2]=1065353216;f[g+552+24>>2]=0.0;c[g+552>>2]=7884;c[g+552+4>>2]=8;c[g+552+28>>2]=h;c[g+552+44>>2]=h;c[g+376>>2]=4752;f[g+376+164>>2]=999999984306749440.0;c[g+376+168>>2]=0;f[g+376+172>>2]=0.0;f[g+16+308>>2]=9.999999747378752e-05;a[g+16+332>>0]=0;c[g>>2]=10452;c[g+4>>2]=g+16;c[g+8>>2]=g+552;c[g+12>>2]=b;if(yc(g,d+4|0,d+68|0,e+4|0,e+68|0,g+376|0)|0){i=+f[g+376+164>>2];if(+f[d+244>>2]>i)f[d+244>>2]=i;if(+f[e+244>>2]>i)f[e+244>>2]=i;if(!(j>i))i=j}else i=j;o=i;ea=g;return +o}function Ue(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=c[a+56>>2]|0;if(!e){e=c[a+52>>2]|0;if(!e){c[6747]=(c[6747]|0)+1;e=kb(31)|0;if(!e)e=0;else{c[(e+4+15&-16)+-4>>2]=e;e=e+4+15&-16}f=c[a+60>>2]|0;c[e+4>>2]=f;g=e+8|0;c[g>>2]=0;c[6747]=(c[6747]|0)+1;f=kb((f*24|3)+16|0)|0;if(!f)f=0;else{c[(f+4+15&-16)+-4>>2]=f;f=f+4+15&-16}c[e>>2]=f;c[g>>2]=c[a+48>>2];c[a+48>>2]=e}else c[a+52>>2]=c[e+8>>2];h=c[e>>2]|0;e=c[e+4>>2]|0;if((e|0)>0?(c[h>>2]=(e|0)!=1?h+24|0:0,(e|0)!=1):0){f=1;g=h+24|0;do{f=f+1|0;i=(f|0)<(e|0);j=g;g=g+24|0;c[j>>2]=i?g:0}while(i)}}else h=e;c[a+56>>2]=c[h>>2];c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[h+16>>2]=0;c[h+20>>2]=0;e=c[a+56>>2]|0;if(!e){e=c[a+52>>2]|0;if(!e){c[6747]=(c[6747]|0)+1;e=kb(31)|0;if(!e)f=0;else{c[(e+4+15&-16)+-4>>2]=e;f=e+4+15&-16}e=c[a+60>>2]|0;c[f+4>>2]=e;g=f+8|0;c[g>>2]=0;c[6747]=(c[6747]|0)+1;e=kb((e*24|3)+16|0)|0;if(!e)e=0;else{c[(e+4+15&-16)+-4>>2]=e;e=e+4+15&-16}c[f>>2]=e;c[g>>2]=c[a+48>>2];c[a+48>>2]=f}else{c[a+52>>2]=c[e+8>>2];f=e}e=c[f>>2]|0;f=c[f+4>>2]|0;if((f|0)>0?(c[e>>2]=(f|0)!=1?e+24|0:0,(f|0)!=1):0){g=1;i=e+24|0;do{g=g+1|0;j=(g|0)<(f|0);k=i;i=i+24|0;c[k>>2]=j?i:0}while(j)}}c[a+56>>2]=c[e>>2];k=e;c[k>>2]=0;c[k+4>>2]=0;c[h+8>>2]=e;c[e+8>>2]=h;k=c[a+100>>2]|0;c[h+20>>2]=k;c[e+20>>2]=k;c[h+12>>2]=d;c[e+12>>2]=b;c[h+16>>2]=0;c[e+16>>2]=0;e=c[a+116>>2]|0;c[a+116>>2]=e+1;if((e|0)<(c[a+120>>2]|0))return h|0;c[a+120>>2]=e+1;return h|0}function Ve(a,d){a=a|0;d=d|0;var e=0,g=0,h=0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0;e=ea;ea=ea+128|0;F=c[(c[a+8>>2]|0)+24>>2]|0;h=c[F+(d*80|0)+64>>2]|0;g=c[a+12>>2]|0;w=+f[F+(d*80|0)>>2];C=+f[g>>2];v=+f[F+(d*80|0)+16>>2];B=+f[g+4>>2];u=+f[F+(d*80|0)+32>>2];A=+f[g+8>>2];t=+f[F+(d*80|0)+4>>2];s=+f[F+(d*80|0)+20>>2];r=+f[F+(d*80|0)+36>>2];q=+f[F+(d*80|0)+8>>2];o=+f[F+(d*80|0)+24>>2];m=+f[F+(d*80|0)+40>>2];z=+f[g+16>>2];y=+f[g+20>>2];x=+f[g+24>>2];p=+f[g+32>>2];n=+f[g+36>>2];l=+f[g+40>>2];E=+f[F+(d*80|0)+48>>2];D=+f[F+(d*80|0)+52>>2];i=+f[F+(d*80|0)+56>>2];k=+f[g+48>>2]+(C*E+B*D+A*i);j=z*E+y*D+x*i+ +f[g+52>>2];i=p*E+n*D+l*i+ +f[g+56>>2];f[e+56>>2]=w*C+v*B+u*A;f[e+56+4>>2]=C*t+B*s+A*r;f[e+56+8>>2]=C*q+B*o+A*m;f[e+56+12>>2]=0.0;f[e+56+16>>2]=w*z+v*y+u*x;f[e+56+20>>2]=t*z+s*y+r*x;f[e+56+24>>2]=q*z+o*y+m*x;f[e+56+28>>2]=0.0;f[e+56+32>>2]=w*p+v*n+u*l;f[e+56+36>>2]=t*p+s*n+r*l;f[e+56+40>>2]=q*p+o*n+m*l;f[e+56+44>>2]=0.0;f[e+56+48>>2]=k;f[e+56+52>>2]=j;f[e+56+56>>2]=i;f[e+56+60>>2]=0.0;g=c[a+4>>2]|0;c[e+32>>2]=0;c[e+32+4>>2]=h;c[e+32+8>>2]=g;c[e+32+12>>2]=e+56;c[e+32+16>>2]=-1;c[e+32+20>>2]=d;g=c[a+24>>2]|0;f[e+4>>2]=1.0;c[e+8>>2]=0;b[e+12>>1]=1;b[e+14>>1]=-1;c[e+16>>2]=0;c[e>>2]=6908;c[e+20>>2]=g;c[e+24>>2]=d;c[e+4>>2]=c[g+4>>2];c[e+16>>2]=c[g+16>>2];Nb(c[a+16>>2]|0,c[a+20>>2]|0,e+32|0,e);ea=e;return}function We(b,d,e,g,h,i,j,k,l){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0;q=ea;ea=ea+80|0;f[q+16+60>>2]=0.0;f[q+16+8>>2]=0.0;f[q+16+12>>2]=.10000000149011612;f[q+16+16>>2]=300.0;f[q+16>>2]=1.0;f[q+16+4>>2]=-1.0;f[q+16+28>>2]=0.0;f[q+16+32>>2]=.20000000298023224;f[q+16+36>>2]=0.0;f[q+16+40>>2]=0.0;f[q+16+20>>2]=1.0;f[q+16+24>>2]=.5;c[q+16+56>>2]=0;f[q+16+48>>2]=0.0;a[q+16+44>>0]=0;o=0;do{n=c[b+856+(o<<2)>>2]|0;m=a[b+788+o>>0]|0;if(!n){if(m<<24>>24){m=1;p=5}}else p=5;if((p|0)==5){p=0;f[q+16+40>>2]=0.0;c[q+16+56>>2]=n;c[q+16+52>>2]=c[b+840+(o<<2)>>2];c[q+16+48>>2]=c[b+824+(o<<2)>>2];c[q+16+20>>2]=c[b+732>>2];a[q+16+44>>0]=m;c[q+16+4>>2]=c[b+696+(o<<2)>>2];c[q+16+24>>2]=c[b+728>>2];c[q+16>>2]=c[b+680+(o<<2)>>2];f[q+16+16>>2]=0.0;c[q+16+12>>2]=c[b+808+(o<<2)>>2];c[q+16+8>>2]=c[b+792+(o<<2)>>2];c[q>>2]=c[b+1064+(o<<2)>>2];c[q+4>>2]=c[b+1080+(o<<2)>>2];c[q+8>>2]=c[b+1096+(o<<2)>>2];f[q+12>>2]=0.0;n=c[b+1304>>2]|0;m=o*3|0;n=m?n>>m:n;if(!(n&1))m=c[d+32>>2]|0;else m=b+740+(o<<2)|0;c[q+16+28>>2]=c[m>>2];if(!(n&2))m=c[d+32>>2]|0;else m=b+772+(o<<2)|0;c[q+16+36>>2]=c[m>>2];c[q+16+32>>2]=c[((n&4|0)==0?d+4|0:b+756+(o<<2)|0)>>2];if(a[b+1301>>0]|0){n=o+1|0;if(!(c[b+868+(((n|0)==3?0:n)<<6)+56>>2]|0))m=1;else m=(c[b+868+((((o+2|0)>>>0)%3|0)<<6)+56>>2]|0)==0&1}else m=0;e=(xc(b,q+16|0,g,h,i,j,k,l,d,e,q,0,m)|0)+e|0}o=o+1|0}while((o|0)!=3);ea=q;return e|0}function Xe(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0.0,h=0,i=0,j=0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0;i=ea;ea=ea+80|0;g=+ha[c[(c[a>>2]|0)+48>>2]&15](a);h=0;do{p=i+64+(h<<2)|0;c[i+64>>2]=0;c[i+64+4>>2]=0;c[i+64+8>>2]=0;c[i+64+12>>2]=0;f[p>>2]=1.0;j=c[(c[a>>2]|0)+64>>2]|0;k=+f[i+64>>2];l=+f[i+64+4>>2];m=+f[i+64+8>>2];n=k*+f[b+4>>2]+l*+f[b+20>>2]+m*+f[b+36>>2];o=k*+f[b+8>>2]+l*+f[b+24>>2]+m*+f[b+40>>2];f[i+32>>2]=+f[b>>2]*k+ +f[b+16>>2]*l+ +f[b+32>>2]*m;f[i+32+4>>2]=n;f[i+32+8>>2]=o;f[i+32+12>>2]=0.0;Ma[j&127](i+48|0,a,i+32|0);o=+f[i+48>>2];n=+f[i+48+4>>2];m=+f[i+48+8>>2];l=o*+f[b+16>>2]+n*+f[b+20>>2]+m*+f[b+24>>2]+ +f[b+52>>2];k=o*+f[b+32>>2]+n*+f[b+36>>2]+m*+f[b+40>>2]+ +f[b+56>>2];f[i+32>>2]=o*+f[b>>2]+n*+f[b+4>>2]+m*+f[b+8>>2]+ +f[b+48>>2];f[i+32+4>>2]=l;f[i+32+8>>2]=k;f[i+32+12>>2]=0.0;j=i+32+(h<<2)|0;f[e+(h<<2)>>2]=g+ +f[j>>2];f[p>>2]=-1.0;p=c[(c[a>>2]|0)+64>>2]|0;k=+f[i+64>>2];l=+f[i+64+4>>2];m=+f[i+64+8>>2];n=k*+f[b+4>>2]+l*+f[b+20>>2]+m*+f[b+36>>2];o=k*+f[b+8>>2]+l*+f[b+24>>2]+m*+f[b+40>>2];f[i>>2]=+f[b>>2]*k+ +f[b+16>>2]*l+ +f[b+32>>2]*m;f[i+4>>2]=n;f[i+8>>2]=o;f[i+12>>2]=0.0;Ma[p&127](i+16|0,a,i);o=+f[i+16>>2];n=+f[i+16+4>>2];m=+f[i+16+8>>2];l=o*+f[b+16>>2]+n*+f[b+20>>2]+m*+f[b+24>>2]+ +f[b+52>>2];k=o*+f[b+32>>2]+n*+f[b+36>>2]+m*+f[b+40>>2]+ +f[b+56>>2];f[i+32>>2]=o*+f[b>>2]+n*+f[b+4>>2]+m*+f[b+8>>2]+ +f[b+48>>2];f[i+32+4>>2]=l;f[i+32+8>>2]=k;f[i+32+12>>2]=0.0;f[d+(h<<2)>>2]=+f[j>>2]-g;h=h+1|0}while((h|0)!=3);ea=i;return}function Ye(b,d,e,g,h){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0;k=ea;ea=ea+144|0;i=c[b+12>>2]|0;if(!i){ea=k;return}m=c[d+4>>2]|0;l=c[e+4>>2]|0;c[h+4>>2]=i;f[k+12+128>>2]=999999984306749440.0;d=c[d+12>>2]|0;c[k+12>>2]=c[d>>2];c[k+12+4>>2]=c[d+4>>2];c[k+12+8>>2]=c[d+8>>2];c[k+12+12>>2]=c[d+12>>2];c[k+12+16>>2]=c[d+16>>2];c[k+12+16+4>>2]=c[d+16+4>>2];c[k+12+16+8>>2]=c[d+16+8>>2];c[k+12+16+12>>2]=c[d+16+12>>2];c[k+12+32>>2]=c[d+32>>2];c[k+12+32+4>>2]=c[d+32+4>>2];c[k+12+32+8>>2]=c[d+32+8>>2];c[k+12+32+12>>2]=c[d+32+12>>2];c[k+12+48>>2]=c[d+48>>2];c[k+12+48+4>>2]=c[d+48+4>>2];c[k+12+48+8>>2]=c[d+48+8>>2];c[k+12+48+12>>2]=c[d+48+12>>2];e=c[e+12>>2]|0;c[k+12+64>>2]=c[e>>2];c[k+12+64+4>>2]=c[e+4>>2];c[k+12+64+8>>2]=c[e+8>>2];c[k+12+64+12>>2]=c[e+12>>2];c[k+12+80>>2]=c[e+16>>2];c[k+12+80+4>>2]=c[e+16+4>>2];c[k+12+80+8>>2]=c[e+16+8>>2];c[k+12+80+12>>2]=c[e+16+12>>2];c[k+12+96>>2]=c[e+32>>2];c[k+12+96+4>>2]=c[e+32+4>>2];c[k+12+96+8>>2]=c[e+32+8>>2];c[k+12+96+12>>2]=c[e+32+12>>2];c[k+12+112>>2]=c[e+48>>2];c[k+12+112+4>>2]=c[e+48+4>>2];c[k+12+112+8>>2]=c[e+48+8>>2];c[k+12+112+12>>2]=c[e+48+12>>2];c[k>>2]=10596;c[k+4>>2]=m;c[k+8>>2]=l;ib(k,k+12|0,h,c[g+20>>2]|0,0);do if(a[b+8>>0]|0?(j=c[h+4>>2]|0,c[j+748>>2]|0):0){d=c[j+740>>2]|0;i=c[(c[h+8>>2]|0)+8>>2]|0;if((d|0)==(i|0)){Hd(j,d+4|0,(c[(c[h+12>>2]|0)+8>>2]|0)+4|0);break}else{Hd(j,(c[(c[h+12>>2]|0)+8>>2]|0)+4|0,i+4|0);break}}while(0);ea=k;return}function Ze(a){a=a|0;var b=0,d=0,e=0,g=0,h=0,i=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0,q=0;b=c[a+752>>2]|0;if((b|0)>0){d=c[a+760>>2]|0;e=0;do{g=c[d+(e*44|0)+8>>2]|0;h=c[d+(e*44|0)+12>>2]|0;i=c[d+(e*44|0)+16>>2]|0;l=+f[g+8>>2];n=+f[g+12>>2];j=+f[g+16>>2];k=+f[h+8>>2]-l;o=+f[h+12>>2]-n;m=+f[h+16>>2]-j;l=+f[i+8>>2]-l;n=+f[i+12>>2]-n;j=+f[i+16>>2]-j;f[d+(e*44|0)+36>>2]=+s(+((k*n-o*l)*(k*n-o*l)+((o*j-m*n)*(o*j-m*n)+(m*l-k*j)*(m*l-k*j))));e=e+1|0}while((e|0)!=(b|0))}d=c[a+712>>2]|0;if((d|0)>0){c[6747]=(c[6747]|0)+1;b=kb((d<<2|3)+16|0)|0;if(!b)g=0;else{c[(b+4+15&-16)+-4>>2]=b;g=b+4+15&-16}hk(g|0,0,d<<2|0)|0;d=c[a+712>>2]|0;if((d|0)>0){b=c[a+720>>2]|0;e=0;do{f[b+(e*104|0)+92>>2]=0.0;e=e+1|0}while((e|0)!=(d|0));i=g;h=g}else{i=g;h=g}}else{i=0;h=0}g=c[a+752>>2]|0;if((g|0)>0){b=c[a+760>>2]|0;d=c[a+720>>2]|0;e=0;do{o=+r(+(+f[b+(e*44|0)+36>>2]));p=c[b+(e*44|0)+8>>2]|0;q=h+(((p-d|0)/104|0)<<2)|0;c[q>>2]=(c[q>>2]|0)+1;f[p+92>>2]=o+ +f[p+92>>2];p=c[b+(e*44|0)+12>>2]|0;q=h+(((p-d|0)/104|0)<<2)|0;c[q>>2]=(c[q>>2]|0)+1;f[p+92>>2]=o+ +f[p+92>>2];p=c[b+(e*44|0)+16>>2]|0;q=h+(((p-d|0)/104|0)<<2)|0;c[q>>2]=(c[q>>2]|0)+1;f[p+92>>2]=o+ +f[p+92>>2];e=e+1|0}while((e|0)!=(g|0));d=c[a+712>>2]|0}if((d|0)>0){e=0;do{b=c[h+(e<<2)>>2]|0;if((b|0)>0){q=(c[a+720>>2]|0)+(e*104|0)+92|0;f[q>>2]=+f[q>>2]/+(b|0)}else f[(c[a+720>>2]|0)+(e*104|0)+92>>2]=0.0;e=e+1|0}while((e|0)!=(d|0));if(!i)return}else if((h|0)==0|(i|0)==0)return;c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0);return}function _e(b,d,e,g,h){b=b|0;d=d|0;e=e|0;g=g|0;h=+h;var i=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0;B=ea;ea=ea+96|0;m=+f[e+4>>2];s=+f[e+20>>2];t=+f[e+36>>2];u=+f[e+8>>2];v=+f[e+24>>2];w=+f[e+40>>2];x=+f[e+12>>2];n=+f[e+28>>2];o=+f[e+44>>2];y=-+f[e+52>>2];z=-+f[e+56>>2];A=-+f[e+60>>2];k=c[b+720>>2]|0;p=+f[k+(d*104|0)+8>>2];q=+f[k+(d*104|0)+12>>2];r=+f[k+(d*104|0)+16>>2];a:do if(g){g=c[b+268>>2]|0;b:do if((g|0)>0){j=c[b+276>>2]|0;i=0;while(1){if((c[j+(i<<2)>>2]|0)==(e|0))break;i=i+1|0;if((i|0)>=(g|0))break b}if((i|0)!=(g|0)){g=k;break a}}while(0);if((g|0)==(c[b+272>>2]|0)?(l=(g|0)==0?1:g<<1,(g|0)<(l|0)):0){if(!l)i=0;else{c[6747]=(c[6747]|0)+1;g=kb((l<<2|3)+16|0)|0;if(!g)i=0;else{c[(g+4+15&-16)+-4>>2]=g;i=g+4+15&-16}g=c[b+268>>2]|0}if((g|0)>0){j=0;do{c[i+(j<<2)>>2]=c[(c[b+276>>2]|0)+(j<<2)>>2];j=j+1|0}while((j|0)!=(g|0))}j=c[b+276>>2]|0;if(j){if(a[b+280>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[j+-4>>2]|0);g=c[b+268>>2]|0}c[b+276>>2]=0}a[b+280>>0]=1;c[b+276>>2]=i;c[b+272>>2]=l}c[(c[b+276>>2]|0)+(g<<2)>>2]=e;c[b+268>>2]=g+1;g=c[b+720>>2]|0}else g=k;while(0);c[B>>2]=g+(d*104|0);c[B+20>>2]=e;f[B+4>>2]=m*y+s*z+t*A+(m*p+s*q+t*r);f[B+8>>2]=u*y+v*z+w*A+(u*p+v*q+w*r);f[B+12>>2]=x*y+n*z+o*A+(x*p+n*q+o*r);f[B+16>>2]=0.0;d=g+(d*104|0)+100|0;a[d>>0]=a[d>>0]|1;f[B+24>>2]=h;_m(b+788|0,B);ea=B;return}function $e(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0;H=ea;ea=ea+32|0;j=+f[b+16>>2];g=+f[b>>2];k=+f[b+20>>2];h=+f[b+4>>2];n=+f[b+24>>2];i=+f[b+8>>2];t=+f[b+32>>2];x=+f[b+36>>2];y=+f[b+40>>2];E=(k-h)*(y-i)-(n-i)*(x-h);F=(n-i)*(t-g)-(j-g)*(y-i);G=(j-g)*(x-h)-(k-h)*(t-g);f[H+16>>2]=E;f[H+16+4>>2]=F;f[H+16+8>>2]=G;f[H+16+12>>2]=0.0;o=+f[a+4>>2];q=+f[a+8>>2];v=+f[a+12>>2];D=E*o+F*q+G*v-(i*G+(g*E+h*F));m=+f[a+20>>2];r=+f[a+24>>2];w=+f[a+28>>2];if(D*(E*m+F*r+G*w-(i*G+(g*E+h*F)))>=0.0){ea=H;return}B=c[a+36>>2]|0;if(D<=0.0&(B&1|0)!=0){ea=H;return}C=D/(D-(E*m+F*r+G*w-(i*G+(g*E+h*F))));if(!(C<+f[a+40>>2])){ea=H;return}A=(G*G+(E*E+F*F))*-9.999999747378752e-05;z=g-(m*C+o*(1.0-C));u=h-(r*C+q*(1.0-C));p=i-(w*C+v*(1.0-C));l=j-(m*C+o*(1.0-C));k=k-(r*C+q*(1.0-C));j=n-(w*C+v*(1.0-C));if(!(G*(k*z-u*l)+(E*(u*j-p*k)+F*(p*l-j*z))>=A)){ea=H;return}i=t-(m*C+o*(1.0-C));h=x-(r*C+q*(1.0-C));g=y-(w*C+v*(1.0-C));if(!(G*(h*l-k*i)+(E*(k*g-j*h)+F*(j*i-g*l))>=A)){ea=H;return}if(!(G*(u*i-h*z)+(E*(h*p-g*u)+F*(g*z-p*i))>=A)){ea=H;return}g=1.0/+s(+(G*G+(E*E+F*F)));f[H+16>>2]=E*g;f[H+16+4>>2]=F*g;f[H+16+8>>2]=G*g;b=c[(c[a>>2]|0)+12>>2]|0;if(D<=0.0&(B&2|0)==0){f[H>>2]=-(E*g);f[H+4>>2]=-(F*g);f[H+8>>2]=-(G*g);f[H+12>>2]=0.0;f[a+40>>2]=+ja[b&3](a,H,C,d,e);ea=H;return}else{f[a+40>>2]=+ja[b&3](a,H+16|0,C,d,e);ea=H;return}}function af(b,d,e,g,h){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,t=0.0,u=0.0,v=0.0,w=0.0;p=ea;ea=ea+48|0;if((g|0)==(d|0)|((d|0)==(e|0)|(e|0)==(g|0))){ea=p;return}l=p;m=l+36|0;do{c[l>>2]=0;l=l+4|0}while((l|0)<(m|0));if(!h)o=c[c[b+880>>2]>>2]|0;else o=h;h=c[b+752>>2]|0;if((h|0)==(c[b+756>>2]|0)?(n=(h|0)==0?1:h<<1,(h|0)<(n|0)):0){if(!n)i=0;else{c[6747]=(c[6747]|0)+1;h=kb((n*44|3)+16|0)|0;if(!h)i=0;else{c[(h+4+15&-16)+-4>>2]=h;i=h+4+15&-16}h=c[b+752>>2]|0}if((h|0)>0){j=0;do{l=i+(j*44|0)|0;k=(c[b+760>>2]|0)+(j*44|0)|0;m=l+44|0;do{c[l>>2]=c[k>>2];l=l+4|0;k=k+4|0}while((l|0)<(m|0));j=j+1|0}while((j|0)!=(h|0))}h=c[b+760>>2]|0;if(h|0){if(a[b+764>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[h+-4>>2]|0)}c[b+760>>2]=0}a[b+764>>0]=1;c[b+760>>2]=i;c[b+756>>2]=n;h=c[b+752>>2]|0}l=c[b+760>>2]|0;c[l+(h*44|0)>>2]=0;c[l+(h*44|0)+4>>2]=o;l=l+(h*44|0)+8|0;k=p;m=l+36|0;do{c[l>>2]=c[k>>2];l=l+4|0;k=k+4|0}while((l|0)<(m|0));o=c[b+752>>2]|0;c[b+752>>2]=o+1;n=c[b+760>>2]|0;k=c[b+720>>2]|0;c[n+(o*44|0)+8>>2]=k+(d*104|0);l=c[b+720>>2]|0;c[n+(o*44|0)+12>>2]=l+(e*104|0);m=c[b+720>>2]|0;c[n+(o*44|0)+16>>2]=m+(g*104|0);t=+f[k+(d*104|0)+8>>2];v=+f[k+(d*104|0)+12>>2];q=+f[k+(d*104|0)+16>>2];r=+f[l+(e*104|0)+8>>2]-t;w=+f[l+(e*104|0)+12>>2]-v;u=+f[l+(e*104|0)+16>>2]-q;t=+f[m+(g*104|0)+8>>2]-t;v=+f[m+(g*104|0)+12>>2]-v;q=+f[m+(g*104|0)+16>>2]-q;f[n+(o*44|0)+36>>2]=+s(+((r*v-w*t)*(r*v-w*t)+((w*q-u*v)*(w*q-u*v)+(u*t-r*q)*(u*t-r*q))));a[b+924>>0]=1;ea=p;return}function bf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=ea;ea=ea+64|0;h=c[a+24>>2]|0;c[h+(b*80|0)>>2]=c[d>>2];c[h+(b*80|0)+4>>2]=c[d+4>>2];c[h+(b*80|0)+8>>2]=c[d+8>>2];c[h+(b*80|0)+12>>2]=c[d+12>>2];c[h+(b*80|0)+16>>2]=c[d+16>>2];c[h+(b*80|0)+16+4>>2]=c[d+16+4>>2];c[h+(b*80|0)+16+8>>2]=c[d+16+8>>2];c[h+(b*80|0)+16+12>>2]=c[d+16+12>>2];c[h+(b*80|0)+32>>2]=c[d+32>>2];c[h+(b*80|0)+32+4>>2]=c[d+32+4>>2];c[h+(b*80|0)+32+8>>2]=c[d+32+8>>2];c[h+(b*80|0)+32+12>>2]=c[d+32+12>>2];c[h+(b*80|0)+48>>2]=c[d+48>>2];c[h+(b*80|0)+48+4>>2]=c[d+48+4>>2];c[h+(b*80|0)+48+8>>2]=c[d+48+8>>2];c[h+(b*80|0)+48+12>>2]=c[d+48+12>>2];if(!(c[a+64>>2]|0)){h=c[a>>2]|0;h=h+68|0;h=c[h>>2]|0;Ca[h&511](a);ea=i;return}h=c[(c[a+24>>2]|0)+(b*80|0)+64>>2]|0;Pa[c[(c[h>>2]|0)+8>>2]&127](h,d,i+48|0,i+32|0);c[i>>2]=c[i+48>>2];c[i+4>>2]=c[i+48+4>>2];c[i+8>>2]=c[i+48+8>>2];c[i+12>>2]=c[i+48+12>>2];c[i+16>>2]=c[i+32>>2];c[i+16+4>>2]=c[i+32+4>>2];c[i+16+8>>2]=c[i+32+8>>2];c[i+16+12>>2]=c[i+32+12>>2];h=c[a+64>>2]|0;g=c[(c[a+24>>2]|0)+(b*80|0)+76>>2]|0;d=jg(h,g)|0;a:do if(d){e=c[h+8>>2]|0;if((e|0)<=-1){d=c[h>>2]|0;break}if(e){f=0;b=d;while(1){d=c[b+32>>2]|0;f=f+1|0;if(!d){d=b;break a}if((f|0)>=(e|0))break;else b=d}}}else d=0;while(0);c[g>>2]=c[i>>2];c[g+4>>2]=c[i+4>>2];c[g+8>>2]=c[i+8>>2];c[g+12>>2]=c[i+12>>2];c[g+16>>2]=c[i+16>>2];c[g+20>>2]=c[i+20>>2];c[g+24>>2]=c[i+24>>2];c[g+28>>2]=c[i+28>>2];je(h,d,g);h=c[a>>2]|0;h=h+68|0;h=c[h>>2]|0;Ca[h&511](a);ea=i;return}function cf(a,b,d,e,g,h,i,j,k,l,m){a=a|0;b=b|0;d=d|0;e=e|0;g=+g;h=+h;i=+i;j=+j;k=k|0;l=l|0;m=+m;var n=0,o=0.0,p=0.0,q=0,r=0.0,s=0.0;q=ea;ea=ea+208|0;Ko(q+192|0,+f[d>>2],+f[d+4>>2],+f[d+8>>2],+f[e>>2],+f[e+4>>2],+f[e+8>>2]);n=(~~((j-i)/(m*.01745329238474369))|0)==0?1:~~((j-i)/(m*.01745329238474369));$y(q+128|0,g,+f[e>>2],+f[e+4>>2],+f[e+8>>2]);m=+DJ(i);_p(q+144|0,+f[q+128>>2],+f[q+128+4>>2],+f[q+128+8>>2],m);vp(q+160|0,+f[b>>2],+f[b+4>>2],+f[b+8>>2],+f[q+144>>2],+f[q+144+4>>2],+f[q+144+8>>2]);m=+f[q+192>>2];o=+f[q+192+4>>2];p=+f[q+192+8>>2];$y(q+96|0,h,m,o,p);r=+CJ(i);_p(q+112|0,+f[q+96>>2],+f[q+96+4>>2],+f[q+96+8>>2],r);vp(q+176|0,+f[q+160>>2],+f[q+160+4>>2],+f[q+160+8>>2],+f[q+112>>2],+f[q+112+4>>2],+f[q+112+8>>2]);if(l)Pa[c[(c[a>>2]|0)+8>>2]&127](a,b,q+176|0,k);d=1;while(1){if((d|0)>(n|0))break;r=(j-i)*+(d|0)/+(n|0)+i;$y(q+32|0,g,+f[e>>2],+f[e+4>>2],+f[e+8>>2]);s=+DJ(r);_p(q+48|0,+f[q+32>>2],+f[q+32+4>>2],+f[q+32+8>>2],s);vp(q+64|0,+f[b>>2],+f[b+4>>2],+f[b+8>>2],+f[q+48>>2],+f[q+48+4>>2],+f[q+48+8>>2]);$y(q,h,m,o,p);r=+CJ(r);_p(q+16|0,+f[q>>2],+f[q+4>>2],+f[q+8>>2],r);vp(q+80|0,+f[q+64>>2],+f[q+64+4>>2],+f[q+64+8>>2],+f[q+16>>2],+f[q+16+4>>2],+f[q+16+8>>2]);Pa[c[(c[a>>2]|0)+8>>2]&127](a,q+176|0,q+80|0,k);c[q+176>>2]=c[q+80>>2];c[q+176+4>>2]=c[q+80+4>>2];c[q+176+8>>2]=c[q+80+8>>2];c[q+176+12>>2]=c[q+80+12>>2];d=d+1|0}if(!l){ea=q;return}Pa[c[(c[a>>2]|0)+8>>2]&127](a,b,q+176|0,k);ea=q;return}function df(b,d){b=b|0;d=d|0;var e=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0,l=0,m=0;e=+f[b+1192+(d<<2)>>2];i=+f[b+868+(d<<6)>>2];j=+f[b+868+(d<<6)+4>>2];do if(!(i>=j)){if(e3.1415927410125732)g=(i-e)%6.2831854820251465+-6.2831854820251465;else g=(i-e)%6.2831854820251465;else g=(i-e)%6.2831854820251465+6.2831854820251465;g=+r(+g);if(!((j-e)%6.2831854820251465<-3.1415927410125732))if((j-e)%6.2831854820251465>3.1415927410125732)h=(j-e)%6.2831854820251465+-6.2831854820251465;else h=(j-e)%6.2831854820251465;else h=(j-e)%6.2831854820251465+6.2831854820251465;m=g<+r(+h);e=m?e:e+6.2831854820251465;break}if(e>j){if(!((e-j)%6.2831854820251465<-3.1415927410125732))if((e-j)%6.2831854820251465>3.1415927410125732)g=(e-j)%6.2831854820251465+-6.2831854820251465;else g=(e-j)%6.2831854820251465;else g=(e-j)%6.2831854820251465+6.2831854820251465;g=+r(+g);if(!((e-i)%6.2831854820251465<-3.1415927410125732))if((e-i)%6.2831854820251465>3.1415927410125732)h=(e-i)%6.2831854820251465+-6.2831854820251465;else h=(e-i)%6.2831854820251465;else h=(e-i)%6.2831854820251465+6.2831854820251465;m=+r(+h)>2]=e;do if(!(i>j)){if(i>e){c[b+868+(d<<6)+56>>2]=1;e=e-i;f[b+868+(d<<6)+48>>2]=e;if(e>3.1415927410125732){f[b+868+(d<<6)+48>>2]=e+-6.2831854820251465;break}if(!(e<-3.1415927410125732))break;f[b+868+(d<<6)+48>>2]=e+6.2831854820251465;break}if(j>2]=2;e=e-j;f[b+868+(d<<6)+48>>2]=e;if(e>3.1415927410125732){f[b+868+(d<<6)+48>>2]=e+-6.2831854820251465;break}if(e<-3.1415927410125732)f[b+868+(d<<6)+48>>2]=e+6.2831854820251465}else{k=b+868+(d<<6)+56|0;l=34}}else{k=b+868+(d<<6)+56|0;l=34}while(0);if((l|0)==34?(c[k>>2]=0,(a[b+868+(d<<6)+44>>0]|0)==0):0){m=0;return m|0}m=1;return m|0}function ef(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=ea;ea=ea+64|0;i=c[a+24>>2]|0;c[i+(b*80|0)>>2]=c[d>>2];c[i+(b*80|0)+4>>2]=c[d+4>>2];c[i+(b*80|0)+8>>2]=c[d+8>>2];c[i+(b*80|0)+12>>2]=c[d+12>>2];c[i+(b*80|0)+16>>2]=c[d+16>>2];c[i+(b*80|0)+16+4>>2]=c[d+16+4>>2];c[i+(b*80|0)+16+8>>2]=c[d+16+8>>2];c[i+(b*80|0)+16+12>>2]=c[d+16+12>>2];c[i+(b*80|0)+32>>2]=c[d+32>>2];c[i+(b*80|0)+32+4>>2]=c[d+32+4>>2];c[i+(b*80|0)+32+8>>2]=c[d+32+8>>2];c[i+(b*80|0)+32+12>>2]=c[d+32+12>>2];c[i+(b*80|0)+48>>2]=c[d+48>>2];c[i+(b*80|0)+48+4>>2]=c[d+48+4>>2];c[i+(b*80|0)+48+8>>2]=c[d+48+8>>2];c[i+(b*80|0)+48+12>>2]=c[d+48+12>>2];if(c[a+64>>2]|0){i=c[(c[a+24>>2]|0)+(b*80|0)+64>>2]|0;Pa[c[(c[i>>2]|0)+8>>2]&127](i,d,j+48|0,j+32|0);c[j>>2]=c[j+48>>2];c[j+4>>2]=c[j+48+4>>2];c[j+8>>2]=c[j+48+8>>2];c[j+12>>2]=c[j+48+12>>2];c[j+16>>2]=c[j+32>>2];c[j+16+4>>2]=c[j+32+4>>2];c[j+16+8>>2]=c[j+32+8>>2];c[j+16+12>>2]=c[j+32+12>>2];i=c[a+64>>2]|0;h=c[(c[a+24>>2]|0)+(b*80|0)+76>>2]|0;d=jg(i,h)|0;a:do if(d){f=c[i+8>>2]|0;if((f|0)<=-1){d=c[i>>2]|0;break}if(f){g=0;b=d;while(1){d=c[b+32>>2]|0;g=g+1|0;if(!d){d=b;break a}if((g|0)>=(f|0))break;else b=d}}}else d=0;while(0);c[h>>2]=c[j>>2];c[h+4>>2]=c[j+4>>2];c[h+8>>2]=c[j+8>>2];c[h+12>>2]=c[j+12>>2];c[h+16>>2]=c[j+16>>2];c[h+20>>2]=c[j+20>>2];c[h+24>>2]=c[j+24>>2];c[h+28>>2]=c[j+28>>2];je(i,d,h)}if(!e){ea=j;return}Ca[c[(c[a>>2]|0)+68>>2]&511](a);ea=j;return}function ff(b,d){b=b|0;d=+d;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0;l=ea;ea=ea+16|0;Fi(14684);e=c[b+232>>2]|0;if((e|0)>0){k=(a[27556]|0)==0;j=0;do{i=c[(c[b+240>>2]|0)+(j<<2)>>2]|0;a:do if(i){g=c[i+216>>2]|0;b:do switch(g|0){case 4:case 2:{if((g|0)==4)break a;break}default:{p=+f[i+312>>2];o=+f[i+316>>2];n=+f[i+320>>2];m=+f[i+472>>2];if(p*p+o*o+n*n>2],n=+f[i+332>>2],o=+f[i+336>>2],p=+f[i+476>>2],m*m+n*n+o*o>2]=+f[i+220>>2]+d;break b}f[i+220>>2]=0.0;if((g&-2|0)!=4){c[i+216>>2]=0;g=0}}}while(0);h=g&-2;do if(k){if((h|0)!=2?!(+f[i+220>>2]>2.0):0)break;if(c[i+204>>2]&3|0){if((h|0)==4)break a;c[i+216>>2]=2;break a}if((g|0)==1){c[i+216>>2]=3;break a}if((g|0)!=2)break a;e=(c[i+260>>2]|0)+2|0;c[i+328>>2]=0;c[i+328+4>>2]=0;c[i+328+8>>2]=0;c[i+328+12>>2]=0;c[i+260>>2]=e;c[i+312>>2]=0;c[i+312+4>>2]=0;c[i+312+8>>2]=0;c[i+312+12>>2]=0;e=c[b+232>>2]|0;break a}while(0);if((h|0)!=4)c[i+216>>2]=1}while(0);j=j+1|0}while((j|0)<(e|0))}e=c[2685]|0;k=(c[e+16>>2]|0)+-1|0;c[e+16>>2]=k;if(k|0){ea=l;return}do if(c[e+4>>2]|0){Y(l|0,0)|0;k=c[6746]|0;f[e+8>>2]=+f[e+8>>2]+ +(((c[l+4>>2]|0)-(c[k+4>>2]|0)+(((c[l>>2]|0)-(c[k>>2]|0)|0)*1e6|0)-(c[e+12>>2]|0)|0)>>>0)/1.0e3;if(!(c[e+16>>2]|0)){e=c[2685]|0;break}else{ea=l;return}}while(0);c[2685]=c[e+20>>2];ea=l;return}function gf(b){b=b|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=c[b+4>>2]|0;if((m|0)<=0)return;d=c[b+12>>2]|0;e=0;j=0;do{l=c[(c[d+(e<<2)>>2]|0)+384>>2]|0;j=(j|0)>(l|0)?j:l;e=e+1|0}while((e|0)!=(m|0));e=0;while(1){d=c[d+(e<<2)>>2]|0;if((c[d+852>>2]|0)>0){g=0;do{l=c[(c[d+860>>2]|0)+(g<<2)>>2]|0;Ga[c[(c[l>>2]|0)+8>>2]&15](l,+f[d+452>>2],j);g=g+1|0}while((g|0)<(c[d+852>>2]|0))}e=e+1|0;if((e|0)==(m|0))break;d=c[b+12>>2]|0}if((j|0)>0){h=0;do{i=0;do{d=c[(c[b+12>>2]|0)+(i<<2)>>2]|0;e=c[d+852>>2]|0;if((e|0)>0){g=0;do{l=c[(c[d+860>>2]|0)+(g<<2)>>2]|0;Ea[c[(c[l>>2]|0)+12>>2]&7](l,+f[d+452>>2],1.0);g=g+1|0}while((g|0)!=(e|0))}i=i+1|0}while((i|0)!=(m|0));h=h+1|0}while((h|0)!=(j|0))}l=0;do{k=c[(c[b+12>>2]|0)+(l<<2)>>2]|0;if((c[k+852>>2]|0)>0){g=0;do{d=c[(c[k+860>>2]|0)+(g<<2)>>2]|0;Da[c[(c[d>>2]|0)+16>>2]&31](d,+f[k+452>>2]);d=c[k+860>>2]|0;e=c[d+(g<<2)>>2]|0;a:do if(a[e+152>>0]|0){if(!e)j=d;else{c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0);j=c[k+860>>2]|0}d=g+-1|0;e=c[k+852>>2]|0;if((e|0)>0){i=c[j+(g<<2)>>2]|0;g=0;while(1){h=j+(g<<2)|0;if((c[h>>2]|0)==(i|0))break;g=g+1|0;if((g|0)>=(e|0))break a}if((g|0)<(e|0)){c[h>>2]=c[j+(e+-1<<2)>>2];c[(c[k+860>>2]|0)+(e+-1<<2)>>2]=i;c[k+852>>2]=e+-1;e=e+-1|0}}}else{e=c[k+852>>2]|0;d=g}while(0);g=d+1|0}while((g|0)<(e|0))}l=l+1|0}while((l|0)!=(m|0));return}function hf(a,b,d){a=a|0;b=+b;d=+d;var e=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0.0,s=0,t=0,u=0,v=0.0,w=0.0,x=0.0,y=0.0;u=ea;ea=ea+16|0;k=+f[a+452>>2];p=c[a+192>>2]|0;r=+ha[c[(c[p>>2]|0)+48>>2]&15](p);p=c[a+812>>2]|0;if((p|0)<=0){ea=u;return}s=0;do{q=c[a+820>>2]|0;t=c[q+(s*104|0)>>2]|0;t=(c[t+236>>2]&2|0)==0?0:t;if(t|0){o=+f[t+332>>2];e=+f[q+(s*104|0)+84>>2];j=+f[t+336>>2];m=+f[q+(s*104|0)+80>>2];g=+f[q+(s*104|0)+76>>2];n=+f[t+328>>2];d=k*(o*e-j*m+ +f[t+312>>2]);e=k*(+f[t+316>>2]+(j*g-e*n));g=k*(m*n-o*g+ +f[t+320>>2])}else{d=0.0;e=0.0;g=0.0}l=c[q+(s*104|0)+24>>2]|0;m=+f[l+8>>2];n=+f[l+12>>2];o=+f[l+16>>2];j=m-+f[l+24>>2]-d;i=n-+f[l+28>>2]-e;h=o-+f[l+32>>2]-g;d=+f[q+(s*104|0)+4>>2];e=+f[q+(s*104|0)+8>>2];g=+f[q+(s*104|0)+12>>2];if(j*d+i*e+h*g<=1.1920928955078125e-07?(x=m*d+n*e+o*g+ +f[q+(s*104|0)+20>>2],y=+f[q+(s*104|0)+96>>2],x=(x>2],w=(j-(j-d*(j*d+i*e+h*g))*y+d*x)*b,v=(i-(i-e*(j*d+i*e+h*g))*y+e*x)*b,i=(h-(h-g*(j*d+i*e+h*g))*y+g*x)*b,g=+f[q+(s*104|0)+36>>2]*i+(+f[q+(s*104|0)+28>>2]*w+ +f[q+(s*104|0)+32>>2]*v),h=w*+f[q+(s*104|0)+44>>2]+v*+f[q+(s*104|0)+48>>2]+i*+f[q+(s*104|0)+52>>2],i=w*+f[q+(s*104|0)+60>>2]+v*+f[q+(s*104|0)+64>>2]+i*+f[q+(s*104|0)+68>>2],f[u>>2]=g,f[u+4>>2]=h,f[u+8>>2]=i,f[u+12>>2]=0.0,j=+f[q+(s*104|0)+92>>2],f[l+8>>2]=m-g*j,f[l+12>>2]=n-h*j,f[l+16>>2]=o-i*j,t|0):0)uk(t,u,q+(s*104|0)+76|0);s=s+1|0}while((s|0)!=(p|0));ea=u;return}function jf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0.0;g=ea;ea=ea+224|0;xp(g+192|0,+f[d>>2],+f[d+4>>2],+f[d+8>>2],+f[b>>2],+f[b+4>>2],+f[b+8>>2]);_p(g+208|0,+f[g+192>>2],+f[g+192+4>>2],+f[g+192+8>>2],.5);vp(g+160|0,+f[d>>2],+f[d+4>>2],+f[d+8>>2],+f[b>>2],+f[b+4>>2],+f[b+8>>2]);_p(g+176|0,+f[g+160>>2],+f[g+160+4>>2],+f[g+160+8>>2],.5);f[g+136>>2]=1.0;f[g+132>>2]=1.0;f[g+128>>2]=1.0;qs(g+144|0,g+136|0,g+132|0,g+128|0);b=0;while(1){if((b|0)==4)break;d=0;while(1){if((d|0)==3)break;i=NJ(g+144|0)|0;k=+f[i>>2];h=NJ(g+208|0)|0;f[g+72>>2]=k*+f[h>>2];f[g+68>>2]=+f[i+4>>2]*+f[h+4>>2];f[g+64>>2]=+f[i+8>>2]*+f[h+8>>2];qs(g+80|0,g+72|0,g+68|0,g+64|0);c[g+112>>2]=c[g+80>>2];c[g+112+4>>2]=c[g+80+4>>2];c[g+112+8>>2]=c[g+80+8>>2];c[g+112+12>>2]=c[g+80+12>>2];Lr(g+112|0,g+176|0)|0;j=i+(((d>>>0)%3|0)<<2)|0;f[j>>2]=-+f[j>>2];f[g+40>>2]=+f[i>>2]*+f[h>>2];f[g+36>>2]=+f[i+4>>2]*+f[h+4>>2];f[g+32>>2]=+f[i+8>>2]*+f[h+8>>2];qs(g+48|0,g+40|0,g+36|0,g+32|0);c[g+96>>2]=c[g+48>>2];c[g+96+4>>2]=c[g+48+4>>2];c[g+96+8>>2]=c[g+48+8>>2];c[g+96+12>>2]=c[g+48+12>>2];Lr(g+96|0,g+176|0)|0;Pa[c[(c[a>>2]|0)+8>>2]&127](a,g+112|0,g+96|0,e);d=d+1|0}f[g+8>>2]=-1.0;f[g+4>>2]=-1.0;f[g>>2]=-1.0;qs(g+16|0,g+8|0,g+4|0,g);c[g+144>>2]=c[g+16>>2];c[g+144+4>>2]=c[g+16+4>>2];c[g+144+8>>2]=c[g+16+8>>2];c[g+144+12>>2]=c[g+16+12>>2];if(b>>>0<3){j=(NJ(g+144|0)|0)+(b<<2)|0;f[j>>2]=-+f[j>>2]}b=b+1|0}ea=g;return}function kf(b,d,e){b=b|0;d=d|0;e=e|0;var g=0,h=0,i=0;c[b+4>>2]=1065353216;c[b+8>>2]=1065353216;c[b+12>>2]=1065353216;f[b+16>>2]=0.0;a[b+36>>0]=1;c[b+32>>2]=0;c[b+24>>2]=0;c[b+28>>2]=0;c[b+48>>2]=0;c[b>>2]=9764;a[b+100>>0]=1;c[b+96>>2]=0;c[b+88>>2]=0;c[b+92>>2]=0;a[b+120>>0]=1;c[b+116>>2]=0;c[b+108>>2]=0;c[b+112>>2]=0;a[b+140>>0]=1;c[b+136>>2]=0;c[b+128>>2]=0;c[b+132>>2]=0;a[b+160>>0]=1;c[b+156>>2]=0;c[b+148>>2]=0;c[b+152>>2]=0;a[b+164>>0]=d&1;a[b+165>>0]=e&1;f[b+168>>2]=0.0;c[6747]=(c[6747]|0)+1;d=kb(51)|0;if(!d)g=0;else{c[(d+4+15&-16)+-4>>2]=d;g=d+4+15&-16}d=c[b+24>>2]|0;if((d|0)>0){e=0;do{h=g+(e<<5)|0;i=(c[b+32>>2]|0)+(e<<5)|0;c[h>>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];c[h+12>>2]=c[i+12>>2];c[h+16>>2]=c[i+16>>2];c[h+20>>2]=c[i+20>>2];c[h+24>>2]=c[i+24>>2];c[h+28>>2]=c[i+28>>2];e=e+1|0}while((e|0)!=(d|0))}d=c[b+32>>2]|0;if(d|0){if(a[b+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+32>>2]=0}a[b+36>>0]=1;c[b+32>>2]=g;c[b+28>>2]=1;i=c[b+24>>2]|0;c[g+(i<<5)>>2]=0;c[g+(i<<5)+4>>2]=0;c[g+(i<<5)+8>>2]=12;c[g+(i<<5)+12>>2]=0;c[g+(i<<5)+16>>2]=0;c[g+(i<<5)+20>>2]=16;c[g+(i<<5)+24>>2]=2;c[g+(i<<5)+28>>2]=0;c[b+24>>2]=(c[b+24>>2]|0)+1;i=(a[b+164>>0]|0)==0;d=c[b+32>>2]|0;c[d>>2]=(c[(i?b+148|0:b+128|0)>>2]|0)/3|0;c[d+4>>2]=0;c[d+24>>2]=i?3:2;c[d+8>>2]=i?6:12;if(!(a[b+165>>0]|0)){h=12;b=(c[b+108>>2]|0)/3|0;i=d+12|0;c[i>>2]=b;i=d+16|0;c[i>>2]=0;i=d+20|0;c[i>>2]=h;return}else{h=16;b=c[b+88>>2]|0;i=d+12|0;c[i>>2]=b;i=d+16|0;c[i>>2]=0;i=d+20|0;c[i>>2]=h;return}}function lf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=ea;ea=ea+32|0;if((b|0)<0)b=c[a+12>>2]|0;d=c[a>>2]|0;if(!((b|0)>0&(d|0)!=0)){ea=m;return}while(1){e=d+40|0;if(c[e>>2]|0){l=0;while(1){k=d+32|0;f=c[k>>2]|0;if(f>>>0>d>>>0){i=(c[f+40>>2]|0)==(d|0);g=c[f+36+(((i^1)&1)<<2)>>2]|0;h=c[f+32>>2]|0;if(!h)j=a;else j=h+36+(((c[h+40>>2]|0)==(f|0)&1)<<2)|0;c[j>>2]=d;c[g+32>>2]=d;c[f+32>>2]=d;c[k>>2]=h;k=d+36|0;c[f+36>>2]=c[k>>2];c[f+40>>2]=c[e>>2];c[(c[k>>2]|0)+32>>2]=f;c[(c[e>>2]|0)+32>>2]=f;c[d+36+((i&1)<<2)>>2]=f;c[d+36+(((i^1)&1)<<2)>>2]=g;c[m>>2]=c[f>>2];c[m+4>>2]=c[f+4>>2];c[m+8>>2]=c[f+8>>2];c[m+12>>2]=c[f+12>>2];c[m+16>>2]=c[f+16>>2];c[m+20>>2]=c[f+20>>2];c[m+24>>2]=c[f+24>>2];c[m+28>>2]=c[f+28>>2];c[f>>2]=c[d>>2];c[f+4>>2]=c[d+4>>2];c[f+8>>2]=c[d+8>>2];c[f+12>>2]=c[d+12>>2];c[f+16>>2]=c[d+16>>2];c[f+20>>2]=c[d+20>>2];c[f+24>>2]=c[d+24>>2];c[f+28>>2]=c[d+28>>2];c[d>>2]=c[m>>2];c[d+4>>2]=c[m+4>>2];c[d+8>>2]=c[m+8>>2];c[d+12>>2]=c[m+12>>2];c[d+16>>2]=c[m+16>>2];c[d+20>>2]=c[m+20>>2];c[d+24>>2]=c[m+24>>2];c[d+28>>2]=c[m+28>>2];d=f}e=c[a+16>>2]|0;d=c[d+36+(((l?e>>>l:e)&1)<<2)>>2]|0;e=d+40|0;if(!(c[e>>2]|0))break;else l=l+1&31}}if(!(jg(a,d)|0))e=0;else e=c[a>>2]|0;je(a,e,d);c[a+16>>2]=(c[a+16>>2]|0)+1;b=b+-1|0;if(!b)break;d=c[a>>2]|0}ea=m;return}function mf(b){b=b|0;var d=0,e=0.0,g=0,h=0,i=0.0,j=0.0,k=0;k=ea;ea=ea+64|0;Fi(14854);a:do if(!(a[b+274>>0]|0)){d=c[b+232>>2]|0;if((d|0)>0){h=0;while(1){g=c[(c[b+240>>2]|0)+(h<<2)>>2]|0;switch(c[g+216>>2]|0){case 2:case 5:break;default:if((c[g+480>>2]|0)!=0?(c[g+204>>2]&3|0)==0:0){if((a[b+300>>0]|0)!=0?(j=+f[b+268>>2],j!=0.0):0)e=+f[b+264>>2]-j;else e=+f[b+264>>2]*+f[g+244>>2];ag(g+68|0,+f[g+132>>2],+f[g+136>>2],+f[g+140>>2],g+148|0,e,k);d=c[g+480>>2]|0;Ia[c[(c[d>>2]|0)+12>>2]&127](d,k);d=c[b+232>>2]|0}}h=h+1|0;if((h|0)>=(d|0))break a}}}else{d=c[b+8>>2]|0;if((d|0)>0){h=0;do{g=c[(c[b+16>>2]|0)+(h<<2)>>2]|0;if((!((g|0)==0?1:(c[g+236>>2]&2|0)==0)?(c[g+480>>2]|0)!=0:0)?(c[g+204>>2]&3|0)==0:0){if((a[b+300>>0]|0)!=0?(i=+f[b+268>>2],i!=0.0):0)e=+f[b+264>>2]-i;else e=+f[b+264>>2]*+f[g+244>>2];ag(g+68|0,+f[g+132>>2],+f[g+136>>2],+f[g+140>>2],g+148|0,e,k);d=c[g+480>>2]|0;Ia[c[(c[d>>2]|0)+12>>2]&127](d,k);d=c[b+8>>2]|0}h=h+1|0}while((h|0)<(d|0))}}while(0);d=c[2685]|0;b=(c[d+16>>2]|0)+-1|0;c[d+16>>2]=b;if(b|0){ea=k;return}do if(c[d+4>>2]|0){Y(k|0,0)|0;b=c[6746]|0;f[d+8>>2]=+f[d+8>>2]+ +(((c[k+4>>2]|0)-(c[b+4>>2]|0)+(((c[k>>2]|0)-(c[b>>2]|0)|0)*1e6|0)-(c[d+12>>2]|0)|0)>>>0)/1.0e3;if(!(c[d+16>>2]|0)){d=c[2685]|0;break}else{ea=k;return}}while(0);c[2685]=c[d+20>>2];ea=k;return}function nf(b,d,e,g,h){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0;i=ea;ea=ea+32|0;d=(a[b+8>>0]|0)==0?e:d;if(((c[(c[d+4>>2]|0)+4>>2]|0)+-21|0)>>>0>=9){ea=i;return}e=c[(c[d+8>>2]|0)+192>>2]|0;w=+ha[c[(c[e>>2]|0)+48>>2]&15](e);c[b+64>>2]=g;f[b+68>>2]=w+.05999999865889549;c[b+56>>2]=h;h=c[b+16>>2]|0;Ma[c[(c[h>>2]|0)+28>>2]&127](h,i+16|0,i);w=+f[i>>2];v=+f[i+16>>2];q=+f[i+4>>2];p=+f[i+16+4>>2];y=+f[i+8>>2];x=+f[i+16+8>>2];h=c[d+12>>2]|0;C=+f[h>>2];B=+f[h+16>>2];n=+f[h+32>>2];A=+f[h+4>>2];z=+f[h+20>>2];l=+f[h+36>>2];u=+f[h+8>>2];t=+f[h+24>>2];s=+f[h+40>>2];D=-+f[h+48>>2];j=-+f[h+52>>2];k=-+f[h+56>>2];o=(w+v)*.5*C+(q+p)*.5*B+(y+x)*.5*n+(C*D+B*j+n*k);m=(w+v)*.5*A+(q+p)*.5*z+(y+x)*.5*l+(A*D+z*j+l*k);k=(w+v)*.5*u+(q+p)*.5*t+(y+x)*.5*s+(u*D+t*j+s*k);j=+f[b+68>>2];n=+r(+(n+(C*0.0+B*0.0)))*((y-x)*.5+j)+(+r(+(C+B*0.0+n*0.0))*((w-v)*.5+j)+ +r(+(C*0.0+B+n*0.0))*((q-p)*.5+j));l=+r(+(l+(A*0.0+z*0.0)))*((y-x)*.5+j)+(+r(+(A+z*0.0+l*0.0))*((w-v)*.5+j)+ +r(+(A*0.0+z+l*0.0))*((q-p)*.5+j));j=+r(+(s+(u*0.0+t*0.0)))*((y-x)*.5+j)+(+r(+(u+t*0.0+s*0.0))*((w-v)*.5+j)+ +r(+(u*0.0+t+s*0.0))*((q-p)*.5+j));f[b+24>>2]=o-n;f[b+28>>2]=m-l;f[b+32>>2]=k-j;f[b+36>>2]=0.0;f[b+40>>2]=o+n;f[b+44>>2]=m+l;f[b+48>>2]=k+j;f[b+52>>2]=0.0;Pa[c[(c[e>>2]|0)+64>>2]&127](e,b+12|0,b+24|0,b+40|0);ea=i;return}function of(b,d,e,g){b=b|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0;k=ea;ea=ea+16|0;c[b+8>>2]=0;c[b+12>>2]=1065353216;c[b+16>>2]=1065353216;c[b+20>>2]=1065353216;f[b+24>>2]=0.0;f[b+44>>2]=.03999999910593033;c[b+52>>2]=0;c[b+56>>2]=1065353216;c[b+60>>2]=1065353216;c[b+64>>2]=1065353216;f[b+68>>2]=0.0;c[b+72>>2]=-1082130432;c[b+76>>2]=-1082130432;c[b+80>>2]=-1082130432;f[b+84>>2]=0.0;a[b+88>>0]=0;c[b>>2]=8568;a[b+108>>0]=1;c[b+104>>2]=0;c[b+96>>2]=0;c[b+100>>2]=0;c[b+4>>2]=4;if((e|0)<=0){c[b+96>>2]=e;Bi(b);ea=k;return}c[6747]=(c[6747]|0)+1;h=kb((e<<4|3)+16|0)|0;if(!h)j=0;else{c[(h+4+15&-16)+-4>>2]=h;j=h+4+15&-16}h=c[b+96>>2]|0;if((h|0)>0){i=0;do{l=j+(i<<4)|0;m=(c[b+104>>2]|0)+(i<<4)|0;c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];i=i+1|0}while((i|0)!=(h|0))}h=c[b+104>>2]|0;if(h|0){if(a[b+108>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[h+-4>>2]|0)}c[b+104>>2]=0}a[b+108>>0]=1;c[b+104>>2]=j;c[b+100>>2]=e;c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];c[j+12>>2]=c[k+12>>2];if((e|0)!=1){h=1;do{m=(c[b+104>>2]|0)+(h<<4)|0;c[m>>2]=c[k>>2];c[m+4>>2]=c[k+4>>2];c[m+8>>2]=c[k+8>>2];c[m+12>>2]=c[k+12>>2];h=h+1|0}while((h|0)!=(e|0))}c[b+96>>2]=e;i=0;h=d;while(1){d=c[h+4>>2]|0;l=c[h+8>>2]|0;m=c[b+104>>2]|0;c[m+(i<<4)>>2]=c[h>>2];c[m+(i<<4)+4>>2]=d;c[m+(i<<4)+8>>2]=l;f[m+(i<<4)+12>>2]=0.0;i=i+1|0;if((i|0)==(e|0))break;else h=h+g|0}Bi(b);ea=k;return}function pf(b,d,e,f,g,h,i,j,k){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0;m=ea;ea=ea+16|0;if(!((c[b+924>>2]|0)==0?(a[b+912>>0]|0)==0:0)){c[m>>2]=c[b+1208>>2];c[m+4>>2]=c[b+1208+4>>2];c[m+8>>2]=c[b+1208+8>>2];c[m+12>>2]=c[b+1208+12>>2];l=c[b+1304>>2]|0;if(!(l&512))c[b+896>>2]=c[c[d+32>>2]>>2];if(!(l&1024))c[b+904>>2]=c[c[d+32>>2]>>2];if(!(l&2048))c[b+900>>2]=c[d+4>>2];e=(xc(b,b+868|0,f,g,h,i,j,k,d,e,m,1,0)|0)+e|0}if(!((c[b+988>>2]|0)==0?(a[b+976>>0]|0)==0:0)){c[m>>2]=c[b+1224>>2];c[m+4>>2]=c[b+1224+4>>2];c[m+8>>2]=c[b+1224+8>>2];c[m+12>>2]=c[b+1224+12>>2];l=c[b+1304>>2]|0;if(!(l&4096))c[b+960>>2]=c[c[d+32>>2]>>2];if(!(l&8192))c[b+968>>2]=c[c[d+32>>2]>>2];if(!(l&16384))c[b+964>>2]=c[d+4>>2];e=(xc(b,b+932|0,f,g,h,i,j,k,d,e,m,1,0)|0)+e|0}if((c[b+1052>>2]|0)==0?(a[b+1040>>0]|0)==0:0){g=e;ea=m;return g|0}c[m>>2]=c[b+1240>>2];c[m+4>>2]=c[b+1240+4>>2];c[m+8>>2]=c[b+1240+8>>2];c[m+12>>2]=c[b+1240+12>>2];l=c[b+1304>>2]|0;if(!(l&32768))c[b+1024>>2]=c[c[d+32>>2]>>2];if(!(l&65536))c[b+1032>>2]=c[c[d+32>>2]>>2];if(!(l&131072))c[b+1028>>2]=c[d+4>>2];g=(xc(b,b+996|0,f,g,h,i,j,k,d,e,m,1,0)|0)+e|0;ea=m;return g|0}function qf(b){b=b|0;var d=0;c[b>>2]=5872;d=c[b+176>>2]|0;if(d|0){if(a[b+180>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+176>>2]=0}a[b+180>>0]=1;c[b+176>>2]=0;c[b+168>>2]=0;c[b+172>>2]=0;d=c[b+156>>2]|0;if(d|0){if(a[b+160>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+156>>2]=0}a[b+160>>0]=1;c[b+156>>2]=0;c[b+148>>2]=0;c[b+152>>2]=0;d=c[b+136>>2]|0;if(d|0){if(a[b+140>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+136>>2]=0}a[b+140>>0]=1;c[b+136>>2]=0;c[b+128>>2]=0;c[b+132>>2]=0;d=c[b+116>>2]|0;if(d|0){if(a[b+120>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+116>>2]=0}a[b+120>>0]=1;c[b+116>>2]=0;c[b+108>>2]=0;c[b+112>>2]=0;d=c[b+96>>2]|0;if(d|0){if(a[b+100>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+96>>2]=0}a[b+100>>0]=1;c[b+96>>2]=0;c[b+88>>2]=0;c[b+92>>2]=0;d=c[b+76>>2]|0;if(d|0){if(a[b+80>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+76>>2]=0}a[b+80>>0]=1;c[b+76>>2]=0;c[b+68>>2]=0;c[b+72>>2]=0;d=c[b+56>>2]|0;if(d|0){if(a[b+60>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+56>>2]=0}a[b+60>>0]=1;c[b+56>>2]=0;c[b+48>>2]=0;c[b+52>>2]=0;d=c[b+36>>2]|0;if(d|0){if(a[b+40>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+36>>2]=0}a[b+40>>0]=1;c[b+36>>2]=0;c[b+28>>2]=0;c[b+32>>2]=0;d=c[b+16>>2]|0;if(!d){a[b+20>>0]=1;c[b+16>>2]=0;c[b+8>>2]=0;b=b+12|0;c[b>>2]=0;return}if(a[b+20>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+16>>2]=0;a[b+20>>0]=1;c[b+16>>2]=0;c[b+8>>2]=0;b=b+12|0;c[b>>2]=0;return}function rf(a,b,e){a=a|0;b=b|0;e=e|0;ie(a,b,e)|0;c[b+256>>2]=c[a+264>>2];c[b+260>>2]=c[a+268>>2];c[b+264>>2]=c[a+272>>2];c[b+268>>2]=c[a+276>>2];c[b+272>>2]=c[a+280>>2];c[b+276>>2]=c[a+284>>2];c[b+280>>2]=c[a+288>>2];c[b+284>>2]=c[a+292>>2];c[b+288>>2]=c[a+296>>2];c[b+292>>2]=c[a+300>>2];c[b+296>>2]=c[a+304>>2];c[b+300>>2]=c[a+308>>2];c[b+304>>2]=c[a+312>>2];c[b+308>>2]=c[a+316>>2];c[b+312>>2]=c[a+320>>2];c[b+316>>2]=c[a+324>>2];c[b+320>>2]=c[a+328>>2];c[b+324>>2]=c[a+332>>2];c[b+328>>2]=c[a+336>>2];c[b+332>>2]=c[a+340>>2];c[b+448>>2]=c[a+344>>2];c[b+336>>2]=c[a+544>>2];c[b+340>>2]=c[a+548>>2];c[b+344>>2]=c[a+552>>2];c[b+348>>2]=c[a+556>>2];c[b+352>>2]=c[a+348>>2];c[b+356>>2]=c[a+352>>2];c[b+360>>2]=c[a+356>>2];c[b+364>>2]=c[a+360>>2];c[b+368>>2]=c[a+364>>2];c[b+372>>2]=c[a+368>>2];c[b+376>>2]=c[a+372>>2];c[b+380>>2]=c[a+376>>2];c[b+384>>2]=c[a+380>>2];c[b+388>>2]=c[a+384>>2];c[b+392>>2]=c[a+388>>2];c[b+396>>2]=c[a+392>>2];c[b+400>>2]=c[a+396>>2];c[b+404>>2]=c[a+400>>2];c[b+408>>2]=c[a+404>>2];c[b+412>>2]=c[a+408>>2];c[b+416>>2]=c[a+412>>2];c[b+420>>2]=c[a+416>>2];c[b+424>>2]=c[a+420>>2];c[b+428>>2]=c[a+424>>2];c[b+432>>2]=c[a+428>>2];c[b+436>>2]=c[a+432>>2];c[b+440>>2]=c[a+436>>2];c[b+444>>2]=c[a+440>>2];c[b+452>>2]=c[a+444>>2];c[b+456>>2]=c[a+448>>2];c[b+484>>2]=d[a+452>>0];c[b+460>>2]=c[a+456>>2];c[b+464>>2]=c[a+460>>2];c[b+468>>2]=c[a+464>>2];c[b+472>>2]=c[a+468>>2];c[b+476>>2]=c[a+472>>2];c[b+480>>2]=c[a+476>>2];return 14480}function sf(b,d,e,g,h){b=b|0;d=+d;e=e|0;g=g|0;h=h|0;var i=0;i=ea;ea=ea+144|0;c[b+164>>2]=1065353216;c[b+168>>2]=1065353216;c[b+172>>2]=1065353216;f[b+176>>2]=0.0;c[b+180>>2]=0;f[b+184>>2]=999999984306749440.0;c[b+188>>2]=0;c[b+188+4>>2]=0;c[b+188+8>>2]=0;c[b+188+12>>2]=0;c[b+204>>2]=1;c[b+208>>2]=-1;c[b+212>>2]=-1;c[b+216>>2]=1;f[b+220>>2]=0.0;f[b+224>>2]=.5;f[b+228>>2]=0.0;f[b+232>>2]=0.0;c[b+236>>2]=1;c[b+240>>2]=0;f[b+244>>2]=1.0;c[b+248>>2]=0;c[b+248+4>>2]=0;c[b+248+8>>2]=0;c[b+248+12>>2]=0;c[b+4>>2]=1065353216;c[b+8>>2]=0;c[b+8+4>>2]=0;c[b+8+8>>2]=0;c[b+8+12>>2]=0;c[b+24>>2]=1065353216;c[b+28>>2]=0;c[b+28+4>>2]=0;c[b+28+8>>2]=0;c[b+28+12>>2]=0;c[b+44>>2]=1065353216;c[b+48>>2]=0;c[b+48+4>>2]=0;c[b+48+8>>2]=0;c[b+48+12>>2]=0;c[b+48+16>>2]=0;c[b>>2]=5172;a[b+500>>0]=1;c[b+496>>2]=0;c[b+488>>2]=0;c[b+492>>2]=0;f[i>>2]=d;c[i+4>>2]=e;c[i+72>>2]=g;c[i+76>>2]=c[h>>2];c[i+76+4>>2]=c[h+4>>2];c[i+76+8>>2]=c[h+8>>2];c[i+76+12>>2]=c[h+12>>2];f[i+92>>2]=0.0;f[i+96>>2]=0.0;f[i+100>>2]=.5;f[i+104>>2]=0.0;f[i+108>>2]=0.0;f[i+112>>2]=.800000011920929;f[i+116>>2]=1.0;a[i+120>>0]=0;f[i+124>>2]=.004999999888241291;f[i+128>>2]=.009999999776482582;f[i+132>>2]=.009999999776482582;f[i+136>>2]=.009999999776482582;c[i+8>>2]=1065353216;c[i+12>>2]=0;c[i+12+4>>2]=0;c[i+12+8>>2]=0;c[i+12+12>>2]=0;c[i+28>>2]=1065353216;c[i+32>>2]=0;c[i+32+4>>2]=0;c[i+32+8>>2]=0;c[i+32+12>>2]=0;c[i+48>>2]=1065353216;c[i+52>>2]=0;c[i+52+4>>2]=0;c[i+52+8>>2]=0;c[i+52+12>>2]=0;c[i+52+16>>2]=0;Cc(b,i);ea=i;return}function tf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0,z=0.0,A=0.0;y=ea;ea=ea+48|0;u=+f[e>>2];v=+f[d>>2];w=+f[e+4>>2];x=+f[d+4>>2];t=+f[e+8>>2];i=+f[d+8>>2];j=+s(+((u-v)*.5*((u-v)*.5)+(w-x)*.5*((w-x)*.5)+(t-i)*.5*((t-i)*.5)));k=+f[a+56>>2];if(+r(+k)>.7071067690849304){z=+f[a+52>>2];q=1.0/+s(+(k*k+z*z));A=+f[a+48>>2];g=A;h=z;l=A*-(k*q);m=0.0;n=-(k*q);o=z*q;p=(k*k+z*z)*q;q=-(A*(z*q))}else{p=+f[a+48>>2];A=+f[a+52>>2];q=1.0/+s(+(p*p+A*A));g=p;h=A;l=(p*p+A*A)*q;m=-(A*q);n=p*q;o=0.0;p=-(k*(p*q));q=k*-(A*q)}A=k*((t+i)*.5)+((u+v)*.5*g+(w+x)*.5*h)-+f[a+64>>2];w=(w+x)*.5-h*A;h=(u+v)*.5-g*A;m=j*m;v=j*n;z=j*o;p=j*p;u=j*q;x=j*l;f[y>>2]=p+(m+h);f[y+4>>2]=u+(v+w);f[y+8>>2]=x+(z+((t+i)*.5-k*A));f[y+12>>2]=0.0;f[y+16>>2]=m+h-p;f[y+20>>2]=v+w-u;f[y+24>>2]=z+((t+i)*.5-k*A)-x;f[y+28>>2]=0.0;f[y+32>>2]=h-m-p;f[y+36>>2]=w-v-u;f[y+40>>2]=(t+i)*.5-k*A-z-x;f[y+44>>2]=0.0;Pa[c[(c[b>>2]|0)+8>>2]&127](b,y,0,0);f[y>>2]=h-m-p;f[y+4>>2]=w-v-u;f[y+8>>2]=(t+i)*.5-k*A-z-x;f[y+12>>2]=0.0;f[y+16>>2]=p+(h-m);f[y+20>>2]=u+(w-v);f[y+24>>2]=x+((t+i)*.5-k*A-z);f[y+28>>2]=0.0;f[y+32>>2]=p+(m+h);f[y+36>>2]=u+(v+w);f[y+40>>2]=x+(z+((t+i)*.5-k*A));f[y+44>>2]=0.0;Pa[c[(c[b>>2]|0)+8>>2]&127](b,y,0,1);ea=y;return}function uf(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;Uc(b,d);c[b>>2]=4132;c[6747]=(c[6747]|0)+1;e=kb(27)|0;i=e+4+15&-16;c[i+-4>>2]=e;a[i+4>>0]=0;c[(e+4+15&-16)>>2]=4164;c[b+92>>2]=i;c[6747]=(c[6747]|0)+1;i=kb(27)|0;e=i+4+15&-16;c[e+-4>>2]=i;a[e+4>>0]=0;c[(i+4+15&-16)>>2]=4184;c[b+96>>2]=e;c[6747]=(c[6747]|0)+1;e=kb(27)|0;if(!e)e=0;else{c[(e+4+15&-16)+-4>>2]=e;e=e+4+15&-16}c[e>>2]=4184;c[b+100>>2]=e;a[e+4>>0]=1;c[6747]=(c[6747]|0)+1;i=kb(27)|0;e=i+4+15&-16;c[e+-4>>2]=i;a[e+4>>0]=0;c[(i+4+15&-16)>>2]=4204;c[b+104>>2]=e;c[6747]=(c[6747]|0)+1;e=kb(27)|0;if(!e)e=0;else{c[(e+4+15&-16)+-4>>2]=e;e=e+4+15&-16}c[e>>2]=4224;c[b+108>>2]=e;a[e+4>>0]=1;if(!(a[b+20>>0]|0))return;e=c[b+16>>2]|0;if(!e)return;if((c[e>>2]|0)>=156)return;f=c[e+16>>2]|0;if(f){c[6748]=(c[6748]|0)+1;uc(c[f+-4>>2]|0);e=c[b+16>>2]|0;if(!e)i=b+16|0;else{f=b+16|0;g=11}}else{f=b+16|0;g=11}if((g|0)==11){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0);i=f}c[6747]=(c[6747]|0)+1;e=kb(39)|0;if(!e)h=0;else{c[(e+4+15&-16)+-4>>2]=e;h=e+4+15&-16}e=c[d+12>>2]|0;c[h>>2]=156;f=h+4|0;c[f>>2]=e;c[6747]=(c[6747]|0)+1;e=kb((e*156|3)+16|0)|0;if(!e)e=0;else{c[(e+4+15&-16)+-4>>2]=e;e=e+4+15&-16}c[h+16>>2]=e;c[h+12>>2]=e;f=c[f>>2]|0;c[h+8>>2]=f;if(f+-1|0){b=c[h>>2]|0;g=f+-1|0;d=e;do{j=d;d=d+b|0;c[j>>2]=d;g=g+-1|0}while((g|0)!=0);e=e+(z(b,f+-1|0)|0)|0}c[e>>2]=0;c[i>>2]=h;return}function vf(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=c[d>>2]|0;l=ta[c[(c[l>>2]|0)+56>>2]&31](l,48)|0;c[l+4>>2]=c[d>>2];c[l>>2]=7340;a[l+28>>0]=1;c[l+24>>2]=0;c[l+16>>2]=0;c[l+20>>2]=0;c[l+32>>2]=c[d+4>>2];a[l+36>>0]=0;c[6747]=(c[6747]|0)+1;b=kb(87)|0;if(!b)k=0;else{c[(b+4+15&-16)+-4>>2]=b;k=b+4+15&-16}c[k>>2]=10636;h=k+20|0;a[h>>0]=1;j=k+16|0;c[j>>2]=0;d=k+8|0;c[d>>2]=0;i=k+12|0;c[i>>2]=0;a[k+24>>0]=0;a[k+44>>0]=1;c[k+40>>2]=0;c[k+32>>2]=0;c[k+36>>2]=0;a[k+64>>0]=1;c[k+60>>2]=0;c[k+52>>2]=0;c[k+56>>2]=0;c[6747]=(c[6747]|0)+1;b=kb(43)|0;if(!b)g=0;else{c[(b+4+15&-16)+-4>>2]=b;g=b+4+15&-16}b=c[d>>2]|0;if((b|0)>0){d=0;do{m=g+(d*12|0)|0;n=(c[j>>2]|0)+(d*12|0)|0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];d=d+1|0}while((d|0)!=(b|0))}b=c[j>>2]|0;if(!b){a[h>>0]=1;c[j>>2]=g;c[i>>2]=2;He(k);n=l+8|0;c[n>>2]=k;n=e+4|0;n=c[n>>2]|0;n=n+68|0;n=c[n>>2]|0;m=l+40|0;c[m>>2]=n;m=f+4|0;m=c[m>>2]|0;m=m+68|0;m=c[m>>2]|0;n=l+44|0;c[n>>2]=m;return l|0}if(a[h>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[b+-4>>2]|0)}c[j>>2]=0;a[h>>0]=1;c[j>>2]=g;c[i>>2]=2;He(k);n=l+8|0;c[n>>2]=k;n=e+4|0;n=c[n>>2]|0;n=n+68|0;n=c[n>>2]|0;m=l+40|0;c[m>>2]=n;m=f+4|0;m=c[m>>2]|0;m=m+68|0;m=c[m>>2]|0;n=l+44|0;c[n>>2]=m;return l|0}function wf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;c[6733]=(c[6733]|0)+1;g=(d<<16|b)+~((d<<16|b)<<15)|0;g=((10?g>>10:g)^g)*9|0;g=(6?g>>6:g)^g;l=c[a+40>>2]|0;g=l+(((c[a+12>>2]|0)+-1&((16?g+~(g<<11)>>16:g+~(g<<11)|0)^g+~(g<<11)))<<2)|0;f=c[g>>2]|0;if((f|0)==-1){n=0;return n|0}m=c[a+16>>2]|0;e=f;while(1){k=m+(e*12|0)|0;if((c[k>>2]|0)==(b|0)?(c[m+(e*12|0)+4>>2]|0)==(d|0):0)break;e=c[(c[a+60>>2]|0)+(e<<2)>>2]|0;if((e|0)==-1){e=0;n=23;break}}if((n|0)==23)return e|0;if(!k){n=0;return n|0}j=c[m+(e*12|0)+8>>2]|0;i=(e*12|0)/12|0;h=c[a+60>>2]|0;if((f|0)!=(i|0)){d=f;while(1){b=h+(d<<2)|0;e=c[b>>2]|0;if((e|0)==(i|0))break;else d=e}e=c[h+(i<<2)>>2]|0;if((d|0)==-1)n=12;else c[b>>2]=e}else{e=c[h+(f<<2)>>2]|0;n=12}if((n|0)==12)c[g>>2]=e;g=(c[a+8>>2]|0)+-1|0;if((g|0)==(i|0)){c[a+8>>2]=i;n=j;return n|0}f=c[m+(g*12|0)+4>>2]<<16|c[m+(g*12|0)>>2];f=((10?f+~(f<<15)>>10:f+~(f<<15)|0)^f+~(f<<15))*9|0;f=(6?f>>6:f)^f;f=((16?f+~(f<<11)>>16:f+~(f<<11)|0)^f+~(f<<11))&(c[a+12>>2]|0)+-1;e=c[l+(f<<2)>>2]|0;if((e|0)!=(g|0)){d=e;while(1){b=h+(d<<2)|0;e=c[b>>2]|0;if((e|0)==(g|0))break;else d=e}e=c[h+(g<<2)>>2]|0;if((d|0)==-1)n=21;else c[b>>2]=e}else{e=c[h+(g<<2)>>2]|0;n=21}if((n|0)==21)c[l+(f<<2)>>2]=e;c[k>>2]=c[m+(g*12|0)>>2];c[k+4>>2]=c[m+(g*12|0)+4>>2];c[k+8>>2]=c[m+(g*12|0)+8>>2];n=(c[a+40>>2]|0)+(f<<2)|0;c[(c[a+60>>2]|0)+(i<<2)>>2]=c[n>>2];c[n>>2]=i;c[a+8>>2]=(c[a+8>>2]|0)+-1;n=j;return n|0}function xf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;Ca[c[(c[b>>2]|0)+32>>2]&511](b);e=va[c[(c[b>>2]|0)+16>>2]&63](b,104,1)|0;d=c[e+8>>2]|0;f=d;g=f+104|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));c[d+88>>2]=c[a+248>>2];c[d+92>>2]=c[a+252>>2];c[d+96>>2]=c[a+256>>2];c[d+100>>2]=c[a+260>>2];c[d>>2]=c[a+92>>2];c[d+4>>2]=c[a+96>>2];c[d+8>>2]=c[a+100>>2];c[d+12>>2]=c[a+104>>2];c[d+16>>2]=c[a+108>>2];c[d+20>>2]=c[a+116>>2];c[d+24>>2]=c[a+120>>2];c[d+28>>2]=c[a+124>>2];c[d+32>>2]=c[a+128>>2];c[d+36>>2]=c[a+132>>2];c[d+40>>2]=c[a+140>>2];c[d+44>>2]=c[a+144>>2];c[d+48>>2]=c[a+148>>2];c[d+52>>2]=c[a+152>>2];c[d+56>>2]=c[a+168>>2];c[d+60>>2]=c[a+172>>2];c[d+64>>2]=c[a+112>>2];c[d+68>>2]=c[a+156>>2];c[d+72>>2]=c[a+160>>2];c[d+76>>2]=c[a+164>>2];c[d+80>>2]=c[a+136>>2];Ta[c[(c[b>>2]|0)+20>>2]&31](b,e,14893,1145853764,d);d=c[a+8>>2]|0;if((d|0)<=0){ri(a,b);nc(a,b);a=c[b>>2]|0;a=a+36|0;a=c[a>>2]|0;Ca[a&511](b);return}f=0;do{e=c[(c[a+16>>2]|0)+(f<<2)>>2]|0;if(c[e+236>>2]&8){g=ra[c[(c[e>>2]|0)+16>>2]&127](e)|0;g=va[c[(c[b>>2]|0)+16>>2]&63](b,g,1)|0;d=va[c[(c[e>>2]|0)+20>>2]&63](e,c[g+8>>2]|0,b)|0;Ta[c[(c[b>>2]|0)+20>>2]&31](b,g,d,1497645651,e);d=c[a+8>>2]|0}f=f+1|0}while((f|0)<(d|0));ri(a,b);nc(a,b);a=c[b>>2]|0;a=a+36|0;a=c[a>>2]|0;Ca[a&511](b);return}function yf(a,b){a=a|0;b=+b;var d=0,e=0,g=0,h=0,i=0.0,j=0.0,k=0.0;h=ea;ea=ea+32|0;d=c[a+8>>2]|0;if((d|0)<=0){ea=h;return}g=0;do{e=c[(c[a+16>>2]|0)+(g<<2)>>2]|0;if((!((e|0)==0?1:(c[e+236>>2]&2|0)==0)?(c[e+216>>2]|0)!=2:0)?!(b==0.0?1:(c[e+204>>2]&2|0)==0):0){d=c[e+480>>2]|0;if(!d)d=e+4|0;else{Ia[c[(c[d>>2]|0)+8>>2]&127](d,e+4|0);d=e+4|0}j=1.0/b*(+f[e+56>>2]-+f[e+120>>2]);k=1.0/b*(+f[e+60>>2]-+f[e+124>>2]);f[e+312>>2]=1.0/b*(+f[e+52>>2]-+f[e+116>>2]);f[e+316>>2]=j;f[e+320>>2]=k;f[e+324>>2]=0.0;Ee(e+68|0,d,h+8|0,h);k=+f[h>>2];j=1.0/b*(k*+f[h+8+4>>2]);i=1.0/b*(k*+f[h+8+8>>2]);f[e+328>>2]=1.0/b*(+f[h+8>>2]*k);f[e+332>>2]=j;f[e+336>>2]=i;f[e+340>>2]=0.0;c[e+132>>2]=c[e+312>>2];c[e+132+4>>2]=c[e+312+4>>2];c[e+132+8>>2]=c[e+312+8>>2];c[e+132+12>>2]=c[e+312+12>>2];c[e+148>>2]=c[e+328>>2];c[e+148+4>>2]=c[e+328+4>>2];c[e+148+8>>2]=c[e+328+8>>2];c[e+148+12>>2]=c[e+328+12>>2];c[e+68>>2]=c[d>>2];c[e+68+4>>2]=c[d+4>>2];c[e+68+8>>2]=c[d+8>>2];c[e+68+12>>2]=c[d+12>>2];c[e+84>>2]=c[e+20>>2];c[e+84+4>>2]=c[e+20+4>>2];c[e+84+8>>2]=c[e+20+8>>2];c[e+84+12>>2]=c[e+20+12>>2];c[e+100>>2]=c[e+36>>2];c[e+100+4>>2]=c[e+36+4>>2];c[e+100+8>>2]=c[e+36+8>>2];c[e+100+12>>2]=c[e+36+12>>2];c[e+116>>2]=c[e+52>>2];c[e+116+4>>2]=c[e+52+4>>2];c[e+116+8>>2]=c[e+52+8>>2];c[e+116+12>>2]=c[e+52+12>>2];d=c[a+8>>2]|0}g=g+1|0}while((g|0)<(d|0));ea=h;return}function zf(b,d){b=b|0;d=d|0;var e=0;e=xs()|0;c[e+4>>2]=5;c[e>>2]=5660;c[e+8>>2]=-1;c[e+12>>2]=-1;f[e+16>>2]=3402823466385288598117041.0e14;a[e+20>>0]=1;a[e+21>>0]=0;c[e+24>>2]=-1;c[e+28>>2]=b;Jk();c[e+32>>2]=25640;f[e+36>>2]=0.0;f[e+40>>2]=.30000001192092896;c[e+44>>2]=0;c[e>>2]=5764;c[e+300>>2]=c[d>>2];c[e+300+4>>2]=c[d+4>>2];c[e+300+8>>2]=c[d+8>>2];c[e+300+12>>2]=c[d+12>>2];c[e+316>>2]=c[d+16>>2];c[e+316+4>>2]=c[d+16+4>>2];c[e+316+8>>2]=c[d+16+8>>2];c[e+316+12>>2]=c[d+16+12>>2];c[e+332>>2]=c[d+32>>2];c[e+332+4>>2]=c[d+32+4>>2];c[e+332+8>>2]=c[d+32+8>>2];c[e+332+12>>2]=c[d+32+12>>2];c[e+348>>2]=c[d+48>>2];c[e+348+4>>2]=c[d+48+4>>2];c[e+348+8>>2]=c[d+48+8>>2];c[e+348+12>>2]=c[d+48+12>>2];a[e+527>>0]=0;c[e+364>>2]=c[e+300>>2];c[e+364+4>>2]=c[e+300+4>>2];c[e+364+8>>2]=c[e+300+8>>2];c[e+364+12>>2]=c[e+300+12>>2];c[e+380>>2]=c[e+316>>2];c[e+380+4>>2]=c[e+316+4>>2];c[e+380+8>>2]=c[e+316+8>>2];c[e+380+12>>2]=c[e+316+12>>2];c[e+396>>2]=c[e+332>>2];c[e+396+4>>2]=c[e+332+4>>2];c[e+396+8>>2]=c[e+332+8>>2];c[e+396+12>>2]=c[e+332+12>>2];a[e+524>>0]=0;a[e+525>>0]=0;a[e+526>>0]=0;a[e+552>>0]=0;c[e+412>>2]=0;c[e+412+4>>2]=0;c[e+412+8>>2]=0;c[e+412+12>>2]=0;f[e+572>>2]=-1.0;f[e+444>>2]=999999984306749440.0;f[e+448>>2]=999999984306749440.0;f[e+452>>2]=999999984306749440.0;f[e+428>>2]=1.0;f[e+432>>2]=.30000001192092896;f[e+436>>2]=1.0;f[e+440>>2]=.009999999776482582;f[e+456>>2]=.05000000074505806;c[e+592>>2]=0;f[e+596>>2]=0.0;f[e+600>>2]=.699999988079071;f[e+604>>2]=0.0;return e|0}function Af(a,b,d,e,g){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;var h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,t=0;t=ea;ea=ea+32|0;r=c[a+12>>2]|0;if(!r){ea=t;return}c[g+4>>2]=r;a=c[b+4>>2]|0;e=c[d+4>>2]|0;b=c[b+12>>2]|0;d=c[d+12>>2]|0;n=+f[d+48>>2];h=+f[b+48>>2]-n;o=+f[d+52>>2];i=+f[b+52>>2]-o;l=+f[d+56>>2];k=+f[b+56>>2]-l;m=+s(+(h*h+i*i+k*k));q=+f[e+28>>2]*+f[e+12>>2];p=+f[a+28>>2]*+f[a+12>>2]+q;if(m>p){if(!(c[r+748>>2]|0)){ea=t;return}e=c[r+740>>2]|0;a=c[(c[g+8>>2]|0)+8>>2]|0;if((e|0)==(a|0)){Hd(r,e+4|0,(c[(c[g+12>>2]|0)+8>>2]|0)+4|0);ea=t;return}else{Hd(r,(c[(c[g+12>>2]|0)+8>>2]|0)+4|0,a+4|0);ea=t;return}}c[t+16>>2]=1065353216;c[t+16+4>>2]=0;c[t+16+8>>2]=0;f[t+16+12>>2]=0.0;if(m>1.1920928955078125e-07){f[t+16>>2]=h*(1.0/m);f[t+16+4>>2]=i*(1.0/m);f[t+16+8>>2]=k*(1.0/m);f[t+16+12>>2]=0.0;j=h*(1.0/m);i=i*(1.0/m);h=k*(1.0/m)}else{j=1.0;i=0.0;h=0.0}f[t>>2]=n+q*j;f[t+4>>2]=o+q*i;f[t+8>>2]=l+q*h;f[t+12>>2]=0.0;Na[c[(c[g>>2]|0)+16>>2]&15](g,t+16|0,t,m-p);e=c[g+4>>2]|0;do if(c[e+748>>2]|0){a=c[e+740>>2]|0;b=c[(c[g+8>>2]|0)+8>>2]|0;if((a|0)==(b|0)){Hd(e,a+4|0,(c[(c[g+12>>2]|0)+8>>2]|0)+4|0);break}else{Hd(e,(c[(c[g+12>>2]|0)+8>>2]|0)+4|0,b+4|0);break}}while(0);ea=t;return}function Bf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=c[b+236>>2]|0;if((b|0)==0|(d|0)!=8){if(!((b|0)==0|(d&2|0)==0)){Ia[c[(c[a>>2]|0)+92>>2]&127](a,b);return}d=c[b+188>>2]|0;if(d|0){h=c[a+68>>2]|0;h=ra[c[(c[h>>2]|0)+36>>2]&127](h)|0;Ma[c[(c[h>>2]|0)+40>>2]&127](h,d,c[a+24>>2]|0);h=c[a+68>>2]|0;Ma[c[(c[h>>2]|0)+12>>2]&127](h,d,c[a+24>>2]|0);c[b+188>>2]=0}d=c[a+8>>2]|0;if((d|0)<=0)return;e=c[a+16>>2]|0;g=0;while(1){f=e+(g<<2)|0;if((c[f>>2]|0)==(b|0))break;h=g+1|0;if((h|0)<(d|0))g=h;else{i=26;break}}if((i|0)==26)return;if((g|0)>=(d|0))return;c[f>>2]=c[e+(d+-1<<2)>>2];c[(c[a+16>>2]|0)+(d+-1<<2)>>2]=b;c[a+8>>2]=d+-1;return}f=c[a+328>>2]|0;a:do if((f|0)>0){g=c[a+336>>2]|0;d=0;while(1){e=g+(d<<2)|0;if((c[e>>2]|0)==(b|0))break;d=d+1|0;if((d|0)>=(f|0))break a}if((d|0)<(f|0)){c[e>>2]=c[g+(f+-1<<2)>>2];c[(c[a+336>>2]|0)+(f+-1<<2)>>2]=b;c[a+328>>2]=f+-1}}while(0);d=c[b+188>>2]|0;if(d|0){h=c[a+68>>2]|0;h=ra[c[(c[h>>2]|0)+36>>2]&127](h)|0;Ma[c[(c[h>>2]|0)+40>>2]&127](h,d,c[a+24>>2]|0);h=c[a+68>>2]|0;Ma[c[(c[h>>2]|0)+12>>2]&127](h,d,c[a+24>>2]|0);c[b+188>>2]=0}d=c[a+8>>2]|0;if((d|0)<=0)return;e=c[a+16>>2]|0;g=0;while(1){f=e+(g<<2)|0;if((c[f>>2]|0)==(b|0))break;h=g+1|0;if((h|0)<(d|0))g=h;else{i=26;break}}if((i|0)==26)return;if((g|0)>=(d|0))return;c[f>>2]=c[e+(d+-1<<2)>>2];c[(c[a+16>>2]|0)+(d+-1<<2)>>2]=b;c[a+8>>2]=d+-1;return}function Cf(b,d,e,g){b=b|0;d=+d;e=e|0;g=+g;var h=0,i=0.0,j=0,k=0;k=ea;ea=ea+16|0;Y(c[6746]|0,0)|0;mr(26944);c[6737]=(c[6737]|0)+1;j=c[6740]|0;c[6740]=j+1;if(!j){Y(k|0,0)|0;j=c[6746]|0;c[6739]=(c[k+4>>2]|0)-(c[j+4>>2]|0)+(((c[k>>2]|0)-(c[j>>2]|0)|0)*1e6|0)}c[6745]=0;Y(k|0,0)|0;Fi(14878);if(e){f[b+268>>2]=g;i=+f[b+264>>2]+d;f[b+264>>2]=i;if(!(i>=g)){d=g;j=0}else{f[b+264>>2]=i-+(~~(i/g)|0)*g;d=g;j=~~(i/g)}}else{f[b+264>>2]=(a[b+300>>0]|0)==0?d:0.0;f[b+268>>2]=0.0;j=!(+r(+d)<1.1920928955078125e-07)&1;e=j}if(ra[c[(c[b>>2]|0)+20>>2]&127](b)|0){h=ra[c[(c[b>>2]|0)+20>>2]&127](b)|0;h=ra[c[(c[h>>2]|0)+48>>2]&127](h)|0;a[27556]=(4?h>>>4:h)&1}if(j){e=(j|0)>(e|0)?e:j;Da[c[(c[b>>2]|0)+164>>2]&31](b,d*+(e|0));Ca[c[(c[b>>2]|0)+168>>2]&511](b);if((e|0)>0){h=0;do{Da[c[(c[b>>2]|0)+160>>2]&31](b,d);Ca[c[(c[b>>2]|0)+80>>2]&511](b);h=h+1|0}while((h|0)<(e|0));e=b}else e=b}else{Ca[c[(c[b>>2]|0)+80>>2]&511](b);e=b}Ca[c[(c[e>>2]|0)+120>>2]&511](b);c[6745]=(c[6745]|0)+1;e=c[2685]|0;b=(c[e+16>>2]|0)+-1|0;c[e+16>>2]=b;if(b|0){ea=k;return j|0}do if(c[e+4>>2]|0){Y(k|0,0)|0;b=c[6746]|0;f[e+8>>2]=+f[e+8>>2]+ +(((c[k+4>>2]|0)-(c[b+4>>2]|0)+(((c[k>>2]|0)-(c[b>>2]|0)|0)*1e6|0)-(c[e+12>>2]|0)|0)>>>0)/1.0e3;if(!(c[e+16>>2]|0)){e=c[2685]|0;break}else{ea=k;return j|0}}while(0);c[2685]=c[e+20>>2];ea=k;return j|0}function Df(a,b,d){a=a|0;b=b|0;d=+d;var e=0,g=0,h=0;e=ea;ea=ea+288|0;f[e+280>>2]=d;h=MI(b)|0;c[e+264>>2]=c[h>>2];c[e+264+4>>2]=c[h+4>>2];c[e+264+8>>2]=c[h+8>>2];c[e+264+12>>2]=c[h+12>>2];h=c[(c[a>>2]|0)+8>>2]|0;g=NJ(b)|0;f[e+212>>2]=0.0;f[e+208>>2]=0.0;qs(e+216|0,e+280|0,e+212|0,e+208|0);ql(e+232|0,g,+f[e+216>>2],+f[e+216+4>>2],+f[e+216+8>>2]);vp(e+248|0,+f[e+264>>2],+f[e+264+4>>2],+f[e+264+8>>2],+f[e+232>>2],+f[e+232+4>>2],+f[e+232+8>>2]);f[e+184>>2]=.699999988079071;f[e+180>>2]=0.0;f[e+176>>2]=0.0;qs(e+192|0,e+184|0,e+180|0,e+176|0);Pa[h&127](a,e+264|0,e+248|0,e+192|0);b=c[(c[a>>2]|0)+8>>2]|0;f[e+124>>2]=0.0;f[e+120>>2]=0.0;qs(e+128|0,e+124|0,e+280|0,e+120|0);ql(e+144|0,g,+f[e+128>>2],+f[e+128+4>>2],+f[e+128+8>>2]);vp(e+160|0,+f[e+264>>2],+f[e+264+4>>2],+f[e+264+8>>2],+f[e+144>>2],+f[e+144+4>>2],+f[e+144+8>>2]);f[e+96>>2]=0.0;f[e+92>>2]=.699999988079071;f[e+88>>2]=0.0;qs(e+104|0,e+96|0,e+92|0,e+88|0);Pa[b&127](a,e+264|0,e+160|0,e+104|0);b=c[(c[a>>2]|0)+8>>2]|0;f[e+36>>2]=0.0;f[e+32>>2]=0.0;qs(e+40|0,e+36|0,e+32|0,e+280|0);ql(e+56|0,g,+f[e+40>>2],+f[e+40+4>>2],+f[e+40+8>>2]);vp(e+72|0,+f[e+264>>2],+f[e+264+4>>2],+f[e+264+8>>2],+f[e+56>>2],+f[e+56+4>>2],+f[e+56+8>>2]);f[e+8>>2]=0.0;f[e+4>>2]=0.0;f[e>>2]=.699999988079071;qs(e+16|0,e+8|0,e+4|0,e);Pa[b&127](a,e+264|0,e+72|0,e+16|0);ea=e;return}function Ef(a){a=a|0;var b=0,d=0,e=0.0,g=0.0,h=0.0,i=0.0,j=0,k=0,l=0,m=0.0,n=0.0,o=0,p=0.0;b=c[a+712>>2]|0;if((b|0)>0){d=0;do{l=(c[a+720>>2]|0)+(d*104|0)+72|0;d=d+1|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0}while((d|0)!=(b|0))}b=c[a+752>>2]|0;if((b|0)>0){d=0;do{o=c[a+760>>2]|0;k=c[o+(d*44|0)+12>>2]|0;j=c[o+(d*44|0)+8>>2]|0;i=+f[j+8>>2];e=+f[k+8>>2]-i;g=+f[j+12>>2];h=+f[k+12>>2]-g;m=+f[j+16>>2];n=+f[k+16>>2]-m;l=c[o+(d*44|0)+16>>2]|0;i=+f[l+8>>2]-i;g=+f[l+12>>2]-g;m=+f[l+16>>2]-m;p=1.0/+s(+((e*g-h*i)*(e*g-h*i)+((h*m-n*g)*(h*m-n*g)+(n*i-e*m)*(n*i-e*m))));f[o+(d*44|0)+20>>2]=(h*m-n*g)*p;f[o+(d*44|0)+24>>2]=(n*i-e*m)*p;f[o+(d*44|0)+28>>2]=(e*g-h*i)*p;c[o+(d*44|0)+32>>2]=0;f[j+72>>2]=h*m-n*g+ +f[j+72>>2];f[j+76>>2]=n*i-e*m+ +f[j+76>>2];f[j+80>>2]=e*g-h*i+ +f[j+80>>2];f[k+72>>2]=h*m-n*g+ +f[k+72>>2];f[k+76>>2]=n*i-e*m+ +f[k+76>>2];f[k+80>>2]=e*g-h*i+ +f[k+80>>2];f[l+72>>2]=h*m-n*g+ +f[l+72>>2];f[l+76>>2]=n*i-e*m+ +f[l+76>>2];f[l+80>>2]=e*g-h*i+ +f[l+80>>2];d=d+1|0}while((d|0)!=(b|0))}l=c[a+712>>2]|0;if((l|0)<=0)return;b=c[a+720>>2]|0;k=0;do{d=b+(k*104|0)+72|0;e=+f[d>>2];j=b+(k*104|0)+76|0;g=+f[j>>2];a=b+(k*104|0)+80|0;h=+f[a>>2];i=+s(+(e*e+g*g+h*h));if(i>1.1920928955078125e-07){f[d>>2]=e*(1.0/i);f[j>>2]=g*(1.0/i);f[a>>2]=h*(1.0/i)}k=k+1|0}while((k|0)!=(l|0));return}function Ff(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0;h=+f[d+100>>2];j=+f[d+16>>2];k=+f[d+20>>2];l=+f[d+24>>2];e=+f[d+108>>2];e=+f[d+112>>2]-h*+f[d+116>>2]-(j*+f[a+64>>2]+k*+f[a+68>>2]+l*+f[a+72>>2]+(+f[d>>2]*+f[a+80>>2]+ +f[d+4>>2]*+f[a+84>>2]+ +f[d+8>>2]*+f[a+88>>2]))*e-e*(+f[d+48>>2]*+f[b+64>>2]+ +f[d+52>>2]*+f[b+68>>2]+ +f[d+56>>2]*+f[b+72>>2]+(+f[d+32>>2]*+f[b+80>>2]+ +f[d+36>>2]*+f[b+84>>2]+ +f[d+40>>2]*+f[b+88>>2]));g=+f[d+120>>2];if(!(h+e>2];if(h+e>g){i=g;e=g-h}else i=h+e}else{i=g;e=g-h}f[d+100>>2]=i;if(c[a+240>>2]|0){i=e*(k*+f[a+132>>2])*+f[a+116>>2];k=e*(l*+f[a+136>>2])*+f[a+120>>2];f[a+64>>2]=+f[a+112>>2]*(e*(j*+f[a+128>>2]))+ +f[a+64>>2];f[a+68>>2]=i+ +f[a+68>>2];f[a+72>>2]=k+ +f[a+72>>2];k=e*+f[a+100>>2]*+f[d+68>>2];l=e*+f[a+104>>2]*+f[d+72>>2];f[a+80>>2]=e*+f[a+96>>2]*+f[d+64>>2]+ +f[a+80>>2];f[a+84>>2]=k+ +f[a+84>>2];f[a+88>>2]=l+ +f[a+88>>2]}if(!(c[b+240>>2]|0))return;l=e*(+f[d+52>>2]*+f[b+132>>2])*+f[b+116>>2];k=e*(+f[d+56>>2]*+f[b+136>>2])*+f[b+120>>2];f[b+64>>2]=+f[b+112>>2]*(e*(+f[d+48>>2]*+f[b+128>>2]))+ +f[b+64>>2];f[b+68>>2]=l+ +f[b+68>>2];f[b+72>>2]=k+ +f[b+72>>2];k=e*+f[b+100>>2]*+f[d+84>>2];l=e*+f[b+104>>2]*+f[d+88>>2];f[b+80>>2]=e*+f[b+96>>2]*+f[d+80>>2]+ +f[b+80>>2];f[b+84>>2]=k+ +f[b+84>>2];f[b+88>>2]=l+ +f[b+88>>2];return}function Gf(b,d,e,g){b=b|0;d=d|0;e=e|0;g=g|0;var h=0;h=xs()|0;c[h+4>>2]=5;c[h+8>>2]=-1;c[h+12>>2]=-1;f[h+16>>2]=3402823466385288598117041.0e14;a[h+20>>0]=1;a[h+21>>0]=0;c[h+24>>2]=-1;c[h+28>>2]=b;c[h+32>>2]=d;f[h+36>>2]=0.0;f[h+40>>2]=.30000001192092896;c[h+44>>2]=0;c[h>>2]=5764;c[h+300>>2]=c[e>>2];c[h+300+4>>2]=c[e+4>>2];c[h+300+8>>2]=c[e+8>>2];c[h+300+12>>2]=c[e+12>>2];c[h+316>>2]=c[e+16>>2];c[h+316+4>>2]=c[e+16+4>>2];c[h+316+8>>2]=c[e+16+8>>2];c[h+316+12>>2]=c[e+16+12>>2];c[h+332>>2]=c[e+32>>2];c[h+332+4>>2]=c[e+32+4>>2];c[h+332+8>>2]=c[e+32+8>>2];c[h+332+12>>2]=c[e+32+12>>2];c[h+348>>2]=c[e+48>>2];c[h+348+4>>2]=c[e+48+4>>2];c[h+348+8>>2]=c[e+48+8>>2];c[h+348+12>>2]=c[e+48+12>>2];c[h+364>>2]=c[g>>2];c[h+364+4>>2]=c[g+4>>2];c[h+364+8>>2]=c[g+8>>2];c[h+364+12>>2]=c[g+12>>2];c[h+380>>2]=c[g+16>>2];c[h+380+4>>2]=c[g+16+4>>2];c[h+380+8>>2]=c[g+16+8>>2];c[h+380+12>>2]=c[g+16+12>>2];c[h+396>>2]=c[g+32>>2];c[h+396+4>>2]=c[g+32+4>>2];c[h+396+8>>2]=c[g+32+8>>2];c[h+396+12>>2]=c[g+32+12>>2];c[h+412>>2]=c[g+48>>2];c[h+412+4>>2]=c[g+48+4>>2];c[h+412+8>>2]=c[g+48+8>>2];c[h+412+12>>2]=c[g+48+12>>2];a[h+552>>0]=0;c[h+524>>2]=0;f[h+572>>2]=-1.0;f[h+444>>2]=999999984306749440.0;f[h+448>>2]=999999984306749440.0;f[h+452>>2]=999999984306749440.0;f[h+428>>2]=1.0;f[h+432>>2]=.30000001192092896;f[h+436>>2]=1.0;f[h+440>>2]=.009999999776482582;f[h+456>>2]=.05000000074505806;c[h+592>>2]=0;f[h+596>>2]=0.0;f[h+600>>2]=.699999988079071;f[h+604>>2]=0.0;return h|0}function Hf(b,d,e,g){b=b|0;d=d|0;e=e|0;g=g|0;var h=0.0,i=0.0,j=0.0,k=0.0,l=0,m=0.0;l=ea;ea=ea+672|0;c[l+568+8>>2]=0;c[l+568+12>>2]=1065353216;c[l+568+16>>2]=1065353216;c[l+568+20>>2]=1065353216;f[l+568+24>>2]=0.0;c[l+568+52>>2]=0;c[l+568>>2]=4780;c[l+568+4>>2]=1;c[l+568+56>>2]=c[d>>2];c[l+568+56+4>>2]=c[d+4>>2];c[l+568+56+8>>2]=c[d+8>>2];c[l+568+56+12>>2]=c[d+12>>2];c[l+568+72>>2]=c[d+16>>2];c[l+568+72+4>>2]=c[d+16+4>>2];c[l+568+72+8>>2]=c[d+16+8>>2];c[l+568+72+12>>2]=c[d+16+12>>2];c[l+568+88>>2]=c[d+32>>2];c[l+568+88+4>>2]=c[d+32+4>>2];c[l+568+88+8>>2]=c[d+32+8>>2];c[l+568+88+12>>2]=c[d+32+12>>2];c[l+568+44>>2]=c[b+204>>2];f[l+208+308>>2]=9.999999747378752e-05;a[l+208+332>>0]=0;c[l+200>>2]=10432;d=c[b+4>>2]|0;c[l+176>>2]=10500;c[l+176+4>>2]=l+208;c[l+176+8>>2]=l+200;c[l+176+12>>2]=d;c[l+176+16>>2]=l+568;c[l+176+20>>2]=0;c[l>>2]=4752;c[l+168>>2]=0;f[l+164>>2]=1.0;c[l+172>>2]=c[b+208>>2];if((Rc(l+176|0,b+8|0,b+72|0,b+136|0,b+136|0,l)|0?(j=+f[l+132>>2],k=+f[l+136>>2],h=+f[l+140>>2],j*j+k*k+h*h>9.999999747378752e-05):0)?(i=+f[l+164>>2],i<+f[b+200>>2]):0){m=1.0/+s(+(j*j+k*k+h*h));f[l+132>>2]=j*m;f[l+136>>2]=k*m;f[l+140>>2]=h*m;+la[c[(c[b>>2]|0)+12>>2]&3](b,l+132|0,l+148|0,i,e,g)}c[l+568>>2]=8336;e=c[l+568+52>>2]|0;if(!e){ea=l;return}Ca[c[c[e>>2]>>2]&511](e);e=c[l+568+52>>2]|0;if(!e){ea=l;return}c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0);ea=l;return}function If(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0;e=+f[d+128>>2];if(!(e!=0.0))return;c[6564]=(c[6564]|0)+1;k=+f[d+96>>2];g=+f[d+16>>2];h=+f[d+20>>2];i=+f[d+24>>2];j=+f[d+108>>2];j=e-k*+f[d+116>>2]-(g*+f[a+144>>2]+h*+f[a+148>>2]+i*+f[a+152>>2]+(+f[d>>2]*+f[a+160>>2]+ +f[d+4>>2]*+f[a+164>>2]+ +f[d+8>>2]*+f[a+168>>2]))*j-j*(+f[d+48>>2]*+f[b+144>>2]+ +f[d+52>>2]*+f[b+148>>2]+ +f[d+56>>2]*+f[b+152>>2]+(+f[d+32>>2]*+f[b+160>>2]+ +f[d+36>>2]*+f[b+164>>2]+ +f[d+40>>2]*+f[b+168>>2]));l=+f[d+120>>2];e=k+j>2]=k+j>2]|0){l=e*(h*+f[a+132>>2])*+f[a+116>>2];k=e*(i*+f[a+136>>2])*+f[a+120>>2];f[a+144>>2]=+f[a+112>>2]*(e*(g*+f[a+128>>2]))+ +f[a+144>>2];f[a+148>>2]=l+ +f[a+148>>2];f[a+152>>2]=k+ +f[a+152>>2];k=e*+f[a+100>>2]*+f[d+68>>2];l=e*+f[a+104>>2]*+f[d+72>>2];f[a+160>>2]=e*+f[a+96>>2]*+f[d+64>>2]+ +f[a+160>>2];f[a+164>>2]=k+ +f[a+164>>2];f[a+168>>2]=l+ +f[a+168>>2]}if(!(c[b+240>>2]|0))return;l=e*(+f[d+52>>2]*+f[b+132>>2])*+f[b+116>>2];k=e*(+f[d+56>>2]*+f[b+136>>2])*+f[b+120>>2];f[b+144>>2]=+f[b+112>>2]*(e*(+f[d+48>>2]*+f[b+128>>2]))+ +f[b+144>>2];f[b+148>>2]=l+ +f[b+148>>2];f[b+152>>2]=k+ +f[b+152>>2];k=e*+f[b+100>>2]*+f[d+84>>2];l=e*+f[b+104>>2]*+f[d+88>>2];f[b+160>>2]=e*+f[b+96>>2]*+f[d+80>>2]+ +f[b+160>>2];f[b+164>>2]=k+ +f[b+164>>2];f[b+168>>2]=l+ +f[b+168>>2];return}function Jf(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;if(!(a[d+164>>0]|0)){f=c[d+148>>2]|0;if((f|0)==(c[d+152>>2]|0)?(k=(f|0)==0?1:f<<1,(f|0)<(k|0)):0){if(!k)g=0;else{c[6747]=(c[6747]|0)+1;f=kb((k<<1)+19|0)|0;if(!f)g=0;else{c[(f+4+15&-16)+-4>>2]=f;g=f+4+15&-16}f=c[d+148>>2]|0}i=c[d+156>>2]|0;if((f|0)<=0)if(!i)h=d+160|0;else l=29;else{h=0;do{b[g+(h<<1)>>1]=b[i+(h<<1)>>1]|0;h=h+1|0}while((h|0)!=(f|0));l=29}if((l|0)==29){if(a[d+160>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0);f=c[d+148>>2]|0}c[d+156>>2]=0;h=d+160|0}a[h>>0]=1;c[d+156>>2]=g;c[d+152>>2]=k}l=c[d+156>>2]|0;b[l+(f<<1)>>1]=e;c[d+148>>2]=f+1;c[(c[d+32>>2]|0)+4>>2]=l;return}else{f=c[d+128>>2]|0;if((f|0)==(c[d+132>>2]|0)?(j=(f|0)==0?1:f<<1,(f|0)<(j|0)):0){if(!j)g=0;else{c[6747]=(c[6747]|0)+1;f=kb((j<<2|3)+16|0)|0;if(!f)g=0;else{c[(f+4+15&-16)+-4>>2]=f;g=f+4+15&-16}f=c[d+128>>2]|0}i=c[d+136>>2]|0;if((f|0)<=0)if(!i)h=d+140|0;else l=13;else{h=0;do{c[g+(h<<2)>>2]=c[i+(h<<2)>>2];h=h+1|0}while((h|0)!=(f|0));l=13}if((l|0)==13){if(a[d+140>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0)}c[d+136>>2]=0;f=c[d+128>>2]|0;h=d+140|0}a[h>>0]=1;c[d+136>>2]=g;c[d+132>>2]=j}l=c[d+136>>2]|0;c[l+(f<<2)>>2]=e;c[d+128>>2]=(c[d+128>>2]|0)+1;c[(c[d+32>>2]|0)+4>>2]=l;return}}function Kf(a,b,d){a=a|0;b=+b;d=+d;var e=0,g=0,h=0,i=0,j=0,k=0.0,l=0.0,m=0.0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0;h=ea;ea=ea+16|0;b=+f[a+336>>2]*b;d=+f[a+452>>2];e=c[a+792>>2]|0;if((e|0)<=0){ea=h;return}g=0;do{s=c[a+800>>2]|0;j=c[s+(g*96|0)+20>>2]|0;n=c[s+(g*96|0)>>2]|0;x=+f[s+(g*96|0)+4>>2];w=+f[s+(g*96|0)+8>>2];v=+f[s+(g*96|0)+12>>2];i=s+(g*96|0)+76|0;u=+f[j+332>>2];o=+f[s+(g*96|0)+84>>2];y=+f[j+336>>2];l=+f[s+(g*96|0)+80>>2];k=+f[i>>2];m=+f[j+328>>2];r=+f[n+8>>2];q=+f[n+12>>2];p=+f[n+16>>2];t=b*(x*+f[j+4>>2]+w*+f[j+8>>2]+v*+f[j+12>>2]+ +f[j+52>>2]-r)+(d*(u*o-y*l+ +f[j+312>>2])-(r-+f[n+24>>2]));o=b*(x*+f[j+20>>2]+w*+f[j+24>>2]+v*+f[j+28>>2]+ +f[j+56>>2]-q)+(d*(+f[j+316>>2]+(y*k-o*m))-(q-+f[n+28>>2]));k=b*(x*+f[j+36>>2]+w*+f[j+40>>2]+v*+f[j+44>>2]+ +f[j+60>>2]-p)+(d*(l*m-u*k+ +f[j+320>>2])-(p-+f[n+32>>2]));u=+f[s+(g*96|0)+24>>2];m=(t*+f[s+(g*96|0)+28>>2]+o*+f[s+(g*96|0)+32>>2]+ +f[s+(g*96|0)+36>>2]*k)*u;l=(t*+f[s+(g*96|0)+44>>2]+o*+f[s+(g*96|0)+48>>2]+k*+f[s+(g*96|0)+52>>2])*u;k=u*(t*+f[s+(g*96|0)+60>>2]+o*+f[s+(g*96|0)+64>>2]+k*+f[s+(g*96|0)+68>>2]);o=+f[s+(g*96|0)+92>>2];f[n+8>>2]=r+m*o;f[n+12>>2]=q+o*l;f[n+16>>2]=p+o*k;f[h>>2]=-m;f[h+4>>2]=-l;f[h+8>>2]=-k;f[h+12>>2]=0.0;uk(j,h,i);g=g+1|0}while((g|0)!=(e|0));ea=h;return}function Lf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;c[6734]=(c[6734]|0)+1;l=(e<<16|d)+~((e<<16|d)<<15)|0;l=((10?l>>10:l)^l)*9|0;l=(6?l>>6:l)^l;l=(16?l+~(l<<11)>>16:l+~(l<<11)|0)^l+~(l<<11);k=c[b+12>>2]|0;f=c[(c[b+40>>2]|0)+((k+-1&l)<<2)>>2]|0;a:do if((f|0)!=-1){h=c[b+16>>2]|0;while(1){g=h+(f*12|0)|0;if((c[g>>2]|0)==(d|0)?(c[h+(f*12|0)+4>>2]|0)==(e|0):0)break;f=c[(c[b+60>>2]|0)+(f<<2)>>2]|0;if((f|0)==-1)break a}if(g|0){b=g;return b|0}}while(0);j=c[b+8>>2]|0;if((j|0)==(k|0)){h=(k|0)==0?1:k<<1;if((k|0)<(h|0)){if(!h){g=k;i=0}else{c[6747]=(c[6747]|0)+1;f=kb((h*12|3)+16|0)|0;if(!f)f=0;else{c[(f+4+15&-16)+-4>>2]=f;f=f+4+15&-16}g=c[b+8>>2]|0;i=f}if((g|0)>0){f=0;do{m=i+(f*12|0)|0;n=(c[b+16>>2]|0)+(f*12|0)|0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];f=f+1|0}while((f|0)!=(g|0))}f=c[b+16>>2]|0;if(f|0){if(a[b+20>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[f+-4>>2]|0)}c[b+16>>2]=0}a[b+20>>0]=1;c[b+16>>2]=i;c[b+12>>2]=h;f=c[b+8>>2]|0}else{f=k;h=k}}else{f=j;h=k}c[b+8>>2]=f+1;g=c[b+16>>2]|0;if((k|0)<(h|0)){He(b);f=(c[b+12>>2]|0)+-1&l}else f=k+-1&l;c[g+(j*12|0)>>2]=d;c[g+(j*12|0)+4>>2]=e;c[g+(j*12|0)+8>>2]=0;n=(c[b+40>>2]|0)+(f<<2)|0;c[(c[b+60>>2]|0)+(j<<2)>>2]=c[n>>2];c[n>>2]=j;n=g+(j*12|0)|0;return n|0}function Mf(b,d,e,g,h){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0;i=Hs()|0;c[i+4>>2]=4;c[i+8>>2]=-1;c[i+12>>2]=-1;f[i+16>>2]=3402823466385288598117041.0e14;a[i+20>>0]=1;a[i+21>>0]=0;c[i+24>>2]=-1;c[i+28>>2]=b;c[i+32>>2]=d;f[i+36>>2]=0.0;f[i+40>>2]=.30000001192092896;c[i+44>>2]=0;c[i>>2]=5820;c[i+552>>2]=c[e>>2];c[i+552+4>>2]=c[e+4>>2];c[i+552+8>>2]=c[e+8>>2];c[i+552+12>>2]=c[e+12>>2];c[i+568>>2]=c[e+16>>2];c[i+568+4>>2]=c[e+16+4>>2];c[i+568+8>>2]=c[e+16+8>>2];c[i+568+12>>2]=c[e+16+12>>2];c[i+584>>2]=c[e+32>>2];c[i+584+4>>2]=c[e+32+4>>2];c[i+584+8>>2]=c[e+32+8>>2];c[i+584+12>>2]=c[e+32+12>>2];c[i+600>>2]=c[e+48>>2];c[i+600+4>>2]=c[e+48+4>>2];c[i+600+8>>2]=c[e+48+8>>2];c[i+600+12>>2]=c[e+48+12>>2];c[i+616>>2]=c[g>>2];c[i+616+4>>2]=c[g+4>>2];c[i+616+8>>2]=c[g+8>>2];c[i+616+12>>2]=c[g+12>>2];c[i+632>>2]=c[g+16>>2];c[i+632+4>>2]=c[g+16+4>>2];c[i+632+8>>2]=c[g+16+8>>2];c[i+632+12>>2]=c[g+16+12>>2];c[i+648>>2]=c[g+32>>2];c[i+648+4>>2]=c[g+32+4>>2];c[i+648+8>>2]=c[g+32+8>>2];c[i+648+12>>2]=c[g+32+12>>2];c[i+664>>2]=c[g+48>>2];c[i+664+4>>2]=c[g+48+4>>2];c[i+664+8>>2]=c[g+48+8>>2];c[i+664+12>>2]=c[g+48+12>>2];f[i+688>>2]=0.0;f[i+692>>2]=-1.0;f[i+696>>2]=.8999999761581421;f[i+700>>2]=.30000001192092896;f[i+704>>2]=1.0;f[i+708>>2]=0.0;f[i+712>>2]=0.0;a[i+716>>0]=0;a[i+736>>0]=0;a[i+737>>0]=0;a[i+738>>0]=0;a[i+739>>0]=1;a[i+740>>0]=h&1;c[i+748>>2]=0;f[i+732>>2]=h?-1.0:1.0;return i|0}function Nf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=ta[c[(c[d>>2]|0)+40>>2]&31](d,a)|0;g=ta[c[(c[d>>2]|0)+28>>2]&31](d,e)|0;c[b>>2]=g;if(g|0)Ia[c[(c[d>>2]|0)+48>>2]&127](d,e);c[b+4>>2]=c[a+4>>2];g=c[a+48>>2]|0;va[c[(c[g>>2]|0)+56>>2]&63](g,b+12|0,d)|0;c[b+52>>2]=c[a+12>>2];do if((c[a+52>>2]|0)!=0?((ra[c[(c[d>>2]|0)+52>>2]&127](d)|0)&1|0)==0:0){e=ta[c[(c[d>>2]|0)+24>>2]&31](d,c[a+52>>2]|0)|0;if(!e){c[b+40>>2]=ta[c[(c[d>>2]|0)+28>>2]&31](d,c[a+52>>2]|0)|0;c[b+44>>2]=0;e=c[a+52>>2]|0;e=ra[c[(c[e>>2]|0)+12>>2]&127](e)|0;e=va[c[(c[d>>2]|0)+16>>2]&63](d,e,1)|0;g=c[a+52>>2]|0;g=va[c[(c[g>>2]|0)+16>>2]&63](g,c[e+8>>2]|0,d)|0;Ta[c[(c[d>>2]|0)+20>>2]&31](d,e,g,1213612625,c[a+52>>2]|0);break}else{c[b+40>>2]=e;c[b+44>>2]=0;break}}else f=8;while(0);if((f|0)==8){c[b+40>>2]=0;c[b+44>>2]=0}if(c[a+56>>2]|0?((ra[c[(c[d>>2]|0)+52>>2]&127](d)|0)&2|0)==0:0){e=ta[c[(c[d>>2]|0)+24>>2]&31](d,c[a+56>>2]|0)|0;if(!e){c[b+48>>2]=ta[c[(c[d>>2]|0)+28>>2]&31](d,c[a+56>>2]|0)|0;b=c[a+56>>2]|0;b=ra[c[(c[b>>2]|0)+8>>2]&127](b)|0;b=va[c[(c[d>>2]|0)+16>>2]&63](d,b,1)|0;g=c[a+56>>2]|0;g=va[c[(c[g>>2]|0)+12>>2]&63](g,c[b+8>>2]|0,d)|0;Ta[c[(c[d>>2]|0)+20>>2]&31](d,b,g,1346456916,c[a+56>>2]|0);return 19373}else{c[b+48>>2]=e;return 19373}}c[b+48>>2]=0;return 19373}function Of(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0.0,h=0,i=0,j=0,k=0,l=0.0,m=0.0,n=0.0,o=0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0,z=0.0,A=0.0,B=0;x=ea;ea=ea+2048|0;if((e|0)<=0){ea=x;return}v=0;do{q=c[a+92>>2]|0;if((q|0)>0){r=b+(v<<4)|0;u=b+(v<<4)+4|0;s=b+(v<<4)+8|0;t=d+(v<<4)|0;w=0;p=-999999984306749440.0;j=c[a+100>>2]|0;i=c[a+120>>2]|0;while(1){k=q-w|0;o=(k|0)<128?k:128;if((k|0)>0){l=+f[r>>2];m=+f[u>>2];n=+f[s>>2];h=0;do{y=+f[i>>2];A=+f[j>>2]+l*+f[a+12>>2]*y;z=m*+f[a+16>>2]*y+ +f[j+4>>2];y=y*(n*+f[a+20>>2])+ +f[j+8>>2];g=+ha[c[(c[a>>2]|0)+48>>2]&15](a);l=+f[r>>2];m=+f[u>>2];n=+f[s>>2];f[x+(h<<4)>>2]=A-g*l;f[x+(h<<4)+4>>2]=z-g*m;f[x+(h<<4)+8>>2]=y-g*n;f[x+(h<<4)+12>>2]=0.0;j=j+16|0;i=i+4|0;h=h+1|0}while((h|0)<(o|0));k=0;g=-3402823466385288598117041.0e14;h=-1;do{A=l*+f[x+(k<<4)>>2]+m*+f[x+(k<<4)+4>>2]+n*+f[x+(k<<4)+8>>2];B=A>g;h=B?k:h;g=B?A:g;k=k+1|0}while((k|0)!=(o|0))}else{g=-3402823466385288598117041.0e14;h=-1}if(g>p){B=x+(h<<4)|0;c[t>>2]=c[B>>2];c[t+4>>2]=c[B+4>>2];c[t+8>>2]=c[B+8>>2];c[t+12>>2]=c[B+12>>2]}else g=p;w=w+128|0;if((q|0)<=(w|0))break;else p=g}}v=v+1|0}while((v|0)!=(e|0));ea=x;return}function Pf(b,d,e,g){b=b|0;d=d|0;e=e|0;g=g|0;var h=0;h=Hs()|0;c[h+4>>2]=4;c[h+8>>2]=-1;c[h+12>>2]=-1;f[h+16>>2]=3402823466385288598117041.0e14;a[h+20>>0]=1;a[h+21>>0]=0;c[h+24>>2]=-1;c[h+28>>2]=b;c[h+32>>2]=d;f[h+36>>2]=0.0;f[h+40>>2]=.30000001192092896;c[h+44>>2]=0;c[h>>2]=5820;c[h+552>>2]=c[e>>2];c[h+552+4>>2]=c[e+4>>2];c[h+552+8>>2]=c[e+8>>2];c[h+552+12>>2]=c[e+12>>2];c[h+568>>2]=c[e+16>>2];c[h+568+4>>2]=c[e+16+4>>2];c[h+568+8>>2]=c[e+16+8>>2];c[h+568+12>>2]=c[e+16+12>>2];c[h+584>>2]=c[e+32>>2];c[h+584+4>>2]=c[e+32+4>>2];c[h+584+8>>2]=c[e+32+8>>2];c[h+584+12>>2]=c[e+32+12>>2];c[h+600>>2]=c[e+48>>2];c[h+600+4>>2]=c[e+48+4>>2];c[h+600+8>>2]=c[e+48+8>>2];c[h+600+12>>2]=c[e+48+12>>2];c[h+616>>2]=c[g>>2];c[h+616+4>>2]=c[g+4>>2];c[h+616+8>>2]=c[g+8>>2];c[h+616+12>>2]=c[g+12>>2];c[h+632>>2]=c[g+16>>2];c[h+632+4>>2]=c[g+16+4>>2];c[h+632+8>>2]=c[g+16+8>>2];c[h+632+12>>2]=c[g+16+12>>2];c[h+648>>2]=c[g+32>>2];c[h+648+4>>2]=c[g+32+4>>2];c[h+648+8>>2]=c[g+32+8>>2];c[h+648+12>>2]=c[g+32+12>>2];c[h+664>>2]=c[g+48>>2];c[h+664+4>>2]=c[g+48+4>>2];c[h+664+8>>2]=c[g+48+8>>2];c[h+664+12>>2]=c[g+48+12>>2];f[h+688>>2]=0.0;f[h+692>>2]=-1.0;f[h+696>>2]=.8999999761581421;f[h+700>>2]=.30000001192092896;f[h+704>>2]=1.0;f[h+708>>2]=0.0;f[h+712>>2]=0.0;a[h+716>>0]=0;a[h+736>>0]=0;a[h+737>>0]=0;a[h+738>>0]=0;a[h+739>>0]=1;a[h+740>>0]=0;c[h+748>>2]=0;f[h+732>>2]=1.0;return h|0}function Qf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0;k=+f[d+100>>2];e=+f[d+16>>2];g=+f[d+20>>2];h=+f[d+24>>2];j=+f[d+108>>2];j=+f[d+112>>2]-k*+f[d+116>>2]-(e*+f[a+64>>2]+g*+f[a+68>>2]+h*+f[a+72>>2]+(+f[d>>2]*+f[a+80>>2]+ +f[d+4>>2]*+f[a+84>>2]+ +f[d+8>>2]*+f[a+88>>2]))*j-j*(+f[d+48>>2]*+f[b+64>>2]+ +f[d+52>>2]*+f[b+68>>2]+ +f[d+56>>2]*+f[b+72>>2]+(+f[d+32>>2]*+f[b+80>>2]+ +f[d+36>>2]*+f[b+84>>2]+ +f[d+40>>2]*+f[b+88>>2]));l=+f[d+120>>2];i=k+j>2]=k+j>2]|0){l=i*(g*+f[a+132>>2])*+f[a+116>>2];k=i*(h*+f[a+136>>2])*+f[a+120>>2];f[a+64>>2]=+f[a+112>>2]*(i*(e*+f[a+128>>2]))+ +f[a+64>>2];f[a+68>>2]=l+ +f[a+68>>2];f[a+72>>2]=k+ +f[a+72>>2];k=i*+f[a+100>>2]*+f[d+68>>2];l=i*+f[a+104>>2]*+f[d+72>>2];f[a+80>>2]=i*+f[a+96>>2]*+f[d+64>>2]+ +f[a+80>>2];f[a+84>>2]=k+ +f[a+84>>2];f[a+88>>2]=l+ +f[a+88>>2]}if(!(c[b+240>>2]|0))return;l=i*(+f[d+52>>2]*+f[b+132>>2])*+f[b+116>>2];k=i*(+f[d+56>>2]*+f[b+136>>2])*+f[b+120>>2];f[b+64>>2]=+f[b+112>>2]*(i*(+f[d+48>>2]*+f[b+128>>2]))+ +f[b+64>>2];f[b+68>>2]=l+ +f[b+68>>2];f[b+72>>2]=k+ +f[b+72>>2];k=i*+f[b+100>>2]*+f[d+84>>2];l=i*+f[b+104>>2]*+f[d+88>>2];f[b+80>>2]=i*+f[b+96>>2]*+f[d+80>>2]+ +f[b+80>>2];f[b+84>>2]=k+ +f[b+84>>2];f[b+88>>2]=l+ +f[b+88>>2];return}function Rf(b,d,e,g,h,i){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0;c[6747]=(c[6747]|0)+1;b=kb((h+2|0)>>>0>268435455?18:(h+2<<4|3)+16|0)|0;if(!b)k=0;else{c[(b+4+15&-16)+-4>>2]=b;k=b+4+15&-16}j=GJ((h+2|0)>>>0>1073741823?-1:h+2<<2)|0;if((h|0)>-2){b=0;do{p=+(b|0)/+(h+1|0);o=+f[e>>2];n=+f[e+4>>2];n=n+p*(+f[g+4>>2]-n);m=+f[e+8>>2];m=m+p*(+f[g+8>>2]-m);f[k+(b<<4)>>2]=o+p*(+f[g>>2]-o);f[k+(b<<4)+4>>2]=n;f[k+(b<<4)+8>>2]=m;f[k+(b<<4)+12>>2]=0.0;f[j+(b<<2)>>2]=1.0;b=b+1|0}while((b|0)<(h+2|0))}c[6747]=(c[6747]|0)+1;b=kb(1271)|0;if(!b)l=0;else{c[(b+4+15&-16)+-4>>2]=b;l=b+4+15&-16}ub(l,d,h+2|0,k,j);if(i&1|0){f[(c[l+720>>2]|0)+88>>2]=0.0;a[l+924>>0]=1}if(i&2|0){f[(c[l+720>>2]|0)+((h+1|0)*104|0)+88>>2]=0.0;a[l+924>>0]=1}if(k|0){c[6748]=(c[6748]|0)+1;uc(c[k+-4>>2]|0)}HJ(j);if((h|0)<=-1)return l|0;k=l+720|0;g=l+732|0;e=l+740|0;b=l+924|0;j=1;do{r=j+-1|0;q=c[k>>2]|0;mh(l,0);d=(c[g>>2]|0)+-1|0;i=c[e>>2]|0;c[i+(d*52|0)+8>>2]=q+(r*104|0);c[i+(d*52|0)+12>>2]=q+(j*104|0);n=+f[q+(r*104|0)+8>>2]-+f[q+(j*104|0)+8>>2];o=+f[q+(r*104|0)+12>>2]-+f[q+(j*104|0)+12>>2];p=+f[q+(r*104|0)+16>>2]-+f[q+(j*104|0)+16>>2];f[i+(d*52|0)+16>>2]=+s(+(n*n+o*o+p*p));a[b>>0]=1;j=j+1|0}while((j|0)<(h+2|0));return l|0}function Sf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0;J=+f[a+4>>2];I=+f[a+20>>2];H=+f[a+36>>2];F=+f[a+8>>2];E=+f[a+24>>2];D=+f[a+40>>2];B=+f[a+12>>2];z=+f[a+28>>2];x=+f[a+44>>2];u=+f[b+4>>2];t=+f[b+20>>2];s=+f[b+36>>2];q=+f[b+8>>2];p=+f[b+24>>2];o=+f[b+40>>2];m=+f[b+12>>2];k=+f[b+28>>2];i=+f[b+44>>2];c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;A=+f[e>>2];y=+f[e+4>>2];w=+f[e+8>>2];f[d+16>>2]=J*A+I*y+H*w;f[d+20>>2]=F*A+E*y+D*w;f[d+24>>2]=B*A+z*y+x*w;f[d+28>>2]=0.0;l=-+f[e>>2];j=-+f[e+4>>2];h=-+f[e+8>>2];f[d+32>>2]=u*l+t*j+s*h;f[d+36>>2]=q*l+p*j+o*h;f[d+40>>2]=m*l+k*j+i*h;f[d+44>>2]=0.0;G=(J*A+I*y+H*w)*+f[a+396>>2];C=(F*A+E*y+D*w)*+f[a+400>>2];v=(B*A+z*y+x*w)*+f[a+404>>2];f[d+48>>2]=G;f[d+52>>2]=C;f[d+56>>2]=v;f[d+60>>2]=0.0;r=(u*l+t*j+s*h)*+f[b+396>>2];n=(q*l+p*j+o*h)*+f[b+400>>2];g=(m*l+k*j+i*h)*+f[b+404>>2];f[d+64>>2]=r;f[d+68>>2]=n;f[d+72>>2]=g;f[d+76>>2]=0.0;f[d+80>>2]=(J*A+I*y+H*w)*G+(F*A+E*y+D*w)*C+(B*A+z*y+x*w)*v+((u*l+t*j+s*h)*r+(q*l+p*j+o*h)*n+(m*l+k*j+i*h)*g);return}function Tf(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;k=ea;ea=ea+96|0;g=c[b+8>>2]|0;if((g|0)==(c[b+12>>2]|0)?(j=(g|0)==0?1:g<<1,(g|0)<(j|0)):0){if(!j)h=0;else{c[6747]=(c[6747]|0)+1;g=kb((j<<2|3)+16|0)|0;if(!g)h=0;else{c[(g+4+15&-16)+-4>>2]=g;h=g+4+15&-16}g=c[b+8>>2]|0}if((g|0)>0){i=0;do{c[h+(i<<2)>>2]=c[(c[b+16>>2]|0)+(i<<2)>>2];i=i+1|0}while((i|0)!=(g|0))}i=c[b+16>>2]|0;if(i){if(a[b+20>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0);g=c[b+8>>2]|0}c[b+16>>2]=0}a[b+20>>0]=1;c[b+16>>2]=h;c[b+12>>2]=j}c[(c[b+16>>2]|0)+(g<<2)>>2]=d;c[b+8>>2]=g+1;c[k+32>>2]=c[d+4>>2];c[k+32+4>>2]=c[d+4+4>>2];c[k+32+8>>2]=c[d+4+8>>2];c[k+32+12>>2]=c[d+4+12>>2];c[k+32+16>>2]=c[d+20>>2];c[k+32+16+4>>2]=c[d+20+4>>2];c[k+32+16+8>>2]=c[d+20+8>>2];c[k+32+16+12>>2]=c[d+20+12>>2];c[k+32+32>>2]=c[d+36>>2];c[k+32+32+4>>2]=c[d+36+4>>2];c[k+32+32+8>>2]=c[d+36+8>>2];c[k+32+32+12>>2]=c[d+36+12>>2];c[k+32+48>>2]=c[d+52>>2];c[k+32+48+4>>2]=c[d+52+4>>2];c[k+32+48+8>>2]=c[d+52+8>>2];c[k+32+48+12>>2]=c[d+52+12>>2];j=c[d+192>>2]|0;Pa[c[(c[j>>2]|0)+8>>2]&127](j,k+32|0,k+16|0,k);j=c[b+68>>2]|0;c[d+188>>2]=za[c[(c[j>>2]|0)+8>>2]&3](j,k+16|0,k,c[(c[d+192>>2]|0)+4>>2]|0,d,e,f,c[b+24>>2]|0,0)|0;ea=k;return}function Uf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0,h=0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0,u=0,v=0.0,w=0,x=0;w=ea;ea=ea+16|0;g=c[a+52>>2]|0;v=+f[a+28+(((g+2|0)%3|0)<<2)>>2];if((e|0)<=0){ea=w;return}h=0;while(1){c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;c[w+12>>2]=0;c[w+(g<<2)>>2]=c[a+28+(g<<2)>>2];g=b+(h<<4)|0;t=b+(h<<4)+4|0;u=b+(h<<4)+8|0;l=v*+f[g>>2]+ +f[w>>2];n=v*+f[t>>2]+ +f[w+4>>2];m=v*+f[u>>2]+ +f[w+8>>2];o=+ha[c[(c[a>>2]|0)+48>>2]&15](a);i=+f[g>>2];j=+f[t>>2];k=+f[u>>2];if(i*(l-o*i)+j*(n-o*j)+k*(m-o*k)>-999999984306749440.0){f[d+(h<<4)>>2]=l-o*i;f[d+(h<<4)+4>>2]=n-o*j;f[d+(h<<4)+8>>2]=m-o*k;f[d+(h<<4)+12>>2]=0.0;p=+f[g>>2];r=+f[t>>2];s=+f[u>>2];q=i*(l-o*i)+j*(n-o*j)+k*(m-o*k)}else{p=i;r=j;s=k;q=-999999984306749440.0}c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;c[w+12>>2]=0;x=c[a+52>>2]|0;f[w+(x<<2)>>2]=-+f[a+28+(x<<2)>>2];o=v*p+ +f[w>>2];n=v*r+ +f[w+4>>2];l=v*s+ +f[w+8>>2];m=+ha[c[(c[a>>2]|0)+48>>2]&15](a);k=+f[g>>2];j=+f[t>>2];i=+f[u>>2];if(k*(o-m*k)+j*(n-m*j)+i*(l-m*i)>q){f[d+(h<<4)>>2]=o-m*k;f[d+(h<<4)+4>>2]=n-m*j;f[d+(h<<4)+8>>2]=l-m*i;f[d+(h<<4)+12>>2]=0.0}h=h+1|0;if((h|0)==(e|0))break;g=c[a+52>>2]|0}ea=w;return}function Vf(b){b=b|0;var d=0,e=0,f=0;c[b>>2]=5208;if(a[b+272>>0]|0?(d=c[b+204>>2]|0,Ca[c[c[d>>2]>>2]&511](d),d=c[b+204>>2]|0,d|0):0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}d=c[b+196>>2]|0;if(d|0?(Ca[c[c[d>>2]>>2]&511](d),f=c[b+196>>2]|0,f|0):0){c[6748]=(c[6748]|0)+1;uc(c[f+-4>>2]|0)}if(a[b+273>>0]|0?(e=c[b+200>>2]|0,Ca[c[c[e>>2]>>2]&511](e),e=c[b+200>>2]|0,e|0):0){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0)}d=c[b+316>>2]|0;if(d|0){if(a[b+320>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+316>>2]=0}a[b+320>>0]=1;c[b+316>>2]=0;c[b+308>>2]=0;c[b+312>>2]=0;d=c[b+288>>2]|0;if(d|0){if(a[b+292>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+288>>2]=0}a[b+292>>0]=1;c[b+288>>2]=0;c[b+280>>2]=0;c[b+284>>2]=0;d=c[b+240>>2]|0;if(d|0){if(a[b+244>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+240>>2]=0}a[b+244>>0]=1;c[b+240>>2]=0;c[b+232>>2]=0;c[b+236>>2]=0;d=c[b+220>>2]|0;if(d|0){if(a[b+224>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+220>>2]=0}a[b+224>>0]=1;c[b+220>>2]=0;c[b+212>>2]=0;c[b+216>>2]=0;d=c[b+188>>2]|0;if(!d){a[b+192>>0]=1;c[b+188>>2]=0;c[b+180>>2]=0;f=b+184|0;c[f>>2]=0;Zi(b);return}if(a[b+192>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+188>>2]=0;a[b+192>>0]=1;c[b+188>>2]=0;c[b+180>>2]=0;f=b+184|0;c[f>>2]=0;Zi(b);return}function Wf(b,d,e,g,h,i,j,k,l){b=b|0;d=d|0;e=e|0;g=+g;h=+h;i=+i;j=j|0;k=k|0;l=l|0;var m=0.0,n=0.0,o=0.0,p=0;p=rs()|0;c[p+8>>2]=0;f[p+12>>2]=0.0;c[p>>2]=9372;c[p+4>>2]=24;c[p+64>>2]=b;c[p+68>>2]=d;f[p+72>>2]=h;f[p+76>>2]=i;f[p+80>>2]=+(b+-1|0);f[p+84>>2]=+(d+-1|0);f[p+88>>2]=g;c[p+92>>2]=e;c[p+96>>2]=k;a[p+100>>0]=l&1;a[p+101>>0]=0;a[p+102>>0]=0;c[p+104>>2]=j;c[p+108>>2]=1065353216;c[p+112>>2]=1065353216;c[p+116>>2]=1065353216;f[p+120>>2]=0.0;switch(j|0){case 0:{f[p+16>>2]=h;c[p+20>>2]=0;c[p+24>>2]=0;f[p+28>>2]=0.0;f[p+32>>2]=i;f[p+36>>2]=+(b+-1|0);f[p+40>>2]=+(d+-1|0);f[p+44>>2]=0.0;n=+(b+-1|0);o=0.0;g=+(d+-1|0);m=h;h=0.0;break}case 1:{c[p+16>>2]=0;f[p+20>>2]=h;c[p+24>>2]=0;f[p+28>>2]=0.0;f[p+32>>2]=+(b+-1|0);f[p+36>>2]=i;f[p+40>>2]=+(d+-1|0);f[p+44>>2]=0.0;n=i;o=0.0;g=+(d+-1|0);m=0.0;i=+(b+-1|0);break}case 2:{c[p+16>>2]=0;c[p+20>>2]=0;f[p+24>>2]=h;f[p+28>>2]=0.0;f[p+32>>2]=+(b+-1|0);f[p+36>>2]=+(d+-1|0);f[p+40>>2]=i;f[p+44>>2]=0.0;n=+(d+-1|0);o=h;g=i;m=0.0;i=+(b+-1|0);h=0.0;break}default:{n=+f[p+36>>2];o=+f[p+24>>2];g=+f[p+40>>2];m=+f[p+16>>2];i=+f[p+32>>2];h=+f[p+20>>2]}}f[p+48>>2]=(m+i)*.5;f[p+52>>2]=(h+n)*.5;f[p+56>>2]=(o+g)*.5;f[p+60>>2]=0.0;return p|0}function Xf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;while(1){m=c[a+12>>2]|0;n=c[m+(((b+d|0)/2|0)<<2)>>2]|0;e=b;f=d;while(1){l=c[(c[n+740>>2]|0)+208>>2]|0;if((l|0)>-1)while(1){i=m+(e<<2)|0;h=c[i>>2]|0;g=c[(c[h+740>>2]|0)+208>>2]|0;if((g|0)<=-1)g=c[(c[h+744>>2]|0)+208>>2]|0;if((g|0)<(l|0))e=e+1|0;else{k=i;break}}else{j=c[(c[n+744>>2]|0)+208>>2]|0;while(1){i=m+(e<<2)|0;h=c[i>>2]|0;g=c[(c[h+740>>2]|0)+208>>2]|0;if((g|0)<=-1)g=c[(c[h+744>>2]|0)+208>>2]|0;if((g|0)<(j|0))e=e+1|0;else{k=i;break}}}if((l|0)>-1)while(1){g=m+(f<<2)|0;i=c[g>>2]|0;h=c[(c[i+740>>2]|0)+208>>2]|0;if((h|0)<=-1)h=c[(c[i+744>>2]|0)+208>>2]|0;if((l|0)<(h|0))f=f+-1|0;else break}else{j=c[(c[n+744>>2]|0)+208>>2]|0;while(1){g=m+(f<<2)|0;i=c[g>>2]|0;h=c[(c[i+740>>2]|0)+208>>2]|0;if((h|0)<=-1)h=c[(c[i+744>>2]|0)+208>>2]|0;if((j|0)<(h|0))f=f+-1|0;else break}}if((e|0)<=(f|0)){m=c[k>>2]|0;c[k>>2]=c[g>>2];c[(c[a+12>>2]|0)+(f<<2)>>2]=m;e=e+1|0;f=f+-1|0}if((e|0)>(f|0))break;m=c[a+12>>2]|0}if((f|0)>(b|0))Xf(a,b,f);if((e|0)<(d|0))b=e;else break}return}function Yf(b,d,e){b=b|0;d=d|0;e=e|0;var g=0,h=0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0;h=ea;ea=ea+64|0;a[d+84>>0]=0;c[h>>2]=c[b+4>>2];c[h+4>>2]=c[b+4+4>>2];c[h+8>>2]=c[b+4+8>>2];c[h+12>>2]=c[b+4+12>>2];c[h+16>>2]=c[b+20>>2];c[h+16+4>>2]=c[b+20+4>>2];c[h+16+8>>2]=c[b+20+8>>2];c[h+16+12>>2]=c[b+20+12>>2];c[h+32>>2]=c[b+36>>2];c[h+32+4>>2]=c[b+36+4>>2];c[h+32+8>>2]=c[b+36+8>>2];c[h+32+12>>2]=c[b+36+12>>2];c[h+48>>2]=c[b+52>>2];c[h+48+4>>2]=c[b+52+4>>2];c[h+48+8>>2]=c[b+52+8>>2];c[h+48+12>>2]=c[b+52+12>>2];if(e?(g=c[b+480>>2]|0,g|0):0)Ia[c[(c[g>>2]|0)+8>>2]&127](g,h);v=+f[d+156>>2];t=+f[h>>2];u=+f[d+160>>2];s=+f[h+4>>2];m=+f[d+164>>2];r=+f[h+8>>2];q=+f[h+16>>2];p=+f[h+20>>2];o=+f[h+24>>2];n=+f[h+32>>2];l=+f[h+36>>2];j=+f[h+40>>2];k=v*q+u*p+m*o+ +f[h+52>>2];i=v*n+u*l+m*j+ +f[h+56>>2];f[d+36>>2]=v*t+u*s+m*r+ +f[h+48>>2];f[d+40>>2]=k;f[d+44>>2]=i;f[d+48>>2]=0.0;i=+f[d+172>>2];k=+f[d+176>>2];m=+f[d+180>>2];f[d+52>>2]=t*i+s*k+r*m;f[d+56>>2]=i*q+k*p+m*o;f[d+60>>2]=i*n+k*l+m*j;f[d+64>>2]=0.0;m=+f[d+188>>2];k=+f[d+192>>2];i=+f[d+196>>2];f[d+68>>2]=t*m+s*k+r*i;f[d+72>>2]=q*m+p*k+o*i;f[d+76>>2]=n*m+l*k+j*i;f[d+80>>2]=0.0;ea=h;return}function Zf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;while(1){m=c[a+12>>2]|0;n=c[m+(((b+d|0)/2|0)<<2)>>2]|0;e=b;f=d;while(1){l=c[(c[n+28>>2]|0)+208>>2]|0;if((l|0)>-1)while(1){i=m+(e<<2)|0;h=c[i>>2]|0;g=c[(c[h+28>>2]|0)+208>>2]|0;if((g|0)<=-1)g=c[(c[h+32>>2]|0)+208>>2]|0;if((g|0)<(l|0))e=e+1|0;else{k=i;break}}else{j=c[(c[n+32>>2]|0)+208>>2]|0;while(1){i=m+(e<<2)|0;h=c[i>>2]|0;g=c[(c[h+28>>2]|0)+208>>2]|0;if((g|0)<=-1)g=c[(c[h+32>>2]|0)+208>>2]|0;if((g|0)<(j|0))e=e+1|0;else{k=i;break}}}if((l|0)>-1)while(1){g=m+(f<<2)|0;i=c[g>>2]|0;h=c[(c[i+28>>2]|0)+208>>2]|0;if((h|0)<=-1)h=c[(c[i+32>>2]|0)+208>>2]|0;if((l|0)<(h|0))f=f+-1|0;else break}else{j=c[(c[n+32>>2]|0)+208>>2]|0;while(1){g=m+(f<<2)|0;i=c[g>>2]|0;h=c[(c[i+28>>2]|0)+208>>2]|0;if((h|0)<=-1)h=c[(c[i+32>>2]|0)+208>>2]|0;if((j|0)<(h|0))f=f+-1|0;else break}}if((e|0)<=(f|0)){m=c[k>>2]|0;c[k>>2]=c[g>>2];c[(c[a+12>>2]|0)+(f<<2)>>2]=m;e=e+1|0;f=f+-1|0}if((e|0)>(f|0))break;m=c[a+12>>2]|0}if((f|0)>(b|0))Zf(a,b,f);if((e|0)<(d|0))b=e;else break}return}function _f(a,b,d,e,g,h,i,j,k,l){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=+j;k=k|0;l=+l;var m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0;c[a>>2]=c[h>>2];c[a+4>>2]=c[h+4>>2];c[a+8>>2]=c[h+8>>2];c[a+12>>2]=c[h+12>>2];t=+f[e+4>>2];q=+f[a+8>>2];o=+f[e+8>>2];u=+f[a+4>>2];n=+f[a>>2];w=+f[e>>2];x=(t*q-o*u)*+f[b>>2]+ +f[b+4>>2]*(o*n-q*w)+(u*w-t*n)*+f[b+8>>2];v=(t*q-o*u)*+f[b+16>>2]+(o*n-q*w)*+f[b+20>>2]+(u*w-t*n)*+f[b+24>>2];t=(t*q-o*u)*+f[b+32>>2]+(o*n-q*w)*+f[b+36>>2]+(u*w-t*n)*+f[b+40>>2];f[a+16>>2]=x;f[a+20>>2]=v;f[a+24>>2]=t;f[a+28>>2]=0.0;w=+f[g+4>>2];o=+f[g+8>>2];s=+f[g>>2];r=+f[d>>2]*(w*-q-o*-u)+ +f[d+4>>2]*(o*-n-s*-q)+(s*-u-w*-n)*+f[d+8>>2];p=(w*-q-o*-u)*+f[d+16>>2]+(o*-n-s*-q)*+f[d+20>>2]+(s*-u-w*-n)*+f[d+24>>2];n=(w*-q-o*-u)*+f[d+32>>2]+(o*-n-s*-q)*+f[d+36>>2]+(s*-u-w*-n)*+f[d+40>>2];f[a+32>>2]=r;f[a+36>>2]=p;f[a+40>>2]=n;f[a+44>>2]=0.0;w=+f[i>>2]*x;u=+f[i+4>>2]*v;s=+f[i+8>>2]*t;f[a+48>>2]=w;f[a+52>>2]=u;f[a+56>>2]=s;f[a+60>>2]=0.0;q=+f[k>>2]*r;o=+f[k+4>>2]*p;m=+f[k+8>>2]*n;f[a+64>>2]=q;f[a+68>>2]=o;f[a+72>>2]=m;f[a+76>>2]=0.0;f[a+80>>2]=x*w+v*u+t*s+j+l+(r*q+p*o+n*m);return}function $f(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0,h=0,i=0.0,j=0.0,k=0.0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0,x=0;v=ea;ea=ea+2048|0;if((e|0)<=0){ea=v;return}g=0;do{f[d+(g<<4)+12>>2]=-999999984306749440.0;g=g+1|0}while((g|0)!=(e|0));s=0;do{if((ra[c[(c[a>>2]|0)+96>>2]&127](a)|0)>0){o=b+(s<<4)|0;r=b+(s<<4)+4|0;n=b+(s<<4)+8|0;q=d+(s<<4)+12|0;p=d+(s<<4)|0;t=0;do{if(((ra[c[(c[a>>2]|0)+96>>2]&127](a)|0)-t|0)<128){g=(ra[c[(c[a>>2]|0)+96>>2]&127](a)|0)-t|0;if((g|0)>0)u=11;else{i=-3402823466385288598117041.0e14;g=-1}}else{g=128;u=11}if((u|0)==11){u=0;h=0;do{Ma[c[(c[a>>2]|0)+108>>2]&127](a,h,v+(h<<4)|0);h=h+1|0}while((h|0)!=(g|0));j=+f[o>>2];k=+f[r>>2];l=+f[n>>2];m=0;i=-3402823466385288598117041.0e14;h=-1;do{w=j*+f[v+(m<<4)>>2]+k*+f[v+(m<<4)+4>>2]+l*+f[v+(m<<4)+8>>2];x=w>i;h=x?m:h;i=x?w:i;m=m+1|0}while((m|0)!=(g|0));g=h}if(i>+f[q>>2]){x=v+(g<<4)|0;c[p>>2]=c[x>>2];c[p+4>>2]=c[x+4>>2];c[p+8>>2]=c[x+8>>2];c[p+12>>2]=c[x+12>>2];f[q>>2]=i}t=t+128|0}while((t|0)<(ra[c[(c[a>>2]|0)+96>>2]&127](a)|0))}s=s+1|0}while((s|0)!=(e|0));ea=v;return}function ag(a,b,c,d,e,g,h){a=a|0;b=+b;c=+c;d=+d;e=e|0;g=+g;h=h|0;var i=0.0,j=0.0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0;k=ea;ea=ea+16|0;j=c*g+ +f[a+52>>2];i=d*g+ +f[a+56>>2];f[h+48>>2]=b*g+ +f[a+48>>2];f[h+52>>2]=j;f[h+56>>2]=i;f[h+60>>2]=0.0;i=+f[e>>2];j=+f[e+4>>2];b=+f[e+8>>2];c=+s(+(i*i+j*j+b*b));c=c*g>.7853981852531433?.7853981852531433/g:c;if(c<1.0000000474974513e-03)d=g*.5-c*(g*g*g*.02083333395421505*c);else d=+v(+(c*.5*g))/c;b=b*d;m=j*d;o=i*d;q=+u(+(c*g*.5));Gg(a,k);n=+f[k>>2];p=+f[k+12>>2];i=+f[k+8>>2];g=+f[k+4>>2];c=1.0/+s(+((q*p-o*n-m*g-b*i)*(q*p-o*n-m*g-b*i)+((b*p+q*i+o*g-m*n)*(b*p+q*i+o*g-m*n)+((q*n+o*p+m*i-b*g)*(q*n+o*p+m*i-b*g)+(b*n+(m*p+q*g)-o*i)*(b*n+(m*p+q*g)-o*i)))));d=(q*n+o*p+m*i-b*g)*c;j=(b*n+(m*p+q*g)-o*i)*c;l=(b*p+q*i+o*g-m*n)*c;c=(q*p-o*n-m*g-b*i)*c;i=d*(2.0/(c*c+(l*l+(d*d+j*j))));g=j*(2.0/(c*c+(l*l+(d*d+j*j))));b=l*(2.0/(c*c+(l*l+(d*d+j*j))));f[h>>2]=1.0-(j*g+l*b);f[h+4>>2]=d*g-c*b;f[h+8>>2]=d*b+c*g;f[h+12>>2]=0.0;f[h+16>>2]=d*g+c*b;f[h+20>>2]=1.0-(d*i+l*b);f[h+24>>2]=j*b-c*i;f[h+28>>2]=0.0;f[h+32>>2]=d*b-c*g;f[h+36>>2]=j*b+c*i;f[h+40>>2]=1.0-(d*i+j*g);f[h+44>>2]=0.0;ea=k;return}function bg(b,d,e){b=b|0;d=+d;e=e|0;var g=0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0;g=c[b+8>>2]|0;if(g|0?(c[g+204>>2]&3|0)==0:0){if((c[g+216>>2]&-2|0)!=4)c[g+216>>2]=1;f[g+220>>2]=0.0}g=c[b+12>>2]|0;if(g|0?(c[g+204>>2]&3|0)==0:0){if((c[g+216>>2]&-2|0)!=4)c[g+216>>2]=1;f[g+220>>2]=0.0}g=c[b+20>>2]|0;if(g|0?(c[g+204>>2]&3|0)==0:0){if((c[g+216>>2]&-2|0)!=4)c[g+216>>2]=1;f[g+220>>2]=0.0}g=c[b+24>>2]|0;if(g|0?(c[g+204>>2]&3|0)==0:0){if((c[g+216>>2]&-2|0)!=4)c[g+216>>2]=1;f[g+220>>2]=0.0}g=c[b+156>>2]|0;c[b+156>>2]=g+1;a[b+152>>0]=(g|0)>=(c[b+160>>2]|0)&1;if(g|0){c[b+72>>2]=0;c[b+72+4>>2]=0;c[b+72+8>>2]=0;c[b+72+12>>2]=0;c[b+72+16>>2]=0;c[b+72+20>>2]=0;c[b+72+24>>2]=0;c[b+72+28>>2]=0;return}j=+f[b+64>>2];i=1.0/d*(+f[b+72>>2]*j);h=1.0/d*(j*+f[b+76>>2]);d=1.0/d*(j*+f[b+80>>2]);f[b+72>>2]=i;f[b+76>>2]=h;f[b+80>>2]=d;f[b+84>>2]=0.0;j=+f[b+68>>2];if(j>0.0){l=j*i*+f[b+120>>2]+j*h*+f[b+124>>2]+j*d*+f[b+128>>2];k=j*i*+f[b+136>>2]+j*h*+f[b+140>>2]+j*d*+f[b+144>>2];f[b+88>>2]=j*i*+f[b+104>>2]+j*h*+f[b+108>>2]+j*d*+f[b+112>>2];f[b+92>>2]=l;f[b+96>>2]=k;f[b+100>>2]=0.0;f[b+72>>2]=(1.0-j)*i;f[b+76>>2]=(1.0-j)*h;f[b+80>>2]=(1.0-j)*d;i=(1.0-j)*i;h=(1.0-j)*h;d=(1.0-j)*d}f[b+72>>2]=1.0/+(e|0)*i;f[b+76>>2]=1.0/+(e|0)*h;f[b+80>>2]=1.0/+(e|0)*d;return}function cg(a,b,d,e,g,i,j){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;i=i|0;j=j|0;var k=0.0,l=0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0.0,s=0;q=ea;ea=ea+16|0;f[e>>2]=3402823466385288598117041.0e14;f[g>>2]=-3402823466385288598117041.0e14;l=c[a+96>>2]|0;if((l|0)>0){p=0;do{s=c[a+104>>2]|0;r=+f[s+(p<<4)>>2]*+f[a+12>>2];m=+f[s+(p<<4)+4>>2]*+f[a+16>>2];n=+f[s+(p<<4)+8>>2]*+f[a+20>>2];k=r*+f[b>>2]+m*+f[b+4>>2]+n*+f[b+8>>2]+ +f[b+48>>2];o=r*+f[b+16>>2]+m*+f[b+20>>2]+n*+f[b+24>>2]+ +f[b+52>>2];n=r*+f[b+32>>2]+m*+f[b+36>>2]+n*+f[b+40>>2]+ +f[b+56>>2];m=k*+f[d>>2]+o*+f[d+4>>2]+n*+f[d+8>>2];if(m<+f[e>>2]){f[e>>2]=m;f[i>>2]=k;f[i+4>>2]=o;f[i+8>>2]=n;f[i+12>>2]=0.0}if(m>+f[g>>2]){f[g>>2]=m;f[j>>2]=k;f[j+4>>2]=o;f[j+8>>2]=n;f[j+12>>2]=0.0}p=p+1|0}while((p|0)!=(l|0));m=+f[g>>2];l=(f[h>>2]=m,c[h>>2]|0)}else{l=-8388609;m=-3402823466385288598117041.0e14}k=+f[e>>2];if(!(k>m)){ea=q;return}c[e>>2]=l;f[g>>2]=k;c[q>>2]=c[i>>2];c[q+4>>2]=c[i+4>>2];c[q+8>>2]=c[i+8>>2];c[q+12>>2]=c[i+12>>2];c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];c[i+12>>2]=c[j+12>>2];c[j>>2]=c[q>>2];c[j+4>>2]=c[q+4>>2];c[j+8>>2]=c[q+8>>2];c[j+12>>2]=c[q+12>>2];ea=q;return}function dg(a,b){a=a|0;b=b|0;var d=0,e=0;d=ea;ea=ea+48|0;e=(c[a+48>>2]|0)+4|0;c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];b=d+32+4|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;f[d+32>>2]=1.0;Ma[c[(c[a>>2]|0)+68>>2]&127](d+16|0,a,d+32|0);f[a+32>>2]=+f[d+16>>2]+ +f[a+12>>2];f[d+32>>2]=-1.0;Ma[c[(c[a>>2]|0)+68>>2]&127](d,a,d+32|0);c[d+16>>2]=c[d>>2];c[d+16+4>>2]=c[d+4>>2];c[d+16+8>>2]=c[d+8>>2];c[d+16+12>>2]=c[d+12>>2];f[a+16>>2]=+f[d+16>>2]-+f[a+12>>2];c[d+32>>2]=0;c[d+32+4>>2]=0;c[d+32+8>>2]=0;c[d+32+12>>2]=0;f[b>>2]=1.0;Ma[c[(c[a>>2]|0)+68>>2]&127](d+16|0,a,d+32|0);f[a+36>>2]=+f[d+16+4>>2]+ +f[a+12>>2];f[b>>2]=-1.0;Ma[c[(c[a>>2]|0)+68>>2]&127](d,a,d+32|0);c[d+16>>2]=c[d>>2];c[d+16+4>>2]=c[d+4>>2];c[d+16+8>>2]=c[d+8>>2];c[d+16+12>>2]=c[d+12>>2];f[a+20>>2]=+f[d+16+4>>2]-+f[a+12>>2];c[d+32>>2]=0;c[d+32+4>>2]=0;c[d+32+8>>2]=0;c[d+32+12>>2]=0;f[d+32+8>>2]=1.0;Ma[c[(c[a>>2]|0)+68>>2]&127](d+16|0,a,d+32|0);f[a+40>>2]=+f[d+16+8>>2]+ +f[a+12>>2];f[d+32+8>>2]=-1.0;Ma[c[(c[a>>2]|0)+68>>2]&127](d,a,d+32|0);c[d+16>>2]=c[d>>2];c[d+16+4>>2]=c[d+4>>2];c[d+16+8>>2]=c[d+8>>2];c[d+16+12>>2]=c[d+12>>2];f[a+24>>2]=+f[d+16+8>>2]-+f[a+12>>2];ea=d;return}function eg(a,b,d,e,g){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;var h=0.0,i=0.0,j=0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0;j=ea;ea=ea+48|0;m=+f[d>>2];n=+f[d+4>>2];l=+f[d+8>>2];o=m*+f[b+4>>2]+n*+f[b+20>>2]+l*+f[b+36>>2];p=m*+f[b+8>>2]+n*+f[b+24>>2]+l*+f[b+40>>2];f[j+32>>2]=+f[b>>2]*m+ +f[b+16>>2]*n+ +f[b+32>>2]*l;f[j+32+4>>2]=o;f[j+32+8>>2]=p;f[j+32+12>>2]=0.0;Ma[c[(c[a>>2]|0)+64>>2]&127](j+16|0,a,j+32|0);p=+f[j+16>>2];o=+f[j+16+4>>2];l=+f[j+16+8>>2];n=p*+f[b>>2]+o*+f[b+4>>2]+l*+f[b+8>>2]+ +f[b+48>>2];m=p*+f[b+16>>2]+o*+f[b+20>>2]+l*+f[b+24>>2]+ +f[b+52>>2];l=p*+f[b+32>>2]+o*+f[b+36>>2]+l*+f[b+40>>2]+ +f[b+56>>2];q=c[(c[a>>2]|0)+64>>2]|0;o=-+f[j+32+4>>2];p=-+f[j+32+8>>2];f[j>>2]=-+f[j+32>>2];f[j+4>>2]=o;f[j+8>>2]=p;f[j+12>>2]=0.0;Ma[q&127](j+16|0,a,j);p=+f[j+16>>2];o=+f[j+16+4>>2];i=+f[j+16+8>>2];k=p*+f[b>>2]+o*+f[b+4>>2]+i*+f[b+8>>2]+ +f[b+48>>2];h=p*+f[b+16>>2]+o*+f[b+20>>2]+i*+f[b+24>>2]+ +f[b+52>>2];i=p*+f[b+32>>2]+o*+f[b+36>>2]+i*+f[b+40>>2]+ +f[b+56>>2];f[e>>2]=n*+f[d>>2]+m*+f[d+4>>2]+l*+f[d+8>>2];i=k*+f[d>>2]+h*+f[d+4>>2]+i*+f[d+8>>2];f[g>>2]=i;h=+f[e>>2];if(!(h>i)){ea=j;return}f[e>>2]=i;f[g>>2]=h;ea=j;return}function fg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,g=0.0,h=0.0,i=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0,r=0.0,t=0.0,u=0.0,v=0;q=ea;ea=ea+2048|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;e=+f[d>>2];g=+f[d+4>>2];h=+f[d+8>>2];if(e*e+g*g+h*h<1.4210854715202004e-14){p=1.0;o=0.0;h=0.0}else{r=1.0/+s(+(e*e+g*g+h*h));p=e*r;o=g*r;h=h*r}m=c[b+92>>2]|0;if((m|0)<=0){ea=q;return}n=0;g=-999999984306749440.0;i=c[b+100>>2]|0;j=c[b+120>>2]|0;while(1){k=m-n|0;l=(k|0)<128?k:128;if((k|0)>0){d=0;do{e=+f[j>>2];u=+f[i>>2]+p*+f[b+12>>2]*e;t=o*+f[b+16>>2]*e+ +f[i+4>>2];e=e*(h*+f[b+20>>2])+ +f[i+8>>2];r=+ha[c[(c[b>>2]|0)+48>>2]&15](b);f[q+(d<<4)>>2]=u-p*r;f[q+(d<<4)+4>>2]=t-o*r;f[q+(d<<4)+8>>2]=e-h*r;f[q+(d<<4)+12>>2]=0.0;i=i+16|0;j=j+4|0;d=d+1|0}while((d|0)<(l|0));k=0;e=-3402823466385288598117041.0e14;d=-1;do{u=p*+f[q+(k<<4)>>2]+o*+f[q+(k<<4)+4>>2]+h*+f[q+(k<<4)+8>>2];v=u>e;d=v?k:d;e=v?u:e;k=k+1|0}while((k|0)!=(l|0))}else{e=-3402823466385288598117041.0e14;d=-1}if(e>g){v=q+(d<<4)|0;c[a>>2]=c[v>>2];c[a+4>>2]=c[v+4>>2];c[a+8>>2]=c[v+8>>2];c[a+12>>2]=c[v+12>>2]}else e=g;n=n+128|0;if((m|0)<=(n|0))break;else g=e}ea=q;return}function gg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0.0;a:do if(b>>>0<=20)do switch(b|0){case 9:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;c[a>>2]=b;break a}case 10:{b=(c[d>>2]|0)+(4-1)&~(4-1);e=c[b>>2]|0;c[d>>2]=b+4;c[a>>2]=e;c[a+4>>2]=((e|0)<0)<<31>>31;break a}case 11:{b=(c[d>>2]|0)+(4-1)&~(4-1);e=c[b>>2]|0;c[d>>2]=b+4;c[a>>2]=e;c[a+4>>2]=0;break a}case 12:{f=(c[d>>2]|0)+(8-1)&~(8-1);b=c[f>>2]|0;e=c[f+4>>2]|0;c[d>>2]=f+8;c[a>>2]=b;c[a+4>>2]=e;break a}case 13:{e=(c[d>>2]|0)+(4-1)&~(4-1);f=c[e>>2]|0;c[d>>2]=e+4;c[a>>2]=(f&65535)<<16>>16;c[a+4>>2]=(((f&65535)<<16>>16|0)<0)<<31>>31;break a}case 14:{e=(c[d>>2]|0)+(4-1)&~(4-1);f=c[e>>2]|0;c[d>>2]=e+4;c[a>>2]=f&65535;c[a+4>>2]=0;break a}case 15:{e=(c[d>>2]|0)+(4-1)&~(4-1);f=c[e>>2]|0;c[d>>2]=e+4;c[a>>2]=(f&255)<<24>>24;c[a+4>>2]=(((f&255)<<24>>24|0)<0)<<31>>31;break a}case 16:{e=(c[d>>2]|0)+(4-1)&~(4-1);f=c[e>>2]|0;c[d>>2]=e+4;c[a>>2]=f&255;c[a+4>>2]=0;break a}case 17:{f=(c[d>>2]|0)+(8-1)&~(8-1);h=+g[f>>3];c[d>>2]=f+8;g[a>>3]=h;break a}case 18:{hu(a,d);break a}default:break a}while(0);while(0);return}function hg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=ea;ea=ea+16|0;j=c[a+12>>2]|0;k=c[j+(((d+b|0)/2|0)<<4)>>2]|0;l=c[j+(((d+b|0)/2|0)<<4)+4>>2]|0;m=c[j+(((d+b|0)/2|0)<<4)+8>>2]|0;e=b;f=d;while(1){while(1){i=j+(e<<4)|0;g=c[j+(e<<4)+4>>2]|0;if((g|0)>=(l|0)){if((g|0)!=(l|0))break;g=c[i>>2]|0;if((g|0)>=(k|0)){if((g|0)!=(k|0))break;if((c[j+(e<<4)+8>>2]|0)>=(m|0))break}}e=e+1|0}while(1){h=j+(f<<4)|0;g=c[j+(f<<4)+4>>2]|0;if((l|0)>=(g|0)){if((l|0)!=(g|0))break;g=c[h>>2]|0;if((k|0)>=(g|0)){if((k|0)!=(g|0))break;if((m|0)>=(c[j+(f<<4)+8>>2]|0))break}}f=f+-1|0}if((e|0)<=(f|0)){c[n>>2]=c[i>>2];c[n+4>>2]=c[i+4>>2];c[n+8>>2]=c[i+8>>2];c[n+12>>2]=c[i+12>>2];c[i>>2]=c[h>>2];c[i+4>>2]=c[h+4>>2];c[i+8>>2]=c[h+8>>2];c[i+12>>2]=c[h+12>>2];j=(c[a+12>>2]|0)+(f<<4)|0;c[j>>2]=c[n>>2];c[j+4>>2]=c[n+4>>2];c[j+8>>2]=c[n+8>>2];c[j+12>>2]=c[n+12>>2];e=e+1|0;f=f+-1|0}if((e|0)>(f|0))break;j=c[a+12>>2]|0}if((f|0)>(b|0))hg(a,b,f);if((e|0)>=(d|0)){ea=n;return}hg(a,e,d);ea=n;return}function ig(a){a=a|0;var b=0,d=0,e=0.0,g=0.0,h=0.0,i=0,j=0;i=c[a+28>>2]|0;e=0.0;g=0.0;h=0.0;j=0;a:while(1){switch(j&2147483647|0){case 0:{e=+f[a+80>>2]+ +f[a+64>>2];g=+f[a+84>>2]+ +f[a+68>>2];h=+f[a+88>>2]+ +f[a+72>>2];break}case 1:{e=+f[a+80>>2]+ +f[a+64>>2];g=+f[a+84>>2]+ +f[a+68>>2];h=+f[a+72>>2]-+f[a+88>>2];break}case 2:{e=+f[a+80>>2]+ +f[a+64>>2];g=+f[a+68>>2]-+f[a+84>>2];h=+f[a+88>>2]+ +f[a+72>>2];break}case 3:{e=+f[a+80>>2]+ +f[a+64>>2];g=+f[a+68>>2]-+f[a+84>>2];h=+f[a+72>>2]-+f[a+88>>2];break}case 4:{e=+f[a+64>>2]-+f[a+80>>2];g=+f[a+84>>2]+ +f[a+68>>2];h=+f[a+88>>2]+ +f[a+72>>2];break}case 5:{e=+f[a+64>>2]-+f[a+80>>2];g=+f[a+84>>2]+ +f[a+68>>2];h=+f[a+72>>2]-+f[a+88>>2];break}case 6:{e=+f[a+64>>2]-+f[a+80>>2];g=+f[a+68>>2]-+f[a+84>>2];h=+f[a+88>>2]+ +f[a+72>>2];break}case 7:{e=+f[a+64>>2]-+f[a+80>>2];g=+f[a+68>>2]-+f[a+84>>2];h=+f[a+72>>2]-+f[a+88>>2];break}default:{}}if((i|0)>0){b=c[a+36>>2]|0;d=0;do{if(+f[b+(d*36|0)+32>>2]+(e*+f[b+(d*36|0)+20>>2]+g*+f[b+(d*36|0)+24>>2]+h*+f[b+(d*36|0)+28>>2])>0.0){b=0;d=16;break a}d=d+1|0}while((d|0)<(i|0))}j=j+1|0;if(j>>>0>=8){b=1;d=16;break}}if((d|0)==16)return b|0;return 0}function jg(a,b){a=a|0;b=b|0;var d=0,e=0,g=0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0,v=0,w=0,x=0,y=0;if((c[a>>2]|0)==(b|0)){c[a>>2]=0;a=0;return a|0}e=c[b+32>>2]|0;d=c[e+32>>2]|0;b=c[e+36+(((c[e+40>>2]|0)!=(b|0)&1)<<2)>>2]|0;if(!d){c[a>>2]=b;c[b+32>>2]=0;d=c[a+4>>2]|0;if(!d)d=b;else{c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0);d=c[a>>2]|0}c[a+4>>2]=e;a=d;return a|0}c[d+36+(((c[d+40>>2]|0)==(e|0)&1)<<2)>>2]=b;c[b+32>>2]=d;b=c[a+4>>2]|0;if(b|0){c[6748]=(c[6748]|0)+1;uc(c[b+-4>>2]|0)}c[a+4>>2]=e;do{q=+f[d>>2];x=d+4|0;o=+f[x>>2];v=d+8|0;m=+f[v>>2];y=d+16|0;s=+f[y>>2];w=d+20|0;k=+f[w>>2];e=d+24|0;i=+f[e>>2];u=c[d+36>>2]|0;b=c[d+40>>2]|0;t=+f[u>>2];p=+f[b>>2];p=t>2]=p;t=+f[u+16>>2];r=+f[b+16>>2];r=t>r?t:r;f[y>>2]=r;t=+f[u+4>>2];n=+f[b+4>>2];n=t>2]=n;t=+f[u+20>>2];j=+f[b+20>>2];j=t>j?t:j;f[w>>2]=j;t=+f[u+8>>2];l=+f[b+8>>2];l=t>2]=l;t=+f[u+24>>2];h=+f[b+24>>2];h=t>h?t:h;f[e>>2]=h;if(!(s!=r|(q!=p|o!=n|m!=l))?!(k!=j|i!=h):0){g=14;break}d=c[d+32>>2]|0}while((d|0)!=0);if((g|0)==14)return d|0;y=c[a>>2]|0;return y|0}function kg(a,b,d,e,g,i,j){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;i=i|0;j=j|0;var k=0.0,l=0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0.0,s=0;q=ea;ea=ea+16|0;f[e>>2]=3402823466385288598117041.0e14;f[g>>2]=-3402823466385288598117041.0e14;l=c[a+8>>2]|0;if((l|0)>0){p=0;do{s=c[a+16>>2]|0;r=+f[s+(p<<4)>>2];m=+f[s+(p<<4)+4>>2];n=+f[s+(p<<4)+8>>2];k=r*+f[b>>2]+m*+f[b+4>>2]+n*+f[b+8>>2]+ +f[b+48>>2];o=r*+f[b+16>>2]+m*+f[b+20>>2]+n*+f[b+24>>2]+ +f[b+52>>2];n=r*+f[b+32>>2]+m*+f[b+36>>2]+n*+f[b+40>>2]+ +f[b+56>>2];m=k*+f[d>>2]+o*+f[d+4>>2]+n*+f[d+8>>2];if(m<+f[e>>2]){f[e>>2]=m;f[i>>2]=k;f[i+4>>2]=o;f[i+8>>2]=n;f[i+12>>2]=0.0}if(m>+f[g>>2]){f[g>>2]=m;f[j>>2]=k;f[j+4>>2]=o;f[j+8>>2]=n;f[j+12>>2]=0.0}p=p+1|0}while((p|0)!=(l|0));m=+f[g>>2];l=(f[h>>2]=m,c[h>>2]|0)}else{l=-8388609;m=-3402823466385288598117041.0e14}k=+f[e>>2];if(!(k>m)){ea=q;return}c[e>>2]=l;f[g>>2]=k;c[q>>2]=c[i>>2];c[q+4>>2]=c[i+4>>2];c[q+8>>2]=c[i+8>>2];c[q+12>>2]=c[i+12>>2];c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];c[i+12>>2]=c[j+12>>2];c[j>>2]=c[q>>2];c[j+4>>2]=c[q+4>>2];c[j+8>>2]=c[q+8>>2];c[j+12>>2]=c[q+12>>2];ea=q;return}function lg(a,b,d,e,g){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0.0,k=0.0,l=0,m=0,n=0.0,o=0.0,p=0;m=ea;ea=ea+16|0;if((g|0)>-3){c[6747]=(c[6747]|0)+1;a=kb((g+3<<4|3)+16|0)|0;if(!a)l=0;else{c[(a+4+15&-16)+-4>>2]=a;l=a+4+15&-16}a=0;do{i=l+(a<<4)|0;c[i>>2]=c[m>>2];c[i+4>>2]=c[m+4>>2];c[i+8>>2]=c[m+8>>2];c[i+12>>2]=c[m+12>>2];a=a+1|0}while((a|0)!=(g+3|0));h=0;i=l;while(1){if(!h)j=0.0;else{a=h;k=.5;j=0.0;while(1){j=(a&1|0)==0?j:j+k;a=1?a>>1:a;if(!a)break;else k=k*.5}}k=j*2.0+-1.0;o=(+(h<<1|0)*3.1415927410125732+3.1415927410125732)/+(g+3|0);n=+s(+(1.0-k*k));j=+v(+o)*n;f[i>>2]=+u(+o)*n;f[i+4>>2]=j;f[i+8>>2]=k;f[i+12>>2]=0.0;h=h+1|0;if((h|0)==(g+3|0))break;else i=i+16|0}a=0;do{p=l+(a<<4)|0;h=l+(a<<4)+4|0;i=l+(a<<4)+8|0;n=+f[h>>2]*+f[e+4>>2]+ +f[d+4>>2];o=+f[i>>2]*+f[e+8>>2]+ +f[d+8>>2];f[p>>2]=+f[p>>2]*+f[e>>2]+ +f[d>>2];f[h>>2]=n;f[i>>2]=o;f[l+(a<<4)+12>>2]=0.0;a=a+1|0}while((a|0)<(g+3|0));i=l;h=l}else{i=0;h=0}a=wc(b,h,g+3|0,1)|0;if((h|0)==0|(i|0)==0){ea=m;return a|0}c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0);ea=m;return a|0}function mg(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;l=ea;ea=ea+32|0;j=(a[b+28>>0]|0)!=0;k=j?e:d;j=j?d:e;h=c[k+4>>2]|0;i=c[h+16>>2]|0;g=c[b+12>>2]|0;if((g|0)<(i|0)){if((c[b+16>>2]|0)<(i|0)){if(!i){e=g;f=0}else{c[6747]=(c[6747]|0)+1;d=kb((i<<2|3)+16|0)|0;if(!d)d=0;else{c[(d+4+15&-16)+-4>>2]=d;d=d+4+15&-16}e=c[b+12>>2]|0;f=d}if((e|0)>0){d=0;do{c[f+(d<<2)>>2]=c[(c[b+20>>2]|0)+(d<<2)>>2];d=d+1|0}while((d|0)!=(e|0))}d=c[b+20>>2]|0;if(d|0){if(a[b+24>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+20>>2]=0}a[b+24>>0]=1;c[b+20>>2]=f;c[b+16>>2]=i;e=b+20|0}else e=b+20|0;d=g;do{c[(c[e>>2]|0)+(d<<2)>>2]=0;d=d+1|0}while((d|0)!=(i|0))}c[b+12>>2]=i;if((i|0)<=0){ea=l;return}d=0;do{if(!(c[h+64>>2]|0)){e=c[(c[h+24>>2]|0)+(d*80|0)+64>>2]|0;f=c[k+8>>2]|0;g=c[k+12>>2]|0;c[l>>2]=k;c[l+4>>2]=e;c[l+8>>2]=f;c[l+12>>2]=g;c[l+16>>2]=-1;c[l+20>>2]=d;g=c[b+4>>2]|0;g=wa[c[(c[g>>2]|0)+8>>2]&31](g,l,j,c[b+32>>2]|0)|0;c[(c[b+20>>2]|0)+(d<<2)>>2]=g}else c[(c[b+20>>2]|0)+(d<<2)>>2]=0;d=d+1|0}while((d|0)!=(i|0));ea=l;return}function ng(a,b,e){a=a|0;b=b|0;e=e|0;ch(a,b,e)|0;c[b+52>>2]=c[a+48>>2];c[b+56>>2]=c[a+52>>2];c[b+60>>2]=c[a+56>>2];c[b+64>>2]=c[a+60>>2];c[b+68>>2]=c[a+64>>2];c[b+72>>2]=c[a+68>>2];c[b+76>>2]=c[a+72>>2];c[b+80>>2]=c[a+76>>2];c[b+84>>2]=c[a+80>>2];c[b+88>>2]=c[a+84>>2];c[b+92>>2]=c[a+88>>2];c[b+96>>2]=c[a+92>>2];c[b+100>>2]=c[a+96>>2];c[b+104>>2]=c[a+100>>2];c[b+108>>2]=c[a+104>>2];c[b+112>>2]=c[a+108>>2];c[b+116>>2]=c[a+112>>2];c[b+120>>2]=c[a+116>>2];c[b+124>>2]=c[a+120>>2];c[b+128>>2]=c[a+124>>2];c[b+132>>2]=c[a+128>>2];c[b+136>>2]=c[a+132>>2];c[b+140>>2]=c[a+136>>2];c[b+144>>2]=c[a+140>>2];c[b+148>>2]=c[a+144>>2];c[b+152>>2]=c[a+148>>2];c[b+156>>2]=c[a+152>>2];c[b+160>>2]=c[a+156>>2];c[b+164>>2]=c[a+160>>2];c[b+168>>2]=c[a+164>>2];c[b+172>>2]=c[a+168>>2];c[b+176>>2]=c[a+172>>2];c[b+228>>2]=c[a+868>>2];c[b+212>>2]=c[a+872>>2];c[b+196>>2]=c[a+680>>2];c[b+180>>2]=c[a+696>>2];c[b+232>>2]=c[a+932>>2];c[b+216>>2]=c[a+936>>2];c[b+200>>2]=c[a+684>>2];c[b+184>>2]=c[a+700>>2];c[b+236>>2]=c[a+996>>2];c[b+220>>2]=c[a+1e3>>2];c[b+204>>2]=c[a+688>>2];c[b+188>>2]=c[a+704>>2];c[b+244>>2]=d[a+1300>>0];c[b+248>>2]=d[a+1301>>0];return 15073}function og(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=c[b+32>>2]|0;if(!d)g=0;else g=c[b+40>>2]|0;e=c[b+52>>2]|0;if(!e)h=0;else h=c[b+60>>2]|0;f=c[b+72>>2]|0;if(!f)i=0;else i=c[b+80>>2]|0;j=c[b+8>>2]|0;+qa[c[(c[j>>2]|0)+12>>2]&3](j,g,d,h,e,i,f,c[b+4>>2]|0,c[b+20>>2]|0,c[b+24>>2]|0);d=c[b+32>>2]|0;if((d|0)<0){if((c[b+36>>2]|0)<0){e=c[b+40>>2]|0;if(e|0){if(a[b+44>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0)}c[b+40>>2]=0}a[b+44>>0]=1;c[b+40>>2]=0;c[b+36>>2]=0}do{c[(c[b+40>>2]|0)+(d<<2)>>2]=0;d=d+1|0}while((d|0)!=0)}c[b+32>>2]=0;d=c[b+52>>2]|0;if((d|0)<0){if((c[b+56>>2]|0)<0){e=c[b+60>>2]|0;if(e|0){if(a[b+64>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0)}c[b+60>>2]=0}a[b+64>>0]=1;c[b+60>>2]=0;c[b+56>>2]=0}do{c[(c[b+60>>2]|0)+(d<<2)>>2]=0;d=d+1|0}while((d|0)!=0)}c[b+52>>2]=0;d=c[b+72>>2]|0;if((d|0)>=0){c[b+72>>2]=0;return}if((c[b+76>>2]|0)<0){e=c[b+80>>2]|0;if(e|0){if(a[b+84>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0)}c[b+80>>2]=0}a[b+84>>0]=1;c[b+80>>2]=0;c[b+76>>2]=0}do{c[(c[b+80>>2]|0)+(d<<2)>>2]=0;d=d+1|0}while((d|0)!=0);c[b+72>>2]=0;return}function pg(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;c[6747]=(c[6747]|0)+1;d=kb(39)|0;if(!d)i=0;else{c[(d+4+15&-16)+-4>>2]=d;i=d+4+15&-16}g=i;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;c[i+12>>2]=0;c[i+16>>2]=0;if((c[b+872>>2]|0)>0){h=c[c[b+880>>2]>>2]|0;c[i>>2]=c[h>>2];c[i+4>>2]=c[h+4>>2];c[i+8>>2]=c[h+8>>2];c[i+12>>2]=c[h+12>>2];c[i+16>>2]=c[h+16>>2]}else{c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;c[i+12>>2]=0;c[i+16>>2]=0}d=c[b+872>>2]|0;if((d|0)!=(c[b+876>>2]|0)){h=d;f=b+880|0;f=c[f>>2]|0;f=f+(h<<2)|0;c[f>>2]=g;h=h+1|0;c[b+872>>2]=h;return i|0}h=(d|0)==0?1:d<<1;if((d|0)>=(h|0)){h=d;f=b+880|0;f=c[f>>2]|0;f=f+(h<<2)|0;c[f>>2]=g;h=h+1|0;c[b+872>>2]=h;return i|0}if(!h)e=0;else{c[6747]=(c[6747]|0)+1;d=kb((h<<2|3)+16|0)|0;if(!d)e=0;else{c[(d+4+15&-16)+-4>>2]=d;e=d+4+15&-16}d=c[b+872>>2]|0}if((d|0)>0){f=0;do{c[e+(f<<2)>>2]=c[(c[b+880>>2]|0)+(f<<2)>>2];f=f+1|0}while((f|0)!=(d|0))}f=c[b+880>>2]|0;if(f){if(a[b+884>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[f+-4>>2]|0);d=c[b+872>>2]|0}c[b+880>>2]=0}a[b+884>>0]=1;c[b+880>>2]=e;c[b+876>>2]=h;h=d;f=b+880|0;f=c[f>>2]|0;f=f+(h<<2)|0;c[f>>2]=g;h=h+1|0;c[b+872>>2]=h;return i|0}function qg(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;e=c[b+4>>2]|0;if((e|0)==(c[b+8>>2]|0)){Gm(b,(e|0)==0?1:e<<1);e=c[b+4>>2]|0}o=c[b+12>>2]|0;l=o+(e*36|0)+16|0;a[l>>0]=1;k=o+(e*36|0)+12|0;c[k>>2]=0;m=o+(e*36|0)+4|0;c[m>>2]=0;j=o+(e*36|0)+8|0;c[j>>2]=0;p=c[d+4>>2]|0;if((p|0)<=0){c[m>>2]=p;p=o+(e*36|0)+20|0;d=d+20|0;c[p>>2]=c[d>>2];c[p+4>>2]=c[d+4>>2];c[p+8>>2]=c[d+8>>2];c[p+12>>2]=c[d+12>>2];d=c[b+4>>2]|0;d=d+1|0;c[b+4>>2]=d;return}c[6747]=(c[6747]|0)+1;f=kb((p<<2|3)+16|0)|0;if(!f)i=0;else{c[(f+4+15&-16)+-4>>2]=f;i=f+4+15&-16}g=c[m>>2]|0;h=c[k>>2]|0;if((g|0)<=0){if(h|0)n=10}else{f=0;do{c[i+(f<<2)>>2]=c[h+(f<<2)>>2];f=f+1|0}while((f|0)!=(g|0));n=10}if((n|0)==10?a[l>>0]|0:0){c[6748]=(c[6748]|0)+1;uc(c[h+-4>>2]|0)}a[l>>0]=1;c[k>>2]=i;c[j>>2]=p;hk(i|0,0,p<<2|0)|0;c[m>>2]=p;f=c[k>>2]|0;g=c[d+12>>2]|0;h=0;do{c[f+(h<<2)>>2]=c[g+(h<<2)>>2];h=h+1|0}while((h|0)!=(p|0));p=o+(e*36|0)+20|0;d=d+20|0;c[p>>2]=c[d>>2];c[p+4>>2]=c[d+4>>2];c[p+8>>2]=c[d+8>>2];c[p+12>>2]=c[d+12>>2];d=c[b+4>>2]|0;d=d+1|0;c[b+4>>2]=d;return}function rg(a,b,d,e,g){a=a|0;b=b|0;d=d|0;e=e|0;g=+g;var h=0,i=0.0,j=0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0;l=+f[d>>2];if(+f[b>>2]<=l){i=+f[d+4>>2];if((((+f[b+4>>2]<=i?+f[b+8>>2]<=+f[d+8>>2]:0)?+f[b+16>>2]>=+f[d+16>>2]:0)?+f[b+20>>2]>=+f[d+20>>2]:0)?+f[b+24>>2]>=+f[d+24>>2]:0){d=0;return d|0}else h=d+4|0}else{i=+f[d+4>>2];h=d+4|0}f[d>>2]=l-g;n=i-g;f[h>>2]=n;i=+f[d+8>>2]-g;f[d+8>>2]=i;q=+f[d+16>>2]+g;f[d+16>>2]=q;o=+f[d+20>>2]+g;f[d+20>>2]=o;m=+f[d+24>>2]+g;f[d+24>>2]=m;p=+f[e>>2];f[(p>0.0?d+16|0:d)>>2]=(p>0.0?q:l-g)+p;g=+f[e+4>>2];f[(g>0.0?d+20|0:h)>>2]=(g>0.0?o:n)+g;g=+f[e+8>>2];f[(g>0.0?d+24|0:d+8|0)>>2]=(g>0.0?m:i)+g;h=jg(a,b)|0;a:do if(h){j=c[a+8>>2]|0;if((j|0)<=-1){h=c[a>>2]|0;break}if(j){k=0;e=h;while(1){h=c[e+32>>2]|0;k=k+1|0;if(!h){h=e;break a}if((k|0)>=(j|0))break;else e=h}}}else h=0;while(0);c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];c[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];c[b+28>>2]=c[d+28>>2];je(a,h,b);d=1;return d|0}function sg(a,b,d,e,g,i){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;i=i|0;var j=0,k=0,l=0,m=0,n=0.0,o=0,p=0.0,q=0.0;Pa[c[(c[a>>2]|0)+8>>2]&127](a,b,g,i);l=c[i>>2]|0;o=c[i+4>>2]|0;j=c[i+8>>2]|0;m=c[g>>2]|0;k=c[g+4>>2]|0;b=c[g+8>>2]|0;n=+f[d>>2];p=+f[d+4>>2];q=+f[d+8>>2];if(n>0.0)l=(f[h>>2]=n+(c[h>>2]=l,+f[h>>2]),c[h>>2]|0);else m=(f[h>>2]=n+(c[h>>2]=m,+f[h>>2]),c[h>>2]|0);if(p>0.0)d=(f[h>>2]=p+(c[h>>2]=o,+f[h>>2]),c[h>>2]|0);else{d=o;k=(f[h>>2]=p+(c[h>>2]=k,+f[h>>2]),c[h>>2]|0)}if(q>0.0)j=(f[h>>2]=q+(c[h>>2]=j,+f[h>>2]),c[h>>2]|0);else b=(f[h>>2]=q+(c[h>>2]=b,+f[h>>2]),c[h>>2]|0);n=+f[e>>2];p=+f[e+4>>2];q=+f[e+8>>2];q=+s(+(n*n+p*p+q*q));q=q*+ha[c[(c[a>>2]|0)+16>>2]&15](a);c[g>>2]=m;c[g+4>>2]=k;c[g+8>>2]=b;f[g+12>>2]=0.0;c[i>>2]=l;c[i+4>>2]=d;c[i+8>>2]=j;f[i+12>>2]=0.0;f[g>>2]=+f[g>>2]-q;f[g+4>>2]=+f[g+4>>2]-q;f[g+8>>2]=+f[g+8>>2]-q;f[i>>2]=q+ +f[i>>2];f[i+4>>2]=q+ +f[i+4>>2];f[i+8>>2]=q+ +f[i+8>>2];return}function tg(b,d,e){b=b|0;d=+d;e=e|0;var g=0,h=0.0,i=0,j=0,k=0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0;j=c[b+712>>2]|0;if(e){if((j|0)>0){e=c[b+720>>2]|0;g=0;do{f[e+(g*104|0)+88>>2]=0.0;g=g+1|0}while((g|0)!=(j|0))}e=c[b+752>>2]|0;if((e|0)>0){g=c[b+760>>2]|0;i=0;do{m=c[g+(i*44|0)+8>>2]|0;l=c[g+(i*44|0)+12>>2]|0;k=c[g+(i*44|0)+16>>2]|0;o=+f[m+8>>2];q=+f[m+12>>2];h=+f[m+16>>2];n=+f[l+8>>2]-o;r=+f[l+12>>2]-q;p=+f[l+16>>2]-h;o=+f[k+8>>2]-o;q=+f[k+12>>2]-q;h=+f[k+16>>2]-h;h=+s(+((n*q-r*o)*(n*q-r*o)+((r*h-p*q)*(r*h-p*q)+(p*o-n*h)*(p*o-n*h))));f[m+88>>2]=h+ +f[m+88>>2];f[l+88>>2]=h+ +f[l+88>>2];f[k+88>>2]=h+ +f[k+88>>2];i=i+1|0}while((i|0)!=(e|0))}if((j|0)<=0){m=b+924|0;a[m>>0]=1;return}e=c[b+720>>2]|0;g=0;do{m=e+(g*104|0)+88|0;f[m>>2]=1.0/+f[m>>2];g=g+1|0}while((g|0)!=(j|0))}if((j|0)<=0){m=b+924|0;a[m>>0]=1;return}g=c[b+720>>2]|0;e=0;h=0.0;do{r=+f[g+(e*104|0)+88>>2];h=h+(r>0.0?1.0/r:0.0);e=e+1|0}while((e|0)!=(j|0));h=1.0/h*d;e=0;do{m=g+(e*104|0)+88|0;f[m>>2]=+f[m>>2]/h;e=e+1|0}while((e|0)!=(j|0));m=b+924|0;a[m>>0]=1;return}function ug(b,d){b=b|0;d=d|0;var e=0,g=0,h=0.0,i=0,j=0,k=0.0,l=0.0;e=c[d+204>>2]|0;if((e&3|0)==0?(c[d+504>>2]&1|0)==0:0){h=+f[d+344>>2];if(h!=0.0){l=1.0/h*+f[b+252>>2];k=1.0/h*+f[b+256>>2];f[d+364>>2]=1.0/h*+f[b+248>>2];f[d+368>>2]=l;f[d+372>>2]=k;f[d+376>>2]=0.0}c[d+380>>2]=c[b+248>>2];c[d+380+4>>2]=c[b+248+4>>2];c[d+380+8>>2]=c[b+248+8>>2];c[d+380+12>>2]=c[b+248+12>>2]}if(!(c[d+192>>2]|0))return;if(e&1)if((c[d+216>>2]&-2|0)==4)e=e&3;else{c[d+216>>2]=2;e=e&3}else{g=c[b+232>>2]|0;if((g|0)==(c[b+236>>2]|0)?(j=(g|0)==0?1:g<<1,(g|0)<(j|0)):0){if(!j)e=0;else{c[6747]=(c[6747]|0)+1;e=kb((j<<2|3)+16|0)|0;if(!e)e=0;else{c[(e+4+15&-16)+-4>>2]=e;e=e+4+15&-16}g=c[b+232>>2]|0}if((g|0)>0){i=0;do{c[e+(i<<2)>>2]=c[(c[b+240>>2]|0)+(i<<2)>>2];i=i+1|0}while((i|0)!=(g|0))}i=c[b+240>>2]|0;if(i){if(a[b+244>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0);g=c[b+232>>2]|0}c[b+240>>2]=0}a[b+244>>0]=1;c[b+240>>2]=e;c[b+236>>2]=j;e=c[d+204>>2]&3}else e=e&3;c[(c[b+240>>2]|0)+(g<<2)>>2]=d;c[b+232>>2]=g+1}j=(e|0)!=0;Pa[c[(c[b>>2]|0)+36>>2]&127](b,d,j?2:1,j?-3:-1);return}function vg(a,b,d,e,g){a=a|0;b=b|0;d=+d;e=e|0;g=g|0;var h=0,i=0.0,j=0.0;h=ea;ea=ea+240|0;_p(h+224|0,+f[b>>2],+f[b+4>>2],+f[b+8>>2],d);rj(b,h+208|0,h+192|0);_p(h+160|0,+f[h+208>>2],+f[h+208+4>>2],+f[h+208+8>>2],100.0);j=+f[h+224>>2];i=+f[h+224+4>>2];d=+f[h+224+8>>2];vp(h+176|0,j,i,d,+f[h+160>>2],+f[h+160+4>>2],+f[h+160+8>>2]);_p(h+128|0,+f[h+208>>2],+f[h+208+4>>2],+f[h+208+8>>2],100.0);xp(h+144|0,j,i,d,+f[h+128>>2],+f[h+128+4>>2],+f[h+128+8>>2]);_p(h+96|0,+f[h+192>>2],+f[h+192+4>>2],+f[h+192+8>>2],100.0);vp(h+112|0,j,i,d,+f[h+96>>2],+f[h+96+4>>2],+f[h+96+8>>2]);_p(h+64|0,+f[h+192>>2],+f[h+192+4>>2],+f[h+192+8>>2],100.0);xp(h+80|0,j,i,d,+f[h+64>>2],+f[h+64+4>>2],+f[h+64+8>>2]);b=c[(c[a>>2]|0)+8>>2]|0;dw(h+48|0,e,+f[h+176>>2],+f[h+176+4>>2],+f[h+176+8>>2]);dw(h+32|0,e,+f[h+144>>2],+f[h+144+4>>2],+f[h+144+8>>2]);Pa[b&127](a,h+48|0,h+32|0,g);b=c[(c[a>>2]|0)+8>>2]|0;dw(h+16|0,e,+f[h+112>>2],+f[h+112+4>>2],+f[h+112+8>>2]);dw(h,e,+f[h+80>>2],+f[h+80+4>>2],+f[h+80+8>>2]);Pa[b&127](a,h+16|0,h,g);ea=h;return}function wg(a,b,d,e,g,h,i,j,k,l){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0.0,n=0.0;l=ea;ea=ea+80|0;n=+f[h+52>>2]-+f[g+52>>2];m=+f[h+56>>2]-+f[g+56>>2];f[l+56>>2]=+f[h+48>>2]-+f[g+48>>2];f[l+56+4>>2]=n;f[l+56+8>>2]=m;f[l+56+12>>2]=0.0;if(Bb(d,g,e,h,l+56|0,l,1)|0){c[j>>2]=c[l+4>>2];c[j+4>>2]=c[l+4+4>>2];c[j+8>>2]=c[l+4+8>>2];c[j+12>>2]=c[l+4+12>>2];c[k>>2]=c[l+20>>2];c[k+4>>2]=c[l+20+4>>2];c[k+8>>2]=c[l+20+8>>2];c[k+12>>2]=c[l+20+12>>2];c[i>>2]=c[l+36>>2];c[i+4>>2]=c[l+36+4>>2];c[i+8>>2]=c[l+36+8>>2];c[i+12>>2]=c[l+36+12>>2];k=1;ea=l;return k|0}if(!(Fc(d,g,e,h,l+56|0,l)|0)){k=0;ea=l;return k|0}c[j>>2]=c[l+4>>2];c[j+4>>2]=c[l+4+4>>2];c[j+8>>2]=c[l+4+8>>2];c[j+12>>2]=c[l+4+12>>2];c[k>>2]=c[l+20>>2];c[k+4>>2]=c[l+20+4>>2];c[k+8>>2]=c[l+20+8>>2];c[k+12>>2]=c[l+20+12>>2];c[i>>2]=c[l+36>>2];c[i+4>>2]=c[l+36+4>>2];c[i+8>>2]=c[l+36+8>>2];c[i+12>>2]=c[l+36+12>>2];k=0;ea=l;return k|0}function xg(b,e,g,h,i,j){b=b|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0;if((d[h+55>>0]|0|0)==(e|0)){h=0;return h|0}k=c[6088+(i<<2)>>2]|0;if(+f[h>>2]*+f[g+16>>2]+ +f[h+4>>2]*+f[g+20>>2]+ +f[h+8>>2]*+f[g+24>>2]-+f[h+16>>2]<-9.999999747378752e-06){k=Ud(b,c[h+20+(k<<2)>>2]|0,c[h+20+(i<<2)>>2]|0,g,0)|0;if(!k){h=0;return h|0}a[k+52>>0]=i;c[k+32>>2]=h;a[h+52+i>>0]=0;c[h+32+(i<<2)>>2]=k;i=c[j>>2]|0;if(!i)c[j+4>>2]=k;else{a[i+53>>0]=2;c[i+36>>2]=k;a[k+54>>0]=1;c[k+40>>2]=i}c[j>>2]=k;c[j+8>>2]=(c[j+8>>2]|0)+1;h=1;return h|0}i=c[6100+(i<<2)>>2]|0;a[h+55>>0]=e;if(!(xg(b,e,g,c[h+32+(k<<2)>>2]|0,d[h+52+k>>0]|0,j)|0)){h=0;return h|0}if(!(xg(b,e,g,c[h+32+(i<<2)>>2]|0,d[h+52+i>>0]|0,j)|0)){h=0;return h|0}i=c[h+48>>2]|0;if(i|0)c[i+44>>2]=c[h+44>>2];i=c[h+44>>2]|0;if(i|0)c[i+48>>2]=c[h+48>>2];if((c[b+9280>>2]|0)==(h|0))c[b+9280>>2]=c[h+48>>2];c[b+9284>>2]=(c[b+9284>>2]|0)+-1;c[h+44>>2]=0;c[h+48>>2]=c[b+9288>>2];i=c[b+9288>>2]|0;if(i|0)c[i+44>>2]=h;c[b+9288>>2]=h;c[b+9292>>2]=(c[b+9292>>2]|0)+1;h=1;return h|0}function yg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,g=0.0,h=0.0,i=0,j=0,k=0,l=0.0,m=0.0,n=0,o=0,p=0.0,q=0;o=ea;ea=ea+2048|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;g=+f[d>>2];h=+f[d+4>>2];e=+f[d+8>>2];if(g*g+h*h+e*e<9.999999747378752e-05){m=0.0;l=1.0;h=0.0}else{p=1.0/+s(+(g*g+h*h+e*e));m=e*p;l=g*p;h=h*p}if((ra[c[(c[b>>2]|0)+96>>2]&127](b)|0)<=0){ea=o;return}k=0;g=-999999984306749440.0;while(1){if(((ra[c[(c[b>>2]|0)+96>>2]&127](b)|0)-k|0)<128){d=(ra[c[(c[b>>2]|0)+96>>2]&127](b)|0)-k|0;if((d|0)>0)n=8;else{e=-3402823466385288598117041.0e14;d=-1}}else{d=128;n=8}if((n|0)==8){n=0;i=0;do{Ma[c[(c[b>>2]|0)+108>>2]&127](b,i,o+(i<<4)|0);i=i+1|0}while((i|0)!=(d|0));j=0;e=-3402823466385288598117041.0e14;i=-1;do{p=l*+f[o+(j<<4)>>2]+h*+f[o+(j<<4)+4>>2]+m*+f[o+(j<<4)+8>>2];q=p>e;i=q?j:i;e=q?p:e;j=j+1|0}while((j|0)!=(d|0));d=i}if(e>g){q=o+(d<<4)|0;c[a>>2]=c[q>>2];c[a+4>>2]=c[q+4>>2];c[a+8>>2]=c[q+8>>2];c[a+12>>2]=c[q+12>>2]}else e=g;k=k+128|0;if((k|0)>=(ra[c[(c[b>>2]|0)+96>>2]&127](b)|0))break;else g=e}ea=o;return}function zg(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;i=c[a+68+(d<<2)>>2]|0;h=b[i+((f&65535)<<2)+-4>>1]|0;if((e[i+((f&65535)<<2)>>1]|0)>=(h&65535))return;j=c[a+60>>2]|0;o=j+((e[i+((f&65535)<<2)+2>>1]|0)<<6)+54+(d<<1)|0;k=i+((f&65535)<<2)|0;f=i+((f&65535)<<2)+-4|0;while(1){i=e[k+-2>>1]|0;if(!(h&1)){h=e[k+2>>1]|0;if(((((e[j+(h<<6)+54+((1<>1]|0)>=(e[j+(i<<6)+48+((1<>1]|0)?(e[j+(i<<6)+54+((1<>1]|0)>=(e[j+(h<<6)+48+((1<>1]|0):0)?(e[j+(h<<6)+54+((1<<(1<>1]|0)>=(e[j+(i<<6)+48+((1<<(1<>1]|0):0)?(e[j+(i<<6)+54+((1<<(1<>1]|0)>=(e[j+(h<<6)+48+((1<<(1<>1]|0):0)?(n=c[a+92>>2]|0,l=j+(h<<6)|0,m=j+(i<<6)|0,wa[c[(c[n>>2]|0)+12>>2]&31](n,l,m,g)|0,n=c[a+96>>2]|0,n|0):0)wa[c[(c[n>>2]|0)+12>>2]&31](n,l,m,g)|0;h=j+(i<<6)+48+(d<<1)|0}else h=j+(i<<6)+54+(d<<1)|0;b[h>>1]=(b[h>>1]|0)+1<<16>>16;b[o>>1]=(b[o>>1]|0)+-1<<16>>16;i=e[k>>1]|e[k+2>>1]<<16;h=e[f>>1]|e[f+2>>1]<<16;b[k>>1]=h;b[k+2>>1]=h>>>16;b[f>>1]=i;b[f+2>>1]=i>>>16;i=k+-4|0;f=f+-4|0;h=b[f>>1]|0;if((e[i>>1]|0)>=(h&65535))break;j=c[a+60>>2]|0;k=i}return}function Ag(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;i=c[a+68+(d<<2)>>2]|0;h=b[i+((f&65535)<<2)+6>>1]|0;if(!(h<<16>>16))return;n=(c[a+60>>2]|0)+((e[i+((f&65535)<<2)+2>>1]|0)<<6)+48+(d<<1)|0;k=i+((f&65535)<<2)|0;while(1){l=k;k=k+4|0;i=b[k>>1]|0;if((e[l>>1]|0)<(i&65535)){h=14;break}j=c[a+60>>2]|0;f=h&65535;if(!(i&1))h=j+(f<<6)+48+(d<<1)|0;else{h=e[l+2>>1]|0;if(((((e[j+(h<<6)+54+((1<>1]|0)>=(e[j+(f<<6)+48+((1<>1]|0)?(e[j+(f<<6)+54+((1<>1]|0)>=(e[j+(h<<6)+48+((1<>1]|0):0)?(e[j+(h<<6)+54+((1<<(1<>1]|0)>=(e[j+(f<<6)+48+((1<<(1<>1]|0):0)?(e[j+(f<<6)+54+((1<<(1<>1]|0)>=(e[j+(h<<6)+48+((1<<(1<>1]|0):0)?(m=c[a+92>>2]|0,wa[c[(c[m>>2]|0)+12>>2]&31](m,j+(h<<6)|0,j+(f<<6)|0,g)|0,m=c[a+96>>2]|0,m|0):0)wa[c[(c[m>>2]|0)+12>>2]&31](m,j+(h<<6)|0,j+(f<<6)|0,g)|0;h=j+(f<<6)+54+(d<<1)|0}b[h>>1]=(b[h>>1]|0)+-1<<16>>16;b[n>>1]=(b[n>>1]|0)+1<<16>>16;h=e[l>>1]|e[l+2>>1]<<16;j=e[k>>1]|e[k+2>>1]<<16;b[l>>1]=j;b[l+2>>1]=j>>>16;b[k>>1]=h;b[k+2>>1]=h>>>16;h=b[l+10>>1]|0;if(!(h<<16>>16)){h=14;break}}if((h|0)==14)return}function Bg(b,d,e,g){b=b|0;d=d|0;e=e|0;g=g|0;var h=0,i=0.0,j=0,k=0,l=0,m=0.0,n=0.0;h=c[d+204>>2]|0;if((h&3|0)==0?(c[d+504>>2]&1|0)==0:0){i=+f[d+344>>2];if(i!=0.0){n=1.0/i*+f[b+252>>2];m=1.0/i*+f[b+256>>2];f[d+364>>2]=1.0/i*+f[b+248>>2];f[d+368>>2]=n;f[d+372>>2]=m;f[d+376>>2]=0.0}c[d+380>>2]=c[b+248>>2];c[d+380+4>>2]=c[b+248+4>>2];c[d+380+8>>2]=c[b+248+8>>2];c[d+380+12>>2]=c[b+248+12>>2]}if(!(c[d+192>>2]|0))return;if(h&1){if((c[d+216>>2]&-2|0)!=4)c[d+216>>2]=2}else{h=c[b+232>>2]|0;if((h|0)==(c[b+236>>2]|0)?(l=(h|0)==0?1:h<<1,(h|0)<(l|0)):0){if(!l)j=0;else{c[6747]=(c[6747]|0)+1;h=kb((l<<2|3)+16|0)|0;if(!h)j=0;else{c[(h+4+15&-16)+-4>>2]=h;j=h+4+15&-16}h=c[b+232>>2]|0}if((h|0)>0){k=0;do{c[j+(k<<2)>>2]=c[(c[b+240>>2]|0)+(k<<2)>>2];k=k+1|0}while((k|0)!=(h|0))}k=c[b+240>>2]|0;if(k){if(a[b+244>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[k+-4>>2]|0);h=c[b+232>>2]|0}c[b+240>>2]=0}a[b+244>>0]=1;c[b+240>>2]=j;c[b+236>>2]=l}c[(c[b+240>>2]|0)+(h<<2)>>2]=d;c[b+232>>2]=h+1}Pa[c[(c[b>>2]|0)+36>>2]&127](b,d,e,g);return}function Cg(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;h=c[a+68+(d<<2)>>2]|0;k=c[a+60>>2]|0;n=e[h+((f&65535)<<2)+2>>1]|0;g=b[h+((f&65535)<<2)+6>>1]|0;if(!(g<<16>>16))return;i=h+((f&65535)<<2)|0;while(1){j=i;i=i+4|0;h=b[i>>1]|0;if((e[j>>1]|0)<(h&65535)){g=14;break}f=c[a+60>>2]|0;g=g&65535;if(!(h&1)){if(((((e[k+(n<<6)+54+((1<>1]|0)>=(e[f+(g<<6)+48+((1<>1]|0)?(e[f+(g<<6)+54+((1<>1]|0)>=(e[k+(n<<6)+48+((1<>1]|0):0)?(e[k+(n<<6)+54+((1<<(1<>1]|0)>=(e[f+(g<<6)+48+((1<<(1<>1]|0):0)?(e[f+(g<<6)+54+((1<<(1<>1]|0)>=(e[k+(n<<6)+48+((1<<(1<>1]|0):0)?(m=c[a+92>>2]|0,l=f+((e[j+2>>1]|0)<<6)|0,va[c[(c[m>>2]|0)+8>>2]&63](m,l,f+(g<<6)|0)|0,m=c[a+96>>2]|0,m|0):0)va[c[(c[m>>2]|0)+8>>2]&63](m,l,f+(g<<6)|0)|0;g=f+(g<<6)+48+(d<<1)|0}else g=f+(g<<6)+54+(d<<1)|0;b[g>>1]=(b[g>>1]|0)+-1<<16>>16;b[k+(n<<6)+54+(d<<1)>>1]=(b[k+(n<<6)+54+(d<<1)>>1]|0)+1<<16>>16;g=e[j>>1]|e[j+2>>1]<<16;f=e[i>>1]|e[i+2>>1]<<16;b[j>>1]=f;b[j+2>>1]=f>>>16;b[i>>1]=g;b[i+2>>1]=g>>>16;g=b[j+10>>1]|0;if(!(g<<16>>16)){g=14;break}}if((g|0)==14)return}function Dg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0;o=(+f[a+32>>2]-+f[a+16>>2])*.5;l=(+f[a+36>>2]-+f[a+20>>2])*.5;i=(+f[a+40>>2]-+f[a+24>>2])*.5;n=+ha[c[(c[a>>2]|0)+48>>2]&15](a);k=+ha[c[(c[a>>2]|0)+48>>2]&15](a);i=i+ +ha[c[(c[a>>2]|0)+48>>2]&15](a);C=(+f[a+32>>2]+ +f[a+16>>2])*.5;A=(+f[a+36>>2]+ +f[a+20>>2])*.5;y=(+f[a+40>>2]+ +f[a+24>>2])*.5;G=+f[b>>2];x=+r(+G);F=+f[b+4>>2];w=+r(+F);u=+f[b+8>>2];v=+r(+u);E=+f[b+16>>2];t=+r(+E);D=+f[b+20>>2];s=+r(+D);p=+f[b+24>>2];q=+r(+p);B=+f[b+32>>2];m=+r(+B);z=+f[b+36>>2];j=+r(+z);g=+f[b+40>>2];h=+r(+g);u=C*G+A*F+y*u+ +f[b+48>>2];p=C*E+A*D+y*p+ +f[b+52>>2];g=C*B+A*z+y*g+ +f[b+56>>2];f[d>>2]=u-((o+n)*x+(l+k)*w+i*v);f[d+4>>2]=p-((o+n)*t+(l+k)*s+i*q);f[d+8>>2]=g-((o+n)*m+(l+k)*j+i*h);f[d+12>>2]=0.0;f[e>>2]=(o+n)*x+(l+k)*w+i*v+u;f[e+4>>2]=(o+n)*t+(l+k)*s+i*q+p;f[e+8>>2]=(o+n)*m+(l+k)*j+i*h+g;f[e+12>>2]=0.0;return}function Eg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0,H=0.0,I=0.0;I=+f[a+48>>2];A=+f[a+32>>2];H=+f[a+52>>2];y=+f[a+36>>2];F=+f[a+56>>2];w=+f[a+40>>2];G=(c[a+16>>2]|0)==0;m=+ha[c[(c[a>>2]|0)+48>>2]&15](a);k=+ha[c[(c[a>>2]|0)+48>>2]&15](a);i=+ha[c[(c[a>>2]|0)+48>>2]&15](a);m=(G?0.0:(I-A)*.5)+m;k=(G?0.0:(H-y)*.5)+k;i=(G?0.0:(F-w)*.5)+i;E=+f[b>>2];v=+r(+E);D=+f[b+4>>2];u=+r(+D);s=+f[b+8>>2];t=+r(+s);C=+f[b+16>>2];q=+r(+C);B=+f[b+20>>2];p=+r(+B);n=+f[b+24>>2];o=+r(+n);z=+f[b+32>>2];l=+r(+z);x=+f[b+36>>2];j=+r(+x);g=+f[b+40>>2];h=+r(+g);A=G?0.0:(I+A)*.5;y=G?0.0:(H+y)*.5;w=G?0.0:(F+w)*.5;s=A*E+y*D+w*s+ +f[b+48>>2];n=A*C+y*B+w*n+ +f[b+52>>2];g=A*z+y*x+w*g+ +f[b+56>>2];f[d>>2]=s-(m*v+k*u+i*t);f[d+4>>2]=n-(m*q+k*p+i*o);f[d+8>>2]=g-(m*l+k*j+i*h);f[d+12>>2]=0.0;f[e>>2]=m*v+k*u+i*t+s;f[e+4>>2]=m*q+k*p+i*o+n;f[e+8>>2]=m*l+k*j+i*h+g;f[e+12>>2]=0.0;return}function Fg(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;h=c[a+68+(d<<2)>>2]|0;k=c[a+60>>2]|0;n=e[h+((f&65535)<<2)+2>>1]|0;g=b[h+((f&65535)<<2)+-4>>1]|0;if((e[h+((f&65535)<<2)>>1]|0)>=(g&65535))return;j=k;i=h+((f&65535)<<2)|0;f=h+((f&65535)<<2)+-4|0;while(1){h=e[i+-2>>1]|0;if(!(g&1))g=j+(h<<6)+48+(d<<1)|0;else{if(((((e[k+(n<<6)+54+((1<>1]|0)>=(e[j+(h<<6)+48+((1<>1]|0)?(e[j+(h<<6)+54+((1<>1]|0)>=(e[k+(n<<6)+48+((1<>1]|0):0)?(e[k+(n<<6)+54+((1<<(1<>1]|0)>=(e[j+(h<<6)+48+((1<<(1<>1]|0):0)?(e[j+(h<<6)+54+((1<<(1<>1]|0)>=(e[k+(n<<6)+48+((1<<(1<>1]|0):0)?(m=c[a+92>>2]|0,l=j+(h<<6)|0,va[c[(c[m>>2]|0)+8>>2]&63](m,k+(n<<6)|0,l)|0,m=c[a+96>>2]|0,m|0):0)va[c[(c[m>>2]|0)+8>>2]&63](m,k+(n<<6)|0,l)|0;g=j+(h<<6)+54+(d<<1)|0}b[g>>1]=(b[g>>1]|0)+1<<16>>16;b[k+(n<<6)+48+(d<<1)>>1]=(b[k+(n<<6)+48+(d<<1)>>1]|0)+-1<<16>>16;h=e[i>>1]|e[i+2>>1]<<16;g=e[f>>1]|e[f+2>>1]<<16;b[i>>1]=g;b[i+2>>1]=g>>>16;b[f>>1]=h;b[f+2>>1]=h>>>16;h=i+-4|0;f=f+-4|0;g=b[f>>1]|0;if((e[h>>1]|0)>=(g&65535))break;j=c[a+60>>2]|0;i=h}return}function Gg(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0,g=0,h=0,i=0,j=0;g=ea;ea=ea+16|0;c=+f[(NJ(a)|0)>>2];d=+f[(sJ(a+16|0)|0)>>2];e=+f[(rJ(a+32|0)|0)>>2];if(c+d+e>0.0){e=+AJ(c+d+e+1.0);f[g+12>>2]=e*.5;d=+f[(sJ(a+32|0)|0)>>2];f[g>>2]=(d-+f[(rJ(a+16|0)|0)>>2])*(.5/e);d=+f[(rJ(a)|0)>>2];f[g+4>>2]=(d-+f[(NJ(a+32|0)|0)>>2])*(.5/e);d=+f[(NJ(a+16|0)|0)>>2];f[g+8>>2]=(d-+f[(sJ(a)|0)>>2])*(.5/e);j=g;i=g+4|0;h=g+8|0;a=g+12|0;zr(b,j,i,h,a);ea=g;return}else{h=c>2];j=NJ(a+((((h+1|0)>>>0)%3|0)<<4)|0)|0;e=e-+f[j+((((h+1|0)>>>0)%3|0)<<2)>>2];a=NJ(a+((((h+2|0)>>>0)%3|0)<<4)|0)|0;e=+AJ(e-+f[a+((((h+2|0)>>>0)%3|0)<<2)>>2]+1.0);f[g+(h<<2)>>2]=e*.5;f[g+12>>2]=(+f[a+((((h+1|0)>>>0)%3|0)<<2)>>2]-+f[j+((((h+2|0)>>>0)%3|0)<<2)>>2])*(.5/e);f[g+((((h+1|0)>>>0)%3|0)<<2)>>2]=(+f[j+(h<<2)>>2]+ +f[i+((((h+1|0)>>>0)%3|0)<<2)>>2])*(.5/e);f[g+((((h+2|0)>>>0)%3|0)<<2)>>2]=(+f[a+(h<<2)>>2]+ +f[i+((((h+2|0)>>>0)%3|0)<<2)>>2])*(.5/e);a=g;h=g+4|0;i=g+8|0;j=g+12|0;zr(b,a,h,i,j);ea=g;return}}function Hg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;f=c[a+212>>2]|0;a:do if((f|0)>0){g=c[a+220>>2]|0;d=0;while(1){e=g+(d<<2)|0;if((c[e>>2]|0)==(b|0))break;d=d+1|0;if((d|0)>=(f|0))break a}if((d|0)<(f|0)){c[e>>2]=c[g+(f+-1<<2)>>2];c[(c[a+220>>2]|0)+(f+-1<<2)>>2]=b;c[a+212>>2]=f+-1}}while(0);a=c[b+28>>2]|0;d=c[a+488>>2]|0;b:do if((d|0)>0){g=c[a+496>>2]|0;e=0;while(1){f=g+(e<<2)|0;if((c[f>>2]|0)==(b|0))break;e=e+1|0;if((e|0)>=(d|0))break b}if((e|0)<(d|0)){c[f>>2]=c[g+(d+-1<<2)>>2];c[(c[a+496>>2]|0)+(d+-1<<2)>>2]=b;c[a+488>>2]=d+-1;d=d+-1|0}}while(0);c[a+256>>2]=(d|0)>0&1;a=c[b+32>>2]|0;d=c[a+488>>2]|0;if((d|0)<=0){b=d;b=(b|0)>0;b=b&1;h=a+256|0;c[h>>2]=b;return}g=c[a+496>>2]|0;e=0;while(1){f=g+(e<<2)|0;if((c[f>>2]|0)==(b|0))break;e=e+1|0;if((e|0)>=(d|0)){h=19;break}}if((h|0)==19){b=(d|0)>0;b=b&1;h=a+256|0;c[h>>2]=b;return}if((e|0)>=(d|0)){b=d;b=(b|0)>0;b=b&1;h=a+256|0;c[h>>2]=b;return}c[f>>2]=c[g+(d+-1<<2)>>2];c[(c[a+496>>2]|0)+(d+-1<<2)>>2]=b;c[a+488>>2]=d+-1;b=d+-1|0;b=(b|0)>0;b=b&1;h=a+256|0;c[h>>2]=b;return}function Ig(b,d){b=b|0;d=d|0;var e=0,g=0.0,h=0.0,i=0.0,j=0;j=ra[c[(c[b>>2]|0)+28>>2]&127](b)|0;i=+f[j>>2]-+f[d>>2];h=+f[j+4>>2]-+f[d+4>>2];g=+f[j+8>>2]-+f[d+8>>2];if(!(i*i+h*h+g*g>1.1920928955078125e-07))return;dg(b,d);if((a[b+61>>0]|0)!=0?(e=c[b+52>>2]|0,Ca[c[c[e>>2]>>2]&511](e),e=c[b+52>>2]|0,(e|0)!=0):0){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0);d=b+52|0}else d=b+52|0;c[6747]=(c[6747]|0)+1;e=kb(191)|0;if(!e)e=0;else{c[(e+4+15&-16)+-4>>2]=e;e=e+4+15&-16}c[e+52>>2]=282;a[e+60>>0]=0;a[e+80>>0]=1;c[e+76>>2]=0;c[e+68>>2]=0;c[e+72>>2]=0;a[e+100>>0]=1;c[e+96>>2]=0;c[e+88>>2]=0;c[e+92>>2]=0;a[e+120>>0]=1;c[e+116>>2]=0;c[e+108>>2]=0;c[e+112>>2]=0;a[e+140>>0]=1;c[e+136>>2]=0;c[e+128>>2]=0;c[e+132>>2]=0;c[e+144>>2]=0;a[e+164>>0]=1;c[e+160>>2]=0;c[e+152>>2]=0;c[e+156>>2]=0;c[e+168>>2]=0;c[e+4>>2]=-8388609;c[e+8>>2]=-8388609;c[e+12>>2]=-8388609;f[e+16>>2]=0.0;c[e+20>>2]=2139095039;c[e+24>>2]=2139095039;c[e+28>>2]=2139095039;f[e+32>>2]=0.0;c[e>>2]=9292;c[d>>2]=e;cc(e,c[b+48>>2]|0,(a[b+60>>0]|0)!=0,b+16|0,b+32|0);a[b+61>>0]=1;return}function Jg(b,d){b=b|0;d=d|0;var e=0.0,g=0.0;if(a[b+1309>>0]|0){e=(+f[b+1256>>2]-+f[b+1316>>2])*+f[b+1340>>2];f[b+792>>2]=e*(+f[d>>2]*+f[b+1364>>2]/+(c[d+48>>2]|0));e=+r(+e);f[b+808>>2]=e/+f[d>>2]}if(a[b+1310>>0]|0){e=(+f[b+1260>>2]-+f[b+1320>>2])*+f[b+1344>>2];f[b+796>>2]=e*(+f[d>>2]*+f[b+1368>>2]/+(c[d+48>>2]|0));e=+r(+e);f[b+812>>2]=e/+f[d>>2]}if(a[b+1311>>0]|0){e=(+f[b+1264>>2]-+f[b+1324>>2])*+f[b+1348>>2];f[b+800>>2]=e*(+f[d>>2]*+f[b+1372>>2]/+(c[d+48>>2]|0));e=+r(+e);f[b+816>>2]=e/+f[d>>2]}if(a[b+1312>>0]|0){g=-((+f[b+1192>>2]-+f[b+1328>>2])*+f[b+1352>>2]);e=+f[d>>2];f[b+876>>2]=e*+f[b+1376>>2]/+(c[d+48>>2]|0)*g;f[b+880>>2]=+r(+g)/e}if(a[b+1313>>0]|0){e=-((+f[b+1196>>2]-+f[b+1332>>2])*+f[b+1356>>2]);g=+f[d>>2];f[b+940>>2]=g*+f[b+1380>>2]/+(c[d+48>>2]|0)*e;f[b+944>>2]=+r(+e)/g}if(!(a[b+1314>>0]|0)){sj(b,d);return}e=-((+f[b+1200>>2]-+f[b+1336>>2])*+f[b+1360>>2]);g=+f[d>>2];f[b+1004>>2]=g*+f[b+1384>>2]/+(c[d+48>>2]|0)*e;f[b+1008>>2]=+r(+e)/g;sj(b,d);return}function Kg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,g=0,h=0.0,i=0.0,j=0.0;e=ea;ea=ea+160|0;c[e+136>>2]=0;c[e+136+4>>2]=0;c[e+136+8>>2]=0;c[e+136+12>>2]=0;c[e+136+16>>2]=0;c[e+32>>2]=8220;g=e+32+4|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;c[e+32+20>>2]=1065353216;c[e+32+24>>2]=0;c[e+32+24+4>>2]=0;c[e+32+24+8>>2]=0;c[e+32+24+12>>2]=0;c[e+32+40>>2]=1065353216;c[e+32+44>>2]=0;c[e+32+44+4>>2]=0;c[e+32+44+8>>2]=0;c[e+32+44+12>>2]=0;c[e+32+60>>2]=1065353216;c[e+32+64>>2]=0;c[e+32+68>>2]=c[e+136+4>>2];c[e+32+68+4>>2]=c[e+136+4+4>>2];c[e+32+68+8>>2]=c[e+136+4+8>>2];c[e+32+68+12>>2]=c[e+136+4+12>>2];f[e+32+84>>2]=-999999984306749440.0;j=+f[d>>2];i=+f[d+4>>2];h=+f[d+8>>2];f[e+32+88>>2]=j+i*0.0+h*0.0;f[e+32+92>>2]=j*0.0+i+h*0.0;f[e+32+96>>2]=j*0.0+i*0.0+h;f[e+32+100>>2]=0.0;c[e+16>>2]=1566444395;c[e+16+4>>2]=1566444395;c[e+16+8>>2]=1566444395;f[e+16+12>>2]=0.0;d=c[(c[b>>2]|0)+64>>2]|0;f[e>>2]=-999999984306749440.0;f[e+4>>2]=-999999984306749440.0;f[e+8>>2]=-999999984306749440.0;f[e+12>>2]=0.0;Pa[d&127](b,e+32|0,e,e+16|0);c[a>>2]=c[g>>2];c[a+4>>2]=c[g+4>>2];c[a+8>>2]=c[g+8>>2];c[a+12>>2]=c[g+12>>2];ea=e;return}function Lg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0;p=ea;ea=ea+16|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;e=+f[d>>2];g=+f[d+4>>2];h=+f[d+8>>2];if(e*e+g*g+h*h<9.999999747378752e-05){o=1.0;n=0.0;m=0.0}else{m=1.0/+s(+(e*e+g*g+h*h));o=e*m;n=g*m;m=h*m}d=c[b+52>>2]|0;l=+f[b+28+(((d+2|0)%3|0)<<2)>>2];c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;c[p+(d<<2)>>2]=c[b+28+(d<<2)>>2];j=o*l;k=n*l;l=m*l;g=j+ +f[p>>2];i=k+ +f[p+4>>2];e=l+ +f[p+8>>2];h=+ha[c[(c[b>>2]|0)+48>>2]&15](b);g=g-o*h;i=i-n*h;h=e-m*h;e=m*h+(o*g+n*i);if(e>-999999984306749440.0){f[a>>2]=g;f[a+4>>2]=i;f[a+8>>2]=h;f[a+12>>2]=0.0;i=e}else i=-999999984306749440.0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;d=c[b+52>>2]|0;f[p+(d<<2)>>2]=-+f[b+28+(d<<2)>>2];e=j+ +f[p>>2];h=k+ +f[p+4>>2];l=l+ +f[p+8>>2];g=+ha[c[(c[b>>2]|0)+48>>2]&15](b);e=e-o*g;h=h-n*g;g=l-m*g;if(!(m*g+(o*e+n*h)>i)){ea=p;return}f[a>>2]=e;f[a+4>>2]=h;f[a+8>>2]=g;f[a+12>>2]=0.0;ea=p;return}function Mg(a,b,d,e,g,h,i,j,k,l){a=a|0;b=b|0;d=d|0;e=e|0;g=+g;h=+h;i=+i;j=+j;k=+k;l=+l;var m=0;m=ea;ea=ea+128|0;c[m+80>>2]=c[a+4>>2];c[m+80+4>>2]=c[a+20>>2];c[m+80+8>>2]=c[a+36>>2];f[m+80+12>>2]=0.0;c[m+80+16>>2]=c[a+8>>2];c[m+80+20>>2]=c[a+24>>2];c[m+80+24>>2]=c[a+40>>2];f[m+80+28>>2]=0.0;c[m+80+32>>2]=c[a+12>>2];c[m+80+36>>2]=c[a+28>>2];c[m+80+40>>2]=c[a+44>>2];f[m+80+44>>2]=0.0;c[m+32>>2]=c[b+4>>2];c[m+32+4>>2]=c[b+20>>2];c[m+32+8>>2]=c[b+36>>2];f[m+32+12>>2]=0.0;c[m+32+16>>2]=c[b+8>>2];c[m+32+20>>2]=c[b+24>>2];c[m+32+24>>2]=c[b+40>>2];f[m+32+28>>2]=0.0;c[m+32+32>>2]=c[b+12>>2];c[m+32+36>>2]=c[b+28>>2];c[m+32+40>>2]=c[b+44>>2];f[m+32+44>>2]=0.0;h=h-+f[a+56>>2];i=i-+f[a+60>>2];f[m+16>>2]=g-+f[a+52>>2];f[m+16+4>>2]=h;f[m+16+8>>2]=i;f[m+16+12>>2]=0.0;k=k-+f[b+56>>2];l=l-+f[b+60>>2];f[m>>2]=j-+f[b+52>>2];f[m+4>>2]=k;f[m+8>>2]=l;f[m+12>>2]=0.0;_f(d,m+80|0,m+32|0,m+16|0,m,e,a+396|0,+f[a+344>>2],b+396|0,+f[b+344>>2]);ea=m;return}function Ng(b){b=b|0;var d=0,e=0;if(!b)return;d=c[b+32>>2]|0;if(d|0){if(a[b+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+32>>2]=0}a[b+36>>0]=1;c[b+32>>2]=0;c[b+24>>2]=0;c[b+28>>2]=0;d=c[b+12>>2]|0;do if(d){if(!(a[b+16>>0]|0)){a[b+16>>0]=1;c[b+12>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;d=b+8|0;e=14;break}c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0);d=c[b+32>>2]|0;a[b+16>>0]=1;c[b+12>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;if(d){if(!(a[b+36>>0]|0)){a[b+36>>0]=1;c[b+32>>2]=0;c[b+24>>2]=0;c[b+28>>2]=0;d=b+8|0;break}c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0);d=c[b+12>>2]|0;a[b+36>>0]=1;c[b+32>>2]=0;c[b+24>>2]=0;c[b+28>>2]=0;if(!d)d=b+8|0;else{if(a[b+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+12>>2]=0;d=b+8|0}}else{d=b+8|0;e=14}}else{a[b+16>>0]=1;c[b+12>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;d=b+8|0;e=14}while(0);if((e|0)==14){a[b+36>>0]=1;c[b+32>>2]=0;c[b+24>>2]=0;c[b+28>>2]=0}a[b+16>>0]=1;c[b+12>>2]=0;c[b+4>>2]=0;c[d>>2]=0;uy(b);return}function Og(a,b,d,e,g){a=a|0;b=+b;d=+d;e=+e;g=g|0;var h=0,i=0,j=0,k=0,l=0.0,m=0.0;j=ea;ea=ea+48|0;l=1.0/+s(+(b*b+d*d+e*e));f[g>>2]=l*b;f[g+4>>2]=l*d;f[g+8>>2]=l*e;f[g+12>>2]=0.0;h=c[a+120>>2]|0;k=c[a+124>>2]|0;i=(c[a>>2]|0)+(1?k>>1:k)|0;if(k&1)h=c[(c[i>>2]|0)+h>>2]|0;Ma[h&127](j,i,g);b=-+f[g>>2];d=-+f[g+4>>2];e=-+f[g+8>>2];h=c[a+120>>2]|0;k=c[a+124>>2]|0;i=(c[a+4>>2]|0)+(1?k>>1:k)|0;if(k&1)h=c[(c[i>>2]|0)+h>>2]|0;l=+f[a+24>>2]*b+ +f[a+28>>2]*d+ +f[a+32>>2]*e;m=+f[a+40>>2]*b+ +f[a+44>>2]*d+ +f[a+48>>2]*e;f[j+16>>2]=+f[a+8>>2]*b+ +f[a+12>>2]*d+ +f[a+16>>2]*e;f[j+16+4>>2]=l;f[j+16+8>>2]=m;f[j+16+12>>2]=0.0;Ma[h&127](j+32|0,i,j+16|0);m=+f[j+32>>2];b=+f[j+32+4>>2];d=+f[j+32+8>>2];e=+f[j+4>>2]-(m*+f[a+72>>2]+b*+f[a+76>>2]+d*+f[a+80>>2]+ +f[a+108>>2]);l=+f[j+8>>2]-(m*+f[a+88>>2]+b*+f[a+92>>2]+d*+f[a+96>>2]+ +f[a+112>>2]);f[g+16>>2]=+f[j>>2]-(m*+f[a+56>>2]+b*+f[a+60>>2]+d*+f[a+64>>2]+ +f[a+104>>2]);f[g+20>>2]=e;f[g+24>>2]=l;f[g+28>>2]=0.0;ea=j;return}function Pg(a,b,c,d,e,g,h,i,j,k,l,m,n,o){a=a|0;b=+b;c=+c;d=+d;e=+e;g=+g;h=+h;i=+i;j=+j;k=+k;l=+l;m=+m;n=+n;o=+o;var p=0.0,q=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0;q=(j-g)*(n-h)-(k-h)*(m-g);s=(k-h)*(l-e)-(i-e)*(n-h);t=(i-e)*(m-g)-(j-g)*(l-e);if(+r(+(t*d+(q*b+s*c)))<1.1920928955078125e-07){t=-1.0;return +t}u=+f[a>>2];w=+f[a+4>>2];v=+f[a+8>>2];p=-(q*u+s*w+t*v-(t*h+(q*e+s*g)))/(t*d+(q*b+s*c));if(((p>1.1920928955078125e-06&p-1.1920928955078125e-06:0)?t*((m-(w+p*c))*(i-(u+p*b))-(j-(w+p*c))*(l-(u+p*b)))+(q*((j-(w+p*c))*(n-(v+p*d))-(k-(v+p*d))*(m-(w+p*c)))+s*((k-(v+p*d))*(l-(u+p*b))-(n-(v+p*d))*(i-(u+p*b))))>-1.1920928955078125e-06:0)?t*((g-(w+p*c))*(l-(u+p*b))-(m-(w+p*c))*(e-(u+p*b)))+(q*((m-(w+p*c))*(h-(v+p*d))-(n-(v+p*d))*(g-(w+p*c)))+s*((n-(v+p*d))*(e-(u+p*b))-(h-(v+p*d))*(l-(u+p*b))))>-1.1920928955078125e-06:0){w=p;return +w}w=-1.0;return +w}function Qg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0;e=c[b>>2]|0;if((e|0)==(c[a+80>>2]|0)){i=1.0;return +i}if(c[e+204>>2]&4|0){i=1.0;return +i}if(d){g=+f[b+8>>2];h=+f[b+12>>2];i=+f[b+16>>2]}else{k=+f[b+8>>2];j=+f[b+12>>2];i=+f[b+16>>2];g=+f[e+4>>2]*k+ +f[e+8>>2]*j+ +f[e+12>>2]*i;h=k*+f[e+20>>2]+j*+f[e+24>>2]+i*+f[e+28>>2];i=k*+f[e+36>>2]+j*+f[e+40>>2]+i*+f[e+44>>2]}if(g*+f[a+84>>2]+h*+f[a+88>>2]+i*+f[a+92>>2]<+f[a+100>>2]){k=1.0;return +k}c[a+4>>2]=c[b+40>>2];c[a+76>>2]=e;if(d){c[a+44>>2]=c[b+8>>2];c[a+44+4>>2]=c[b+8+4>>2];c[a+44+8>>2]=c[b+8+8>>2];c[a+44+12>>2]=c[b+8+12>>2]}else{g=+f[b+8>>2];h=+f[b+12>>2];i=+f[b+16>>2];j=g*+f[e+20>>2]+h*+f[e+24>>2]+i*+f[e+28>>2];k=g*+f[e+36>>2]+h*+f[e+40>>2]+i*+f[e+44>>2];f[a+44>>2]=+f[e+4>>2]*g+ +f[e+8>>2]*h+ +f[e+12>>2]*i;f[a+48>>2]=j;f[a+52>>2]=k;f[a+56>>2]=0.0}c[a+60>>2]=c[b+24>>2];c[a+60+4>>2]=c[b+24+4>>2];c[a+60+8>>2]=c[b+24+8>>2];c[a+60+12>>2]=c[b+24+12>>2];k=+f[b+40>>2];return +k}function Rg(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;if(a[b+165>>0]|0){if((c[b+92>>2]|0)>=(d|0))return;if((d|0)!=0?(c[6747]=(c[6747]|0)+1,f=kb((d<<4|3)+16|0)|0,(f|0)!=0):0){c[(f+4+15&-16)+-4>>2]=f;g=f+4+15&-16}else g=0;e=c[b+88>>2]|0;if((e|0)>0){f=0;do{i=g+(f<<4)|0;h=(c[b+96>>2]|0)+(f<<4)|0;c[i>>2]=c[h>>2];c[i+4>>2]=c[h+4>>2];c[i+8>>2]=c[h+8>>2];c[i+12>>2]=c[h+12>>2];f=f+1|0}while((f|0)!=(e|0))}e=c[b+96>>2]|0;if(e|0){if(a[b+100>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0)}c[b+96>>2]=0}a[b+100>>0]=1;c[b+96>>2]=g;c[b+92>>2]=d;return}if((c[b+112>>2]|0)>=(d|0))return;if((d|0)!=0?(c[6747]=(c[6747]|0)+1,e=kb((d<<2|3)+16|0)|0,(e|0)!=0):0){c[(e+4+15&-16)+-4>>2]=e;h=e+4+15&-16}else h=0;f=c[b+108>>2]|0;g=c[b+116>>2]|0;if((f|0)<=0)if(!g)e=b+120|0;else i=23;else{e=0;do{c[h+(e<<2)>>2]=c[g+(e<<2)>>2];e=e+1|0}while((e|0)!=(f|0));i=23}if((i|0)==23){if(a[b+120>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[b+116>>2]=0;e=b+120|0}a[e>>0]=1;c[b+116>>2]=h;c[b+112>>2]=d;return}function Sg(a,b,d,e,f,g,h,i,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;if(!(c[i+44>>2]|0))return;b=c[i+20>>2]|0;if(!(c[i+64>>2]&256)){if((b|0)<=0)return;j=0;do{g=c[a+28>>2]|0;if((g|0)>0){b=0;do{f=c[(c[a+116>>2]|0)+(b<<2)>>2]|0;h=c[a+36>>2]|0;d=c[a+16>>2]|0;If(d+((c[h+(f*152|0)+144>>2]|0)*244|0)|0,d+((c[h+(f*152|0)+148>>2]|0)*244|0)|0,h+(f*152|0)|0);b=b+1|0}while((b|0)!=(g|0));b=c[i+20>>2]|0}j=j+1|0}while((j|0)<(b|0));return}else{if((b|0)<=0)return;j=0;do{g=c[a+28>>2]|0;if((g|0)>0){b=0;do{f=c[(c[a+116>>2]|0)+(b<<2)>>2]|0;h=c[a+36>>2]|0;d=c[a+16>>2]|0;If(d+((c[h+(f*152|0)+144>>2]|0)*244|0)|0,d+((c[h+(f*152|0)+148>>2]|0)*244|0)|0,h+(f*152|0)|0);b=b+1|0}while((b|0)!=(g|0));b=c[i+20>>2]|0}j=j+1|0}while((j|0)<(b|0));return}}function Tg(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;if(!(a[d+164>>0]|0)){if((c[d+152>>2]|0)>=(e|0))return;if((e|0)!=0?(c[6747]=(c[6747]|0)+1,f=kb((e<<1)+19|0)|0,(f|0)!=0):0){c[(f+4+15&-16)+-4>>2]=f;i=f+4+15&-16}else i=0;g=c[d+148>>2]|0;h=c[d+156>>2]|0;if((g|0)<=0)if(!h)f=d+160|0;else j=24;else{f=0;do{b[i+(f<<1)>>1]=b[h+(f<<1)>>1]|0;f=f+1|0}while((f|0)!=(g|0));j=24}if((j|0)==24){if(a[d+160>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[h+-4>>2]|0)}c[d+156>>2]=0;f=d+160|0}a[f>>0]=1;c[d+156>>2]=i;c[d+152>>2]=e;return}else{if((c[d+132>>2]|0)>=(e|0))return;if((e|0)!=0?(c[6747]=(c[6747]|0)+1,g=kb((e<<2|3)+16|0)|0,(g|0)!=0):0){c[(g+4+15&-16)+-4>>2]=g;i=g+4+15&-16}else i=0;g=c[d+128>>2]|0;h=c[d+136>>2]|0;if((g|0)<=0)if(!h)f=d+140|0;else j=11;else{f=0;do{c[i+(f<<2)>>2]=c[h+(f<<2)>>2];f=f+1|0}while((f|0)!=(g|0));j=11}if((j|0)==11){if(a[d+140>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[h+-4>>2]|0)}c[d+136>>2]=0;f=d+140|0}a[f>>0]=1;c[d+136>>2]=i;c[d+132>>2]=e;return}}function Ug(a,b,d){a=a|0;b=b|0;d=d|0;ch(a,b,d)|0;c[b+52>>2]=c[a+300>>2];c[b+56>>2]=c[a+304>>2];c[b+60>>2]=c[a+308>>2];c[b+64>>2]=c[a+312>>2];c[b+68>>2]=c[a+316>>2];c[b+72>>2]=c[a+320>>2];c[b+76>>2]=c[a+324>>2];c[b+80>>2]=c[a+328>>2];c[b+84>>2]=c[a+332>>2];c[b+88>>2]=c[a+336>>2];c[b+92>>2]=c[a+340>>2];c[b+96>>2]=c[a+344>>2];c[b+100>>2]=c[a+348>>2];c[b+104>>2]=c[a+352>>2];c[b+108>>2]=c[a+356>>2];c[b+112>>2]=c[a+360>>2];c[b+116>>2]=c[a+364>>2];c[b+120>>2]=c[a+368>>2];c[b+124>>2]=c[a+372>>2];c[b+128>>2]=c[a+376>>2];c[b+132>>2]=c[a+380>>2];c[b+136>>2]=c[a+384>>2];c[b+140>>2]=c[a+388>>2];c[b+144>>2]=c[a+392>>2];c[b+148>>2]=c[a+396>>2];c[b+152>>2]=c[a+400>>2];c[b+156>>2]=c[a+404>>2];c[b+160>>2]=c[a+408>>2];c[b+164>>2]=c[a+412>>2];c[b+168>>2]=c[a+416>>2];c[b+172>>2]=c[a+420>>2];c[b+176>>2]=c[a+424>>2];c[b+180>>2]=c[a+444>>2];c[b+184>>2]=c[a+448>>2];c[b+188>>2]=c[a+452>>2];c[b+192>>2]=c[a+428>>2];c[b+196>>2]=c[a+432>>2];c[b+200>>2]=c[a+436>>2];c[b+204>>2]=c[a+440>>2];return 15359}function Vg(b,d,e,g){b=b|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0;c[6747]=(c[6747]|0)+1;h=kb(55)|0;if(!h)j=0;else{c[(h+4+15&-16)+-4>>2]=h;j=h+4+15&-16}c[j>>2]=d;c[j+4>>2]=e;c[j+8>>2]=g;c[j+12>>2]=-1;c[j+16>>2]=-1;c[j+20>>2]=-1;c[j+28>>2]=-1;f[j+32>>2]=0.0;g=j;h=c[b+4>>2]|0;c[j+24>>2]=h;if((h|0)!=(c[b+8>>2]|0)){i=h;e=b+12|0;e=c[e>>2]|0;e=e+(i<<2)|0;c[e>>2]=g;i=i+1|0;c[b+4>>2]=i;return j|0}i=(h|0)==0?1:h<<1;if((h|0)>=(i|0)){i=h;e=b+12|0;e=c[e>>2]|0;e=e+(i<<2)|0;c[e>>2]=g;i=i+1|0;c[b+4>>2]=i;return j|0}if(!i)d=0;else{c[6747]=(c[6747]|0)+1;h=kb((i<<2|3)+16|0)|0;if(!h)d=0;else{c[(h+4+15&-16)+-4>>2]=h;d=h+4+15&-16}h=c[b+4>>2]|0}if((h|0)>0){e=0;do{c[d+(e<<2)>>2]=c[(c[b+12>>2]|0)+(e<<2)>>2];e=e+1|0}while((e|0)!=(h|0))}e=c[b+12>>2]|0;if(e){if(a[b+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0);h=c[b+4>>2]|0}c[b+12>>2]=0}a[b+16>>0]=1;c[b+12>>2]=d;c[b+8>>2]=i;i=h;e=b+12|0;e=c[e>>2]|0;e=e+(i<<2)|0;c[e>>2]=g;i=i+1|0;c[b+4>>2]=i;return j|0}function Wg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0;o=+ha[c[(c[a>>2]|0)+48>>2]&15](a);v=+f[a+72>>2];u=+f[a+56>>2];s=+f[a+76>>2];q=+f[a+60>>2];n=+f[a+80>>2];m=+f[a+64>>2];F=+f[b>>2];z=+r(+F);E=+f[b+4>>2];y=+r(+E);k=+f[b+8>>2];l=+r(+k);D=+f[b+16>>2];x=+r(+D);C=+f[b+20>>2];w=+r(+C);i=+f[b+24>>2];j=+r(+i);B=+f[b+32>>2];t=+r(+B);A=+f[b+36>>2];p=+r(+A);g=+f[b+40>>2];h=+r(+g);k=(v+u)*.5*F+(s+q)*.5*E+(n+m)*.5*k+ +f[b+48>>2];i=(v+u)*.5*D+(s+q)*.5*C+(n+m)*.5*i+ +f[b+52>>2];g=(v+u)*.5*B+(s+q)*.5*A+(n+m)*.5*g+ +f[b+56>>2];l=(o+(v-u)*.5)*z+(o+(s-q)*.5)*y+(o+(n-m)*.5)*l;j=(o+(v-u)*.5)*x+(o+(s-q)*.5)*w+(o+(n-m)*.5)*j;h=(o+(v-u)*.5)*t+(o+(s-q)*.5)*p+(o+(n-m)*.5)*h;f[d>>2]=k-l;f[d+4>>2]=i-j;f[d+8>>2]=g-h;f[d+12>>2]=0.0;f[e>>2]=l+k;f[e+4>>2]=j+i;f[e+8>>2]=h+g;f[e+12>>2]=0.0;return}function Xg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0;o=+ha[c[(c[a>>2]|0)+48>>2]&15](a);v=+f[a+68>>2];u=+f[a+52>>2];s=+f[a+72>>2];q=+f[a+56>>2];n=+f[a+76>>2];m=+f[a+60>>2];F=+f[b>>2];z=+r(+F);E=+f[b+4>>2];y=+r(+E);k=+f[b+8>>2];l=+r(+k);D=+f[b+16>>2];x=+r(+D);C=+f[b+20>>2];w=+r(+C);i=+f[b+24>>2];j=+r(+i);B=+f[b+32>>2];t=+r(+B);A=+f[b+36>>2];p=+r(+A);g=+f[b+40>>2];h=+r(+g);k=(v+u)*.5*F+(s+q)*.5*E+(n+m)*.5*k+ +f[b+48>>2];i=(v+u)*.5*D+(s+q)*.5*C+(n+m)*.5*i+ +f[b+52>>2];g=(v+u)*.5*B+(s+q)*.5*A+(n+m)*.5*g+ +f[b+56>>2];l=(o+(v-u)*.5)*z+(o+(s-q)*.5)*y+(o+(n-m)*.5)*l;j=(o+(v-u)*.5)*x+(o+(s-q)*.5)*w+(o+(n-m)*.5)*j;h=(o+(v-u)*.5)*t+(o+(s-q)*.5)*p+(o+(n-m)*.5)*h;f[d>>2]=k-l;f[d+4>>2]=i-j;f[d+8>>2]=g-h;f[d+12>>2]=0.0;f[e>>2]=l+k;f[e+4>>2]=j+i;f[e+8>>2]=h+g;f[e+12>>2]=0.0;return}function Yg(b,d,e){b=b|0;d=d|0;e=e|0;var g=0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0;if(a[d+32>>0]&1){g=c[b+4>>2]|0;if(g|0)uk(g,d,e);g=c[b>>2]|0;if(g|0){n=+f[d>>2];l=+f[g+128>>2];m=+f[d+4>>2];k=+f[d+8>>2];h=+f[e+4>>2];p=+f[e+8>>2];o=+f[e>>2];j=+f[g+180>>2]*(k*h-m*p)+ +f[g+184>>2]*(n*p-k*o)+(m*o-n*h)*+f[g+188>>2];i=(k*h-m*p)*+f[g+196>>2]+(n*p-k*o)*+f[g+200>>2]+(m*o-n*h)*+f[g+204>>2];h=(k*h-m*p)*+f[g+212>>2]+(n*p-k*o)*+f[g+216>>2]+(m*o-n*h)*+f[g+220>>2];f[g+244>>2]=n*l+ +f[g+244>>2];f[g+248>>2]=l*m+ +f[g+248>>2];f[g+252>>2]=l*k+ +f[g+252>>2];f[g+316>>2]=n*l+ +f[g+316>>2];f[g+320>>2]=l*m+ +f[g+320>>2];f[g+324>>2]=l*k+ +f[g+324>>2];f[g+260>>2]=j+ +f[g+260>>2];f[g+264>>2]=i+ +f[g+264>>2];f[g+268>>2]=h+ +f[g+268>>2];f[g+332>>2]=j+ +f[g+332>>2];f[g+336>>2]=i+ +f[g+336>>2];f[g+340>>2]=h+ +f[g+340>>2];c[g+308>>2]=(c[g+308>>2]|0)+1}}if(!(a[d+32>>0]&2))return;oi(b,d+16|0,e);return}function Zg(a){a=a|0;var b=0,d=0,e=0,g=0;d=ea;ea=ea+16|0;Fi(16932);Ca[c[(c[a>>2]|0)+8>>2]&511](a);Ca[c[(c[a>>2]|0)+12>>2]&511](a);b=c[a+24>>2]|0;Fi(16966);if(b|0){g=c[(c[b>>2]|0)+32>>2]|0;e=c[a+68>>2]|0;e=ra[c[(c[e>>2]|0)+36>>2]&127](e)|0;Pa[g&127](b,e,a+28|0,c[a+24>>2]|0)}a=c[2685]|0;g=(c[a+16>>2]|0)+-1|0;c[a+16>>2]=g;do if(!g){if(c[a+4>>2]|0){Y(d|0,0)|0;b=c[6746]|0;f[a+8>>2]=+f[a+8>>2]+ +(((c[d+4>>2]|0)-(c[b+4>>2]|0)+(((c[d>>2]|0)-(c[b>>2]|0)|0)*1e6|0)-(c[a+12>>2]|0)|0)>>>0)/1.0e3;b=c[2685]|0;if(c[a+16>>2]|0)break}else b=a;b=c[b+20>>2]|0;c[2685]=b}else b=a;while(0);a=b+16|0;g=(c[a>>2]|0)+-1|0;c[a>>2]=g;if(g|0){ea=d;return}do if(c[b+4>>2]|0){Y(d|0,0)|0;e=c[6746]|0;g=b+8|0;f[g>>2]=+f[g>>2]+ +(((c[d+4>>2]|0)-(c[e+4>>2]|0)+(((c[d>>2]|0)-(c[e>>2]|0)|0)*1e6|0)-(c[b+12>>2]|0)|0)>>>0)/1.0e3;if(!(c[a>>2]|0)){b=c[2685]|0;break}else{ea=d;return}}while(0);c[2685]=c[b+20>>2];ea=d;return}function _g(b,d){b=b|0;d=d|0;var e=0;c[b>>2]=10152;a[b+40>>0]=1;c[b+36>>2]=0;c[b+28>>2]=0;c[b+32>>2]=0;a[b+60>>0]=1;c[b+56>>2]=0;c[b+48>>2]=0;c[b+52>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=-1;c[b+16>>2]=0;c[b+20>>2]=0;a[b+100>>0]=1;c[b+96>>2]=0;c[b+88>>2]=0;c[b+92>>2]=0;a[b+120>>0]=1;c[b+116>>2]=0;c[b+108>>2]=0;c[b+112>>2]=0;c[b+64>>2]=0;c[b+68>>2]=0;c[b+72>>2]=-1;c[b+76>>2]=0;c[b+80>>2]=0;a[b+193>>0]=0;a[b+194>>0]=1;a[b+192>>0]=((d|0)!=0^1)&1;f[b+140>>2]=0.0;c[b+144>>2]=0;c[b+164>>2]=0;c[b+148>>2]=1;c[b+152>>2]=0;c[b+156>>2]=10;c[b+160>>2]=1;c[b+168>>2]=0;c[b+172>>2]=0;f[b+176>>2]=0.0;if(d|0){e=d;d=b+136|0;c[d>>2]=e;d=b+188|0;c[d>>2]=0;d=b+180|0;c[d>>2]=0;d=b+184|0;c[d>>2]=0;b=b+124|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;return}c[6747]=(c[6747]|0)+1;d=kb(95)|0;if(!d)d=0;else{c[(d+4+15&-16)+-4>>2]=d;d=d+4+15&-16}Oh(d);e=b+136|0;c[e>>2]=d;e=b+188|0;c[e>>2]=0;e=b+180|0;c[e>>2]=0;e=b+184|0;c[e>>2]=0;e=b+124|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;return}function $g(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;d=c[b+16>>2]|0;if(d|0){if(a[b+20>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+16>>2]=0}a[b+20>>0]=1;c[b+16>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;d=c[b+40>>2]|0;if(d|0){if(a[b+44>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+40>>2]=0}a[b+44>>0]=1;c[b+40>>2]=0;c[b+32>>2]=0;c[b+36>>2]=0;d=c[b+60>>2]|0;if(d|0){if(a[b+64>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+60>>2]=0}a[b+64>>0]=1;c[b+60>>2]=0;c[b+52>>2]=0;c[b+56>>2]=0;if((c[b+12>>2]|0)>=2){He(b);return}c[6747]=(c[6747]|0)+1;d=kb(43)|0;if(!d)f=0;else{c[(d+4+15&-16)+-4>>2]=d;f=d+4+15&-16}d=c[b+8>>2]|0;if((d|0)>0){e=0;do{g=f+(e*12|0)|0;h=(c[b+16>>2]|0)+(e*12|0)|0;c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];e=e+1|0}while((e|0)!=(d|0))}d=c[b+16>>2]|0;if(d|0){if(a[b+20>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+16>>2]=0}a[b+20>>0]=1;c[b+16>>2]=f;c[b+12>>2]=2;He(b);return}function ah(a,b,e){a=a|0;b=b|0;e=e|0;ch(a,b,e)|0;c[b+52>>2]=c[a+52>>2];c[b+56>>2]=c[a+56>>2];c[b+60>>2]=c[a+60>>2];c[b+64>>2]=c[a+64>>2];c[b+68>>2]=c[a+68>>2];c[b+72>>2]=c[a+72>>2];c[b+76>>2]=c[a+76>>2];c[b+80>>2]=c[a+80>>2];c[b+84>>2]=c[a+84>>2];c[b+88>>2]=c[a+88>>2];c[b+92>>2]=c[a+92>>2];c[b+96>>2]=c[a+96>>2];c[b+100>>2]=c[a+100>>2];c[b+104>>2]=c[a+104>>2];c[b+108>>2]=c[a+108>>2];c[b+112>>2]=c[a+112>>2];c[b+116>>2]=c[a+116>>2];c[b+120>>2]=c[a+120>>2];c[b+124>>2]=c[a+124>>2];c[b+128>>2]=c[a+128>>2];c[b+132>>2]=c[a+132>>2];c[b+136>>2]=c[a+136>>2];c[b+140>>2]=c[a+140>>2];c[b+144>>2]=c[a+144>>2];c[b+148>>2]=c[a+148>>2];c[b+152>>2]=c[a+152>>2];c[b+156>>2]=c[a+156>>2];c[b+160>>2]=c[a+160>>2];c[b+164>>2]=c[a+164>>2];c[b+168>>2]=c[a+168>>2];c[b+172>>2]=c[a+172>>2];c[b+176>>2]=c[a+176>>2];c[b+180>>2]=c[a+188>>2];c[b+184>>2]=c[a+184>>2];c[b+188>>2]=c[a+196>>2];c[b+192>>2]=c[a+192>>2];c[b+196>>2]=d[a+180>>0];c[b+200>>2]=d[a+49>>0];return 15315}function bh(a,b){a=a|0;b=+b;var d=0,e=0,g=0;e=ea;ea=ea+16|0;d=c[a+452>>2]|0;Ma[c[(c[d>>2]|0)+16>>2]&127](d,a+324|0,0);d=c[a+452>>2]|0;ra[c[(c[d>>2]|0)+12>>2]&127](d)|0;Lb(a,b);Fi(14280);if(c[a+328>>2]|0)gf(a+324|0);d=c[a+452>>2]|0;Da[c[(c[d>>2]|0)+28>>2]&31](d,+f[d+12>>2]*b);d=c[2685]|0;g=(c[d+16>>2]|0)+-1|0;c[d+16>>2]=g;do if(!g){if(c[d+4>>2]|0){Y(e|0,0)|0;g=c[6746]|0;f[d+8>>2]=+f[d+8>>2]+ +(((c[e+4>>2]|0)-(c[g+4>>2]|0)+(((c[e>>2]|0)-(c[g>>2]|0)|0)*1e6|0)-(c[d+12>>2]|0)|0)>>>0)/1.0e3;if(c[d+16>>2]|0)break;d=c[2685]|0}c[2685]=c[d+20>>2]}while(0);if((c[a+328>>2]|0)<=0){g=c[a+452>>2]|0;a=c[g>>2]|0;a=a+32|0;a=c[a>>2]|0;Ca[a&511](g);ea=e;return}d=0;do{g=c[(c[a+336>>2]|0)+(d<<2)>>2]|0;kh(g,g);d=d+1|0}while((d|0)<(c[a+328>>2]|0));g=c[a+452>>2]|0;a=c[g>>2]|0;a=a+32|0;a=c[a>>2]|0;Ca[a&511](g);ea=e;return}function ch(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0;c[b>>2]=ta[c[(c[e>>2]|0)+28>>2]&31](e,c[a+28>>2]|0)|0;c[b+4>>2]=ta[c[(c[e>>2]|0)+28>>2]&31](e,c[a+32>>2]|0)|0;f=ta[c[(c[e>>2]|0)+40>>2]&31](e,a)|0;g=ta[c[(c[e>>2]|0)+28>>2]&31](e,f)|0;c[b+8>>2]=g;if(g|0)Ia[c[(c[e>>2]|0)+48>>2]&127](e,f);c[b+12>>2]=c[a+4>>2];c[b+24>>2]=d[a+21>>0];c[b+40>>2]=c[a+24>>2];c[b+44>>2]=c[a+16>>2];c[b+48>>2]=d[a+20>>0];c[b+20>>2]=c[a+12>>2];c[b+16>>2]=c[a+8>>2];c[b+28>>2]=c[a+36>>2];c[b+32>>2]=c[a+40>>2];c[b+36>>2]=0;f=c[a+28>>2]|0;g=c[f+488>>2]|0;if((g|0)>0){f=c[f+496>>2]|0;if((c[f>>2]|0)==(a|0))c[b+36>>2]=1;if((g|0)>1){e=1;do{if((c[f+(e<<2)>>2]|0)==(a|0))c[b+36>>2]=1;e=e+1|0}while((e|0)!=(g|0))}}f=c[a+32>>2]|0;g=c[f+488>>2]|0;if((g|0)<=0)return 15252;f=c[f+496>>2]|0;if((c[f>>2]|0)==(a|0))c[b+36>>2]=1;if((g|0)<=1)return 15252;e=1;do{if((c[f+(e<<2)>>2]|0)==(a|0))c[b+36>>2]=1;e=e+1|0}while((e|0)!=(g|0));return 15252}function dh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0;g=ea;ea=ea+16|0;x=c[a+52>>2]|0;m=+f[a+28+(((x+2|0)%3|0)<<2)>>2];f[g>>2]=m;f[g+4>>2]=m;f[g+8>>2]=m;f[g+12>>2]=0.0;f[g+(x<<2)>>2]=m+ +f[a+28+(x<<2)>>2];m=+ha[c[(c[a>>2]|0)+48>>2]&15](a);k=+ha[c[(c[a>>2]|0)+48>>2]&15](a);i=+ha[c[(c[a>>2]|0)+48>>2]&15](a);m=m+ +f[g>>2];f[g>>2]=m;k=k+ +f[g+4>>2];f[g+4>>2]=k;i=i+ +f[g+8>>2];w=+r(+(+f[b>>2]));v=+r(+(+f[b+4>>2]));u=+r(+(+f[b+8>>2]));s=+r(+(+f[b+16>>2]));q=+r(+(+f[b+20>>2]));p=+r(+(+f[b+24>>2]));l=+r(+(+f[b+32>>2]));j=+r(+(+f[b+36>>2]));h=+r(+(+f[b+40>>2]));t=+f[b+48>>2];o=+f[b+52>>2];n=+f[b+56>>2];f[d>>2]=t-(m*w+k*v+i*u);f[d+4>>2]=o-(m*s+k*q+i*p);f[d+8>>2]=n-(m*l+k*j+i*h);f[d+12>>2]=0.0;f[e>>2]=m*w+k*v+i*u+t;f[e+4>>2]=m*s+k*q+i*p+o;f[e+8>>2]=n+(m*l+k*j+i*h);f[e+12>>2]=0.0;ea=g;return}function eh(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;if(rt(b,c[d+8>>2]|0,h)|0)xk(d,e,f,g);else{k=a[d+52>>0]|0;i=a[d+53>>0]|0;n=c[b+12>>2]|0;a[d+52>>0]=0;a[d+53>>0]=0;hn(b+16|0,d,e,f,g,h);l=a[d+52>>0]|0;j=a[d+53>>0]|0;a:do if((n|0)>1){m=j;o=l;j=j|i;i=l|k;k=b+24|0;do{j=j&1;i=i&1;if(a[d+54>>0]|0)break a;if(!(o<<24>>24)){if(m<<24>>24?(c[b+8>>2]&1|0)==0:0)break a}else{if((c[d+24>>2]|0)==1)break a;if(!(c[b+8>>2]&2))break a}a[d+52>>0]=0;a[d+53>>0]=0;hn(k,d,e,f,g,h);o=a[d+52>>0]|0;i=o|i;m=a[d+53>>0]|0;j=m|j;k=k+8|0}while(k>>>0<(b+16+(n<<3)|0)>>>0)}else{j=j|i;i=l|k}while(0);a[d+52>>0]=i<<24>>24!=0&1;a[d+53>>0]=j<<24>>24!=0&1}return}function fh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=ta[c[(c[d>>2]|0)+40>>2]&31](d,a)|0;h=ta[c[(c[d>>2]|0)+28>>2]&31](d,e)|0;c[b>>2]=h;if(h|0)Ia[c[(c[d>>2]|0)+48>>2]&127](d,e);c[b+4>>2]=c[a+4>>2];c[b+28>>2]=c[a+28>>2];c[b+32>>2]=c[a+32>>2];c[b+36>>2]=c[a+36>>2];c[b+40>>2]=c[a+40>>2];c[b+12>>2]=c[a+12>>2];c[b+16>>2]=c[a+16>>2];c[b+20>>2]=c[a+20>>2];c[b+24>>2]=c[a+24>>2];c[b+44>>2]=c[a+44>>2];g=c[a+92>>2]|0;if(!g){c[b+52>>2]=0;c[b+56>>2]=0;return 19160}c[b+52>>2]=ta[c[(c[d>>2]|0)+28>>2]&31](d,c[a+100>>2]|0)|0;c[b+56>>2]=g;h=va[c[(c[d>>2]|0)+16>>2]&63](d,20,g)|0;if((g|0)>0){e=c[a+100>>2]|0;b=c[a+120>>2]|0;a=0;f=c[h+8>>2]|0;while(1){c[f>>2]=c[e+(a<<4)>>2];c[f+4>>2]=c[e+(a<<4)+4>>2];c[f+8>>2]=c[e+(a<<4)+8>>2];c[f+12>>2]=c[e+(a<<4)+12>>2];c[f+16>>2]=c[b+(a<<2)>>2];a=a+1|0;if((a|0)==(g|0))break;else f=f+20|0}}else e=c[a+100>>2]|0;Ta[c[(c[d>>2]|0)+20>>2]&31](d,h,19140,1497453121,e);return 19160}function gh(){var b=0,d=0,e=0;b=js(288)|0;c[b+164>>2]=1065353216;c[b+168>>2]=1065353216;c[b+172>>2]=1065353216;f[b+176>>2]=0.0;c[b+180>>2]=0;f[b+184>>2]=999999984306749440.0;c[b+188>>2]=0;c[b+188+4>>2]=0;c[b+188+8>>2]=0;c[b+188+12>>2]=0;c[b+204>>2]=1;c[b+208>>2]=-1;c[b+212>>2]=-1;c[b+216>>2]=1;f[b+220>>2]=0.0;f[b+224>>2]=.5;f[b+228>>2]=0.0;f[b+232>>2]=0.0;c[b+240>>2]=0;f[b+244>>2]=1.0;c[b+248>>2]=0;c[b+248+4>>2]=0;c[b+248+8>>2]=0;c[b+248+12>>2]=0;c[b+4>>2]=1065353216;c[b+8>>2]=0;c[b+8+4>>2]=0;c[b+8+8>>2]=0;c[b+8+12>>2]=0;c[b+24>>2]=1065353216;c[b+28>>2]=0;c[b+28+4>>2]=0;c[b+28+8>>2]=0;c[b+28+12>>2]=0;c[b+44>>2]=1065353216;c[b+48>>2]=0;c[b+48+4>>2]=0;c[b+48+8>>2]=0;c[b+48+12>>2]=0;c[b+48+16>>2]=0;a[b+280>>0]=1;c[b+276>>2]=0;c[b+268>>2]=0;c[b+272>>2]=0;c[b+236>>2]=4;c[b>>2]=6200;c[6747]=(c[6747]|0)+1;d=kb(95)|0;if(!d){e=0;Oh(e);d=b+284|0;c[d>>2]=e;return b|0}c[(d+4+15&-16)+-4>>2]=d;d=d+4+15&-16;Oh(d);e=b+284|0;c[e>>2]=d;return b|0}function hh(a,d,e,g){a=a|0;d=d|0;e=e|0;g=g|0;var h=0,i=0.0,j=0.0,k=0.0,l=0.0;h=ea;ea=ea+96|0;f[h+4>>2]=1.0;c[h+8>>2]=0;b[h+12>>1]=1;b[h+14>>1]=-1;c[h+16>>2]=0;c[h>>2]=3788;c[h+20>>2]=c[d>>2];c[h+20+4>>2]=c[d+4>>2];c[h+20+8>>2]=c[d+8>>2];c[h+20+12>>2]=c[d+12>>2];c[h+36>>2]=c[e>>2];c[h+36+4>>2]=c[e+4>>2];c[h+36+8>>2]=c[e+8>>2];c[h+36+12>>2]=c[e+12>>2];a=c[a+4>>2]|0;Pa[c[(c[a>>2]|0)+32>>2]&127](a,d,e,h);d=c[h+8>>2]|0;if(!d){g=0;ea=h;return g|0}if(!(c[d+236>>2]&2)){g=0;ea=h;return g|0}if(c[d+204>>2]&4|0){g=0;ea=h;return g|0}c[g>>2]=c[h+68>>2];c[g+4>>2]=c[h+68+4>>2];c[g+8>>2]=c[h+68+8>>2];c[g+12>>2]=c[h+68+12>>2];c[g+16>>2]=c[h+52>>2];c[g+16+4>>2]=c[h+52+4>>2];c[g+16+8>>2]=c[h+52+8>>2];c[g+16+12>>2]=c[h+52+12>>2];l=+f[g+16>>2];k=+f[g+20>>2];j=+f[g+24>>2];i=1.0/+s(+(l*l+k*k+j*j));f[g+16>>2]=l*i;f[g+20>>2]=k*i;f[g+24>>2]=j*i;c[g+32>>2]=c[h+4>>2];g=d;ea=h;return g|0}function ih(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;Ca[c[(c[b>>2]|0)+32>>2]&511](b);e=va[c[(c[b>>2]|0)+16>>2]&63](b,104,1)|0;d=c[e+8>>2]|0;f=d;g=f+104|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));c[d+88>>2]=c[a+248>>2];c[d+92>>2]=c[a+252>>2];c[d+96>>2]=c[a+256>>2];c[d+100>>2]=c[a+260>>2];c[d>>2]=c[a+92>>2];c[d+4>>2]=c[a+96>>2];c[d+8>>2]=c[a+100>>2];c[d+12>>2]=c[a+104>>2];c[d+16>>2]=c[a+108>>2];c[d+20>>2]=c[a+116>>2];c[d+24>>2]=c[a+120>>2];c[d+28>>2]=c[a+124>>2];c[d+32>>2]=c[a+128>>2];c[d+36>>2]=c[a+132>>2];c[d+40>>2]=c[a+140>>2];c[d+44>>2]=c[a+144>>2];c[d+48>>2]=c[a+148>>2];c[d+52>>2]=c[a+152>>2];c[d+56>>2]=c[a+168>>2];c[d+60>>2]=c[a+172>>2];c[d+64>>2]=c[a+112>>2];c[d+68>>2]=c[a+156>>2];c[d+72>>2]=c[a+160>>2];c[d+76>>2]=c[a+164>>2];c[d+80>>2]=c[a+136>>2];Ta[c[(c[b>>2]|0)+20>>2]&31](b,e,14893,1145853764,d);ri(a,b);nc(a,b);Ca[c[(c[b>>2]|0)+36>>2]&511](b);return}function jh(b,d){b=b|0;d=d|0;if((c[b+16>>2]|0)!=(0-(c[b+76>>2]|0)|0))return;d=c[b+4>>2]|0;if(d|0)Hm(b+4|0,d);d=c[b+8>>2]|0;if(d|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+8>>2]=0;c[b+12>>2]=-1;d=c[b+36>>2]|0;if(d|0){if(a[b+40>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+36>>2]=0}a[b+40>>0]=1;c[b+36>>2]=0;c[b+28>>2]=0;c[b+32>>2]=0;c[b+20>>2]=0;d=c[b+64>>2]|0;if(d|0)Hm(b+64|0,d);d=c[b+68>>2]|0;if(d|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+68>>2]=0;c[b+72>>2]=-1;d=c[b+96>>2]|0;if(d|0){if(a[b+100>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+96>>2]=0}a[b+100>>0]=1;c[b+96>>2]=0;c[b+88>>2]=0;c[b+92>>2]=0;c[b+80>>2]=0;a[b+193>>0]=0;a[b+194>>0]=1;c[b+144>>2]=0;c[b+164>>2]=0;c[b+148>>2]=1;c[b+152>>2]=0;c[b+156>>2]=10;c[b+160>>2]=1;c[b+124>>2]=0;c[b+124+4>>2]=0;c[b+124+8>>2]=0;c[b+168>>2]=0;c[b+168+4>>2]=0;c[b+168+8>>2]=0;c[b+168+12>>2]=0;c[b+168+16>>2]=0;c[b+168+20>>2]=0;return}function kh(a,b){a=a|0;b=b|0;var d=0,e=0,g=0.0,h=0.0;e=ea;ea=ea+32|0;d=c[b+388>>2]|0;switch(c[a+388>>2]&48&d&63){case 32:{if((a|0)==(b|0)&(d&64|0)==0){ea=e;return}f[e+4>>2]=1.0;c[e+8+4>>2]=0;c[e+8+4+4>>2]=0;c[e+8+4+8>>2]=0;c[e>>2]=4604;c[e+8>>2]=c[a+456>>2];d=c[a+192>>2]|0;h=+ha[c[(c[d>>2]|0)+48>>2]&15](d);d=c[b+192>>2]|0;f[e+12>>2]=h+ +ha[c[(c[d>>2]|0)+48>>2]&15](d);h=+f[a+316>>2];g=+f[b+316>>2];f[e+16>>2]=h>2]=a;c[e+28>>2]=b;Cd(c[a+1048>>2]|0,c[b+1048>>2]|0,e);ea=e;return}case 16:{if((a|0)==(b|0)){ea=e;return}c[e>>2]=4640;d=c[a+192>>2]|0;h=+ha[c[(c[d>>2]|0)+48>>2]&15](d);d=c[b+192>>2]|0;f[e+12>>2]=h+ +ha[c[(c[d>>2]|0)+48>>2]&15](d);c[e+4>>2]=a;c[e+8>>2]=b;Cd(c[a+928>>2]|0,c[b+988>>2]|0,e);c[e+4>>2]=b;c[e+8>>2]=a;Cd(c[b+928>>2]|0,c[a+988>>2]|0,e);ea=e;return}default:{ea=e;return}}}function lh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,g=0.0,h=0.0,i=0,j=0.0;i=ea;ea=ea+32|0;c[i+16>>2]=c[d>>2];c[i+16+4>>2]=c[d+4>>2];c[i+16+8>>2]=c[d+8>>2];c[i+16+12>>2]=c[d+12>>2];e=+f[i+16>>2];h=+f[i+16+4>>2];g=+f[i+16+8>>2];if(e*e+h*h+g*g<1.4210854715202004e-14){c[i+16>>2]=-1082130432;c[i+16+4>>2]=-1082130432;c[i+16+8>>2]=-1082130432;f[i+16+12>>2]=0.0;e=-1.0;h=-1.0;g=-1.0}j=1.0/+s(+(e*e+h*h+g*g));f[i+16>>2]=e*j;f[i+16+4>>2]=h*j;f[i+16+8>>2]=g*j;Ac(i,b,i+16|0);switch(c[b+4>>2]|0){case 8:{e=+f[b+28>>2]*+f[b+12>>2];break}case 0:{e=+f[b+44>>2];break}case 1:{e=+f[b+44>>2];break}case 13:{e=+f[b+44>>2];break}case 11:{e=+f[b+44>>2];break}case 10:{e=+f[b+44>>2];break}case 4:case 5:{e=+f[b+44>>2];break}default:e=+ha[c[(c[b>>2]|0)+48>>2]&15](b)}h=e*+f[i+16+4>>2]+ +f[i+4>>2];j=e*+f[i+16+8>>2]+ +f[i+8>>2];f[a>>2]=e*+f[i+16>>2]+ +f[i>>2];f[a+4>>2]=h;f[a+8>>2]=j;f[a+12>>2]=0.0;ea=i;return}function mh(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;l=ea;ea=ea+48|0;h=l;i=h+44|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(i|0));if(!d)k=c[c[b+880>>2]>>2]|0;else k=d;d=c[b+732>>2]|0;if((d|0)==(c[b+736>>2]|0)?(j=(d|0)==0?1:d<<1,(d|0)<(j|0)):0){if(!j)e=0;else{c[6747]=(c[6747]|0)+1;d=kb((j*52|3)+16|0)|0;if(!d)e=0;else{c[(d+4+15&-16)+-4>>2]=d;e=d+4+15&-16}d=c[b+732>>2]|0}if((d|0)>0){f=0;do{h=e+(f*52|0)|0;g=(c[b+740>>2]|0)+(f*52|0)|0;i=h+52|0;do{c[h>>2]=c[g>>2];h=h+4|0;g=g+4|0}while((h|0)<(i|0));f=f+1|0}while((f|0)!=(d|0))}d=c[b+740>>2]|0;if(d|0){if(a[b+744>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+740>>2]=0}a[b+744>>0]=1;c[b+740>>2]=e;c[b+736>>2]=j;d=c[b+732>>2]|0}h=c[b+740>>2]|0;c[h+(d*52|0)>>2]=0;c[h+(d*52|0)+4>>2]=k;h=h+(d*52|0)+8|0;g=l;i=h+44|0;do{c[h>>2]=c[g>>2];h=h+4|0;g=g+4|0}while((h|0)<(i|0));c[b+732>>2]=(c[b+732>>2]|0)+1;ea=l;return}function nh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,g=0.0,i=0,j=0.0,k=0,l=0,m=0,n=0.0;l=ea;ea=ea+80|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;e=+f[d>>2];g=+f[d+4>>2];j=+f[d+8>>2];if(e*e+g*g+j*j<9.999999747378752e-05){k=1065353216;i=0;e=0.0;d=0}else{n=1.0/+s(+(e*e+g*g+j*j));k=(f[h>>2]=e*n,c[h>>2]|0);m=(f[h>>2]=g*n,c[h>>2]|0);i=(f[h>>2]=j*n,c[h>>2]|0);e=+f[d+12>>2];d=m}c[l+32>>2]=9136;m=l+32+4|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;f[l+32+20>>2]=-999999984306749440.0;c[l+32+24>>2]=k;c[l+32+28>>2]=d;c[l+32+32>>2]=i;f[l+32+36>>2]=e;c[l+16>>2]=1566444395;c[l+16+4>>2]=1566444395;c[l+16+8>>2]=1566444395;f[l+16+12>>2]=0.0;b=c[b+92>>2]|0;k=c[(c[b>>2]|0)+8>>2]|0;f[l>>2]=-999999984306749440.0;f[l+4>>2]=-999999984306749440.0;f[l+8>>2]=-999999984306749440.0;f[l+12>>2]=0.0;Pa[k&127](b,l+32|0,l,l+16|0);c[a>>2]=c[m>>2];c[a+4>>2]=c[m+4>>2];c[a+8>>2]=c[m+8>>2];c[a+12>>2]=c[m+12>>2];ea=l;return}function oh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,g=0.0,h=0,i=0.0,j=0.0,k=0,l=0.0,m=0.0;l=+f[b+60>>2]*.5;h=c[b+68>>2]|0;g=+f[d>>2];i=+f[d+4>>2];j=+f[d+8>>2];j=+s(+(g*g+i*i+j*j));k=c[b+64>>2]|0;do if(!(+f[d+(h<<2)>>2]>+f[b+52>>2]*j)){g=+f[d+(k<<2)>>2];e=c[b+72>>2]|0;i=+f[d+(e<<2)>>2];j=+s(+(g*g+i*i));if(j>1.1920928955078125e-07){j=+f[b+56>>2]/j;f[a+(k<<2)>>2]=g*j;f[a+(h<<2)>>2]=-l;g=i*j;break}else{f[a+(k<<2)>>2]=0.0;f[a+(h<<2)>>2]=-l;g=0.0;break}}else{f[a+(k<<2)>>2]=0.0;f[a+(h<<2)>>2]=l;g=0.0;e=c[b+72>>2]|0}while(0);f[a+(e<<2)>>2]=g;if(!(+ha[c[(c[b>>2]|0)+48>>2]&15](b)!=0.0))return;i=+f[d>>2];l=+f[d+4>>2];j=+f[d+8>>2];m=i*i+l*l+j*j<1.4210854715202004e-14?-1.0:i;g=i*i+l*l+j*j<1.4210854715202004e-14?-1.0:l;j=i*i+l*l+j*j<1.4210854715202004e-14?-1.0:j;l=1.0/+s(+(j*j+(m*m+g*g)));i=+ha[c[(c[b>>2]|0)+48>>2]&15](b);f[a>>2]=+f[a>>2]+i*(m*l);f[a+4>>2]=+f[a+4>>2]+i*(g*l);f[a+8>>2]=+f[a+8>>2]+i*(j*l);return}function ph(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=ta[c[(c[d>>2]|0)+40>>2]&31](d,a)|0;g=ta[c[(c[d>>2]|0)+28>>2]&31](d,e)|0;c[b>>2]=g;if(g|0)Ia[c[(c[d>>2]|0)+48>>2]&127](d,e);c[b+4>>2]=c[a+4>>2];c[b+28>>2]=c[a+28>>2];c[b+32>>2]=c[a+32>>2];c[b+36>>2]=c[a+36>>2];c[b+40>>2]=c[a+40>>2];c[b+12>>2]=c[a+12>>2];c[b+16>>2]=c[a+16>>2];c[b+20>>2]=c[a+20>>2];c[b+24>>2]=c[a+24>>2];c[b+44>>2]=c[a+44>>2];f=c[a+96>>2]|0;c[b+60>>2]=f;if(!f){c[b+52>>2]=0;c[b+56>>2]=0;return 20050}c[b+52>>2]=ta[c[(c[d>>2]|0)+28>>2]&31](d,c[a+104>>2]|0)|0;c[b+56>>2]=0;g=va[c[(c[d>>2]|0)+16>>2]&63](d,16,f)|0;if((f|0)>0){e=c[a+104>>2]|0;b=0;a=c[g+8>>2]|0;while(1){c[a>>2]=c[e+(b<<4)>>2];c[a+4>>2]=c[e+(b<<4)+4>>2];c[a+8>>2]=c[e+(b<<4)+8>>2];c[a+12>>2]=c[e+(b<<4)+12>>2];b=b+1|0;if((b|0)==(f|0))break;else a=a+16|0}}else e=c[a+104>>2]|0;Ta[c[(c[d>>2]|0)+20>>2]&31](d,g,22049,1497453121,e);return 20050}function qh(a,b,d){a=a|0;b=b|0;d=d|0;c[a+300>>2]=c[b>>2];c[a+300+4>>2]=c[b+4>>2];c[a+300+8>>2]=c[b+8>>2];c[a+300+12>>2]=c[b+12>>2];c[a+316>>2]=c[b+16>>2];c[a+316+4>>2]=c[b+16+4>>2];c[a+316+8>>2]=c[b+16+8>>2];c[a+316+12>>2]=c[b+16+12>>2];c[a+332>>2]=c[b+32>>2];c[a+332+4>>2]=c[b+32+4>>2];c[a+332+8>>2]=c[b+32+8>>2];c[a+332+12>>2]=c[b+32+12>>2];c[a+348>>2]=c[b+48>>2];c[a+348+4>>2]=c[b+48+4>>2];c[a+348+8>>2]=c[b+48+8>>2];c[a+348+12>>2]=c[b+48+12>>2];c[a+364>>2]=c[d>>2];c[a+364+4>>2]=c[d+4>>2];c[a+364+8>>2]=c[d+8>>2];c[a+364+12>>2]=c[d+12>>2];c[a+380>>2]=c[d+16>>2];c[a+380+4>>2]=c[d+16+4>>2];c[a+380+8>>2]=c[d+16+8>>2];c[a+380+12>>2]=c[d+16+12>>2];c[a+396>>2]=c[d+32>>2];c[a+396+4>>2]=c[d+32+4>>2];c[a+396+8>>2]=c[d+32+8>>2];c[a+396+12>>2]=c[d+32+12>>2];c[a+412>>2]=c[d+48>>2];c[a+412+4>>2]=c[d+48+4>>2];c[a+412+8>>2]=c[d+48+8>>2];c[a+412+12>>2]=c[d+48+12>>2];Ca[c[(c[a>>2]|0)+8>>2]&511](a);return}function rh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0,n=0.0;m=c[a+4>>2]|0;a=c[a+64>>2]|0;do if(!m)if(!a){e=0.0;n=0.0;j=0.0;l=0.0;h=0.0;k=0.0;i=0.0;g=0.0}else{e=+f[a>>2];n=+f[a+12>>2];j=+f[a+16>>2];l=+f[a+20>>2];h=+f[a+24>>2];k=+f[a+28>>2];i=+f[a+4>>2];g=+f[a+8>>2]}else{e=+f[m>>2];if(!a){n=+f[m+12>>2];j=+f[m+16>>2];l=+f[m+20>>2];h=+f[m+24>>2];k=+f[m+28>>2];i=+f[m+4>>2];g=+f[m+8>>2];break}k=+f[a>>2];e=e>2];j=+f[a+16>>2];j=k>j?k:j;k=+f[m+4>>2];i=+f[a+4>>2];i=k>2];l=+f[a+20>>2];l=k>l?k:l;k=+f[m+8>>2];g=+f[a+8>>2];g=k>2];h=+f[a+24>>2];if(k>h){n=0.0;h=k;k=0.0}else{n=0.0;k=0.0}}while(0);f[b>>2]=e;f[b+4>>2]=i;f[b+8>>2]=g;f[b+12>>2]=n;f[d>>2]=j;f[d+4>>2]=l;f[d+8>>2]=h;f[d+12>>2]=k;return}function sh(a,b){a=a|0;b=b|0;var c=0,d=0.0,e=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0;c=ea;ea=ea+48|0;Gg(a+364|0,c+16|0);h=-+f[c+16>>2];e=-+f[c+16+4>>2];l=-+f[c+16+8>>2];k=+f[c+16+12>>2];g=+f[b>>2];m=+f[b+12>>2];j=+f[b+8>>2];i=+f[b+4>>2];Gg(a+300|0,c);o=+f[c>>2];p=+f[c+12>>2];d=+f[c+8>>2];n=+f[c+4>>2];f[c+32>>2]=(k*m-g*h-i*e-j*l)*o+(k*g+m*h+j*e-i*l)*p+(g*l+(m*e+k*i)-j*h)*d-(m*l+k*j+i*h-g*e)*n;f[c+32+4>>2]=o*(m*l+k*j+i*h-g*e)+(p*(g*l+(m*e+k*i)-j*h)+(k*m-g*h-i*e-j*l)*n)-(k*g+m*h+j*e-i*l)*d;f[c+32+8>>2]=(m*l+k*j+i*h-g*e)*p+(k*m-g*h-i*e-j*l)*d+(k*g+m*h+j*e-i*l)*n-o*(g*l+(m*e+k*i)-j*h);f[c+32+12>>2]=(k*m-g*h-i*e-j*l)*p-(k*g+m*h+j*e-i*l)*o-(g*l+(m*e+k*i)-j*h)*n-(m*l+k*j+i*h-g*e)*d;Vd(a,c+32|0);ea=c;return}function th(b){b=b|0;var d=0;d=c[b>>2]|0;if(d|0)Hm(b,d);d=c[b+4>>2]|0;if(d|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+4>>2]=0;c[b+8>>2]=-1;d=c[b+32>>2]|0;if(d|0){if(a[b+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+32>>2]=0}a[b+36>>0]=1;c[b+32>>2]=0;c[b+24>>2]=0;c[b+28>>2]=0;c[b+16>>2]=0;d=c[b+52>>2]|0;if(!d){a[b+56>>0]=1;c[b+52>>2]=0;c[b+44>>2]=0;c[b+48>>2]=0;a[b+36>>0]=1;c[b+32>>2]=0;c[b+24>>2]=0;c[b+28>>2]=0;return}if(!(a[b+56>>0]|0)){a[b+56>>0]=1;c[b+52>>2]=0;c[b+44>>2]=0;c[b+48>>2]=0;a[b+36>>0]=1;c[b+32>>2]=0;c[b+24>>2]=0;c[b+28>>2]=0;return}c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0);d=c[b+32>>2]|0;a[b+56>>0]=1;c[b+52>>2]=0;c[b+44>>2]=0;c[b+48>>2]=0;if(!d){a[b+36>>0]=1;c[b+32>>2]=0;c[b+24>>2]=0;c[b+28>>2]=0;return}if(a[b+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+32>>2]=0;a[b+36>>0]=1;c[b+32>>2]=0;c[b+24>>2]=0;c[b+28>>2]=0;return}function uh(b,d,e,g){b=b|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0;i=ea;ea=ea+32|0;h=Gs()|0;c[h+4>>2]=11;c[h+8>>2]=-1;c[h+12>>2]=-1;f[h+16>>2]=3402823466385288598117041.0e14;a[h+20>>0]=1;a[h+21>>0]=0;c[h+24>>2]=-1;c[h+28>>2]=b;c[h+32>>2]=d;f[h+36>>2]=0.0;f[h+40>>2]=.30000001192092896;c[h+44>>2]=0;c[h>>2]=5440;c[h+48>>2]=c[e+48>>2];c[h+48+4>>2]=c[e+48+4>>2];c[h+48+8>>2]=c[e+48+8>>2];c[h+48+12>>2]=c[e+48+12>>2];c[h+64>>2]=c[g+48>>2];c[h+64+4>>2]=c[g+48+4>>2];c[h+64+8>>2]=c[g+48+8>>2];c[h+64+12>>2]=c[g+48+12>>2];Gg(e,i+16|0);Gg(g,i);n=-+f[i>>2];l=-+f[i+4>>2];j=-+f[i+8>>2];q=+f[i+12>>2];p=+f[i+16+12>>2];o=+f[i+16>>2];m=+f[i+16+4>>2];k=+f[i+16+8>>2];f[h+80>>2]=p*n+q*o+m*j-k*l;f[h+84>>2]=k*n+(p*l+q*m)-o*j;f[h+88>>2]=o*l+(p*j+q*k)-m*n;f[h+92>>2]=q*p-o*n-m*l-k*j;ea=i;return h|0}function vh(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if((e|0)>=8192){W(b|0,d|0,e|0)|0;return b|0}h=b|0;g=b+e|0;if((b&3)==(d&3)){while(b&3){if(!e)return h|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}e=g&-4|0;f=e-64|0;while((b|0)<=(f|0)){c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];c[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];c[b+28>>2]=c[d+28>>2];c[b+32>>2]=c[d+32>>2];c[b+36>>2]=c[d+36>>2];c[b+40>>2]=c[d+40>>2];c[b+44>>2]=c[d+44>>2];c[b+48>>2]=c[d+48>>2];c[b+52>>2]=c[d+52>>2];c[b+56>>2]=c[d+56>>2];c[b+60>>2]=c[d+60>>2];b=b+64|0;d=d+64|0}while((b|0)<(e|0)){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}}else{e=g-4|0;while((b|0)<(e|0)){a[b>>0]=a[d>>0]|0;a[b+1>>0]=a[d+1>>0]|0;a[b+2>>0]=a[d+2>>0]|0;a[b+3>>0]=a[d+3>>0]|0;b=b+4|0;d=d+4|0}}while((b|0)<(g|0)){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0}return h|0}function wh(b){b=b|0;var d=0;if((a[24904]|0)==0?DC(24904)|0:0){if((a[24880]|0)==0?DC(24880)|0:0){if((a[24888]|0)==0?DC(24888)|0:0){c[6348]=1065353216;c[6349]=0;c[6350]=0;c[6351]=0;c[6352]=0;c[6353]=1065353216;c[6354]=0;c[6355]=0;c[6356]=0;c[6357]=0;c[6358]=1065353216;f[6359]=0.0;PB(24888)}c[6332]=c[6348];c[6333]=c[6349];c[6334]=c[6350];c[6335]=c[6351];c[6336]=c[6352];c[6337]=c[6353];c[6338]=c[6354];c[6339]=c[6355];c[6340]=c[6356];c[6341]=c[6357];c[6342]=c[6358];c[6343]=c[6359];c[6344]=0;c[6345]=0;c[6346]=0;c[6347]=0;PB(24880)}c[6372]=c[6332];c[6373]=c[6333];c[6374]=c[6334];c[6375]=c[6335];c[6376]=c[6336];c[6377]=c[6337];c[6378]=c[6338];c[6379]=c[6339];c[6380]=c[6340];c[6381]=c[6341];c[6382]=c[6342];c[6383]=c[6343];c[6384]=c[6344];c[6385]=c[6345];c[6386]=c[6346];c[6387]=c[6347];PB(24904)}d=c[b+8>>2]|0;if(!d){b=c[b>>2]|0;return ((b|0)==0?25488:b+60|0)|0}else return d+4|0;return 0}function xh(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;if(!e)e=c[b+188>>2]|0;i=c[d>>2]|0;f=c[b+268>>2]|0;a:do if((f|0)>0){h=c[b+276>>2]|0;g=0;while(1){if((c[h+(g<<2)>>2]|0)==(i|0))break;g=g+1|0;if((g|0)>=(f|0))break a}if((g|0)!=(f|0))return}while(0);if((f|0)==(c[b+272>>2]|0)?(j=(f|0)==0?1:f<<1,(f|0)<(j|0)):0){if(!j)g=0;else{c[6747]=(c[6747]|0)+1;f=kb((j<<2|3)+16|0)|0;if(!f)g=0;else{c[(f+4+15&-16)+-4>>2]=f;g=f+4+15&-16}f=c[b+268>>2]|0}if((f|0)>0){h=0;do{c[g+(h<<2)>>2]=c[(c[b+276>>2]|0)+(h<<2)>>2];h=h+1|0}while((h|0)!=(f|0))}h=c[b+276>>2]|0;if(h){if(a[b+280>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[h+-4>>2]|0);f=c[b+268>>2]|0}c[b+276>>2]=0}a[b+280>>0]=1;c[b+276>>2]=g;c[b+272>>2]=j}c[(c[b+276>>2]|0)+(f<<2)>>2]=i;c[b+268>>2]=f+1;b=c[b+284>>2]|0;va[c[(c[b>>2]|0)+8>>2]&63](b,e,d)|0;return}function yh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;if(ra[c[(c[d>>2]|0)+16>>2]&127](d)|0)return;j=c[b+712>>2]|0;i=ra[c[(c[d>>2]|0)+36>>2]&127](d)|0;if(ra[c[(c[d>>2]|0)+8>>2]&127](d)|0?(f=ra[c[(c[d>>2]|0)+20>>2]&127](d)|0,h=ra[c[(c[d>>2]|0)+24>>2]&127](d)|0,(j|0)>0):0){e=c[b+720>>2]|0;g=0;a=i+(f<<2)|0;while(1){k=c[e+(g*104|0)+12>>2]|0;f=c[e+(g*104|0)+16>>2]|0;c[a>>2]=c[e+(g*104|0)+8>>2];c[a+4>>2]=k;c[a+8>>2]=f;g=g+1|0;if((g|0)==(j|0))break;else a=a+(h<<2)|0}}if(!(ra[c[(c[d>>2]|0)+12>>2]&127](d)|0))return;a=ra[c[(c[d>>2]|0)+28>>2]&127](d)|0;g=ra[c[(c[d>>2]|0)+32>>2]&127](d)|0;if((j|0)<=0)return;f=c[b+720>>2]|0;a=i+(a<<2)|0;e=0;while(1){b=c[f+(e*104|0)+76>>2]|0;k=c[f+(e*104|0)+80>>2]|0;c[a>>2]=c[f+(e*104|0)+72>>2];c[a+4>>2]=b;c[a+8>>2]=k;e=e+1|0;if((e|0)==(j|0))break;else a=a+(g<<2)|0}return}function zh(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;c[b>>2]=10664;d=c[b+56>>2]|0;if(d|0){if(a[b+60>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+56>>2]=0}a[b+60>>0]=1;c[b+56>>2]=0;c[b+48>>2]=0;c[b+52>>2]=0;e=c[b+28>>2]|0;if((e|0)>0){h=0;do{f=c[b+36>>2]|0;j=f+(h*36|0)+4|0;i=f+(h*36|0)+12|0;g=c[i>>2]|0;d=f+(h*36|0)+16|0;if(g|0){if(a[d>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[i>>2]=0}a[d>>0]=1;c[i>>2]=0;c[j>>2]=0;c[f+(h*36|0)+8>>2]=0;h=h+1|0}while((h|0)!=(e|0))}d=c[b+36>>2]|0;if(d|0){if(a[b+40>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+36>>2]=0}a[b+40>>0]=1;c[b+36>>2]=0;c[b+28>>2]=0;c[b+32>>2]=0;d=c[b+16>>2]|0;if(!d){a[b+20>>0]=1;c[b+16>>2]=0;c[b+8>>2]=0;b=b+12|0;c[b>>2]=0;return}if(a[b+20>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+16>>2]=0;a[b+20>>0]=1;c[b+16>>2]=0;c[b+8>>2]=0;b=b+12|0;c[b>>2]=0;return}function Ah(b){b=b|0;var d=0;c[b>>2]=9764;d=c[b+156>>2]|0;if(d|0){if(a[b+160>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+156>>2]=0}a[b+160>>0]=1;c[b+156>>2]=0;c[b+148>>2]=0;c[b+152>>2]=0;d=c[b+136>>2]|0;if(d|0){if(a[b+140>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+136>>2]=0}a[b+140>>0]=1;c[b+136>>2]=0;c[b+128>>2]=0;c[b+132>>2]=0;d=c[b+116>>2]|0;if(d|0){if(a[b+120>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+116>>2]=0}a[b+120>>0]=1;c[b+116>>2]=0;c[b+108>>2]=0;c[b+112>>2]=0;d=c[b+96>>2]|0;if(d|0){if(a[b+100>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+96>>2]=0}a[b+100>>0]=1;c[b+96>>2]=0;c[b+88>>2]=0;c[b+92>>2]=0;c[b>>2]=10680;d=c[b+32>>2]|0;if(!d){a[b+36>>0]=1;c[b+32>>2]=0;c[b+24>>2]=0;b=b+28|0;c[b>>2]=0;return}if(a[b+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+32>>2]=0;a[b+36>>0]=1;c[b+32>>2]=0;c[b+24>>2]=0;b=b+28|0;c[b>>2]=0;return}function Bh(b){b=b|0;var d=0;c[b>>2]=10324;d=c[b+160>>2]|0;if(d|0){if(a[b+164>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+160>>2]=0}a[b+164>>0]=1;c[b+160>>2]=0;c[b+152>>2]=0;c[b+156>>2]=0;d=c[b+136>>2]|0;if(d|0){if(a[b+140>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+136>>2]=0}a[b+140>>0]=1;c[b+136>>2]=0;c[b+128>>2]=0;c[b+132>>2]=0;d=c[b+116>>2]|0;if(d|0){if(a[b+120>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+116>>2]=0}a[b+120>>0]=1;c[b+116>>2]=0;c[b+108>>2]=0;c[b+112>>2]=0;d=c[b+96>>2]|0;if(d|0){if(a[b+100>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+96>>2]=0}a[b+100>>0]=1;c[b+96>>2]=0;c[b+88>>2]=0;c[b+92>>2]=0;d=c[b+76>>2]|0;if(!d){a[b+80>>0]=1;c[b+76>>2]=0;c[b+68>>2]=0;b=b+72|0;c[b>>2]=0;return}if(a[b+80>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+76>>2]=0;a[b+80>>0]=1;c[b+76>>2]=0;c[b+68>>2]=0;b=b+72|0;c[b>>2]=0;return}function Ch(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0,h=0.0,i=0,j=0.0,k=0.0,l=0,m=0.0,n=0,o=0;o=ea;ea=ea+16|0;if((e|0)<=0){ea=o;return}n=0;do{m=+f[a+60>>2]*.5;i=c[a+68>>2]|0;h=+f[b+(n<<4)>>2];j=+f[b+(n<<4)+4>>2];k=+f[b+(n<<4)+8>>2];k=+s(+(h*h+j*j+k*k));l=c[a+64>>2]|0;do if(!(+f[b+(n<<4)+(i<<2)>>2]>+f[a+52>>2]*k)){h=+f[b+(n<<4)+(l<<2)>>2];g=c[a+72>>2]|0;j=+f[b+(n<<4)+(g<<2)>>2];k=+s(+(h*h+j*j));if(k>1.1920928955078125e-07){k=+f[a+56>>2]/k;f[o+(l<<2)>>2]=h*k;f[o+(i<<2)>>2]=-m;h=j*k;break}else{f[o+(l<<2)>>2]=0.0;f[o+(i<<2)>>2]=-m;h=0.0;break}}else{f[o+(l<<2)>>2]=0.0;f[o+(i<<2)>>2]=m;h=0.0;g=c[a+72>>2]|0}while(0);f[o+(g<<2)>>2]=h;l=d+(n<<4)|0;c[l>>2]=c[o>>2];c[l+4>>2]=c[o+4>>2];c[l+8>>2]=c[o+8>>2];c[l+12>>2]=c[o+12>>2];n=n+1|0}while((n|0)!=(e|0));ea=o;return}function Dh(b){b=b|0;var d=0;c[b>>2]=5932;d=c[b+144>>2]|0;if(d|0){if(a[b+148>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+144>>2]=0}a[b+148>>0]=1;c[b+144>>2]=0;c[b+136>>2]=0;c[b+140>>2]=0;d=c[b+76>>2]|0;if(d|0){if(a[b+80>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+76>>2]=0}a[b+80>>0]=1;c[b+76>>2]=0;c[b+68>>2]=0;c[b+72>>2]=0;d=c[b+56>>2]|0;if(d|0){if(a[b+60>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+56>>2]=0}a[b+60>>0]=1;c[b+56>>2]=0;c[b+48>>2]=0;c[b+52>>2]=0;d=c[b+36>>2]|0;if(d|0){if(a[b+40>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+36>>2]=0}a[b+40>>0]=1;c[b+36>>2]=0;c[b+28>>2]=0;c[b+32>>2]=0;d=c[b+16>>2]|0;if(!d){a[b+20>>0]=1;c[b+16>>2]=0;c[b+8>>2]=0;b=b+12|0;c[b>>2]=0;return}if(a[b+20>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+16>>2]=0;a[b+20>>0]=1;c[b+16>>2]=0;c[b+8>>2]=0;b=b+12|0;c[b>>2]=0;return}function Eh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0;o=(+f[a+32>>2]-+f[a+16>>2])*+f[a+108>>2]*.5;m=(+f[a+36>>2]-+f[a+20>>2])*+f[a+112>>2]*.5;k=(+f[a+40>>2]-+f[a+24>>2])*+f[a+116>>2]*.5;u=+r(+(+f[b>>2]));t=+r(+(+f[b+4>>2]));s=+r(+(+f[b+8>>2]));n=+r(+(+f[b+16>>2]));l=+r(+(+f[b+20>>2]));j=+r(+(+f[b+24>>2]));x=+r(+(+f[b+32>>2]));w=+r(+(+f[b+36>>2]));g=+r(+(+f[b+40>>2]));v=+f[b+48>>2];p=+f[b+52>>2];h=+f[b+56>>2];q=+ha[c[(c[a>>2]|0)+48>>2]&15](a);i=+ha[c[(c[a>>2]|0)+48>>2]&15](a);g=o*x+m*w+k*g+ +ha[c[(c[a>>2]|0)+48>>2]&15](a);f[d>>2]=v-(o*u+m*t+k*s+q);f[d+4>>2]=p-(o*n+m*l+k*j+i);f[d+8>>2]=h-g;f[d+12>>2]=0.0;f[e>>2]=v+(o*u+m*t+k*s+q);f[e+4>>2]=p+(o*n+m*l+k*j+i);f[e+8>>2]=h+g;f[e+12>>2]=0.0;return}function Fh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0;e=c[b>>2]|0;if((e|0)==(c[a+80>>2]|0)){g=1.0;return +g}if(c[e+204>>2]&4|0){g=1.0;return +g}if((+f[a+28>>2]-+f[a+12>>2])*+f[b+8>>2]+(+f[a+32>>2]-+f[a+16>>2])*+f[b+12>>2]+(+f[a+36>>2]-+f[a+20>>2])*+f[b+16>>2]>=-+f[a+84>>2]){g=1.0;return +g}c[a+4>>2]=c[b+40>>2];c[a+76>>2]=e;if(d){c[a+44>>2]=c[b+8>>2];c[a+44+4>>2]=c[b+8+4>>2];c[a+44+8>>2]=c[b+8+8>>2];c[a+44+12>>2]=c[b+8+12>>2]}else{k=+f[b+8>>2];j=+f[b+12>>2];i=+f[b+16>>2];h=k*+f[e+20>>2]+j*+f[e+24>>2]+i*+f[e+28>>2];g=k*+f[e+36>>2]+j*+f[e+40>>2]+i*+f[e+44>>2];f[a+44>>2]=+f[e+4>>2]*k+ +f[e+8>>2]*j+ +f[e+12>>2]*i;f[a+48>>2]=h;f[a+52>>2]=g;f[a+56>>2]=0.0}c[a+60>>2]=c[b+24>>2];c[a+60+4>>2]=c[b+24+4>>2];c[a+60+8>>2]=c[b+24+8>>2];c[a+60+12>>2]=c[b+24+12>>2];k=+f[b+40>>2];return +k}function Gh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=ea;ea=ea+48|0;g=c[a+28>>2]|0;c[i>>2]=g;g=(c[a+20>>2]|0)-g|0;c[i+4>>2]=g;c[i+8>>2]=b;c[i+12>>2]=d;c[i+16>>2]=c[a+60>>2];c[i+16+4>>2]=i;c[i+16+8>>2]=2;b=eI(M(146,i+16|0)|0)|0;a:do if((g+d|0)!=(b|0)){e=i;f=2;g=g+d|0;while(1){if((b|0)<0)break;g=g-b|0;j=c[e+4>>2]|0;k=b>>>0>j>>>0;e=k?e+8|0:e;f=f+(k<<31>>31)|0;j=b-(k?j:0)|0;c[e>>2]=(c[e>>2]|0)+j;c[e+4>>2]=(c[e+4>>2]|0)-j;c[i+32>>2]=c[a+60>>2];c[i+32+4>>2]=e;c[i+32+8>>2]=f;b=eI(M(146,i+32|0)|0)|0;if((g|0)==(b|0)){h=3;break a}}c[a+16>>2]=0;c[a+28>>2]=0;c[a+20>>2]=0;c[a>>2]=c[a>>2]|32;if((f|0)==2)d=0;else d=d-(c[e+4>>2]|0)|0}else h=3;while(0);if((h|0)==3){k=c[a+44>>2]|0;c[a+16>>2]=k+(c[a+48>>2]|0);c[a+28>>2]=k;c[a+20>>2]=k}ea=i;return d|0}function Hh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0;i=ea;ea=ea+80|0;if((e|0)<=0){ea=i;return}g=0;do{f[d+(g<<4)+12>>2]=-999999984306749440.0;g=g+1|0}while((g|0)!=(e|0));h=i+32+4|0;g=0;do{j=b+(g<<4)|0;c[i+32>>2]=9136;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;f[i+32+20>>2]=-999999984306749440.0;c[i+32+24>>2]=c[j>>2];c[i+32+24+4>>2]=c[j+4>>2];c[i+32+24+8>>2]=c[j+8>>2];c[i+32+24+12>>2]=c[j+12>>2];c[i+16>>2]=1566444395;c[i+16+4>>2]=1566444395;c[i+16+8>>2]=1566444395;f[i+16+12>>2]=0.0;j=c[a+92>>2]|0;k=c[(c[j>>2]|0)+8>>2]|0;f[i>>2]=-999999984306749440.0;f[i+4>>2]=-999999984306749440.0;f[i+8>>2]=-999999984306749440.0;f[i+12>>2]=0.0;Pa[k&127](j,i+32|0,i,i+16|0);j=d+(g<<4)|0;c[j>>2]=c[h>>2];c[j+4>>2]=c[h+4>>2];c[j+8>>2]=c[h+8>>2];c[j+12>>2]=c[h+12>>2];g=g+1|0}while((g|0)<(e|0));ea=i;return}function Ih(b){b=b|0;var d=0,e=0,g=0,h=0;c[b+32>>2]=262144;h=c[b+4>>2]|0;if((h|0)<2383){if((c[b+8>>2]|0)<2383){c[6747]=(c[6747]|0)+1;d=kb(9551)|0;if(!d)g=0;else{c[(d+4+15&-16)+-4>>2]=d;g=d+4+15&-16}d=c[b+4>>2]|0;if((d|0)>0){e=0;do{c[g+(e<<2)>>2]=c[(c[b+12>>2]|0)+(e<<2)>>2];e=e+1|0}while((e|0)!=(d|0))}d=c[b+12>>2]|0;if(d|0){if(a[b+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+12>>2]=0}a[b+16>>0]=1;c[b+12>>2]=g;c[b+8>>2]=2383;e=b+12|0}else e=b+12|0;d=h;do{c[(c[e>>2]|0)+(d<<2)>>2]=0;d=d+1|0}while((d|0)!=2383)}c[b+4>>2]=2383;e=0;do{h=(c[b+12>>2]|0)+(e<<2)|0;d=c[h>>2]|0;c[h>>2]=0;if(d|0)do{h=d;d=c[d+280>>2]|0;LJ(h)}while((d|0)!=0);e=e+1|0}while((e|0)!=2383);f[b+20>>2]=.25;c[b+24>>2]=0;c[b+28>>2]=0;c[b+36>>2]=1;c[b+40>>2]=1;return}function Jh(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;f=c[b+96>>2]|0;if((f|0)==(c[b+100>>2]|0)?(i=(f|0)==0?1:f<<1,(f|0)<(i|0)):0){if(!i)g=0;else{c[6747]=(c[6747]|0)+1;f=kb((i<<4|3)+16|0)|0;if(!f)g=0;else{c[(f+4+15&-16)+-4>>2]=f;g=f+4+15&-16}f=c[b+96>>2]|0}if((f|0)>0){h=0;do{j=g+(h<<4)|0;k=(c[b+104>>2]|0)+(h<<4)|0;c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];c[j+12>>2]=c[k+12>>2];h=h+1|0}while((h|0)!=(f|0))}f=c[b+104>>2]|0;if(f|0){if(a[b+108>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[f+-4>>2]|0)}c[b+104>>2]=0}a[b+108>>0]=1;c[b+104>>2]=g;c[b+100>>2]=i;f=c[b+96>>2]|0}k=(c[b+104>>2]|0)+(f<<4)|0;c[k>>2]=c[d>>2];c[k+4>>2]=c[d+4>>2];c[k+8>>2]=c[d+8>>2];c[k+12>>2]=c[d+12>>2];c[b+96>>2]=(c[b+96>>2]|0)+1;if(!e)return;Bi(b);return}function Kh(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=c[d+4>>2]|0;f=c[b+24>>2]|0;if((f|0)<(i|0)){if((c[b+28>>2]|0)<(i|0)){if(!i){g=f;h=0}else{c[6747]=(c[6747]|0)+1;e=kb((i<<2|3)+16|0)|0;if(!e)e=0;else{c[(e+4+15&-16)+-4>>2]=e;e=e+4+15&-16}g=c[b+24>>2]|0;h=e}if((g|0)>0){e=0;do{c[h+(e<<2)>>2]=c[(c[b+32>>2]|0)+(e<<2)>>2];e=e+1|0}while((e|0)!=(g|0))}e=c[b+32>>2]|0;if(e|0){if(a[b+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0)}c[b+32>>2]=0}a[b+36>>0]=1;c[b+32>>2]=h;c[b+28>>2]=i;e=b+32|0}else e=b+32|0;do{c[(c[e>>2]|0)+(f<<2)>>2]=0;f=f+1|0}while((f|0)!=(i|0))}else e=b+32|0;c[b+24>>2]=i;e=c[e>>2]|0;if((i|0)<=0)return;f=0;do{c[e+(f<<2)>>2]=c[(c[d+12>>2]|0)+(f<<2)>>2];f=f+1|0}while((f|0)!=(i|0));return}function Lh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=ea;ea=ea+96|0;b=c[b>>2]|0;if((b|0)==(c[a+4>>2]|0)){ea=d;return 1}e=c[a+12>>2]|0;if(!(ta[c[(c[e>>2]|0)+8>>2]&31](e,c[b+188>>2]|0)|0)){ea=d;return 1}e=c[a+4>>2]|0;f=c[e+192>>2]|0;c[d+64>>2]=0;c[d+64+4>>2]=f;c[d+64+8>>2]=e;c[d+64+12>>2]=e+4;c[d+64+16>>2]=-1;c[d+64+20>>2]=-1;e=c[b+192>>2]|0;c[d+40>>2]=0;c[d+40+4>>2]=e;c[d+40+8>>2]=b;c[d+40+12>>2]=b+4;c[d+40+16>>2]=-1;c[d+40+20>>2]=-1;b=c[(c[a+8>>2]|0)+24>>2]|0;b=wa[c[(c[b>>2]|0)+8>>2]&31](b,d+64|0,d+40|0,0)|0;if(b|0){f=c[a+12>>2]|0;c[d+4>>2]=0;c[d+8>>2]=d+64;c[d+12>>2]=d+40;c[d>>2]=7088;c[d+32>>2]=f;Ta[c[(c[b>>2]|0)+8>>2]&31](b,d+64|0,d+40|0,(c[a+8>>2]|0)+28|0,d);Ca[c[c[b>>2]>>2]&511](b);f=c[(c[a+8>>2]|0)+24>>2]|0;Ia[c[(c[f>>2]|0)+60>>2]&127](f,b)}ea=d;return 1}function Mh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,g=0,h=0,i=0,j=0,k=0;k=ea;ea=ea+80|0;h=c[c[a>>2]>>2]|0;i=c[c[a+4>>2]>>2]|0;if(!(va[c[(c[b>>2]|0)+24>>2]&63](b,h,i)|0)){ea=k;return}g=c[h+192>>2]|0;c[k+56>>2]=0;c[k+56+4>>2]=g;c[k+56+8>>2]=h;c[k+56+12>>2]=h+4;c[k+56+16>>2]=-1;c[k+56+20>>2]=-1;g=c[i+192>>2]|0;c[k+32>>2]=0;c[k+32+4>>2]=g;c[k+32+8>>2]=i;c[k+32+12>>2]=i+4;c[k+32+16>>2]=-1;c[k+32+20>>2]=-1;g=c[a+8>>2]|0;if(!g){g=wa[c[(c[b>>2]|0)+8>>2]&31](b,k+56|0,k+32|0,0)|0;c[a+8>>2]=g;if(g|0)j=4}else j=4;if((j|0)==4){c[k>>2]=6716;c[k+4>>2]=0;c[k+8>>2]=k+56;c[k+12>>2]=k+32;if((c[d+8>>2]|0)!=1){e=+na[c[(c[g>>2]|0)+12>>2]&15](g,h,i,d,k);if(+f[d+12>>2]>e)f[d+12>>2]=e}else Ta[c[(c[g>>2]|0)+8>>2]&31](g,k+56|0,k+32|0,d,k)}ea=k;return}function Nh(a,b,c,d,e,g,h,i,j,k,l){a=a|0;b=b|0;c=+c;d=+d;e=+e;g=+g;h=+h;i=+i;j=j|0;k=k|0;l=+l;var m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0;x=+f[a>>2]*g+ +f[a+16>>2]*h+ +f[a+32>>2]*i;v=+f[a+4>>2]*g+ +f[a+20>>2]*h+ +f[a+36>>2]*i;t=+f[a+8>>2]*g+ +f[a+24>>2]*h+ +f[a+40>>2]*i;s=+f[b>>2]*g+ +f[b+16>>2]*h+ +f[b+32>>2]*i;q=+f[b+4>>2]*g+ +f[b+20>>2]*h+ +f[b+36>>2]*i;o=+f[b+8>>2]*g+ +f[b+24>>2]*h+ +f[b+40>>2]*i;w=+f[j+80>>2];u=+f[j+84>>2];p=+f[j+88>>2];r=+f[k+80>>2];m=+f[k+84>>2];n=+f[k+88>>2];p=x*(x<0.0?-w:w)+v*(v<0.0?-u:u)+t*(t<0.0?-p:p);n=s*(s<0.0?-r:r)+q*(q<0.0?-m:m)+o*(o<0.0?-n:n);o=+f[j+96>>2];m=+f[k+96>>2];m=(p>o?p:o)+(n>m?n:m);return !((c*g+d*h+e*i+ml)|0}function Oh(b){b=b|0;var d=0,e=0,f=0,g=0;c[b>>2]=10036;a[b+20>>0]=1;c[b+16>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+24>>2]=0;a[b+28>>0]=0;a[b+48>>0]=1;c[b+44>>2]=0;c[b+36>>2]=0;c[b+40>>2]=0;a[b+68>>0]=1;c[b+64>>2]=0;c[b+56>>2]=0;c[b+60>>2]=0;c[b+72>>2]=0;c[6747]=(c[6747]|0)+1;d=kb(51)|0;if(!d)f=0;else{c[(d+4+15&-16)+-4>>2]=d;f=d+4+15&-16}d=c[b+8>>2]|0;if((d|0)>0){e=0;do{g=c[b+16>>2]|0;c[f+(e<<4)>>2]=c[g+(e<<4)>>2];c[f+(e<<4)+4>>2]=c[g+(e<<4)+4>>2];c[f+(e<<4)+8>>2]=c[g+(e<<4)+8>>2];c[f+(e<<4)+12>>2]=c[g+(e<<4)+12>>2];e=e+1|0}while((e|0)!=(d|0))}d=c[b+16>>2]|0;if(!d){a[b+20>>0]=1;c[b+16>>2]=f;c[b+12>>2]=2;Fe(b);return}if(a[b+20>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+16>>2]=0;a[b+20>>0]=1;c[b+16>>2]=f;c[b+12>>2]=2;Fe(b);return}function Ph(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=c[b+488>>2]|0;a:do if((e|0)>0){g=c[b+496>>2]|0;f=0;while(1){if((c[g+(f<<2)>>2]|0)==(d|0))break;f=f+1|0;if((f|0)>=(e|0))break a}if((f|0)!=(e|0)){b=b+256|0;c[b>>2]=1;return}}while(0);if((e|0)==(c[b+492>>2]|0)?(h=(e|0)==0?1:e<<1,(e|0)<(h|0)):0){if(!h)f=0;else{c[6747]=(c[6747]|0)+1;e=kb((h<<2|3)+16|0)|0;if(!e)f=0;else{c[(e+4+15&-16)+-4>>2]=e;f=e+4+15&-16}e=c[b+488>>2]|0}if((e|0)>0){g=0;do{c[f+(g<<2)>>2]=c[(c[b+496>>2]|0)+(g<<2)>>2];g=g+1|0}while((g|0)!=(e|0))}g=c[b+496>>2]|0;if(g){if(a[b+500>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0);e=c[b+488>>2]|0}c[b+496>>2]=0}a[b+500>>0]=1;c[b+496>>2]=f;c[b+492>>2]=h}c[(c[b+496>>2]|0)+(e<<2)>>2]=d;c[b+488>>2]=e+1;b=b+256|0;c[b>>2]=1;return} +function xc(b,d,e,g,h,i,j,k,l,m,n,o,p){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;var q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0,A=0,B=0,C=0,D=0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0;B=z(c[l+24>>2]|0,m)|0;y=a[d+44>>0]|0;C=c[d+56>>2]|0;if(!(y<<24>>24!=0|(C|0)!=0)){d=0;return d|0}D=c[(o|0?l+12|0:l+8|0)>>2]|0;m=c[(o|0?l+20|0:l+16|0)>>2]|0;c[D+(B<<2)>>2]=c[n>>2];c[D+(B+1<<2)>>2]=c[n+4>>2];c[D+(B+2<<2)>>2]=c[n+8>>2];f[m+(B<<2)>>2]=-+f[n>>2];f[m+(B+1<<2)>>2]=-+f[n+4>>2];f[m+(B+2<<2)>>2]=-+f[n+8>>2];do if(!o){q=+f[b+1176>>2];if(!(a[b+1301>>0]|0)){t=q-+f[e+48>>2];w=+f[b+1180>>2]-+f[e+52>>2];x=+f[b+1184>>2]-+f[e+56>>2];v=+f[n+8>>2];s=+f[n+4>>2];u=+f[n>>2];D=c[l+12>>2]|0;f[D+(B<<2)>>2]=w*v-x*s;f[D+(B+1<<2)>>2]=x*u-t*v;f[D+(B+2<<2)>>2]=t*s-w*u;u=+f[b+1176>>2]-+f[g+48>>2];w=+f[b+1180>>2]-+f[g+52>>2];s=+f[b+1184>>2]-+f[g+56>>2];t=+f[n+8>>2];v=+f[n+4>>2];x=+f[n>>2];D=c[l+20>>2]|0;f[D+(B<<2)>>2]=-(w*t-s*v);f[D+(B+1<<2)>>2]=-(s*x-u*t);f[D+(B+2<<2)>>2]=-(u*v-w*x);break}J=q-+f[g+48>>2];H=+f[b+1180>>2]-+f[g+52>>2];F=+f[b+1184>>2]-+f[g+56>>2];I=+f[n>>2];G=+f[n+4>>2];E=+f[n+8>>2];L=+f[b+1112>>2]-+f[e+48>>2];u=+f[b+1116>>2]-+f[e+52>>2];q=+f[b+1120>>2]-+f[e+56>>2];v=+f[d+52>>2]-+f[d+48>>2];K=I*(I*L+G*u+E*q)+I*v-I*(J*I+H*G+F*E);t=G*(I*L+G*u+E*q)+G*v-G*(J*I+H*G+F*E);v=E*(I*L+G*u+E*q)+E*v-E*(J*I+H*G+F*E);x=+f[b+1272>>2];w=+f[b+1276>>2];s=E*(u-G*(I*L+G*u+E*q)+x*t)-G*(q-E*(I*L+G*u+E*q)+x*v);r=I*(q-E*(I*L+G*u+E*q)+x*v)-E*(L-I*(I*L+G*u+E*q)+x*K);q=G*(L-I*(I*L+G*u+E*q)+x*K)-I*(u-G*(I*L+G*u+E*q)+x*t);u=E*(H-G*(J*I+H*G+F*E)-w*t)-G*(F-E*(J*I+H*G+F*E)-w*v);v=I*(F-E*(J*I+H*G+F*E)-w*v)-E*(J-I*(J*I+H*G+F*E)-w*K);t=G*(J-I*(J*I+H*G+F*E)-w*K)-I*(H-G*(J*I+H*G+F*E)-w*t);if(!((p|0)!=0|(a[b+1280>>0]|0)==0)){u=w*u;v=w*v;t=w*t;s=x*s;r=x*r;q=x*q}D=(c[l+12>>2]|0)+(B<<2)|0;f[D>>2]=s;f[D+4>>2]=r;f[D+8>>2]=q;D=c[l+20>>2]|0;f[D+(B<<2)>>2]=-u;f[D+(B+1<<2)>>2]=-v;f[D+(B+2<<2)>>2]=-t}while(0);if(C|0?+f[d>>2]==+f[d+4>>2]:0){m=(c[l+28>>2]|0)+(B<<2)|0;f[m>>2]=0.0;q=0.0}else A=11;do if((A|0)==11){m=(c[l+28>>2]|0)+(B<<2)|0;f[m>>2]=0.0;if(!(y<<24>>24)){if(C|0){q=0.0;break}else k=1;return k|0}c[(c[l+32>>2]|0)+(B<<2)>>2]=c[d+28>>2];if(C|0){q=+f[m>>2];break}v=+f[d+8>>2];t=o|0?v:-v;q=+f[d+52>>2];r=+f[d>>2];s=+f[d+4>>2];u=+f[l>>2]*+f[d+32>>2];do if(!(r>s))if(!(r==s)){if(t/u<0.0)if(q>=r?r-t/u>q:0){q=(r-q)/(t/u);break}else{q=q0.0)if(q<=s?s-t/us?0.0:1.0;break}else q=0.0}else q=0.0;else q=1.0;while(0);f[m>>2]=q*v+ +f[m>>2];f[(c[l+36>>2]|0)+(B<<2)>>2]=-+f[d+12>>2];c[(c[l+40>>2]|0)+(B<<2)>>2]=c[d+12>>2];D=1;return D|0}while(0);L=+f[l>>2]*+f[d+32>>2]*+f[d+48>>2];f[m>>2]=q+(o|0?-L:L);c[(c[l+32>>2]|0)+(B<<2)>>2]=c[d+36>>2];if(+f[d>>2]==+f[d+4>>2]){f[(c[l+36>>2]|0)+(B<<2)>>2]=-3402823466385288598117041.0e14;f[(c[l+40>>2]|0)+(B<<2)>>2]=3402823466385288598117041.0e14;D=1;return D|0}f[(c[l+36>>2]|0)+(B<<2)>>2]=(C|0)==1?0.0:-3402823466385288598117041.0e14;f[(c[l+40>>2]|0)+(B<<2)>>2]=(C|0)==1?3402823466385288598117041.0e14:0.0;v=+f[d+40>>2];if(!(v>0.0)){D=1;return D|0}if(o|0){L=+f[n>>2];u=+f[n+4>>2];q=+f[n+8>>2];r=q;s=u;t=L;u=+f[j>>2]*L+ +f[j+4>>2]*u;q=+f[j+8>>2]*q}else{L=+f[n>>2];u=+f[n+4>>2];q=+f[n+8>>2];r=q;s=u;t=L;u=+f[h>>2]*L+ +f[h+4>>2]*u;k=i;q=+f[h+8>>2]*q}q=u+q-(t*+f[k>>2]+s*+f[k+4>>2]+r*+f[k+8>>2]);if((C|0)==1){if(!(q<0.0)){D=1;return D|0}if(!(+f[m>>2]<-(v*q))){D=1;return D|0}f[m>>2]=-(v*q);D=1;return D|0}else{if(!(q>0.0)){D=1;return D|0}if(!(+f[m>>2]>-(v*q))){D=1;return D|0}f[m>>2]=-(v*q);D=1;return D|0}return 0}function yc(b,d,e,g,i,j){b=b|0;d=d|0;e=e|0;g=g|0;i=i|0;j=j|0;var k=0.0,l=0,m=0.0,n=0,o=0,p=0,q=0.0,r=0.0,s=0.0,t=0,u=0.0,v=0.0;t=ea;ea=ea+288|0;p=c[b+4>>2]|0;a[p+312>>0]=0;c[p>>2]=0;a[p+356>>0]=1;c[p+292>>2]=1566444395;c[p+296>>2]=1566444395;c[p+300>>2]=1566444395;f[p+304>>2]=0.0;c[p+336>>2]=0;c[p+336+4>>2]=0;c[p+336+8>>2]=0;c[p+336+12>>2]=0;a[p+336+16>>0]=0;a[p+332>>0]=a[p+332>>0]&-16;q=+f[e+48>>2]-+f[d+48>>2]-(+f[i+48>>2]-+f[g+48>>2]);s=+f[e+52>>2]-+f[d+52>>2]-(+f[i+52>>2]-+f[g+52>>2]);r=+f[e+56>>2]-+f[d+56>>2]-(+f[i+56>>2]-+f[g+56>>2]);c[t+216>>2]=10472;f[t+216+36>>2]=999999984306749440.0;a[t+216+40>>0]=0;p=c[b+8>>2]|0;o=c[b+12>>2]|0;n=c[b+4>>2]|0;c[t+136>>2]=10520;c[t+136+4>>2]=0;c[t+136+8>>2]=1065353216;c[t+136+12>>2]=0;f[t+136+16>>2]=0.0;c[t+136+20>>2]=0;c[t+136+24>>2]=n;c[t+136+28>>2]=p;c[t+136+32>>2]=o;c[t+136+36>>2]=c[p+4>>2];c[t+136+40>>2]=c[o+4>>2];f[t+136+44>>2]=+ha[c[(c[p>>2]|0)+48>>2]&15](p);f[t+136+48>>2]=+ha[c[(c[o>>2]|0)+48>>2]&15](o);a[t+136+52>>0]=0;c[t+136+60>>2]=-1;c[t+136+72>>2]=1;c[t+136+76>>2]=1;f[t+128>>2]=999999984306749440.0;c[t>>2]=c[d>>2];c[t+4>>2]=c[d+4>>2];c[t+8>>2]=c[d+8>>2];c[t+12>>2]=c[d+12>>2];c[t+16>>2]=c[d+16>>2];c[t+16+4>>2]=c[d+16+4>>2];c[t+16+8>>2]=c[d+16+8>>2];c[t+16+12>>2]=c[d+16+12>>2];c[t+32>>2]=c[d+32>>2];c[t+32+4>>2]=c[d+32+4>>2];c[t+32+8>>2]=c[d+32+8>>2];c[t+32+12>>2]=c[d+32+12>>2];c[t+48>>2]=c[d+48>>2];c[t+48+4>>2]=c[d+48+4>>2];c[t+48+8>>2]=c[d+48+8>>2];c[t+48+12>>2]=c[d+48+12>>2];c[t+64>>2]=c[g>>2];c[t+64+4>>2]=c[g+4>>2];c[t+64+8>>2]=c[g+8>>2];c[t+64+12>>2]=c[g+12>>2];c[t+80>>2]=c[g+16>>2];c[t+80+4>>2]=c[g+16+4>>2];c[t+80+8>>2]=c[g+16+8>>2];c[t+80+12>>2]=c[g+16+12>>2];c[t+96>>2]=c[g+32>>2];c[t+96+4>>2]=c[g+32+4>>2];c[t+96+8>>2]=c[g+32+8>>2];c[t+96+12>>2]=c[g+32+12>>2];c[t+112>>2]=c[g+48>>2];c[t+112+4>>2]=c[g+48+4>>2];c[t+112+8>>2]=c[g+48+8>>2];c[t+112+12>>2]=c[g+48+12>>2];Hb(t+136|0,t,t+216|0,0,0);o=(a[t+216+40>>0]|0)==0;p=t+216+20|0;c[t+264>>2]=c[p>>2];c[t+264+4>>2]=c[p+4>>2];c[t+264+8>>2]=c[p+8>>2];c[t+264+12>>2]=c[p+12>>2];if(o){j=0;ea=t;return j|0}m=+f[t+216+36>>2];k=+f[t+216+16>>2];b=c[t+216+12>>2]|0;l=c[t+216+8>>2]|0;n=c[t+216+4>>2]|0;do if(m>1.0000000474974513e-03){k=0.0;o=0;while(1){if(o>>>0>31){b=0;o=13;break}v=q*(c[h>>2]=n,+f[h>>2]);v=s*(c[h>>2]=l,+f[h>>2])+v;u=k;k=k-m/(r*(c[h>>2]=b,+f[h>>2])+v);if(!(!(k<=u)&(!(k<0.0)&!(k>1.0)))){b=0;o=13;break}Da[c[c[j>>2]>>2]&31](j,k);v=1.0-k;f[t+48>>2]=v*+f[d+48>>2]+k*+f[e+48>>2];f[t+52>>2]=v*+f[d+52>>2]+k*+f[e+52>>2];f[t+56>>2]=v*+f[d+56>>2]+k*+f[e+56>>2];f[t+112>>2]=v*+f[g+48>>2]+k*+f[i+48>>2];f[t+116>>2]=v*+f[g+52>>2]+k*+f[i+52>>2];f[t+120>>2]=v*+f[g+56>>2]+k*+f[i+56>>2];Hb(t+136|0,t,t+216|0,0,0);if(!(a[t+216+40>>0]|0)){b=0;o=13;break}m=+f[t+216+36>>2];if(m<0.0){o=8;break}c[t+264>>2]=c[p>>2];c[t+264+4>>2]=c[p+4>>2];c[t+264+8>>2]=c[p+8>>2];c[t+264+12>>2]=c[p+12>>2];b=c[t+216+12>>2]|0;l=c[t+216+8>>2]|0;n=c[t+216+4>>2]|0;if(!(m>1.0000000474974513e-03)){o=10;break}else o=o+1|0}if((o|0)==8){f[j+164>>2]=k;g=c[t+216+8>>2]|0;e=c[t+216+12>>2]|0;i=c[t+216+16>>2]|0;c[j+132>>2]=c[t+216+4>>2];c[j+136>>2]=g;c[j+140>>2]=e;c[j+144>>2]=i;c[j+148>>2]=c[p>>2];c[j+148+4>>2]=c[p+4>>2];c[j+148+8>>2]=c[p+8>>2];c[j+148+12>>2]=c[p+12>>2];j=1;ea=t;return j|0}else if((o|0)==10){m=k;k=+f[t+216+16>>2];break}else if((o|0)==13){ea=t;return b|0}}else m=0.0;while(0);v=q*(c[h>>2]=n,+f[h>>2]);v=s*(c[h>>2]=l,+f[h>>2])+v;if(r*(c[h>>2]=b,+f[h>>2])+v>=-+f[j+172>>2]){j=0;ea=t;return j|0}f[j+164>>2]=m;c[j+132>>2]=n;c[j+136>>2]=l;c[j+140>>2]=b;f[j+144>>2]=k;c[j+148>>2]=c[t+264>>2];c[j+148+4>>2]=c[t+264+4>>2];c[j+148+8>>2]=c[t+264+8>>2];c[j+148+12>>2]=c[t+264+12>>2];j=1;ea=t;return j|0}function zc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0,K=0;l=ea;ea=ea+240|0;c[a+4>>2]=(c[a+4>>2]|0)+1;j=c[b+36>>2]|0;i=c[d+36>>2]|0;J=c[a+8>>2]|0;g=c[a+12>>2]|0;K=c[(c[J+4>>2]|0)+24>>2]|0;d=c[K+(j*80|0)+64>>2]|0;b=(c[g+4>>2]|0)+24|0;e=c[(c[b>>2]|0)+(i*80|0)+64>>2]|0;J=c[J+12>>2]|0;m=+f[J>>2];H=+f[J+4>>2];I=+f[J+8>>2];p=+f[J+16>>2];r=+f[J+20>>2];t=+f[J+24>>2];q=+f[J+32>>2];u=+f[J+36>>2];C=+f[J+40>>2];v=+f[K+(j*80|0)>>2];w=+f[K+(j*80|0)+16>>2];x=+f[K+(j*80|0)+32>>2];y=+f[K+(j*80|0)+4>>2];z=+f[K+(j*80|0)+20>>2];A=+f[K+(j*80|0)+36>>2];s=+f[K+(j*80|0)+8>>2];B=+f[K+(j*80|0)+24>>2];D=+f[K+(j*80|0)+40>>2];n=+f[K+(j*80|0)+48>>2];o=+f[K+(j*80|0)+52>>2];G=+f[K+(j*80|0)+56>>2];E=+f[J+48>>2]+(m*n+H*o+I*G);F=+f[J+52>>2]+(p*n+r*o+t*G);G=+f[J+56>>2]+(q*n+u*o+C*G);f[l+176>>2]=m*v+H*w+I*x;f[l+176+4>>2]=m*y+H*z+I*A;f[l+176+8>>2]=m*s+H*B+I*D;f[l+176+12>>2]=0.0;f[l+176+16>>2]=p*v+r*w+t*x;f[l+176+20>>2]=p*y+r*z+t*A;f[l+176+24>>2]=p*s+r*B+t*D;f[l+176+28>>2]=0.0;f[l+176+32>>2]=q*v+u*w+C*x;f[l+176+36>>2]=q*y+u*z+C*A;f[l+176+40>>2]=q*s+u*B+C*D;f[l+176+44>>2]=0.0;f[l+176+48>>2]=E;f[l+176+52>>2]=F;f[l+176+56>>2]=G;f[l+176+60>>2]=0.0;g=c[g+12>>2]|0;G=+f[g>>2];F=+f[g+4>>2];E=+f[g+8>>2];D=+f[g+16>>2];C=+f[g+20>>2];B=+f[g+24>>2];u=+f[g+32>>2];s=+f[g+36>>2];q=+f[g+40>>2];b=c[b>>2]|0;A=+f[b+(i*80|0)>>2];z=+f[b+(i*80|0)+16>>2];y=+f[b+(i*80|0)+32>>2];x=+f[b+(i*80|0)+4>>2];w=+f[b+(i*80|0)+20>>2];v=+f[b+(i*80|0)+36>>2];t=+f[b+(i*80|0)+8>>2];r=+f[b+(i*80|0)+24>>2];p=+f[b+(i*80|0)+40>>2];I=+f[b+(i*80|0)+48>>2];H=+f[b+(i*80|0)+52>>2];m=+f[b+(i*80|0)+56>>2];o=+f[g+48>>2]+(G*I+F*H+E*m);n=+f[g+52>>2]+(D*I+C*H+B*m);m=+f[g+56>>2]+(u*I+s*H+q*m);f[l+112>>2]=G*A+F*z+E*y;f[l+112+4>>2]=G*x+F*w+E*v;f[l+112+8>>2]=G*t+F*r+E*p;f[l+112+12>>2]=0.0;f[l+112+16>>2]=D*A+C*z+B*y;f[l+112+20>>2]=D*x+C*w+B*v;f[l+112+24>>2]=D*t+C*r+B*p;f[l+112+28>>2]=0.0;f[l+112+32>>2]=u*A+s*z+q*y;f[l+112+36>>2]=u*x+s*w+q*v;f[l+112+40>>2]=u*t+s*r+q*p;f[l+112+44>>2]=0.0;f[l+112+48>>2]=o;f[l+112+52>>2]=n;f[l+112+56>>2]=m;f[l+112+60>>2]=0.0;Pa[c[(c[d>>2]|0)+8>>2]&127](d,l+176|0,l+96|0,l+80|0);Pa[c[(c[e>>2]|0)+8>>2]&127](e,l+112|0,l+64|0,l+48|0);if(!(+f[l+96>>2]>+f[l+48>>2])?!(+f[l+80>>2]<+f[l+64>>2]):0)b=1;else b=0;if(!(!(+f[l+96+8>>2]>+f[l+48+8>>2])?!(+f[l+80+8>>2]<+f[l+64+8>>2]):0))b=0;if(+f[l+96+4>>2]>+f[l+48+4>>2]){ea=l;return}if(+f[l+80+4>>2]<+f[l+64+4>>2]|b^1){ea=l;return}g=c[a+8>>2]|0;b=c[g+8>>2]|0;c[l+24>>2]=g;c[l+24+4>>2]=d;c[l+24+8>>2]=b;c[l+24+12>>2]=l+176;c[l+24+16>>2]=-1;c[l+24+20>>2]=j;b=c[a+12>>2]|0;g=c[b+8>>2]|0;c[l>>2]=b;c[l+4>>2]=e;c[l+8>>2]=g;c[l+12>>2]=l+112;c[l+16>>2]=-1;c[l+20>>2]=i;g=c[a+28>>2]|0;c[6735]=(c[6735]|0)+1;b=(i<<16|j)+~((i<<16|j)<<15)|0;b=((10?b>>10:b)^b)*9|0;b=(6?b>>6:b)^b;b=(c[g+12>>2]|0)+-1&((16?b+~(b<<11)>>16:b+~(b<<11)|0)^b+~(b<<11));a:do if((b|0)<(c[g+32>>2]|0)?(h=c[(c[g+40>>2]|0)+(b<<2)>>2]|0,(h|0)!=-1):0){e=c[g+16>>2]|0;b=h;while(1){d=e+(b*12|0)|0;if((c[d>>2]|0)==(j|0)?(c[e+(b*12|0)+4>>2]|0)==(i|0):0)break;b=c[(c[g+60>>2]|0)+(b<<2)>>2]|0;if((b|0)==-1){k=16;break a}}if(d)b=c[e+(b*12|0)+8>>2]|0;else k=16}else k=16;while(0);if((k|0)==16){b=c[a+16>>2]|0;b=wa[c[(c[b>>2]|0)+8>>2]&31](b,l+24|0,l,c[a+32>>2]|0)|0;K=c[a+28>>2]|0;c[(va[c[(c[K>>2]|0)+12>>2]&63](K,j,i)|0)+8>>2]=b}K=c[a+24>>2]|0;k=c[K+8>>2]|0;J=c[K+12>>2]|0;c[K+8>>2]=l+24;c[K+12>>2]=l;Ma[c[(c[K>>2]|0)+8>>2]&127](K,-1,j);K=c[a+24>>2]|0;Ma[c[(c[K>>2]|0)+12>>2]&127](K,-1,i);Ta[c[(c[b>>2]|0)+8>>2]&31](b,l+24|0,l,c[a+20>>2]|0,c[a+24>>2]|0);K=c[a+24>>2]|0;c[K+8>>2]=k;c[K+12>>2]=J;ea=l;return}function Ac(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,g=0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0,p=0.0,q=0.0,r=0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0;z=ea;ea=ea+48|0;switch(c[b+4>>2]|0){case 8:{c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;ea=z;return}case 0:{w=+f[b+28>>2];x=+f[b+28+4>>2];x=+f[d+4>>2]>=0.0?x:-x;y=+f[b+28+8>>2];y=+f[d+8>>2]>=0.0?y:-y;f[a>>2]=+f[d>>2]>=0.0?w:-w;f[a+4>>2]=x;f[a+8>>2]=y;f[a+12>>2]=0.0;ea=z;return}case 1:{u=+f[d>>2];v=+f[d+4>>2];y=+f[d+8>>2];x=u*+f[b+56>>2]+v*+f[b+56+4>>2]+y*+f[b+56+8>>2];w=u*+f[b+56+16>>2]+v*+f[b+56+20>>2]+y*+f[b+56+24>>2];y=u*+f[b+56+32>>2]+v*+f[b+56+36>>2]+y*+f[b+56+40>>2];n=x>2]|0;r=c[b+56+(n<<4)+8>>2]|0;c[a>>2]=c[b+56+(n<<4)>>2];c[a+4>>2]=o;c[a+8>>2]=r;f[a+12>>2]=0.0;ea=z;return}case 13:{c[z+32>>2]=c[b+28>>2];c[z+32+4>>2]=c[b+28+4>>2];c[z+32+8>>2]=c[b+28+8>>2];c[z+32+12>>2]=c[b+28+12>>2];c[z+16>>2]=c[d>>2];g=c[d+4>>2]|0;c[z+16+4>>2]=g;r=c[d+8>>2]|0;c[z+16+8>>2]=r;f[z+16+12>>2]=0.0;d=c[b+52>>2]|0;e=(c[h>>2]=r,+f[h>>2]);switch(d|0){case 2:{e=(c[h>>2]=g,+f[h>>2]);g=0;b=2;n=1;break}case 1:{g=0;b=1;n=2;break}default:{g=1;b=0;n=2}}m=+f[z+32+(g<<2)>>2];i=+f[z+32+(d<<2)>>2];k=+f[z+16+(g<<2)>>2];l=+s(+(k*k+e*e));if(l!=0.0){j=e*(m/l);i=+f[z+16+(b<<2)>>2]<0.0?-i:i;e=k*(m/l)}else{j=0.0;i=+f[z+16+(b<<2)>>2]<0.0?-i:i;e=m}f[z+(g<<2)>>2]=e;f[z+(b<<2)>>2]=i;f[z+(n<<2)>>2]=j;c[a>>2]=c[z>>2];c[a+4>>2]=c[z+4>>2];c[a+8>>2]=c[z+8>>2];f[a+12>>2]=0.0;ea=z;return}case 10:{e=+f[d>>2];i=+f[d+4>>2];j=+f[d+8>>2];g=c[b+52>>2]|0;x=+f[b+28+(g<<2)>>2];k=+f[b+28+(((g+2|0)%3|0)<<2)>>2];if(e*e+i*i+j*j<9.999999747378752e-05){y=1.0;w=0.0;v=0.0}else{v=1.0/+s(+(e*e+i*i+j*j));y=e*v;w=i*v;v=j*v}c[z+32>>2]=0;c[z+32+4>>2]=0;c[z+32+8>>2]=0;c[z+32+12>>2]=0;f[z+32+(g<<2)>>2]=x;t=k*y;u=k*w;q=k*v;p=+f[b+44>>2];l=y*p;m=w*p;p=v*p;k=t+ +f[z+32>>2]-l;j=u+ +f[z+32+4>>2]-m;i=q+ +f[z+32+8>>2]-p;e=v*i+(y*k+w*j);if(e>-999999984306749440.0){o=(f[h>>2]=i,c[h>>2]|0);r=(f[h>>2]=j,c[h>>2]|0);i=e;n=(f[h>>2]=k,c[h>>2]|0)}else{i=-999999984306749440.0;n=0;o=0;r=0}c[z+32>>2]=0;c[z+32+4>>2]=0;c[z+32+8>>2]=0;c[z+32+12>>2]=0;f[z+32+(g<<2)>>2]=-x;t=t+ +f[z+32>>2]-l;x=u+ +f[z+32+4>>2]-m;e=q+ +f[z+32+8>>2]-p;b=y*t+w*x+v*e>i;g=(f[h>>2]=t,c[h>>2]|0);d=(f[h>>2]=x,c[h>>2]|0);o=b?(f[h>>2]=e,c[h>>2]|0):o;c[a>>2]=b?g:n;c[a+4>>2]=b?d:r;c[a+8>>2]=o;f[a+12>>2]=0.0;ea=z;return}case 5:{o=c[b+92>>2]|0;n=c[b+96>>2]|0;p=+f[b+12>>2];q=+f[b+16>>2];m=+f[b+20>>2];k=+f[d>>2]*p;l=+f[d+4>>2]*q;j=+f[d+8>>2]*m;if((n|0)>0){b=0;i=-3402823466385288598117041.0e14;g=-1;while(1){e=k*+f[o+(b<<4)>>2]+l*+f[o+(b<<4)+4>>2]+j*+f[o+(b<<4)+8>>2];d=e>i;g=d?b:g;b=b+1|0;if((b|0)==(n|0))break;else i=d?e:i}}else g=-1;x=q*+f[o+(g<<4)+4>>2];y=m*+f[o+(g<<4)+8>>2];f[a>>2]=p*+f[o+(g<<4)>>2];f[a+4>>2]=x;f[a+8>>2]=y;f[a+12>>2]=0.0;ea=z;return}case 4:{o=c[b+104>>2]|0;n=c[b+96>>2]|0;p=+f[b+12>>2];q=+f[b+16>>2];m=+f[b+20>>2];k=+f[d>>2]*p;l=+f[d+4>>2]*q;j=+f[d+8>>2]*m;if((n|0)>0){b=0;i=-3402823466385288598117041.0e14;g=-1;while(1){e=k*+f[o+(b<<4)>>2]+l*+f[o+(b<<4)+4>>2]+j*+f[o+(b<<4)+8>>2];d=e>i;g=d?b:g;b=b+1|0;if((b|0)==(n|0))break;else i=d?e:i}}else g=-1;x=q*+f[o+(g<<4)+4>>2];y=m*+f[o+(g<<4)+8>>2];f[a>>2]=p*+f[o+(g<<4)>>2];f[a+4>>2]=x;f[a+8>>2]=y;f[a+12>>2]=0.0;ea=z;return}default:{Ma[c[(c[b>>2]|0)+68>>2]&127](a,b,d);ea=z;return}}}function Bc(b,d,e,g,i,j){b=b|0;d=d|0;e=e|0;g=g|0;i=i|0;j=j|0;var k=0,l=0,m=0.0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0,C=0,D=0;D=c[b+88>>2]|0;if((D|0)==(c[b+92>>2]|0)?(o=(D|0)==0?1:D<<1,(D|0)<(o|0)):0){if(!o){l=D;n=0}else{c[6747]=(c[6747]|0)+1;k=kb((o*152|3)+16|0)|0;if(!k)k=0;else{c[(k+4+15&-16)+-4>>2]=k;k=k+4+15&-16}l=c[b+88>>2]|0;n=k}if((l|0)>0){k=0;do{vh(n+(k*152|0)|0,(c[b+96>>2]|0)+(k*152|0)|0,152)|0;k=k+1|0}while((k|0)!=(l|0))}k=c[b+96>>2]|0;if(k|0){if(a[b+100>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[k+-4>>2]|0)}c[b+96>>2]=0}a[b+100>>0]=1;c[b+96>>2]=n;c[b+92>>2]=o;k=c[b+88>>2]|0}else k=D;c[b+88>>2]=k+1;C=c[b+96>>2]|0;c[C+(D*152|0)+140>>2]=i;c[C+(D*152|0)+16>>2]=0;c[C+(D*152|0)+16+4>>2]=0;c[C+(D*152|0)+16+8>>2]=0;c[C+(D*152|0)+16+12>>2]=0;f[C+(D*152|0)+48>>2]=-0.0;f[C+(D*152|0)+52>>2]=-0.0;f[C+(D*152|0)+56>>2]=-0.0;f[C+(D*152|0)+60>>2]=0.0;b=c[b+16>>2]|0;o=c[b+(e*244|0)+240>>2]|0;B=c[b+(g*244|0)+240>>2]|0;c[C+(D*152|0)+144>>2]=e;c[C+(D*152|0)+148>>2]=g;i=c[j+88>>2]|0;c[C+(D*152|0)+104>>2]=i;c[C+(D*152|0)+132>>2]=0;f[C+(D*152|0)+100>>2]=0.0;f[C+(D*152|0)+96>>2]=0.0;x=-+f[d>>2];y=-+f[d+4>>2];z=-+f[d+8>>2];f[C+(D*152|0)>>2]=x;f[C+(D*152|0)+4>>2]=y;f[C+(D*152|0)+8>>2]=z;f[C+(D*152|0)+12>>2]=0.0;A=(c[h>>2]=i,+f[h>>2]);if(o|0){k=(f[h>>2]=(+f[o+264>>2]*x+ +f[o+268>>2]*y+ +f[o+272>>2]*z)*+f[o+544>>2],c[h>>2]|0);l=(f[h>>2]=(+f[o+280>>2]*x+ +f[o+284>>2]*y+ +f[o+288>>2]*z)*+f[o+548>>2],c[h>>2]|0);n=(f[h>>2]=(+f[o+296>>2]*x+ +f[o+300>>2]*y+ +f[o+304>>2]*z)*+f[o+552>>2],c[h>>2]|0)}else{k=0;l=0;n=0}c[C+(D*152|0)+64>>2]=k;c[C+(D*152|0)+68>>2]=l;c[C+(D*152|0)+72>>2]=n;f[C+(D*152|0)+76>>2]=0.0;u=+f[d>>2];v=+f[d+4>>2];w=+f[d+8>>2];d=c[d+12>>2]|0;f[C+(D*152|0)+32>>2]=u;f[C+(D*152|0)+36>>2]=v;f[C+(D*152|0)+40>>2]=w;c[C+(D*152|0)+44>>2]=d;if(B|0){k=(f[h>>2]=(u*+f[B+264>>2]+v*+f[B+268>>2]+w*+f[B+272>>2])*+f[B+544>>2],c[h>>2]|0);l=(f[h>>2]=(u*+f[B+280>>2]+v*+f[B+284>>2]+w*+f[B+288>>2])*+f[B+548>>2],c[h>>2]|0);n=(f[h>>2]=(u*+f[B+296>>2]+v*+f[B+300>>2]+w*+f[B+304>>2])*+f[B+552>>2],c[h>>2]|0)}else{k=0;l=0;n=0}c[C+(D*152|0)+80>>2]=k;c[C+(D*152|0)+84>>2]=l;c[C+(D*152|0)+88>>2]=n;f[C+(D*152|0)+92>>2]=0.0;if(o|0){m=+f[o+264>>2]*x+ +f[o+268>>2]*y+ +f[o+272>>2]*z;p=+f[o+280>>2]*x+ +f[o+284>>2]*y+ +f[o+288>>2]*z;q=+f[o+296>>2]*x+ +f[o+300>>2]*y+ +f[o+304>>2]*z}else{m=0.0;p=0.0;q=0.0}if(B|0){r=+f[B+264>>2]*u+ +f[B+268>>2]*v+ +f[B+272>>2]*w;s=u*+f[B+280>>2]+v*+f[B+284>>2]+w*+f[B+288>>2];t=u*+f[B+296>>2]+v*+f[B+300>>2]+w*+f[B+304>>2]}else{r=0.0;s=0.0;t=0.0}s=1.0/(m*x+p*y+q*z+0.0+(r*u+s*v+t*w));f[C+(D*152|0)+108>>2]=s;if(o|0){p=+f[b+(e*244|0)+192>>2];q=+f[b+(e*244|0)+196>>2];r=+f[b+(e*244|0)+200>>2];m=(+f[b+(e*244|0)+176>>2]+ +f[b+(e*244|0)+208>>2])*0.0+(+f[b+(e*244|0)+180>>2]+ +f[b+(e*244|0)+212>>2])*0.0+(+f[b+(e*244|0)+184>>2]+ +f[b+(e*244|0)+216>>2])*0.0}else{p=0.0;q=0.0;r=0.0;m=0.0}m=m+(r*z+(q*y+p*x));if(!B){z=0.0;t=0.0;x=0.0;y=-0.0;z=u*z;v=v*t;z=v+z;x=w*x;z=x+z;z=y+z;z=m+z;z=0.0-z;z=s*z;g=C+(D*152|0)+112|0;f[g>>2]=z;g=C+(D*152|0)+116|0;f[g>>2]=0.0;A=-A;g=C+(D*152|0)+120|0;f[g>>2]=A;g=C+(D*152|0)+124|0;c[g>>2]=i;return}z=+f[b+(g*244|0)+192>>2];t=+f[b+(g*244|0)+196>>2];x=+f[b+(g*244|0)+200>>2];y=(+f[b+(g*244|0)+176>>2]+ +f[b+(g*244|0)+208>>2])*-0.0+(+f[b+(g*244|0)+180>>2]+ +f[b+(g*244|0)+212>>2])*-0.0+(+f[b+(g*244|0)+184>>2]+ +f[b+(g*244|0)+216>>2])*-0.0;z=u*z;v=v*t;z=v+z;x=w*x;z=x+z;z=y+z;z=m+z;z=0.0-z;z=s*z;g=C+(D*152|0)+112|0;f[g>>2]=z;g=C+(D*152|0)+116|0;f[g>>2]=0.0;A=-A;g=C+(D*152|0)+120|0;f[g>>2]=A;g=C+(D*152|0)+124|0;c[g>>2]=i;return}function Cc(b,d){b=b|0;d=d|0;var e=0,g=0.0,i=0,j=0,k=0,l=0.0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0;m=ea;ea=ea+16|0;c[b+236>>2]=2;c[b+312>>2]=0;c[b+312+4>>2]=0;c[b+312+8>>2]=0;c[b+312+12>>2]=0;c[b+312+16>>2]=0;c[b+312+20>>2]=0;c[b+312+24>>2]=0;c[b+312+28>>2]=0;c[b+544>>2]=1065353216;c[b+548>>2]=1065353216;c[b+552>>2]=1065353216;f[b+556>>2]=0.0;c[b+348>>2]=1065353216;c[b+352>>2]=1065353216;c[b+356>>2]=1065353216;e=b+360|0;i=e+36|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(i|0));c[b+412>>2]=0;c[b+412+4>>2]=0;c[b+412+8>>2]=0;c[b+412+12>>2]=0;c[b+412+16>>2]=0;c[b+412+20>>2]=0;c[b+412+24>>2]=0;c[b+412+28>>2]=0;g=+f[d+92>>2];l=+f[d+96>>2];f[m+12>>2]=g;f[m+8>>2]=l;f[m+4>>2]=0.0;f[m>>2]=1.0;c[b+444>>2]=c[(g<0.0?m+4|0:g>1.0?m:m+12|0)>>2];f[m+4>>2]=0.0;f[m>>2]=1.0;c[b+448>>2]=c[(l<0.0?m+4|0:l>1.0?m:m+8|0)>>2];c[b+472>>2]=c[d+112>>2];c[b+476>>2]=c[d+116>>2];e=c[d+4>>2]|0;c[b+480>>2]=e;c[b+608>>2]=0;c[b+612>>2]=0;a[b+452>>0]=a[d+120>>0]|0;c[b+456>>2]=c[d+124>>2];c[b+460>>2]=c[d+128>>2];c[b+464>>2]=c[d+132>>2];c[b+468>>2]=c[d+136>>2];if(!e){c[b+4>>2]=c[d+8>>2];c[b+4+4>>2]=c[d+8+4>>2];c[b+4+8>>2]=c[d+8+8>>2];c[b+4+12>>2]=c[d+8+12>>2];c[b+20>>2]=c[d+24>>2];c[b+20+4>>2]=c[d+24+4>>2];c[b+20+8>>2]=c[d+24+8>>2];c[b+20+12>>2]=c[d+24+12>>2];c[b+36>>2]=c[d+40>>2];c[b+36+4>>2]=c[d+40+4>>2];c[b+36+8>>2]=c[d+40+8>>2];c[b+36+12>>2]=c[d+40+12>>2];c[b+52>>2]=c[d+56>>2];c[b+52+4>>2]=c[d+56+4>>2];c[b+52+8>>2]=c[d+56+8>>2];c[b+52+12>>2]=c[d+56+12>>2];e=b+20|0;i=b+36|0;j=b+52|0;k=b+4|0}else{Ia[c[(c[e>>2]|0)+8>>2]&127](e,b+4|0);e=b+20|0;i=b+36|0;j=b+52|0;k=b+4|0}c[b+68>>2]=c[k>>2];c[b+68+4>>2]=c[k+4>>2];c[b+68+8>>2]=c[k+8>>2];c[b+68+12>>2]=c[k+12>>2];c[b+84>>2]=c[e>>2];c[b+84+4>>2]=c[e+4>>2];c[b+84+8>>2]=c[e+8>>2];c[b+84+12>>2]=c[e+12>>2];c[b+100>>2]=c[i>>2];c[b+100+4>>2]=c[i+4>>2];c[b+100+8>>2]=c[i+8>>2];c[b+100+12>>2]=c[i+12>>2];c[b+116>>2]=c[j>>2];c[b+116+4>>2]=c[j+4>>2];c[b+116+8>>2]=c[j+8>>2];c[b+116+12>>2]=c[j+12>>2];c[b+132>>2]=0;c[b+132+4>>2]=0;c[b+132+8>>2]=0;c[b+132+12>>2]=0;c[b+132+16>>2]=0;c[b+132+20>>2]=0;c[b+132+24>>2]=0;c[b+132+28>>2]=0;c[b+224>>2]=c[d+100>>2];c[b+232>>2]=c[d+104>>2];c[b+228>>2]=c[d+108>>2];Ia[c[(c[b>>2]|0)+12>>2]&127](b,c[d+72>>2]|0);e=c[6408]|0;c[6408]=e+1;c[b+508>>2]=e;g=+f[d>>2];e=c[b+204>>2]|0;if(g==0.0){c[b+204>>2]=e|1;l=0.0}else{c[b+204>>2]=e&-2;l=1.0/g}f[b+344>>2]=l;o=g*+f[b+384>>2];n=g*+f[b+388>>2];f[b+364>>2]=g*+f[b+380>>2];f[b+368>>2]=o;f[b+372>>2]=n;f[b+376>>2]=0.0;g=+f[d+76>>2];i=g!=0.0?(f[h>>2]=1.0/g,c[h>>2]|0):0;g=+f[d+80>>2];e=g!=0.0?(f[h>>2]=1.0/g,c[h>>2]|0):0;g=+f[d+84>>2];d=g!=0.0?(f[h>>2]=1.0/g,c[h>>2]|0):0;c[b+396>>2]=i;c[b+400>>2]=e;c[b+404>>2]=d;f[b+408>>2]=0.0;q=l*+f[b+352>>2];x=l*+f[b+356>>2];f[b+560>>2]=l*+f[b+348>>2];f[b+564>>2]=q;f[b+568>>2]=x;f[b+572>>2]=0.0;x=+f[b+4>>2];q=(c[h>>2]=i,+f[h>>2]);w=+f[b+8>>2];g=(c[h>>2]=e,+f[h>>2]);v=+f[b+12>>2];n=(c[h>>2]=d,+f[h>>2]);u=+f[b+20>>2];t=+f[b+24>>2];s=+f[b+28>>2];r=+f[b+36>>2];p=+f[b+40>>2];o=+f[b+44>>2];f[b+264>>2]=x*(x*q)+w*(w*g)+v*(v*n);f[b+268>>2]=x*q*u+w*g*t+v*n*s;f[b+272>>2]=x*q*r+w*g*p+v*n*o;f[b+276>>2]=0.0;f[b+280>>2]=x*(u*q)+w*(t*g)+v*(s*n);f[b+284>>2]=u*(u*q)+t*(t*g)+s*(s*n);f[b+288>>2]=u*q*r+t*g*p+s*n*o;f[b+292>>2]=0.0;f[b+296>>2]=x*(r*q)+w*(p*g)+v*(o*n);f[b+300>>2]=u*(r*q)+t*(p*g)+s*(o*n);f[b+304>>2]=r*(r*q)+p*(p*g)+o*(o*n);f[b+308>>2]=0.0;c[b+504>>2]=0;c[b+512>>2]=0;c[b+512+4>>2]=0;c[b+512+8>>2]=0;c[b+512+12>>2]=0;c[b+512+16>>2]=0;c[b+512+20>>2]=0;c[b+512+24>>2]=0;c[b+512+28>>2]=0;n=l*+f[b+352>>2];o=l*+f[b+356>>2];f[b+560>>2]=l*+f[b+348>>2];f[b+564>>2]=n;f[b+568>>2]=o;e=b+572|0;i=e+36|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(i|0));ea=m;return}function Dc(a,b,d,e,g,h){a=a|0;b=+b;d=+d;e=e|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0;p=ea;ea=ea+704|0;l=MI(g)|0;m=+f[l>>2];n=+f[l+4>>2];o=+f[l+8>>2];f[p+680>>2]=0.0;f[p+676>>2]=0.0;f[p+672>>2]=0.0;qs(p+688|0,p+680|0,p+676|0,p+672|0);f[(NJ(p+688|0)|0)+(e<<2)>>2]=d*.5;f[p+648>>2]=0.0;f[p+644>>2]=0.0;f[p+640>>2]=0.0;qs(p+656|0,p+648|0,p+644|0,p+640|0);f[(NJ(p+656|0)|0)+(((e+1|0)%3|0)<<2)>>2]=b;f[p+616>>2]=0.0;f[p+612>>2]=0.0;f[p+608>>2]=0.0;qs(p+624|0,p+616|0,p+612|0,p+608|0);f[(NJ(p+624|0)|0)+(((e+2|0)%3|0)<<2)>>2]=b;f[p+584>>2]=0.0;f[p+580>>2]=0.0;f[p+576>>2]=0.0;qs(p+592|0,p+584|0,p+580|0,p+576|0);l=NJ(p+592|0)|0;f[l+(e<<2)>>2]=-(d*.5);j=p+688+4|0;k=p+688+8|0;i=0;while(1){if(i>>>0>=360)break;d=+(i|0)*.01745329238474369;f[l+(((e+1|0)%3|0)<<2)>>2]=+CJ(d)*b;f[l+(((e+2|0)%3|0)<<2)>>2]=+DJ(d)*b;q=c[(c[a>>2]|0)+8>>2]|0;r=NJ(g)|0;ql(p+544|0,r,+f[p+688>>2],+f[j>>2],+f[k>>2]);vp(p+560|0,m,n,o,+f[p+544>>2],+f[p+544+4>>2],+f[p+544+8>>2]);ql(p+512|0,r,+f[p+592>>2],+f[p+592+4>>2],+f[p+592+8>>2]);vp(p+528|0,m,n,o,+f[p+512>>2],+f[p+512+4>>2],+f[p+512+8>>2]);Pa[q&127](a,p+560|0,p+528|0,h);i=i+30|0}r=c[(c[a>>2]|0)+8>>2]|0;q=NJ(g)|0;ql(p+480|0,q,+f[p+688>>2],+f[j>>2],+f[k>>2]);vp(p+496|0,m,n,o,+f[p+480>>2],+f[p+480+4>>2],+f[p+480+8>>2]);Sq(p+416|0,+f[p+688>>2],+f[j>>2],+f[k>>2]);vp(p+432|0,+f[p+416>>2],+f[p+416+4>>2],+f[p+416+8>>2],+f[p+656>>2],+f[p+656+4>>2],+f[p+656+8>>2]);ql(p+448|0,q,+f[p+432>>2],+f[p+432+4>>2],+f[p+432+8>>2]);vp(p+464|0,m,n,o,+f[p+448>>2],+f[p+448+4>>2],+f[p+448+8>>2]);Pa[r&127](a,p+496|0,p+464|0,h);r=c[(c[a>>2]|0)+8>>2]|0;ql(p+384|0,q,+f[p+688>>2],+f[j>>2],+f[k>>2]);vp(p+400|0,m,n,o,+f[p+384>>2],+f[p+384+4>>2],+f[p+384+8>>2]);Sq(p+320|0,+f[p+688>>2],+f[j>>2],+f[k>>2]);xp(p+336|0,+f[p+320>>2],+f[p+320+4>>2],+f[p+320+8>>2],+f[p+656>>2],+f[p+656+4>>2],+f[p+656+8>>2]);ql(p+352|0,q,+f[p+336>>2],+f[p+336+4>>2],+f[p+336+8>>2]);vp(p+368|0,m,n,o,+f[p+352>>2],+f[p+352+4>>2],+f[p+352+8>>2]);Pa[r&127](a,p+400|0,p+368|0,h);r=c[(c[a>>2]|0)+8>>2]|0;ql(p+288|0,q,+f[p+688>>2],+f[j>>2],+f[k>>2]);vp(p+304|0,m,n,o,+f[p+288>>2],+f[p+288+4>>2],+f[p+288+8>>2]);Sq(p+224|0,+f[p+688>>2],+f[j>>2],+f[k>>2]);vp(p+240|0,+f[p+224>>2],+f[p+224+4>>2],+f[p+224+8>>2],+f[p+624>>2],+f[p+624+4>>2],+f[p+624+8>>2]);ql(p+256|0,q,+f[p+240>>2],+f[p+240+4>>2],+f[p+240+8>>2]);vp(p+272|0,m,n,o,+f[p+256>>2],+f[p+256+4>>2],+f[p+256+8>>2]);Pa[r&127](a,p+304|0,p+272|0,h);r=c[(c[a>>2]|0)+8>>2]|0;ql(p+192|0,q,+f[p+688>>2],+f[j>>2],+f[k>>2]);vp(p+208|0,m,n,o,+f[p+192>>2],+f[p+192+4>>2],+f[p+192+8>>2]);Sq(p+128|0,+f[p+688>>2],+f[j>>2],+f[k>>2]);xp(p+144|0,+f[p+128>>2],+f[p+128+4>>2],+f[p+128+8>>2],+f[p+624>>2],+f[p+624+4>>2],+f[p+624+8>>2]);ql(p+160|0,q,+f[p+144>>2],+f[p+144+4>>2],+f[p+144+8>>2]);vp(p+176|0,m,n,o,+f[p+160>>2],+f[p+160+4>>2],+f[p+160+8>>2]);Pa[r&127](a,p+208|0,p+176|0,h);f[p+104>>2]=0.0;f[p+100>>2]=0.0;f[p+96>>2]=0.0;qs(p+112|0,p+104|0,p+100|0,p+96|0);f[(NJ(p+112|0)|0)+(e<<2)>>2]=1.0;f[p+72>>2]=0.0;f[p+68>>2]=0.0;f[p+64>>2]=0.0;qs(p+80|0,p+72|0,p+68|0,p+64|0);f[(NJ(p+80|0)|0)+(((e+1|0)%3|0)<<2)>>2]=1.0;r=c[(c[a>>2]|0)+60>>2]|0;ql(p+32|0,q,+f[p+688>>2],+f[j>>2],+f[k>>2]);xp(p+48|0,m,n,o,+f[p+32>>2],+f[p+32+4>>2],+f[p+32+8>>2]);ql(p+16|0,q,+f[p+112>>2],+f[p+112+4>>2],+f[p+112+8>>2]);ql(p,q,+f[p+80>>2],+f[p+80+4>>2],+f[p+80+8>>2]);Sa[r&1](a,p+48|0,p+16|0,p,b,b,0.0,6.2831854820251465,h,0,10.0);ea=p;return}function Ec(b,d,e,g){b=b|0;d=d|0;e=e|0;g=g|0;var h=0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0,K=0,L=0,M=0,N=0;h=ea;ea=ea+240|0;if(!(c[b+16>>2]|0)){J=c[b+12>>2]|0;b=c[b+20>>2]|0;w=+f[d>>2];p=+f[d+4>>2];t=+f[d+8>>2];j=+f[d+16>>2];q=+f[d+20>>2];i=+f[d+24>>2];l=+f[d+32>>2];r=+f[d+36>>2];m=+f[d+40>>2];E=+f[d+48>>2];D=+f[d+52>>2];C=+f[d+56>>2];I=+f[e>>2];H=+f[e+16>>2];y=+f[e+32>>2];G=+f[e+4>>2];F=+f[e+20>>2];x=+f[e+36>>2];u=+f[e+8>>2];k=+f[e+24>>2];o=+f[e+40>>2];B=-+f[e+48>>2];A=-+f[e+52>>2];v=-+f[e+56>>2];d=c[(c[J>>2]|0)+64>>2]|0;z=-+f[b+48>>2];s=-+f[b+52>>2];n=-+f[b+56>>2];f[h+16>>2]=(w*I+j*H+l*y)*z+(w*G+j*F+l*x)*s+(w*u+j*k+l*o)*n;f[h+16+4>>2]=(p*I+q*H+r*y)*z+(p*G+q*F+r*x)*s+(p*u+q*k+r*o)*n;f[h+16+8>>2]=(t*I+i*H+m*y)*z+(t*G+i*F+m*x)*s+(t*u+i*k+m*o)*n;f[h+16+12>>2]=0.0;Ma[d&127](h+152|0,J,h+16|0);n=+f[h+152>>2];s=+f[h+152+4>>2];z=+f[h+152+8>>2];y=E*I+D*H+C*y+(I*B+H*A+y*v)+((w*I+j*H+l*y)*n+(p*I+q*H+r*y)*s+(t*I+i*H+m*y)*z);x=E*G+D*F+C*x+(G*B+F*A+x*v)+((w*G+j*F+l*x)*n+(p*G+q*F+r*x)*s+(t*G+i*F+m*x)*z);z=E*u+D*k+C*o+(u*B+k*A+o*v)+((w*u+j*k+l*o)*n+(p*u+q*k+r*o)*s+(t*u+i*k+m*o)*z);o=+f[b+48>>2];m=+f[b+52>>2];k=+f[b+56>>2];i=k*z+(o*y+m*x)-+f[b+64>>2];u=+f[e>>2];t=+f[e+4>>2];s=+f[e+8>>2];r=+f[e+16>>2];q=+f[e+20>>2];p=+f[e+24>>2];n=+f[e+32>>2];l=+f[e+36>>2];j=+f[e+40>>2];w=(y-o*i)*r+(x-m*i)*q+(z-k*i)*p+ +f[e+52>>2];v=(y-o*i)*n+(x-m*i)*l+(z-k*i)*j+ +f[e+56>>2];f[h+16>>2]=s*(z-k*i)+(u*(y-o*i)+t*(x-m*i))+ +f[e+48>>2];f[h+16+4>>2]=w;f[h+16+8>>2]=v;f[h+16+12>>2]=0.0;f[h>>2]=o*u+m*t+k*s;f[h+4>>2]=o*r+m*q+k*p;f[h+8>>2]=o*n+m*l+k*j;f[h+12>>2]=0.0;Na[c[(c[g>>2]|0)+16>>2]&15](g,h,h+16|0,i);ea=h;return}else{M=c[b+4>>2]|0;a[M+312>>0]=0;c[M>>2]=0;a[M+356>>0]=1;c[M+292>>2]=1566444395;c[M+296>>2]=1566444395;c[M+300>>2]=1566444395;f[M+304>>2]=0.0;c[M+336>>2]=0;c[M+336+4>>2]=0;c[M+336+8>>2]=0;c[M+336+12>>2]=0;a[M+336+16>>0]=0;a[M+332>>0]=a[M+332>>0]&-16;M=c[b+12>>2]|0;L=c[b+16>>2]|0;K=c[M+4>>2]|0;J=c[L+4>>2]|0;H=+ha[c[(c[M>>2]|0)+48>>2]&15](M);N=c[b+16>>2]|0;I=+ha[c[(c[N>>2]|0)+48>>2]&15](N);N=c[b+4>>2]|0;b=c[b+8>>2]|0;c[h+152>>2]=10520;c[h+152+4>>2]=0;c[h+152+8>>2]=1065353216;c[h+152+12>>2]=0;f[h+152+16>>2]=0.0;c[h+152+20>>2]=b;c[h+152+24>>2]=N;c[h+152+28>>2]=M;c[h+152+32>>2]=L;c[h+152+36>>2]=K;c[h+152+40>>2]=J;f[h+152+44>>2]=H;f[h+152+48>>2]=I;a[h+152+52>>0]=0;c[h+152+60>>2]=-1;c[h+152+72>>2]=1;c[h+152+76>>2]=1;f[h+16+128>>2]=999999984306749440.0;c[h+16>>2]=c[d>>2];c[h+16+4>>2]=c[d+4>>2];c[h+16+8>>2]=c[d+8>>2];c[h+16+12>>2]=c[d+12>>2];c[h+16+16>>2]=c[d+16>>2];c[h+16+16+4>>2]=c[d+16+4>>2];c[h+16+16+8>>2]=c[d+16+8>>2];c[h+16+16+12>>2]=c[d+16+12>>2];c[h+16+32>>2]=c[d+32>>2];c[h+16+32+4>>2]=c[d+32+4>>2];c[h+16+32+8>>2]=c[d+32+8>>2];c[h+16+32+12>>2]=c[d+32+12>>2];c[h+16+48>>2]=c[d+48>>2];c[h+16+48+4>>2]=c[d+48+4>>2];c[h+16+48+8>>2]=c[d+48+8>>2];c[h+16+48+12>>2]=c[d+48+12>>2];c[h+16+64>>2]=c[e>>2];c[h+16+64+4>>2]=c[e+4>>2];c[h+16+64+8>>2]=c[e+8>>2];c[h+16+64+12>>2]=c[e+12>>2];c[h+16+80>>2]=c[e+16>>2];c[h+16+80+4>>2]=c[e+16+4>>2];c[h+16+80+8>>2]=c[e+16+8>>2];c[h+16+80+12>>2]=c[e+16+12>>2];c[h+16+96>>2]=c[e+32>>2];c[h+16+96+4>>2]=c[e+32+4>>2];c[h+16+96+8>>2]=c[e+32+8>>2];c[h+16+96+12>>2]=c[e+32+12>>2];c[h+16+112>>2]=c[e+48>>2];c[h+16+112+4>>2]=c[e+48+4>>2];c[h+16+112+8>>2]=c[e+48+8>>2];c[h+16+112+12>>2]=c[e+48+12>>2];Hb(h+152|0,h+16|0,g,0,0);ea=h;return}}function Fc(a,b,d,e,g,h){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0.0,j=0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,t=0.0,u=0.0,v=0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0;v=ea;ea=ea+544|0;j=h;k=j+36|0;do{c[j>>2]=0;j=j+4|0}while((j|0)<(k|0));c[v+384>>2]=a;c[v+384+4>>2]=d;A=+f[e>>2];G=+f[b>>2];z=+f[e+16>>2];F=+f[b+16>>2];y=+f[e+32>>2];E=+f[b+32>>2];D=+f[b+4>>2];C=+f[b+20>>2];B=+f[b+36>>2];l=+f[b+8>>2];n=+f[b+24>>2];p=+f[b+40>>2];x=+f[e+4>>2];w=+f[e+20>>2];i=+f[e+36>>2];m=+f[e+8>>2];o=+f[e+24>>2];q=+f[e+40>>2];f[v+384+8>>2]=A*G+z*F+y*E;f[v+384+12>>2]=A*D+z*C+y*B;f[v+384+16>>2]=A*l+z*n+y*p;f[v+384+20>>2]=0.0;f[v+384+24>>2]=G*x+F*w+E*i;f[v+384+28>>2]=D*x+C*w+B*i;f[v+384+32>>2]=l*x+n*w+p*i;f[v+384+36>>2]=0.0;f[v+384+40>>2]=G*m+F*o+E*q;f[v+384+44>>2]=D*m+C*o+B*q;f[v+384+48>>2]=l*m+n*o+p*q;f[v+384+52>>2]=0.0;I=+f[e+48>>2]-+f[b+48>>2];H=+f[e+52>>2]-+f[b+52>>2];u=+f[e+56>>2]-+f[b+56>>2];r=I*+f[b>>2]+H*+f[b+16>>2]+u*+f[b+32>>2];t=I*+f[b+4>>2]+H*+f[b+20>>2]+u*+f[b+36>>2];u=I*+f[b+8>>2]+H*+f[b+24>>2]+u*+f[b+40>>2];f[v+384+56>>2]=A*G+z*F+y*E;f[v+384+60>>2]=G*x+F*w+E*i;f[v+384+64>>2]=G*m+F*o+E*q;f[v+384+68>>2]=0.0;f[v+384+72>>2]=A*D+z*C+y*B;f[v+384+76>>2]=D*x+C*w+B*i;f[v+384+80>>2]=D*m+C*o+B*q;f[v+384+84>>2]=0.0;f[v+384+88>>2]=A*l+z*n+y*p;f[v+384+92>>2]=l*x+n*w+p*i;f[v+384+96>>2]=l*m+n*o+p*q;f[v+384+100>>2]=0.0;f[v+384+104>>2]=r;f[v+384+108>>2]=t;f[v+384+112>>2]=u;f[v+384+116>>2]=0.0;c[v+384+120>>2]=82;c[v+384+124>>2]=0;c[v+364>>2]=0;c[v+128>>2]=0;c[v+128+4>>2]=0;c[v+128+8>>2]=0;c[v+128+12>>2]=0;c[v+376>>2]=2;c[v+368>>2]=0;f[v+144>>2]=0.0;g=Db(v,v+384|0,g)|0;if(g|0){c[h>>2]=(g|0)==1?1:2;b=0;ea=v;return b|0}g=c[v+372>>2]|0;if(!(c[g+32>>2]|0)){p=0.0;o=0.0;n=0.0;m=0.0;l=0.0;i=0.0}else{i=0.0;l=0.0;m=0.0;n=0.0;o=0.0;p=0.0;e=0;do{u=+f[g+16+(e<<2)>>2];a=c[v+384+120>>2]|0;k=c[v+384+124>>2]|0;d=(c[v+384>>2]|0)+(1?k>>1:k)|0;if(k&1)a=c[(c[d>>2]|0)+a>>2]|0;Ma[a&127](v+528|0,d,c[g+(e<<2)>>2]|0);n=n+u*+f[v+528>>2];o=o+u*+f[v+528+4>>2];p=p+u*+f[v+528+8>>2];g=c[(c[v+372>>2]|0)+(e<<2)>>2]|0;q=-+f[g>>2];r=-+f[g+4>>2];t=-+f[g+8>>2];g=c[v+384+120>>2]|0;k=c[v+384+124>>2]|0;a=(c[v+384+4>>2]|0)+(1?k>>1:k)|0;if(k&1)g=c[(c[a>>2]|0)+g>>2]|0;H=+f[v+384+24>>2]*q+ +f[v+384+28>>2]*r+ +f[v+384+32>>2]*t;G=+f[v+384+40>>2]*q+ +f[v+384+44>>2]*r+ +f[v+384+48>>2]*t;f[v+512>>2]=+f[v+384+8>>2]*q+ +f[v+384+12>>2]*r+ +f[v+384+16>>2]*t;f[v+512+4>>2]=H;f[v+512+8>>2]=G;f[v+512+12>>2]=0.0;Ma[g&127](v+528|0,a,v+512|0);G=+f[v+528>>2];H=+f[v+528+4>>2];I=+f[v+528+8>>2];i=i+u*(G*+f[v+384+56>>2]+H*+f[v+384+60>>2]+I*+f[v+384+64>>2]+ +f[v+384+104>>2]);l=l+u*(G*+f[v+384+72>>2]+H*+f[v+384+76>>2]+I*+f[v+384+80>>2]+ +f[v+384+108>>2]);m=m+u*(G*+f[v+384+88>>2]+H*+f[v+384+92>>2]+I*+f[v+384+96>>2]+ +f[v+384+112>>2]);e=e+1|0;g=c[v+372>>2]|0}while(e>>>0<(c[g+32>>2]|0)>>>0)}F=n*+f[b+16>>2]+o*+f[b+20>>2]+p*+f[b+24>>2]+ +f[b+52>>2];G=n*+f[b+32>>2]+o*+f[b+36>>2]+p*+f[b+40>>2]+ +f[b+56>>2];f[h+4>>2]=n*+f[b>>2]+o*+f[b+4>>2]+p*+f[b+8>>2]+ +f[b+48>>2];f[h+8>>2]=F;f[h+12>>2]=G;f[h+16>>2]=0.0;G=i*+f[b+16>>2]+l*+f[b+20>>2]+m*+f[b+24>>2]+ +f[b+52>>2];F=i*+f[b+32>>2]+l*+f[b+36>>2]+m*+f[b+40>>2]+ +f[b+56>>2];f[h+20>>2]=i*+f[b>>2]+l*+f[b+4>>2]+m*+f[b+8>>2]+ +f[b+48>>2];f[h+24>>2]=G;f[h+28>>2]=F;f[h+32>>2]=0.0;F=n-i;G=o-l;H=p-m;f[h+48>>2]=0.0;I=+s(+(F*F+G*G+H*H));f[h+52>>2]=I;I=I>9.999999747378752e-05?1.0/I:1.0;f[h+36>>2]=F*I;f[h+40>>2]=G*I;f[h+44>>2]=H*I;b=1;ea=v;return b|0}function Gc(a,b,d,e,g,h){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=+h;var i=0,j=0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,t=0.0;i=ea;ea=ea+464|0;Fi(18367);c[i+128>>2]=c[d>>2];c[i+128+4>>2]=c[d+4>>2];c[i+128+8>>2]=c[d+8>>2];c[i+128+12>>2]=c[d+12>>2];c[i+128+16>>2]=c[d+16>>2];c[i+128+16+4>>2]=c[d+16+4>>2];c[i+128+16+8>>2]=c[d+16+8>>2];c[i+128+16+12>>2]=c[d+16+12>>2];c[i+128+32>>2]=c[d+32>>2];c[i+128+32+4>>2]=c[d+32+4>>2];c[i+128+32+8>>2]=c[d+32+8>>2];c[i+128+32+12>>2]=c[d+32+12>>2];k=i+128+48|0;c[k>>2]=c[d+48>>2];c[k+4>>2]=c[d+48+4>>2];c[k+8>>2]=c[d+48+8>>2];c[k+12>>2]=c[d+48+12>>2];c[i+64>>2]=c[e>>2];c[i+64+4>>2]=c[e+4>>2];c[i+64+8>>2]=c[e+8>>2];c[i+64+12>>2]=c[e+12>>2];c[i+64+16>>2]=c[e+16>>2];c[i+64+16+4>>2]=c[e+16+4>>2];c[i+64+16+8>>2]=c[e+16+8>>2];c[i+64+16+12>>2]=c[e+16+12>>2];c[i+64+32>>2]=c[e+32>>2];c[i+64+32+4>>2]=c[e+32+4>>2];c[i+64+32+8>>2]=c[e+32+8>>2];c[i+64+32+12>>2]=c[e+32+12>>2];j=i+64+48|0;c[j>>2]=c[e+48>>2];c[j+4>>2]=c[e+48+4>>2];c[j+8>>2]=c[e+48+8>>2];c[j+12>>2]=c[e+48+12>>2];Ee(i+128|0,i+64|0,i+256|0,i+192|0);t=+f[i+192>>2];l=t*+f[i+256+4>>2];q=t*+f[i+256+8>>2];f[i+16>>2]=+f[i+256>>2]*t;f[i+16+4>>2]=l;f[i+16+8>>2]=q;f[i+16+12>>2]=0.0;c[i+256>>2]=0;c[i+256+4>>2]=0;c[i+256+8>>2]=0;c[i+256+12>>2]=0;c[i+192+48>>2]=0;c[i+192+48+4>>2]=0;c[i+192+48+8>>2]=0;c[i+192+48+12>>2]=0;Gg(i+128|0,i);q=+f[i>>2];l=+f[i+4>>2];t=+f[i+8>>2];p=+f[i+12>>2];n=q*(2.0/(q*q+l*l+t*t+p*p));m=l*(2.0/(q*q+l*l+t*t+p*p));o=t*(2.0/(q*q+l*l+t*t+p*p));f[i+192>>2]=1.0-(l*m+t*o);f[i+192+4>>2]=q*m-p*o;f[i+192+8>>2]=q*o+p*m;f[i+192+12>>2]=0.0;f[i+192+16>>2]=q*m+p*o;f[i+192+20>>2]=1.0-(q*n+t*o);f[i+192+24>>2]=l*o-p*n;f[i+192+28>>2]=0.0;f[i+192+32>>2]=q*o-p*m;f[i+192+36>>2]=l*o+p*n;f[i+192+40>>2]=1.0-(q*n+l*m);f[i+192+44>>2]=0.0;sg(b,i+192|0,i+256|0,i+16|0,i+48|0,i+32|0);c[i+256>>2]=7048;c[i+256+36>>2]=c[d>>2];c[i+256+36+4>>2]=c[d+4>>2];c[i+256+36+8>>2]=c[d+8>>2];c[i+256+36+12>>2]=c[d+12>>2];c[i+256+52>>2]=c[d+16>>2];c[i+256+52+4>>2]=c[d+16+4>>2];c[i+256+52+8>>2]=c[d+16+8>>2];c[i+256+52+12>>2]=c[d+16+12>>2];c[i+256+68>>2]=c[d+32>>2];c[i+256+68+4>>2]=c[d+32+4>>2];c[i+256+68+8>>2]=c[d+32+8>>2];c[i+256+68+12>>2]=c[d+32+12>>2];r=i+256+84|0;c[r>>2]=c[d+48>>2];c[r+4>>2]=c[d+48+4>>2];c[r+8>>2]=c[d+48+8>>2];c[r+12>>2]=c[d+48+12>>2];c[i+256+100>>2]=c[e>>2];c[i+256+100+4>>2]=c[e+4>>2];c[i+256+100+8>>2]=c[e+8>>2];c[i+256+100+12>>2]=c[e+12>>2];c[i+256+116>>2]=c[e+16>>2];c[i+256+116+4>>2]=c[e+16+4>>2];c[i+256+116+8>>2]=c[e+16+8>>2];c[i+256+116+12>>2]=c[e+16+12>>2];c[i+256+132>>2]=c[e+32>>2];c[i+256+132+4>>2]=c[e+32+4>>2];c[i+256+132+8>>2]=c[e+32+8>>2];c[i+256+132+12>>2]=c[e+32+12>>2];d=i+256+148|0;c[d>>2]=c[e+48>>2];c[d+4>>2]=c[e+48+4>>2];c[d+8>>2]=c[e+48+8>>2];c[d+12>>2]=c[e+48+12>>2];c[i+256+180>>2]=a;c[i+256+184>>2]=g;f[i+256+188>>2]=h;c[i+256+192>>2]=b;m=+f[d>>2]-+f[r>>2];l=+f[i+256+152>>2]-+f[i+256+88>>2];n=+f[i+256+156>>2]-+f[i+256+92>>2];h=1.0/+s(+(m*m+l*l+n*n));q=m*h==0.0?999999984306749440.0:1.0/(m*h);f[i+256+4>>2]=q;p=l*h==0.0?999999984306749440.0:1.0/(l*h);f[i+256+8>>2]=p;o=n*h==0.0?999999984306749440.0:1.0/(n*h);f[i+256+12>>2]=o;c[i+256+20>>2]=q<0.0&1;c[i+256+24>>2]=p<0.0&1;c[i+256+28>>2]=o<0.0&1;f[i+256+32>>2]=n*(n*h)+(m*(m*h)+l*(l*h));b=c[a+68>>2]|0;Va[c[(c[b>>2]|0)+24>>2]&7](b,k,j,i+256|0,i+48|0,i+32|0);b=c[2685]|0;a=(c[b+16>>2]|0)+-1|0;c[b+16>>2]=a;if(a|0){ea=i;return}do if(c[b+4>>2]|0){Y(i+256|0,0)|0;r=c[6746]|0;f[b+8>>2]=+f[b+8>>2]+ +(((c[i+256+4>>2]|0)-(c[r+4>>2]|0)+(((c[i+256>>2]|0)-(c[r>>2]|0)|0)*1e6|0)-(c[b+12>>2]|0)|0)>>>0)/1.0e3;if(!(c[b+16>>2]|0)){b=c[2685]|0;break}else{ea=i;return}}while(0);c[2685]=c[b+20>>2];ea=i;return}function Hc(d,e,f){d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=ea;ea=ea+32|0;h=ra[c[(c[d>>2]|0)+28>>2]&127](d)|0;c[e+20>>2]=h;c[e>>2]=0;if(!h){r=d+4|0;f=e+4|0;r=c[r>>2]|0;c[f>>2]=r;f=d+8|0;f=c[f>>2]|0;r=e+8|0;c[r>>2]=f;r=d+12|0;r=c[r>>2]|0;f=e+12|0;c[f>>2]=r;f=d+16|0;f=c[f>>2]|0;d=e+16|0;c[d>>2]=f;ea=s;return 22103}r=va[c[(c[f>>2]|0)+16>>2]&63](f,32,h)|0;h=c[r+8>>2]|0;c[e>>2]=ta[c[(c[f>>2]|0)+28>>2]&31](f,h)|0;q=ra[c[(c[d>>2]|0)+28>>2]&127](d)|0;a:do if((q|0)>0){p=0;while(1){Za[c[(c[d>>2]|0)+16>>2]&3](d,s+28|0,s+4|0,s+16|0,s+8|0,s+24|0,s+20|0,s,s+12|0,p);i=c[s>>2]|0;c[h+24>>2]=i;c[h+28>>2]=c[s+4>>2];j=h+12|0;l=h+16|0;o=h+4|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[h+16>>2]=0;c[h+20>>2]=0;switch(c[s+12>>2]|0){case 2:{if(i|0){k=va[c[(c[f>>2]|0)+16>>2]&63](f,4,i*3|0)|0;i=c[k+8>>2]|0;c[h+8>>2]=ta[c[(c[f>>2]|0)+28>>2]&31](f,i)|0;if((c[s>>2]|0)>0){j=c[s+24>>2]|0;l=0;do{m=j+(z(c[s+20>>2]|0,l)|0)|0;n=l*3|0;c[i+(n<<2)>>2]=c[m>>2];c[i+(n+1<<2)>>2]=c[m+4>>2];c[i+(n+2<<2)>>2]=c[m+8>>2];l=l+1|0}while((l|0)<(c[s>>2]|0))}Ta[c[(c[f>>2]|0)+20>>2]&31](f,k,21984,1497453121,c[k+8>>2]|0)}break}case 3:{if(i|0){n=va[c[(c[f>>2]|0)+16>>2]&63](f,8,i)|0;m=c[n+8>>2]|0;c[j>>2]=ta[c[(c[f>>2]|0)+28>>2]&31](f,m)|0;i=c[s>>2]|0;if((i|0)>0){j=c[s+24>>2]|0;k=c[s+20>>2]|0;l=0;do{t=j+(z(k,l)|0)|0;b[m+(l<<3)>>1]=b[t>>1]|0;b[m+(l<<3)+2>>1]=b[t+2>>1]|0;b[m+(l<<3)+4>>1]=b[t+4>>1]|0;l=l+1|0}while((l|0)!=(i|0))}Ta[c[(c[f>>2]|0)+20>>2]&31](f,n,21999,1497453121,c[n+8>>2]|0)}break}case 5:{if(i|0){k=va[c[(c[f>>2]|0)+16>>2]&63](f,4,i)|0;j=c[k+8>>2]|0;c[l>>2]=ta[c[(c[f>>2]|0)+28>>2]&31](f,j)|0;if((c[s>>2]|0)>0){i=0;do{t=(c[s+24>>2]|0)+(z(c[s+20>>2]|0,i)|0)|0;a[j+(i<<2)>>0]=a[t>>0]|0;a[j+(i<<2)+1>>0]=a[t+1>>0]|0;a[j+(i<<2)+2>>0]=a[t+2>>0]|0;i=i+1|0}while((i|0)<(c[s>>2]|0))}Ta[c[(c[f>>2]|0)+20>>2]&31](f,k,22026,1497453121,c[k+8>>2]|0)}break}default:{}}switch(c[s+16>>2]|0){case 0:{i=c[s+4>>2]|0;if(i|0){m=va[c[(c[f>>2]|0)+16>>2]&63](f,16,i)|0;i=c[m+8>>2]|0;c[h>>2]=ta[c[(c[f>>2]|0)+28>>2]&31](f,i)|0;j=c[s+4>>2]|0;if((j|0)>0){k=c[s+28>>2]|0;l=c[s+8>>2]|0;n=0;do{t=k+(z(l,n)|0)|0;c[i+(n<<4)>>2]=c[t>>2];c[i+(n<<4)+4>>2]=c[t+4>>2];c[i+(n<<4)+8>>2]=c[t+8>>2];n=n+1|0}while((n|0)!=(j|0))}Ta[c[(c[f>>2]|0)+20>>2]&31](f,m,22049,1497453121,c[m+8>>2]|0)}break}case 1:{i=c[s+4>>2]|0;if(i|0){n=va[c[(c[f>>2]|0)+16>>2]&63](f,32,i)|0;m=c[n+8>>2]|0;c[o>>2]=ta[c[(c[f>>2]|0)+28>>2]&31](f,m)|0;i=c[s+4>>2]|0;if((i|0)>0){j=c[s+28>>2]|0;k=c[s+8>>2]|0;l=0;do{t=j+(z(k,l)|0)|0;g[m+(l<<5)>>3]=+g[t>>3];g[m+(l<<5)+8>>3]=+g[t+8>>3];g[m+(l<<5)+16>>3]=+g[t+16>>3];l=l+1|0}while((l|0)!=(i|0))}Ta[c[(c[f>>2]|0)+20>>2]&31](f,n,22068,1497453121,c[n+8>>2]|0)}break}default:{}}Ia[c[(c[d>>2]|0)+24>>2]&127](d,p);p=p+1|0;if((p|0)==(q|0)){h=f;break a}else h=h+32|0}}else h=f;while(0);Ta[c[(c[h>>2]|0)+20>>2]&31](f,r,22088,1497453121,c[r+8>>2]|0);f=d+4|0;t=e+4|0;f=c[f>>2]|0;c[t>>2]=f;t=d+8|0;t=c[t>>2]|0;f=e+8|0;c[f>>2]=t;f=d+12|0;f=c[f>>2]|0;t=e+12|0;c[t>>2]=f;d=d+16|0;d=c[d>>2]|0;t=e+16|0;c[t>>2]=d;ea=s;return 22103}function Ic(a,b){a=a|0;b=b|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0.0,q=0.0,r=0.0,t=0.0,u=0.0;i=c[a+192>>2]|0;n=+ha[c[(c[i>>2]|0)+48>>2]&15](i);i=c[a+712>>2]|0;if((i|0)>0){o=0;do{j=c[a+720>>2]|0;g=j+(o*104|0)+8|0;q=+f[g>>2];h=j+(o*104|0)+12|0;p=+f[h>>2];d=j+(o*104|0)+16|0;l=+f[d>>2];k=q*+f[b>>2]+p*+f[b+4>>2]+l*+f[b+8>>2]+ +f[b+48>>2];m=q*+f[b+16>>2]+p*+f[b+20>>2]+l*+f[b+24>>2]+ +f[b+52>>2];l=q*+f[b+32>>2]+p*+f[b+36>>2]+l*+f[b+40>>2]+ +f[b+56>>2];f[g>>2]=k;f[h>>2]=m;f[d>>2]=l;f[j+(o*104|0)+20>>2]=0.0;d=j+(o*104|0)+24|0;p=+f[d>>2];h=j+(o*104|0)+28|0;q=+f[h>>2];g=j+(o*104|0)+32|0;r=+f[g>>2];t=p*+f[b+16>>2]+q*+f[b+20>>2]+r*+f[b+24>>2]+ +f[b+52>>2];u=p*+f[b+32>>2]+q*+f[b+36>>2]+r*+f[b+40>>2]+ +f[b+56>>2];f[d>>2]=p*+f[b>>2]+q*+f[b+4>>2]+r*+f[b+8>>2]+ +f[b+48>>2];f[h>>2]=t;f[g>>2]=u;f[j+(o*104|0)+36>>2]=0.0;g=j+(o*104|0)+72|0;u=+f[g>>2];h=j+(o*104|0)+76|0;t=+f[h>>2];d=j+(o*104|0)+80|0;r=+f[d>>2];q=u*+f[b+16>>2]+t*+f[b+20>>2]+r*+f[b+24>>2];p=u*+f[b+32>>2]+t*+f[b+36>>2]+r*+f[b+40>>2];f[g>>2]=+f[b>>2]*u+ +f[b+4>>2]*t+ +f[b+8>>2]*r;f[h>>2]=q;f[d>>2]=p;f[j+(o*104|0)+84>>2]=0.0;j=c[j+(o*104|0)+96>>2]|0;d=jg(a+928|0,j)|0;a:do if(d){g=c[a+936>>2]|0;if((g|0)<=-1){d=c[a+928>>2]|0;break}if(g){h=0;e=d;while(1){d=c[e+32>>2]|0;h=h+1|0;if(!d){d=e;break a}if((h|0)>=(g|0))break;else e=d}}}else d=0;while(0);f[j>>2]=k-n;f[j+4>>2]=m-n;f[j+8>>2]=l-n;f[j+12>>2]=0.0;f[j+16>>2]=n+k;f[j+20>>2]=n+m;f[j+24>>2]=n+l;f[j+28>>2]=0.0;je(a+928|0,d,j);o=o+1|0}while((o|0)!=(i|0))}Ef(a);d=c[a+928>>2]|0;if(d){o=c[a+192>>2]|0;r=+ha[c[(c[o>>2]|0)+48>>2]&15](o);u=+f[d+4>>2]-r;t=+f[d+8>>2]-r;f[a+892>>2]=+f[d>>2]-r;f[a+896>>2]=u;f[a+900>>2]=t;f[a+904>>2]=0.0;t=r+ +f[d+20>>2];u=r+ +f[d+24>>2];f[a+908>>2]=r+ +f[d+16>>2];f[a+912>>2]=t;f[a+916>>2]=u;f[a+920>>2]=0.0;d=c[a+188>>2]|0;if(d|0){o=c[a+684>>2]|0;j=c[o+32>>2]|0;Ta[c[(c[j>>2]|0)+16>>2]&31](j,d,a+892|0,a+908|0,c[o+36>>2]|0)}}else{c[a+892>>2]=0;c[a+892+4>>2]=0;c[a+892+8>>2]=0;c[a+892+12>>2]=0;c[a+892+16>>2]=0;c[a+892+20>>2]=0;c[a+892+24>>2]=0;c[a+892+28>>2]=0}e=c[a+732>>2]|0;if((e|0)<=0){Ze(a);o=a+1148|0;c[o>>2]=c[b>>2];c[o+4>>2]=c[b+4>>2];c[o+8>>2]=c[b+8>>2];c[o+12>>2]=c[b+12>>2];o=b+16|0;j=a+1164|0;c[j>>2]=c[o>>2];c[j+4>>2]=c[o+4>>2];c[j+8>>2]=c[o+8>>2];c[j+12>>2]=c[o+12>>2];j=b+32|0;o=a+1180|0;c[o>>2]=c[j>>2];c[o+4>>2]=c[j+4>>2];c[o+8>>2]=c[j+8>>2];c[o+12>>2]=c[j+12>>2];o=b+48|0;b=a+1196|0;c[b>>2]=c[o>>2];c[b+4>>2]=c[o+4>>2];c[b+8>>2]=c[o+8>>2];c[b+12>>2]=c[o+12>>2];return}g=c[a+740>>2]|0;d=0;do{j=c[g+(d*52|0)+8>>2]|0;o=c[g+(d*52|0)+12>>2]|0;r=+f[j+8>>2]-+f[o+8>>2];t=+f[j+12>>2]-+f[o+12>>2];u=+f[j+16>>2]-+f[o+16>>2];u=+s(+(r*r+t*t+u*u));f[g+(d*52|0)+16>>2]=u;f[g+(d*52|0)+28>>2]=u*u;d=d+1|0}while((d|0)!=(e|0));d=0;do{f[g+(d*52|0)+24>>2]=(+f[(c[g+(d*52|0)+8>>2]|0)+88>>2]+ +f[(c[g+(d*52|0)+12>>2]|0)+88>>2])/+f[(c[g+(d*52|0)+4>>2]|0)+4>>2];d=d+1|0}while((d|0)!=(e|0));Ze(a);o=a+1148|0;c[o>>2]=c[b>>2];c[o+4>>2]=c[b+4>>2];c[o+8>>2]=c[b+8>>2];c[o+12>>2]=c[b+12>>2];o=b+16|0;j=a+1164|0;c[j>>2]=c[o>>2];c[j+4>>2]=c[o+4>>2];c[j+8>>2]=c[o+8>>2];c[j+12>>2]=c[o+12>>2];j=b+32|0;o=a+1180|0;c[o>>2]=c[j>>2];c[o+4>>2]=c[j+4>>2];c[o+8>>2]=c[j+8>>2];c[o+12>>2]=c[j+12>>2];o=b+48|0;b=a+1196|0;c[b>>2]=c[o>>2];c[b+4>>2]=c[o+4>>2];c[b+8>>2]=c[o+8>>2];c[b+12>>2]=c[o+12>>2];return}function Jc(b,d,e,g,h,i){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,t=0,u=0,v=0,w=0,x=0,y=0.0,A=0.0,B=0.0,C=0;x=ea;ea=ea+64|0;if((h|0)>0){j=0;b=0;do{w=c[g+(j<<2)>>2]|0;b=(w|0)>(b|0)?w:b;j=j+1|0}while((j|0)<(h*3|0))}else b=0;t=b+1|0;k=z(t,t)|0;if(!k)j=0;else{c[6747]=(c[6747]|0)+1;j=kb(k+19|0)|0;if(!j)j=0;else{c[(j+4+15&-16)+-4>>2]=j;j=j+4+15&-16}hk(j|0,0,k|0)|0}if((b|0)>-1){c[6747]=(c[6747]|0)+1;b=kb((t<<4|3)+16|0)|0;if(!b)l=0;else{c[(b+4+15&-16)+-4>>2]=b;l=b+4+15&-16}b=0;do{w=l+(b<<4)|0;c[w>>2]=c[x>>2];c[w+4>>2]=c[x+4>>2];c[w+8>>2]=c[x+8>>2];c[w+12>>2]=c[x+12>>2];b=b+1|0}while((b|0)!=(t|0));b=0;k=0;while(1){v=c[e+(b+1<<2)>>2]|0;w=c[e+(b+2<<2)>>2]|0;c[l+(k<<4)>>2]=c[e+(b<<2)>>2];c[l+(k<<4)+4>>2]=v;c[l+(k<<4)+8>>2]=w;f[l+(k<<4)+12>>2]=0.0;b=b+3|0;if((b|0)>=(t*3|0)){w=l;v=l;break}else k=k+1|0}}else{w=0;v=0}c[6747]=(c[6747]|0)+1;b=kb(1271)|0;if(!b)u=0;else{c[(b+4+15&-16)+-4>>2]=b;u=b+4+15&-16}ub(u,d,t,v,0);if((h|0)>0){p=u+720|0;r=u+732|0;q=u+740|0;e=u+924|0;o=0;do{d=c[g+(o<<2)>>2]|0;m=c[g+(o+1<<2)>>2]|0;n=c[g+(o+2<<2)>>2]|0;l=z(d,t)|0;b=j+(l+n)|0;if(!(a[b>>0]|0)){a[b>>0]=1;a[j+((z(n,t)|0)+d)>>0]=1;C=c[p>>2]|0;mh(u,0);k=(c[r>>2]|0)+-1|0;b=c[q>>2]|0;c[b+(k*52|0)+8>>2]=C+(n*104|0);c[b+(k*52|0)+12>>2]=C+(d*104|0);B=+f[C+(n*104|0)+8>>2]-+f[C+(d*104|0)+8>>2];A=+f[C+(n*104|0)+12>>2]-+f[C+(d*104|0)+12>>2];y=+f[C+(n*104|0)+16>>2]-+f[C+(d*104|0)+16>>2];f[b+(k*52|0)+16>>2]=+s(+(B*B+A*A+y*y));a[e>>0]=1}k=z(m,t)|0;b=j+(k+d)|0;if(!(a[b>>0]|0)){a[b>>0]=1;a[j+(l+m)>>0]=1;b=c[p>>2]|0;mh(u,0);C=(c[r>>2]|0)+-1|0;l=c[q>>2]|0;c[l+(C*52|0)+8>>2]=b+(d*104|0);c[l+(C*52|0)+12>>2]=b+(m*104|0);y=+f[b+(d*104|0)+8>>2]-+f[b+(m*104|0)+8>>2];A=+f[b+(d*104|0)+12>>2]-+f[b+(m*104|0)+12>>2];B=+f[b+(d*104|0)+16>>2]-+f[b+(m*104|0)+16>>2];f[l+(C*52|0)+16>>2]=+s(+(y*y+A*A+B*B));a[e>>0]=1}b=j+((z(n,t)|0)+m)|0;if(!(a[b>>0]|0)){a[b>>0]=1;a[j+(k+n)>>0]=1;k=c[p>>2]|0;mh(u,0);C=(c[r>>2]|0)+-1|0;l=c[q>>2]|0;c[l+(C*52|0)+8>>2]=k+(m*104|0);c[l+(C*52|0)+12>>2]=k+(n*104|0);y=+f[k+(m*104|0)+8>>2]-+f[k+(n*104|0)+8>>2];A=+f[k+(m*104|0)+12>>2]-+f[k+(n*104|0)+12>>2];B=+f[k+(m*104|0)+16>>2]-+f[k+(n*104|0)+16>>2];f[l+(C*52|0)+16>>2]=+s(+(y*y+A*A+B*B));a[e>>0]=1}af(u,d,m,n,0);o=o+3|0}while((o|0)<(h*3|0))}if(i){k=c[u+732>>2]|0;if((k|0)>0){m=u+740|0;d=0;b=243703;do{l=c[m>>2]|0;e=l+(d*52|0)|0;b=(z(b,1664525)|0)+1013904223|0;n=x;o=e;p=n+52|0;do{c[n>>2]=c[o>>2];n=n+4|0;o=o+4|0}while((n|0)<(p|0));n=e;o=l+(((b>>>0)%(k>>>0)|0)*52|0)|0;p=n+52|0;do{c[n>>2]=c[o>>2];n=n+4|0;o=o+4|0}while((n|0)<(p|0));n=l+(((b>>>0)%(k>>>0)|0)*52|0)|0;o=x;p=n+52|0;do{c[n>>2]=c[o>>2];n=n+4|0;o=o+4|0}while((n|0)<(p|0));d=d+1|0}while((d|0)!=(k|0))}else b=243703;e=c[u+752>>2]|0;if((e|0)>0){m=u+760|0;d=0;do{k=c[m>>2]|0;l=k+(d*44|0)|0;b=(z(b,1664525)|0)+1013904223|0;k=k+(((b>>>0)%(e>>>0)|0)*44|0)|0;n=x;o=l;p=n+44|0;do{c[n>>2]=c[o>>2];n=n+4|0;o=o+4|0}while((n|0)<(p|0));n=l;o=k;p=n+44|0;do{c[n>>2]=c[o>>2];n=n+4|0;o=o+4|0}while((n|0)<(p|0));n=k;o=x;p=n+44|0;do{c[n>>2]=c[o>>2];n=n+4|0;o=o+4|0}while((n|0)<(p|0));d=d+1|0}while((d|0)!=(e|0))}}if(!((v|0)==0|(w|0)==0)){c[6748]=(c[6748]|0)+1;uc(c[w+-4>>2]|0)}if(!j){ea=x;return u|0}c[6748]=(c[6748]|0)+1;uc(c[j+-4>>2]|0);ea=x;return u|0}function Kc(a,b,d){a=a|0;b=b|0;d=+d;var e=0,g=0,h=0,i=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0;i=ea;ea=ea+256|0;e=c[b+212>>2]|0;if((e|0)>-1){b=e;ea=i;return b|0}h=(c[b+236>>2]&2|0)==0;e=h?0:b;do if(!h){if(!(+f[e+344>>2]!=0.0)?(c[e+204>>2]&2|0)==0:0)break;h=c[a+8>>2]|0;hk(i|0,0,244)|0;a=De(a+4|0,i)|0;g=(c[b+236>>2]&2|0)==0;e=g?0:b;c[a+64>>2]=0;c[a+64+4>>2]=0;c[a+64+8>>2]=0;c[a+64+12>>2]=0;c[a+64+16>>2]=0;c[a+64+20>>2]=0;c[a+64+24>>2]=0;c[a+64+28>>2]=0;c[a+144>>2]=0;c[a+144+4>>2]=0;c[a+144+8>>2]=0;c[a+144+12>>2]=0;c[a+144+16>>2]=0;c[a+144+20>>2]=0;c[a+144+24>>2]=0;c[a+144+28>>2]=0;if(g){c[a>>2]=1065353216;c[a+4>>2]=0;c[a+4+4>>2]=0;c[a+4+8>>2]=0;c[a+4+12>>2]=0;c[a+20>>2]=1065353216;c[a+24>>2]=0;c[a+24+4>>2]=0;c[a+24+8>>2]=0;c[a+24+12>>2]=0;c[a+40>>2]=1065353216;c[a+44>>2]=0;c[a+44+4>>2]=0;c[a+44+8>>2]=0;c[a+44+12>>2]=0;c[a+44+16>>2]=0;c[a+240>>2]=0;c[a+128>>2]=0;c[a+128+4>>2]=0;c[a+128+8>>2]=0;c[a+128+12>>2]=0;c[a+96>>2]=1065353216;c[a+100>>2]=1065353216;c[a+104>>2]=1065353216;f[a+108>>2]=0.0;c[a+112>>2]=1065353216;c[a+116>>2]=1065353216;c[a+120>>2]=1065353216;f[a+124>>2]=0.0;e=a+176|0;g=e+60|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(g|0))}else{c[a>>2]=c[e+4>>2];c[a+4>>2]=c[e+4+4>>2];c[a+8>>2]=c[e+4+8>>2];c[a+12>>2]=c[e+4+12>>2];c[a+16>>2]=c[e+20>>2];c[a+16+4>>2]=c[e+20+4>>2];c[a+16+8>>2]=c[e+20+8>>2];c[a+16+12>>2]=c[e+20+12>>2];c[a+32>>2]=c[e+36>>2];c[a+32+4>>2]=c[e+36+4>>2];c[a+32+8>>2]=c[e+36+8>>2];c[a+32+12>>2]=c[e+36+12>>2];c[a+48>>2]=c[e+52>>2];c[a+48+4>>2]=c[e+52+4>>2];c[a+48+8>>2]=c[e+52+8>>2];c[a+48+12>>2]=c[e+52+12>>2];n=+f[e+344>>2];m=n*+f[e+352>>2];l=n*+f[e+356>>2];f[a+128>>2]=n*+f[e+348>>2];f[a+132>>2]=m;f[a+136>>2]=l;f[a+140>>2]=0.0;c[a+240>>2]=e;c[a+96>>2]=c[e+544>>2];c[a+96+4>>2]=c[e+544+4>>2];c[a+96+8>>2]=c[e+544+8>>2];c[a+96+12>>2]=c[e+544+12>>2];c[a+112>>2]=c[e+348>>2];c[a+112+4>>2]=c[e+348+4>>2];c[a+112+8>>2]=c[e+348+8>>2];c[a+112+12>>2]=c[e+348+12>>2];c[a+176>>2]=c[e+312>>2];c[a+176+4>>2]=c[e+312+4>>2];c[a+176+8>>2]=c[e+312+8>>2];c[a+176+12>>2]=c[e+312+12>>2];c[a+192>>2]=c[e+328>>2];c[a+192+4>>2]=c[e+328+4>>2];c[a+192+8>>2]=c[e+328+8>>2];c[a+192+12>>2]=c[e+328+12>>2];l=+f[e+344>>2];m=l*+f[e+416>>2]*d;n=l*+f[e+420>>2]*d;f[a+208>>2]=l*+f[e+412>>2]*d;f[a+212>>2]=m;f[a+216>>2]=n;f[a+220>>2]=0.0;n=+f[e+428>>2];m=+f[e+432>>2];l=+f[e+436>>2];k=(n*+f[e+268>>2]+m*+f[e+284>>2]+l*+f[e+300>>2])*d;j=(n*+f[e+272>>2]+m*+f[e+288>>2]+l*+f[e+304>>2])*d;f[a+224>>2]=(+f[e+264>>2]*n+ +f[e+280>>2]*m+ +f[e+296>>2]*l)*d;f[a+228>>2]=k;f[a+232>>2]=j}f[a+236>>2]=0.0;c[b+212>>2]=h;b=h;ea=i;return b|0}while(0);e=c[a+188>>2]|0;if((e|0)>=0){b=e;ea=i;return b|0}c[a+188>>2]=c[a+8>>2];hk(i|0,0,244)|0;e=De(a+4|0,i)|0;c[e+64>>2]=0;c[e+64+4>>2]=0;c[e+64+8>>2]=0;c[e+64+12>>2]=0;c[e+64+16>>2]=0;c[e+64+20>>2]=0;c[e+64+24>>2]=0;c[e+64+28>>2]=0;c[e+144>>2]=0;c[e+144+4>>2]=0;c[e+144+8>>2]=0;c[e+144+12>>2]=0;c[e+144+16>>2]=0;c[e+144+20>>2]=0;c[e+144+24>>2]=0;c[e+144+28>>2]=0;c[e>>2]=1065353216;c[e+4>>2]=0;c[e+4+4>>2]=0;c[e+4+8>>2]=0;c[e+4+12>>2]=0;c[e+20>>2]=1065353216;c[e+24>>2]=0;c[e+24+4>>2]=0;c[e+24+8>>2]=0;c[e+24+12>>2]=0;c[e+40>>2]=1065353216;c[e+44>>2]=0;c[e+44+4>>2]=0;c[e+44+8>>2]=0;c[e+44+12>>2]=0;c[e+44+16>>2]=0;c[e+240>>2]=0;c[e+128>>2]=0;c[e+128+4>>2]=0;c[e+128+8>>2]=0;c[e+128+12>>2]=0;c[e+96>>2]=1065353216;c[e+100>>2]=1065353216;c[e+104>>2]=1065353216;f[e+108>>2]=0.0;c[e+112>>2]=1065353216;c[e+116>>2]=1065353216;c[e+120>>2]=1065353216;f[e+124>>2]=0.0;e=e+176|0;g=e+64|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(g|0));b=c[a+188>>2]|0;ea=i;return b|0}function Lc(b,d,e){b=b|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0.0,q=0.0,r=0.0;if(a[b+165>>0]|0){g=c[b+88>>2]|0;a:do if((g|0)>0&e){h=c[b+96>>2]|0;k=+f[d>>2];l=+f[d+4>>2];m=+f[d+8>>2];n=+f[b+168>>2];e=0;while(1){r=+f[h+(e<<4)>>2]-k;q=+f[h+(e<<4)+4>>2]-l;p=+f[h+(e<<4)+8>>2]-m;if(r*r+q*q+p*p<=n)break;e=e+1|0;if((e|0)>=(g|0))break a}return e|0}while(0);o=(c[b+32>>2]|0)+12|0;c[o>>2]=(c[o>>2]|0)+1;if((g|0)==(c[b+92>>2]|0)?(i=(g|0)==0?1:g<<1,(g|0)<(i|0)):0){if(!i)h=0;else{c[6747]=(c[6747]|0)+1;e=kb((i<<4|3)+16|0)|0;if(!e)e=0;else{c[(e+4+15&-16)+-4>>2]=e;e=e+4+15&-16}g=c[b+88>>2]|0;h=e}if((g|0)>0){e=0;do{o=h+(e<<4)|0;j=(c[b+96>>2]|0)+(e<<4)|0;c[o>>2]=c[j>>2];c[o+4>>2]=c[j+4>>2];c[o+8>>2]=c[j+8>>2];c[o+12>>2]=c[j+12>>2];e=e+1|0}while((e|0)!=(g|0))}e=c[b+96>>2]|0;if(e|0){if(a[b+100>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0)}c[b+96>>2]=0}a[b+100>>0]=1;c[b+96>>2]=h;c[b+92>>2]=i;e=c[b+88>>2]|0}else e=g;o=(c[b+96>>2]|0)+(e<<4)|0;c[o>>2]=c[d>>2];c[o+4>>2]=c[d+4>>2];c[o+8>>2]=c[d+8>>2];c[o+12>>2]=c[d+12>>2];d=c[b+88>>2]|0;c[b+88>>2]=d+1;c[(c[b+32>>2]|0)+16>>2]=c[b+96>>2];return d|0}g=c[b+108>>2]|0;b:do if((g|0)>0&e){e=c[b+116>>2]|0;k=+f[d>>2];l=+f[d+4>>2];m=+f[d+8>>2];n=+f[b+168>>2];i=0;while(1){p=+f[e+(i<<2)>>2]-k;q=+f[e+(i+1<<2)>>2]-l;r=+f[e+(i+2<<2)>>2]-m;h=i+3|0;if(p*p+q*q+r*r<=n)break;if((h|0)<(g|0))i=h;else break b}d=(i>>>0)/3|0;return d|0}while(0);e=c[b+112>>2]|0;if((g|0)==(e|0)){e=(g|0)==0?1:g<<1;if((g|0)<(e|0)){if(!e)h=0;else{c[6747]=(c[6747]|0)+1;g=kb((e<<2|3)+16|0)|0;if(!g)h=0;else{c[(g+4+15&-16)+-4>>2]=g;h=g+4+15&-16}g=c[b+108>>2]|0}j=c[b+116>>2]|0;if((g|0)<=0)if(!j)i=b+120|0;else o=36;else{i=0;do{c[h+(i<<2)>>2]=c[j+(i<<2)>>2];i=i+1|0}while((i|0)!=(g|0));o=36}if((o|0)==36){if(a[b+120>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[j+-4>>2]|0);g=c[b+108>>2]|0}c[b+116>>2]=0;i=b+120|0}a[i>>0]=1;c[b+116>>2]=h;c[b+112>>2]=e;h=g}else{h=g;e=g}}else h=g;g=c[b+116>>2]|0;c[g+(h<<2)>>2]=c[d>>2];h=h+1|0;c[b+108>>2]=h;if((h|0)==(e|0)){j=(e|0)==0?1:e<<1;if((e|0)<(j|0)){if(!j)i=0;else{c[6747]=(c[6747]|0)+1;e=kb((j<<2|3)+16|0)|0;if(!e)h=0;else{c[(e+4+15&-16)+-4>>2]=e;h=e+4+15&-16}e=c[b+108>>2]|0;g=c[b+116>>2]|0;i=h}if((e|0)<=0)if(!g)g=b+120|0;else o=51;else{h=0;do{c[i+(h<<2)>>2]=c[g+(h<<2)>>2];h=h+1|0}while((h|0)!=(e|0));o=51}if((o|0)==51){if(a[b+120>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0);e=c[b+108>>2]|0}c[b+116>>2]=0;g=b+120|0}a[g>>0]=1;c[b+116>>2]=i;c[b+112>>2]=j;g=i;h=e;e=j}else h=e}c[g+(h<<2)>>2]=c[d+4>>2];h=h+1|0;c[b+108>>2]=h;if((h|0)==(e|0)){j=(e|0)==0?1:e<<1;if((e|0)<(j|0)){if(!j)i=0;else{c[6747]=(c[6747]|0)+1;e=kb((j<<2|3)+16|0)|0;if(!e)h=0;else{c[(e+4+15&-16)+-4>>2]=e;h=e+4+15&-16}e=c[b+108>>2]|0;g=c[b+116>>2]|0;i=h}if((e|0)<=0)if(!g)g=b+120|0;else o=66;else{h=0;do{c[i+(h<<2)>>2]=c[g+(h<<2)>>2];h=h+1|0}while((h|0)!=(e|0));o=66}if((o|0)==66){if(a[b+120>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0);e=c[b+108>>2]|0}c[b+116>>2]=0;g=b+120|0}a[g>>0]=1;c[b+116>>2]=i;c[b+112>>2]=j;g=i}}else e=h;c[g+(e<<2)>>2]=c[d+8>>2];d=e+1|0;c[b+108>>2]=d;b=c[b+32>>2]|0;c[b+12>>2]=(c[b+12>>2]|0)+1;c[b+16>>2]=g;d=((d|0)/3|0)+-1|0;return d|0}function Mc(a,b){a=a|0;b=b|0;var d=0.0,e=0,g=0,h=0,i=0,j=0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,t=0.0,u=0.0,v=0.0,x=0,y=0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0;x=ea;ea=ea+64|0;g=c[a+28>>2]|0;h=c[a+32>>2]|0;i=c[b+8>>2]|0;f[i>>2]=1.0;j=c[b+24>>2]|0;f[i+(j+1<<2)>>2]=1.0;f[i+((j<<1)+2<<2)>>2]=1.0;u=+f[a+48>>2];v=+f[a+52>>2];d=+f[a+56>>2];l=+f[g+4>>2]*u+ +f[g+8>>2]*v+ +f[g+12>>2]*d;k=u*+f[g+20>>2]+v*+f[g+24>>2]+d*+f[g+28>>2];d=u*+f[g+36>>2]+v*+f[g+40>>2]+d*+f[g+44>>2];i=c[b+12>>2]|0;c[i>>2]=0;f[i+4>>2]=d;f[i+8>>2]=-k;f[i+12>>2]=0.0;f[i+(j<<2)>>2]=-d;c[i+(j<<2)+4>>2]=0;f[i+(j<<2)+8>>2]=l;f[i+(j<<2)+12>>2]=0.0;f[i+(j<<1<<2)>>2]=k;f[i+(j<<1<<2)+4>>2]=-l;c[i+(j<<1<<2)+8>>2]=0;f[i+(j<<1<<2)+12>>2]=0.0;e=c[b+16>>2]|0;if(e|0){f[e>>2]=-1.0;f[e+(j+1<<2)>>2]=-1.0;f[e+((j<<1)+2<<2)>>2]=-1.0}q=+f[a+64>>2];v=+f[a+68>>2];u=+f[a+72>>2];r=+f[h+4>>2]*q+ +f[h+8>>2]*v+ +f[h+12>>2]*u;t=q*+f[h+20>>2]+v*+f[h+24>>2]+u*+f[h+28>>2];u=q*+f[h+36>>2]+v*+f[h+40>>2]+u*+f[h+44>>2];e=c[b+20>>2]|0;c[e>>2]=0;f[e+4>>2]=-u;f[e+8>>2]=t;f[e+12>>2]=0.0;f[e+(j<<2)>>2]=u;c[e+(j<<2)+4>>2]=0;f[e+(j<<2)+8>>2]=-r;f[e+(j<<2)+12>>2]=0.0;f[e+(j<<1<<2)>>2]=-t;f[e+(j<<1<<2)+4>>2]=r;c[e+(j<<1<<2)+8>>2]=0;f[e+(j<<1<<2)+12>>2]=0.0;v=+f[b>>2]*+f[b+4>>2];t=v*(t+ +f[h+56>>2]-k-+f[g+56>>2]);u=v*(u+ +f[h+60>>2]-d-+f[g+60>>2]);y=c[b+28>>2]|0;f[y>>2]=v*(r+ +f[h+52>>2]-l-+f[g+52>>2]);f[y+(j<<2)>>2]=t;f[y+(j<<1<<2)>>2]=u;f[i+(j*3<<2)>>2]=1.0;f[i+((j<<2|1)<<2)>>2]=1.0;f[i+((j*5|0)+2<<2)>>2]=1.0;if(e|0){f[e+(j*3<<2)>>2]=-1.0;f[e+((j<<2|1)<<2)>>2]=-1.0;f[e+((j*5|0)+2<<2)>>2]=-1.0}l=+f[h+24>>2];A=+f[h+44>>2];m=+f[h+28>>2];n=+f[h+40>>2];z=+f[h+36>>2];k=+f[h+20>>2];u=+f[h+4>>2];t=+f[h+8>>2];p=+f[h+12>>2];d=1.0/((l*A-m*n)*u+t*(m*z-A*k)+(n*k-l*z)*p);F=+f[g+4>>2];E=+f[g+8>>2];G=+f[g+12>>2];D=+f[g+20>>2];C=+f[g+24>>2];B=+f[g+28>>2];o=+f[g+36>>2];q=+f[g+40>>2];r=+f[g+44>>2];f[x+16>>2]=G*((n*k-l*z)*d)+(F*((l*A-m*n)*d)+E*((m*z-A*k)*d));f[x+16+4>>2]=G*((z*t-n*u)*d)+(F*((n*p-A*t)*d)+E*((A*u-z*p)*d));f[x+16+8>>2]=G*((l*u-k*t)*d)+(F*((m*t-l*p)*d)+E*((k*p-m*u)*d));f[x+16+12>>2]=0.0;f[x+16+16>>2]=(l*A-m*n)*d*D+(m*z-A*k)*d*C+(n*k-l*z)*d*B;f[x+16+20>>2]=(n*p-A*t)*d*D+(A*u-z*p)*d*C+(z*t-n*u)*d*B;f[x+16+24>>2]=(m*t-l*p)*d*D+(k*p-m*u)*d*C+(l*u-k*t)*d*B;f[x+16+28>>2]=0.0;f[x+16+32>>2]=(l*A-m*n)*d*o+(m*z-A*k)*d*q+(n*k-l*z)*d*r;f[x+16+36>>2]=(n*p-A*t)*d*o+(A*u-z*p)*d*q+(z*t-n*u)*d*r;f[x+16+40>>2]=(m*t-l*p)*d*o+(k*p-m*u)*d*q+(l*u-k*t)*d*r;f[x+16+44>>2]=0.0;Gg(x+16|0,x);r=+f[a+80>>2];d=+f[x>>2];t=+f[a+84>>2];k=+f[x+4>>2];u=+f[a+88>>2];l=+f[x+8>>2];q=+f[a+92>>2];m=+f[x+12>>2];if(!((r-d)*(r-d)+(t-k)*(t-k)+(u-l)*(u-l)+(q-m)*(q-m)<(r+d)*(r+d)+(t+k)*(t+k)+(u+l)*(u+l)+(q+m)*(q+m))){d=-d;k=-k;l=-l;m=-m}n=k*-u+(m*-r+d*q)-l*-t;o=l*-r+(m*-t+k*q)-d*-u;p=d*-t+(m*-u+l*q)-k*-r;d=m*q-d*-r-k*-t-l*-u;d=d<-1.0?-1.0:d;d=+w(+(d>1.0?1.0:d))*2.0;if(n*n+o*o+p*p<1.4210854715202004e-14){E=1.0;F=0.0;D=0.0;G=-d;E=E*G;F=F*G;G=D*G;a=c[b+28>>2]|0;y=c[b+24>>2]|0;E=v*E;b=y*3|0;b=a+(b<<2)|0;f[b>>2]=E;F=v*F;b=y<<2;b=a+(b<<2)|0;f[b>>2]=F;G=v*G;y=y*5|0;y=a+(y<<2)|0;f[y>>2]=G;ea=x;return}D=1.0/+s(+(n*n+o*o+p*p));E=n*D;F=o*D;D=p*D;G=-d;E=E*G;F=F*G;G=D*G;a=c[b+28>>2]|0;y=c[b+24>>2]|0;E=v*E;b=y*3|0;b=a+(b<<2)|0;f[b>>2]=E;F=v*F;b=y<<2;b=a+(b<<2)|0;f[b>>2]=F;G=v*G;y=y*5|0;y=a+(y<<2)|0;f[y>>2]=G;ea=x;return}function Nc(b,d,e){b=b|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0.0,n=0.0;l=ea;ea=ea+384|0;g=c[d+36>>2]|0;d=c[e+36>>2]|0;e=c[b+24>>2]|0;if(((e|0)==(c[b+28>>2]|0)?c[e+1132>>2]|0:0)?(j=(z(c[d+380>>2]|0,c[e+1112>>2]|0)|0)+(c[g+380>>2]|0)|0,a[(c[e+1140>>2]|0)+j>>0]|0):0){c[6407]=(c[6407]|0)+1;ea=l;return}c[l+328+4>>2]=35;c[l+328+8>>2]=0;c[l+328+12>>2]=1065353216;c[l+328+16>>2]=1065353216;c[l+328+20>>2]=1065353216;f[l+328+24>>2]=0.0;c[l+328>>2]=4500;c[l+328+52>>2]=g;f[l+328+44>>2]=0.0;c[l+272+4>>2]=35;c[l+272+8>>2]=0;c[l+272+12>>2]=1065353216;c[l+272+16>>2]=1065353216;c[l+272+20>>2]=1065353216;f[l+272+24>>2]=0.0;c[l+272>>2]=4500;c[l+272+52>>2]=d;f[l+272+44>>2]=0.0;if((a[24880]|0)==0?DC(24880)|0:0){if((a[24888]|0)==0?DC(24888)|0:0){c[6348]=1065353216;c[6349]=0;c[6350]=0;c[6351]=0;c[6352]=0;c[6353]=1065353216;c[6354]=0;c[6355]=0;c[6356]=0;c[6357]=0;c[6358]=1065353216;f[6359]=0.0;PB(24888)}c[6332]=c[6348];c[6333]=c[6349];c[6334]=c[6350];c[6335]=c[6351];c[6336]=c[6352];c[6337]=c[6353];c[6338]=c[6354];c[6339]=c[6355];c[6340]=c[6356];c[6341]=c[6357];c[6342]=c[6358];c[6343]=c[6359];c[6344]=0;c[6345]=0;c[6346]=0;c[6347]=0;PB(24880)}if((a[24880]|0)==0?DC(24880)|0:0){if((a[24888]|0)==0?DC(24888)|0:0){c[6348]=1065353216;c[6349]=0;c[6350]=0;c[6351]=0;c[6352]=0;c[6353]=1065353216;c[6354]=0;c[6355]=0;c[6356]=0;c[6357]=0;c[6358]=1065353216;f[6359]=0.0;PB(24888)}c[6332]=c[6348];c[6333]=c[6349];c[6334]=c[6350];c[6335]=c[6351];c[6336]=c[6352];c[6337]=c[6353];c[6338]=c[6354];c[6339]=c[6355];c[6340]=c[6356];c[6341]=c[6357];c[6342]=c[6358];c[6343]=c[6359];c[6344]=0;c[6345]=0;c[6346]=0;c[6347]=0;PB(24880)}n=+f[g+232>>2]-+f[d+232>>2];m=+f[g+236>>2]-+f[d+236>>2];f[l>>2]=+f[g+228>>2]-+f[d+228>>2];f[l+4>>2]=n;f[l+8>>2]=m;f[l+12>>2]=0.0;if(!(!(Fc(l+328|0,25328,l+272|0,25328,l,l+216|0)|0)?!(Bb(l+328|0,25328,l+272|0,25328,l,l+216|0,0)|0):0))h=19;if((h|0)==19?(c[l+4>>2]=0,c[l+4+4>>2]=0,c[l+4+8>>2]=0,c[l+4+12>>2]=0,c[l+4+16>>2]=0,c[l+4+20>>2]=0,a[l+152>>0]=0,c[l>>2]=4320,Yb(b,l+216|0,g,0,0,d,0,0,l)|0):0){c[6747]=(c[6747]|0)+1;d=kb(235)|0;if(!d)j=0;else{c[(d+4+15&-16)+-4>>2]=d;j=d+4+15&-16}e=j+4|0;d=j+152|0;hk(e|0,0,212)|0;c[j>>2]=4320;g=l+4|0;h=e+100|0;do{c[e>>2]=c[g>>2];e=e+4|0;g=g+4|0}while((e|0)<(h|0));e=j+104|0;c[e>>2]=c[l+104>>2];c[e+4>>2]=c[l+104+4>>2];c[e+8>>2]=c[l+104+8>>2];c[e+12>>2]=c[l+104+12>>2];e=j+120|0;c[e>>2]=c[l+120>>2];c[e+4>>2]=c[l+120+4>>2];c[e+8>>2]=c[l+120+8>>2];c[e+12>>2]=c[l+120+12>>2];e=j+136|0;c[e>>2]=c[l+136>>2];c[e+4>>2]=c[l+136+4>>2];c[e+8>>2]=c[l+136+8>>2];c[e+12>>2]=c[l+136+12>>2];a[d>>0]=a[l+152>>0]|0;e=j+156|0;g=l+156|0;h=e+60|0;do{c[e>>2]=c[g>>2];e=e+4|0;g=g+4|0}while((e|0)<(h|0));h=c[b+24>>2]|0;i=j;d=c[h+852>>2]|0;if((d|0)==(c[h+856>>2]|0)?(k=(d|0)==0?1:d<<1,(d|0)<(k|0)):0){if(!k)e=0;else{c[6747]=(c[6747]|0)+1;d=kb((k<<2|3)+16|0)|0;if(!d)e=0;else{c[(d+4+15&-16)+-4>>2]=d;e=d+4+15&-16}d=c[h+852>>2]|0}if((d|0)>0){g=0;do{c[e+(g<<2)>>2]=c[(c[h+860>>2]|0)+(g<<2)>>2];g=g+1|0}while((g|0)!=(d|0))}g=c[h+860>>2]|0;if(g){if(a[h+864>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0);d=c[h+852>>2]|0}c[h+860>>2]=0}a[h+864>>0]=1;c[h+860>>2]=e;c[h+856>>2]=k}c[(c[h+860>>2]|0)+(d<<2)>>2]=i;c[h+852>>2]=d+1;i=c[b+24>>2]|0;k=c[b+28>>2]|0;m=+f[i+348>>2];n=+f[k+348>>2];b=j+64|0;f[b>>2]=+f[b>>2]*(m>n?m:n);b=j+68|0;f[b>>2]=+f[b>>2]*((+f[i+360>>2]+ +f[k+360>>2])*.5)}ea=l;return}function Oc(b,d,e){b=b|0;d=d|0;e=e|0;var g=0.0,h=0,i=0,j=0,k=0,l=0,m=0,n=0.0,o=0,p=0,q=0,r=0;o=ea;ea=ea+128|0;c[b+68>>2]=(c[b+68>>2]|0)+1;c[o>>2]=c[d>>2];c[o+4>>2]=c[d+4>>2];c[o+8>>2]=c[d+8>>2];c[o+12>>2]=c[d+12>>2];c[o+16>>2]=c[d+16>>2];c[o+16+4>>2]=c[d+16+4>>2];c[o+16+8>>2]=c[d+16+8>>2];c[o+16+12>>2]=c[d+16+12>>2];c[o+32>>2]=c[d+32>>2];c[o+32+4>>2]=c[d+32+4>>2];c[o+32+8>>2]=c[d+32+8>>2];c[o+32+12>>2]=c[d+32+12>>2];c[o+48>>2]=c[d+48>>2];c[o+48+4>>2]=c[d+48+4>>2];c[o+48+8>>2]=c[d+48+8>>2];c[o+48+12>>2]=c[d+48+12>>2];m=c[e+4>>2]|0;n=+ha[c[(c[e>>2]|0)+48>>2]&15](e);Pa[c[(c[e>>2]|0)+8>>2]&127](e,d,o+112|0,o+96|0);g=+f[o+112>>2];if(+f[b+32>>2]>g)f[b+32>>2]=g;g=+f[o+96>>2];if(+f[b+48>>2]>2]=g;g=+f[o+112+4>>2];if(+f[b+36>>2]>g)f[b+36>>2]=g;g=+f[o+96+4>>2];if(+f[b+52>>2]>2]=g;g=+f[o+112+8>>2];if(+f[b+40>>2]>g)f[b+40>>2]=g;g=+f[o+96+8>>2];if(+f[b+56>>2]>2]=g;k=c[b+64>>2]|0;if(!k){j=0;k=b+16|0}else{c[o+64>>2]=c[o+112>>2];c[o+64+4>>2]=c[o+112+4>>2];c[o+64+8>>2]=c[o+112+8>>2];c[o+64+12>>2]=c[o+112+12>>2];c[o+64+16>>2]=c[o+96>>2];c[o+64+16+4>>2]=c[o+96+4>>2];c[o+64+16+8>>2]=c[o+96+8>>2];c[o+64+16+12>>2]=c[o+96+12>>2];j=c[b+16>>2]|0;d=c[k+4>>2]|0;if(!d){c[6747]=(c[6747]|0)+1;d=kb(63)|0;if(!d)d=0;else{c[(d+4+15&-16)+-4>>2]=d;d=d+4+15&-16}h=d;i=h+44|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(i|0))}else c[k+4>>2]=0;c[d+32>>2]=0;c[d+36>>2]=j;c[d+40>>2]=0;c[d>>2]=c[o+64>>2];c[d+4>>2]=c[o+64+4>>2];c[d+8>>2]=c[o+64+8>>2];c[d+12>>2]=c[o+64+12>>2];c[d+16>>2]=c[o+64+16>>2];c[d+20>>2]=c[o+64+20>>2];c[d+24>>2]=c[o+64+24>>2];c[d+28>>2]=c[o+64+28>>2];je(k,c[k>>2]|0,d);c[k+12>>2]=(c[k+12>>2]|0)+1;j=d;k=b+16|0}d=c[k>>2]|0;if((d|0)==(c[b+20>>2]|0)?(l=(d|0)==0?1:d<<1,(d|0)<(l|0)):0){if(!l)h=0;else{c[6747]=(c[6747]|0)+1;d=kb((l*80|3)+16|0)|0;if(!d)h=0;else{c[(d+4+15&-16)+-4>>2]=d;h=d+4+15&-16}d=c[k>>2]|0}if((d|0)>0){i=0;do{p=h+(i*80|0)|0;q=c[b+24>>2]|0;r=q+(i*80|0)|0;c[p>>2]=c[r>>2];c[p+4>>2]=c[r+4>>2];c[p+8>>2]=c[r+8>>2];c[p+12>>2]=c[r+12>>2];p=q+(i*80|0)+16|0;r=h+(i*80|0)+16|0;c[r>>2]=c[p>>2];c[r+4>>2]=c[p+4>>2];c[r+8>>2]=c[p+8>>2];c[r+12>>2]=c[p+12>>2];r=q+(i*80|0)+32|0;p=h+(i*80|0)+32|0;c[p>>2]=c[r>>2];c[p+4>>2]=c[r+4>>2];c[p+8>>2]=c[r+8>>2];c[p+12>>2]=c[r+12>>2];p=h+(i*80|0)+48|0;r=q+(i*80|0)+48|0;c[p>>2]=c[r>>2];c[p+4>>2]=c[r+4>>2];c[p+8>>2]=c[r+8>>2];c[p+12>>2]=c[r+12>>2];p=h+(i*80|0)+64|0;q=q+(i*80|0)+64|0;c[p>>2]=c[q>>2];c[p+4>>2]=c[q+4>>2];c[p+8>>2]=c[q+8>>2];c[p+12>>2]=c[q+12>>2];i=i+1|0}while((i|0)!=(d|0))}d=c[b+24>>2]|0;if(d|0){if(a[b+28>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+24>>2]=0}a[b+28>>0]=1;c[b+24>>2]=h;c[b+20>>2]=l;d=c[k>>2]|0}r=c[b+24>>2]|0;q=r+(d*80|0)|0;c[q>>2]=c[o>>2];c[q+4>>2]=c[o+4>>2];c[q+8>>2]=c[o+8>>2];c[q+12>>2]=c[o+12>>2];q=r+(d*80|0)+16|0;c[q>>2]=c[o+16>>2];c[q+4>>2]=c[o+16+4>>2];c[q+8>>2]=c[o+16+8>>2];c[q+12>>2]=c[o+16+12>>2];q=r+(d*80|0)+32|0;c[q>>2]=c[o+32>>2];c[q+4>>2]=c[o+32+4>>2];c[q+8>>2]=c[o+32+8>>2];c[q+12>>2]=c[o+32+12>>2];q=r+(d*80|0)+48|0;c[q>>2]=c[o+48>>2];c[q+4>>2]=c[o+48+4>>2];c[q+8>>2]=c[o+48+8>>2];c[q+12>>2]=c[o+48+12>>2];r=r+(d*80|0)+64|0;c[r>>2]=e;c[r+4>>2]=m;f[r+8>>2]=n;c[r+12>>2]=j;c[k>>2]=(c[k>>2]|0)+1;ea=o;return}function Pc(b,d,e,g){b=b|0;d=d|0;e=e|0;g=+g;var h=0,i=0,j=0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,t=0.0,u=0.0,v=0.0,w=0,x=0,y=0,z=0,A=0.0,B=0.0,C=0.0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;z=ea;ea=ea+192|0;j=c[b+4>>2]|0;q=+f[j+752>>2];if(q>2]|0;x=c[(c[b+8>>2]|0)+8>>2]|0;l=+f[e>>2];n=+f[d>>2]*g+l;m=+f[e+4>>2];p=+f[d+4>>2]*g+m;k=+f[e+8>>2];o=+f[d+8>>2]*g+k;if((w|0)!=(x|0)){y=c[(c[b+12>>2]|0)+8>>2]|0;B=n-+f[y+52>>2];A=p-+f[y+56>>2];v=o-+f[y+60>>2];h=x;t=B*+f[y+4>>2]+A*+f[y+20>>2]+v*+f[y+36>>2];u=B*+f[y+8>>2]+A*+f[y+24>>2]+v*+f[y+40>>2];v=B*+f[y+12>>2]+A*+f[y+28>>2]+v*+f[y+44>>2];y=b+12|0}else{A=n-+f[w+52>>2];B=p-+f[w+56>>2];v=o-+f[w+60>>2];h=c[(c[b+12>>2]|0)+8>>2]|0;t=A*+f[w+4>>2]+B*+f[w+20>>2]+v*+f[w+36>>2];u=A*+f[w+8>>2]+B*+f[w+24>>2]+v*+f[w+40>>2];v=A*+f[w+12>>2]+B*+f[w+28>>2]+v*+f[w+44>>2];y=b+12|0}C=l-+f[h+52>>2];l=m-+f[h+56>>2];B=k-+f[h+60>>2];m=C*+f[h+4>>2]+l*+f[h+20>>2]+B*+f[h+36>>2];A=C*+f[h+8>>2]+l*+f[h+24>>2]+B*+f[h+40>>2];B=C*+f[h+12>>2]+l*+f[h+28>>2]+B*+f[h+44>>2];f[z>>2]=t;f[z+4>>2]=u;f[z+8>>2]=v;f[z+12>>2]=0.0;f[z+16>>2]=m;f[z+20>>2]=A;f[z+24>>2]=B;f[z+28>>2]=0.0;c[z+64>>2]=c[d>>2];c[z+64+4>>2]=c[d+4>>2];c[z+64+8>>2]=c[d+8>>2];c[z+64+12>>2]=c[d+12>>2];f[z+80>>2]=g;f[z+84>>2]=0.0;f[z+88>>2]=0.0;f[z+92>>2]=0.0;c[z+112>>2]=0;a[z+116>>0]=0;c[z+120>>2]=0;c[z+120+4>>2]=0;c[z+120+8>>2]=0;c[z+120+12>>2]=0;c[z+120+16>>2]=0;c[z+120+20>>2]=0;c[z+120+24>>2]=0;c[z+120+28>>2]=0;f[z+48>>2]=n;f[z+52>>2]=p;f[z+56>>2]=o;f[z+60>>2]=0.0;c[z+32>>2]=c[e>>2];c[z+32+4>>2]=c[e+4>>2];c[z+32+8>>2]=c[e+8>>2];c[z+32+12>>2]=c[e+12>>2];e=c[j+748>>2]|0;if((e|0)>0){i=0;d=-1;k=q*q;while(1){l=+f[j+4+(i*184|0)>>2]-t;n=+f[j+4+(i*184|0)+4>>2]-u;m=+f[j+4+(i*184|0)+8>>2]-v;h=l*l+n*n+m*m>2]|0)+8>>2]|0;j=c[(c[y>>2]|0)+8>>2]|0;k=+f[i+224>>2]*+f[j+224>>2];k=k<-10.0?-10.0:k;f[z+84>>2]=k>10.0?10.0:k;f[z+92>>2]=+f[i+228>>2]*+f[j+228>>2];k=+f[i+232>>2]*+f[j+232>>2];k=k<-10.0?-10.0:k;f[z+88>>2]=k>10.0?10.0:k;k=+f[z+72>>2];if(+r(+k)>.7071067690849304){B=+f[z+68>>2];C=1.0/+s(+(k*k+B*B));A=+f[z+64>>2];l=B*C;m=A*-(k*C);n=0.0;o=-(k*C);p=(k*k+B*B)*C;k=-(A*(B*C))}else{p=+f[z+64>>2];B=+f[z+68>>2];C=1.0/+s(+(p*p+B*B));l=0.0;m=(p*p+B*B)*C;n=-(B*C);o=p*C;p=-(k*(p*C));k=k*-(B*C)}f[z+152>>2]=n;f[z+156>>2]=o;f[z+160>>2]=l;f[z+168>>2]=p;f[z+172>>2]=k;f[z+176>>2]=m;if((w|0)!=(x|0)){h=b+24|0;e=b+28|0;i=b+16|0;j=b+20|0}else{h=b+28|0;e=b+24|0;i=b+20|0;j=b+16|0}h=c[h>>2]|0;e=c[e>>2]|0;i=c[i>>2]|0;c[z+96>>2]=c[j>>2];c[z+100>>2]=i;c[z+104>>2]=e;c[z+108>>2]=h;h=c[b+4>>2]|0;if((d|0)>-1){j=h+4+(d*184|0)+148|0;i=c[j>>2]|0;G=h+4+(d*184|0)+120|0;H=c[G>>2]|0;E=h+4+(d*184|0)+124|0;F=c[E>>2]|0;e=h+4+(d*184|0)+128|0;D=c[e>>2]|0;I=h+4+(d*184|0)+112|0;J=c[I>>2]|0;vh(h+4+(d*184|0)|0,z|0,184)|0;c[I>>2]=J;c[G>>2]=H;c[E>>2]=F;c[e>>2]=D;c[j>>2]=i}else d=Rd(h,z)|0;h=c[6722]|0;do if(h|0){if((c[(c[(c[b+8>>2]|0)+8>>2]|0)+204>>2]&8|0)==0?(c[(c[(c[y>>2]|0)+8>>2]|0)+204>>2]&8|0)==0:0)break;ya[h&0]((c[b+4>>2]|0)+4+(d*184|0)|0,c[((w|0)!=(x|0)?y:b+8|0)>>2]|0,c[z+96>>2]|0,c[z+104>>2]|0,c[((w|0)!=(x|0)?b+8|0:y)>>2]|0,c[z+100>>2]|0,c[z+108>>2]|0)|0}while(0);ea=z;return}function Qc(a,b){a=a|0;b=b|0;var d=0,e=0.0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;F=ea;ea=ea+16|0;Fi(13690);E=c[a+712>>2]|0;if((E|0)>0){c[6747]=(c[6747]|0)+1;d=kb((E<<4|3)+16|0)|0;if(!d)h=0;else{c[(d+4+15&-16)+-4>>2]=d;h=d+4+15&-16}hk(h|0,0,E<<4|0)|0;g=c[a+712>>2]|0;if((g|0)>0){c[6747]=(c[6747]|0)+1;d=kb((g<<2|3)+16|0)|0;if(!d)d=0;else{c[(d+4+15&-16)+-4>>2]=d;d=d+4+15&-16}hk(d|0,0,g<<2|0)|0;C=d;D=h;A=h;z=d}else{C=0;D=h;A=h;z=0}}else{C=0;D=0;A=0;z=0}y=c[a+1112>>2]|0;if(b){if((y|0)>0){g=c[a+1120>>2]|0;i=0;do{h=c[g+(i<<2)>>2]|0;d=c[h+312>>2]|0;if(d|0){f[h+276>>2]=1.0/+(d|0)*+f[h+276>>2];f[h+280>>2]=1.0/+(d|0)*+f[h+280>>2];f[h+284>>2]=1.0/+(d|0)*+f[h+284>>2];f[h+292>>2]=1.0/+(d|0)*+f[h+292>>2];f[h+296>>2]=1.0/+(d|0)*+f[h+296>>2];f[h+300>>2]=1.0/+(d|0)*+f[h+300>>2]}i=i+1|0}while((i|0)!=(y|0));B=14}}else B=14;if((B|0)==14?(y|0)>0:0){k=c[a+1120>>2]|0;if(b){b=0;do{d=c[k+(b<<2)>>2]|0;if((c[d+312>>2]|0)>0?(v=+f[a+452>>2],p=+f[d+276>>2]*v,t=v*+f[d+280>>2],x=v*+f[d+284>>2],n=v*+f[d+292>>2],r=v*+f[d+296>>2],v=v*+f[d+300>>2],l=c[d+24>>2]|0,(l|0)>0):0){g=c[d+32>>2]|0;h=c[a+720>>2]|0;i=c[d+12>>2]|0;j=0;do{m=c[g+(j<<2)>>2]|0;w=+f[i+(j<<2)>>2];u=+f[m+8>>2]-+f[d+228>>2];s=+f[m+12>>2]-+f[d+232>>2];q=+f[m+16>>2]-+f[d+236>>2];G=A+(((m-h|0)/104|0)<<4)|0;f[G>>2]=+f[G>>2]+w*(p+(r*q-v*s));G=A+(((m-h|0)/104|0)<<4)+4|0;f[G>>2]=+f[G>>2]+w*(t+(v*u-n*q));G=A+(((m-h|0)/104|0)<<4)+8|0;f[G>>2]=w*(x+(n*s-r*u))+ +f[G>>2];m=z+(((m-h|0)/104|0)<<2)|0;f[m>>2]=w+ +f[m>>2];j=j+1|0}while((j|0)!=(l|0))}b=b+1|0}while((b|0)!=(y|0))}else{b=0;do{d=c[k+(b<<2)>>2]|0;if((c[d+308>>2]|0)>0?(u=+f[a+452>>2],o=+f[d+244>>2]*u,s=u*+f[d+248>>2],w=u*+f[d+252>>2],e=u*+f[d+260>>2],q=u*+f[d+264>>2],u=u*+f[d+268>>2],m=c[d+24>>2]|0,(m|0)>0):0){g=c[d+32>>2]|0;h=c[a+720>>2]|0;i=c[d+12>>2]|0;j=0;do{G=c[g+(j<<2)>>2]|0;x=+f[i+(j<<2)>>2];v=+f[G+8>>2]-+f[d+228>>2];t=+f[G+12>>2]-+f[d+232>>2];r=+f[G+16>>2]-+f[d+236>>2];l=A+(((G-h|0)/104|0)<<4)|0;f[l>>2]=+f[l>>2]+x*(o+(q*r-u*t));l=A+(((G-h|0)/104|0)<<4)+4|0;f[l>>2]=+f[l>>2]+x*(s+(u*v-e*r));l=A+(((G-h|0)/104|0)<<4)+8|0;f[l>>2]=x*(w+(e*t-q*v))+ +f[l>>2];G=z+(((G-h|0)/104|0)<<2)|0;f[G>>2]=x+ +f[G>>2];j=j+1|0}while((j|0)!=(m|0))}b=b+1|0}while((b|0)!=(y|0))}}if((E|0)>0){d=0;do{e=+f[z+(d<<2)>>2];if(e>0.0){w=1.0/e*+f[A+(d<<4)+4>>2];x=1.0/e*+f[A+(d<<4)+8>>2];G=c[a+720>>2]|0;y=G+(d*104|0)+8|0;f[y>>2]=1.0/e*+f[A+(d<<4)>>2]+ +f[y>>2];y=G+(d*104|0)+12|0;f[y>>2]=w+ +f[y>>2];G=G+(d*104|0)+16|0;f[G>>2]=x+ +f[G>>2]}d=d+1|0}while((d|0)!=(E|0));if(C|0)B=35}else if(!((z|0)==0|(C|0)==0))B=35;if((B|0)==35){c[6748]=(c[6748]|0)+1;uc(c[C+-4>>2]|0)}if(!((A|0)==0|(D|0)==0)){c[6748]=(c[6748]|0)+1;uc(c[D+-4>>2]|0)}d=c[2685]|0;G=(c[d+16>>2]|0)+-1|0;c[d+16>>2]=G;if(G|0){ea=F;return}do if(c[d+4>>2]|0){Y(F|0,0)|0;G=c[6746]|0;f[d+8>>2]=+f[d+8>>2]+ +(((c[F+4>>2]|0)-(c[G+4>>2]|0)+(((c[F>>2]|0)-(c[G>>2]|0)|0)*1e6|0)-(c[d+12>>2]|0)|0)>>>0)/1.0e3;if(!(c[d+16>>2]|0)){d=c[2685]|0;break}else{ea=F;return}}while(0);c[2685]=c[d+20>>2];ea=F;return}function Rc(b,d,e,g,i,j){b=b|0;d=d|0;e=e|0;g=g|0;i=i|0;j=j|0;var k=0,l=0.0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0,D=0;C=ea;ea=ea+272|0;z=+f[e+48>>2]-+f[d+48>>2];B=+f[e+52>>2]-+f[d+52>>2];A=+f[e+56>>2]-+f[d+56>>2];Ee(d,e,C+256|0,C+208|0);v=+f[C+208>>2];t=+f[C+256>>2]*v;u=v*+f[C+256+4>>2];v=v*+f[C+256+8>>2];f[C+192>>2]=t;f[C+192+4>>2]=u;f[C+192+8>>2]=v;f[C+192+12>>2]=0.0;w=+f[i+48>>2]-+f[g+48>>2];y=+f[i+52>>2]-+f[g+52>>2];x=+f[i+56>>2]-+f[g+56>>2];Ee(g,i,C+256|0,C+208|0);r=+f[C+208>>2];p=+f[C+256>>2]*r;q=r*+f[C+256+4>>2];r=r*+f[C+256+8>>2];f[C+176>>2]=p;f[C+176+4>>2]=q;f[C+176+8>>2]=r;f[C+176+12>>2]=0.0;e=c[b+12>>2]|0;o=+ha[c[(c[e>>2]|0)+16>>2]&15](e);e=c[b+16>>2]|0;if(!e)l=0.0;else l=+ha[c[(c[e>>2]|0)+16>>2]&15](e);r=o*+s(+(t*t+u*u+v*v))+l*+s(+(p*p+q*q+r*r));if(r+ +s(+((w-z)*(w-z)+(y-B)*(y-B)+(x-A)*(x-A)))==0.0){j=0;ea=C;return j|0}c[C+208>>2]=10472;f[C+208+36>>2]=999999984306749440.0;a[C+208+40>>0]=0;Ec(b,d,g,C+208|0);i=(a[C+208+40>>0]|0)==0;c[C+256>>2]=c[C+208+20>>2];c[C+256+4>>2]=c[C+208+20+4>>2];c[C+256+8>>2]=c[C+208+20+8>>2];c[C+256+12>>2]=c[C+208+20+12>>2];a:do if(!i?(n=c[C+208+4>>2]|0,k=c[C+208+8>>2]|0,m=c[C+208+12>>2]|0,v=(w-z)*(c[h>>2]=n,+f[h>>2]),v=v+(y-B)*(c[h>>2]=k,+f[h>>2]),!(r+(v+(x-A)*(c[h>>2]=m,+f[h>>2]))<=1.1920928955078125e-07)):0){l=+f[C+208+16>>2];o=+f[j+172>>2]+ +f[C+208+36>>2];b:do if(o>1.0000000474974513e-03){p=o;q=0.0;i=0;while(1){e=c[j+168>>2]|0;if(e|0){D=c[(c[e>>2]|0)+20>>2]|0;c[C+112>>2]=1065353216;c[C+112+4>>2]=1065353216;c[C+112+8>>2]=1065353216;f[C+112+12>>2]=0.0;Ka[D&7](e,C+256|0,.20000000298023224,C+112|0)}l=(w-z)*(c[h>>2]=n,+f[h>>2]);l=l+(y-B)*(c[h>>2]=k,+f[h>>2]);l=r+(l+(x-A)*(c[h>>2]=m,+f[h>>2]));if(l<=1.1920928955078125e-07){k=0;break a}o=q+p/l;if(!(!(o<=q)&(!(o<0.0)&!(o>1.0)))){k=0;break a}ag(d,z,B,A,C+192|0,o,C+112|0);ag(g,w,y,x,C+176|0,o,C+48|0);k=c[j+168>>2]|0;if(k|0){D=c[(c[k>>2]|0)+20>>2]|0;c[C>>2]=1065353216;c[C+4>>2]=0;c[C+8>>2]=0;f[C+12>>2]=0.0;Ka[D&7](k,C+112+48|0,.20000000298023224,C)}Da[c[c[j>>2]>>2]&31](j,o);c[C>>2]=10472;f[C+36>>2]=999999984306749440.0;a[C+40>>0]=0;Ec(b,C+112|0,C+48|0,C);if(!(a[C+40>>0]|0)){k=17;break}p=+f[C+36>>2]+ +f[j+172>>2];c[C+256>>2]=c[C+20>>2];c[C+256+4>>2]=c[C+20+4>>2];c[C+256+8>>2]=c[C+20+8>>2];c[C+256+12>>2]=c[C+20+12>>2];n=c[C+4>>2]|0;k=c[C+8>>2]|0;m=c[C+12>>2]|0;e=i+1|0;if(i>>>0>63){k=18;break}if(!(p>1.0000000474974513e-03)){l=+f[C+16>>2];break b}else{q=o;i=e}}if((k|0)==17)Ma[c[(c[j>>2]|0)+8>>2]&127](j,-1,i);else if((k|0)==18)Ma[c[(c[j>>2]|0)+8>>2]&127](j,-2,e);k=0;break a}else o=0.0;while(0);f[j+164>>2]=o;c[j+132>>2]=n;c[j+136>>2]=k;c[j+140>>2]=m;f[j+144>>2]=l;c[j+148>>2]=c[C+256>>2];c[j+148+4>>2]=c[C+256+4>>2];c[j+148+8>>2]=c[C+256+8>>2];c[j+148+12>>2]=c[C+256+12>>2];k=1}else k=0;while(0);D=k;ea=C;return D|0}function Sc(a,b,d,e,g){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;var h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0,A=0.0,B=0.0,C=0.0,D=0.0,E=0,F=0;E=ea;ea=ea+32|0;A=+f[b+48>>2]-+f[b+112>>2];h=+f[b+52>>2]-+f[b+116>>2];D=+f[b+56>>2]-+f[b+120>>2];B=A*+f[b+64>>2]+h*+f[b+80>>2]+D*+f[b+96>>2];C=A*+f[b+68>>2]+h*+f[b+84>>2]+D*+f[b+100>>2];D=A*+f[b+72>>2]+h*+f[b+88>>2]+D*+f[b+104>>2];e=c[a+8>>2]|0;z=c[a+4>>2]|0;h=+f[z+28>>2]*+f[z+12>>2];A=h+ +f[a+12>>2];o=+f[e+72>>2];p=+f[e+56>>2];q=+f[e+76>>2];r=+f[e+60>>2];t=+f[e+80>>2];u=+f[e+64>>2];v=+f[e+88>>2];w=+f[e+92>>2];x=+f[e+96>>2];j=(q-r)*(x-u)-(t-u)*(w-r);l=(t-u)*(v-p)-(o-p)*(x-u);n=(o-p)*(w-r)-(q-r)*(v-p);m=1.0/+s(+(n*n+(j*j+l*l)));i=(D-u)*(n*m)+((B-p)*(j*m)+(C-r)*(l*m));if(i<0.0){y=-i;k=-(j*m);i=-(l*m);j=-(n*m)}else{y=i;k=j*m;i=l*m;j=n*m}if(!(y0.0&(n>0.0&t>0.0)|x<=0.0&(n<=0.0&t<=0.0))){if((ra[c[(c[e>>2]|0)+100>>2]&127](e)|0)<=0){ea=E;return}n=0.0;m=0.0;l=0.0;e=0;z=0;do{F=c[a+8>>2]|0;Pa[c[(c[F>>2]|0)+104>>2]&127](F,z,E+16|0,E);o=+f[E+16>>2];w=+f[E+16+4>>2];u=+f[E+16+8>>2];t=+f[E>>2]-o;x=+f[E+4>>2]-w;v=+f[E+8>>2]-u;do if((B-o)*t+(C-w)*x+(D-u)*v>0.0)if((B-o)*t+(C-w)*x+(D-u)*v>2]|0}while((z|0)<(ra[c[(c[F>>2]|0)+100>>2]&127](F)|0));if(!(e&1)){ea=E;return}else{r=n;q=m;p=l;m=A*A}}else{r=B-y*k;q=D-y*j;p=C-y*i;m=A*A}n=B-r;o=C-p;l=D-q;if(!(n*n+o*o+l*l1.1920928955078125e-07){i=+s(+(n*n+o*o+l*l));h=h-i;k=n*(1.0/i);j=l*(1.0/i);i=o*(1.0/i)}h=-h;if(g){x=+f[b+64>>2];y=+f[b+68>>2];A=+f[b+72>>2];B=x*k+y*i+A*j;n=+f[b+80>>2];o=+f[b+84>>2];t=+f[b+88>>2];C=k*n+i*o+j*t;u=+f[b+96>>2];v=+f[b+100>>2];w=+f[b+104>>2];D=k*u+i*v+j*w;f[E+16>>2]=-B;f[E+16+4>>2]=-C;f[E+16+8>>2]=-D;f[E+16+12>>2]=0.0;C=r*n+p*o+q*t+ +f[b+116>>2]+C*h;D=r*u+p*v+q*w+ +f[b+120>>2]+D*h;f[E>>2]=r*x+p*y+q*A+ +f[b+112>>2]+B*h;f[E+4>>2]=C;f[E+8>>2]=D;f[E+12>>2]=0.0;Na[c[(c[d>>2]|0)+16>>2]&15](d,E+16|0,E,h);ea=E;return}else{F=c[(c[d>>2]|0)+16>>2]|0;y=+f[b+64>>2];A=+f[b+68>>2];B=+f[b+72>>2];u=+f[b+80>>2];v=+f[b+84>>2];C=+f[b+88>>2];w=+f[b+96>>2];x=+f[b+100>>2];D=+f[b+104>>2];f[E+16>>2]=y*k+A*i+B*j;f[E+16+4>>2]=k*u+i*v+j*C;f[E+16+8>>2]=k*w+i*x+j*D;f[E+16+12>>2]=0.0;C=r*u+p*v+q*C+ +f[b+116>>2];D=r*w+p*x+q*D+ +f[b+120>>2];f[E>>2]=r*y+p*A+q*B+ +f[b+112>>2];f[E+4>>2]=C;f[E+8>>2]=D;f[E+12>>2]=0.0;Na[F&15](d,E+16|0,E,h);ea=E;return}}function Tc(a,b,d,e,g){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0;h=ea;ea=ea+768|0;j=c[(c[a>>2]|0)+8>>2]|0;i=NJ(b)|0;qs(h+736|0,i,i+4|0,i+8|0);dw(h+752|0,e,+f[h+736>>2],+f[h+736+4>>2],+f[h+736+8>>2]);d=NJ(d)|0;qs(h+704|0,d,i+4|0,i+8|0);dw(h+720|0,e,+f[h+704>>2],+f[h+704+4>>2],+f[h+704+8>>2]);Pa[j&127](a,h+752|0,h+720|0,g);b=c[(c[a>>2]|0)+8>>2]|0;qs(h+672|0,d,i+4|0,i+8|0);dw(h+688|0,e,+f[h+672>>2],+f[h+672+4>>2],+f[h+672+8>>2]);qs(h+640|0,d,d+4|0,i+8|0);dw(h+656|0,e,+f[h+640>>2],+f[h+640+4>>2],+f[h+640+8>>2]);Pa[b&127](a,h+688|0,h+656|0,g);b=c[(c[a>>2]|0)+8>>2]|0;qs(h+608|0,d,d+4|0,i+8|0);dw(h+624|0,e,+f[h+608>>2],+f[h+608+4>>2],+f[h+608+8>>2]);qs(h+576|0,i,d+4|0,i+8|0);dw(h+592|0,e,+f[h+576>>2],+f[h+576+4>>2],+f[h+576+8>>2]);Pa[b&127](a,h+624|0,h+592|0,g);b=c[(c[a>>2]|0)+8>>2]|0;qs(h+544|0,i,d+4|0,i+8|0);dw(h+560|0,e,+f[h+544>>2],+f[h+544+4>>2],+f[h+544+8>>2]);qs(h+512|0,i,i+4|0,i+8|0);dw(h+528|0,e,+f[h+512>>2],+f[h+512+4>>2],+f[h+512+8>>2]);Pa[b&127](a,h+560|0,h+528|0,g);b=c[(c[a>>2]|0)+8>>2]|0;qs(h+480|0,i,i+4|0,i+8|0);dw(h+496|0,e,+f[h+480>>2],+f[h+480+4>>2],+f[h+480+8>>2]);qs(h+448|0,i,i+4|0,d+8|0);dw(h+464|0,e,+f[h+448>>2],+f[h+448+4>>2],+f[h+448+8>>2]);Pa[b&127](a,h+496|0,h+464|0,g);b=c[(c[a>>2]|0)+8>>2]|0;qs(h+416|0,d,i+4|0,i+8|0);dw(h+432|0,e,+f[h+416>>2],+f[h+416+4>>2],+f[h+416+8>>2]);qs(h+384|0,d,i+4|0,d+8|0);dw(h+400|0,e,+f[h+384>>2],+f[h+384+4>>2],+f[h+384+8>>2]);Pa[b&127](a,h+432|0,h+400|0,g);b=c[(c[a>>2]|0)+8>>2]|0;qs(h+352|0,d,d+4|0,i+8|0);dw(h+368|0,e,+f[h+352>>2],+f[h+352+4>>2],+f[h+352+8>>2]);qs(h+320|0,d,d+4|0,d+8|0);dw(h+336|0,e,+f[h+320>>2],+f[h+320+4>>2],+f[h+320+8>>2]);Pa[b&127](a,h+368|0,h+336|0,g);b=c[(c[a>>2]|0)+8>>2]|0;qs(h+288|0,i,d+4|0,i+8|0);dw(h+304|0,e,+f[h+288>>2],+f[h+288+4>>2],+f[h+288+8>>2]);qs(h+256|0,i,d+4|0,d+8|0);dw(h+272|0,e,+f[h+256>>2],+f[h+256+4>>2],+f[h+256+8>>2]);Pa[b&127](a,h+304|0,h+272|0,g);b=c[(c[a>>2]|0)+8>>2]|0;qs(h+224|0,i,i+4|0,d+8|0);dw(h+240|0,e,+f[h+224>>2],+f[h+224+4>>2],+f[h+224+8>>2]);qs(h+192|0,d,i+4|0,d+8|0);dw(h+208|0,e,+f[h+192>>2],+f[h+192+4>>2],+f[h+192+8>>2]);Pa[b&127](a,h+240|0,h+208|0,g);b=c[(c[a>>2]|0)+8>>2]|0;qs(h+160|0,d,i+4|0,d+8|0);dw(h+176|0,e,+f[h+160>>2],+f[h+160+4>>2],+f[h+160+8>>2]);qs(h+128|0,d,d+4|0,d+8|0);dw(h+144|0,e,+f[h+128>>2],+f[h+128+4>>2],+f[h+128+8>>2]);Pa[b&127](a,h+176|0,h+144|0,g);b=c[(c[a>>2]|0)+8>>2]|0;qs(h+96|0,d,d+4|0,d+8|0);dw(h+112|0,e,+f[h+96>>2],+f[h+96+4>>2],+f[h+96+8>>2]);qs(h+64|0,i,d+4|0,d+8|0);dw(h+80|0,e,+f[h+64>>2],+f[h+64+4>>2],+f[h+64+8>>2]);Pa[b&127](a,h+112|0,h+80|0,g);b=c[(c[a>>2]|0)+8>>2]|0;qs(h+32|0,i,d+4|0,d+8|0);dw(h+48|0,e,+f[h+32>>2],+f[h+32+4>>2],+f[h+32+8>>2]);qs(h,i,i+4|0,d+8|0);dw(h+16|0,e,+f[h>>2],+f[h+4>>2],+f[h+8>>2]);Pa[b&127](a,h+48|0,h+16|0,g);ea=h;return}function Uc(b,d){b=b|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;c[b>>2]=6336;c[6747]=(c[6747]|0)+1;e=kb(379)|0;if(!e)e=0;else{c[(e+4+15&-16)+-4>>2]=e;e=e+4+15&-16}f[e+308>>2]=9.999999747378752e-05;l=e+332|0;a[l>>0]=a[l>>0]&-16;c[b+24>>2]=e;l=(c[d+20>>2]|0)==0;c[6747]=(c[6747]|0)+1;e=kb(23)|0;c[(e+4+15&-16)+-4>>2]=e;c[(e+4+15&-16)>>2]=l?10384:10432;c[b+28>>2]=e+4+15&-16;c[6747]=(c[6747]|0)+1;e=kb(43)|0;if(!e)e=0;else{c[(e+4+15&-16)+-4>>2]=e;e=e+4+15&-16}k=c[b+24>>2]|0;l=c[b+28>>2]|0;a[e+4>>0]=0;c[e>>2]=7144;c[e+16>>2]=0;c[e+20>>2]=3;c[e+12>>2]=k;c[e+8>>2]=l;c[b+32>>2]=e;c[6747]=(c[6747]|0)+1;e=kb(27)|0;if(!e)e=0;else{c[(e+4+15&-16)+-4>>2]=e;e=e+4+15&-16}a[e+4>>0]=0;c[e>>2]=6368;c[b+36>>2]=e;c[6747]=(c[6747]|0)+1;e=kb(27)|0;if(!e)e=0;else{c[(e+4+15&-16)+-4>>2]=e;e=e+4+15&-16}a[e+4>>0]=0;c[e>>2]=6388;c[b+40>>2]=e;c[6747]=(c[6747]|0)+1;e=kb(27)|0;if(!e)e=0;else{c[(e+4+15&-16)+-4>>2]=e;e=e+4+15&-16}a[e+4>>0]=0;c[e>>2]=6408;c[b+44>>2]=e;c[6747]=(c[6747]|0)+1;e=kb(27)|0;if(!e)e=0;else{c[(e+4+15&-16)+-4>>2]=e;e=e+4+15&-16}a[e+4>>0]=0;c[e>>2]=6428;c[b+48>>2]=e;c[6747]=(c[6747]|0)+1;e=kb(27)|0;if(!e)e=0;else{c[(e+4+15&-16)+-4>>2]=e;e=e+4+15&-16}a[e+4>>0]=0;c[e>>2]=6448;c[b+52>>2]=e;c[6747]=(c[6747]|0)+1;e=kb(27)|0;if(!e)e=0;else{c[(e+4+15&-16)+-4>>2]=e;e=e+4+15&-16}a[e+4>>0]=0;c[e>>2]=6468;c[b+56>>2]=e;c[6747]=(c[6747]|0)+1;e=kb(27)|0;if(!e)e=0;else{c[(e+4+15&-16)+-4>>2]=e;e=e+4+15&-16}a[e+4>>0]=0;c[e>>2]=6488;c[b+60>>2]=e;c[6747]=(c[6747]|0)+1;e=kb(27)|0;if(!e)e=0;else{c[(e+4+15&-16)+-4>>2]=e;e=e+4+15&-16}a[e+4>>0]=0;c[e>>2]=6508;c[b+76>>2]=e;c[6747]=(c[6747]|0)+1;e=kb(27)|0;if(!e)e=0;else{c[(e+4+15&-16)+-4>>2]=e;e=e+4+15&-16}c[e>>2]=6508;c[b+80>>2]=e;a[e+4>>0]=1;c[6747]=(c[6747]|0)+1;e=kb(27)|0;if(!e)e=0;else{c[(e+4+15&-16)+-4>>2]=e;e=e+4+15&-16}a[e+4>>0]=0;c[e>>2]=6528;c[b+72>>2]=e;c[6747]=(c[6747]|0)+1;e=kb(35)|0;if(!e)e=0;else{c[(e+4+15&-16)+-4>>2]=e;e=e+4+15&-16}a[e+4>>0]=0;c[e>>2]=6548;c[e+8>>2]=1;c[e+12>>2]=0;c[b+88>>2]=e;c[6747]=(c[6747]|0)+1;e=kb(35)|0;if(!e)e=0;else{c[(e+4+15&-16)+-4>>2]=e;e=e+4+15&-16}c[e>>2]=6548;c[e+8>>2]=1;c[e+12>>2]=0;c[b+84>>2]=e;a[e+4>>0]=1;l=c[d+16>>2]|0;l=(l|0)>80?l:80;e=c[d>>2]|0;if(!e){a[b+12>>0]=1;c[6747]=(c[6747]|0)+1;e=kb(39)|0;if(!e)k=0;else{c[(e+4+15&-16)+-4>>2]=e;k=e+4+15&-16}e=c[d+8>>2]|0;c[k>>2]=772;g=k+4|0;c[g>>2]=e;c[6747]=(c[6747]|0)+1;e=kb((e*772|3)+16|0)|0;if(!e)e=0;else{c[(e+4+15&-16)+-4>>2]=e;e=e+4+15&-16}c[k+16>>2]=e;c[k+12>>2]=e;g=c[g>>2]|0;c[k+8>>2]=g;if(g+-1|0){h=c[k>>2]|0;i=g+-1|0;j=e;do{m=j;j=j+h|0;c[m>>2]=j;i=i+-1|0}while((i|0)!=0);e=e+(z(h,g+-1|0)|0)|0}c[e>>2]=0;c[b+8>>2]=k}else{a[b+12>>0]=0;c[b+8>>2]=e}e=c[d+4>>2]|0;if(e|0){a[b+20>>0]=0;c[b+16>>2]=e;return}a[b+20>>0]=1;c[6747]=(c[6747]|0)+1;e=kb(39)|0;if(!e)k=0;else{c[(e+4+15&-16)+-4>>2]=e;k=e+4+15&-16}e=c[d+12>>2]|0;c[k>>2]=l;g=k+4|0;c[g>>2]=e;e=z(e,l)|0;c[6747]=(c[6747]|0)+1;e=kb(e+19|0)|0;if(!e)e=0;else{c[(e+4+15&-16)+-4>>2]=e;e=e+4+15&-16}c[k+16>>2]=e;c[k+12>>2]=e;g=c[g>>2]|0;c[k+8>>2]=g;if(g+-1|0){h=c[k>>2]|0;i=g+-1|0;j=e;do{m=j;j=j+h|0;c[m>>2]=j;i=i+-1|0}while((i|0)!=0);e=e+(z(h,g+-1|0)|0)|0}c[e>>2]=0;c[b+16>>2]=k;return}function Vc(b,d,e,g,h,i,j,k){b=b|0;d=d|0;e=e|0;g=g|0;h=+h;i=+i;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=ea;ea=ea+288|0;c[v+208>>2]=c[d>>2];c[v+208+4>>2]=c[d+4>>2];c[v+208+8>>2]=c[d+8>>2];c[v+208+12>>2]=c[d+12>>2];n=v+208+16|0;c[n>>2]=c[e>>2];c[n+4>>2]=c[e+4>>2];c[n+8>>2]=c[e+8>>2];c[n+12>>2]=c[e+12>>2];d=v+208+32|0;c[d>>2]=c[g>>2];c[d+4>>2]=c[g+4>>2];c[d+8>>2]=c[g+8>>2];c[d+12>>2]=c[g+12>>2];p=c[j>>2]|0;q=c[j+4>>2]|0;r=c[j+8>>2]|0;s=c[j+16>>2]|0;t=c[j+12>>2]|0;o=c[j+20>>2]|0;c[v+156>>2]=c[v+208>>2];c[v+156+4>>2]=c[v+208+4>>2];c[v+156+8>>2]=c[v+208+8>>2];c[v+156+12>>2]=c[v+208+12>>2];c[v+172>>2]=c[n>>2];c[v+172+4>>2]=c[n+4>>2];c[v+172+8>>2]=c[n+8>>2];c[v+172+12>>2]=c[n+12>>2];c[v+188>>2]=c[d>>2];c[v+188+4>>2]=c[d+4>>2];c[v+188+8>>2]=c[d+8>>2];c[v+188+12>>2]=c[d+12>>2];d=c[b+136>>2]|0;if((d|0)==(c[b+140>>2]|0)?(u=(d|0)==0?1:d<<1,(d|0)<(u|0)):0){if(!u)g=0;else{c[6747]=(c[6747]|0)+1;d=kb((u*284|3)+16|0)|0;if(!d)g=0;else{c[(d+4+15&-16)+-4>>2]=d;g=d+4+15&-16}d=c[b+136>>2]|0}if((d|0)>0){j=0;do{e=c[b+144>>2]|0;l=g+(j*284|0)|0;m=e+(j*284|0)|0;n=l+92|0;do{c[l>>2]=c[m>>2];l=l+4|0;m=m+4|0}while((l|0)<(n|0));l=g+(j*284|0)+92|0;m=e+(j*284|0)+92|0;c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];l=e+(j*284|0)+108|0;m=g+(j*284|0)+108|0;c[m>>2]=c[l>>2];c[m+4>>2]=c[l+4>>2];c[m+8>>2]=c[l+8>>2];c[m+12>>2]=c[l+12>>2];m=e+(j*284|0)+124|0;l=g+(j*284|0)+124|0;c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];l=g+(j*284|0)+140|0;m=e+(j*284|0)+140|0;c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];l=g+(j*284|0)+156|0;m=e+(j*284|0)+156|0;n=l+128|0;do{c[l>>2]=c[m>>2];l=l+4|0;m=m+4|0}while((l|0)<(n|0));j=j+1|0}while((j|0)!=(d|0))}d=c[b+144>>2]|0;if(d|0){if(a[b+148>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+144>>2]=0}a[b+148>>0]=1;c[b+144>>2]=g;c[b+140>>2]=u;d=c[b+136>>2]|0}g=c[b+144>>2]|0;l=g+(d*284|0)|0;m=v;n=l+92|0;do{c[l>>2]=c[m>>2];l=l+4|0;m=m+4|0}while((l|0)<(n|0));l=g+(d*284|0)+92|0;c[l>>2]=c[v+92>>2];c[l+4>>2]=c[v+92+4>>2];c[l+8>>2]=c[v+92+8>>2];c[l+12>>2]=c[v+92+12>>2];l=g+(d*284|0)+108|0;c[l>>2]=c[v+108>>2];c[l+4>>2]=c[v+108+4>>2];c[l+8>>2]=c[v+108+8>>2];c[l+12>>2]=c[v+108+12>>2];l=g+(d*284|0)+124|0;c[l>>2]=c[v+124>>2];c[l+4>>2]=c[v+124+4>>2];c[l+8>>2]=c[v+124+8>>2];c[l+12>>2]=c[v+124+12>>2];l=g+(d*284|0)+140|0;c[l>>2]=c[v+140>>2];c[l+4>>2]=c[v+140+4>>2];c[l+8>>2]=c[v+140+8>>2];c[l+12>>2]=c[v+140+12>>2];d=g+(d*284|0)+156|0;l=d;m=v+156|0;n=l+48|0;do{c[l>>2]=c[m>>2];l=l+4|0;m=m+4|0}while((l|0)<(n|0));f[d+48>>2]=h;c[d+52>>2]=t;f[d+56>>2]=i;c[d+60>>2]=p;c[d+64>>2]=q;c[d+68>>2]=r;c[d+72>>2]=s;f[d+76>>2]=0.0;f[d+80>>2]=0.0;f[d+84>>2]=0.0;f[d+88>>2]=.10000000149011612;c[d+92>>2]=o;f[d+96>>2]=0.0;f[d+100>>2]=0.0;a[d+104>>0]=k&1;l=d+105|0;m=v+256|0;n=l+23|0;do{a[l>>0]=a[m>>0]|0;l=l+1|0;m=m+1|0}while((l|0)<(n|0));k=c[b+136>>2]|0;c[b+136>>2]=k+1;k=(c[b+144>>2]|0)+(k*284|0)|0;Yf(c[b+116>>2]|0,k,0);ud(c[b+116>>2]|0,c[b+144>>2]|0,(c[b+136>>2]|0)+-1|0,0);ea=v;return k|0}function Wc(d,g,h,i){d=d|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0;v=ea;ea=ea+80|0;u=c[d+48>>2]|0;c[v>>2]=8076;c[v+4>>2]=u;c[v+8>>2]=g;u=c[d+52>>2]|0;if(!(a[u+60>>0]|0)){g=c[u+56>>2]|0;if((g|0)>0){d=g;n=0;o=c[u+96>>2]|0;g=0;while(1){g=g+1|0;if(!(+f[h>>2]>+f[o+16>>2])?!(+f[i>>2]<+f[o>>2]):0)j=1;else j=0;if(!(!(+f[h+8>>2]>+f[o+24>>2])?!(+f[i+8>>2]<+f[o+8>>2]):0))j=0;if(!(+f[h+4>>2]>+f[o+20>>2])?!(+f[i+4>>2]<+f[o+4>>2]):0){k=c[o+32>>2]|0;if(j&(k|0)==-1){Ma[c[(c[v>>2]|0)+8>>2]&127](v,c[o+36>>2]|0,c[o+40>>2]|0);d=c[u+56>>2]|0;m=44}else{l=k;k=(k|0)==-1;m=43}}else{k=c[o+32>>2]|0;l=k;k=(k|0)==-1;j=0;m=43}if((m|0)==43){m=0;if(k|j)m=44;else{k=l+n|0;j=o+(l<<6)|0}}if((m|0)==44){k=n+1|0;j=o+64|0}if((k|0)<(d|0)){n=k;o=j}else break}}else g=0;if((c[6727]|0)>=(g|0)){ea=v;return}c[6727]=g;ea=v;return}x=+f[h>>2];B=+f[h+4>>2];F=+f[h+8>>2];E=+f[u+4>>2];x=x>2];B=B>2];F=F>2];C=+f[u+24>>2];y=+f[u+28>>2];H=+f[u+36>>2];D=+f[u+40>>2];z=+f[u+44>>2];r=~~(((G>1]=r;s=~~(((C>1]=s;b[v+66+4>>1]=t;F=+f[i>>2];B=+f[i+4>>2];x=+f[i+8>>2];F=F>1]=i;p=~~(D*((C>1]=p;b[v+60+4>>1]=q;switch(c[u+144>>2]|0){case 0:{n=c[u+56>>2]|0;if((n|0)>0){d=0;j=c[u+136>>2]|0;g=0;do{g=g+1|0;l=((i&65535)>=(e[j>>1]|0)?(r&65535)<=(e[j+6>>1]|0):0)&(t&65535)<=(e[j+10>>1]|0)&(q&65535)>=(e[j+4>>1]|0)&(s&65535)<=(e[j+8>>1]|0)&(p&65535)>=(e[j+2>>1]|0);m=j+12|0;k=c[m>>2]|0;if((k|0)>-1&l)Ma[c[(c[v>>2]|0)+8>>2]&127](v,21?k>>>21:k,k&2097151);if(l|(k|0)>-1){d=d+1|0;j=j+16|0}else{u=c[m>>2]|0;d=d-u|0;j=j+(0-u<<4)|0}}while((d|0)<(n|0))}else g=0;if((c[6727]|0)<(g|0))c[6727]=g;break}case 1:{if((c[u+152>>2]|0)>0){h=0;do{g=c[u+160>>2]|0;if(((i&65535)>=(e[g+(h<<5)>>1]|0)?(r&65535)<=(e[g+(h<<5)+6>>1]|0):0)&(t&65535)<=(e[g+(h<<5)+10>>1]|0)&(q&65535)>=(e[g+(h<<5)+4>>1]|0)&(s&65535)<=(e[g+(h<<5)+8>>1]|0)&(p&65535)>=(e[g+(h<<5)+2>>1]|0)){o=c[g+(h<<5)+12>>2]|0;n=c[g+(h<<5)+16>>2]|0;a:do if((n|0)>0){d=o;j=(c[u+136>>2]|0)+(o<<4)|0;g=0;while(1){g=g+1|0;l=((i&65535)>=(e[j>>1]|0)?(r&65535)<=(e[j+6>>1]|0):0)&(t&65535)<=(e[j+10>>1]|0)&(q&65535)>=(e[j+4>>1]|0)&(s&65535)<=(e[j+8>>1]|0)&(p&65535)>=(e[j+2>>1]|0);m=j+12|0;k=c[m>>2]|0;if((k|0)>-1&l)Ma[c[(c[v>>2]|0)+8>>2]&127](v,21?k>>>21:k,k&2097151);if(l|(k|0)>-1){d=d+1|0;j=j+16|0}else{m=c[m>>2]|0;d=d-m|0;j=j+(0-m<<4)|0}if((d|0)>=(n+o|0))break a}}else g=0;while(0);if((c[6727]|0)<(g|0))c[6727]=g}h=h+1|0}while((h|0)<(c[u+152>>2]|0))}break}case 2:{Pj(c[u+136>>2]|0,v,v+66|0,v+60|0);break}default:{}}ea=v;return}function Xc(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;if((h|0)<0){h=c[b+8>>2]|0;+qa[c[(c[h>>2]|0)+12>>2]&3](h,d,e,f,g,c[b+12>>2]|0,c[b+16>>2]|0,c[b+4>>2]|0,c[b+20>>2]|0,c[b+24>>2]|0);return}o=c[b+16>>2]|0;a:do if((o|0)>0){l=c[b+12>>2]|0;i=0;while(1){m=l+(i<<2)|0;k=c[m>>2]|0;j=c[(c[k+28>>2]|0)+208>>2]|0;if((j|0)<=-1)j=c[(c[k+32>>2]|0)+208>>2]|0;if((j|0)==(h|0))break a;i=i+1|0;if((i|0)>=(o|0)){m=0;break}}}else{i=0;m=0}while(0);if((i|0)<(o|0)){n=c[b+12>>2]|0;j=0;do{l=c[n+(i<<2)>>2]|0;k=c[(c[l+28>>2]|0)+208>>2]|0;if((k|0)<=-1)k=c[(c[l+32>>2]|0)+208>>2]|0;j=j+((k|0)==(h|0)&1)|0;i=i+1|0}while((i|0)!=(o|0));h=j}else h=0;i=c[b+4>>2]|0;if((c[i+72>>2]|0)<2){o=c[b+8>>2]|0;+qa[c[(c[o>>2]|0)+12>>2]&3](o,d,e,f,g,m,h,i,c[b+20>>2]|0,c[b+24>>2]|0);return}if((e|0)>0){j=c[b+32>>2]|0;i=c[b+36>>2]|0;o=0;do{n=d+(o<<2)|0;if((j|0)==(i|0)){l=(i|0)==0?1:i<<1;if((i|0)<(l|0)){if(!l)j=0;else{c[6747]=(c[6747]|0)+1;i=kb((l<<2|3)+16|0)|0;if(!i)j=0;else{c[(i+4+15&-16)+-4>>2]=i;j=i+4+15&-16}i=c[b+32>>2]|0}if((i|0)>0){k=0;do{c[j+(k<<2)>>2]=c[(c[b+40>>2]|0)+(k<<2)>>2];k=k+1|0}while((k|0)!=(i|0))}k=c[b+40>>2]|0;if(k){if(a[b+44>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[k+-4>>2]|0);i=c[b+32>>2]|0}c[b+40>>2]=0}a[b+44>>0]=1;c[b+40>>2]=j;c[b+36>>2]=l;j=i;i=l}else j=i}c[(c[b+40>>2]|0)+(j<<2)>>2]=c[n>>2];j=j+1|0;c[b+32>>2]=j;o=o+1|0}while((o|0)!=(e|0))}if((g|0)>0){j=c[b+52>>2]|0;i=c[b+56>>2]|0;o=0;do{n=f+(o<<2)|0;if((j|0)==(i|0)){l=(i|0)==0?1:i<<1;if((i|0)<(l|0)){if(!l)j=0;else{c[6747]=(c[6747]|0)+1;i=kb((l<<2|3)+16|0)|0;if(!i)j=0;else{c[(i+4+15&-16)+-4>>2]=i;j=i+4+15&-16}i=c[b+52>>2]|0}if((i|0)>0){k=0;do{c[j+(k<<2)>>2]=c[(c[b+60>>2]|0)+(k<<2)>>2];k=k+1|0}while((k|0)!=(i|0))}k=c[b+60>>2]|0;if(k){if(a[b+64>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[k+-4>>2]|0);i=c[b+52>>2]|0}c[b+60>>2]=0}a[b+64>>0]=1;c[b+60>>2]=j;c[b+56>>2]=l;j=i;i=l}else j=i}c[(c[b+60>>2]|0)+(j<<2)>>2]=c[n>>2];j=j+1|0;c[b+52>>2]=j;o=o+1|0}while((o|0)!=(g|0))}if(!h)i=c[b+72>>2]|0;else{i=c[b+72>>2]|0;j=c[b+76>>2]|0;o=0;do{n=m+(o<<2)|0;if((i|0)==(j|0)){l=(j|0)==0?1:j<<1;if((j|0)<(l|0)){if(!l){i=j;j=0}else{c[6747]=(c[6747]|0)+1;i=kb((l<<2|3)+16|0)|0;if(!i)j=0;else{c[(i+4+15&-16)+-4>>2]=i;j=i+4+15&-16}i=c[b+72>>2]|0}if((i|0)>0){k=0;do{c[j+(k<<2)>>2]=c[(c[b+80>>2]|0)+(k<<2)>>2];k=k+1|0}while((k|0)!=(i|0))}k=c[b+80>>2]|0;if(k){if(a[b+84>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[k+-4>>2]|0);i=c[b+72>>2]|0}c[b+80>>2]=0}a[b+84>>0]=1;c[b+80>>2]=j;c[b+76>>2]=l;j=l}else i=j}c[(c[b+80>>2]|0)+(i<<2)>>2]=c[n>>2];i=i+1|0;c[b+72>>2]=i;o=o+1|0}while((o|0)!=(h|0))}if(((c[b+52>>2]|0)+i|0)<=(c[(c[b+4>>2]|0)+72>>2]|0))return;og(b);return}function Yc(b,d,e,g){b=b|0;d=d|0;e=e|0;g=g|0;var h=0;a[b+20>>0]=1;c[b+16>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+24>>2]=d;f[b+28>>2]=0.0;c[b+32>>2]=0;c[b+36>>2]=1;f[b+40>>2]=1.0;a[b+44>>0]=1;c[b+48>>2]=0;a[b+52>>0]=0;a[b+53>>0]=1;a[b+54>>0]=1;f[b+56>>2]=.03999999910593033;a[b+60>>0]=0;f[b+64>>2]=0.0;c[b+68>>2]=e;c[b+72>>2]=0;a[b+76>>0]=1;c[b+80>>2]=0;c[b+84>>2]=0;c[b+88>>2]=0;f[b+92>>2]=.6000000238418579;f[b+96>>2]=1.0;f[b+100>>2]=.30000001192092896;f[b+104>>2]=.01666666753590107;f[b+108>>2]=0.0;f[b+116>>2]=20.0;c[b+112>>2]=10;f[b+124>>2]=.20000000298023224;f[b+128>>2]=.800000011920929;f[b+132>>2]=0.0;f[b+120>>2]=1.0;c[b+136>>2]=1;f[b+140>>2]=-.03999999910593033;f[b+144>>2]=.10000000149011612;f[b+148>>2]=0.0;f[b+152>>2]=.8500000238418579;c[b+156>>2]=260;c[b+160>>2]=2;c[b+164>>2]=128;f[b+168>>2]=100.0;f[b+172>>2]=1000000015047466219876688.0e6;c[b>>2]=5208;a[b+192>>0]=1;c[b+188>>2]=0;c[b+180>>2]=0;c[b+184>>2]=0;c[b+196>>2]=0;c[b+200>>2]=g;a[b+224>>0]=1;c[b+220>>2]=0;c[b+212>>2]=0;c[b+216>>2]=0;a[b+244>>0]=1;c[b+240>>2]=0;c[b+232>>2]=0;c[b+236>>2]=0;c[b+248>>2]=0;c[b+252>>2]=-1054867456;a[b+274>>0]=0;a[b+275>>0]=0;c[b+256>>2]=0;c[b+256+4>>2]=0;c[b+256+8>>2]=0;c[b+256+12>>2]=0;a[b+292>>0]=1;c[b+288>>2]=0;c[b+280>>2]=0;c[b+284>>2]=0;c[b+296>>2]=0;a[b+300>>0]=1;a[b+320>>0]=1;c[b+316>>2]=0;c[b+308>>2]=0;c[b+312>>2]=0;if(!g){c[6747]=(c[6747]|0)+1;g=kb(215)|0;if(!g)g=0;else{c[(g+4+15&-16)+-4>>2]=g;g=g+4+15&-16}c[g>>2]=5872;a[g+20>>0]=1;c[g+16>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;a[g+40>>0]=1;c[g+36>>2]=0;c[g+28>>2]=0;c[g+32>>2]=0;a[g+60>>0]=1;c[g+56>>2]=0;c[g+48>>2]=0;c[g+52>>2]=0;a[g+80>>0]=1;c[g+76>>2]=0;c[g+68>>2]=0;c[g+72>>2]=0;a[g+100>>0]=1;c[g+96>>2]=0;c[g+88>>2]=0;c[g+92>>2]=0;a[g+120>>0]=1;c[g+116>>2]=0;c[g+108>>2]=0;c[g+112>>2]=0;a[g+140>>0]=1;c[g+136>>2]=0;c[g+128>>2]=0;c[g+132>>2]=0;a[g+160>>0]=1;c[g+156>>2]=0;c[g+148>>2]=0;c[g+152>>2]=0;a[g+180>>0]=1;c[g+176>>2]=0;c[g+168>>2]=0;c[g+172>>2]=0;c[g+192>>2]=0;c[b+200>>2]=g;g=1}else g=0;a[b+273>>0]=g;c[6747]=(c[6747]|0)+1;g=kb(87)|0;if(!g)g=0;else{c[(g+4+15&-16)+-4>>2]=g;g=g+4+15&-16}c[g>>2]=6568;a[g+20>>0]=1;c[g+16>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;a[g+40>>0]=1;c[g+36>>2]=0;c[g+28>>2]=0;c[g+32>>2]=0;a[g+60>>0]=1;c[g+56>>2]=0;c[g+48>>2]=0;c[g+52>>2]=0;a[g+64>>0]=1;c[b+204>>2]=g;a[b+272>>0]=1;c[6747]=(c[6747]|0)+1;g=kb(107)|0;if(!g){e=0;h=c[b+200>>2]|0;c[e>>2]=5420;g=e+4|0;c[g>>2]=0;g=e+8|0;c[g>>2]=h;g=e+12|0;c[g>>2]=0;g=e+16|0;c[g>>2]=0;g=e+20|0;c[g>>2]=0;g=e+24|0;c[g>>2]=d;d=e+44|0;a[d>>0]=1;d=e+40|0;c[d>>2]=0;d=e+32|0;c[d>>2]=0;d=e+36|0;c[d>>2]=0;d=e+64|0;a[d>>0]=1;d=e+60|0;c[d>>2]=0;d=e+52|0;c[d>>2]=0;d=e+56|0;c[d>>2]=0;d=e+84|0;a[d>>0]=1;d=e+80|0;c[d>>2]=0;d=e+72|0;c[d>>2]=0;d=e+76|0;c[d>>2]=0;c[b+196>>2]=e;return}c[(g+4+15&-16)+-4>>2]=g;h=g+4+15&-16;g=c[b+200>>2]|0;c[h>>2]=5420;e=h+4|0;c[e>>2]=0;e=h+8|0;c[e>>2]=g;e=h+12|0;c[e>>2]=0;e=h+16|0;c[e>>2]=0;e=h+20|0;c[e>>2]=0;e=h+24|0;c[e>>2]=d;d=h+44|0;a[d>>0]=1;d=h+40|0;c[d>>2]=0;d=h+32|0;c[d>>2]=0;d=h+36|0;c[d>>2]=0;d=h+64|0;a[d>>0]=1;d=h+60|0;c[d>>2]=0;d=h+52|0;c[d>>2]=0;d=h+56|0;c[d>>2]=0;d=h+84|0;a[d>>0]=1;d=h+80|0;c[d>>2]=0;d=h+72|0;c[d>>2]=0;d=h+76|0;c[d>>2]=0;c[b+196>>2]=h;return}function Zc(b,d){b=b|0;d=d|0;var e=0,g=0,h=0.0,i=0,j=0.0,k=0,l=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0.0;t=ea;ea=ea+96|0;r=c[b+12>>2]|0;Pa[c[(c[r>>2]|0)+8>>2]&127](r,(c[b+8>>2]|0)+4|0,t+80|0,t+64|0);r=c[d+68>>2]|0;Ta[c[(c[r>>2]|0)+16>>2]&31](r,c[(c[b+8>>2]|0)+188>>2]|0,t+80|0,t+64|0,c[d+24>>2]|0);r=c[d+24>>2]|0;Pa[c[(c[r>>2]|0)+32>>2]&127](r,c[(c[b+8>>2]|0)+284>>2]|0,d+28|0,r);r=c[b+8>>2]|0;c[b+92>>2]=c[r+52>>2];c[b+92+4>>2]=c[r+52+4>>2];c[b+92+8>>2]=c[r+52+8>>2];c[b+92+12>>2]=c[r+52+12>>2];r=c[r+284>>2]|0;if((ra[c[(c[r>>2]|0)+36>>2]&127](r)|0)>0){r=0;h=0.0;d=0;do{e=c[b+132>>2]|0;if((e|0)<0){if((c[b+136>>2]|0)<0){g=c[b+140>>2]|0;if(g|0){if(a[b+144>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[b+140>>2]=0}a[b+144>>0]=1;c[b+140>>2]=0;c[b+136>>2]=0}do{c[(c[b+140>>2]|0)+(e<<2)>>2]=0;e=e+1|0}while((e|0)!=0)}c[b+132>>2]=0;e=c[(c[b+8>>2]|0)+284>>2]|0;e=c[(ra[c[(c[e>>2]|0)+28>>2]&127](e)|0)+12>>2]|0;q=c[c[e+(r<<4)>>2]>>2]|0;g=c[c[e+(r<<4)+4>>2]>>2]|0;if(!((q|0)!=0?(c[q+204>>2]&4|0)!=0:0))s=15;do if((s|0)==15){s=0;if(g|0?c[g+204>>2]&4|0:0)break;e=c[e+(r<<4)+8>>2]|0;if(e|0)Ia[c[(c[e>>2]|0)+16>>2]&127](e,b+128|0);p=c[b+132>>2]|0;if((p|0)>0){n=c[b+140>>2]|0;o=c[b+8>>2]|0;q=0;do{l=c[n+(q<<2)>>2]|0;m=(c[l+740>>2]|0)==(o|0)?-1.0:1.0;e=c[l+748>>2]|0;if((e|0)>0){k=0;do{j=+f[l+4+(k*184|0)+80>>2];if(j<0.0){i=l+4+(k*184|0)+64|0;if(j>2];g=l+4+(k*184|0)+72|0;h=m*+f[g>>2];f[b+152>>2]=m*+f[i>>2];f[b+156>>2]=u;f[b+160>>2]=h;f[b+164>>2]=0.0;e=c[l+748>>2]|0;h=j}else{d=l+4+(k*184|0)+68|0;g=l+4+(k*184|0)+72|0}v=j*(m*+f[d>>2])*.20000000298023224;u=j*(m*+f[g>>2])*.20000000298023224;f[b+92>>2]=j*(m*+f[i>>2])*.20000000298023224+ +f[b+92>>2];f[b+96>>2]=v+ +f[b+96>>2];f[b+100>>2]=u+ +f[b+100>>2];d=1}k=k+1|0}while((k|0)<(e|0))}q=q+1|0}while((q|0)!=(p|0))}}while(0);r=r+1|0;q=c[(c[b+8>>2]|0)+284>>2]|0}while((r|0)<(ra[c[(c[q>>2]|0)+36>>2]&127](q)|0))}else d=0;s=c[b+8>>2]|0;c[t>>2]=c[s+4>>2];c[t+4>>2]=c[s+4+4>>2];c[t+8>>2]=c[s+4+8>>2];c[t+12>>2]=c[s+4+12>>2];c[t+16>>2]=c[s+20>>2];c[t+16+4>>2]=c[s+20+4>>2];c[t+16+8>>2]=c[s+20+8>>2];c[t+16+12>>2]=c[s+20+12>>2];c[t+32>>2]=c[s+36>>2];c[t+32+4>>2]=c[s+36+4>>2];c[t+32+8>>2]=c[s+36+8>>2];c[t+32+12>>2]=c[s+36+12>>2];c[t+48>>2]=c[b+92>>2];c[t+48+4>>2]=c[b+92+4>>2];c[t+48+8>>2]=c[b+92+8>>2];c[t+48+12>>2]=c[b+92+12>>2];c[s+260>>2]=(c[s+260>>2]|0)+1;c[s+4>>2]=c[t>>2];c[s+4+4>>2]=c[t+4>>2];c[s+4+8>>2]=c[t+8>>2];c[s+4+12>>2]=c[t+12>>2];c[s+20>>2]=c[t+16>>2];c[s+20+4>>2]=c[t+16+4>>2];c[s+20+8>>2]=c[t+16+8>>2];c[s+20+12>>2]=c[t+16+12>>2];c[s+36>>2]=c[t+32>>2];c[s+36+4>>2]=c[t+32+4>>2];c[s+36+8>>2]=c[t+32+8>>2];c[s+36+12>>2]=c[t+32+12>>2];c[s+52>>2]=c[t+48>>2];c[s+52+4>>2]=c[t+48+4>>2];c[s+52+8>>2]=c[t+48+8>>2];c[s+52+12>>2]=c[t+48+12>>2];ea=t;return d|0}function _c(b,d,e){b=b|0;d=+d;e=+e;var g=0,h=0,i=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,t=0.0,u=0.0,v=0.0,w=0.0;r=ea;ea=ea+80|0;g=c[b+8>>2]|0;if(!g){g=c[b+4>>2]|0;if(!g){k=0.0;n=0.0;l=0.0;d=0.0;j=0.0;m=0.0}else{q=+f[g+336>>2];j=+f[b+172>>2];t=+f[g+340>>2];o=+f[b+168>>2];m=+f[b+164>>2];p=+f[g+332>>2];k=+f[g+316>>2];n=+f[g+320>>2];l=+f[g+324>>2];d=q*j-t*o;j=t*m-j*p;m=o*p-q*m}}else{t=+f[g+332>>2];j=+f[b+172>>2];o=+f[g+336>>2];p=+f[b+168>>2];m=+f[b+164>>2];q=+f[g+328>>2];k=+f[g+312>>2];n=+f[g+316>>2];l=+f[g+320>>2];d=t*j-o*p;j=o*m-j*q;m=p*q-t*m}o=k+d;q=n+j;p=l+m;g=c[b+20>>2]|0;if(!g){g=c[b+16>>2]|0;if(!g){k=0.0;m=0.0;l=0.0;d=0.0;j=0.0;n=0.0}else{t=+f[g+336>>2];j=+f[b+188>>2];w=+f[g+340>>2];v=+f[b+184>>2];n=+f[b+180>>2];u=+f[g+332>>2];k=+f[g+316>>2];m=+f[g+320>>2];l=+f[g+324>>2];d=t*j-w*v;j=w*n-j*u;n=v*u-t*n}}else{w=+f[g+332>>2];j=+f[b+188>>2];t=+f[g+336>>2];u=+f[b+184>>2];n=+f[b+180>>2];v=+f[g+328>>2];k=+f[g+312>>2];m=+f[g+316>>2];l=+f[g+320>>2];d=w*j-t*u;j=t*n-j*v;n=u*v-w*n}o=o-(k+d);m=q-(m+j);l=p-(l+n);d=+f[b+196>>2];j=+f[b+200>>2];k=+f[b+204>>2];a[r+36+32>>0]=1;c[r+36+16>>2]=0;c[r+36+16+4>>2]=0;c[r+36+16+8>>2]=0;c[r+36+16+12>>2]=0;c[r+36>>2]=c[b+72>>2];c[r+36+4>>2]=c[b+72+4>>2];c[r+36+8>>2]=c[b+72+8>>2];c[r+36+12>>2]=c[b+72+12>>2];if(d*o+m*j+l*k<0.0){u=+f[b+212>>2];v=+f[r+36>>2]+(d*(d*o+m*j+l*k)+(o-d*(d*o+m*j+l*k))*u);f[r+36>>2]=v;w=j*(d*o+m*j+l*k)+(m-j*(d*o+m*j+l*k))*u+ +f[r+36+4>>2];f[r+36+4>>2]=w;k=k*(d*o+m*j+l*k)+(l-k*(d*o+m*j+l*k))*u+ +f[r+36+8>>2];f[r+36+8>>2]=k;d=v;j=w;g=r+36+8|0;h=r+36|0;i=r+36+4|0}else{d=+f[r+36>>2];j=+f[r+36+4>>2];k=+f[r+36+8>>2];g=r+36+8|0;h=r+36|0;i=r+36+4|0}l=(+f[b+104>>2]*d+ +f[b+108>>2]*j+ +f[b+112>>2]*k)*e;m=(d*+f[b+120>>2]+j*+f[b+124>>2]+k*+f[b+128>>2])*e;d=(d*+f[b+136>>2]+j*+f[b+140>>2]+k*+f[b+144>>2])*e;f[h>>2]=l;f[i>>2]=m;f[g>>2]=d;f[r+36+12>>2]=0.0;g=c[b+4>>2]|0;if((g|0)!=(c[b+16>>2]|0)){g=r;h=r+36|0;i=g+36|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));w=-+f[r+4>>2];v=-+f[r+8>>2];f[r>>2]=-+f[r>>2];f[r+4>>2]=w;f[r+8>>2]=v;f[r+12>>2]=0.0;v=-+f[r+20>>2];w=-+f[r+24>>2];f[r+16>>2]=-+f[r+16>>2];f[r+20>>2]=v;f[r+24>>2]=w;f[r+28>>2]=0.0;Yg(b+4|0,r,b+164|0);Yg(b+16|0,r+36|0,b+180|0);ea=r;return}if(!(l==l&m==m&(d==d&0.0==0.0))){ea=r;return}w=+s(+(l*l+m*m+d*d));if(w<+f[g+368>>2]){ea=r;return}h=c[r+36+32>>2]|0;w=+f[g+372>>2];f[r+12>>2]=0.0;f[r+28>>2]=0.0;c[r+32>>2]=h;f[r>>2]=-(l*w);f[r+4>>2]=-(m*w);f[r+8>>2]=-(d*w);f[r+16>>2]=w*-0.0;f[r+20>>2]=w*-0.0;f[r+24>>2]=w*-0.0;Yg(b+4|0,r,b+164|0);d=+f[(c[b+4>>2]|0)+372>>2];g=r;h=r+36|0;i=g+36|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));f[r>>2]=d*+f[r>>2];f[r+4>>2]=d*+f[r+4>>2];f[r+8>>2]=d*+f[r+8>>2];f[r+16>>2]=d*+f[r+16>>2];f[r+20>>2]=d*+f[r+20>>2];f[r+24>>2]=d*+f[r+24>>2];Yg(b+16|0,r,b+180|0);ea=r;return}function $c(d,e,g,h,i){d=d|0;e=e|0;g=+g;h=+h;i=+i;var j=0,k=0.0,l=0.0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,t=0.0,u=0.0;m=ea;ea=ea+240|0;k=+f[d+96>>2]+h;l=+f[d+100>>2]+i;f[d+112>>2]=+f[d+92>>2]+g;f[d+116>>2]=k;f[d+120>>2]=l;f[d+124>>2]=0.0;c[m+168>>2]=1065353216;c[m+168+4>>2]=0;c[m+168+4+4>>2]=0;c[m+168+4+8>>2]=0;c[m+168+4+12>>2]=0;c[m+168+20>>2]=1065353216;c[m+168+24>>2]=0;c[m+168+24+4>>2]=0;c[m+168+24+8>>2]=0;c[m+168+24+12>>2]=0;c[m+168+40>>2]=1065353216;j=m+168+44|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;c[j+16>>2]=0;c[m+104>>2]=1065353216;c[m+104+4>>2]=0;c[m+104+4+4>>2]=0;c[m+104+4+8>>2]=0;c[m+104+4+12>>2]=0;c[m+104+20>>2]=1065353216;c[m+104+24>>2]=0;c[m+104+24+4>>2]=0;c[m+104+24+8>>2]=0;c[m+104+24+12>>2]=0;c[m+104+40>>2]=1065353216;j=m+104+44|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;c[j+16>>2]=0;l=1.0;j=10;while(1){if(!j){j=15;break}j=j+-1|0;c[m+168+48>>2]=c[d+92>>2];c[m+168+48+4>>2]=c[d+92+4>>2];c[m+168+48+8>>2]=c[d+92+8>>2];c[m+168+48+12>>2]=c[d+92+12>>2];c[m+104+48>>2]=c[d+112>>2];c[m+104+48+4>>2]=c[d+112+4>>2];c[m+104+48+8>>2]=c[d+112+8>>2];c[m+104+48+12>>2]=c[d+112+12>>2];i=+f[d+92>>2]-+f[d+112>>2];k=+f[d+96>>2]-+f[d+116>>2];g=+f[d+100>>2]-+f[d+120>>2];n=c[d+8>>2]|0;f[m+4>>2]=1.0;c[m+76>>2]=0;c[m+12>>2]=0;c[m+12+4>>2]=0;c[m+12+8>>2]=0;c[m+12+12>>2]=0;c[m+12+16>>2]=0;c[m+12+20>>2]=0;c[m+12+24>>2]=0;c[m+12+28>>2]=0;c[m>>2]=6052;c[m+80>>2]=n;f[m+84>>2]=i;f[m+88>>2]=k;f[m+92>>2]=g;f[m+96>>2]=0.0;f[m+100>>2]=0.0;n=c[n+188>>2]|0;b[m+8>>1]=b[n+4>>1]|0;b[m+10>>1]=b[n+6>>1]|0;n=c[d+12>>2]|0;g=+ha[c[(c[n>>2]|0)+48>>2]&15](n);n=c[d+12>>2]|0;Da[c[(c[n>>2]|0)+44>>2]&31](n,g+ +f[d+56>>2]);if(!(a[d+170>>0]|0))Gc(e,c[d+12>>2]|0,m+168|0,m+104|0,m,+f[e+56>>2]);else mc(c[d+8>>2]|0,c[d+12>>2]|0,m+168|0,m+104|0,m,+f[e+56>>2]);n=c[d+12>>2]|0;Da[c[(c[n>>2]|0)+44>>2]&31](n,g);k=+f[m+4>>2];l=l-k;if(k<1.0){h=+f[d+112>>2]-+f[d+92>>2];k=+f[d+116>>2]-+f[d+96>>2];i=+f[d+120>>2]-+f[d+100>>2];g=+s(+(h*h+k*k+i*i));if(g>1.1920928955078125e-07){o=+f[m+44>>2];u=+f[m+48>>2];q=+f[m+52>>2];t=(h*(1.0/g)*o+k*(1.0/g)*u+i*(1.0/g)*q)*2.0;r=1.0/+s(+((i*(1.0/g)-q*t)*(i*(1.0/g)-q*t)+((h*(1.0/g)-o*t)*(h*(1.0/g)-o*t)+(k*(1.0/g)-u*t)*(k*(1.0/g)-u*t))));p=q*((i*(1.0/g)-q*t)*r)+(o*((h*(1.0/g)-o*t)*r)+u*((k*(1.0/g)-u*t)*r));c[d+112>>2]=c[d+92>>2];c[d+112+4>>2]=c[d+92+4>>2];c[d+112+8>>2]=c[d+92+8>>2];c[d+112+12>>2]=c[d+92+12>>2];o=g*((h*(1.0/g)-o*t)*r-o*p)+ +f[d+112>>2];f[d+112>>2]=o;h=g*((k*(1.0/g)-u*t)*r-u*p)+ +f[d+116>>2];f[d+116>>2]=h;i=g*((i*(1.0/g)-q*t)*r-q*p)+ +f[d+120>>2];f[d+120>>2]=i;g=o}else{g=+f[d+112>>2];h=+f[d+116>>2];i=+f[d+120>>2]}k=g-+f[d+92>>2];h=h-+f[d+96>>2];g=i-+f[d+100>>2];if(!(k*k+h*h+g*g>1.1920928955078125e-07)){j=13;break}u=1.0/+s(+(k*k+h*h+g*g));if(k*u*+f[d+76>>2]+h*u*+f[d+80>>2]+g*u*+f[d+84>>2]<=0.0){j=13;break}}else{c[d+92>>2]=c[d+112>>2];c[d+92+4>>2]=c[d+112+4>>2];c[d+92+8>>2]=c[d+112+8>>2];c[d+92+12>>2]=c[d+112+12>>2]}if(!(l>.009999999776482582)){j=15;break}}if((j|0)==13){ea=m;return}else if((j|0)==15){ea=m;return}}function ad(b,d,e,g,h){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0.0,t=0.0;r=ea;ea=ea+48|0;c[r+16>>2]=c[e>>2];c[r+16+4>>2]=c[e+4>>2];c[r+16+8>>2]=c[e+8>>2];c[r+16+12>>2]=c[e+12>>2];c[r+16+16>>2]=c[g>>2];c[r+16+16+4>>2]=c[g+4>>2];c[r+16+16+8>>2]=c[g+8>>2];c[r+16+16+12>>2]=c[g+12>>2];do if((c[d+60>>2]|0)==2){h=c[d+48>>2]|0;jg(b+64|0,h)|0;i=c[b+68>>2]|0;if(i|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0)}c[b+68>>2]=h;c[b+76>>2]=(c[b+76>>2]|0)+-1;h=c[b+8>>2]|0;if(!h){c[6747]=(c[6747]|0)+1;h=kb(63)|0;if(!h)h=0;else{c[(h+4+15&-16)+-4>>2]=h;h=h+4+15&-16}i=h;j=i+44|0;do{c[i>>2]=0;i=i+4|0}while((i|0)<(j|0))}else c[b+8>>2]=0;c[h+32>>2]=0;c[h+36>>2]=d;c[h+40>>2]=0;c[h>>2]=c[r+16>>2];c[h+4>>2]=c[r+16+4>>2];c[h+8>>2]=c[r+16+8>>2];c[h+12>>2]=c[r+16+12>>2];c[h+16>>2]=c[r+16+16>>2];c[h+20>>2]=c[r+16+20>>2];c[h+24>>2]=c[r+16+24>>2];c[h+28>>2]=c[r+16+28>>2];je(b+4|0,c[b+4>>2]|0,h);c[b+16>>2]=(c[b+16>>2]|0)+1;c[d+48>>2]=h;j=1}else{c[b+168>>2]=(c[b+168>>2]|0)+1;q=c[d+48>>2]|0;if(((((+f[q>>2]<=+f[r+16+16>>2]?+f[q+16>>2]>=+f[r+16>>2]:0)?+f[q+4>>2]<=+f[r+16+20>>2]:0)?+f[q+20>>2]>=+f[r+16+4>>2]:0)?+f[q+8>>2]<=+f[r+16+24>>2]:0)?+f[q+24>>2]>=+f[r+16+8>>2]:0){l=+f[d+16>>2];s=+f[e>>2]-l;m=+f[d+20>>2];p=+f[e+4>>2]-m;n=+f[d+24>>2];o=+f[e+8>>2]-n;t=+f[b+140>>2];l=(+f[d+32>>2]-l)*.5*t;m=t*((+f[d+36>>2]-m)*.5);n=t*((+f[d+40>>2]-n)*.5);f[r>>2]=l;f[r+4>>2]=m;f[r+8>>2]=n;f[r+12>>2]=0.0;if(s<0.0)f[r>>2]=-l;if(p<0.0)f[r+4>>2]=-m;if(o<0.0)f[r+8>>2]=-n;if(rg(b+4|0,q,r+16|0,r,.05000000074505806)|0){c[b+172>>2]=(c[b+172>>2]|0)+1;h=1}else h=0;j=h;break}h=jg(b+4|0,q)|0;a:do if(h){j=c[b+12>>2]|0;if((j|0)<=-1){h=c[b+4>>2]|0;break}if(j){k=0;i=h;while(1){h=c[i+32>>2]|0;k=k+1|0;if(!h){h=i;break a}if((k|0)>=(j|0))break;else i=h}}}else h=0;while(0);c[q>>2]=c[r+16>>2];c[q+4>>2]=c[r+16+4>>2];c[q+8>>2]=c[r+16+8>>2];c[q+12>>2]=c[r+16+12>>2];c[q+16>>2]=c[r+16+16>>2];c[q+20>>2]=c[r+16+20>>2];c[q+24>>2]=c[r+16+24>>2];c[q+28>>2]=c[r+16+28>>2];je(b+4|0,h,q);c[b+172>>2]=(c[b+172>>2]|0)+1;j=1}while(0);h=c[d+52>>2]|0;if(!h)h=b+124+(c[d+60>>2]<<2)|0;else h=h+56|0;c[h>>2]=c[d+56>>2];h=c[d+56>>2]|0;if(h|0)c[h+52>>2]=c[d+52>>2];c[d+16>>2]=c[e>>2];c[d+16+4>>2]=c[e+4>>2];c[d+16+8>>2]=c[e+8>>2];c[d+16+12>>2]=c[e+12>>2];c[d+32>>2]=c[g>>2];c[d+32+4>>2]=c[g+4>>2];c[d+32+8>>2]=c[g+8>>2];c[d+32+12>>2]=c[g+12>>2];h=c[b+144>>2]|0;c[d+60>>2]=h;c[d+52>>2]=0;c[d+56>>2]=c[b+124+(h<<2)>>2];i=c[b+124+(h<<2)>>2]|0;if(i|0)c[i+52>>2]=d;c[b+124+(h<<2)>>2]=d;if(!j){ea=r;return}a[b+194>>0]=1;if(a[b+193>>0]|0){ea=r;return}c[r>>2]=10216;c[r+4>>2]=b;md(b+64|0,c[b+64>>2]|0,c[d+48>>2]|0,r);md(b+4|0,c[b+4>>2]|0,c[d+48>>2]|0,r);ea=r;return}function bd(a,b,d,e,g){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;var i=0.0,j=0.0,k=0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0;x=+f[a>>2];y=+f[b>>2];z=+f[a+4>>2];A=+f[b+4>>2];B=+f[a+8>>2];C=+f[b+8>>2];D=+f[d>>2];E=+f[d+4>>2];F=+f[d+8>>2];G=(z-A)*(C-F)-(B-C)*(A-E);H=(B-C)*(y-D)-(x-y)*(C-F);I=(x-y)*(A-E)-(z-A)*(y-D);if(!(I*I+(G*G+H*H)>0.0)){I=-1.0;return +I}if(x*(I*(z-A)-H*(B-C))+z*(G*(B-C)-I*(x-y))+(H*(x-y)-G*(z-A))*B>0.0){do if((y-x)*(y-x)+(A-z)*(A-z)+(C-B)*(C-B)>0.0){j=-(x*(y-x)+z*(A-z)+B*(C-B))/((y-x)*(y-x)+(A-z)*(A-z)+(C-B)*(C-B));if(j>=1.0){i=y*y+A*A+C*C;m=2;l=0;k=1065353216;break}if(!(j<=0.0)){k=(f[h>>2]=j,c[h>>2]|0);i=(B+(C-B)*j)*(B+(C-B)*j)+((x+(y-x)*j)*(x+(y-x)*j)+(z+(A-z)*j)*(z+(A-z)*j));m=3;l=(f[h>>2]=1.0-j,c[h>>2]|0);break}else{i=x*x+z*z+B*B;m=1;l=1065353216;k=0;break}}else{i=-1.0;m=0;l=0;k=0}while(0);c[g>>2]=m;c[e>>2]=l;c[e+4>>2]=k;f[e+8>>2]=0.0;u=+f[b>>2];v=+f[b+4>>2];w=+f[b+8>>2]}else{u=y;v=A;w=C;i=-1.0;m=0;l=0;k=0}if(u*(I*(A-E)-H*(C-F))+v*(G*(C-F)-I*(y-D))+(H*(y-D)-G*(A-E))*w>0.0){j=+f[d>>2];q=j-u;o=+f[d+4>>2];t=o-v;p=+f[d+8>>2];r=p-w;do if(q*q+t*t+r*r>0.0){n=-(u*q+v*t+w*r)/(q*q+t*t+r*r);if(n>=1.0){j=j*j+o*o+p*p;m=2;l=0;k=1065353216;break}if(!(n<=0.0)){k=(f[h>>2]=n,c[h>>2]|0);u=u+q*n;j=v+t*n;w=w+r*n;j=w*w+(u*u+j*j);m=3;l=(f[h>>2]=1.0-n,c[h>>2]|0);break}else{j=u*u+v*v+w*w;m=1;l=1065353216;k=0;break}}else j=-1.0;while(0);if(i<0.0|j>2]=m<<1&6;c[e+4>>2]=l;c[e+8>>2]=k;f[e>>2]=0.0;i=j}}j=+f[d>>2];o=+f[d+4>>2];p=+f[d+8>>2];if(j*(I*(E-z)-H*(F-B))+o*(G*(F-B)-I*(D-x))+(H*(D-x)-G*(E-z))*p>0.0){q=+f[a>>2];r=+f[a+4>>2];t=+f[a+8>>2];do if((q-j)*(q-j)+(r-o)*(r-o)+(t-p)*(t-p)>0.0){n=-(j*(q-j)+o*(r-o)+p*(t-p))/((q-j)*(q-j)+(r-o)*(r-o)+(t-p)*(t-p));if(n>=1.0){j=q*q+r*r+t*t;m=2;l=0;k=1065353216;break}if(!(n<=0.0)){k=(f[h>>2]=n,c[h>>2]|0);j=(p+(t-p)*n)*(p+(t-p)*n)+((j+(q-j)*n)*(j+(q-j)*n)+(o+(r-o)*n)*(o+(r-o)*n));m=3;l=(f[h>>2]=1.0-n,c[h>>2]|0);break}else{j=j*j+o*o+p*p;m=1;l=1065353216;k=0;break}}else j=-1.0;while(0);if(i<0.0|j>2]=m<<2&4|(1?m>>>1:m)&1;c[e+8>>2]=l;c[e>>2]=k;f[e+4>>2]=0.0;i=j}}if(!(i<0.0)){I=i;return +I}v=+s(+(I*I+(G*G+H*H)));w=(G*+f[a>>2]+H*+f[a+4>>2]+I*+f[a+8>>2])/(I*I+(G*G+H*H));c[g>>2]=7;t=+f[b>>2]-G*w;r=+f[b+4>>2]-H*w;u=+f[b+8>>2]-I*w;C=+s(+(((y-D)*r-(A-E)*t)*((y-D)*r-(A-E)*t)+(((A-E)*u-(C-F)*r)*((A-E)*u-(C-F)*r)+((C-F)*t-(y-D)*u)*((C-F)*t-(y-D)*u))))/v;f[e>>2]=C;y=+f[d>>2]-G*w;u=+f[d+4>>2]-H*w;A=+f[d+8>>2]-I*w;F=+s(+(((D-x)*u-(E-z)*y)*((D-x)*u-(E-z)*y)+(((E-z)*A-(F-B)*u)*((E-z)*A-(F-B)*u)+((F-B)*y-(D-x)*A)*((F-B)*y-(D-x)*A))))/v;f[e+4>>2]=F;f[e+8>>2]=1.0-(C+F);I=I*w*(I*w)+(G*w*(G*w)+H*w*(H*w));return +I}function cd(b){b=b|0;var d=0.0,e=0,g=0,h=0,i=0,j=0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0,q=0;p=ea;ea=ea+80|0;if((ra[c[(c[b>>2]|0)+20>>2]&127](b)|0?(j=ra[c[(c[b>>2]|0)+20>>2]&127](b)|0,(ra[c[(c[j>>2]|0)+48>>2]&127](j)|0)&8|0):0)?(g=c[b+24>>2]|0,g=ra[c[(c[g>>2]|0)+36>>2]&127](g)|0,c[p+64>>2]=1065353216,c[p+64+4>>2]=1065353216,c[p+64+8>>2]=0,f[p+64+12>>2]=0.0,(g|0)>0):0){i=0;do{h=c[b+24>>2]|0;h=ta[c[(c[h>>2]|0)+40>>2]&31](h,i)|0;e=c[h+748>>2]|0;if((e|0)>0){j=0;do{q=ra[c[(c[b>>2]|0)+20>>2]&127](b)|0;Oa[c[(c[q>>2]|0)+32>>2]&1](q,h+4+(j*184|0)+32|0,h+4+(j*184|0)+64|0,+f[h+4+(j*184|0)+80>>2],c[h+4+(j*184|0)+148>>2]|0,p+64|0);j=j+1|0}while((j|0)!=(e|0))}i=i+1|0}while((i|0)!=(g|0))}if(!(ra[c[(c[b>>2]|0)+20>>2]&127](b)|0)){ea=p;return}q=ra[c[(c[b>>2]|0)+20>>2]&127](b)|0;if(!((ra[c[(c[q>>2]|0)+48>>2]&127](q)|0)&3)){ea=p;return}if((c[b+8>>2]|0)<=0){ea=p;return}j=0;do{i=c[(c[b+16>>2]|0)+(j<<2)>>2]|0;if(!(c[i+204>>2]&32)){if(ra[c[(c[b>>2]|0)+20>>2]&127](b)|0?(q=ra[c[(c[b>>2]|0)+20>>2]&127](b)|0,(ra[c[(c[q>>2]|0)+48>>2]&127](q)|0)&1|0):0){c[p+64>>2]=1065353216;c[p+64+4>>2]=1065353216;c[p+64+8>>2]=1065353216;f[p+64+12>>2]=0.0;switch(c[i+216>>2]|0){case 1:{e=1065353216;g=1065353216;h=1065353216;break}case 2:{e=0;g=1065353216;h=0;break}case 3:{e=1065353216;g=1065353216;h=0;break}case 4:{e=0;g=0;h=1065353216;break}case 5:{e=0;g=1065353216;h=1065353216;break}default:{e=0;g=0;h=1065353216}}c[p+64>>2]=h;c[p+64+4>>2]=g;c[p+64+8>>2]=e;f[p+64+12>>2]=0.0;Pa[c[(c[b>>2]|0)+28>>2]&127](b,i+4|0,c[i+192>>2]|0,p+64|0)}e=c[b+72>>2]|0;if(e|0?(ra[c[(c[e>>2]|0)+48>>2]&127](e)|0)&2|0:0){c[p+32>>2]=1065353216;c[p+32+4>>2]=0;c[p+32+8>>2]=0;f[p+32+12>>2]=0.0;q=c[i+192>>2]|0;Pa[c[(c[q>>2]|0)+8>>2]&127](q,i+4|0,p+64|0,p+48|0);f[p+64>>2]=+f[p+64>>2]+-.019999999552965164;f[p+64+4>>2]=+f[p+64+4>>2]+-.019999999552965164;f[p+64+8>>2]=+f[p+64+8>>2]+-.019999999552965164;f[p+48>>2]=+f[p+48>>2]+.019999999552965164;f[p+48+4>>2]=+f[p+48+4>>2]+.019999999552965164;f[p+48+8>>2]=+f[p+48+8>>2]+.019999999552965164;do if((a[b+44>>0]|0?(c[i+236>>2]|0)==2:0)?(c[i+204>>2]&3|0)==0:0){q=c[i+192>>2]|0;Pa[c[(c[q>>2]|0)+8>>2]&127](q,i+68|0,p+16|0,p);d=+f[p+16>>2]+-.019999999552965164;f[p+16>>2]=d;l=+f[p+16+4>>2]+-.019999999552965164;f[p+16+4>>2]=l;k=+f[p+16+8>>2]+-.019999999552965164;f[p+16+8>>2]=k;m=+f[p>>2]+.019999999552965164;f[p>>2]=m;o=+f[p+4>>2]+.019999999552965164;f[p+4>>2]=o;n=+f[p+8>>2]+.019999999552965164;f[p+8>>2]=n;if(d<+f[p+64>>2])f[p+64>>2]=d;if(l<+f[p+64+4>>2])f[p+64+4>>2]=l;if(k<+f[p+64+8>>2])f[p+64+8>>2]=k;d=+f[p+16+12>>2];if(d<+f[p+64+12>>2])f[p+64+12>>2]=d;if(+f[p+48>>2]>2]=m;if(+f[p+48+4>>2]>2]=o;if(+f[p+48+8>>2]>2]=n;d=+f[p+12>>2];if(!(+f[p+48+12>>2]>2]=d}while(0);q=c[b+72>>2]|0;Pa[c[(c[q>>2]|0)+52>>2]&127](q,p+64|0,p+48|0,p+32|0)}}j=j+1|0}while((j|0)<(c[b+8>>2]|0));ea=p;return}function dd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;l=c[b>>2]|0;m=c[b+4>>2]|0;i=c[b+8>>2]|0;n=c[a+4>>2]|0;p=Vg(a,d,m,i)|0;c[p+12>>2]=c[b+12>>2];c[p+16>>2]=n+1;c[p+20>>2]=n+2;h=c[(c[a+12>>2]|0)+(c[b+12>>2]<<2)>>2]|0;e=c[h>>2]|0;f=c[h+4>>2]|0;do if((e|0)==(m|0)&(f|0)==(i|0)){e=2;o=2}else{if(!((e|0)==(i|0)&(f|0)==(m|0))){g=c[h+8>>2]|0;if((f|0)==(m|0)&(g|0)==(i|0)){e=0;o=2;break}if(!((f|0)==(i|0)&(g|0)==(m|0))){if(!((g|0)!=(m|0)|(e|0)==(i|0)^1)){e=1;o=2;break}if((g|0)!=(i|0)|(e|0)==(m|0)^1){e=10744;break}else e=1}else e=0}else e=2;e=h+12+(e<<2)|0}while(0);if((o|0)==2)e=h+12+(e<<2)|0;c[e>>2]=n;k=Vg(a,d,i,l)|0;c[k+12>>2]=c[b+12+4>>2];c[k+16>>2]=n+2;c[k+20>>2]=n;h=c[(c[a+12>>2]|0)+(c[b+12+4>>2]<<2)>>2]|0;e=c[h>>2]|0;f=c[h+4>>2]|0;do if((e|0)==(i|0)&(f|0)==(l|0)){e=2;o=10}else{if(!((e|0)==(l|0)&(f|0)==(i|0))){g=c[h+8>>2]|0;if((f|0)==(i|0)&(g|0)==(l|0)){e=0;o=10;break}if(!((f|0)==(l|0)&(g|0)==(i|0))){if(!((g|0)!=(i|0)|(e|0)==(l|0)^1)){e=1;o=10;break}if((g|0)!=(l|0)|(e|0)==(i|0)^1){e=10744;break}else e=1}else e=0}else e=2;e=h+12+(e<<2)|0}while(0);if((o|0)==10)e=h+12+(e<<2)|0;c[e>>2]=n+1;j=Vg(a,d,l,m)|0;c[j+12>>2]=c[b+12+8>>2];c[j+16>>2]=n;c[j+20>>2]=n+1;f=c[a+12>>2]|0;i=c[f+(c[b+12+8>>2]<<2)>>2]|0;e=c[i>>2]|0;g=c[i+4>>2]|0;do if((e|0)==(l|0)&(g|0)==(m|0)){e=2;o=18}else{if(!((e|0)==(m|0)&(g|0)==(l|0))){h=c[i+8>>2]|0;if((g|0)==(l|0)&(h|0)==(m|0)){e=0;o=18;break}if(!((g|0)==(m|0)&(h|0)==(l|0))){if(!((h|0)!=(l|0)|(e|0)==(m|0)^1)){e=1;o=18;break}if((h|0)!=(m|0)|(e|0)==(l|0)^1){e=10744;break}else e=1}else e=0}else e=2;e=i+12+(e<<2)|0}while(0);if((o|0)==18)e=i+12+(e<<2)|0;c[e>>2]=n+2;e=c[f+(c[p+12>>2]<<2)>>2]|0;if(!(((c[e>>2]|0)!=(d|0)?(c[e+4>>2]|0)!=(d|0):0)?(c[e+8>>2]|0)!=(d|0):0)){jd(f,p,e);c[(c[a+12>>2]|0)+(c[p+24>>2]<<2)>>2]=0;c[6748]=(c[6748]|0)+1;uc(c[p+-4>>2]|0);c[(c[a+12>>2]|0)+(c[e+24>>2]<<2)>>2]=0;if(e|0){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0)}f=c[a+12>>2]|0}e=c[f+(c[k+12>>2]<<2)>>2]|0;if(!(((c[e>>2]|0)!=(d|0)?(c[e+4>>2]|0)!=(d|0):0)?(c[e+8>>2]|0)!=(d|0):0)){jd(f,k,e);c[(c[a+12>>2]|0)+(c[k+24>>2]<<2)>>2]=0;c[6748]=(c[6748]|0)+1;uc(c[k+-4>>2]|0);c[(c[a+12>>2]|0)+(c[e+24>>2]<<2)>>2]=0;if(e|0){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0)}f=c[a+12>>2]|0}e=c[f+(c[j+12>>2]<<2)>>2]|0;if(((c[e>>2]|0)!=(d|0)?(c[e+4>>2]|0)!=(d|0):0)?(c[e+8>>2]|0)!=(d|0):0){a=f;d=b+24|0;d=c[d>>2]|0;d=a+(d<<2)|0;c[d>>2]=0;d=c[6748]|0;d=d+1|0;c[6748]=d;d=b+-4|0;d=c[d>>2]|0;uc(d);return}jd(f,j,e);c[(c[a+12>>2]|0)+(c[j+24>>2]<<2)>>2]=0;c[6748]=(c[6748]|0)+1;uc(c[j+-4>>2]|0);c[(c[a+12>>2]|0)+(c[e+24>>2]<<2)>>2]=0;if(e|0){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0)}a=c[a+12>>2]|0;d=b+24|0;d=c[d>>2]|0;d=a+(d<<2)|0;c[d>>2]=0;d=c[6748]|0;d=d+1|0;c[6748]=d;d=b+-4|0;d=c[d>>2]|0;uc(d);return}function ed(a,b){a=a|0;b=b|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0;o=ea;ea=ea+144|0;if((c[a+16>>2]|0)<=0){n=a+76|0;c[n>>2]=c[b>>2];c[n+4>>2]=c[b+4>>2];c[n+8>>2]=c[b+8>>2];c[n+12>>2]=c[b+12>>2];b=c[a>>2]|0;b=b+68|0;b=c[b>>2]|0;Ca[b&511](a);ea=o;return}l=o+16+16|0;k=o+16+32|0;n=o+16+48|0;m=0;do{j=c[a+24>>2]|0;i=j+(m*80|0)|0;c[o+16>>2]=c[i>>2];c[o+16+4>>2]=c[i+4>>2];c[o+16+8>>2]=c[i+8>>2];c[o+16+12>>2]=c[i+12>>2];i=j+(m*80|0)+16|0;c[l>>2]=c[i>>2];c[l+4>>2]=c[i+4>>2];c[l+8>>2]=c[i+8>>2];c[l+12>>2]=c[i+12>>2];i=j+(m*80|0)+32|0;c[k>>2]=c[i>>2];c[k+4>>2]=c[i+4>>2];c[k+8>>2]=c[i+8>>2];c[k+12>>2]=c[i+12>>2];i=j+(m*80|0)+48|0;c[n>>2]=c[i>>2];c[n+4>>2]=c[i+4>>2];c[n+8>>2]=c[i+8>>2];c[n+12>>2]=c[i+12>>2];j=c[j+(m*80|0)+64>>2]|0;j=ra[c[(c[j>>2]|0)+28>>2]&127](j)|0;c[o>>2]=c[j>>2];c[o+4>>2]=c[j+4>>2];c[o+8>>2]=c[j+8>>2];p=+f[o+4>>2]*+f[b+4>>2]/+f[a+80>>2];q=+f[o+8>>2]*+f[b+8>>2]/+f[a+84>>2];f[o>>2]=+f[o>>2]*+f[b>>2]/+f[a+76>>2];f[o+4>>2]=p;f[o+8>>2]=q;f[o+12>>2]=0.0;j=c[(c[a+24>>2]|0)+(m*80|0)+64>>2]|0;Ia[c[(c[j>>2]|0)+24>>2]&127](j,o);q=+f[o+16+52>>2]*+f[b+4>>2]/+f[a+80>>2];p=+f[o+16+56>>2]*+f[b+8>>2]/+f[a+84>>2];f[o+16+48>>2]=+f[n>>2]*+f[b>>2]/+f[a+76>>2];f[o+16+52>>2]=q;f[o+16+56>>2]=p;f[o+16+60>>2]=0.0;j=c[a+24>>2]|0;i=j+(m*80|0)|0;c[i>>2]=c[o+16>>2];c[i+4>>2]=c[o+16+4>>2];c[i+8>>2]=c[o+16+8>>2];c[i+12>>2]=c[o+16+12>>2];i=j+(m*80|0)+16|0;c[i>>2]=c[l>>2];c[i+4>>2]=c[l+4>>2];c[i+8>>2]=c[l+8>>2];c[i+12>>2]=c[l+12>>2];i=j+(m*80|0)+32|0;c[i>>2]=c[k>>2];c[i+4>>2]=c[k+4>>2];c[i+8>>2]=c[k+8>>2];c[i+12>>2]=c[k+12>>2];j=j+(m*80|0)+48|0;c[j>>2]=c[n>>2];c[j+4>>2]=c[n+4>>2];c[j+8>>2]=c[n+8>>2];c[j+12>>2]=c[n+12>>2];if(c[a+64>>2]|0){i=c[(c[a+24>>2]|0)+(m*80|0)+64>>2]|0;Pa[c[(c[i>>2]|0)+8>>2]&127](i,o+16|0,o+128|0,o+112|0);c[o+80>>2]=c[o+128>>2];c[o+80+4>>2]=c[o+128+4>>2];c[o+80+8>>2]=c[o+128+8>>2];c[o+80+12>>2]=c[o+128+12>>2];c[o+80+16>>2]=c[o+112>>2];c[o+80+16+4>>2]=c[o+112+4>>2];c[o+80+16+8>>2]=c[o+112+8>>2];c[o+80+16+12>>2]=c[o+112+12>>2];i=c[a+64>>2]|0;j=c[(c[a+24>>2]|0)+(m*80|0)+76>>2]|0;d=jg(i,j)|0;a:do if(d){g=c[i+8>>2]|0;if((g|0)<=-1){d=c[i>>2]|0;break}if(g){h=0;e=d;while(1){d=c[e+32>>2]|0;h=h+1|0;if(!d){d=e;break a}if((h|0)>=(g|0))break;else e=d}}}else d=0;while(0);c[j>>2]=c[o+80>>2];c[j+4>>2]=c[o+80+4>>2];c[j+8>>2]=c[o+80+8>>2];c[j+12>>2]=c[o+80+12>>2];c[j+16>>2]=c[o+80+16>>2];c[j+20>>2]=c[o+80+20>>2];c[j+24>>2]=c[o+80+24>>2];c[j+28>>2]=c[o+80+28>>2];je(i,d,j)}m=m+1|0}while((m|0)<(c[a+16>>2]|0));n=a+76|0;c[n>>2]=c[b>>2];c[n+4>>2]=c[b+4>>2];c[n+8>>2]=c[b+8>>2];c[n+12>>2]=c[b+12>>2];b=c[a>>2]|0;b=b+68|0;b=c[b>>2]|0;Ca[b&511](a);ea=o;return}function fd(d,g,h,i,j,k){d=d|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0.0,m=0.0,n=0.0;c[d>>2]=9896;b[d+4>>1]=-2;b[d+6>>1]=-1;c[d+92>>2]=j;c[d+96>>2]=0;a[d+100>>0]=0;c[d+104>>2]=0;c[d+108>>2]=0;if(!j){c[6747]=(c[6747]|0)+1;j=kb(95)|0;if(!j)j=0;else{c[(j+4+15&-16)+-4>>2]=j;j=j+4+15&-16}Oh(j);c[d+92>>2]=j;a[d+100>>0]=1}if(!k){c[6747]=(c[6747]|0)+1;j=kb(43)|0;if(!j)j=0;else{c[(j+4+15&-16)+-4>>2]=j;j=j+4+15&-16}k=j+4|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[k+16>>2]=0;c[j>>2]=9960;a[j+20>>0]=1;c[j+16>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;c[d+112>>2]=j;c[6747]=(c[6747]|0)+1;j=kb(215)|0;if(!j)j=0;else{c[(j+4+15&-16)+-4>>2]=j;j=j+4+15&-16}_g(j,c[d+112>>2]|0);c[d+108>>2]=j;a[j+193>>0]=1}c[d+8>>2]=c[g>>2];c[d+8+4>>2]=c[g+4>>2];c[d+8+8>>2]=c[g+8>>2];c[d+8+12>>2]=c[g+12>>2];c[d+24>>2]=c[h>>2];c[d+24+4>>2]=c[h+4>>2];c[d+24+8>>2]=c[h+8>>2];c[d+24+12>>2]=c[h+12>>2];n=+(e[d+6>>1]|0);m=n/(+f[d+28>>2]-+f[d+12>>2]);l=n/(+f[d+32>>2]-+f[d+16>>2]);f[d+40>>2]=n/(+f[d+24>>2]-+f[d+8>>2]);f[d+44>>2]=m;f[d+48>>2]=l;f[d+52>>2]=0.0;g=i+1&65535;c[6747]=(c[6747]|0)+1;j=kb(g<<6|19)|0;if(!j)h=0;else{c[(j+4+15&-16)+-4>>2]=j;h=j+4+15&-16}if(i+1<<16>>16<<16>>16){k=h+(g<<6)|0;j=h;do{c[j>>2]=0;c[j+8>>2]=0;j=j+64|0}while((j|0)!=(k|0))}c[d+60>>2]=h;b[d+58>>1]=(i&65535)+1;b[d+56>>1]=0;b[d+64>>1]=1;if((i+1&65535)>1?(b[h+112>>1]=2,i+1<<16>>16<<16>>16!=2):0){j=2;do{i=j;j=j+1|0;b[h+(i<<6)+48>>1]=j}while((j|0)!=(g|0))}b[h+(g+-1<<6)+48>>1]=0;c[6747]=(c[6747]|0)+1;j=kb((g<<3|3)+16|0)|0;if(!j)j=0;else{c[(j+4+15&-16)+-4>>2]=j;j=j+4+15&-16}c[d+80>>2]=j;c[d+68>>2]=j;c[6747]=(c[6747]|0)+1;j=kb((g<<3|3)+16|0)|0;if(!j)j=0;else{c[(j+4+15&-16)+-4>>2]=j;j=j+4+15&-16}c[d+84>>2]=j;c[d+72>>2]=j;c[6747]=(c[6747]|0)+1;j=kb((g<<3|3)+16|0)|0;if(!j){h=0;i=d+88|0;c[i>>2]=h;i=d+76|0;c[i>>2]=h;h=c[d+60>>2]|0;c[h>>2]=0;g=h+48|0;b[g>>1]=0;g=h+54|0;b[g>>1]=1;g=c[d+68>>2]|0;b[g>>1]=0;k=g+2|0;b[k>>1]=0;k=b[d+6>>1]|0;j=g+4|0;b[j>>1]=k;g=g+6|0;b[g>>1]=0;g=h+50|0;b[g>>1]=0;g=h+56|0;b[g>>1]=1;g=c[d+72>>2]|0;b[g>>1]=0;j=g+2|0;b[j>>1]=0;j=b[d+6>>1]|0;k=g+4|0;b[k>>1]=j;g=g+6|0;b[g>>1]=0;g=h+52|0;b[g>>1]=0;h=h+58|0;b[h>>1]=1;i=c[i>>2]|0;b[i>>1]=0;h=i+2|0;b[h>>1]=0;h=b[d+6>>1]|0;g=i+4|0;b[g>>1]=h;i=i+6|0;b[i>>1]=0;c[d>>2]=9832;return}c[(j+4+15&-16)+-4>>2]=j;h=j+4+15&-16;i=d+88|0;c[i>>2]=h;i=d+76|0;c[i>>2]=h;h=c[d+60>>2]|0;c[h>>2]=0;g=h+48|0;b[g>>1]=0;g=h+54|0;b[g>>1]=1;g=c[d+68>>2]|0;b[g>>1]=0;k=g+2|0;b[k>>1]=0;k=b[d+6>>1]|0;j=g+4|0;b[j>>1]=k;g=g+6|0;b[g>>1]=0;g=h+50|0;b[g>>1]=0;g=h+56|0;b[g>>1]=1;g=c[d+72>>2]|0;b[g>>1]=0;j=g+2|0;b[j>>1]=0;j=b[d+6>>1]|0;k=g+4|0;b[k>>1]=j;g=g+6|0;b[g>>1]=0;g=h+52|0;b[g>>1]=0;h=h+58|0;b[h>>1]=1;i=c[i>>2]|0;b[i>>1]=0;h=i+2|0;b[h>>1]=0;h=b[d+6>>1]|0;g=i+4|0;b[g>>1]=h;i=i+6|0;b[i>>1]=0;c[d>>2]=9832;return}function gd(b,d,e,g){b=b|0;d=d|0;e=e|0;g=g|0;var h=0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0;Jk();c[b+4>>2]=6;c[b+8>>2]=-1;c[b+12>>2]=-1;f[b+16>>2]=3402823466385288598117041.0e14;a[b+20>>0]=1;a[b+21>>0]=0;c[b+24>>2]=-1;c[b+28>>2]=25640;c[b+32>>2]=d;f[b+36>>2]=0.0;f[b+40>>2]=.30000001192092896;c[b+44>>2]=0;c[b>>2]=5492;c[b+112>>2]=c[e>>2];c[b+112+4>>2]=c[e+4>>2];c[b+112+8>>2]=c[e+8>>2];c[b+112+12>>2]=c[e+12>>2];c[b+128>>2]=c[e+16>>2];c[b+128+4>>2]=c[e+16+4>>2];c[b+128+8>>2]=c[e+16+8>>2];c[b+128+12>>2]=c[e+16+12>>2];c[b+144>>2]=c[e+32>>2];c[b+144+4>>2]=c[e+32+4>>2];c[b+144+8>>2]=c[e+32+8>>2];c[b+144+12>>2]=c[e+32+12>>2];c[b+160>>2]=c[e+48>>2];c[b+160+4>>2]=c[e+48+4>>2];c[b+160+8>>2]=c[e+48+8>>2];c[b+160+12>>2]=c[e+48+12>>2];e=b+680|0;h=e+48|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(h|0));c[b+740>>2]=0;c[b+740+4>>2]=0;c[b+740+8>>2]=0;c[b+740+12>>2]=0;c[b+756>>2]=1045220557;c[b+760>>2]=1045220557;c[b+764>>2]=1045220557;c[b+768>>2]=0;c[b+768+4>>2]=0;c[b+768+8>>2]=0;c[b+768+12>>2]=0;c[b+768+16>>2]=0;f[b+728>>2]=.699999988079071;f[b+732>>2]=1.0;f[b+736>>2]=.5;a[b+788>>0]=0;a[b+788+1>>0]=0;a[b+788+2>>0]=0;c[b+792>>2]=0;c[b+792+4>>2]=0;c[b+792+8>>2]=0;c[b+808>>2]=0;c[b+808+4>>2]=0;c[b+808+8>>2]=0;f[b+928>>2]=0.0;f[b+876>>2]=0.0;f[b+880>>2]=.10000000149011612;f[b+884>>2]=300.0;f[b+868>>2]=1.0;f[b+872>>2]=-1.0;f[b+896>>2]=0.0;f[b+900>>2]=.20000000298023224;f[b+904>>2]=0.0;f[b+908>>2]=0.0;f[b+888>>2]=1.0;f[b+892>>2]=.5;c[b+924>>2]=0;f[b+916>>2]=0.0;a[b+912>>0]=0;f[b+992>>2]=0.0;f[b+940>>2]=0.0;f[b+944>>2]=.10000000149011612;f[b+948>>2]=300.0;f[b+932>>2]=1.0;f[b+936>>2]=-1.0;f[b+960>>2]=0.0;f[b+964>>2]=.20000000298023224;f[b+968>>2]=0.0;f[b+972>>2]=0.0;f[b+952>>2]=1.0;f[b+956>>2]=.5;c[b+988>>2]=0;f[b+980>>2]=0.0;a[b+976>>0]=0;f[b+1056>>2]=0.0;f[b+1004>>2]=0.0;f[b+1008>>2]=.10000000149011612;f[b+1012>>2]=300.0;f[b+996>>2]=1.0;f[b+1e3>>2]=-1.0;f[b+1024>>2]=0.0;f[b+1028>>2]=.20000000298023224;f[b+1032>>2]=0.0;f[b+1036>>2]=0.0;f[b+1016>>2]=1.0;f[b+1020>>2]=.5;c[b+1052>>2]=0;f[b+1044>>2]=0.0;a[b+1040>>0]=0;a[b+1300>>0]=g&1;a[b+1301>>0]=1;c[b+1304>>2]=0;a[b+1308>>0]=0;w=+f[b+112>>2];C=+f[d+4>>2];v=+f[b+128>>2];B=+f[d+8>>2];u=+f[b+144>>2];A=+f[d+12>>2];t=+f[b+116>>2];s=+f[b+132>>2];r=+f[b+148>>2];q=+f[b+120>>2];o=+f[b+136>>2];m=+f[b+152>>2];z=+f[d+20>>2];y=+f[d+24>>2];x=+f[d+28>>2];p=+f[d+36>>2];n=+f[d+40>>2];l=+f[d+44>>2];E=+f[b+160>>2];D=+f[b+164>>2];i=+f[b+168>>2];k=+f[d+52>>2]+(C*E+B*D+A*i);j=z*E+y*D+x*i+ +f[d+56>>2];i=p*E+n*D+l*i+ +f[d+60>>2];f[b+48>>2]=w*C+v*B+u*A;f[b+52>>2]=C*t+B*s+A*r;f[b+56>>2]=C*q+B*o+A*m;f[b+60>>2]=0.0;f[b+64>>2]=w*z+v*y+u*x;f[b+68>>2]=t*z+s*y+r*x;f[b+72>>2]=q*z+o*y+m*x;f[b+76>>2]=0.0;f[b+80>>2]=w*p+v*n+u*l;f[b+84>>2]=t*p+s*n+r*l;f[b+88>>2]=q*p+o*n+m*l;f[b+92>>2]=0.0;f[b+96>>2]=k;f[b+100>>2]=j;f[b+104>>2]=i;f[b+108>>2]=0.0;gc(b,(c[b+28>>2]|0)+4|0,(c[b+32>>2]|0)+4|0);return}function hd(b,d,e,g,h){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0,W=0.0,X=0.0;V=ea;ea=ea+240|0;g=(a[b+8>>0]|0)!=0;h=g?e:d;g=g?d:e;R=+f[h+116>>2]-+f[h+52>>2];S=+f[h+120>>2]-+f[h+56>>2];T=+f[h+124>>2]-+f[h+60>>2];U=+f[h+252>>2];if(R*R+S*S+T*T>2];o=+f[g+20>>2];p=+f[g+36>>2];q=+f[g+8>>2];r=+f[g+24>>2];s=+f[g+40>>2];t=+f[g+12>>2];u=+f[g+28>>2];v=+f[g+44>>2];j=-+f[g+52>>2];k=-+f[g+56>>2];l=-+f[g+60>>2];w=+f[h+4>>2];x=+f[h+20>>2];y=+f[h+36>>2];z=+f[h+8>>2];A=+f[h+24>>2];B=+f[h+40>>2];C=+f[h+12>>2];D=+f[h+28>>2];E=+f[h+44>>2];G=+f[h+52>>2];F=+f[h+56>>2];S=+f[h+60>>2];Q=O*j+o*k+p*l+(O*G+o*F+p*S);U=q*j+r*k+s*l+(q*G+r*F+s*S);S=t*j+u*k+v*l+(t*G+u*F+v*S);F=+f[h+68>>2];G=+f[h+84>>2];H=+f[h+100>>2];I=+f[h+72>>2];J=+f[h+88>>2];K=+f[h+104>>2];L=+f[h+76>>2];M=+f[h+92>>2];N=+f[h+108>>2];m=+f[h+116>>2];n=+f[h+120>>2];R=+f[h+124>>2];P=O*j+o*k+p*l+(O*m+o*n+p*R);T=q*j+r*k+s*l+(q*m+r*n+s*R);R=t*j+u*k+v*l+(t*m+u*n+v*R);g=c[g+192>>2]|0;if(((c[g+4>>2]|0)+-21|0)>>>0>=9){W=1.0;ea=V;return +W}f[V+224>>2]=Q;f[V+224+4>>2]=U;f[V+224+8>>2]=S;f[V+224+12>>2]=0.0;if(P>2]=P;i=P}else i=Q;if(T>2]=T;j=T}else j=U;if(R>2]=R;k=R}else k=S;f[V+208>>2]=Q;f[V+208+4>>2]=U;f[V+208+8>>2]=S;f[V+208+12>>2]=0.0;if(Q>2]=P;l=P}else l=Q;if(U>2]=T;m=T}else m=U;if(S>2]=R;n=R}else n=S;X=+f[h+248>>2];f[V+224>>2]=i-X;f[V+224+4>>2]=j-X;f[V+224+8>>2]=k-X;f[V+208>>2]=X+l;f[V+208+4>>2]=X+m;f[V+208+8>>2]=X+n;c[V>>2]=4732;f[V+4>>2]=O*w+o*x+p*y;f[V+8>>2]=O*z+o*A+p*B;f[V+12>>2]=O*C+o*D+p*E;f[V+16>>2]=0.0;f[V+20>>2]=q*w+r*x+s*y;f[V+24>>2]=q*z+r*A+s*B;f[V+28>>2]=q*C+r*D+s*E;f[V+32>>2]=0.0;f[V+36>>2]=t*w+u*x+v*y;f[V+40>>2]=t*z+u*A+v*B;f[V+44>>2]=t*C+u*D+v*E;f[V+48>>2]=0.0;f[V+52>>2]=Q;f[V+56>>2]=U;f[V+60>>2]=S;f[V+64>>2]=0.0;f[V+68>>2]=O*F+o*G+p*H;f[V+72>>2]=O*I+o*J+p*K;f[V+76>>2]=O*L+o*M+p*N;f[V+80>>2]=0.0;f[V+84>>2]=q*F+r*G+s*H;f[V+88>>2]=q*I+r*J+s*K;f[V+92>>2]=q*L+r*M+s*N;f[V+96>>2]=0.0;f[V+100>>2]=t*F+u*G+v*H;f[V+104>>2]=t*I+u*J+v*K;f[V+108>>2]=t*L+u*M+v*N;f[V+112>>2]=0.0;f[V+116>>2]=P;f[V+120>>2]=T;f[V+124>>2]=R;f[V+128>>2]=0.0;f[V+196>>2]=X;c[V+200>>2]=c[h+244>>2];if(g|0?(Pa[c[(c[g>>2]|0)+64>>2]&127](g,V,V+224|0,V+208|0),W=+f[V+200>>2],W<+f[h+244>>2]):0){f[h+244>>2]=W;X=W;ea=V;return +X}X=1.0;ea=V;return +X}function id(b,d,e,g,h){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0,W=0.0,X=0.0;V=ea;ea=ea+240|0;g=(a[b+8>>0]|0)!=0;h=g?e:d;g=g?d:e;R=+f[h+116>>2]-+f[h+52>>2];S=+f[h+120>>2]-+f[h+56>>2];T=+f[h+124>>2]-+f[h+60>>2];U=+f[h+252>>2];if(R*R+S*S+T*T>2];o=+f[g+20>>2];p=+f[g+36>>2];q=+f[g+8>>2];r=+f[g+24>>2];s=+f[g+40>>2];t=+f[g+12>>2];u=+f[g+28>>2];v=+f[g+44>>2];j=-+f[g+52>>2];k=-+f[g+56>>2];l=-+f[g+60>>2];w=+f[h+4>>2];x=+f[h+20>>2];y=+f[h+36>>2];z=+f[h+8>>2];A=+f[h+24>>2];B=+f[h+40>>2];C=+f[h+12>>2];D=+f[h+28>>2];E=+f[h+44>>2];G=+f[h+52>>2];F=+f[h+56>>2];S=+f[h+60>>2];Q=O*j+o*k+p*l+(O*G+o*F+p*S);U=q*j+r*k+s*l+(q*G+r*F+s*S);S=t*j+u*k+v*l+(t*G+u*F+v*S);F=+f[h+68>>2];G=+f[h+84>>2];H=+f[h+100>>2];I=+f[h+72>>2];J=+f[h+88>>2];K=+f[h+104>>2];L=+f[h+76>>2];M=+f[h+92>>2];N=+f[h+108>>2];m=+f[h+116>>2];n=+f[h+120>>2];R=+f[h+124>>2];P=O*j+o*k+p*l+(O*m+o*n+p*R);T=q*j+r*k+s*l+(q*m+r*n+s*R);R=t*j+u*k+v*l+(t*m+u*n+v*R);g=c[g+192>>2]|0;if(((c[g+4>>2]|0)+-21|0)>>>0>=9){W=1.0;ea=V;return +W}f[V+224>>2]=Q;f[V+224+4>>2]=U;f[V+224+8>>2]=S;f[V+224+12>>2]=0.0;if(P>2]=P;i=P}else i=Q;if(T>2]=T;j=T}else j=U;if(R>2]=R;k=R}else k=S;f[V+208>>2]=Q;f[V+208+4>>2]=U;f[V+208+8>>2]=S;f[V+208+12>>2]=0.0;if(Q>2]=P;l=P}else l=Q;if(U>2]=T;m=T}else m=U;if(S>2]=R;n=R}else n=S;X=+f[h+248>>2];f[V+224>>2]=i-X;f[V+224+4>>2]=j-X;f[V+224+8>>2]=k-X;f[V+208>>2]=X+l;f[V+208+4>>2]=X+m;f[V+208+8>>2]=X+n;c[V>>2]=6648;f[V+4>>2]=O*w+o*x+p*y;f[V+8>>2]=O*z+o*A+p*B;f[V+12>>2]=O*C+o*D+p*E;f[V+16>>2]=0.0;f[V+20>>2]=q*w+r*x+s*y;f[V+24>>2]=q*z+r*A+s*B;f[V+28>>2]=q*C+r*D+s*E;f[V+32>>2]=0.0;f[V+36>>2]=t*w+u*x+v*y;f[V+40>>2]=t*z+u*A+v*B;f[V+44>>2]=t*C+u*D+v*E;f[V+48>>2]=0.0;f[V+52>>2]=Q;f[V+56>>2]=U;f[V+60>>2]=S;f[V+64>>2]=0.0;f[V+68>>2]=O*F+o*G+p*H;f[V+72>>2]=O*I+o*J+p*K;f[V+76>>2]=O*L+o*M+p*N;f[V+80>>2]=0.0;f[V+84>>2]=q*F+r*G+s*H;f[V+88>>2]=q*I+r*J+s*K;f[V+92>>2]=q*L+r*M+s*N;f[V+96>>2]=0.0;f[V+100>>2]=t*F+u*G+v*H;f[V+104>>2]=t*I+u*J+v*K;f[V+108>>2]=t*L+u*M+v*N;f[V+112>>2]=0.0;f[V+116>>2]=P;f[V+120>>2]=T;f[V+124>>2]=R;f[V+128>>2]=0.0;f[V+196>>2]=X;c[V+200>>2]=c[h+244>>2];if(g|0?(Pa[c[(c[g>>2]|0)+64>>2]&127](g,V,V+224|0,V+208|0),W=+f[V+200>>2],W<+f[h+244>>2]):0){f[h+244>>2]=W;X=W;ea=V;return +X}X=1.0;ea=V;return +X}function jd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=0;do{k=m;m=m+1|0;l=(m|0)==3;j=c[b+((l?0:m)<<2)>>2]|0;k=c[b+((((k+2|0)>>>0)%3|0)<<2)>>2]|0;e=c[d>>2]|0;f=c[d+4>>2]|0;do if((e|0)==(k|0)&(f|0)==(j|0)){e=2;n=3}else{if(!((e|0)==(j|0)&(f|0)==(k|0))){g=c[d+8>>2]|0;if((f|0)==(k|0)&(g|0)==(j|0)){e=0;n=3;break}if(!((f|0)==(j|0)&(g|0)==(k|0))){if(!((g|0)!=(k|0)|(e|0)==(j|0)^1)){e=1;n=3;break}if((g|0)!=(j|0)|(e|0)==(k|0)^1){e=10744;break}else e=1}else e=0}else e=2;e=d+12+(e<<2)|0}while(0);if((n|0)==3){n=0;e=d+12+(e<<2)|0}i=c[e>>2]|0;e=c[b>>2]|0;f=c[b+4>>2]|0;do if((e|0)==(j|0)&(f|0)==(k|0)){e=2;n=11}else{if(!((e|0)==(k|0)&(f|0)==(j|0))){g=c[b+8>>2]|0;if((f|0)==(j|0)&(g|0)==(k|0)){e=0;n=11;break}if(!((f|0)==(k|0)&(g|0)==(j|0))){if(!((g|0)!=(j|0)|(e|0)==(k|0)^1)){e=1;n=11;break}if((g|0)!=(k|0)|(e|0)==(j|0)^1){e=10744;break}else e=1}else e=0}else e=2;e=b+12+(e<<2)|0}while(0);if((n|0)==11){n=0;e=b+12+(e<<2)|0}h=c[a+(c[e>>2]<<2)>>2]|0;e=c[h>>2]|0;f=c[h+4>>2]|0;do if((e|0)==(k|0)&(f|0)==(j|0)){e=2;n=19}else{if(!((e|0)==(j|0)&(f|0)==(k|0))){g=c[h+8>>2]|0;if((f|0)==(k|0)&(g|0)==(j|0)){e=0;n=19;break}if(!((f|0)==(j|0)&(g|0)==(k|0))){if(!((g|0)!=(k|0)|(e|0)==(j|0)^1)){e=1;n=19;break}if((g|0)!=(j|0)|(e|0)==(k|0)^1){e=10744;break}else e=1}else e=0}else e=2;e=h+12+(e<<2)|0}while(0);if((n|0)==19){n=0;e=h+12+(e<<2)|0}c[e>>2]=i;e=c[b>>2]|0;f=c[b+4>>2]|0;do if((e|0)==(j|0)&(f|0)==(k|0)){e=2;n=27}else{if(!((e|0)==(k|0)&(f|0)==(j|0))){g=c[b+8>>2]|0;if((f|0)==(j|0)&(g|0)==(k|0)){e=0;n=27;break}if(!((f|0)==(k|0)&(g|0)==(j|0))){if(!((g|0)!=(j|0)|(e|0)==(k|0)^1)){e=1;n=27;break}if((g|0)!=(k|0)|(e|0)==(j|0)^1){e=10744;break}else e=1}else e=0}else e=2;e=b+12+(e<<2)|0}while(0);if((n|0)==27){n=0;e=b+12+(e<<2)|0}i=c[e>>2]|0;e=c[d>>2]|0;f=c[d+4>>2]|0;do if((e|0)==(k|0)&(f|0)==(j|0)){e=2;n=35}else{if(!((e|0)==(j|0)&(f|0)==(k|0))){g=c[d+8>>2]|0;if((f|0)==(k|0)&(g|0)==(j|0)){e=0;n=35;break}if(!((f|0)==(j|0)&(g|0)==(k|0))){if(!((g|0)!=(k|0)|(e|0)==(j|0)^1)){e=1;n=35;break}if((g|0)!=(j|0)|(e|0)==(k|0)^1){e=10744;break}else e=1}else e=0}else e=2;e=d+12+(e<<2)|0}while(0);if((n|0)==35){n=0;e=d+12+(e<<2)|0}h=c[a+(c[e>>2]<<2)>>2]|0;e=c[h>>2]|0;f=c[h+4>>2]|0;do if((e|0)==(j|0)&(f|0)==(k|0)){e=2;n=43}else{if(!((e|0)==(k|0)&(f|0)==(j|0))){g=c[h+8>>2]|0;if((f|0)==(j|0)&(g|0)==(k|0)){e=0;n=43;break}if(!((f|0)==(k|0)&(g|0)==(j|0))){if(!((g|0)!=(j|0)|(e|0)==(k|0)^1)){e=1;n=43;break}if((g|0)!=(k|0)|(e|0)==(j|0)^1){e=10744;break}else e=1}else e=0}else e=2;e=h+12+(e<<2)|0}while(0);if((n|0)==43){n=0;e=h+12+(e<<2)|0}c[e>>2]=i}while(!l);return}function kd(d,e,g,i){d=d|0;e=e|0;g=g|0;i=i|0;var j=0,k=0,l=0,m=0.0,n=0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0;o=+f[e>>2];k=(f[h>>2]=o,c[h>>2]|0);u=o<999999984306749440.0?k:1566444395;m=+f[e+4>>2];n=(f[h>>2]=m,c[h>>2]|0);v=m<999999984306749440.0?n:1566444395;y=+f[e+8>>2];q=(f[h>>2]=y,c[h>>2]|0);w=y<999999984306749440.0?q:1566444395;k=o>-999999984306749440.0?k:-581039253;n=m>-999999984306749440.0?n:-581039253;q=y>-999999984306749440.0?q:-581039253;y=+f[e+16>>2];t=y<(c[h>>2]=u,+f[h>>2]);j=(f[h>>2]=y,c[h>>2]|0);u=t?j:u;m=+f[e+20>>2];t=m<(c[h>>2]=v,+f[h>>2]);l=(f[h>>2]=m,c[h>>2]|0);v=t?l:v;o=+f[e+24>>2];t=o<(c[h>>2]=w,+f[h>>2]);p=(f[h>>2]=o,c[h>>2]|0);w=t?p:w;k=y>(c[h>>2]=k,+f[h>>2])?j:k;j=m>(c[h>>2]=n,+f[h>>2])?l:n;r=o>(c[h>>2]=q,+f[h>>2])?p:q;y=+f[e+32>>2];s=y<(c[h>>2]=u,+f[h>>2]);p=(f[h>>2]=y,c[h>>2]|0);m=+f[e+36>>2];t=m<(c[h>>2]=v,+f[h>>2]);q=(f[h>>2]=m,c[h>>2]|0);o=+f[e+40>>2];n=o<(c[h>>2]=w,+f[h>>2]);l=(f[h>>2]=o,c[h>>2]|0);k=y>(c[h>>2]=k,+f[h>>2])?p:k;j=m>(c[h>>2]=j,+f[h>>2])?q:j;r=o>(c[h>>2]=r,+f[h>>2])?l:r;G=(c[h>>2]=k,+f[h>>2]);H=(c[h>>2]=s?p:u,+f[h>>2]);C=(c[h>>2]=j,+f[h>>2]);D=(c[h>>2]=t?q:v,+f[h>>2]);m=(c[h>>2]=r,+f[h>>2]);z=(c[h>>2]=n?l:w,+f[h>>2]);p=c[d+8>>2]|0;F=+f[p+4>>2];B=+f[p+8>>2];o=+f[p+12>>2];E=+f[p+36>>2];A=+f[p+40>>2];y=+f[p+44>>2];p=~~(((G-H<2.0000000949949026e-03?H+-1.0000000474974513e-03:H)-F)*E)&65535&-2;q=~~(((C-D<2.0000000949949026e-03?D+-1.0000000474974513e-03:D)-B)*A)&65535&-2;r=~~(((m-z<2.0000000949949026e-03?z+-1.0000000474974513e-03:z)-o)*y)&65535&-2;s=~~(((G-H<2.0000000949949026e-03?G+1.0000000474974513e-03:G)-F)*E+1.0)&65535|1;t=~~(((C-D<2.0000000949949026e-03?C+1.0000000474974513e-03:C)-B)*A+1.0)&65535|1;e=~~(((m-z<2.0000000949949026e-03?m+1.0000000474974513e-03:m)-o)*y+1.0)&65535|1;n=c[d+4>>2]|0;j=c[n+4>>2]|0;if((j|0)==(c[n+8>>2]|0)?(x=(j|0)==0?1:j<<1,(j|0)<(x|0)):0){if(!x)k=0;else{c[6747]=(c[6747]|0)+1;j=kb((x<<4|3)+16|0)|0;if(!j)k=0;else{c[(j+4+15&-16)+-4>>2]=j;k=j+4+15&-16}j=c[n+4>>2]|0}if((j|0)>0){l=0;do{d=k+(l<<4)|0;w=(c[n+12>>2]|0)+(l<<4)|0;c[d>>2]=c[w>>2];c[d+4>>2]=c[w+4>>2];c[d+8>>2]=c[w+8>>2];c[d+12>>2]=c[w+12>>2];l=l+1|0}while((l|0)!=(j|0))}j=c[n+12>>2]|0;if(j|0){if(a[n+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[j+-4>>2]|0)}c[n+12>>2]=0}a[n+16>>0]=1;c[n+12>>2]=k;c[n+8>>2]=x;j=c[n+4>>2]|0}x=c[n+12>>2]|0;b[x+(j<<4)>>1]=p;b[x+(j<<4)+2>>1]=q;b[x+(j<<4)+4>>1]=r;b[x+(j<<4)+6>>1]=s;b[x+(j<<4)+8>>1]=t;b[x+(j<<4)+10>>1]=e;c[x+(j<<4)+12>>2]=g<<21|i;c[n+4>>2]=(c[n+4>>2]|0)+1;return}function ld(b,d){b=b|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0;l=ea;ea=ea+336|0;d=c[d+36>>2]|0;c[l+272+4>>2]=35;c[l+272+8>>2]=0;c[l+272+12>>2]=1065353216;c[l+272+16>>2]=1065353216;c[l+272+20>>2]=1065353216;f[l+272+24>>2]=0.0;c[l+272>>2]=4500;c[l+272+52>>2]=d;f[l+272+44>>2]=0.0;j=c[b+28>>2]|0;g=c[j+4>>2]|0;if(c[(c[j+8>>2]|0)+204>>2]&3|0?a[d+376>>0]|0:0){ea=l;return}if((a[24880]|0)==0?DC(24880)|0:0){if((a[24888]|0)==0?DC(24888)|0:0){c[6348]=1065353216;c[6349]=0;c[6350]=0;c[6351]=0;c[6352]=0;c[6353]=1065353216;c[6354]=0;c[6355]=0;c[6356]=0;c[6357]=0;c[6358]=1065353216;f[6359]=0.0;PB(24888)}c[6332]=c[6348];c[6333]=c[6349];c[6334]=c[6350];c[6335]=c[6351];c[6336]=c[6352];c[6337]=c[6353];c[6338]=c[6354];c[6339]=c[6355];c[6340]=c[6356];c[6341]=c[6357];c[6342]=c[6358];c[6343]=c[6359];c[6344]=0;c[6345]=0;c[6346]=0;c[6347]=0;PB(24880)}e=c[(c[b+28>>2]|0)+12>>2]|0;c[l>>2]=1065353216;c[l+4>>2]=0;c[l+8>>2]=0;f[l+12>>2]=0.0;if(!(!(Fc(l+272|0,25328,g,e,l,l+216|0)|0)?!(Bb(l+272|0,25328,g,e,l,l+216|0,0)|0):0))h=12;if((h|0)==12?(c[l+4>>2]=0,c[l+4+4>>2]=0,c[l+4+8>>2]=0,c[l+4+12>>2]=0,c[l+4+16>>2]=0,c[l+4+20>>2]=0,a[l+152>>0]=0,c[l>>2]=4320,j=c[(c[b+28>>2]|0)+8>>2]|0,Yb(b,l+216|0,d,0,0,0,(c[j+236>>2]&2|0)==0?0:j,j,l)|0):0){c[6747]=(c[6747]|0)+1;d=kb(235)|0;if(!d)j=0;else{c[(d+4+15&-16)+-4>>2]=d;j=d+4+15&-16}e=j+4|0;d=j+152|0;hk(e|0,0,212)|0;c[j>>2]=4320;g=l+4|0;h=e+100|0;do{c[e>>2]=c[g>>2];e=e+4|0;g=g+4|0}while((e|0)<(h|0));e=j+104|0;c[e>>2]=c[l+104>>2];c[e+4>>2]=c[l+104+4>>2];c[e+8>>2]=c[l+104+8>>2];c[e+12>>2]=c[l+104+12>>2];e=j+120|0;c[e>>2]=c[l+120>>2];c[e+4>>2]=c[l+120+4>>2];c[e+8>>2]=c[l+120+8>>2];c[e+12>>2]=c[l+120+12>>2];e=j+136|0;c[e>>2]=c[l+136>>2];c[e+4>>2]=c[l+136+4>>2];c[e+8>>2]=c[l+136+8>>2];c[e+12>>2]=c[l+136+12>>2];a[d>>0]=a[l+152>>0]|0;e=j+156|0;g=l+156|0;h=e+60|0;do{c[e>>2]=c[g>>2];e=e+4|0;g=g+4|0}while((e|0)<(h|0));h=c[b+24>>2]|0;i=j;d=c[h+852>>2]|0;if((d|0)==(c[h+856>>2]|0)?(k=(d|0)==0?1:d<<1,(d|0)<(k|0)):0){if(!k)e=0;else{c[6747]=(c[6747]|0)+1;d=kb((k<<2|3)+16|0)|0;if(!d)e=0;else{c[(d+4+15&-16)+-4>>2]=d;e=d+4+15&-16}d=c[h+852>>2]|0}if((d|0)>0){g=0;do{c[e+(g<<2)>>2]=c[(c[h+860>>2]|0)+(g<<2)>>2];g=g+1|0}while((g|0)!=(d|0))}g=c[h+860>>2]|0;if(g){if(a[h+864>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0);d=c[h+852>>2]|0}c[h+860>>2]=0}a[h+864>>0]=1;c[h+860>>2]=e;c[h+856>>2]=k}c[(c[h+860>>2]|0)+(d<<2)>>2]=i;c[h+852>>2]=d+1;d=c[b+24>>2]|0;if(!(c[(c[(c[b+28>>2]|0)+8>>2]|0)+204>>2]&3)){b=j+64|0;f[b>>2]=+f[d+340>>2]*+f[b>>2];d=d+352|0}else{b=j+64|0;f[b>>2]=+f[d+344>>2]*+f[b>>2];d=d+356|0}b=j+68|0;f[b>>2]=+f[d>>2]*+f[b>>2]}ea=l;return}function md(b,d,e,g){b=b|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;if(!((d|0)!=0&(e|0)!=0))return;if((c[b+24>>2]|0)<128?(c[b+28>>2]|0)<128:0){c[6747]=(c[6747]|0)+1;h=kb(1043)|0;if(!h)j=0;else{c[(h+4+15&-16)+-4>>2]=h;j=h+4+15&-16}h=c[b+24>>2]|0;if((h|0)>0){i=0;do{k=(c[b+32>>2]|0)+(i<<3)|0;l=c[k+4>>2]|0;m=j+(i<<3)|0;c[m>>2]=c[k>>2];c[m+4>>2]=l;i=i+1|0}while((i|0)!=(h|0))}h=c[b+32>>2]|0;if(h|0){if(a[b+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[h+-4>>2]|0)}c[b+32>>2]=0}a[b+36>>0]=1;c[b+32>>2]=j;c[b+28>>2]=128}c[b+24>>2]=128;k=c[b+32>>2]|0;c[k>>2]=d;c[k+4>>2]=e;k=1;j=124;while(1){h=k+-1|0;i=c[b+32>>2]|0;l=c[i+(h<<3)>>2]|0;m=c[i+(h<<3)+4>>2]|0;if((h|0)>(j|0)){e=c[b+24>>2]|0;if((e|0)<(e<<1|0)?(c[b+28>>2]|0)<(e<<1|0):0){if(e){c[6747]=(c[6747]|0)+1;i=kb((e<<4|3)+16|0)|0;if(!i)d=0;else{c[(i+4+15&-16)+-4>>2]=i;d=i+4+15&-16}i=c[b+24>>2]|0;if((i|0)>0){j=0;do{p=(c[b+32>>2]|0)+(j<<3)|0;o=c[p+4>>2]|0;n=d+(j<<3)|0;c[n>>2]=c[p>>2];c[n+4>>2]=o;j=j+1|0}while((j|0)!=(i|0));i=d}else i=d}else{i=0;d=0}j=c[b+32>>2]|0;if(j|0){if(a[b+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[j+-4>>2]|0)}c[b+32>>2]=0}a[b+36>>0]=1;c[b+32>>2]=d;c[b+28>>2]=e<<1}c[b+24>>2]=e<<1;j=(e<<1)+-4|0}do if((l|0)==(m|0)){if(c[l+40>>2]|0){p=c[l+36>>2]|0;c[i+(h<<3)>>2]=p;c[i+(h<<3)+4>>2]=p;p=c[l+40>>2]|0;h=k+1|0;o=c[b+32>>2]|0;c[o+(k<<3)>>2]=p;c[o+(k<<3)+4>>2]=p;o=c[l+40>>2]|0;p=c[b+32>>2]|0;c[p+(h<<3)>>2]=c[l+36>>2];c[p+(h<<3)+4>>2]=o;h=k+2|0}}else if(((((+f[l>>2]<=+f[m+16>>2]?+f[l+16>>2]>=+f[m>>2]:0)?+f[l+4>>2]<=+f[m+20>>2]:0)?+f[l+20>>2]>=+f[m+4>>2]:0)?+f[l+8>>2]<=+f[m+24>>2]:0)?+f[l+24>>2]>=+f[m+8>>2]:0){e=(c[m+40>>2]|0)!=0;if(!(c[l+40>>2]|0))if(e){p=c[m+36>>2]|0;c[i+(h<<3)>>2]=l;c[i+(h<<3)+4>>2]=p;p=c[m+40>>2]|0;h=c[b+32>>2]|0;c[h+(k<<3)>>2]=l;c[h+(k<<3)+4>>2]=p;h=k+1|0;break}else{Ma[c[(c[g>>2]|0)+8>>2]&127](g,l,m);break}else{d=c[l+36>>2]|0;if(e){o=c[m+36>>2]|0;c[i+(h<<3)>>2]=d;c[i+(h<<3)+4>>2]=o;h=c[m+36>>2]|0;o=k+1|0;n=c[b+32>>2]|0;c[n+(k<<3)>>2]=c[l+40>>2];c[n+(k<<3)+4>>2]=h;n=c[m+40>>2]|0;h=k+2|0;p=c[b+32>>2]|0;c[p+(o<<3)>>2]=c[l+36>>2];c[p+(o<<3)+4>>2]=n;o=c[m+40>>2]|0;p=c[b+32>>2]|0;c[p+(h<<3)>>2]=c[l+40>>2];c[p+(h<<3)+4>>2]=o;h=k+3|0;break}else{c[i+(h<<3)>>2]=d;c[i+(h<<3)+4>>2]=m;h=c[b+32>>2]|0;c[h+(k<<3)>>2]=c[l+40>>2];c[h+(k<<3)+4>>2]=m;h=k+1|0;break}}}while(0);if(!h)break;else k=h}return}function nd(b,d){b=b|0;d=d|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=c[b+92>>2]|0;if(!(ra[c[(c[o>>2]|0)+56>>2]&127](o)|0))return;o=c[b+92>>2]|0;o=ra[c[(c[o>>2]|0)+28>>2]&127](o)|0;f=c[o+4>>2]|0;if((f|0)>1){qd(o,0,f+-1|0);j=c[o+4>>2]|0}else j=f;m=c[b+104>>2]|0;f=j-m|0;if((m|0)<0){if((c[o+8>>2]|0)<(f|0)){if(!f){h=j;i=0}else{c[6747]=(c[6747]|0)+1;g=kb((f<<4|3)+16|0)|0;if(!g)g=0;else{c[(g+4+15&-16)+-4>>2]=g;g=g+4+15&-16}h=c[o+4>>2]|0;i=g}if((h|0)>0){g=0;do{m=c[o+12>>2]|0;c[i+(g<<4)>>2]=c[m+(g<<4)>>2];c[i+(g<<4)+4>>2]=c[m+(g<<4)+4>>2];c[i+(g<<4)+8>>2]=c[m+(g<<4)+8>>2];c[i+(g<<4)+12>>2]=c[m+(g<<4)+12>>2];g=g+1|0}while((g|0)!=(h|0))}g=c[o+12>>2]|0;if(g|0){if(a[o+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[o+12>>2]=0}a[o+16>>0]=1;c[o+12>>2]=i;c[o+8>>2]=f;h=o+12|0}else h=o+12|0;g=j;do{m=(c[h>>2]|0)+(g<<4)|0;g=g+1|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0}while((g|0)!=(f|0))}c[o+4>>2]=f;c[b+104>>2]=0;if((f|0)>0){g=0;l=0;m=0;i=0;while(1){k=c[o+12>>2]|0;j=k+(l<<4)|0;p=m;m=c[j>>2]|0;k=k+(l<<4)+4|0;h=c[k>>2]|0;if(!((m|0)==(p|0)&(h|0)==(i|0))){p=m+54|0;i=m+48|0;if(!((((((e[p>>1]|0)>=(e[h+48>>1]|0)?(e[h+54>>1]|0)>=(e[i>>1]|0):0)?(e[p+2>>1]|0)>=(e[h+48+2>>1]|0):0)?(e[h+54+2>>1]|0)>=(e[i+2>>1]|0):0)?(e[p+4>>1]|0)>=(e[h+52>>1]|0):0)?(e[h+54+4>>1]|0)>=(e[m+52>>1]|0):0))n=30}else{h=i;n=30}if((n|0)==30){n=0;g=c[b+92>>2]|0;Ma[c[(c[g>>2]|0)+32>>2]&127](g,j,d);c[j>>2]=0;c[k>>2]=0;g=(c[b+104>>2]|0)+1|0;c[b+104>>2]=g;c[6723]=(c[6723]|0)+-1;f=c[o+4>>2]|0}l=l+1|0;if((l|0)>=(f|0))break;else i=h}if((f|0)>1){qd(o,0,f+-1|0);f=c[o+4>>2]|0;g=c[b+104>>2]|0}j=f-g|0;if((g|0)<0){if((c[o+8>>2]|0)<(j|0)){if(!j){h=f;i=0}else{c[6747]=(c[6747]|0)+1;g=kb((j<<4|3)+16|0)|0;if(!g)g=0;else{c[(g+4+15&-16)+-4>>2]=g;g=g+4+15&-16}h=c[o+4>>2]|0;i=g}if((h|0)>0){g=0;do{p=c[o+12>>2]|0;c[i+(g<<4)>>2]=c[p+(g<<4)>>2];c[i+(g<<4)+4>>2]=c[p+(g<<4)+4>>2];c[i+(g<<4)+8>>2]=c[p+(g<<4)+8>>2];c[i+(g<<4)+12>>2]=c[p+(g<<4)+12>>2];g=g+1|0}while((g|0)!=(h|0))}g=c[o+12>>2]|0;if(g|0){if(a[o+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[o+12>>2]=0}a[o+16>>0]=1;c[o+12>>2]=i;c[o+8>>2]=j}do{p=(c[o+12>>2]|0)+(f<<4)|0;f=f+1|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0}while((f|0)!=(j|0));f=j}else f=j}c[o+4>>2]=f;c[b+104>>2]=0;return}function od(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=ea;ea=ea+80|0;c[a+68>>2]=(c[a+68>>2]|0)+1;d=c[a+64>>2]|0;if(d|0){e=c[(c[a+24>>2]|0)+(b*80|0)+76>>2]|0;jg(d,e)|0;f=c[d+4>>2]|0;if(f|0){c[6748]=(c[6748]|0)+1;uc(c[f+-4>>2]|0)}c[d+4>>2]=e;c[d+12>>2]=(c[d+12>>2]|0)+-1}f=(c[a+16>>2]|0)+-1|0;e=c[a+24>>2]|0;c[g>>2]=c[e+(b*80|0)>>2];c[g+4>>2]=c[e+(b*80|0)+4>>2];c[g+8>>2]=c[e+(b*80|0)+8>>2];c[g+12>>2]=c[e+(b*80|0)+12>>2];c[g+16>>2]=c[e+(b*80|0)+16>>2];c[g+16+4>>2]=c[e+(b*80|0)+16+4>>2];c[g+16+8>>2]=c[e+(b*80|0)+16+8>>2];c[g+16+12>>2]=c[e+(b*80|0)+16+12>>2];c[g+32>>2]=c[e+(b*80|0)+32>>2];c[g+32+4>>2]=c[e+(b*80|0)+32+4>>2];c[g+32+8>>2]=c[e+(b*80|0)+32+8>>2];c[g+32+12>>2]=c[e+(b*80|0)+32+12>>2];c[g+48>>2]=c[e+(b*80|0)+48>>2];c[g+48+4>>2]=c[e+(b*80|0)+48+4>>2];c[g+48+8>>2]=c[e+(b*80|0)+48+8>>2];c[g+48+12>>2]=c[e+(b*80|0)+48+12>>2];c[g+64>>2]=c[e+(b*80|0)+64>>2];c[g+64+4>>2]=c[e+(b*80|0)+64+4>>2];c[g+64+8>>2]=c[e+(b*80|0)+64+8>>2];c[g+64+12>>2]=c[e+(b*80|0)+64+12>>2];c[e+(b*80|0)>>2]=c[e+(f*80|0)>>2];c[e+(b*80|0)+4>>2]=c[e+(f*80|0)+4>>2];c[e+(b*80|0)+8>>2]=c[e+(f*80|0)+8>>2];c[e+(b*80|0)+12>>2]=c[e+(f*80|0)+12>>2];c[e+(b*80|0)+16>>2]=c[e+(f*80|0)+16>>2];c[e+(b*80|0)+16+4>>2]=c[e+(f*80|0)+16+4>>2];c[e+(b*80|0)+16+8>>2]=c[e+(f*80|0)+16+8>>2];c[e+(b*80|0)+16+12>>2]=c[e+(f*80|0)+16+12>>2];c[e+(b*80|0)+32>>2]=c[e+(f*80|0)+32>>2];c[e+(b*80|0)+32+4>>2]=c[e+(f*80|0)+32+4>>2];c[e+(b*80|0)+32+8>>2]=c[e+(f*80|0)+32+8>>2];c[e+(b*80|0)+32+12>>2]=c[e+(f*80|0)+32+12>>2];c[e+(b*80|0)+48>>2]=c[e+(f*80|0)+48>>2];c[e+(b*80|0)+48+4>>2]=c[e+(f*80|0)+48+4>>2];c[e+(b*80|0)+48+8>>2]=c[e+(f*80|0)+48+8>>2];c[e+(b*80|0)+48+12>>2]=c[e+(f*80|0)+48+12>>2];c[e+(b*80|0)+64>>2]=c[e+(f*80|0)+64>>2];c[e+(b*80|0)+64+4>>2]=c[e+(f*80|0)+64+4>>2];c[e+(b*80|0)+64+8>>2]=c[e+(f*80|0)+64+8>>2];c[e+(b*80|0)+64+12>>2]=c[e+(f*80|0)+64+12>>2];e=c[a+24>>2]|0;c[e+(f*80|0)>>2]=c[g>>2];c[e+(f*80|0)+4>>2]=c[g+4>>2];c[e+(f*80|0)+8>>2]=c[g+8>>2];c[e+(f*80|0)+12>>2]=c[g+12>>2];c[e+(f*80|0)+16>>2]=c[g+16>>2];c[e+(f*80|0)+16+4>>2]=c[g+16+4>>2];c[e+(f*80|0)+16+8>>2]=c[g+16+8>>2];c[e+(f*80|0)+16+12>>2]=c[g+16+12>>2];c[e+(f*80|0)+32>>2]=c[g+32>>2];c[e+(f*80|0)+32+4>>2]=c[g+32+4>>2];c[e+(f*80|0)+32+8>>2]=c[g+32+8>>2];c[e+(f*80|0)+32+12>>2]=c[g+32+12>>2];c[e+(f*80|0)+48>>2]=c[g+48>>2];c[e+(f*80|0)+48+4>>2]=c[g+48+4>>2];c[e+(f*80|0)+48+8>>2]=c[g+48+8>>2];c[e+(f*80|0)+48+12>>2]=c[g+48+12>>2];c[e+(f*80|0)+64>>2]=c[g+64>>2];c[e+(f*80|0)+64+4>>2]=c[g+64+4>>2];c[e+(f*80|0)+64+8>>2]=c[g+64+8>>2];c[e+(f*80|0)+64+12>>2]=c[g+64+12>>2];if(!(c[a+64>>2]|0)){b=c[a+16>>2]|0;b=b+-1|0;c[a+16>>2]=b;ea=g;return}c[(c[(c[a+24>>2]|0)+(b*80|0)+76>>2]|0)+36>>2]=b;b=c[a+16>>2]|0;b=b+-1|0;c[a+16>>2]=b;ea=g;return}function pd(a,d,g,h,i,j,k,l,m){a=a|0;d=d|0;g=g|0;h=+h;i=+i;j=+j;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0.0,t=0.0,u=0.0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0.0,E=0.0,F=0,G=0.0,H=0,I=0,J=0,K=0,L=0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0,V=0.0,W=0.0,X=0.0,Y=0.0,Z=0.0,_=0.0,$=0.0,aa=0.0,ba=0.0,ca=0.0,da=0.0;U=ea;ea=ea+32|0;D=+f[g>>2];E=+f[g+4>>2];G=+f[g+8>>2];Q=1.0/+s(+((h-D)*(h-D)+(i-E)*(i-E)+(j-G)*(j-G)));N=(h-D)*Q==0.0?999999984306749440.0:1.0/((h-D)*Q);O=(i-E)*Q==0.0?999999984306749440.0:1.0/((i-E)*Q);P=(j-G)*Q==0.0?999999984306749440.0:1.0/((j-G)*Q);da=(D>h?h:D)+ +f[k>>2];ca=(E>i?i:E)+ +f[k+4>>2];ba=(G>j?j:G)+ +f[k+8>>2];$=(D>2];X=(E>2];t=(G>2];_=+f[a+4>>2];da=da<_?_:da;W=+f[a+8>>2];ca=ca>2];ba=ba>2];Y=+f[a+24>>2];r=+f[a+28>>2];Z=+f[a+36>>2];V=+f[a+40>>2];v=+f[a+44>>2];F=~~(((aa0){o=0;p=c[a+136>>2]|0;n=0;do{n=n+1|0;y=p+6|0;q=b[p>>1]|0;z=p+10|0;w=b[p+4>>1]|0;A=p+8|0;x=b[p+2>>1]|0;C=p+12|0;B=(c[C>>2]|0)>-1;do if(((J&65535)>=(q&65535)?(F&65535)<=(e[y>>1]|0):0)&(I&65535)<=(e[z>>1]|0)&(L&65535)>=(w&65535)&(H&65535)<=(e[A>>1]|0)&(K&65535)>=(x&65535)){$=+f[a+36>>2];ba=+f[a+40>>2];da=+f[a+44>>2];aa=+f[a+4>>2];ca=+f[a+8>>2];u=+f[a+12>>2];f[U+12>>2]=0.0;v=aa+ +(e[y>>1]|0)/$;r=ca+ +(e[A>>1]|0)/ba;t=u+ +(e[z>>1]|0)/da;f[U+28>>2]=0.0;f[U>>2]=+(q&65535)/$+aa-+f[l>>2];f[U+4>>2]=+(x&65535)/ba+ca-+f[l+4>>2];f[U+8>>2]=+(w&65535)/da+u-+f[l+8>>2];f[U+16>>2]=v-+f[k>>2];f[U+20>>2]=r-+f[k+4>>2];f[U+24>>2]=t-+f[k+8>>2];t=+f[g>>2];r=N*(+f[U+((N<0.0&1)<<4)>>2]-t);t=N*(+f[U+(((N<0.0^1)&1)<<4)>>2]-t);v=+f[g+4>>2];u=O*(+f[U+((O<0.0&1)<<4)+4>>2]-v);v=O*(+f[U+(((O<0.0^1)&1)<<4)+4>>2]-v);if(!(u>t|r>v)?(M=u>r?u:r,T=v>2],R=P*(+f[U+((P<0.0&1)<<4)+8>>2]-S),S=P*(+f[U+(((P<0.0^1)&1)<<4)+8>>2]-S),!(R>T|M>S)):0){q=(S0.0?(R>M?R:M)<(j-G)*((j-G)*Q)+((h-D)*((h-D)*Q)+(i-E)*((i-E)*Q)):0;if(!(B&q)){w=9;break}w=c[C>>2]|0;Ma[c[(c[d>>2]|0)+8>>2]&127](d,21?w>>21:w,w&2097151);w=10;break}q=0;w=9}else{q=0;w=9}while(0);if((w|0)==9){w=0;if(B|q)w=10;else{C=c[C>>2]|0;o=o-C|0;p=p+(0-C<<4)|0}}if((w|0)==10){o=o+1|0;p=p+16|0}}while((o|0)<(m|0))}else n=0;if((c[6727]|0)>=(n|0)){ea=U;return}c[6727]=n;ea=U;return}function qd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;while(1){r=c[a+12>>2]|0;q=(b+d|0)/2|0;o=c[r+(q<<4)>>2]|0;p=c[r+(q<<4)+4>>2]|0;q=c[r+(q<<4)+8>>2]|0;e=b;f=d;while(1){a:do if(!o)while(1){l=r+(e<<4)|0;j=c[l>>2]|0;if(!j)g=-1;else g=c[j+12>>2]|0;k=c[r+(e<<4)+4>>2]|0;if(!k)h=-1;else h=c[k+12>>2]|0;if(!p)i=-1;else i=c[p+12>>2]|0;do if((g|0)<=-1){g=(h|0)>(i|0);if(g|(j|0)==0^1)if((j|0)==0&g)break;else break a;if((k|0)!=(p|0))break a;if((c[r+(e<<4)+8>>2]|0)>>>0<=q>>>0)break a}while(0);e=e+1|0}else{m=c[o+12>>2]|0;while(1){l=r+(e<<4)|0;j=c[l>>2]|0;if(!j)g=-1;else g=c[j+12>>2]|0;k=c[r+(e<<4)+4>>2]|0;if(!k)h=-1;else h=c[k+12>>2]|0;if(!p)i=-1;else i=c[p+12>>2]|0;do if((g|0)<=(m|0)){g=(h|0)>(i|0);if(g|(j|0)==(o|0)^1)if((j|0)==(o|0)&g)break;else break a;if((k|0)!=(p|0))break a;if((c[r+(e<<4)+8>>2]|0)>>>0<=q>>>0)break a}while(0);e=e+1|0}}while(0);b:do if(!o)while(1){g=r+(f<<4)|0;k=c[g>>2]|0;if(!k)h=-1;else h=c[k+12>>2]|0;if(!p)i=-1;else i=c[p+12>>2]|0;m=c[r+(f<<4)+4>>2]|0;if(!m)j=-1;else j=c[m+12>>2]|0;do if((h|0)>=-1){h=(i|0)>(j|0);if(h|(k|0)==0^1)if((k|0)==0&h)break;else break b;if((p|0)!=(m|0))break b;if((c[r+(f<<4)+8>>2]|0)>>>0>=q>>>0)break b}while(0);f=f+-1|0}else{n=c[o+12>>2]|0;while(1){g=r+(f<<4)|0;k=c[g>>2]|0;if(!k)h=-1;else h=c[k+12>>2]|0;if(!p)i=-1;else i=c[p+12>>2]|0;m=c[r+(f<<4)+4>>2]|0;if(!m)j=-1;else j=c[m+12>>2]|0;do if((n|0)<=(h|0)){h=(i|0)>(j|0);if(h|(o|0)==(k|0)^1)if((o|0)==(k|0)&h)break;else break b;if((p|0)!=(m|0))break b;if((c[r+(f<<4)+8>>2]|0)>>>0>=q>>>0)break b}while(0);f=f+-1|0}}while(0);if((e|0)<=(f|0)){j=c[l>>2]|0;k=c[r+(e<<4)+4>>2]|0;m=c[r+(e<<4)+8>>2]|0;n=c[r+(e<<4)+12>>2]|0;c[l>>2]=c[g>>2];c[l+4>>2]=c[g+4>>2];c[l+8>>2]=c[g+8>>2];c[l+12>>2]=c[g+12>>2];r=c[a+12>>2]|0;c[r+(f<<4)>>2]=j;c[r+(f<<4)+4>>2]=k;c[r+(f<<4)+8>>2]=m;c[r+(f<<4)+12>>2]=n;e=e+1|0;f=f+-1|0}if((e|0)>(f|0))break;r=c[a+12>>2]|0}if((f|0)>(b|0))qd(a,b,f);if((e|0)<(d|0))b=e;else break}return}function rd(b,d,e,g,h,i,j,k,l){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=+i;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0,v=0,w=0,x=0,y=0.0,z=0.0,A=0.0,B=0.0,C=0,D=0.0;C=ea;ea=ea+32|0;if(!d){ea=C;return}p=c[b+44>>2]|0;if((p|0)<128){if((c[b+48>>2]|0)<128){c[6747]=(c[6747]|0)+1;m=kb(531)|0;if(!m)o=0;else{c[(m+4+15&-16)+-4>>2]=m;o=m+4+15&-16}m=c[b+44>>2]|0;if((m|0)>0){n=0;do{c[o+(n<<2)>>2]=c[(c[b+52>>2]|0)+(n<<2)>>2];n=n+1|0}while((n|0)!=(m|0))}m=c[b+52>>2]|0;if(m|0){if(a[b+56>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[m+-4>>2]|0)}c[b+52>>2]=0}a[b+56>>0]=1;c[b+52>>2]=o;c[b+48>>2]=128;n=b+52|0}else n=b+52|0;m=p;do{c[(c[n>>2]|0)+(m<<2)>>2]=0;m=m+1|0}while((m|0)!=128);x=b+48|0}else{x=b+48|0;n=b+52|0}c[b+44>>2]=128;c[c[n>>2]>>2]=d;w=1;m=126;while(1){o=w+-1|0;p=c[n>>2]|0;v=c[p+(o<<2)>>2]|0;r=+f[v+4>>2]-+f[k+4>>2];t=+f[v+8>>2]-+f[k+8>>2];f[C>>2]=+f[v>>2]-+f[k>>2];f[C+4>>2]=r;f[C+8>>2]=t;f[C+12>>2]=0.0;t=+f[v+20>>2]-+f[j+4>>2];r=+f[v+24>>2]-+f[j+8>>2];f[C+16>>2]=+f[v+16>>2]-+f[j>>2];f[C+20>>2]=t;f[C+24>>2]=r;f[C+28>>2]=0.0;u=c[h>>2]|0;r=+f[e>>2];t=+f[g>>2];q=(+f[C+(u<<4)>>2]-r)*t;r=t*(+f[C+(1-u<<4)>>2]-r);u=c[h+4>>2]|0;t=+f[e+4>>2];D=+f[g+4>>2];s=(+f[C+(u<<4)+4>>2]-t)*D;t=D*(+f[C+(1-u<<4)+4>>2]-t);do if((!(s>r|q>t)?(y=s>q?s:q,B=t>2]|0,A=+f[e+8>>2],D=+f[g+8>>2],z=(+f[C+(u<<4)+8>>2]-A)*D,A=D*(+f[C+(1-u<<4)+8>>2]-A),!(z>B|y>A)):0)?((A0.0?(z>y?z:y)>2]|0)){Ia[c[(c[l>>2]|0)+12>>2]&127](l,v);break}if((o|0)>(m|0)){u=c[b+44>>2]|0;if((u|0)<(u<<1|0)){if((c[x>>2]|0)<(u<<1|0)){if(u){c[6747]=(c[6747]|0)+1;m=kb((u<<3|3)+16|0)|0;if(!m)d=0;else{c[(m+4+15&-16)+-4>>2]=m;d=m+4+15&-16}m=c[b+44>>2]|0;if((m|0)>0){p=0;do{c[d+(p<<2)>>2]=c[(c[n>>2]|0)+(p<<2)>>2];p=p+1|0}while((p|0)!=(m|0));m=d}else m=d}else{m=0;d=0}p=c[n>>2]|0;if(p|0){if(a[b+56>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[p+-4>>2]|0)}c[n>>2]=0}a[b+56>>0]=1;c[n>>2]=d;c[x>>2]=u<<1}else m=p;p=u;do{c[m+(p<<2)>>2]=0;p=p+1|0;m=c[n>>2]|0}while((p|0)!=(u<<1|0));m=m+(o<<2)|0}else m=p+(o<<2)|0;c[b+44>>2]=u<<1;o=m;m=(u<<1)+-2|0}else o=p+(o<<2)|0;c[o>>2]=c[v+36>>2];c[(c[n>>2]|0)+(w<<2)>>2]=c[v+40>>2];o=w+1|0}while(0);if(!o)break;else w=o}ea=C;return}function sd(a,b,d,e,g,h,i,j,k,l,m,n){a=a|0;b=b|0;d=d|0;e=e|0;g=+g;h=+h;i=+i;j=+j;k=+k;l=l|0;m=+m;n=n|0;var o=0.0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0.0,C=0,D=0,E=0;E=ea;ea=ea+2560|0;_p(E+2528|0,+f[d>>2],+f[d+4>>2],+f[d+8>>2],g);vp(E+2544|0,+f[b>>2],+f[b+4>>2],+f[b+8>>2],+f[E+2528>>2],+f[E+2528+4>>2],+f[E+2528+8>>2]);_p(E+2496|0,+f[d>>2],+f[d+4>>2],+f[d+8>>2],g);xp(E+2512|0,+f[b>>2],+f[b+4>>2],+f[b+8>>2],+f[E+2496>>2],+f[E+2496+4>>2],+f[E+2496+8>>2]);Ko(E+2464|0,+f[d>>2],+f[d+4>>2],+f[d+8>>2],+f[e>>2],+f[e+4>>2],+f[e+8>>2]);p=!(h<=-1.5707963705062866)?h:m*.01745329238474369+-1.5707963705062866;o=!(i>=1.5707963705062866)?i:1.5707963705062866-m*.01745329238474369;if(p>o){D=1;C=1;h=1.5707963705062866-m*.01745329238474369;p=m*.01745329238474369+-1.5707963705062866}else{D=!(h<=-1.5707963705062866)^1;C=!(i>=1.5707963705062866)^1;h=o}B=h-p;A=(~~(B/(m*.01745329238474369))|0)<1?2:~~(B/(m*.01745329238474369))+1|0;if(!(j>k))if(!(k-j>=6.2831854820251465)){z=0;h=k}else{z=1;h=k}else{z=1;h=3.1415927410125732;j=m*.01745329238474369+-3.1415927410125732}o=h-j;w=(~~(o/(m*.01745329238474369))|0)<1?2:~~(o/(m*.01745329238474369))+1|0;s=0;u=E+1184|0;v=E;while(1){if((s|0)>=(A|0))break;i=p+B/+(A+-1|0)*+(s|0);h=+CJ(i)*g;i=+DJ(i)*g;x=(s|0)==0;r=(s|0)==(A+-1|0);t=0;while(1){if((t|0)>=(w|0))break;k=j+o/+(w+-1|0)*+(t|0);m=+CJ(k);k=i*+DJ(k);$y(E+2400|0,k,+f[e>>2],+f[e+4>>2],+f[e+8>>2]);vp(E+2416|0,+f[b>>2],+f[b+4>>2],+f[b+8>>2],+f[E+2400>>2],+f[E+2400+4>>2],+f[E+2400+8>>2]);$y(E+2384|0,i*m,+f[E+2464>>2],+f[E+2464+4>>2],+f[E+2464+8>>2]);vp(E+2432|0,+f[E+2416>>2],+f[E+2416+4>>2],+f[E+2416+8>>2],+f[E+2384>>2],+f[E+2384+4>>2],+f[E+2384+8>>2]);$y(E+2368|0,h,+f[d>>2],+f[d+4>>2],+f[d+8>>2]);vp(E+2448|0,+f[E+2432>>2],+f[E+2432+4>>2],+f[E+2432+8>>2],+f[E+2368>>2],+f[E+2368+4>>2],+f[E+2368+8>>2]);q=v+(t<<4)|0;c[q>>2]=c[E+2448>>2];c[q+4>>2]=c[E+2448+4>>2];c[q+8>>2]=c[E+2448+8>>2];c[q+12>>2]=c[E+2448+12>>2];if(x){if(C)Pa[c[(c[a>>2]|0)+8>>2]&127](a,E+2512|0,q,l)}else Pa[c[(c[a>>2]|0)+8>>2]&127](a,u+(t<<4)|0,q,l);y=(t|0)==0;if(y){c[E+2480>>2]=c[v>>2];c[E+2480+4>>2]=c[v+4>>2];c[E+2480+8>>2]=c[v+8>>2];c[E+2480+12>>2]=c[v+12>>2]}else Pa[c[(c[a>>2]|0)+8>>2]&127](a,v+(t+-1<<4)|0,q,l);if(r&D)Pa[c[(c[a>>2]|0)+8>>2]&127](a,E+2544|0,q,l);do if(n)if(z){if((t|0)!=(w+-1|0))break;Pa[c[(c[a>>2]|0)+8>>2]&127](a,E+2480|0,v+(w+-1<<4)|0,l);break}else{if(!((x|r)&(y|(t|0)==(w+-1|0))))break;Pa[c[(c[a>>2]|0)+8>>2]&127](a,b,q,l);break}while(0);t=t+1|0}y=v;s=s+1|0;v=u;u=y}ea=E;return}function td(a,b,d){a=a|0;b=b|0;d=d|0;var h=0.0,i=0,j=0.0,k=0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0.0;r=ea;ea=ea+80|0;o=c[a+4>>2]|0;Za[c[(c[o>>2]|0)+16>>2]&3](o,r+76|0,r+72|0,r+68|0,r+64|0,r+60|0,r+56|0,r+52|0,r+48|0,b);o=(c[r+60>>2]|0)+(z(c[r+56>>2]|0,d)|0)|0;q=c[a+4>>2]|0;p=(c[r+68>>2]|0)==0;n=c[r+76>>2]|0;if((c[r+48>>2]|0)==3){m=c[r+64>>2]|0;i=n+(z(m,e[o+4>>1]|0)|0)|0;if(p){k=i+8|0;j=+f[q+12>>2];l=+f[i>>2]*+f[q+4>>2];h=+f[i+4>>2]*+f[q+8>>2]}else{k=q+12|0;j=+g[i+16>>3];l=+f[q+4>>2]*+g[i>>3];h=+f[q+8>>2]*+g[i+8>>3]}j=+f[k>>2]*j;f[r+32>>2]=l;f[r+36>>2]=h;f[r+40>>2]=j;f[r+44>>2]=0.0;i=n+(z(m,e[o+2>>1]|0)|0)|0;if(p){k=i+8|0;j=+f[q+12>>2];l=+f[i>>2]*+f[q+4>>2];h=+f[i+4>>2]*+f[q+8>>2]}else{k=q+12|0;j=+g[i+16>>3];l=+f[q+4>>2]*+g[i>>3];h=+f[q+8>>2]*+g[i+8>>3]}j=+f[k>>2]*j;f[r+16>>2]=l;f[r+20>>2]=h;f[r+24>>2]=j;f[r+28>>2]=0.0;k=n+(z(m,e[o>>1]|0)|0)|0;if(p){i=k+8|0;j=+f[q+12>>2];l=+f[k>>2]*+f[q+4>>2];h=+f[k+4>>2]*+f[q+8>>2]}else{i=q+12|0;j=+g[k+16>>3];l=+f[q+4>>2]*+g[k>>3];h=+f[q+8>>2]*+g[k+8>>3]}s=l;l=+f[i>>2]*j;f[r>>2]=s;q=r+4|0;f[q>>2]=h;q=r+8|0;f[q>>2]=l;q=r+12|0;f[q>>2]=0.0;q=a+8|0;q=c[q>>2]|0;p=c[q>>2]|0;p=p+8|0;p=c[p>>2]|0;Pa[p&127](q,r,b,d);a=c[a+4>>2]|0;d=c[a>>2]|0;d=d+24|0;d=c[d>>2]|0;Ia[d&127](a,b);ea=r;return}else{m=c[r+64>>2]|0;i=n+(z(m,c[o+8>>2]|0)|0)|0;if(p){k=i+8|0;j=+f[q+12>>2];l=+f[i>>2]*+f[q+4>>2];h=+f[i+4>>2]*+f[q+8>>2]}else{k=q+12|0;j=+g[i+16>>3];l=+f[q+4>>2]*+g[i>>3];h=+f[q+8>>2]*+g[i+8>>3]}s=+f[k>>2]*j;f[r+32>>2]=l;f[r+36>>2]=h;f[r+40>>2]=s;f[r+44>>2]=0.0;i=n+(z(m,c[o+4>>2]|0)|0)|0;if(p){k=i+8|0;j=+f[q+12>>2];l=+f[i>>2]*+f[q+4>>2];h=+f[i+4>>2]*+f[q+8>>2]}else{k=q+12|0;j=+g[i+16>>3];l=+f[q+4>>2]*+g[i>>3];h=+f[q+8>>2]*+g[i+8>>3]}s=+f[k>>2]*j;f[r+16>>2]=l;f[r+20>>2]=h;f[r+24>>2]=s;f[r+28>>2]=0.0;k=n+(z(m,c[o>>2]|0)|0)|0;if(p){i=k+8|0;j=+f[q+12>>2];l=+f[k>>2]*+f[q+4>>2];h=+f[k+4>>2]*+f[q+8>>2]}else{i=q+12|0;j=+g[k+16>>3];l=+f[q+4>>2]*+g[k>>3];h=+f[q+8>>2]*+g[k+8>>3]}t=l;l=h;s=+f[i>>2]*j;f[r>>2]=t;q=r+4|0;f[q>>2]=l;q=r+8|0;f[q>>2]=s;q=r+12|0;f[q>>2]=0.0;q=a+8|0;q=c[q>>2]|0;p=c[q>>2]|0;p=p+8|0;p=c[p>>2]|0;Pa[p&127](q,r,b,d);a=c[a+4>>2]|0;d=c[a>>2]|0;d=d+24|0;d=c[d>>2]|0;Ia[d&127](a,b);ea=r;return}}function ud(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,t=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0;Yf(a,b+(c*284|0)|0,d);i=+f[b+(c*284|0)+52>>2];g=+f[b+(c*284|0)+56>>2];e=+f[b+(c*284|0)+60>>2];J=+f[b+(c*284|0)+76>>2];A=+f[b+(c*284|0)+72>>2];C=+f[b+(c*284|0)+68>>2];z=1.0/+s(+((A*-i-C*-g)*(A*-i-C*-g)+((J*-g-A*-e)*(J*-g-A*-e)+(C*-e-J*-i)*(C*-e-J*-i))));y=(J*-g-A*-e)*z;x=(C*-e-J*-i)*z;z=(A*-i-C*-g)*z;j=+f[b+(c*284|0)+232>>2]*.5;n=+v(+j)/+s(+(i*i+g*g+e*e));j=+u(+j);m=2.0/(j*j+(n*-e*(n*-e)+(n*-i*(n*-i)+n*-g*(n*-g))));H=1.0-(n*-g*(n*-g*m)+n*-e*(n*-e*m));G=n*-i*(n*-g*m)-j*(n*-e*m);I=n*-i*(n*-e*m)+j*(n*-g*m);E=n*-i*(n*-g*m)+j*(n*-e*m);D=1.0-(n*-i*(n*-i*m)+n*-e*(n*-e*m));F=n*-g*(n*-e*m)-j*(n*-i*m);l=n*-i*(n*-e*m)-j*(n*-g*m);j=n*-g*(n*-e*m)+j*(n*-i*m);m=1.0-(n*-i*(n*-i*m)+n*-g*(n*-g*m));n=+f[b+(c*284|0)+236>>2]*-.5;B=+v(+n)/+s(+(J*J+(A*A+C*C)));n=+u(+n);r=2.0/(n*n+(J*B*(J*B)+(C*B*(C*B)+A*B*(A*B))));o=1.0-(A*B*(A*B*r)+J*B*(J*B*r));k=C*B*(A*B*r)-n*(J*B*r);w=C*B*(J*B*r)+n*(A*B*r);p=C*B*(A*B*r)+n*(J*B*r);h=1.0-(C*B*(C*B*r)+J*B*(J*B*r));t=A*B*(J*B*r)-n*(C*B*r);q=C*B*(J*B*r)-n*(A*B*r);n=A*B*(J*B*r)+n*(C*B*r);r=1.0-(C*B*(C*B*r)+A*B*(A*B*r));B=+f[b+(c*284|0)+68>>2];A=+f[b+(c*284|0)+72>>2];C=+f[b+(c*284|0)+76>>2];f[b+(c*284|0)+92>>2]=C*(H*w+G*t+I*r)+(B*(I*q+(G*p+H*o))+A*(I*n+(H*k+G*h)));f[b+(c*284|0)+96>>2]=z*(H*w+G*t+I*r)+(y*(I*q+(G*p+H*o))+x*(I*n+(H*k+G*h)));f[b+(c*284|0)+100>>2]=(H*w+G*t+I*r)*-e+((I*q+(G*p+H*o))*-i+(I*n+(H*k+G*h))*-g);f[b+(c*284|0)+104>>2]=0.0;f[b+(c*284|0)+108>>2]=C*(E*w+t*D+F*r)+(B*(F*q+(p*D+E*o))+A*(F*n+(E*k+D*h)));f[b+(c*284|0)+112>>2]=z*(E*w+t*D+F*r)+(y*(F*q+(p*D+E*o))+x*(F*n+(E*k+D*h)));f[b+(c*284|0)+116>>2]=(E*w+t*D+F*r)*-e+((F*q+(p*D+E*o))*-i+(F*n+(E*k+D*h))*-g);f[b+(c*284|0)+120>>2]=0.0;f[b+(c*284|0)+124>>2]=C*(l*w+j*t+m*r)+(B*(q*m+(j*p+l*o))+A*(n*m+(l*k+j*h)));f[b+(c*284|0)+128>>2]=z*(l*w+j*t+m*r)+(y*(q*m+(j*p+l*o))+x*(n*m+(l*k+j*h)));f[b+(c*284|0)+132>>2]=(l*w+j*t+m*r)*-e+((q*m+(j*p+l*o))*-i+(n*m+(l*k+j*h))*-g);f[b+(c*284|0)+136>>2]=0.0;h=+f[b+(c*284|0)+32>>2];g=g*h+ +f[b+(c*284|0)+40>>2];e=e*h+ +f[b+(c*284|0)+44>>2];f[b+(c*284|0)+140>>2]=+f[b+(c*284|0)+36>>2]+i*h;f[b+(c*284|0)+144>>2]=g;f[b+(c*284|0)+148>>2]=e;f[b+(c*284|0)+152>>2]=0.0;return}function vd(b,d,e,g){b=b|0;d=d|0;e=e|0;g=g|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0,z=0,A=0,B=0,C=0,D=0.0;C=ea;ea=ea+32|0;p=+f[d>>2];j=(f[h>>2]=p,c[h>>2]|0);s=p<999999984306749440.0?j:1566444395;o=+f[d+4>>2];l=(f[h>>2]=o,c[h>>2]|0);t=o<999999984306749440.0?l:1566444395;D=+f[d+8>>2];n=(f[h>>2]=D,c[h>>2]|0);v=D<999999984306749440.0?n:1566444395;r=+f[d+12>>2];x=r<0.0?r:0.0;j=p>-999999984306749440.0?j:-581039253;l=o>-999999984306749440.0?l:-581039253;n=D>-999999984306749440.0?n:-581039253;r=r>0.0?r:0.0;D=+f[d+16>>2];A=D<(c[h>>2]=s,+f[h>>2]);i=(f[h>>2]=D,c[h>>2]|0);s=A?i:s;o=+f[d+20>>2];A=o<(c[h>>2]=t,+f[h>>2]);k=(f[h>>2]=o,c[h>>2]|0);t=A?k:t;p=+f[d+24>>2];A=p<(c[h>>2]=v,+f[h>>2]);m=(f[h>>2]=p,c[h>>2]|0);v=A?m:v;q=+f[d+28>>2];x=q(c[h>>2]=j,+f[h>>2])?i:j;u=o>(c[h>>2]=l,+f[h>>2])?k:l;l=p>(c[h>>2]=n,+f[h>>2])?m:n;r=r>2];A=D<(c[h>>2]=s,+f[h>>2]);i=(f[h>>2]=D,c[h>>2]|0);A=A?i:s;p=+f[d+36>>2];z=p<(c[h>>2]=t,+f[h>>2]);j=(f[h>>2]=p,c[h>>2]|0);z=z?j:t;q=+f[d+40>>2];y=q<(c[h>>2]=v,+f[h>>2]);k=(f[h>>2]=q,c[h>>2]|0);y=y?k:v;o=+f[d+44>>2];x=o(c[h>>2]=w,+f[h>>2])?i:w;u=p>(c[h>>2]=u,+f[h>>2])?j:u;t=q>(c[h>>2]=l,+f[h>>2])?k:l;o=r>2]|0;i=c[s+4>>2]|0;if((i|0)==(c[s+8>>2]|0)?(B=(i|0)==0?1:i<<1,(i|0)<(B|0)):0){if(!B)j=0;else{c[6747]=(c[6747]|0)+1;i=kb(B<<6|19)|0;if(!i)j=0;else{c[(i+4+15&-16)+-4>>2]=i;j=i+4+15&-16}i=c[s+4>>2]|0}if((i|0)>0){k=0;do{l=j+(k<<6)|0;m=(c[s+12>>2]|0)+(k<<6)|0;n=l+64|0;do{c[l>>2]=c[m>>2];l=l+4|0;m=m+4|0}while((l|0)<(n|0));k=k+1|0}while((k|0)!=(i|0))}i=c[s+12>>2]|0;if(i|0){if(a[s+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0)}c[s+12>>2]=0}a[s+16>>0]=1;c[s+12>>2]=j;c[s+8>>2]=B;i=c[s+4>>2]|0}B=c[s+12>>2]|0;c[B+(i<<6)>>2]=A;c[B+(i<<6)+4>>2]=z;c[B+(i<<6)+8>>2]=y;f[B+(i<<6)+12>>2]=x;c[B+(i<<6)+16>>2]=v;c[B+(i<<6)+20>>2]=u;c[B+(i<<6)+24>>2]=t;f[B+(i<<6)+28>>2]=o;c[B+(i<<6)+32>>2]=-1;c[B+(i<<6)+36>>2]=e;c[B+(i<<6)+40>>2]=g;g=B+(i<<6)+44|0;c[g>>2]=c[C>>2];c[g+4>>2]=c[C+4>>2];c[g+8>>2]=c[C+8>>2];c[g+12>>2]=c[C+12>>2];c[g+16>>2]=c[C+16>>2];c[s+4>>2]=(c[s+4>>2]|0)+1;ea=C;return}function wd(b,d){b=b|0;d=+d;var e=0,g=0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0;r=ea;ea=ea+32|0;e=c[b+136>>2]|0;if((e|0)>0){g=0;do{ud(c[b+116>>2]|0,c[b+144>>2]|0,g,0);g=g+1|0;e=c[b+136>>2]|0}while((g|0)<(e|0))}q=c[b+116>>2]|0;l=+f[q+312>>2];m=+f[q+316>>2];h=+f[q+320>>2];h=+s(+(l*l+m*m+h*h))*3.5999999046325684;f[b+112>>2]=h;p=c[b+128>>2]|0;if(+f[q+4+(p<<2)>>2]*+f[q+312>>2]+ +f[q+20+(p<<2)>>2]*+f[q+316>>2]+ +f[q+36+(p<<2)>>2]*+f[q+320>>2]<0.0)f[b+112>>2]=-h;if((e|0)>0){e=0;do{+me(b,(c[b+144>>2]|0)+(e*284|0)|0);e=e+1|0;g=c[b+136>>2]|0}while((e|0)<(g|0));i=1.0/+f[(c[b+116>>2]|0)+344>>2];if((g|0)>0){g=0;do{e=c[b+144>>2]|0;if(!(a[e+(g*284|0)+84>>0]|0))h=0.0;else{h=+f[e+(g*284|0)+272>>2];h=i*(+f[e+(g*284|0)+216>>2]*(+f[e+(g*284|0)+204>>2]-+f[e+(g*284|0)+32>>2])*+f[e+(g*284|0)+268>>2]-h*+f[(h<0.0?e+(g*284|0)+220|0:e+(g*284|0)+224|0)>>2]);h=h<0.0?0.0:h}f[e+(g*284|0)+276>>2]=h;g=g+1|0;e=c[b+136>>2]|0}while((g|0)<(e|0));if((e|0)>0){e=0;do{p=c[b+144>>2]|0;k=+f[p+(e*284|0)+276>>2];m=+f[p+(e*284|0)+248>>2];k=k>m?m:k;m=k*+f[p+(e*284|0)+4>>2]*d;l=k*+f[p+(e*284|0)+8>>2]*d;f[r+16>>2]=+f[p+(e*284|0)>>2]*k*d;f[r+16+4>>2]=m;f[r+16+8>>2]=l;f[r+16+12>>2]=0.0;q=c[b+116>>2]|0;l=+f[p+(e*284|0)+20>>2]-+f[q+56>>2];m=+f[p+(e*284|0)+24>>2]-+f[q+60>>2];f[r>>2]=+f[p+(e*284|0)+16>>2]-+f[q+52>>2];f[r+4>>2]=l;f[r+8>>2]=m;f[r+12>>2]=0.0;uk(q,r+16|0,r);e=e+1|0}while((e|0)<(c[b+136>>2]|0))}}}Da[c[(c[b>>2]|0)+20>>2]&31](b,d);n=c[b+136>>2]|0;if((n|0)<=0){ea=r;return}o=c[b+144>>2]|0;p=c[b+116>>2]|0;q=0;do{k=+f[o+(q*284|0)+36>>2]-+f[p+52>>2];m=+f[o+(q*284|0)+40>>2]-+f[p+56>>2];l=+f[o+(q*284|0)+44>>2]-+f[p+60>>2];h=+f[p+332>>2];i=+f[p+336>>2];j=+f[p+328>>2];if(!(a[o+(q*284|0)+84>>0]|0)){e=o+(q*284|0)+240|0;j=+f[e>>2];g=o+(q*284|0)+236|0;h=j;i=+f[g>>2]}else{e=c[b+128>>2]|0;y=+f[p+4+(e<<2)>>2];w=+f[p+20+(e<<2)>>2];u=+f[p+36+(e<<2)>>2];x=+f[o+(q*284|0)>>2];v=+f[o+(q*284|0)+4>>2];t=+f[o+(q*284|0)+8>>2];j=((m*j-k*h+ +f[p+320>>2])*(u-t*(y*x+w*v+u*t))+((h*l-m*i+ +f[p+312>>2])*(y-x*(y*x+w*v+u*t))+(k*i-l*j+ +f[p+316>>2])*(w-v*(y*x+w*v+u*t))))*d/+f[o+(q*284|0)+212>>2];e=o+(q*284|0)+240|0;f[e>>2]=j;g=o+(q*284|0)+236|0;h=+f[g>>2];i=j}f[g>>2]=h+i;f[e>>2]=j*.9900000095367432;q=q+1|0}while((q|0)!=(n|0));ea=r;return}function xd(b,d,e,g){b=b|0;d=d|0;e=e|0;g=+g;var h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0;n=ea;ea=ea+16|0;i=+f[d>>2];j=+f[d+4>>2];k=+f[d+8>>2];l=+f[e>>2];m=+f[e+4>>2];h=+f[e+8>>2];if(!(a[b+228>>0]|0)){y=+f[b+100>>2];v=+f[b+116>>2];B=+f[b+132>>2];x=+f[b+104>>2];t=+f[b+120>>2];A=+f[b+136>>2];w=+f[b+108>>2];r=+f[b+124>>2];z=+f[b+140>>2];E=-+f[b+148>>2];D=-+f[b+152>>2];C=-+f[b+156>>2];I=+f[b+164>>2];H=+f[b+168>>2];q=+f[b+172>>2];G=+f[b+180>>2];F=+f[b+184>>2];p=+f[b+188>>2];u=+f[b+196>>2];s=+f[b+200>>2];o=+f[b+204>>2];q=h*(B*I+A*H+z*q)+(l*(y*I+x*H+w*q)+m*(v*I+t*H+r*q))+(I*(y*E+v*D+B*C)+(x*E+t*D+A*C)*H+(w*E+r*D+z*C)*q+ +f[b+212>>2]);p=h*(B*G+A*F+z*p)+(l*(y*G+x*F+w*p)+m*(v*G+t*F+r*p))+((y*E+v*D+B*C)*G+(x*E+t*D+A*C)*F+(w*E+r*D+z*C)*p+ +f[b+216>>2]);o=(y*E+v*D+B*C)*u+(x*E+t*D+A*C)*s+(w*E+r*D+z*C)*o+ +f[b+220>>2]+(h*(B*u+A*s+z*o)+(l*(y*u+x*s+w*o)+m*(v*u+t*s+r*o)));f[n>>2]=q;f[n+4>>2]=p;f[n+8>>2]=o;g=i*(i*g+l-q)+j*(j*g+m-p)+k*(k*g+h-o);e=n+12|0;f[e>>2]=0.0;b=b+32|0;b=c[b>>2]|0;e=c[b>>2]|0;e=e+16|0;e=c[e>>2]|0;Na[e&15](b,d,n,g);ea=n;return}else{y=+f[b+36>>2];B=+f[b+52>>2];v=+f[b+68>>2];z=+f[b+40>>2];D=+f[b+56>>2];w=+f[b+72>>2];A=+f[b+44>>2];F=+f[b+60>>2];x=+f[b+76>>2];s=-+f[b+84>>2];t=-+f[b+88>>2];u=-+f[b+92>>2];o=+f[b+164>>2];p=+f[b+168>>2];G=+f[b+172>>2];q=+f[b+180>>2];r=+f[b+184>>2];H=+f[b+188>>2];C=+f[b+196>>2];E=+f[b+200>>2];I=+f[b+204>>2];G=(k*g+h)*(v*o+w*p+x*G)+((i*g+l)*(y*o+z*p+A*G)+(j*g+m)*(B*o+D*p+F*G))+(o*(y*s+B*t+v*u)+(z*s+D*t+w*u)*p+(A*s+F*t+x*u)*G+ +f[b+212>>2]);H=(k*g+h)*(v*q+w*r+x*H)+((i*g+l)*(y*q+z*r+A*H)+(j*g+m)*(B*q+D*r+F*H))+((y*s+B*t+v*u)*q+(z*s+D*t+w*u)*r+(A*s+F*t+x*u)*H+ +f[b+216>>2]);I=(y*s+B*t+v*u)*C+(z*s+D*t+w*u)*E+(A*s+F*t+x*u)*I+ +f[b+220>>2]+((k*g+h)*(v*C+w*E+x*I)+((i*g+l)*(y*C+z*E+A*I)+(j*g+m)*(B*C+D*E+F*I)));f[n>>2]=G+i*(i*(G-l)+j*(H-m)+k*(I-h));f[n+4>>2]=H+j*(i*(G-l)+j*(H-m)+k*(I-h));f[n+8>>2]=I+k*(i*(G-l)+j*(H-m)+k*(I-h));I=i*(G-l)+j*(H-m)+k*(I-h);e=n+12|0;f[e>>2]=0.0;b=b+32|0;b=c[b>>2]|0;e=c[b>>2]|0;e=e+16|0;e=c[e>>2]|0;Na[e&15](b,d,n,I);ea=n;return}}function yd(b,d,e,g,i,j,k,l){b=b|0;d=d|0;e=e|0;g=g|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,t=0.0,u=0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0;c[b+4>>2]=4;c[b+8>>2]=-1;c[b+12>>2]=-1;f[b+16>>2]=3402823466385288598117041.0e14;a[b+20>>0]=1;a[b+21>>0]=0;c[b+24>>2]=-1;c[b+28>>2]=d;c[b+32>>2]=e;f[b+36>>2]=0.0;f[b+40>>2]=.30000001192092896;c[b+44>>2]=0;c[b>>2]=5820;f[b+688>>2]=0.0;f[b+692>>2]=-1.0;f[b+696>>2]=.8999999761581421;f[b+700>>2]=.30000001192092896;f[b+704>>2]=1.0;f[b+708>>2]=0.0;f[b+712>>2]=0.0;a[b+716>>0]=0;a[b+736>>0]=0;a[b+737>>0]=0;a[b+738>>0]=0;a[b+739>>0]=1;a[b+740>>0]=l&1;c[b+748>>2]=0;c[b+600>>2]=c[g>>2];c[b+600+4>>2]=c[g+4>>2];c[b+600+8>>2]=c[g+8>>2];c[b+600+12>>2]=c[g+12>>2];o=+f[d+4>>2];p=+f[d+20>>2];m=+f[d+36>>2];q=+f[j>>2];t=+f[j+4>>2];n=+f[j+8>>2];do if(!(o*q+p*t+m*n>=.9999998807907104))if(!(o*q+p*t+m*n<=-.9999998807907104)){u=(f[h>>2]=m*t-p*n,c[h>>2]|0);g=(f[h>>2]=o*n-m*q,c[h>>2]|0);z=n*(o*n-m*q)-t*(p*q-o*t);A=q*(p*q-o*t)-n*(m*t-p*n);y=t*(m*t-p*n)-q*(o*n-m*q);e=(f[h>>2]=p*q-o*t,c[h>>2]|0);break}else{z=+f[d+12>>2];A=+f[d+28>>2];y=+f[d+44>>2];u=c[d+8>>2]|0;e=c[d+40>>2]|0;g=c[d+24>>2]|0;break}else{z=-+f[d+12>>2];A=-+f[d+28>>2];y=-+f[d+44>>2];u=c[d+8>>2]|0;e=c[d+40>>2]|0;g=c[d+24>>2]|0}while(0);f[b+552>>2]=z;c[b+556>>2]=u;c[b+560>>2]=c[j>>2];f[b+564>>2]=0.0;f[b+568>>2]=A;c[b+572>>2]=g;c[b+576>>2]=c[j+4>>2];f[b+580>>2]=0.0;f[b+584>>2]=y;c[b+588>>2]=e;c[b+592>>2]=c[j+8>>2];f[b+596>>2]=0.0;m=+f[j+4>>2];v=+f[k+8>>2];p=+f[j+8>>2];w=+f[k+4>>2];x=+f[k>>2];n=+f[j>>2];do if(v*p+(m*w+x*n)<-.9999998807907104)if(+r(+p)>.7071067690849304){n=1.0/+s(+(m*m+p*p));q=0.0;t=m*n;o=0.0;m=-(p*n);break}else{p=1.0/+s(+(m*m+n*n));q=0.0;t=0.0;o=-(m*p);m=n*p;break}else{B=+s(+((v*p+(m*w+x*n)+1.0)*2.0));q=B*.5;t=(w*n-m*x)*(1.0/B);o=(m*v-p*w)*(1.0/B);m=(p*x-v*n)*(1.0/B)}while(0);D=z*q+y*m-A*t;p=A*q+z*t-y*o;n=y*q+A*o-z*m;C=-(z*o)-A*m-y*t;z=-o;o=-m;y=-t;B=p*y+(q*D+C*z)-n*o;A=n*z+(q*p+C*o)-D*y;z=D*o+(C*y+q*n)-p*z;c[b+664>>2]=c[i>>2];c[b+664+4>>2]=c[i+4>>2];c[b+664+8>>2]=c[i+8>>2];c[b+664+12>>2]=c[i+12>>2];f[b+616>>2]=B;f[b+620>>2]=w*z-v*A;c[b+624>>2]=c[k>>2];f[b+628>>2]=0.0;f[b+632>>2]=A;f[b+636>>2]=v*B-x*z;c[b+640>>2]=c[k+4>>2];f[b+644>>2]=0.0;f[b+648>>2]=z;f[b+652>>2]=x*A-w*B;c[b+656>>2]=c[k+8>>2];f[b+660>>2]=0.0;f[b+732>>2]=l?-1.0:1.0;return}function zd(b){b=b|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=ea;ea=ea+16|0;Fi(14723);j=c[b+204>>2]|0;Ma[c[(c[j>>2]|0)+8>>2]&127](j,b,c[b+24>>2]|0);j=c[b+308>>2]|0;if((j|0)>0){k=c[b+316>>2]|0;l=0;do{e=c[k+(l<<2)>>2]|0;d=c[e+740>>2]|0;e=c[e+744>>2]|0;if((d|0?(e|0?(c[d+204>>2]&3|0)==0:0):0)?(c[e+204>>2]&3|0)==0:0){g=c[d+208>>2]|0;d=c[e+208>>2]|0;i=c[(c[b+204>>2]|0)+16>>2]|0;e=c[i+(g<<3)>>2]|0;if((e|0)!=(g|0)){c[i+(g<<3)>>2]=c[i+(e<<3)>>2];g=c[i+(e<<3)>>2]|0;e=c[i+(g<<3)>>2]|0;if((g|0)!=(e|0)){h=i+(g<<3)|0;do{g=i+(e<<3)|0;c[h>>2]=c[g>>2];g=c[g>>2]|0;h=i+(g<<3)|0;e=c[h>>2]|0}while((g|0)!=(e|0))}}e=c[i+(d<<3)>>2]|0;if((e|0)!=(d|0)){c[i+(d<<3)>>2]=c[i+(e<<3)>>2];d=c[i+(e<<3)>>2]|0;e=c[i+(d<<3)>>2]|0;if((d|0)!=(e|0)){h=i+(d<<3)|0;do{d=i+(e<<3)|0;c[h>>2]=c[d>>2];d=c[d>>2]|0;h=i+(d<<3)|0;e=c[h>>2]|0}while((d|0)!=(e|0))}}if((g|0)!=(d|0)){c[i+(g<<3)>>2]=d;h=i+(d<<3)+4|0;c[h>>2]=(c[h>>2]|0)+(c[i+(g<<3)+4>>2]|0)}}l=l+1|0}while((l|0)!=(j|0))}j=c[b+212>>2]|0;if((j|0)>0){k=c[b+220>>2]|0;l=0;do{d=c[k+(l<<2)>>2]|0;if((a[d+20>>0]|0?(m=c[d+28>>2]|0,(c[m+204>>2]&3|0)==0):0)?(n=c[d+32>>2]|0,(c[n+204>>2]&3|0)==0):0){e=c[m+208>>2]|0;d=c[n+208>>2]|0;i=c[(c[b+204>>2]|0)+16>>2]|0;g=c[i+(e<<3)>>2]|0;if((g|0)!=(e|0)){c[i+(e<<3)>>2]=c[i+(g<<3)>>2];e=c[i+(g<<3)>>2]|0;g=c[i+(e<<3)>>2]|0;if((e|0)!=(g|0)){h=i+(e<<3)|0;do{e=i+(g<<3)|0;c[h>>2]=c[e>>2];e=c[e>>2]|0;h=i+(e<<3)|0;g=c[h>>2]|0}while((e|0)!=(g|0))}}g=c[i+(d<<3)>>2]|0;if((g|0)!=(d|0)){c[i+(d<<3)>>2]=c[i+(g<<3)>>2];d=c[i+(g<<3)>>2]|0;g=c[i+(d<<3)>>2]|0;if((d|0)!=(g|0)){h=i+(d<<3)|0;do{d=i+(g<<3)|0;c[h>>2]=c[d>>2];d=c[d>>2]|0;h=i+(d<<3)|0;g=c[h>>2]|0}while((d|0)!=(g|0))}}if((e|0)!=(d|0)){c[i+(e<<3)>>2]=d;h=i+(d<<3)+4|0;c[h>>2]=(c[h>>2]|0)+(c[i+(e<<3)+4>>2]|0)}}l=l+1|0}while((l|0)!=(j|0))}d=c[b+204>>2]|0;Ia[c[(c[d>>2]|0)+12>>2]&127](d,b);d=c[2685]|0;b=(c[d+16>>2]|0)+-1|0;c[d+16>>2]=b;if(b|0){ea=o;return}do if(c[d+4>>2]|0){Y(o|0,0)|0;b=c[6746]|0;f[d+8>>2]=+f[d+8>>2]+ +(((c[o+4>>2]|0)-(c[b+4>>2]|0)+(((c[o>>2]|0)-(c[b>>2]|0)|0)*1e6|0)-(c[d+12>>2]|0)|0)>>>0)/1.0e3;if(!(c[d+16>>2]|0)){d=c[2685]|0;break}else{ea=o;return}}while(0);c[2685]=c[d+20>>2];ea=o;return}function Ad(b,d,e,g){b=b|0;d=d|0;e=e|0;g=+g;var h=0,i=0,j=0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0,u=0,v=0.0,w=0.0,x=0,y=0;t=ea;ea=ea+192|0;i=c[(c[b+4>>2]|0)+740>>2]|0;j=c[(c[b+8>>2]|0)+8>>2]|0;k=+f[e>>2];n=+f[d>>2]*g+k;l=+f[e+4>>2];p=+f[d+4>>2]*g+l;m=+f[e+8>>2];o=+f[d+8>>2]*g+m;if((i|0)!=(j|0)){u=c[(c[b+12>>2]|0)+8>>2]|0;w=n-+f[u+52>>2];v=p-+f[u+56>>2];s=o-+f[u+60>>2];h=j;q=w*+f[u+4>>2]+v*+f[u+20>>2]+s*+f[u+36>>2];r=w*+f[u+8>>2]+v*+f[u+24>>2]+s*+f[u+40>>2];s=w*+f[u+12>>2]+v*+f[u+28>>2]+s*+f[u+44>>2]}else{v=n-+f[i+52>>2];w=p-+f[i+56>>2];s=o-+f[i+60>>2];h=c[(c[b+12>>2]|0)+8>>2]|0;q=v*+f[i+4>>2]+w*+f[i+20>>2]+s*+f[i+36>>2];r=v*+f[i+8>>2]+w*+f[i+24>>2]+s*+f[i+40>>2];s=v*+f[i+12>>2]+w*+f[i+28>>2]+s*+f[i+44>>2]}k=k-+f[h+52>>2];l=l-+f[h+56>>2];w=m-+f[h+60>>2];m=k*+f[h+4>>2]+l*+f[h+20>>2]+w*+f[h+36>>2];v=k*+f[h+8>>2]+l*+f[h+24>>2]+w*+f[h+40>>2];w=k*+f[h+12>>2]+l*+f[h+28>>2]+w*+f[h+44>>2];f[t>>2]=q;f[t+4>>2]=r;f[t+8>>2]=s;f[t+12>>2]=0.0;f[t+16>>2]=m;f[t+20>>2]=v;f[t+24>>2]=w;f[t+28>>2]=0.0;c[t+64>>2]=c[d>>2];c[t+64+4>>2]=c[d+4>>2];c[t+64+8>>2]=c[d+8>>2];c[t+64+12>>2]=c[d+12>>2];f[t+80>>2]=g;f[t+84>>2]=0.0;f[t+88>>2]=0.0;f[t+92>>2]=0.0;c[t+112>>2]=0;a[t+116>>0]=0;c[t+120>>2]=0;c[t+120+4>>2]=0;c[t+120+8>>2]=0;c[t+120+12>>2]=0;c[t+120+16>>2]=0;c[t+120+20>>2]=0;c[t+120+24>>2]=0;c[t+120+28>>2]=0;f[t+48>>2]=n;f[t+52>>2]=p;f[t+56>>2]=o;f[t+60>>2]=0.0;c[t+32>>2]=c[e>>2];c[t+32+4>>2]=c[e+4>>2];c[t+32+8>>2]=c[e+8>>2];c[t+32+12>>2]=c[e+12>>2];if((i|0)!=(j|0)){u=b+24|0;h=b+28|0;e=b+16|0;x=b+20|0;u=c[u>>2]|0;h=c[h>>2]|0;e=c[e>>2]|0;x=c[x>>2]|0;d=t+96|0;c[d>>2]=x;d=t+100|0;c[d>>2]=e;d=t+104|0;c[d>>2]=h;d=t+108|0;c[d>>2]=u;d=b+12|0;y=(i|0)!=(j|0)?d:b+8|0;y=c[y>>2]|0;d=(i|0)!=(j|0)?b+8|0:d;d=c[d>>2]|0;b=b+32|0;b=c[b>>2]|0;j=c[b>>2]|0;j=j+12|0;j=c[j>>2]|0;+oa[j&1](b,t,y,x,h,d,e,u);ea=t;return}else{y=b+28|0;e=b+24|0;x=b+20|0;d=b+16|0;y=c[y>>2]|0;e=c[e>>2]|0;x=c[x>>2]|0;d=c[d>>2]|0;u=t+96|0;c[u>>2]=d;u=t+100|0;c[u>>2]=x;u=t+104|0;c[u>>2]=e;u=t+108|0;c[u>>2]=y;u=b+12|0;h=(i|0)!=(j|0)?u:b+8|0;h=c[h>>2]|0;u=(i|0)!=(j|0)?b+8|0:u;u=c[u>>2]|0;b=b+32|0;b=c[b>>2]|0;j=c[b>>2]|0;j=j+12|0;j=c[j>>2]|0;+oa[j&1](b,t,h,d,e,u,x,y);ea=t;return}}function Bd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0,G=0.0,H=0.0,I=0.0;d=ea;ea=ea+96|0;k=+f[b>>2];l=+f[a+28>>2];x=+f[b+4>>2];y=+f[a+32>>2];z=+f[b+8>>2];A=+f[a+36>>2];B=+f[a+44>>2];C=+f[a+48>>2];D=+f[a+52>>2];E=+f[a+60>>2];m=+f[a+64>>2];n=+f[a+68>>2];o=+f[a+76>>2];p=+f[a+80>>2];q=+f[a+84>>2];f[d+80>>2]=k*l+x*y+z*A+o;f[d+80+4>>2]=k*B+x*C+z*D+p;f[d+80+8>>2]=k*E+x*m+z*n+q;f[d+80+12>>2]=0.0;r=+f[b+16>>2];t=+f[b+20>>2];u=+f[b+24>>2];f[d+64>>2]=o+(l*r+y*t+A*u);f[d+64+4>>2]=p+(B*r+C*t+D*u);f[d+64+8>>2]=q+(E*r+m*t+n*u);f[d+64+12>>2]=0.0;v=+f[b+32>>2];w=+f[b+36>>2];g=+f[b+40>>2];f[d+48>>2]=o+(l*v+y*w+A*g);f[d+48+4>>2]=p+(B*v+C*w+D*g);f[d+48+8>>2]=q+(E*v+m*w+n*g);f[d+48+12>>2]=0.0;h=(k*l+x*y+z*A+o+(o+(l*r+y*t+A*u))+(o+(l*v+y*w+A*g)))*.3333333432674408;i=(k*B+x*C+z*D+p+(p+(B*r+C*t+D*u))+(p+(B*v+C*w+D*g)))*.3333333432674408;j=(k*E+x*m+z*n+q+(q+(E*r+m*t+n*u))+(q+(E*v+m*w+n*g)))*.3333333432674408;f[d+32>>2]=h;f[d+32+4>>2]=i;f[d+32+8>>2]=j;f[d+32+12>>2]=0.0;b=c[a+8>>2]|0;if(!((ra[c[(c[b>>2]|0)+48>>2]&127](b)|0)&16384)){e=c[a+8>>2]|0;F=c[e>>2]|0;F=F+8|0;F=c[F>>2]|0;b=a+12|0;Pa[F&127](e,d+80|0,d+64|0,b);e=c[a+8>>2]|0;F=c[e>>2]|0;F=F+8|0;F=c[F>>2]|0;Pa[F&127](e,d+64|0,d+48|0,b);a=c[a+8>>2]|0;e=c[a>>2]|0;e=e+8|0;e=c[e>>2]|0;Pa[e&127](a,d+48|0,d+80|0,b);ea=d;return}I=+f[d+80>>2];H=p+(B*r+C*t+D*u)-(k*B+x*C+z*D+p);G=q+(E*r+m*t+n*u)-(k*E+x*m+z*n+q);B=p+(B*v+C*w+D*g)-(k*B+x*C+z*D+p);z=q+(E*v+m*w+n*g)-(k*E+x*m+z*n+q);C=G*(o+(l*v+y*w+A*g)-I)-(o+(l*r+y*t+A*u)-I)*z;D=(o+(l*r+y*t+A*u)-I)*B-H*(o+(l*v+y*w+A*g)-I);E=1.0/+s(+(D*D+((H*z-G*B)*(H*z-G*B)+C*C)));c[d+16>>2]=1065353216;c[d+16+4>>2]=1065353216;c[d+16+8>>2]=0;f[d+16+12>>2]=0.0;b=c[a+8>>2]|0;e=c[(c[b>>2]|0)+8>>2]|0;f[d>>2]=(H*z-G*B)*E+h;f[d+4>>2]=C*E+i;f[d+8>>2]=D*E+j;f[d+12>>2]=0.0;Pa[e&127](b,d+32|0,d,d+16|0);b=c[a+8>>2]|0;e=c[b>>2]|0;e=e+8|0;e=c[e>>2]|0;F=a+12|0;Pa[e&127](b,d+80|0,d+64|0,F);b=c[a+8>>2]|0;e=c[b>>2]|0;e=e+8|0;e=c[e>>2]|0;Pa[e&127](b,d+64|0,d+48|0,F);a=c[a+8>>2]|0;b=c[a>>2]|0;b=b+8|0;b=c[b>>2]|0;Pa[b&127](a,d+48|0,d+80|0,F);ea=d;return}function Cd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;if(!((a|0)!=0&(b|0)!=0))return;c[6747]=(c[6747]|0)+1;e=kb(1043)|0;if(!e)e=0;else{c[(e+4+15&-16)+-4>>2]=e;e=e+4+15&-16}c[e>>2]=a;c[e+4>>2]=b;j=e;g=e;h=e;q=1;a=128;m=e;k=128;e=124;while(1){n=q+-1|0;o=c[m+(n<<3)>>2]|0;p=c[m+(n<<3)+4>>2]|0;if((n|0)>(e|0)){i=k<<1;do if((k|0)<(i|0)&(a|0)<(i|0)){if(k){c[6747]=(c[6747]|0)+1;e=kb((k<<4|3)+16|0)|0;if(!e)a=0;else{c[(e+4+15&-16)+-4>>2]=e;a=e+4+15&-16}if((k|0)>0){e=0;do{g=m+(e<<3)|0;h=c[g+4>>2]|0;l=a+(e<<3)|0;c[l>>2]=c[g>>2];c[l+4>>2]=h;e=e+1|0}while((e|0)!=(k|0));b=a;e=a}else{b=a;e=a;r=13}}else{b=0;e=0;r=13}if((r|0)==13){r=0;if(!m){g=e;h=e;a=i;break}}if(!j){g=e;h=e;a=i}else{c[6748]=(c[6748]|0)+1;uc(c[j+-4>>2]|0);g=e;h=e;a=i}}else{e=j;b=m}while(0);j=e;l=a;k=i;i=i+-4|0}else{l=a;b=m;i=e}do if((o|0)==(p|0))if(!(c[o+40>>2]|0))e=n;else{p=c[o+36>>2]|0;c[b+(n<<3)>>2]=p;c[b+(n<<3)+4>>2]=p;p=c[o+40>>2]|0;e=q+1|0;c[b+(q<<3)>>2]=p;c[b+(q<<3)+4>>2]=p;p=c[o+40>>2]|0;c[b+(e<<3)>>2]=c[o+36>>2];c[b+(e<<3)+4>>2]=p;e=q+2|0}else if(((((+f[o>>2]<=+f[p+16>>2]?+f[o+16>>2]>=+f[p>>2]:0)?+f[o+4>>2]<=+f[p+20>>2]:0)?+f[o+20>>2]>=+f[p+4>>2]:0)?+f[o+8>>2]<=+f[p+24>>2]:0)?+f[o+24>>2]>=+f[p+8>>2]:0){a=(c[p+40>>2]|0)!=0;if(!(c[o+40>>2]|0))if(a){e=c[p+36>>2]|0;c[b+(n<<3)>>2]=o;c[b+(n<<3)+4>>2]=e;e=c[p+40>>2]|0;c[b+(q<<3)>>2]=o;c[b+(q<<3)+4>>2]=e;e=q+1|0;break}else{Ma[c[(c[d>>2]|0)+8>>2]&127](d,o,p);e=n;break}else{e=c[o+36>>2]|0;if(a){m=c[p+36>>2]|0;c[b+(n<<3)>>2]=e;c[b+(n<<3)+4>>2]=m;m=c[p+36>>2]|0;n=q+1|0;c[b+(q<<3)>>2]=c[o+40>>2];c[b+(q<<3)+4>>2]=m;m=c[p+40>>2]|0;e=q+2|0;c[b+(n<<3)>>2]=c[o+36>>2];c[b+(n<<3)+4>>2]=m;p=c[p+40>>2]|0;c[b+(e<<3)>>2]=c[o+40>>2];c[b+(e<<3)+4>>2]=p;e=q+3|0;break}else{c[b+(n<<3)>>2]=e;c[b+(n<<3)+4>>2]=p;c[b+(q<<3)>>2]=c[o+40>>2];c[b+(q<<3)+4>>2]=p;e=q+1|0;break}}}else e=n;while(0);if(!e)break;else{q=e;a=l;m=b;e=i}}if((b|0)==0|(g|0)==0)return;c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0);return}function Dd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0,h=0.0,i=0.0,j=0.0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,t=0,u=0,v=0,w=0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0,J=0;J=ea;ea=ea+32|0;if(!a){ea=J;return}F=+f[d>>2]-+f[b>>2];G=+f[d+4>>2]-+f[b+4>>2];B=+f[d+8>>2]-+f[b+8>>2];A=1.0/+s(+(F*F+G*G+B*B));x=F*A==0.0?999999984306749440.0:1.0/(F*A);y=G*A==0.0?999999984306749440.0:1.0/(G*A);z=B*A==0.0?999999984306749440.0:1.0/(B*A);c[6747]=(c[6747]|0)+1;d=kb(531)|0;if(!d)d=0;else{c[(d+4+15&-16)+-4>>2]=d;d=d+4+15&-16}hk(d+4|0,0,508)|0;c[d>>2]=a;t=d;o=d;p=d;w=1;a=128;v=d;m=128;l=126;while(1){q=w+-1|0;n=v+(q<<2)|0;u=c[n>>2]|0;c[J>>2]=c[u>>2];c[J+4>>2]=c[u+4>>2];c[J+8>>2]=c[u+8>>2];c[J+12>>2]=c[u+12>>2];c[J+16>>2]=c[u+16>>2];c[J+16+4>>2]=c[u+16+4>>2];c[J+16+8>>2]=c[u+16+8>>2];c[J+16+12>>2]=c[u+16+12>>2];i=+f[b>>2];h=x*(+f[J+((x<0.0&1)<<4)>>2]-i);i=x*(+f[J+(((x<0.0^1)&1)<<4)>>2]-i);k=+f[b+4>>2];j=y*(+f[J+((y<0.0&1)<<4)+4>>2]-k);k=y*(+f[J+(((y<0.0^1)&1)<<4)+4>>2]-k);do if((!(j>i|h>k)?(C=j>h?j:h,H=k>2],D=z*(+f[J+((z<0.0&1)<<4)+8>>2]-E),E=z*(+f[J+(((z<0.0^1)&1)<<4)+8>>2]-E),!(D>H|C>E)):0)?((E0.0?(D>C?D:C)>2]|0)){Ia[c[(c[e>>2]|0)+12>>2]&127](e,u);d=t;n=q;g=v;break}if((q|0)>(l|0)){r=m<<1;if((m|0)<(r|0)){do if((a|0)<(r|0)){if(m){c[6747]=(c[6747]|0)+1;d=kb((m<<3|3)+16|0)|0;if(!d)a=0;else{c[(d+4+15&-16)+-4>>2]=d;a=d+4+15&-16}if((m|0)>0){d=0;do{c[a+(d<<2)>>2]=c[v+(d<<2)>>2];d=d+1|0}while((d|0)!=(m|0));g=a;d=a}else{g=a;d=a;I=18}}else{g=0;d=0;I=18}if((I|0)==18){I=0;if(!v){o=d;l=d;a=r;break}}if(!t){o=d;l=d;a=r}else{c[6748]=(c[6748]|0)+1;uc(c[t+-4>>2]|0);o=d;l=d;a=r}}else{l=p;d=t;g=v}while(0);hk(g+(m<<2)|0,0,m<<2|0)|0;n=g+(q<<2)|0;m=o}else{m=o;l=p;d=t;g=v}o=m;p=l;m=r;l=r+-2|0}else{d=t;g=v}c[n>>2]=c[u+36>>2];c[g+(w<<2)>>2]=c[u+40>>2];n=w+1|0}else{d=t;n=q;g=v}while(0);if(!n)break;t=d;w=n;v=g}if((g|0)==0|(o|0)==0){ea=J;return}c[6748]=(c[6748]|0)+1;uc(c[o+-4>>2]|0);ea=J;return}function Ed(b,d,e,g,h,i){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;c[b+4>>2]=6;c[b+8>>2]=-1;c[b+12>>2]=-1;f[b+16>>2]=3402823466385288598117041.0e14;a[b+20>>0]=1;a[b+21>>0]=0;c[b+24>>2]=-1;c[b+28>>2]=d;c[b+32>>2]=e;f[b+36>>2]=0.0;f[b+40>>2]=.30000001192092896;c[b+44>>2]=0;c[b>>2]=5492;c[b+48>>2]=c[g>>2];c[b+48+4>>2]=c[g+4>>2];c[b+48+8>>2]=c[g+8>>2];c[b+48+12>>2]=c[g+12>>2];c[b+64>>2]=c[g+16>>2];c[b+64+4>>2]=c[g+16+4>>2];c[b+64+8>>2]=c[g+16+8>>2];c[b+64+12>>2]=c[g+16+12>>2];c[b+80>>2]=c[g+32>>2];c[b+80+4>>2]=c[g+32+4>>2];c[b+80+8>>2]=c[g+32+8>>2];c[b+80+12>>2]=c[g+32+12>>2];c[b+96>>2]=c[g+48>>2];c[b+96+4>>2]=c[g+48+4>>2];c[b+96+8>>2]=c[g+48+8>>2];c[b+96+12>>2]=c[g+48+12>>2];c[b+112>>2]=c[h>>2];c[b+112+4>>2]=c[h+4>>2];c[b+112+8>>2]=c[h+8>>2];c[b+112+12>>2]=c[h+12>>2];c[b+128>>2]=c[h+16>>2];c[b+128+4>>2]=c[h+16+4>>2];c[b+128+8>>2]=c[h+16+8>>2];c[b+128+12>>2]=c[h+16+12>>2];c[b+144>>2]=c[h+32>>2];c[b+144+4>>2]=c[h+32+4>>2];c[b+144+8>>2]=c[h+32+8>>2];c[b+144+12>>2]=c[h+32+12>>2];c[b+160>>2]=c[h+48>>2];c[b+160+4>>2]=c[h+48+4>>2];c[b+160+8>>2]=c[h+48+8>>2];c[b+160+12>>2]=c[h+48+12>>2];g=b+680|0;h=g+48|0;do{c[g>>2]=0;g=g+4|0}while((g|0)<(h|0));c[b+740>>2]=0;c[b+740+4>>2]=0;c[b+740+8>>2]=0;c[b+740+12>>2]=0;c[b+756>>2]=1045220557;c[b+760>>2]=1045220557;c[b+764>>2]=1045220557;c[b+768>>2]=0;c[b+768+4>>2]=0;c[b+768+8>>2]=0;c[b+768+12>>2]=0;c[b+768+16>>2]=0;f[b+728>>2]=.699999988079071;f[b+732>>2]=1.0;f[b+736>>2]=.5;a[b+788>>0]=0;a[b+788+1>>0]=0;a[b+788+2>>0]=0;c[b+792>>2]=0;c[b+792+4>>2]=0;c[b+792+8>>2]=0;c[b+808>>2]=0;c[b+808+4>>2]=0;c[b+808+8>>2]=0;f[b+928>>2]=0.0;f[b+876>>2]=0.0;f[b+880>>2]=.10000000149011612;f[b+884>>2]=300.0;f[b+868>>2]=1.0;f[b+872>>2]=-1.0;f[b+896>>2]=0.0;f[b+900>>2]=.20000000298023224;f[b+904>>2]=0.0;f[b+908>>2]=0.0;f[b+888>>2]=1.0;f[b+892>>2]=.5;c[b+924>>2]=0;f[b+916>>2]=0.0;a[b+912>>0]=0;f[b+992>>2]=0.0;f[b+940>>2]=0.0;f[b+944>>2]=.10000000149011612;f[b+948>>2]=300.0;f[b+932>>2]=1.0;f[b+936>>2]=-1.0;f[b+960>>2]=0.0;f[b+964>>2]=.20000000298023224;f[b+968>>2]=0.0;f[b+972>>2]=0.0;f[b+952>>2]=1.0;f[b+956>>2]=.5;c[b+988>>2]=0;f[b+980>>2]=0.0;a[b+976>>0]=0;f[b+1056>>2]=0.0;f[b+1004>>2]=0.0;f[b+1008>>2]=.10000000149011612;f[b+1012>>2]=300.0;f[b+996>>2]=1.0;f[b+1e3>>2]=-1.0;f[b+1024>>2]=0.0;f[b+1028>>2]=.20000000298023224;f[b+1032>>2]=0.0;f[b+1036>>2]=0.0;f[b+1016>>2]=1.0;f[b+1020>>2]=.5;c[b+1052>>2]=0;f[b+1044>>2]=0.0;a[b+1040>>0]=0;a[b+1300>>0]=i&1;a[b+1301>>0]=1;c[b+1304>>2]=0;a[b+1308>>0]=0;gc(b,(c[b+28>>2]|0)+4|0,(c[b+32>>2]|0)+4|0);return}function Fd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,g=0.0,h=0,i=0,j=0.0;a=ea;ea=ea+144|0;switch(c[b+388>>2]&15){case 1:{c[a+112>>2]=4428;h=c[d+8>>2]|0;h=(c[h+236>>2]&2|0)==0?0:h;i=c[d+12>>2]|0;j=+f[i+48>>2];e=+f[i+52>>2];g=+f[i+56>>2];g=+s(+((j-j)*(j-j)+(e-e)*(e-e)+(g-g)*(g-g)));i=c[b+192>>2]|0;e=+ha[c[(c[i>>2]|0)+48>>2]&15](i);i=c[d+4>>2]|0;Pa[c[(c[i>>2]|0)+8>>2]&127](i,c[d+12>>2]|0,a+96|0,a+64|0);c[a>>2]=c[a+96>>2];c[a+4>>2]=c[a+96+4>>2];c[a+8>>2]=c[a+96+8>>2];c[a+12>>2]=c[a+96+12>>2];c[a+16>>2]=c[a+64>>2];c[a+16+4>>2]=c[a+64+4>>2];c[a+16+8>>2]=c[a+64+8>>2];c[a+16+12>>2]=c[a+64+12>>2];c[a+32>>2]=c[a>>2];c[a+32+4>>2]=c[a+4>>2];c[a+32+8>>2]=c[a+8>>2];c[a+32+12>>2]=c[a+12>>2];c[a+32+16>>2]=c[a+16>>2];c[a+32+20>>2]=c[a+20>>2];c[a+32+24>>2]=c[a+24>>2];c[a+32+28>>2]=c[a+28>>2];f[a+32>>2]=+f[a+32>>2]-e;f[a+32+4>>2]=+f[a+32+4>>2]-e;f[a+32+8>>2]=+f[a+32+8>>2]-e;f[a+32+16>>2]=e+ +f[a+32+16>>2];f[a+32+20>>2]=e+ +f[a+32+20>>2];f[a+32+24>>2]=e+ +f[a+32+24>>2];c[a+112+4>>2]=b;c[a+112+8>>2]=d;c[a+112+12>>2]=h;f[a+112+16>>2]=e+g;f[a+112+20>>2]=e;Zd(c[b+928>>2]|0,a+32|0,a+112|0);ea=a;return}case 2:{f[a+4>>2]=1.0;c[a+8+4>>2]=0;c[a+8+4+4>>2]=0;c[a+8+4+8>>2]=0;c[a>>2]=4464;c[a+24>>2]=b;c[a+28>>2]=d;c[a+8>>2]=c[b+456>>2];i=c[d+4>>2]|0;j=+ha[c[(c[i>>2]|0)+48>>2]&15](i);i=c[b+192>>2]|0;j=j+ +ha[c[(c[i>>2]|0)+48>>2]&15](i);f[a+12>>2]=j;g=+f[(c[d+8>>2]|0)+224>>2];f[a+112>>2]=g;c[a+16>>2]=c[(+f[b+316>>2]>2];i=c[d+4>>2]|0;Pa[c[(c[i>>2]|0)+8>>2]&127](i,c[d+12>>2]|0,a+112|0,a+96|0);c[a+32>>2]=c[a+112>>2];c[a+32+4>>2]=c[a+112+4>>2];c[a+32+8>>2]=c[a+112+8>>2];c[a+32+12>>2]=c[a+112+12>>2];c[a+32+16>>2]=c[a+96>>2];c[a+32+16+4>>2]=c[a+96+4>>2];c[a+32+16+8>>2]=c[a+96+8>>2];c[a+32+16+12>>2]=c[a+96+12>>2];c[a+64>>2]=c[a+32>>2];c[a+64+4>>2]=c[a+32+4>>2];c[a+64+8>>2]=c[a+32+8>>2];c[a+64+12>>2]=c[a+32+12>>2];c[a+64+16>>2]=c[a+32+16>>2];c[a+64+20>>2]=c[a+32+20>>2];c[a+64+24>>2]=c[a+32+24>>2];c[a+64+28>>2]=c[a+32+28>>2];f[a+64>>2]=+f[a+64>>2]-j;f[a+64+4>>2]=+f[a+64+4>>2]-j;f[a+64+8>>2]=+f[a+64+8>>2]-j;f[a+64+16>>2]=j+ +f[a+64+16>>2];f[a+64+20>>2]=j+ +f[a+64+20>>2];f[a+64+24>>2]=j+ +f[a+64+24>>2];Zd(c[b+1048>>2]|0,a+64|0,a);ea=a;return}default:{ea=a;return}}}function Gd(a,e,f){a=a|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;c[e+16>>2]=c[a+20>>2];c[e+20>>2]=c[a+24>>2];c[e+24>>2]=c[a+28>>2];c[e+28>>2]=c[a+32>>2];c[e>>2]=c[a+4>>2];c[e+4>>2]=c[a+8>>2];c[e+8>>2]=c[a+12>>2];c[e+12>>2]=c[a+16>>2];c[e+32>>2]=c[a+36>>2];c[e+36>>2]=c[a+40>>2];c[e+40>>2]=c[a+44>>2];c[e+44>>2]=c[a+48>>2];c[e+48>>2]=c[a+56>>2];c[e+52>>2]=d[a+60>>0];k=c[a+88>>2]|0;c[e+56>>2]=k;if(k){k=ta[c[(c[f>>2]|0)+28>>2]&31](f,c[a+96>>2]|0)|0;c[e+64>>2]=k;if(k|0){h=c[a+88>>2]|0;k=va[c[(c[f>>2]|0)+16>>2]&63](f,48,h)|0;if((h|0)>0){g=c[a+96>>2]|0;i=0;j=c[k+8>>2]|0;while(1){c[j+16>>2]=c[g+(i<<6)+16>>2];c[j+20>>2]=c[g+(i<<6)+20>>2];c[j+24>>2]=c[g+(i<<6)+24>>2];c[j+28>>2]=c[g+(i<<6)+28>>2];c[j>>2]=c[g+(i<<6)>>2];c[j+4>>2]=c[g+(i<<6)+4>>2];c[j+8>>2]=c[g+(i<<6)+8>>2];c[j+12>>2]=c[g+(i<<6)+12>>2];c[j+32>>2]=c[g+(i<<6)+32>>2];c[j+36>>2]=c[g+(i<<6)+36>>2];c[j+40>>2]=c[g+(i<<6)+40>>2];i=i+1|0;if((i|0)==(h|0))break;else j=j+48|0}}else g=c[a+96>>2]|0;Ta[c[(c[f>>2]|0)+20>>2]&31](f,k,21211,1497453121,g)}}else c[e+64>>2]=0;k=c[a+128>>2]|0;c[e+60>>2]=k;if(k){k=ta[c[(c[f>>2]|0)+28>>2]&31](f,c[a+136>>2]|0)|0;c[e+68>>2]=k;if(k|0){h=c[a+128>>2]|0;k=va[c[(c[f>>2]|0)+16>>2]&63](f,16,h)|0;if((h|0)>0){g=c[a+136>>2]|0;i=0;j=c[k+8>>2]|0;while(1){c[j+12>>2]=c[g+(i<<4)+12>>2];b[j+6>>1]=b[g+(i<<4)+6>>1]|0;b[j+8>>1]=b[g+(i<<4)+8>>1]|0;b[j+10>>1]=b[g+(i<<4)+10>>1]|0;b[j>>1]=b[g+(i<<4)>>1]|0;b[j+2>>1]=b[g+(i<<4)+2>>1]|0;b[j+4>>1]=b[g+(i<<4)+4>>1]|0;i=i+1|0;if((i|0)==(h|0))break;else j=j+16|0}}else g=c[a+136>>2]|0;Ta[c[(c[f>>2]|0)+20>>2]&31](f,k,21234,1497453121,g)}}else c[e+68>>2]=0;c[e+76>>2]=c[a+144>>2];k=c[a+152>>2]|0;c[e+80>>2]=k;if(!k){c[e+72>>2]=0;return 21278}k=ta[c[(c[f>>2]|0)+28>>2]&31](f,c[a+160>>2]|0)|0;c[e+72>>2]=k;if(!k)return 21278;j=c[a+152>>2]|0;k=va[c[(c[f>>2]|0)+16>>2]&63](f,20,j)|0;if((j|0)>0){g=c[a+160>>2]|0;h=0;i=c[k+8>>2]|0;while(1){b[i+14>>1]=b[g+(h<<5)+6>>1]|0;b[i+16>>1]=b[g+(h<<5)+8>>1]|0;b[i+18>>1]=b[g+(h<<5)+10>>1]|0;b[i+8>>1]=b[g+(h<<5)>>1]|0;b[i+10>>1]=b[g+(h<<5)+2>>1]|0;b[i+12>>1]=b[g+(h<<5)+4>>1]|0;c[i>>2]=c[g+(h<<5)+12>>2];c[i+4>>2]=c[g+(h<<5)+16>>2];h=h+1|0;if((h|0)==(j|0))break;else i=i+20|0}}else g=c[a+160>>2]|0;Ta[c[(c[f>>2]|0)+20>>2]&31](f,k,21257,1497453121,g);return 21278}function Hd(b,d,e){b=b|0;d=d|0;e=e|0;var g=0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0;g=c[b+748>>2]|0;if((g|0)<=0)return;do{k=g;g=g+-1|0;r=+f[b+4+(g*184|0)>>2];s=+f[b+4+(g*184|0)+4>>2];h=+f[b+4+(g*184|0)+8>>2];q=r*+f[d>>2]+s*+f[d+4>>2]+h*+f[d+8>>2]+ +f[d+48>>2];o=r*+f[d+16>>2]+s*+f[d+20>>2]+h*+f[d+24>>2]+ +f[d+52>>2];h=r*+f[d+32>>2]+s*+f[d+36>>2]+h*+f[d+40>>2]+ +f[d+56>>2];f[b+4+(g*184|0)+48>>2]=q;f[b+4+(g*184|0)+52>>2]=o;f[b+4+(g*184|0)+56>>2]=h;f[b+4+(g*184|0)+60>>2]=0.0;s=+f[b+4+(g*184|0)+16>>2];r=+f[b+4+(g*184|0)+20>>2];i=+f[b+4+(g*184|0)+24>>2];p=s*+f[e>>2]+r*+f[e+4>>2]+i*+f[e+8>>2]+ +f[e+48>>2];n=s*+f[e+16>>2]+r*+f[e+20>>2]+i*+f[e+24>>2]+ +f[e+52>>2];i=s*+f[e+32>>2]+r*+f[e+36>>2]+i*+f[e+40>>2]+ +f[e+56>>2];f[b+4+(g*184|0)+32>>2]=p;f[b+4+(g*184|0)+36>>2]=n;f[b+4+(g*184|0)+40>>2]=i;f[b+4+(g*184|0)+44>>2]=0.0;f[b+4+(g*184|0)+80>>2]=(q-p)*+f[b+4+(g*184|0)+64>>2]+(o-n)*+f[b+4+(g*184|0)+68>>2]+(h-i)*+f[b+4+(g*184|0)+72>>2];j=b+4+(g*184|0)+148|0;c[j>>2]=(c[j>>2]|0)+1}while((k|0)>1);g=c[b+748>>2]|0;if((g|0)<=0)return;do{k=g;g=g+-1|0;j=b+4+(g*184|0)|0;h=+f[b+4+(g*184|0)+80>>2];i=+f[b+752>>2];do if(!(h<=i)){e=b+4+(g*184|0)+112|0;d=c[e>>2]|0;if(d|0?(l=c[6719]|0,l|0):0){ra[l&127](d)|0;c[e>>2]=0}d=(c[b+748>>2]|0)+-1|0;if((d|0)==(g|0))d=g;else{vh(j|0,b+4+(d*184|0)|0,184)|0;c[b+4+(d*184|0)+112>>2]=0;f[b+4+(d*184|0)+120>>2]=0.0;a[b+4+(d*184|0)+116>>0]=0;f[b+4+(d*184|0)+124>>2]=0.0;f[b+4+(d*184|0)+128>>2]=0.0;c[b+4+(d*184|0)+148>>2]=0;d=(c[b+748>>2]|0)+-1|0}c[b+748>>2]=d}else{q=+f[b+4+(g*184|0)+32>>2]-(+f[b+4+(g*184|0)+48>>2]-+f[b+4+(g*184|0)+64>>2]*h);r=+f[b+4+(g*184|0)+36>>2]-(+f[b+4+(g*184|0)+52>>2]-h*+f[b+4+(g*184|0)+68>>2]);s=+f[b+4+(g*184|0)+40>>2]-(+f[b+4+(g*184|0)+56>>2]-h*+f[b+4+(g*184|0)+72>>2]);if(!(q*q+r*r+s*s>i*i)){d=c[6720]|0;if(!d)break;va[d&63](j,c[b+740>>2]|0,c[b+744>>2]|0)|0;break}e=b+4+(g*184|0)+112|0;d=c[e>>2]|0;if(d|0?(m=c[6719]|0,m|0):0){ra[m&127](d)|0;c[e>>2]=0}d=(c[b+748>>2]|0)+-1|0;if((d|0)==(g|0))d=g;else{vh(j|0,b+4+(d*184|0)|0,184)|0;c[b+4+(d*184|0)+112>>2]=0;f[b+4+(d*184|0)+120>>2]=0.0;a[b+4+(d*184|0)+116>>0]=0;f[b+4+(d*184|0)+124>>2]=0.0;f[b+4+(d*184|0)+128>>2]=0.0;c[b+4+(d*184|0)+148>>2]=0;d=(c[b+748>>2]|0)+-1|0}c[b+748>>2]=d}while(0)}while((k|0)>1);return}function Id(a,d,g,h,i){a=a|0;d=d|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0,t=0.0,u=0.0,v=0.0,w=0.0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;c[d+16>>2]=c[g>>2];c[d+16+4>>2]=c[g+4>>2];c[d+16+8>>2]=c[g+8>>2];c[d+16+12>>2]=c[g+12>>2];c[d+32>>2]=c[h>>2];c[d+32+4>>2]=c[h+4>>2];c[d+32+8>>2]=c[h+8>>2];c[d+32+12>>2]=c[h+12>>2];B=c[a+60>>2]|0;D=c[d+12>>2]&65535;q=+f[a+8>>2];t=+f[a+12>>2];w=+f[a+16>>2];r=+f[a+40>>2];n=(+f[g>>2]-q)*r;u=+f[a+44>>2];o=(+f[g+4>>2]-t)*u;v=+f[a+48>>2];p=(+f[g+8>>2]-w)*v;if(!(n<=0.0)){z=b[a+6>>1]|0;z=b[a+4>>1]&(!(n>=+(z&65535))?~~n&65535:z)}else z=0;if(!(o<=0.0)){A=b[a+6>>1]|0;A=b[a+4>>1]&(!(o>=+(A&65535))?~~o&65535:A)}else A=0;if(!(p<=0.0)){C=b[a+6>>1]|0;C=b[a+4>>1]&(!(p>=+(C&65535))?~~p&65535:C)}else C=0;p=(+f[h>>2]-q)*r;o=(+f[h+4>>2]-t)*u;n=(+f[h+8>>2]-w)*v;if(!(p<=0.0)){s=b[a+6>>1]|0;s=b[a+4>>1]&(!(p>=+(s&65535))?~~p&65535:s)|1}else s=1;if(!(o<=0.0)){x=b[a+6>>1]|0;x=b[a+4>>1]&(!(o>=+(x&65535))?~~o&65535:x)|1}else x=1;if(!(n<=0.0)){y=b[a+6>>1]|0;y=b[a+4>>1]&(!(n>=+(y&65535))?~~n&65535:y)|1}else y=1;j=b[B+(D<<6)+48>>1]|0;k=b[B+(D<<6)+54>>1]|0;E=c[a+68>>2]|0;l=(z&65535)-(e[E+((j&65535)<<2)>>1]|0)|0;m=(s&65535)-(e[E+((k&65535)<<2)>>1]|0)|0;b[E+((j&65535)<<2)>>1]=z;b[E+((k&65535)<<2)>>1]=s;if((l|0)<0)Fg(a,0,j);if((m|0)>0)Cg(a,0,k);if((l|0)>0)Ag(a,0,j,i);if((m|0)<0)zg(a,0,k,i);j=b[B+(D<<6)+50>>1]|0;k=b[B+(D<<6)+56>>1]|0;E=c[a+72>>2]|0;l=(A&65535)-(e[E+((j&65535)<<2)>>1]|0)|0;m=(x&65535)-(e[E+((k&65535)<<2)>>1]|0)|0;b[E+((j&65535)<<2)>>1]=A;b[E+((k&65535)<<2)>>1]=x;if((l|0)<0)Fg(a,1,j);if((m|0)>0)Cg(a,1,k);if((l|0)>0)Ag(a,1,j,i);if((m|0)<0)zg(a,1,k,i);m=b[B+(D<<6)+52>>1]|0;j=b[B+(D<<6)+58>>1]|0;E=c[a+76>>2]|0;k=(C&65535)-(e[E+((m&65535)<<2)>>1]|0)|0;l=(y&65535)-(e[E+((j&65535)<<2)>>1]|0)|0;b[E+((m&65535)<<2)>>1]=C;b[E+((j&65535)<<2)>>1]=y;if((k|0)<0)Fg(a,2,m);if((l|0)>0)Cg(a,2,j);if((k|0)>0)Ag(a,2,m,i);if((l|0)<0)zg(a,2,j,i);j=c[a+108>>2]|0;if(!j)return;Ta[c[(c[j>>2]|0)+16>>2]&31](j,c[d+60>>2]|0,g,h,i);return}function Jd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,g=0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0.0,q=0.0,r=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0;z=+f[a+452>>2];u=+f[a+304>>2];r=+f[a+300>>2];if(u>0.0|r>0.0)g=(c[a+288>>2]|0)<4;else g=0;E=c[a+720>>2]|0;C=+f[E+(d*104|0)+88>>2];if(!(C>0.0))return;o=c[c[a+684>>2]>>2]|0;if(!g)return;D=+f[E+(d*104|0)+40>>2];m=D-+f[b>>2];A=+f[E+(d*104|0)+44>>2];n=A-+f[b+4>>2];B=+f[E+(d*104|0)+48>>2];l=B-+f[b+8>>2];k=+s(+(m*m+n*n+l*l));if(!(m*m+n*n+l*l>1.1920928955078125e-07))return;v=m*(1.0/k);x=n*(1.0/k);y=l*(1.0/k);q=+f[E+(d*104|0)+72>>2];t=+f[E+(d*104|0)+76>>2];w=+f[E+(d*104|0)+80>>2];switch(c[a+288>>2]|0){case 2:{p=m*q+n*t+l*w<0.0?-1.0:1.0;i=y*(w*p)+(v*(q*p)+x*(t*p));j=+f[E+(d*104|0)+92>>2]*.5;e=(c[h>>2]=o,+f[h>>2]);n=i*(r*.5*e*(m*m+n*n+l*l)*j);if(i>0.0&i<.9847999811172485){k=+s(+(1.0-i*i))*(u*.5*e*k*j);l=(y*(v*(w*p)-y*(q*p))-x*(x*(q*p)-v*(t*p)))*k;m=(v*(x*(q*p)-v*(t*p))-y*(y*(t*p)-x*(w*p)))*k;k=(x*(y*(t*p)-x*(w*p))-v*(v*(w*p)-y*(q*p)))*k}else{l=0.0;m=0.0;k=0.0}e=z*(C*-(y*n))*(z*(C*-(y*n)))+(z*(C*-(v*n))*(z*(C*-(v*n)))+z*(C*-(x*n))*(z*(C*-(x*n))));if(e>0.0?e>=D*D+A*A+B*B:0){e=+s(+(D*D+A*A+B*B))/+s(+e)*.800000011920929;j=e*-(v*n);i=e*-(y*n);e=e*-(x*n)}else{j=-(v*n);i=-(y*n);e=-(x*n)}C=e+ +f[E+(d*104|0)+60>>2];D=i+ +f[E+(d*104|0)+64>>2];f[E+(d*104|0)+56>>2]=l+(j+ +f[E+(d*104|0)+56>>2]);f[E+(d*104|0)+60>>2]=m+C;f[E+(d*104|0)+64>>2]=k+D;return}case 1:case 3:case 0:{e=m*q+n*t+l*w<0.0?-1.0:1.0;if(!(l*(w*e)+(m*(q*e)+n*(t*e))>0.0))return;p=-((m*m+n*n+l*l)*((l*(w*e)+(m*(q*e)+n*(t*e)))*+f[E+(d*104|0)+92>>2])*.5*(c[h>>2]=o,+f[h>>2]));j=v*(r*p)+(q*e*(u*p)+0.0);i=x*(r*p)+(t*e*(u*p)+0.0);e=y*(r*p)+(w*e*(u*p)+0.0);if(z*C*e*(z*C*e)+(z*C*j*(z*C*j)+z*C*i*(z*C*i))>D*D+A*A+B*B){y=1.0/+s(+(e*e+(j*j+i*i)));f[E+(d*104|0)+56>>2]=+f[E+(d*104|0)+56>>2]-1.0/(z*C)*(j*y*(B*(e*y)+(D*(j*y)+A*(i*y))));f[E+(d*104|0)+60>>2]=+f[E+(d*104|0)+60>>2]-1.0/(z*C)*(i*y*(B*(e*y)+(D*(j*y)+A*(i*y))));f[E+(d*104|0)+64>>2]=+f[E+(d*104|0)+64>>2]-1.0/(z*C)*(e*y*(B*(e*y)+(D*(j*y)+A*(i*y))));return}else{f[E+(d*104|0)+56>>2]=j+ +f[E+(d*104|0)+56>>2];f[E+(d*104|0)+60>>2]=i+ +f[E+(d*104|0)+60>>2];f[E+(d*104|0)+64>>2]=e+ +f[E+(d*104|0)+64>>2];return}}default:return}}function Kd(b,d,e){b=b|0;d=d|0;e=e|0;var g=0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0;g=Bs()|0;Jk();c[g+4>>2]=7;c[g+8>>2]=-1;c[g+12>>2]=-1;f[g+16>>2]=3402823466385288598117041.0e14;a[g+20>>0]=1;a[g+21>>0]=0;c[g+24>>2]=-1;c[g+28>>2]=25640;c[g+32>>2]=b;f[g+36>>2]=0.0;f[g+40>>2]=.30000001192092896;c[g+44>>2]=0;c[g>>2]=5712;a[g+48>>0]=0;c[g+116>>2]=c[d>>2];c[g+116+4>>2]=c[d+4>>2];c[g+116+8>>2]=c[d+8>>2];c[g+116+12>>2]=c[d+12>>2];c[g+132>>2]=c[d+16>>2];c[g+132+4>>2]=c[d+16+4>>2];c[g+132+8>>2]=c[d+16+8>>2];c[g+132+12>>2]=c[d+16+12>>2];c[g+148>>2]=c[d+32>>2];c[g+148+4>>2]=c[d+32+4>>2];c[g+148+8>>2]=c[d+32+8>>2];c[g+148+12>>2]=c[d+32+12>>2];c[g+164>>2]=c[d+48>>2];c[g+164+4>>2]=c[d+48+4>>2];c[g+164+8>>2]=c[d+48+8>>2];c[g+164+12>>2]=c[d+48+12>>2];a[g+180>>0]=e&1;v=+f[g+116>>2];B=+f[b+4>>2];u=+f[g+132>>2];A=+f[b+8>>2];t=+f[g+148>>2];z=+f[b+12>>2];s=+f[g+120>>2];r=+f[g+136>>2];q=+f[g+152>>2];p=+f[g+124>>2];n=+f[g+140>>2];l=+f[g+156>>2];y=+f[b+20>>2];x=+f[b+24>>2];w=+f[b+28>>2];o=+f[b+36>>2];m=+f[b+40>>2];k=+f[b+44>>2];D=+f[g+164>>2];C=+f[g+168>>2];h=+f[g+172>>2];j=+f[b+52>>2]+(B*D+A*C+z*h);i=y*D+x*C+w*h+ +f[b+56>>2];h=o*D+m*C+k*h+ +f[b+60>>2];f[g+52>>2]=v*B+u*A+t*z;f[g+56>>2]=B*s+A*r+z*q;f[g+60>>2]=B*p+A*n+z*l;f[g+64>>2]=0.0;f[g+68>>2]=v*y+u*x+t*w;f[g+72>>2]=s*y+r*x+q*w;f[g+76>>2]=p*y+n*x+l*w;f[g+80>>2]=0.0;f[g+84>>2]=v*o+u*m+t*k;f[g+88>>2]=s*o+r*m+q*k;f[g+92>>2]=p*o+n*m+l*k;f[g+96>>2]=0.0;f[g+100>>2]=j;f[g+104>>2]=i;f[g+108>>2]=h;f[g+112>>2]=0.0;f[g+184>>2]=1.0;f[g+188>>2]=-1.0;f[g+192>>2]=0.0;f[g+196>>2]=0.0;f[g+200>>2]=1.0;f[g+204>>2]=.699999988079071;f[g+208>>2]=0.0;f[g+212>>2]=0.0;f[g+216>>2]=1.0;f[g+220>>2]=.699999988079071;f[g+224>>2]=0.0;f[g+228>>2]=0.0;f[g+264>>2]=1.0;f[g+268>>2]=.699999988079071;f[g+272>>2]=1.0;f[g+276>>2]=0.0;f[g+280>>2]=1.0;f[g+284>>2]=.699999988079071;f[g+288>>2]=1.0;f[g+292>>2]=0.0;f[g+232>>2]=1.0;f[g+236>>2]=.699999988079071;f[g+240>>2]=1.0;f[g+244>>2]=0.0;f[g+248>>2]=1.0;f[g+252>>2]=.699999988079071;f[g+256>>2]=1.0;f[g+260>>2]=0.0;a[g+1096>>0]=0;f[g+1116>>2]=0.0;f[g+1120>>2]=0.0;f[g+1124>>2]=0.0;c[g+300>>2]=0;c[g+1100>>2]=0;c[g+1100+4>>2]=0;c[g+1100+8>>2]=0;a[g+1100+12>>0]=0;a[g+49>>0]=1;Zb(g,(c[g+28>>2]|0)+4|0,(c[g+32>>2]|0)+4|0);return g|0}function Ld(a,b,d,e,g,h,i,j){a=a|0;b=b|0;d=d|0;e=+e;g=+g;h=+h;i=i|0;j=j|0;var k=0,l=0,m=0,n=0.0,o=0,p=0.0,q=0.0,r=0.0,t=0.0,u=0.0,v=0,w=0,x=0,y=0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0;U=ea;ea=ea+32|0;Q=+f[d>>2];S=+f[d+4>>2];R=+f[d+8>>2];r=+f[i>>2];t=+f[i+4>>2];u=+f[i+8>>2];n=+f[j>>2];p=+f[j+4>>2];q=+f[j+8>>2];J=1.0/+s(+((e-Q)*(e-Q)+(g-S)*(g-S)+(h-R)*(h-R)));G=(e-Q)*J==0.0?999999984306749440.0:1.0/((e-Q)*J);H=(g-S)*J==0.0?999999984306749440.0:1.0/((g-S)*J);I=(h-R)*J==0.0?999999984306749440.0:1.0/((h-R)*J);B=(Q>e?e:Q)+r;F=(S>g?g:S)+t;D=(R>h?h:R)+u;A=(Q>2]|0;a:do if((l|0)>0){x=0;y=c[a+96>>2]|0;k=0;while(1){k=k+1|0;c[U>>2]=c[y>>2];c[U+4>>2]=c[y+4>>2];c[U+8>>2]=c[y+8>>2];c[U+12>>2]=c[y+12>>2];w=y+16|0;c[U+16>>2]=c[w>>2];c[U+16+4>>2]=c[w+4>>2];c[U+16+8>>2]=c[w+8>>2];c[U+16+12>>2]=c[w+12>>2];f[U>>2]=+f[U>>2]-n;f[U+4>>2]=+f[U+4>>2]-p;f[U+8>>2]=+f[U+8>>2]-q;f[U+16>>2]=+f[U+16>>2]-r;f[U+20>>2]=+f[U+20>>2]-t;f[U+24>>2]=+f[U+24>>2]-u;if(!(B>+f[w>>2])?!(A<+f[y>>2]):0)m=1;else m=0;if(!(!(D>+f[y+24>>2])?!(C<+f[y+8>>2]):0))m=0;if(((!(F>+f[y+20>>2])?!(E<+f[y+4>>2]|m^1):0)?(L=+f[d>>2],K=G*(+f[U+((G<0.0&1)<<4)>>2]-L),L=G*(+f[U+(((G<0.0^1)&1)<<4)>>2]-L),N=+f[d+4>>2],M=H*(+f[U+((H<0.0&1)<<4)+4>>2]-N),N=H*(+f[U+(((H<0.0^1)&1)<<4)+4>>2]-N),!(M>L|K>N)):0)?(z=M>K?M:K,T=N>2],O=I*(+f[U+((I<0.0&1)<<4)+8>>2]-P),P=I*(+f[U+(((I<0.0^1)&1)<<4)+8>>2]-P),!(O>T|z>P)):0){o=(P0.0?(O>z?O:z)<(h-R)*((h-R)*J)+((e-Q)*((e-Q)*J)+(g-S)*((g-S)*J)):0;m=c[y+32>>2]|0;if(o&(m|0)==-1){Ma[c[(c[b>>2]|0)+8>>2]&127](b,c[y+36>>2]|0,c[y+40>>2]|0);l=c[a+56>>2]|0;w=17}else{v=m;m=(m|0)==-1;w=16}}else{m=c[y+32>>2]|0;v=m;m=(m|0)==-1;o=0;w=16}if((w|0)==16){w=0;if(m|o)w=17;else{o=v+x|0;m=y+(v<<6)|0}}if((w|0)==17){o=x+1|0;m=y+64|0}if((o|0)>=(l|0))break a;n=+f[j>>2];p=+f[j+4>>2];q=+f[j+8>>2];r=+f[i>>2];t=+f[i+4>>2];u=+f[i+8>>2];x=o;y=m}}else k=0;while(0);if((c[6727]|0)>=(k|0)){ea=U;return}c[6727]=k;ea=U;return}function Md(a,b){a=a|0;b=b|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0;if(!(c[a+204>>2]&2)){c[a+68>>2]=c[b>>2];c[a+68+4>>2]=c[b+4>>2];c[a+68+8>>2]=c[b+8>>2];c[a+68+12>>2]=c[b+12>>2];c[a+84>>2]=c[b+16>>2];c[a+84+4>>2]=c[b+16+4>>2];c[a+84+8>>2]=c[b+16+8>>2];c[a+84+12>>2]=c[b+16+12>>2];c[a+100>>2]=c[b+32>>2];c[a+100+4>>2]=c[b+32+4>>2];c[a+100+8>>2]=c[b+32+8>>2];c[a+100+12>>2]=c[b+32+12>>2];c[a+116>>2]=c[b+48>>2];c[a+116+4>>2]=c[b+48+4>>2];c[a+116+8>>2]=c[b+48+8>>2];c[a+116+12>>2]=c[b+48+12>>2];e=b;g=a+20|0;h=b+16|0;i=a+36|0;j=b+32|0;k=a+52|0;b=b+48|0;d=a+4|0}else{c[a+68>>2]=c[a+4>>2];c[a+68+4>>2]=c[a+4+4>>2];c[a+68+8>>2]=c[a+4+8>>2];c[a+68+12>>2]=c[a+4+12>>2];c[a+84>>2]=c[a+20>>2];c[a+84+4>>2]=c[a+20+4>>2];c[a+84+8>>2]=c[a+20+8>>2];c[a+84+12>>2]=c[a+20+12>>2];c[a+100>>2]=c[a+36>>2];c[a+100+4>>2]=c[a+36+4>>2];c[a+100+8>>2]=c[a+36+8>>2];c[a+100+12>>2]=c[a+36+12>>2];c[a+116>>2]=c[a+52>>2];c[a+116+4>>2]=c[a+52+4>>2];c[a+116+8>>2]=c[a+52+8>>2];c[a+116+12>>2]=c[a+52+12>>2];e=b;g=a+20|0;h=b+16|0;i=a+36|0;j=b+32|0;k=a+52|0;b=b+48|0;d=a+4|0}c[a+132>>2]=c[a+312>>2];c[a+132+4>>2]=c[a+312+4>>2];c[a+132+8>>2]=c[a+312+8>>2];c[a+132+12>>2]=c[a+312+12>>2];c[a+148>>2]=c[a+328>>2];c[a+148+4>>2]=c[a+328+4>>2];c[a+148+8>>2]=c[a+328+8>>2];c[a+148+12>>2]=c[a+328+12>>2];c[d>>2]=c[e>>2];c[d+4>>2]=c[e+4>>2];c[d+8>>2]=c[e+8>>2];c[d+12>>2]=c[e+12>>2];c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];c[g+12>>2]=c[h+12>>2];c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];c[i+8>>2]=c[j+8>>2];c[i+12>>2]=c[j+12>>2];c[k>>2]=c[b>>2];c[k+4>>2]=c[b+4>>2];c[k+8>>2]=c[b+8>>2];c[k+12>>2]=c[b+12>>2];w=+f[a+4>>2];q=+f[a+396>>2];v=+f[a+8>>2];o=+f[a+400>>2];u=+f[a+12>>2];m=+f[a+404>>2];t=+f[a+20>>2];s=+f[a+24>>2];r=+f[a+28>>2];p=+f[a+36>>2];n=+f[a+40>>2];l=+f[a+44>>2];f[a+264>>2]=w*(w*q)+v*(v*o)+u*(u*m);f[a+268>>2]=w*q*t+v*o*s+u*m*r;f[a+272>>2]=w*q*p+v*o*n+u*m*l;f[a+276>>2]=0.0;f[a+280>>2]=w*(q*t)+v*(o*s)+u*(m*r);f[a+284>>2]=t*(q*t)+s*(o*s)+r*(m*r);f[a+288>>2]=q*t*p+o*s*n+m*r*l;f[a+292>>2]=0.0;f[a+296>>2]=w*(q*p)+v*(o*n)+u*(m*l);f[a+300>>2]=t*(q*p)+s*(o*n)+r*(m*l);f[a+304>>2]=p*(q*p)+n*(o*n)+l*(m*l);f[a+308>>2]=0.0;return}function Nd(a){a=a|0;var b=0,d=0,e=0,g=0,i=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;d=ea;ea=ea+144|0;f[a+36>>2]=0.0;c[d+128>>2]=0;c[d+128+4>>2]=0;c[d+128+8>>2]=0;c[d+128+12>>2]=0;b=0;do{e=d+128+(b<<2)|0;f[e>>2]=1.0;i=c[a+28>>2]|0;H=c[i+4>>2]|0;c[d+80>>2]=H;E=c[i+20>>2]|0;c[d+80+4>>2]=E;B=c[i+36>>2]|0;c[d+80+8>>2]=B;f[d+80+12>>2]=0.0;G=c[i+8>>2]|0;c[d+80+16>>2]=G;D=c[i+24>>2]|0;c[d+80+20>>2]=D;A=c[i+40>>2]|0;c[d+80+24>>2]=A;f[d+80+28>>2]=0.0;F=c[i+12>>2]|0;c[d+80+32>>2]=F;C=c[i+28>>2]|0;c[d+80+36>>2]=C;z=c[i+44>>2]|0;c[d+80+40>>2]=z;f[d+80+44>>2]=0.0;g=c[a+32>>2]|0;y=c[g+4>>2]|0;c[d+32>>2]=y;v=c[g+20>>2]|0;c[d+32+4>>2]=v;s=c[g+36>>2]|0;c[d+32+8>>2]=s;f[d+32+12>>2]=0.0;x=c[g+8>>2]|0;c[d+32+16>>2]=x;u=c[g+24>>2]|0;c[d+32+20>>2]=u;r=c[g+40>>2]|0;c[d+32+24>>2]=r;f[d+32+28>>2]=0.0;w=c[g+12>>2]|0;c[d+32+32>>2]=w;t=c[g+28>>2]|0;c[d+32+36>>2]=t;o=c[g+44>>2]|0;c[d+32+40>>2]=o;f[d+32+44>>2]=0.0;p=+f[a+300>>2];l=p*(c[h>>2]=H,+f[h>>2]);j=+f[a+304>>2];l=l+j*(c[h>>2]=G,+f[h>>2]);k=+f[a+308>>2];l=l+k*(c[h>>2]=F,+f[h>>2]);q=p*(c[h>>2]=E,+f[h>>2]);q=q+j*(c[h>>2]=D,+f[h>>2]);q=q+k*(c[h>>2]=C,+f[h>>2]);p=p*(c[h>>2]=B,+f[h>>2]);j=p+j*(c[h>>2]=A,+f[h>>2]);p=+f[i+52>>2];n=+f[i+56>>2];m=+f[i+60>>2];m=j+k*(c[h>>2]=z,+f[h>>2])+m-m;f[d+16>>2]=l+p-p;f[d+16+4>>2]=q+n-n;f[d+16+8>>2]=m;f[d+16+12>>2]=0.0;m=+f[a+316>>2];n=m*(c[h>>2]=y,+f[h>>2]);q=+f[a+320>>2];n=n+q*(c[h>>2]=x,+f[h>>2]);p=+f[a+324>>2];n=n+p*(c[h>>2]=w,+f[h>>2]);l=m*(c[h>>2]=v,+f[h>>2]);l=l+q*(c[h>>2]=u,+f[h>>2]);l=l+p*(c[h>>2]=t,+f[h>>2]);m=m*(c[h>>2]=s,+f[h>>2]);q=m+q*(c[h>>2]=r,+f[h>>2]);m=+f[g+52>>2];k=+f[g+56>>2];j=+f[g+60>>2];j=q+p*(c[h>>2]=o,+f[h>>2])+j-j;f[d>>2]=n+m-m;f[d+4>>2]=l+k-k;f[d+8>>2]=j;f[d+12>>2]=0.0;_f(a+48+(b*84|0)|0,d+80|0,d+32|0,d+16|0,d,d+128|0,i+396|0,+f[i+344>>2],g+396|0,+f[g+344>>2]);f[e>>2]=0.0;b=b+1|0}while((b|0)!=3);ea=d;return}function Od(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0,h=0.0,i=0.0,j=0.0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0.0,r=0.0,t=0.0,w=0.0,x=0.0,y=0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0,F=0,G=0,H=0.0;a:while(1){F=c[e+12>>2]|0;if((b|0)>0){h=+f[d>>2];i=+f[d+4>>2];j=+f[d+8>>2];k=0;g=-1;do{do if(c[F+(k<<2)>>2]|0){if((g|0)!=-1?!(h*+f[a+(k<<4)>>2]+i*+f[a+(k<<4)+4>>2]+j*+f[a+(k<<4)+8>>2]>h*+f[a+(g<<4)>>2]+i*+f[a+(g<<4)+4>>2]+j*+f[a+(g<<4)+8>>2]):0)break;g=k}while(0);k=k+1|0}while((k|0)!=(b|0))}else g=-1;E=F+(g<<2)|0;if((c[E>>2]|0)==3){G=40;break}z=+f[d+4>>2];A=+f[d+8>>2];B=+f[d>>2];h=+s(+((z-A*0.0)*(z-A*0.0)+(A*0.0-B)*(A*0.0-B)+(B*0.0-z*0.0)*(B*0.0-z*0.0)));i=+s(+((B-z*0.0)*(B-z*0.0)+((z*0.0-A)*(z*0.0-A)+(A*0.0-B*0.0)*(A*0.0-B*0.0))));if(h>i){C=(z-A*0.0)*(1.0/h);D=(B*0.0-z*0.0)*(1.0/h);x=(A*0.0-B)*(1.0/h)}else{C=(z*0.0-A)*(1.0/i);D=(B-z*0.0)*(1.0/i);x=(A*0.0-B*0.0)*(1.0/i)}r=A*x-z*D;t=B*D-A*C;w=z*C-B*x;p=(g|0)==-1;k=-1;y=0;while(1){q=+(y|0);o=+v(+(q*.01745329238474369));i=+u(+(q*.01745329238474369));h=B+(C*o+r*i)*.02500000037252903;j=z+(x*o+t*i)*.02500000037252903;i=A+(D*o+w*i)*.02500000037252903;if((b|0)>0){m=0;l=-1;do{do if(c[F+(m<<2)>>2]|0){if((l|0)!=-1?!(h*+f[a+(m<<4)>>2]+j*+f[a+(m<<4)+4>>2]+i*+f[a+(m<<4)+8>>2]>h*+f[a+(l<<4)>>2]+j*+f[a+(l<<4)+4>>2]+i*+f[a+(l<<4)+8>>2]):0)break;l=m}while(0);m=m+1|0}while((m|0)!=(b|0))}else l=-1;if((k|0)==(g|0)&(l|0)==(g|0))break a;b:do if(!((k|0)==-1|(k|0)==(l|0))?q+-40.0<=q:0){if((b|0)<=0){h=q+-40.0;while(1){if((k|0)==(g|0)&p){g=-1;break a}h=h+5.0;if(!(h<=q))break b;else k=-1}}o=q+-40.0;while(1){i=o*.01745329238474369;H=+v(+i);i=+u(+i);h=B+(C*H+r*i)*.02500000037252903;j=z+(x*H+t*i)*.02500000037252903;i=A+(D*H+w*i)*.02500000037252903;n=0;m=-1;do{do if(c[F+(n<<2)>>2]|0){if((m|0)!=-1?!(h*+f[a+(n<<4)>>2]+j*+f[a+(n<<4)+4>>2]+i*+f[a+(n<<4)+8>>2]>h*+f[a+(m<<4)>>2]+j*+f[a+(m<<4)+4>>2]+i*+f[a+(m<<4)+8>>2]):0)break;m=n}while(0);n=n+1|0}while((n|0)!=(b|0));if((k|0)==(g|0)&(m|0)==(g|0))break a;o=o+5.0;if(!(o<=q))break;else k=m}}while(0);y=y+45|0;if(y>>>0>360)break;else k=l}c[E>>2]=0}if((G|0)==40)return g|0;c[E>>2]=3;G=g;return G|0}function Pd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,g=0,h=0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0;h=ea;ea=ea+160|0;e=c[a+4>>2]|0;g=c[e+12>>2]|0;C=+f[g>>2];B=+f[g+4>>2];A=+f[g+8>>2];z=+f[g+16>>2];y=+f[g+20>>2];x=+f[g+24>>2];q=+f[g+32>>2];o=+f[g+36>>2];m=+f[g+40>>2];e=c[(c[e+4>>2]|0)+24>>2]|0;w=+f[e+(d*80|0)>>2];v=+f[e+(d*80|0)+16>>2];u=+f[e+(d*80|0)+32>>2];t=+f[e+(d*80|0)+4>>2];s=+f[e+(d*80|0)+20>>2];r=+f[e+(d*80|0)+36>>2];p=+f[e+(d*80|0)+8>>2];n=+f[e+(d*80|0)+24>>2];l=+f[e+(d*80|0)+40>>2];E=+f[e+(d*80|0)+48>>2];D=+f[e+(d*80|0)+52>>2];i=+f[e+(d*80|0)+56>>2];k=+f[g+48>>2]+(C*E+B*D+A*i);j=+f[g+52>>2]+(z*E+y*D+x*i);i=+f[g+56>>2]+(q*E+o*D+m*i);f[h+88>>2]=C*w+B*v+A*u;f[h+88+4>>2]=C*t+B*s+A*r;f[h+88+8>>2]=C*p+B*n+A*l;f[h+88+12>>2]=0.0;f[h+88+16>>2]=z*w+y*v+x*u;f[h+88+20>>2]=z*t+y*s+x*r;f[h+88+24>>2]=z*p+y*n+x*l;f[h+88+28>>2]=0.0;f[h+88+32>>2]=q*w+o*v+m*u;f[h+88+36>>2]=q*t+o*s+m*r;f[h+88+40>>2]=q*p+o*n+m*l;f[h+88+44>>2]=0.0;f[h+88+48>>2]=k;f[h+88+52>>2]=j;f[h+88+56>>2]=i;f[h+88+60>>2]=0.0;Pa[c[(c[b>>2]|0)+8>>2]&127](b,h+88|0,h+72|0,h+56|0);g=c[a+8>>2]|0;e=c[g+4>>2]|0;Pa[c[(c[e>>2]|0)+8>>2]&127](e,c[g+12>>2]|0,h+40|0,h+24|0);if(!(+f[h+72>>2]>+f[h+24>>2])?!(+f[h+56>>2]<+f[h+40>>2]):0)e=1;else e=0;if(!(!(+f[h+72+8>>2]>+f[h+24+8>>2])?!(+f[h+56+8>>2]<+f[h+40+8>>2]):0))e=0;if(+f[h+72+4>>2]>+f[h+24+4>>2]){ea=h;return}if(+f[h+56+4>>2]<+f[h+40+4>>2]|e^1){ea=h;return}e=c[a+4>>2]|0;g=c[e+8>>2]|0;c[h>>2]=e;c[h+4>>2]=b;c[h+8>>2]=g;c[h+12>>2]=h+88;c[h+16>>2]=-1;c[h+20>>2]=d;if(!(c[(c[a+24>>2]|0)+(d<<2)>>2]|0)){g=c[a+12>>2]|0;g=wa[c[(c[g>>2]|0)+8>>2]&31](g,h,c[a+8>>2]|0,c[a+28>>2]|0)|0;c[(c[a+24>>2]|0)+(d<<2)>>2]=g;g=(c[a+4>>2]|0)+8|0}else g=e+8|0;b=c[a+20>>2]|0;e=c[b+8>>2]|0;if((c[e+8>>2]|0)==(c[g>>2]|0)){c[b+8>>2]=h;Ma[c[(c[b>>2]|0)+8>>2]&127](b,-1,d)}else{e=c[b+12>>2]|0;c[b+12>>2]=h;Ma[c[(c[b>>2]|0)+12>>2]&127](b,-1,d)}d=c[(c[a+24>>2]|0)+(d<<2)>>2]|0;Ta[c[(c[d>>2]|0)+8>>2]&31](d,h,c[a+8>>2]|0,c[a+16>>2]|0,c[a+20>>2]|0);d=c[a+20>>2]|0;c[((c[(c[d+8>>2]|0)+8>>2]|0)==(c[(c[a+4>>2]|0)+8>>2]|0)?d+8|0:d+12|0)>>2]=e;ea=h;return}function Qd(){if(a[24992]|0)return;if(!(DC(24992)|0))return;c[5948]=0;c[5949]=-2147483648;c[5950]=-1082130432;f[5951]=0.0;c[5952]=1060716128;c[5953]=-1090087446;c[5954]=-1092290076;f[5955]=0.0;c[5956]=-1098022214;c[5957]=-1084636126;c[5958]=-1092290076;f[5959]=0.0;c[5960]=-1083901670;c[5961]=-2147483648;c[5962]=-1092290177;f[5963]=0.0;c[5964]=-1098022214;c[5965]=1062847522;c[5966]=-1092290043;f[5967]=0.0;c[5968]=1060716128;c[5969]=1057396202;c[5970]=-1092290076;f[5971]=0.0;c[5972]=1049461434;c[5973]=-1084636126;c[5974]=1055193605;f[5975]=0.0;c[5976]=-1086767520;c[5977]=-1090087446;c[5978]=1055193572;f[5979]=0.0;c[5980]=-1086767520;c[5981]=1057396202;c[5982]=1055193572;f[5983]=0.0;c[5984]=1049461434;c[5985]=1062847522;c[5986]=1055193572;f[5987]=0.0;c[5988]=1063581978;c[5989]=0;c[5990]=1055193471;f[5991]=0.0;c[5992]=-2147483648;c[5993]=0;c[5994]=1065353216;f[5995]=0.0;c[5996]=1054458864;c[5997]=-1096927567;c[5998]=-1084636042;f[5999]=0.0;c[6e3]=-1104782626;c[6001]=-1090519208;c[6002]=-1084636042;f[6003]=0.0;c[6004]=1049007812;c[6005]=-1085334679;c[6006]=-1090087228;f[6007]=0.0;c[6008]=1054458864;c[6009]=1050556081;c[6010]=-1084636042;f[6011]=0.0;c[6012]=1062847505;c[6013]=-2147483648;c[6014]=-1090087262;f[6015]=0.0;c[6016]=-1090087362;c[6017]=-2147483648;c[6018]=-1084636076;f[6019]=0.0;c[6020]=-1087361736;c[6021]=-1090519141;c[6022]=-1090087262;f[6023]=0.0;c[6024]=-1104782626;c[6025]=1056964440;c[6026]=-1084636042;f[6027]=0.0;c[6028]=-1087361736;c[6029]=1056964507;c[6030]=-1090087262;f[6031]=0.0;c[6032]=1049007812;c[6033]=1062148969;c[6034]=-1090087228;f[6035]=0.0;c[6036]=1064532105;c[6037]=1050556148;c[6038]=0;f[6039]=0.0;c[6040]=1064532105;c[6041]=-1096927500;c[6042]=0;f[6043]=0.0;c[6044]=1058437413;c[6045]=-1085334595;c[6046]=0;f[6047]=0.0;c[6048]=0;c[6049]=-1082130432;c[6050]=0;f[6051]=0.0;c[6052]=-1089046235;c[6053]=-1085334595;c[6054]=0;f[6055]=0.0;c[6056]=-1082951543;c[6057]=-1096927500;c[6058]=-2147483648;f[6059]=0.0;c[6060]=-1082951543;c[6061]=1050556148;c[6062]=-2147483648;f[6063]=0.0;c[6064]=-1089046235;c[6065]=1062149053;c[6066]=-2147483648;f[6067]=0.0;c[6068]=-2147483648;c[6069]=1065353216;c[6070]=-2147483648;f[6071]=0.0;c[6072]=1058437413;c[6073]=1062149053;c[6074]=-2147483648;f[6075]=0.0;c[6076]=1060121912;c[6077]=-1090519141;c[6078]=1057396386;f[6079]=0.0;c[6080]=-1098475836;c[6081]=-1085334679;c[6082]=1057396420;f[6083]=0.0;c[6084]=-1084636143;c[6085]=0;c[6086]=1057396386;f[6087]=0.0;c[6088]=-1098475836;c[6089]=1062148969;c[6090]=1057396420;f[6091]=0.0;c[6092]=1060121912;c[6093]=1056964507;c[6094]=1057396386;f[6095]=0.0;c[6096]=1057396286;c[6097]=0;c[6098]=1062847572;f[6099]=0.0;c[6100]=1042701022;c[6101]=-1090519208;c[6102]=1062847606;f[6103]=0.0;c[6104]=-1093024784;c[6105]=-1096927567;c[6106]=1062847606;f[6107]=0.0;c[6108]=-1093024784;c[6109]=1050556081;c[6110]=1062847606;f[6111]=0.0;c[6112]=1042701022;c[6113]=1056964440;c[6114]=1062847606;f[6115]=0.0;PB(24992);return}function Rd(a,b){a=a|0;b=b|0;var d=0,e=0,g=0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0;d=c[a+748>>2]|0;if((d|0)!=4){c[a+748>>2]=d+1;g=d;e=(g|0)>0;g=e?g:0;a=a+4+(g*184|0)|0;vh(a|0,b|0,184)|0;return g|0}C=+f[b+80>>2];B=+f[a+84>>2];A=B>2];y=z>2];g=+f[a+636>>2]<(x>31;C=+f[b>>2];if(d){h=+f[a+188>>2];n=+f[b+4>>2];i=+f[a+192>>2];p=+f[b+8>>2];j=+f[a+196>>2];l=+f[a+556>>2];t=+f[a+372>>2];m=+f[a+560>>2];y=+f[a+376>>2];o=+f[a+564>>2];w=+f[a+380>>2];k=((C-h)*(m-y)-(n-i)*(l-t))*((C-h)*(m-y)-(n-i)*(l-t))+(((n-i)*(o-w)-(p-j)*(m-y))*((n-i)*(o-w)-(p-j)*(m-y))+((p-j)*(l-t)-(C-h)*(o-w))*((p-j)*(l-t)-(C-h)*(o-w)));if((d|0)==1){v=l;x=m;u=i;q=j;s=w;w=y;j=0.0;m=C-+f[a+4>>2];l=p-+f[a+12>>2];i=n-+f[a+8>>2];e=7}else{u=i;i=n;s=w;z=o;B=y;x=m;A=t;v=l;q=l-t;o=o-w;n=m-y;e=6}}else{t=+f[a+556>>2];q=+f[a+372>>2];y=+f[a+560>>2];n=+f[a+376>>2];w=+f[a+564>>2];o=+f[a+380>>2];h=+f[a+188>>2];u=+f[a+192>>2];j=+f[a+196>>2];i=+f[b+4>>2];p=+f[b+8>>2];s=o;z=w;B=n;x=y;A=q;v=t;k=0.0;q=t-q;o=w-o;n=y-n;e=6}if((e|0)==6){m=C-+f[a+4>>2];i=i-+f[a+8>>2];l=p-+f[a+12>>2];y=i*o-l*n;p=l*q-m*o;n=m*n-i*q;if((d|0)==2){t=A;x=h;v=B;q=j;h=0.0;j=n*n+(y*y+p*p);e=8}else{o=z;q=j;w=B;t=A;j=n*n+(y*y+p*p);e=7}}if((e|0)==7){p=v-h;C=x-u;o=o-q;n=i*o-l*C;o=l*p-m*o;p=m*C-i*p;if(g){h=p*p+(n*n+o*o);i=0.0}else{x=h;v=w;h=p*p+(n*n+o*o);e=8}}if((e|0)==8){A=t-x;z=v-u;C=s-q;B=i*C-l*z;C=l*A-m*C;i=m*z-i*A;i=i*i+(B*B+C*C)}C=+r(+k);A=+r(+j);y=+r(+h);x=+r(+i);B=C>-999999984306749440.0?C:-999999984306749440.0;z=A>B?A:B;g=x>(y>z?y:z)?3:y>z?2:A>B?1:(C>-999999984306749440.0^1)<<31>>31;d=c[a+4+(g*184|0)+112>>2]|0;if(!d){e=(g|0)>0;g=e?g:0;a=a+4+(g*184|0)|0;vh(a|0,b|0,184)|0;return g|0}e=c[6719]|0;if(!e){e=(g|0)>0;g=e?g:0;a=a+4+(g*184|0)|0;vh(a|0,b|0,184)|0;return g|0}ra[e&127](d)|0;c[a+4+(g*184|0)+112>>2]=0;e=(g|0)>0;g=e?g:0;a=a+4+(g*184|0)|0;vh(a|0,b|0,184)|0;return g|0}function Sd(){if(a[24968]|0)return;if(!(DC(24968)|0))return;c[5652]=0;c[5653]=-2147483648;c[5654]=-1082130432;f[5655]=0.0;c[5656]=1060716128;c[5657]=-1090087446;c[5658]=-1092290076;f[5659]=0.0;c[5660]=-1098022214;c[5661]=-1084636126;c[5662]=-1092290076;f[5663]=0.0;c[5664]=-1083901670;c[5665]=-2147483648;c[5666]=-1092290177;f[5667]=0.0;c[5668]=-1098022214;c[5669]=1062847522;c[5670]=-1092290043;f[5671]=0.0;c[5672]=1060716128;c[5673]=1057396202;c[5674]=-1092290076;f[5675]=0.0;c[5676]=1049461434;c[5677]=-1084636126;c[5678]=1055193605;f[5679]=0.0;c[5680]=-1086767520;c[5681]=-1090087446;c[5682]=1055193572;f[5683]=0.0;c[5684]=-1086767520;c[5685]=1057396202;c[5686]=1055193572;f[5687]=0.0;c[5688]=1049461434;c[5689]=1062847522;c[5690]=1055193572;f[5691]=0.0;c[5692]=1063581978;c[5693]=0;c[5694]=1055193471;f[5695]=0.0;c[5696]=-2147483648;c[5697]=0;c[5698]=1065353216;f[5699]=0.0;c[5700]=1054458864;c[5701]=-1096927567;c[5702]=-1084636042;f[5703]=0.0;c[5704]=-1104782626;c[5705]=-1090519208;c[5706]=-1084636042;f[5707]=0.0;c[5708]=1049007812;c[5709]=-1085334679;c[5710]=-1090087228;f[5711]=0.0;c[5712]=1054458864;c[5713]=1050556081;c[5714]=-1084636042;f[5715]=0.0;c[5716]=1062847505;c[5717]=-2147483648;c[5718]=-1090087262;f[5719]=0.0;c[5720]=-1090087362;c[5721]=-2147483648;c[5722]=-1084636076;f[5723]=0.0;c[5724]=-1087361736;c[5725]=-1090519141;c[5726]=-1090087262;f[5727]=0.0;c[5728]=-1104782626;c[5729]=1056964440;c[5730]=-1084636042;f[5731]=0.0;c[5732]=-1087361736;c[5733]=1056964507;c[5734]=-1090087262;f[5735]=0.0;c[5736]=1049007812;c[5737]=1062148969;c[5738]=-1090087228;f[5739]=0.0;c[5740]=1064532105;c[5741]=1050556148;c[5742]=0;f[5743]=0.0;c[5744]=1064532105;c[5745]=-1096927500;c[5746]=0;f[5747]=0.0;c[5748]=1058437413;c[5749]=-1085334595;c[5750]=0;f[5751]=0.0;c[5752]=0;c[5753]=-1082130432;c[5754]=0;f[5755]=0.0;c[5756]=-1089046235;c[5757]=-1085334595;c[5758]=0;f[5759]=0.0;c[5760]=-1082951543;c[5761]=-1096927500;c[5762]=-2147483648;f[5763]=0.0;c[5764]=-1082951543;c[5765]=1050556148;c[5766]=-2147483648;f[5767]=0.0;c[5768]=-1089046235;c[5769]=1062149053;c[5770]=-2147483648;f[5771]=0.0;c[5772]=-2147483648;c[5773]=1065353216;c[5774]=-2147483648;f[5775]=0.0;c[5776]=1058437413;c[5777]=1062149053;c[5778]=-2147483648;f[5779]=0.0;c[5780]=1060121912;c[5781]=-1090519141;c[5782]=1057396386;f[5783]=0.0;c[5784]=-1098475836;c[5785]=-1085334679;c[5786]=1057396420;f[5787]=0.0;c[5788]=-1084636143;c[5789]=0;c[5790]=1057396386;f[5791]=0.0;c[5792]=-1098475836;c[5793]=1062148969;c[5794]=1057396420;f[5795]=0.0;c[5796]=1060121912;c[5797]=1056964507;c[5798]=1057396386;f[5799]=0.0;c[5800]=1057396286;c[5801]=0;c[5802]=1062847572;f[5803]=0.0;c[5804]=1042701022;c[5805]=-1090519208;c[5806]=1062847606;f[5807]=0.0;c[5808]=-1093024784;c[5809]=-1096927567;c[5810]=1062847606;f[5811]=0.0;c[5812]=-1093024784;c[5813]=1050556081;c[5814]=1062847606;f[5815]=0.0;c[5816]=1042701022;c[5817]=1056964440;c[5818]=1062847606;f[5819]=0.0;PB(24968);return}function Td(b,d,e){b=b|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=ea;ea=ea+16|0;l=Es()|0;c[l+8>>2]=0;c[l+12>>2]=1065353216;c[l+16>>2]=1065353216;c[l+20>>2]=1065353216;f[l+24>>2]=0.0;f[l+44>>2]=.03999999910593033;c[l+52>>2]=1065353216;c[l+56>>2]=1065353216;c[l+60>>2]=1065353216;f[l+64>>2]=0.0;c[l+68>>2]=-1082130432;c[l+72>>2]=-1082130432;c[l+76>>2]=-1082130432;f[l+80>>2]=0.0;a[l+84>>0]=0;c[l>>2]=7784;a[l+104>>0]=1;c[l+100>>2]=0;c[l+92>>2]=0;c[l+96>>2]=0;a[l+124>>0]=1;c[l+120>>2]=0;c[l+112>>2]=0;c[l+116>>2]=0;c[l+4>>2]=9;if((e|0)>0){c[6747]=(c[6747]|0)+1;g=kb((e<<4|3)+16|0)|0;if(!g)i=0;else{c[(g+4+15&-16)+-4>>2]=g;i=g+4+15&-16}g=c[l+92>>2]|0;if((g|0)>0){h=0;do{k=i+(h<<4)|0;j=(c[l+100>>2]|0)+(h<<4)|0;c[k>>2]=c[j>>2];c[k+4>>2]=c[j+4>>2];c[k+8>>2]=c[j+8>>2];c[k+12>>2]=c[j+12>>2];h=h+1|0}while((h|0)!=(g|0))}g=c[l+100>>2]|0;if(g|0){if(a[l+104>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[l+100>>2]=0}a[l+104>>0]=1;c[l+100>>2]=i;c[l+96>>2]=e;c[i>>2]=c[m>>2];c[i+4>>2]=c[m+4>>2];c[i+8>>2]=c[m+8>>2];c[i+12>>2]=c[m+12>>2];if((e|0)!=1){g=1;do{k=(c[l+100>>2]|0)+(g<<4)|0;c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[k+8>>2]=c[m+8>>2];c[k+12>>2]=c[m+12>>2];g=g+1|0}while((g|0)!=(e|0))}k=c[l+112>>2]|0}else k=0;c[l+92>>2]=e;if((k|0)<(e|0)){do if((c[l+116>>2]|0)<(e|0)){if(!e){j=k;g=0}else{c[6747]=(c[6747]|0)+1;g=kb((e<<2|3)+16|0)|0;if(!g)g=0;else{c[(g+4+15&-16)+-4>>2]=g;g=g+4+15&-16}j=c[l+112>>2]|0}h=c[l+120>>2]|0;if((j|0)<=0){if(!h){a[l+124>>0]=1;c[l+120>>2]=g;c[l+116>>2]=e;break}}else{i=0;do{c[g+(i<<2)>>2]=c[h+(i<<2)>>2];i=i+1|0}while((i|0)!=(j|0))}if(a[l+124>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[h+-4>>2]|0)}a[l+124>>0]=1;c[l+120>>2]=g;c[l+116>>2]=e}else g=c[l+120>>2]|0;while(0);hk(g+(k<<2)|0,0,e-k<<2|0)|0}c[l+112>>2]=e;if((e|0)<=0){Ci(l);ea=m;return l|0}g=0;do{j=b+(g<<4)|0;k=(c[l+100>>2]|0)+(g<<4)|0;c[k>>2]=c[j>>2];c[k+4>>2]=c[j+4>>2];c[k+8>>2]=c[j+8>>2];c[k+12>>2]=c[j+12>>2];c[(c[l+120>>2]|0)+(g<<2)>>2]=c[d+(g<<2)>>2];g=g+1|0}while((g|0)!=(e|0));Ci(l);ea=m;return l|0}function Ud(b,d,e,g,h){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0,j=0.0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0;k=c[b+9288>>2]|0;if(!k){c[b>>2]=5;b=0;return b|0}i=c[k+48>>2]|0;if(i|0)c[i+44>>2]=c[k+44>>2];i=c[k+44>>2]|0;if(i|0)c[i+48>>2]=c[k+48>>2];if((c[b+9288>>2]|0)==(k|0))c[b+9288>>2]=c[k+48>>2];c[b+9292>>2]=(c[b+9292>>2]|0)+-1;c[k+44>>2]=0;c[k+48>>2]=c[b+9280>>2];i=c[b+9280>>2]|0;if(i|0)c[i+44>>2]=k;c[b+9280>>2]=k;c[b+9284>>2]=(c[b+9284>>2]|0)+1;a[k+55>>0]=0;c[k+20>>2]=d;c[k+24>>2]=e;c[k+28>>2]=g;j=+f[d+16>>2];n=+f[e+16>>2]-j;m=+f[d+20>>2];l=+f[e+20>>2]-m;o=+f[d+24>>2];p=+f[e+24>>2]-o;j=+f[g+16>>2]-j;m=+f[g+20>>2]-m;o=+f[g+24>>2]-o;f[k>>2]=l*o-p*m;f[k+4>>2]=p*j-n*o;f[k+8>>2]=n*m-l*j;f[k+12>>2]=0.0;j=+s(+((l*o-p*m)*(l*o-p*m)+(p*j-n*o)*(p*j-n*o)+(n*m-l*j)*(n*m-l*j)));if(!(j>9.999999747378752e-05)){c[b>>2]=2;i=c[k+48>>2]|0;if(i|0)c[i+44>>2]=c[k+44>>2];i=c[k+44>>2]|0;if(i|0)c[i+48>>2]=c[k+48>>2];if((c[b+9280>>2]|0)==(k|0))c[b+9280>>2]=c[k+48>>2];c[b+9284>>2]=(c[b+9284>>2]|0)+-1;c[k+44>>2]=0;c[k+48>>2]=c[b+9288>>2];i=c[b+9288>>2]|0;if(i|0)c[i+44>>2]=k;c[b+9288>>2]=k;c[b+9292>>2]=(c[b+9292>>2]|0)+1;b=0;return b|0}if((!(ik(+f[k>>2],+f[k+4>>2],+f[k+8>>2],+f[d+16>>2],+f[d+20>>2],+f[d+24>>2],+f[e+16>>2],+f[e+20>>2],+f[e+24>>2],k+16|0)|0)?!(ik(+f[k>>2],+f[k+4>>2],+f[k+8>>2],+f[e+16>>2],+f[e+20>>2],+f[e+24>>2],+f[g+16>>2],+f[g+20>>2],+f[g+24>>2],k+16|0)|0):0)?!(ik(+f[k>>2],+f[k+4>>2],+f[k+8>>2],+f[g+16>>2],+f[g+20>>2],+f[g+24>>2],+f[d+16>>2],+f[d+20>>2],+f[d+24>>2],k+16|0)|0):0)f[k+16>>2]=(+f[d+16>>2]*+f[k>>2]+ +f[d+20>>2]*+f[k+4>>2]+ +f[d+24>>2]*+f[k+8>>2])/j;f[k>>2]=1.0/j*+f[k>>2];f[k+4>>2]=1.0/j*+f[k+4>>2];f[k+8>>2]=1.0/j*+f[k+8>>2];if(h){b=k;return b|0}if(+f[k+16>>2]>=-9.999999747378752e-06){b=k;return b|0}c[b>>2]=3;i=c[k+48>>2]|0;if(i|0)c[i+44>>2]=c[k+44>>2];i=c[k+44>>2]|0;if(i|0)c[i+48>>2]=c[k+48>>2];if((c[b+9280>>2]|0)==(k|0))c[b+9280>>2]=c[k+48>>2];c[b+9284>>2]=(c[b+9284>>2]|0)+-1;c[k+44>>2]=0;c[k+48>>2]=c[b+9288>>2];i=c[b+9288>>2]|0;if(i|0)c[i+44>>2]=k;c[b+9288>>2]=k;c[b+9292>>2]=(c[b+9292>>2]|0)+1;b=0;return b|0}function Vd(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,t=0.0,x=0.0;c[a+556>>2]=c[b>>2];c[a+556+4>>2]=c[b+4>>2];c[a+556+8>>2]=c[b+8>>2];c[a+556+12>>2]=c[b+12>>2];k=+f[a+568>>2];l=+f[a+560>>2];m=+f[a+564>>2];n=+f[a+556>>2];g=-n-l*0.0-m*0.0;e=(m+k*0.0-n*0.0)*-m+(k*(k+l*0.0-m*0.0)+g*-n)-(k*0.0+n*0.0-l)*-l;d=(k*0.0+n*0.0-l)*-n+(k*(m+k*0.0-n*0.0)+g*-l)-(k+l*0.0-m*0.0)*-m;g=(k+l*0.0-m*0.0)*-l+(g*-m+k*(k*0.0+n*0.0-l))-(m+k*0.0-n*0.0)*-n;if(g*0.0+(d*0.0+e)<-.9999998807907104){h=-0.0;i=0.0;j=0.0;d=1.0}else{x=+s(+((g*0.0+(d*0.0+e)+1.0)*2.0));h=(g*0.0-d*0.0)*(1.0/x);i=(d-e*0.0)*(1.0/x);j=x*.5;d=(e*0.0-g)*(1.0/x)}o=1.0/+s(+(h*h+d*d+i*i+j*j));t=h*o;x=d*o;p=i*o;o=j*o;e=1.0/+s(+((k*o-n*-t-l*-x-m*-p)*(k*o-n*-t-l*-x-m*-p)+((l*-t+(m*o+k*-p)-n*-x)*(l*-t+(m*o+k*-p)-n*-x)+((m*-x+(n*o+k*-t)-l*-p)*(m*-x+(n*o+k*-t)-l*-p)+(n*-p+(k*-x+l*o)-m*-t)*(n*-p+(k*-x+l*o)-m*-t)))));h=(m*-x+(n*o+k*-t)-l*-p)*e;d=(n*-p+(k*-x+l*o)-m*-t)*e;g=(l*-t+(m*o+k*-p)-n*-x)*e;n=(k*o-n*-t-l*-x-m*-p)*e;e=+f[a+444>>2];if(e>=.05000000074505806?(q=+f[a+448>>2],q>=.05000000074505806):0){j=o<-1.0?-1.0:o;j=+w(+(j>1.0?1.0:j))*2.0;if(j>1.1920928955078125e-07){i=1.0/+s(+(p*p+(t*t+x*x)));if(+r(+(x*i))>1.1920928955078125e-07){e=+s(+((p*i*(p*i)/(x*i*(x*i))+1.0)/(p*i*(p*i)/(x*i*(x*i))/(e*e)+1.0/(q*q))));k=t*i;l=x*i;i=p*i}else{k=t*i;l=x*i;i=p*i}}else{e=0.0;k=0.0;l=0.0;i=0.0}if(+r(+j)>1.1920928955078125e-07){if(!(j>e)){e=-e;if(!(j>2];if(l>=.05000000074505806){e=n<-1.0?-1.0:n;e=+w(+(e>1.0?1.0:e))*2.0;if(e>3.1415927410125732){e=-n<-1.0?-1.0:-n;i=-h;j=-d;k=-g;e=+w(+(e>1.0?1.0:e))*2.0}else{i=h;j=d;k=g}if(e>1.1920928955078125e-07){x=1.0/+s(+(i*i+j*j+k*k));i=i*x;j=j*x;k=k*x}if(+r(+e)>1.1920928955078125e-07){if(!(e>l))if(e<-l)d=-l;else d=e;else d=l;e=d*.5;d=+v(+e)/+s(+(k*k+(j*j+i*i)));h=i*d;g=k*d;e=+u(+e);d=j*d}else e=n}else e=n;f[a+556>>2]=m*g+(o*h+t*e)-p*d;f[a+560>>2]=p*h+(o*d+m*e)-t*g;f[a+564>>2]=t*d+(o*g+p*e)-m*h;f[a+568>>2]=o*e-t*h-m*d-p*g;return}function Wd(a,b,d,e,g,h){a=a|0;b=+b;d=+d;e=e|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0.0,m=0.0,n=0.0,o=0,p=0,q=0,r=0.0;o=ea;ea=ea+352|0;k=MI(g)|0;l=+f[k>>2];m=+f[k+4>>2];n=+f[k+8>>2];f[o+328>>2]=0.0;f[o+324>>2]=0.0;f[o+320>>2]=0.0;qs(o+336|0,o+328|0,o+324|0,o+320|0);f[(NJ(o+336|0)|0)+(e<<2)>>2]=d;f[o+296>>2]=0.0;f[o+292>>2]=0.0;f[o+288>>2]=0.0;qs(o+304|0,o+296|0,o+292|0,o+288|0);k=NJ(o+304|0)|0;f[k+(e<<2)>>2]=-d;f[o+264>>2]=0.0;f[o+260>>2]=0.0;f[o+256>>2]=0.0;qs(o+272|0,o+264|0,o+260|0,o+256|0);j=NJ(o+272|0)|0;f[j+(e<<2)>>2]=d;i=0;while(1){if(i>>>0>=360)break;d=+(i|0)*.01745329238474369;r=+CJ(d)*b;f[k+(((e+1|0)%3|0)<<2)>>2]=r;f[j+(((e+1|0)%3|0)<<2)>>2]=r;d=+DJ(d)*b;f[k+(((e+2|0)%3|0)<<2)>>2]=d;f[j+(((e+2|0)%3|0)<<2)>>2]=d;p=c[(c[a>>2]|0)+8>>2]|0;q=NJ(g)|0;ql(o+224|0,q,+f[o+304>>2],+f[o+304+4>>2],+f[o+304+8>>2]);vp(o+240|0,l,m,n,+f[o+224>>2],+f[o+224+4>>2],+f[o+224+8>>2]);ql(o+192|0,q,+f[o+272>>2],+f[o+272+4>>2],+f[o+272+8>>2]);vp(o+208|0,l,m,n,+f[o+192>>2],+f[o+192+4>>2],+f[o+192+8>>2]);Pa[p&127](a,o+240|0,o+208|0,h);i=i+30|0}f[o+168>>2]=0.0;f[o+164>>2]=0.0;f[o+160>>2]=0.0;qs(o+176|0,o+168|0,o+164|0,o+160|0);f[(NJ(o+176|0)|0)+(e<<2)>>2]=1.0;f[o+136>>2]=0.0;f[o+132>>2]=0.0;f[o+128>>2]=0.0;qs(o+144|0,o+136|0,o+132|0,o+128|0);f[(NJ(o+144|0)|0)+(((e+1|0)%3|0)<<2)>>2]=1.0;q=c[(c[a>>2]|0)+60>>2]|0;p=NJ(g)|0;ql(o+96|0,p,+f[o+336>>2],+f[o+336+4>>2],+f[o+336+8>>2]);xp(o+112|0,l,m,n,+f[o+96>>2],+f[o+96+4>>2],+f[o+96+8>>2]);ql(o+80|0,p,+f[o+176>>2],+f[o+176+4>>2],+f[o+176+8>>2]);ql(o+64|0,p,+f[o+144>>2],+f[o+144+4>>2],+f[o+144+8>>2]);Sa[q&1](a,o+112|0,o+80|0,o+64|0,b,b,0.0,6.2831854820251465,h,0,10.0);q=c[(c[a>>2]|0)+60>>2]|0;ql(o+32|0,p,+f[o+336>>2],+f[o+336+4>>2],+f[o+336+8>>2]);vp(o+48|0,l,m,n,+f[o+32>>2],+f[o+32+4>>2],+f[o+32+8>>2]);ql(o+16|0,p,+f[o+176>>2],+f[o+176+4>>2],+f[o+176+8>>2]);ql(o,p,+f[o+144>>2],+f[o+144+4>>2],+f[o+144+8>>2]);Sa[q&1](a,o+48|0,o+16|0,o,b,b,0.0,6.2831854820251465,h,0,10.0);ea=o;return}function Xd(a,b){a=a|0;b=b|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0.0,l=0,m=0.0,n=0.0,o=0.0;i=c[a+192>>2]|0;k=+ha[c[(c[i>>2]|0)+48>>2]&15](i);i=c[a+712>>2]|0;if((i|0)>0){l=0;do{j=c[a+720>>2]|0;d=j+(l*104|0)+8|0;m=+f[b>>2]*+f[d>>2];f[d>>2]=m;d=j+(l*104|0)+12|0;o=+f[b+4>>2]*+f[d>>2];f[d>>2]=o;d=j+(l*104|0)+16|0;n=+f[b+8>>2]*+f[d>>2];f[d>>2]=n;d=j+(l*104|0)+24|0;f[d>>2]=+f[b>>2]*+f[d>>2];d=j+(l*104|0)+28|0;f[d>>2]=+f[b+4>>2]*+f[d>>2];d=j+(l*104|0)+32|0;f[d>>2]=+f[b+8>>2]*+f[d>>2];j=c[j+(l*104|0)+96>>2]|0;d=jg(a+928|0,j)|0;a:do if(d){g=c[a+936>>2]|0;if((g|0)<=-1){d=c[a+928>>2]|0;break}if(g){h=0;e=d;while(1){d=c[e+32>>2]|0;h=h+1|0;if(!d){d=e;break a}if((h|0)>=(g|0))break;else e=d}}}else d=0;while(0);f[j>>2]=m-k;f[j+4>>2]=o-k;f[j+8>>2]=n-k;f[j+12>>2]=0.0;f[j+16>>2]=k+m;f[j+20>>2]=k+o;f[j+24>>2]=k+n;f[j+28>>2]=0.0;je(a+928|0,d,j);l=l+1|0}while((l|0)!=(i|0))}Ef(a);d=c[a+928>>2]|0;if(d){b=c[a+192>>2]|0;m=+ha[c[(c[b>>2]|0)+48>>2]&15](b);o=+f[d+4>>2]-m;n=+f[d+8>>2]-m;f[a+892>>2]=+f[d>>2]-m;f[a+896>>2]=o;f[a+900>>2]=n;f[a+904>>2]=0.0;n=m+ +f[d+20>>2];o=m+ +f[d+24>>2];f[a+908>>2]=m+ +f[d+16>>2];f[a+912>>2]=n;f[a+916>>2]=o;f[a+920>>2]=0.0;d=c[a+188>>2]|0;if(d|0){b=c[a+684>>2]|0;l=c[b+32>>2]|0;Ta[c[(c[l>>2]|0)+16>>2]&31](l,d,a+892|0,a+908|0,c[b+36>>2]|0)}}else{c[a+892>>2]=0;c[a+892+4>>2]=0;c[a+892+8>>2]=0;c[a+892+12>>2]=0;c[a+892+16>>2]=0;c[a+892+20>>2]=0;c[a+892+24>>2]=0;c[a+892+28>>2]=0}e=c[a+732>>2]|0;if((e|0)<=0){Ze(a);return}g=c[a+740>>2]|0;d=0;do{l=c[g+(d*52|0)+8>>2]|0;b=c[g+(d*52|0)+12>>2]|0;m=+f[l+8>>2]-+f[b+8>>2];n=+f[l+12>>2]-+f[b+12>>2];o=+f[l+16>>2]-+f[b+16>>2];o=+s(+(m*m+n*n+o*o));f[g+(d*52|0)+16>>2]=o;f[g+(d*52|0)+28>>2]=o*o;d=d+1|0}while((d|0)!=(e|0));d=0;do{f[g+(d*52|0)+24>>2]=(+f[(c[g+(d*52|0)+8>>2]|0)+88>>2]+ +f[(c[g+(d*52|0)+12>>2]|0)+88>>2])/+f[(c[g+(d*52|0)+4>>2]|0)+4>>2];d=d+1|0}while((d|0)!=(e|0));Ze(a);return}function Yd(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;if(!b)if(!e){if(f|0){c[f>>2]=(a>>>0)%(d>>>0);c[f+4>>2]=0}e=0;f=(a>>>0)/(d>>>0)>>>0;return (C(e|0),f)|0}else{if(!f){e=0;f=0;return (C(e|0),f)|0}c[f>>2]=a|0;c[f+4>>2]=b&0;e=0;f=0;return (C(e|0),f)|0}do if(d){if(e|0){h=(A(e|0)|0)-(A(b|0)|0)|0;if(h>>>0<=31){n=h+1|0;i=a>>>((h+1|0)>>>0)&h-31>>31|b<<31-h;m=b>>>((h+1|0)>>>0)&h-31>>31;g=0;h=a<<31-h;break}if(!f){e=0;f=0;return (C(e|0),f)|0}c[f>>2]=a|0;c[f+4>>2]=b|b&0;e=0;f=0;return (C(e|0),f)|0}if(d-1&d|0){h=(A(d|0)|0)+33-(A(b|0)|0)|0;n=h;i=32-h-1>>31&b>>>((h-32|0)>>>0)|(b<<32-h|a>>>(h>>>0))&h-32>>31;m=h-32>>31&b>>>(h>>>0);g=a<<64-h&32-h>>31;h=(b<<64-h|a>>>((h-32|0)>>>0))&32-h>>31|a<<32-h&h-33>>31;break}if(f|0){c[f>>2]=d-1&a;c[f+4>>2]=0}if((d|0)==1){e=b|b&0;f=a|0|0;return (C(e|0),f)|0}else{f=dG(d|0)|0;e=b>>>(f>>>0)|0;f=b<<32-f|a>>>(f>>>0)|0;return (C(e|0),f)|0}}else{if(!e){if(f|0){c[f>>2]=(b>>>0)%(d>>>0);c[f+4>>2]=0}e=0;f=(b>>>0)/(d>>>0)>>>0;return (C(e|0),f)|0}if(!a){if(f|0){c[f>>2]=0;c[f+4>>2]=(b>>>0)%(e>>>0)}d=0;f=(b>>>0)/(e>>>0)>>>0;return (C(d|0),f)|0}if(!(e-1&e)){if(f|0){c[f>>2]=a|0;c[f+4>>2]=e-1&b|b&0}d=0;f=b>>>((dG(e|0)|0)>>>0);return (C(d|0),f)|0}h=(A(e|0)|0)-(A(b|0)|0)|0;if(h>>>0<=30){n=h+1|0;i=b<<31-h|a>>>((h+1|0)>>>0);m=b>>>((h+1|0)>>>0);g=0;h=a<<31-h;break}if(!f){e=0;f=0;return (C(e|0),f)|0}c[f>>2]=a|0;c[f+4>>2]=b|b&0;e=0;f=0;return (C(e|0),f)|0}while(0);if(!n){j=h;b=m;a=0;h=0}else{k=Lv(d|0|0,e|e&0|0,-1,-1)|0;l=D()|0;j=h;b=m;a=n;h=0;do{p=j;j=g>>>31|j<<1;g=h|g<<1;p=i<<1|p>>>31|0;o=i>>>31|b<<1|0;tv(k|0,l|0,p|0,o|0)|0;n=D()|0;m=n>>31|((n|0)<0?-1:0)<<1;h=m&1;i=tv(p|0,o|0,m&(d|0)|0,(((n|0)<0?-1:0)>>31|((n|0)<0?-1:0)<<1)&(e|e&0)|0)|0;b=D()|0;a=a-1|0}while((a|0)!=0);a=0}if(f|0){c[f>>2]=i;c[f+4>>2]=b}o=(g|0)>>>31|j<<1|(0<<1|g>>>31)&0|a;p=(g<<1|0>>>31)&-2|h;return (C(o|0),p)|0}function Zd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0,s=0,t=0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0;if(!a)return;u=+f[b>>2];v=+f[b+4>>2];w=+f[b+8>>2];x=+f[b+16>>2];y=+f[b+20>>2];q=+f[b+24>>2];c[6747]=(c[6747]|0)+1;b=kb(275)|0;if(!b)b=0;else{c[(b+4+15&-16)+-4>>2]=b;b=b+4+15&-16}c[b>>2]=a;m=b;l=b;g=b;h=b;n=64;e=1;a=b;while(1){j=e+-1|0;p=c[a+(j<<2)>>2]|0;do if(((((+f[p>>2]<=x?+f[p+16>>2]>=u:0)?+f[p+4>>2]<=y:0)?+f[p+20>>2]>=v:0)?+f[p+8>>2]<=q:0)?+f[p+24>>2]>=w:0){if(!(c[p+40>>2]|0)){Ia[c[(c[d>>2]|0)+12>>2]&127](d,p);k=l;b=m;i=n;e=j;break}o=c[p+36>>2]|0;do if((j|0)==(n|0)){k=(n|0)==0?1:n<<1;if((e|0)<=(k|0)){if((k|0)!=0?(c[6747]=(c[6747]|0)+1,s=kb((k<<2|3)+16|0)|0,(s|0)!=0):0){c[(s+4+15&-16)+-4>>2]=s;i=s+4+15&-16}else i=0;if((e|0)<=1){if(!a){j=0;h=i;e=i;g=i;b=i;n=k;m=i;break}}else{b=0;do{c[i+(b<<2)>>2]=c[a+(b<<2)>>2];b=b+1|0}while((b|0)!=(n|0))}if(!m){j=n;h=i;e=i;g=i;b=i;n=k;m=i}else{c[6748]=(c[6748]|0)+1;uc(c[m+-4>>2]|0);j=n;h=i;e=i;g=i;b=i;n=k;m=i}}else{j=n;e=l;b=m;m=a}}else{e=l;b=m;m=a}while(0);c[m+(j<<2)>>2]=o;l=j+1|0;k=c[p+40>>2]|0;do if((l|0)==(n|0)?(t=(n|0)==0?1:n<<1,(n|0)<(t|0)):0){if((t|0)!=0?(c[6747]=(c[6747]|0)+1,r=kb((t<<2|3)+16|0)|0,(r|0)!=0):0){c[(r+4+15&-16)+-4>>2]=r;a=r+4+15&-16}else a=0;if((j|0)>-1){b=0;do{c[a+(b<<2)>>2]=c[m+(b<<2)>>2];b=b+1|0}while((b|0)!=(n|0));if(!h){e=a;g=a;h=a;b=a;i=t;break}}else if((m|0)==0|(h|0)==0){e=a;g=a;h=a;b=a;i=t;break}c[6748]=(c[6748]|0)+1;uc(c[h+-4>>2]|0);e=a;g=a;h=a;b=a;i=t}else{i=n;a=m}while(0);c[a+(l<<2)>>2]=k;k=e;e=j+2|0}else{k=l;b=m;i=n;e=j}while(0);if((e|0)<=0)break;m=b;l=k;n=i}if((a|0)==0|(k|0)==0)return;c[6748]=(c[6748]|0)+1;uc(c[k+-4>>2]|0);return}function _d(a,b,d,e,g,h){a=a|0;b=+b;d=+d;e=e|0;g=g|0;h=h|0;var i=0,j=0.0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0;n=ea;ea=ea+400|0;f[n+376>>2]=0.0;f[n+372>>2]=0.0;f[n+368>>2]=0.0;qs(n+384|0,n+376|0,n+372|0,n+368|0);l=NJ(n+384|0)|0;f[l+(e<<2)>>2]=-d;f[n+344>>2]=0.0;f[n+340>>2]=0.0;f[n+336>>2]=0.0;qs(n+352|0,n+344|0,n+340|0,n+336|0);m=NJ(n+352|0)|0;f[m+(e<<2)>>2]=d;Kq(n+272|0,g);dw(n+256|0,g,+f[n+384>>2],+f[n+384+4>>2],+f[n+384+8>>2]);i=MI(n+272|0)|0;c[i>>2]=c[n+256>>2];c[i+4>>2]=c[n+256+4>>2];c[i+8>>2]=c[n+256+8>>2];c[i+12>>2]=c[n+256+12>>2];c[n+240>>2]=c[n+256>>2];c[n+240+4>>2]=c[n+256+4>>2];c[n+240+8>>2]=c[n+256+8>>2];c[n+240+12>>2]=c[n+256+12>>2];i=NJ(n+272|0)|0;ir(n+224|0,i,(e+1|0)%3|0);ir(n+192|0,i,e);Sq(n+208|0,+f[n+192>>2],+f[n+192+4>>2],+f[n+192+8>>2]);Ra[c[(c[a>>2]|0)+64>>2]&1](a,n+240|0,n+224|0,n+208|0,b,-1.5707963705062866,1.5707963705062866,-1.5707963705062866,1.5707963705062866,h,30.0,0);Kq(n+128|0,g);dw(n+112|0,g,+f[n+352>>2],+f[n+352+4>>2],+f[n+352+8>>2]);i=MI(n+128|0)|0;c[i>>2]=c[n+112>>2];c[i+4>>2]=c[n+112+4>>2];c[i+8>>2]=c[n+112+8>>2];c[i+12>>2]=c[n+112+12>>2];c[n+96>>2]=c[n+112>>2];c[n+96+4>>2]=c[n+112+4>>2];c[n+96+8>>2]=c[n+112+8>>2];c[n+96+12>>2]=c[n+112+12>>2];i=NJ(n+128|0)|0;ir(n+80|0,i,(e+1|0)%3|0);ir(n+64|0,i,e);Ra[c[(c[a>>2]|0)+64>>2]&1](a,n+96|0,n+80|0,n+64|0,b,-1.5707963705062866,1.5707963705062866,-1.5707963705062866,1.5707963705062866,h,30.0,0);i=MI(g)|0;d=+f[i>>2];j=+f[i+4>>2];k=+f[i+8>>2];i=0;while(1){if(i>>>0>=360)break;q=+(i|0)*.01745329238474369;r=+CJ(q)*b;f[l+(((e+1|0)%3|0)<<2)>>2]=r;f[m+(((e+1|0)%3|0)<<2)>>2]=r;q=+DJ(q)*b;f[l+(((e+2|0)%3|0)<<2)>>2]=q;f[m+(((e+2|0)%3|0)<<2)>>2]=q;o=c[(c[a>>2]|0)+8>>2]|0;p=NJ(g)|0;ql(n+32|0,p,+f[n+384>>2],+f[n+384+4>>2],+f[n+384+8>>2]);vp(n+48|0,d,j,k,+f[n+32>>2],+f[n+32+4>>2],+f[n+32+8>>2]);ql(n,p,+f[n+352>>2],+f[n+352+4>>2],+f[n+352+8>>2]);vp(n+16|0,d,j,k,+f[n>>2],+f[n+4>>2],+f[n+8>>2]);Pa[o&127](a,n+48|0,n+16|0,h);i=i+30|0}ea=n;return}function $d(b,d,e){b=b|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=c[d+8>>2]|0;if((g|0)>0){h=c[d+16>>2]|0;j=0;e=0;do{i=c[h+(j<<2)>>2]|0;if(!(c[i+204>>2]&3)){c[i+208>>2]=e;e=e+1|0}c[i+212>>2]=-1;f[i+244>>2]=1.0;j=j+1|0}while((j|0)!=(g|0));j=e}else j=0;i=c[b+8>>2]|0;if((i|0)<(j|0)){if((c[b+12>>2]|0)<(j|0)){if(!j){g=i;h=0}else{c[6747]=(c[6747]|0)+1;e=kb((j<<3|3)+16|0)|0;if(!e)e=0;else{c[(e+4+15&-16)+-4>>2]=e;e=e+4+15&-16}g=c[b+8>>2]|0;h=e}if((g|0)>0){e=0;do{m=(c[b+16>>2]|0)+(e<<3)|0;k=c[m+4>>2]|0;l=h+(e<<3)|0;c[l>>2]=c[m>>2];c[l+4>>2]=k;e=e+1|0}while((e|0)!=(g|0))}e=c[b+16>>2]|0;if(e|0){if(a[b+20>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0)}c[b+16>>2]=0}a[b+20>>0]=1;c[b+16>>2]=h;c[b+12>>2]=j;g=b+16|0}else g=b+16|0;e=i;do{m=(c[g>>2]|0)+(e<<3)|0;c[m>>2]=0;c[m+4>>2]=0;e=e+1|0}while((e|0)!=(j|0))}c[b+8>>2]=j;if((j|0)>0){e=c[b+16>>2]|0;g=0;do{c[e+(g<<3)>>2]=g;c[e+(g<<3)+4>>2]=1;g=g+1|0}while((g|0)!=(j|0))}e=c[d+68>>2]|0;e=ra[c[(c[e>>2]|0)+36>>2]&127](e)|0;l=ra[c[(c[e>>2]|0)+36>>2]&127](e)|0;if(!l)return;d=ra[c[(c[e>>2]|0)+20>>2]&127](e)|0;if((l|0)<=0)return;k=0;do{e=c[c[d+(k<<4)>>2]>>2]|0;g=c[c[d+(k<<4)+4>>2]>>2]|0;if((e|0?(g|0?(c[e+204>>2]&7|0)==0:0):0)?(c[g+204>>2]&7|0)==0:0){h=c[e+208>>2]|0;e=c[g+208>>2]|0;j=c[b+16>>2]|0;g=c[j+(h<<3)>>2]|0;if((g|0)!=(h|0)){c[j+(h<<3)>>2]=c[j+(g<<3)>>2];h=c[j+(g<<3)>>2]|0;g=c[j+(h<<3)>>2]|0;if((h|0)!=(g|0)){i=j+(h<<3)|0;do{h=j+(g<<3)|0;c[i>>2]=c[h>>2];h=c[h>>2]|0;i=j+(h<<3)|0;g=c[i>>2]|0}while((h|0)!=(g|0))}}g=c[j+(e<<3)>>2]|0;if((g|0)!=(e|0)){c[j+(e<<3)>>2]=c[j+(g<<3)>>2];e=c[j+(g<<3)>>2]|0;g=c[j+(e<<3)>>2]|0;if((e|0)!=(g|0)){i=j+(e<<3)|0;do{e=j+(g<<3)|0;c[i>>2]=c[e>>2];e=c[e>>2]|0;i=j+(e<<3)|0;g=c[i>>2]|0}while((e|0)!=(g|0))}}if((h|0)!=(e|0)){c[j+(h<<3)>>2]=e;m=j+(e<<3)+4|0;c[m>>2]=(c[m>>2]|0)+(c[j+(h<<3)+4>>2]|0)}}k=k+1|0}while((k|0)!=(l|0));return}function ae(b,d,e,g){b=b|0;d=d|0;e=e|0;g=g|0;var h=0;h=ea;ea=ea+48|0;c[b+8>>2]=0;f[b+12>>2]=0.0;c[b>>2]=8136;c[b+48>>2]=d;c[b+4>>2]=21;if(ra[c[(c[d>>2]|0)+40>>2]&127](d)|0)Ma[c[(c[d>>2]|0)+48>>2]&127](d,b+16|0,b+32|0);else{d=h+32+4|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;f[h+32>>2]=1.0;Ma[c[(c[b>>2]|0)+68>>2]&127](h+16|0,b,h+32|0);f[b+32>>2]=+f[h+16>>2]+ +f[b+12>>2];f[h+32>>2]=-1.0;Ma[c[(c[b>>2]|0)+68>>2]&127](h,b,h+32|0);c[h+16>>2]=c[h>>2];c[h+16+4>>2]=c[h+4>>2];c[h+16+8>>2]=c[h+8>>2];c[h+16+12>>2]=c[h+12>>2];f[b+16>>2]=+f[h+16>>2]-+f[b+12>>2];c[h+32>>2]=0;c[h+32+4>>2]=0;c[h+32+8>>2]=0;c[h+32+12>>2]=0;f[d>>2]=1.0;Ma[c[(c[b>>2]|0)+68>>2]&127](h+16|0,b,h+32|0);f[b+36>>2]=+f[h+16+4>>2]+ +f[b+12>>2];f[d>>2]=-1.0;Ma[c[(c[b>>2]|0)+68>>2]&127](h,b,h+32|0);c[h+16>>2]=c[h>>2];c[h+16+4>>2]=c[h+4>>2];c[h+16+8>>2]=c[h+8>>2];c[h+16+12>>2]=c[h+12>>2];f[b+20>>2]=+f[h+16+4>>2]-+f[b+12>>2];c[h+32>>2]=0;c[h+32+4>>2]=0;c[h+32+8>>2]=0;c[h+32+12>>2]=0;f[h+32+8>>2]=1.0;Ma[c[(c[b>>2]|0)+68>>2]&127](h+16|0,b,h+32|0);f[b+40>>2]=+f[h+16+8>>2]+ +f[b+12>>2];f[h+32+8>>2]=-1.0;Ma[c[(c[b>>2]|0)+68>>2]&127](h,b,h+32|0);c[h+16>>2]=c[h>>2];c[h+16+4>>2]=c[h+4>>2];c[h+16+8>>2]=c[h+8>>2];c[h+16+12>>2]=c[h+12>>2];f[b+24>>2]=+f[h+16+8>>2]-+f[b+12>>2]}c[b>>2]=7984;c[b+52>>2]=0;c[b+56>>2]=0;a[b+60>>0]=e&1;a[b+61>>0]=0;c[b+4>>2]=21;if(!g){ea=h;return}c[6747]=(c[6747]|0)+1;g=kb(191)|0;if(!g)g=0;else{c[(g+4+15&-16)+-4>>2]=g;g=g+4+15&-16}c[g+52>>2]=282;a[g+60>>0]=0;a[g+80>>0]=1;c[g+76>>2]=0;c[g+68>>2]=0;c[g+72>>2]=0;a[g+100>>0]=1;c[g+96>>2]=0;c[g+88>>2]=0;c[g+92>>2]=0;a[g+120>>0]=1;c[g+116>>2]=0;c[g+108>>2]=0;c[g+112>>2]=0;a[g+140>>0]=1;c[g+136>>2]=0;c[g+128>>2]=0;c[g+132>>2]=0;c[g+144>>2]=0;a[g+164>>0]=1;c[g+160>>2]=0;c[g+152>>2]=0;c[g+156>>2]=0;c[g+168>>2]=0;c[g+4>>2]=-8388609;c[g+8>>2]=-8388609;c[g+12>>2]=-8388609;f[g+16>>2]=0.0;c[g+20>>2]=2139095039;c[g+24>>2]=2139095039;c[g+28>>2]=2139095039;f[g+32>>2]=0.0;c[g>>2]=9292;c[b+52>>2]=g;cc(g,c[b+48>>2]|0,(a[b+60>>0]|0)!=0,b+16|0,b+32|0);a[b+61>>0]=1;ea=h;return}function be(b,d,e,g,h){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0;j=ea;ea=ea+64|0;k=(a[b+8>>0]|0)!=0;i=k?e:d;e=k?d:e;d=c[e+4>>2]|0;if(((c[d+4>>2]|0)+-21|0)>>>0>=9){ea=j;return}if((c[(c[i+4>>2]|0)+4>>2]|0)>=20){ea=j;return}l=+ha[c[(c[d>>2]|0)+48>>2]&15](d);c[h+4>>2]=c[b+76>>2];c[b+16>>2]=i;c[b+20>>2]=e;c[b+64>>2]=g;f[b+68>>2]=l;c[b+56>>2]=h;k=c[e+12>>2]|0;A=+f[k>>2];z=+f[k+16>>2];y=+f[k+32>>2];x=+f[k+4>>2];w=+f[k+20>>2];v=+f[k+36>>2];r=+f[k+8>>2];p=+f[k+24>>2];n=+f[k+40>>2];u=-+f[k+48>>2];t=-+f[k+52>>2];s=-+f[k+56>>2];k=c[i+12>>2]|0;J=+f[k>>2];I=+f[k+16>>2];H=+f[k+32>>2];G=+f[k+4>>2];F=+f[k+20>>2];E=+f[k+36>>2];D=+f[k+8>>2];C=+f[k+24>>2];B=+f[k+40>>2];q=+f[k+48>>2];o=+f[k+52>>2];m=+f[k+56>>2];f[j>>2]=A*J+z*I+y*H;f[j+4>>2]=A*G+z*F+y*E;f[j+8>>2]=A*D+z*C+y*B;f[j+12>>2]=0.0;f[j+16>>2]=x*J+w*I+v*H;f[j+20>>2]=x*G+w*F+v*E;f[j+24>>2]=x*D+w*C+v*B;f[j+28>>2]=0.0;f[j+32>>2]=r*J+p*I+n*H;f[j+36>>2]=r*G+p*F+n*E;f[j+40>>2]=r*D+p*C+n*B;f[j+44>>2]=0.0;f[j+48>>2]=A*u+z*t+y*s+(A*q+z*o+y*m);f[j+52>>2]=x*u+w*t+v*s+(x*q+w*o+v*m);f[j+56>>2]=r*u+p*t+n*s+(r*q+p*o+n*m);f[j+60>>2]=0.0;k=c[i+4>>2]|0;Pa[c[(c[k>>2]|0)+8>>2]&127](k,j,b+24|0,b+40|0);f[b+40>>2]=+f[b+40>>2]+l;f[b+44>>2]=+f[b+44>>2]+l;f[b+48>>2]=+f[b+48>>2]+l;f[b+24>>2]=+f[b+24>>2]-l;f[b+28>>2]=+f[b+28>>2]-l;f[b+32>>2]=+f[b+32>>2]-l;k=c[b+76>>2]|0;g=c[e+8>>2]|0;c[k+740>>2]=c[i+8>>2];c[k+744>>2]=g;Pa[c[(c[d>>2]|0)+64>>2]&127](d,b+12|0,b+24|0,b+40|0);d=c[h+4>>2]|0;do if(c[d+748>>2]|0){e=c[d+740>>2]|0;i=c[(c[h+8>>2]|0)+8>>2]|0;if((e|0)==(i|0)){Hd(d,e+4|0,(c[(c[h+12>>2]|0)+8>>2]|0)+4|0);break}else{Hd(d,(c[(c[h+12>>2]|0)+8>>2]|0)+4|0,i+4|0);break}}while(0);c[b+16>>2]=0;c[b+20>>2]=0;ea=j;return}function ce(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0,h=0.0,i=0.0,j=0.0,k=0,l=0,m=0,n=0,o=0.0,p=0;n=ea;ea=ea+128|0;h=+f[b>>2];i=+f[b+16>>2];o=h>2];if((o+f[a+28>>2]){ea=n;return}l=h>i?b:b+16|0;if(+f[(+f[l>>2]>j?l:b+32|0)>>2]<+f[a+12>>2]){ea=n;return}j=+f[b+8>>2];h=+f[b+24>>2];o=j>2];if((o+f[a+36>>2]){ea=n;return}l=j>h?b+8|0:b+24|0;if(+f[(+f[l>>2]>i?l:b+40|0)>>2]<+f[a+20>>2]){ea=n;return}h=+f[b+4>>2];i=+f[b+20>>2];o=h>2];if((o+f[a+32>>2]){ea=n;return}l=h>i?b+4|0:b+20|0;if(+f[(+f[l>>2]>j?l:b+36|0)>>2]<+f[a+16>>2]){ea=n;return}g=c[a+4>>2]|0;if((c[(c[g+4>>2]|0)+4>>2]|0)>=20){ea=n;return}l=c[a+48>>2]|0;c[n+24+8>>2]=0;c[n+24+12>>2]=1065353216;c[n+24+16>>2]=1065353216;c[n+24+20>>2]=1065353216;f[n+24+24>>2]=0.0;c[n+24+52>>2]=0;c[n+24>>2]=4780;c[n+24+4>>2]=1;c[n+24+56>>2]=c[b>>2];c[n+24+56+4>>2]=c[b+4>>2];c[n+24+56+8>>2]=c[b+8>>2];c[n+24+56+12>>2]=c[b+12>>2];c[n+24+72>>2]=c[b+16>>2];c[n+24+72+4>>2]=c[b+16+4>>2];c[n+24+72+8>>2]=c[b+16+8>>2];c[n+24+72+12>>2]=c[b+16+12>>2];c[n+24+88>>2]=c[b+32>>2];c[n+24+88+4>>2]=c[b+32+4>>2];c[n+24+88+8>>2]=c[b+32+8>>2];c[n+24+88+12>>2]=c[b+32+12>>2];c[n+24+44>>2]=c[a+56>>2];p=c[a+8>>2]|0;b=c[p+8>>2]|0;k=c[p+12>>2]|0;c[n>>2]=p;c[n+4>>2]=n+24;c[n+8>>2]=b;c[n+12>>2]=k;c[n+16>>2]=d;c[n+20>>2]=e;k=wa[c[(c[l>>2]|0)+8>>2]&31](l,g,n,c[a+64>>2]|0)|0;b=c[a+44>>2]|0;g=c[b+8>>2]|0;if((c[g+8>>2]|0)==(c[(c[a+8>>2]|0)+8>>2]|0)){c[b+8>>2]=n;Ma[c[(c[b>>2]|0)+8>>2]&127](b,d,e)}else{g=c[b+12>>2]|0;c[b+12>>2]=n;Ma[c[(c[b>>2]|0)+12>>2]&127](b,d,e)}Ta[c[(c[k>>2]|0)+8>>2]&31](k,c[a+4>>2]|0,n,c[a+52>>2]|0,c[a+44>>2]|0);p=c[a+44>>2]|0;c[((c[(c[p+8>>2]|0)+8>>2]|0)==(c[(c[a+8>>2]|0)+8>>2]|0)?p+8|0:p+12|0)>>2]=g;Ca[c[c[k>>2]>>2]&511](k);Ia[c[(c[l>>2]|0)+60>>2]&127](l,k);c[n+24>>2]=8336;g=c[n+24+52>>2]|0;if(g|0?(Ca[c[c[g>>2]>>2]&511](g),m=c[n+24+52>>2]|0,m|0):0){c[6748]=(c[6748]|0)+1;uc(c[m+-4>>2]|0)}ea=n;return}function de(b,d,e,g,h){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0,y=0.0,z=0.0;x=a[h+16>>0]&-16;a[h+16>>0]=x;n=+f[e>>2];o=+f[d>>2];p=+f[e+4>>2];q=+f[d+4>>2];r=+f[e+8>>2];s=+f[d+8>>2];t=+f[g>>2];u=+f[g+4>>2];v=+f[g+8>>2];l=+f[b>>2];m=+f[b+4>>2];i=+f[b+8>>2];z=(n-o)*(l-o)+(p-q)*(m-q)+(r-s)*(i-s);y=(t-o)*(l-o)+(u-q)*(m-q)+(v-s)*(i-s);do if(z<=0.0&y<=0.0){c[h>>2]=c[d>>2];c[h+4>>2]=c[d+4>>2];c[h+8>>2]=c[d+8>>2];c[h+12>>2]=c[d+12>>2];a[h+16>>0]=x|1;j=0.0;k=0.0;i=1.0}else{w=(n-o)*(l-n)+(p-q)*(m-p)+(r-s)*(i-r);k=(t-o)*(l-n)+(u-q)*(m-p)+(v-s)*(i-r);if(!(!(w>=0.0)|!(k<=w))){c[h>>2]=c[e>>2];c[h+4>>2]=c[e+4>>2];c[h+8>>2]=c[e+8>>2];c[h+12>>2]=c[e+12>>2];a[h+16>>0]=x|2;j=0.0;k=1.0;i=0.0;break}if(w<=0.0&(z>=0.0?z*k-w*y<=0.0:0)){f[h>>2]=o+(n-o)*(z/(z-w));f[h+4>>2]=q+(p-q)*(z/(z-w));f[h+8>>2]=s+(r-s)*(z/(z-w));f[h+12>>2]=0.0;a[h+16>>0]=x|3;j=0.0;k=z/(z-w);i=1.0-z/(z-w);break}j=(n-o)*(l-t)+(p-q)*(m-u)+(r-s)*(i-v);i=(t-o)*(l-t)+(u-q)*(m-u)+(v-s)*(i-v);if(!(!(i>=0.0)|!(j<=i))){c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];c[h+12>>2]=c[g+12>>2];a[h+16>>0]=x|4;j=1.0;k=0.0;i=0.0;break}if(i<=0.0&(y>=0.0?j*y-z*i<=0.0:0)){f[h>>2]=o+(t-o)*(y/(y-i));f[h+4>>2]=q+(u-q)*(y/(y-i));f[h+8>>2]=s+(v-s)*(y/(y-i));f[h+12>>2]=0.0;a[h+16>>0]=x|5;j=y/(y-i);k=0.0;i=1.0-y/(y-i);break}if((w*i-j*k<=0.0?k-w>=0.0:0)?j-i>=0.0:0){k=(k-w)/(k-w+(j-i));f[h>>2]=n+(t-n)*k;f[h+4>>2]=p+(u-p)*k;f[h+8>>2]=r+(v-r)*k;f[h+12>>2]=0.0;a[h+16>>0]=x|6;j=k;k=1.0-k;i=0.0;break}l=1.0/(z*k-w*y+(w*i-j*k+(j*y-z*i)));m=(j*y-z*i)*l;i=(z*k-w*y)*l;f[h>>2]=(t-o)*i+(o+(n-o)*m);f[h+4>>2]=(u-q)*i+(q+(p-q)*m);f[h+8>>2]=(v-s)*i+(s+(r-s)*m);f[h+12>>2]=0.0;a[h+16>>0]=x|7;j=i;k=m;i=1.0-m-i}while(0);f[h+20>>2]=i;f[h+24>>2]=k;f[h+28>>2]=j;f[h+32>>2]=0.0;return}function ee(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0,h=0.0,i=0.0,j=0.0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0;g=ea;ea=ea+256|0;Fi(14335);c[g+32>>2]=5124;k=g+32+36|0;c[k>>2]=c[b>>2];c[k+4>>2]=c[b+4>>2];c[k+8>>2]=c[b+8>>2];c[k+12>>2]=c[b+12>>2];l=g+32+52|0;c[l>>2]=c[d>>2];c[l+4>>2]=c[d+4>>2];c[l+8>>2]=c[d+8>>2];c[l+12>>2]=c[d+12>>2];c[g+32+212>>2]=a;c[g+32+216>>2]=e;c[g+32+68>>2]=1065353216;c[g+32+72>>2]=0;c[g+32+72+4>>2]=0;c[g+32+72+8>>2]=0;c[g+32+72+12>>2]=0;c[g+32+88>>2]=1065353216;c[g+32+92>>2]=0;c[g+32+92+4>>2]=0;c[g+32+92+8>>2]=0;c[g+32+92+12>>2]=0;c[g+32+108>>2]=1065353216;c[g+32+112>>2]=0;c[g+32+116>>2]=c[k>>2];c[g+32+116+4>>2]=c[k+4>>2];c[g+32+116+8>>2]=c[k+8>>2];c[g+32+116+12>>2]=c[k+12>>2];c[g+32+132>>2]=1065353216;c[g+32+136>>2]=0;c[g+32+136+4>>2]=0;c[g+32+136+8>>2]=0;c[g+32+136+12>>2]=0;c[g+32+152>>2]=1065353216;c[g+32+156>>2]=0;c[g+32+156+4>>2]=0;c[g+32+156+8>>2]=0;c[g+32+156+12>>2]=0;c[g+32+172>>2]=1065353216;c[g+32+176>>2]=0;c[g+32+180>>2]=c[d>>2];c[g+32+180+4>>2]=c[d+4>>2];c[g+32+180+8>>2]=c[d+8>>2];c[g+32+180+12>>2]=c[d+12>>2];m=+f[d>>2]-+f[b>>2];j=+f[d+4>>2]-+f[b+4>>2];i=+f[d+8>>2]-+f[b+8>>2];h=1.0/+s(+(m*m+j*j+i*i));p=m*h==0.0?1000000015047466219876688.0e6:1.0/(m*h);f[g+32+4>>2]=p;o=j*h==0.0?1000000015047466219876688.0e6:1.0/(j*h);f[g+32+8>>2]=o;n=i*h==0.0?1000000015047466219876688.0e6:1.0/(i*h);f[g+32+12>>2]=n;c[g+32+20>>2]=p<0.0&1;c[g+32+24>>2]=o<0.0&1;c[g+32+28>>2]=n<0.0&1;f[g+32+32>>2]=m*h*(+f[l>>2]-+f[k>>2])+j*h*(+f[g+32+56>>2]-+f[g+32+40>>2])+i*h*(+f[g+32+60>>2]-+f[g+32+44>>2]);a=c[a+68>>2]|0;e=c[(c[a>>2]|0)+24>>2]|0;c[g+16>>2]=0;c[g+16+4>>2]=0;c[g+16+8>>2]=0;c[g+16+12>>2]=0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;Va[e&7](a,b,d,g+32|0,g+16|0,g);b=c[2685]|0;a=(c[b+16>>2]|0)+-1|0;c[b+16>>2]=a;if(a|0){ea=g;return}do if(c[b+4>>2]|0){Y(g+32|0,0)|0;l=c[6746]|0;f[b+8>>2]=+f[b+8>>2]+ +(((c[g+32+4>>2]|0)-(c[l+4>>2]|0)+(((c[g+32>>2]|0)-(c[l>>2]|0)|0)*1e6|0)-(c[b+12>>2]|0)|0)>>>0)/1.0e3;if(!(c[b+16>>2]|0)){b=c[2685]|0;break}else{ea=g;return}}while(0);c[2685]=c[b+20>>2];ea=g;return}function fe(a,b,h){a=a|0;b=b|0;h=h|0;var i=0,j=0.0,k=0,l=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0;t=ea;ea=ea+32|0;o=c[a+4>>2]|0;Za[c[(c[o>>2]|0)+16>>2]&3](o,t+28|0,t+24|0,t+20|0,t+16|0,t+12|0,t+8|0,t+4|0,t,b);o=(c[t+12>>2]|0)+(z(c[t+8>>2]|0,h)|0)|0;r=c[a+4>>2]|0;n=c[t>>2]|0;switch(n|0){case 3:{i=e[o+4>>1]|0;break}case 2:{i=c[o+8>>2]|0;break}default:i=d[o+2>>0]|0}s=(c[t+20>>2]|0)==0;p=c[t+28>>2]|0;q=c[t+16>>2]|0;i=p+(z(q,i)|0)|0;if(s){k=i+8|0;l=+f[r+12>>2];m=+f[i>>2]*+f[r+4>>2];j=+f[i+4>>2]*+f[r+8>>2]}else{k=r+12|0;l=+g[i+16>>3];m=+f[r+4>>2]*+g[i>>3];j=+f[r+8>>2]*+g[i+8>>3]}l=+f[k>>2]*l;f[a+44>>2]=m;f[a+48>>2]=j;f[a+52>>2]=l;f[a+56>>2]=0.0;switch(n|0){case 3:{i=e[o+2>>1]|0;break}case 2:{i=c[o+4>>2]|0;break}default:i=d[o+1>>0]|0}i=p+(z(q,i)|0)|0;if(s){k=i+8|0;l=+f[r+12>>2];m=+f[i>>2]*+f[r+4>>2];j=+f[i+4>>2]*+f[r+8>>2]}else{k=r+12|0;l=+g[i+16>>3];m=+f[r+4>>2]*+g[i>>3];j=+f[r+8>>2]*+g[i+8>>3]}l=+f[k>>2]*l;f[a+28>>2]=m;f[a+32>>2]=j;f[a+36>>2]=l;f[a+40>>2]=0.0;switch(n|0){case 3:{i=e[o>>1]|0;break}case 2:{i=c[o>>2]|0;break}default:i=d[o>>0]|0}i=p+(z(q,i)|0)|0;if(s){q=i+8|0;m=+f[r+12>>2];j=+f[i>>2]*+f[r+4>>2];l=+f[i+4>>2]*+f[r+8>>2];u=+f[q>>2];m=u*m;r=a+12|0;f[r>>2]=j;r=a+16|0;f[r>>2]=l;r=a+20|0;f[r>>2]=m;r=a+24|0;f[r>>2]=0.0;r=a+8|0;r=c[r>>2]|0;q=c[r>>2]|0;q=q+8|0;q=c[q>>2]|0;s=a+12|0;Pa[q&127](r,s,b,h);a=c[a+4>>2]|0;h=c[a>>2]|0;h=h+24|0;h=c[h>>2]|0;Ia[h&127](a,b);ea=t;return}else{q=r+12|0;u=+g[i+16>>3];l=+f[r+4>>2]*+g[i>>3];m=+f[r+8>>2]*+g[i+8>>3];j=+f[q>>2];u=j*u;r=a+12|0;f[r>>2]=l;r=a+16|0;f[r>>2]=m;r=a+20|0;f[r>>2]=u;r=a+24|0;f[r>>2]=0.0;r=a+8|0;r=c[r>>2]|0;q=c[r>>2]|0;q=q+8|0;q=c[q>>2]|0;s=a+12|0;Pa[q&127](r,s,b,h);a=c[a+4>>2]|0;h=c[a>>2]|0;h=h+24|0;h=c[h>>2]|0;Ia[h&127](a,b);ea=t;return}} +function ib(a,b,d,e,g){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;var i=0.0,j=0.0,k=0,l=0.0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,A=0.0,B=0,C=0.0,D=0.0,E=0.0,F=0,G=0,H=0,I=0,J=0,K=0.0,L=0.0,M=0.0,N=0,O=0.0,P=0,Q=0,R=0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0.0,Y=0.0,Z=0.0,_=0.0,$=0.0,aa=0.0,ba=0,ca=0.0,da=0.0,fa=0.0,ga=0.0,ia=0.0,ja=0.0,ka=0,la=0.0,ma=0.0,na=0.0,oa=0.0,pa=0.0,qa=0.0,ra=0.0,sa=0.0,ta=0.0,ua=0.0,va=0.0,wa=0.0,xa=0.0,ya=0.0,za=0.0,Aa=0.0,Ba=0.0,Ca=0.0,Da=0,Ea=0,Fa=0;Fa=ea;ea=ea+480|0;c[Fa+48>>2]=c[b>>2];c[Fa>>2]=c[b+64>>2];k=Fa+48+4|0;c[k>>2]=c[b+4>>2];c[Fa+4>>2]=c[b+68>>2];e=Fa+48+8|0;c[e>>2]=c[b+8>>2];c[Fa+8>>2]=c[b+72>>2];G=Fa+48+16|0;c[G>>2]=c[b+16>>2];c[Fa+16>>2]=c[b+80>>2];B=Fa+48+20|0;c[B>>2]=c[b+20>>2];c[Fa+20>>2]=c[b+84>>2];R=Fa+48+24|0;c[R>>2]=c[b+24>>2];c[Fa+24>>2]=c[b+88>>2];F=Fa+48+32|0;c[F>>2]=c[b+32>>2];c[Fa+32>>2]=c[b+96>>2];m=Fa+48+36|0;c[m>>2]=c[b+36>>2];c[Fa+36>>2]=c[b+100>>2];g=Fa+48+40|0;c[g>>2]=c[b+40>>2];c[Fa+40>>2]=c[b+104>>2];Ea=c[a+4>>2]|0;xa=+f[Ea+28>>2];ya=+f[Ea+32>>2];wa=+f[Ea+36>>2];ua=+ha[c[(c[Ea>>2]|0)+48>>2]&15](Ea);va=+ha[c[(c[Ea>>2]|0)+48>>2]&15](Ea);wa=(wa+ +ha[c[(c[Ea>>2]|0)+48>>2]&15](Ea))*2.0;Ea=c[a+8>>2]|0;Ba=+f[Ea+28>>2];Ca=+f[Ea+32>>2];Y=+f[Ea+36>>2];za=+ha[c[(c[Ea>>2]|0)+48>>2]&15](Ea);Aa=+ha[c[(c[Ea>>2]|0)+48>>2]&15](Ea);Y=(Y+ +ha[c[(c[Ea>>2]|0)+48>>2]&15](Ea))*2.0;aa=+f[b+112>>2]-+f[b+48>>2];da=+f[b+116>>2]-+f[b+52>>2];ca=+f[b+120>>2]-+f[b+56>>2];ta=+f[Fa+48>>2];oa=+f[G>>2];pa=+f[F>>2];na=+f[k>>2];la=+f[B>>2];ma=+f[m>>2];L=+f[e>>2];E=+f[R>>2];K=+f[g>>2];f[Fa+468>>2]=(xa+ua)*2.0*.5;f[Fa+468+4>>2]=(ya+va)*2.0*.5;f[Fa+468+8>>2]=wa*.5;f[Fa+456>>2]=(Ba+za)*2.0*.5;f[Fa+456+4>>2]=(Ca+Aa)*2.0*.5;f[Fa+456+8>>2]=Y*.5;U=+f[Fa>>2];S=+f[Fa+16>>2];T=+f[Fa+32>>2];$=+f[Fa+4>>2];Z=+f[Fa+20>>2];_=+f[Fa+36>>2];sa=+f[Fa+8>>2];qa=+f[Fa+24>>2];ra=+f[Fa+40>>2];M=+r(+(ta*U+oa*S+pa*T));V=+r(+(ta*$+oa*Z+pa*_));fa=+r(+(ta*sa+oa*qa+pa*ra));O=+r(+(na*U+la*S+ma*T));W=+r(+(na*$+la*Z+ma*_));ga=+r(+(na*sa+la*qa+ma*ra));ia=+r(+(L*U+E*S+K*T));ja=+r(+(L*$+E*Z+K*_));X=+r(+(L*sa+E*qa+K*ra));l=+r(+(aa*ta+da*oa+ca*pa))-((xa+ua)*2.0*.5+(Ba+za)*2.0*.5*M+(Ca+Aa)*2.0*.5*V+Y*.5*fa);if(l>0.0){ea=Fa;return}if(l>-3402823466385288598117041.0e14){a=1;H=aa*ta+da*oa+ca*pa<0.0&1;I=Fa+48|0}else{a=0;H=0;I=0;l=-3402823466385288598117041.0e14}i=+r(+(aa*na+da*la+ca*ma))-((ya+va)*2.0*.5+(Ba+za)*2.0*.5*O+(Ca+Aa)*2.0*.5*W+Y*.5*ga);if(i>0.0){ea=Fa;return}if(i>l){a=2;H=aa*na+da*la+ca*ma<0.0&1;I=k;l=i}i=+r(+(aa*L+da*E+ca*K))-(wa*.5+(Ba+za)*2.0*.5*ia+(Ca+Aa)*2.0*.5*ja+Y*.5*X);if(i>0.0){ea=Fa;return}if(i>l){a=3;H=aa*L+da*E+ca*K<0.0&1;I=e;l=i}i=+r(+(aa*U+da*S+ca*T))-((Ba+za)*2.0*.5+(wa*.5*ia+((xa+ua)*2.0*.5*M+(ya+va)*2.0*.5*O)));if(i>0.0){ea=Fa;return}if(i>l){a=4;H=aa*U+da*S+ca*T<0.0&1;I=Fa;l=i}i=+r(+(aa*$+da*Z+ca*_))-((Ca+Aa)*2.0*.5+(wa*.5*ja+((xa+ua)*2.0*.5*V+(ya+va)*2.0*.5*W)));if(i>0.0){ea=Fa;return}if(i>l){a=5;H=aa*$+da*Z+ca*_<0.0&1;I=Fa+4|0;l=i}i=+r(+(aa*sa+da*qa+ca*ra))-(Y*.5+(wa*.5*X+((xa+ua)*2.0*.5*fa+(ya+va)*2.0*.5*ga)));if(i>0.0){ea=Fa;return}if(i>l){a=6;H=aa*sa+da*qa+ca*ra<0.0&1;I=Fa+8|0;l=i}o=(aa*L+da*E+ca*K)*(na*U+la*S+ma*T)-(aa*na+da*la+ca*ma)*(L*U+E*S+K*T);q=+r(+o)-(Y*.5*(V+9.999999747378752e-06)+((ya+va)*2.0*.5*(ia+9.999999747378752e-06)+wa*.5*(O+9.999999747378752e-06)+(Ca+Aa)*2.0*.5*(fa+9.999999747378752e-06)));if(q>1.1920928955078125e-07){ea=Fa;return}t=(L*U+E*S+K*T)*(L*U+E*S+K*T)+0.0;A=(na*U+la*S+ma*T)*(na*U+la*S+ma*T);p=+s(+(A+t));if(p>1.1920928955078125e-07?q/p*1.0499999523162842>l:0){n=0.0/p;j=-(L*U+E*S+K*T)/p;i=(na*U+la*S+ma*T)/p;a=7;H=o<0.0&1;I=0;l=q/p}else{n=0.0;j=0.0;i=0.0}o=(aa*L+da*E+ca*K)*(na*$+la*Z+ma*_)-(aa*na+da*la+ca*ma)*(L*$+E*Z+K*_);q=+r(+o)-(Y*.5*(M+9.999999747378752e-06)+((ya+va)*2.0*.5*(ja+9.999999747378752e-06)+wa*.5*(W+9.999999747378752e-06)+(Ba+za)*2.0*.5*(fa+9.999999747378752e-06)));if(q>1.1920928955078125e-07){ea=Fa;return}u=(L*$+E*Z+K*_)*(L*$+E*Z+K*_)+0.0;C=(na*$+la*Z+ma*_)*(na*$+la*Z+ma*_);p=+s(+(C+u));if(p>1.1920928955078125e-07?q/p*1.0499999523162842>l:0){n=0.0/p;j=-(L*$+E*Z+K*_)/p;i=(na*$+la*Z+ma*_)/p;a=8;H=o<0.0&1;I=0;l=q/p}o=(aa*L+da*E+ca*K)*(na*sa+la*qa+ma*ra)-(aa*na+da*la+ca*ma)*(L*sa+E*qa+K*ra);q=+r(+o)-((Ca+Aa)*2.0*.5*(M+9.999999747378752e-06)+((Ba+za)*2.0*.5*(V+9.999999747378752e-06)+((ya+va)*2.0*.5*(X+9.999999747378752e-06)+wa*.5*(ga+9.999999747378752e-06))));if(q>1.1920928955078125e-07){ea=Fa;return}w=(L*sa+E*qa+K*ra)*(L*sa+E*qa+K*ra)+0.0;D=(na*sa+la*qa+ma*ra)*(na*sa+la*qa+ma*ra);p=+s(+(D+w));if(p>1.1920928955078125e-07?q/p*1.0499999523162842>l:0){n=0.0/p;j=-(L*sa+E*qa+K*ra)/p;i=(na*sa+la*qa+ma*ra)/p;a=9;H=o<0.0&1;I=0;l=q/p}o=(aa*ta+da*oa+ca*pa)*(L*U+E*S+K*T)-(aa*L+da*E+ca*K)*(ta*U+oa*S+pa*T);q=+r(+o)-(Y*.5*(W+9.999999747378752e-06)+((xa+ua)*2.0*.5*(ia+9.999999747378752e-06)+wa*.5*(M+9.999999747378752e-06)+(Ca+Aa)*2.0*.5*(ga+9.999999747378752e-06)));if(q>1.1920928955078125e-07){ea=Fa;return}x=(ta*U+oa*S+pa*T)*(ta*U+oa*S+pa*T);p=+s(+(x+t));do if(p>1.1920928955078125e-07){if(!(q/p*1.0499999523162842>l))break;n=(L*U+E*S+K*T)/p;j=0.0/p;i=-(ta*U+oa*S+pa*T)/p;a=10;H=o<0.0&1;I=0;l=q/p}while(0);o=(aa*ta+da*oa+ca*pa)*(L*$+E*Z+K*_)-(aa*L+da*E+ca*K)*(ta*$+oa*Z+pa*_);q=+r(+o)-(Y*.5*(O+9.999999747378752e-06)+((xa+ua)*2.0*.5*(ja+9.999999747378752e-06)+wa*.5*(V+9.999999747378752e-06)+(Ba+za)*2.0*.5*(ga+9.999999747378752e-06)));if(q>1.1920928955078125e-07){ea=Fa;return}v=(ta*$+oa*Z+pa*_)*(ta*$+oa*Z+pa*_);p=+s(+(v+u));do if(p>1.1920928955078125e-07){if(!(q/p*1.0499999523162842>l))break;n=(L*$+E*Z+K*_)/p;j=0.0/p;i=-(ta*$+oa*Z+pa*_)/p;a=11;H=o<0.0&1;I=0;l=q/p}while(0);o=(aa*ta+da*oa+ca*pa)*(L*sa+E*qa+K*ra)-(aa*L+da*E+ca*K)*(ta*sa+oa*qa+pa*ra);q=+r(+o)-((Ca+Aa)*2.0*.5*(O+9.999999747378752e-06)+((Ba+za)*2.0*.5*(W+9.999999747378752e-06)+((xa+ua)*2.0*.5*(X+9.999999747378752e-06)+wa*.5*(fa+9.999999747378752e-06))));if(q>1.1920928955078125e-07){ea=Fa;return}t=(ta*sa+oa*qa+pa*ra)*(ta*sa+oa*qa+pa*ra);p=+s(+(t+w));do if(p>1.1920928955078125e-07){if(!(q/p*1.0499999523162842>l))break;n=(L*sa+E*qa+K*ra)/p;j=0.0/p;i=-(ta*sa+oa*qa+pa*ra)/p;a=12;H=o<0.0&1;I=0;l=q/p}while(0);p=(aa*na+da*la+ca*ma)*(ta*U+oa*S+pa*T)-(aa*ta+da*oa+ca*pa)*(na*U+la*S+ma*T);q=+r(+p)-(Y*.5*(ja+9.999999747378752e-06)+((xa+ua)*2.0*.5*(O+9.999999747378752e-06)+(ya+va)*2.0*.5*(M+9.999999747378752e-06)+(Ca+Aa)*2.0*.5*(X+9.999999747378752e-06)));if(q>1.1920928955078125e-07){ea=Fa;return}o=+s(+(A+x+0.0));do if(o>1.1920928955078125e-07){if(!(q/o*1.0499999523162842>l))break;n=-(na*U+la*S+ma*T)/o;j=(ta*U+oa*S+pa*T)/o;i=0.0/o;a=13;H=p<0.0&1;I=0;l=q/o}while(0);q=(aa*na+da*la+ca*ma)*(ta*$+oa*Z+pa*_)-(aa*ta+da*oa+ca*pa)*(na*$+la*Z+ma*_);p=+r(+q)-(Y*.5*(ia+9.999999747378752e-06)+((xa+ua)*2.0*.5*(W+9.999999747378752e-06)+(ya+va)*2.0*.5*(V+9.999999747378752e-06)+(Ba+za)*2.0*.5*(X+9.999999747378752e-06)));if(p>1.1920928955078125e-07){ea=Fa;return}o=+s(+(C+v+0.0));do if(o>1.1920928955078125e-07){if(!(p/o*1.0499999523162842>l))break;n=-(na*$+la*Z+ma*_)/o;j=(ta*$+oa*Z+pa*_)/o;i=0.0/o;a=14;H=q<0.0&1;I=0;l=p/o}while(0);q=(aa*na+da*la+ca*ma)*(ta*sa+oa*qa+pa*ra)-(aa*ta+da*oa+ca*pa)*(na*sa+la*qa+ma*ra);p=+r(+q)-((Ca+Aa)*2.0*.5*(ia+9.999999747378752e-06)+((Ba+za)*2.0*.5*(ja+9.999999747378752e-06)+((xa+ua)*2.0*.5*(ga+9.999999747378752e-06)+(ya+va)*2.0*.5*(fa+9.999999747378752e-06))));if(p>1.1920928955078125e-07){ea=Fa;return}o=+s(+(D+t+0.0));do if(o>1.1920928955078125e-07){if(!(p/o*1.0499999523162842>l)){P=55;break}n=-(na*sa+la*qa+ma*ra)/o;j=(ta*sa+oa*qa+pa*ra)/o;i=0.0/o;a=15;H=q<0.0&1;l=p/o;P=58}else P=55;while(0);do if((P|0)==55){if(!a){ea=Fa;return}if(!I){P=58;break}Da=c[I>>2]|0;Ea=c[I+16>>2]|0;J=c[I+32>>2]|0;i=(c[h>>2]=Da,+f[h>>2]);j=(c[h>>2]=Ea,+f[h>>2]);n=(c[h>>2]=J,+f[h>>2]);Q=a;a=Da;I=Ea;O=l}while(0);if((P|0)==58){sa=ta*n+j*+f[k>>2]+i*+f[e>>2];J=(f[h>>2]=sa,c[h>>2]|0);ta=n*+f[G>>2]+j*+f[B>>2]+i*+f[R>>2];I=(f[h>>2]=ta,c[h>>2]|0);O=n*+f[F>>2]+j*+f[m>>2]+i*+f[g>>2];i=sa;j=ta;n=O;Q=a;a=J;J=(f[h>>2]=O,c[h>>2]|0);O=l}if(H){a=(f[h>>2]=-i,c[h>>2]|0);I=(f[h>>2]=-j,c[h>>2]|0);J=(f[h>>2]=-n,c[h>>2]|0)}if((Q|0)>6){M=(c[h>>2]=a,+f[h>>2]);L=(c[h>>2]=I,+f[h>>2]);K=(c[h>>2]=J,+f[h>>2]);u=+f[Fa+48>>2];w=+f[G>>2];o=+f[F>>2];i=(u*M+w*L+o*K>0.0?1.0:-1.0)*((xa+ua)*2.0*.5);j=+f[k>>2];v=+f[B>>2];t=+f[m>>2];x=(j*M+v*L+t*K>0.0?1.0:-1.0)*((ya+va)*2.0*.5);E=+f[e>>2];C=+f[R>>2];D=+f[g>>2];l=(E*M+C*L+D*K>0.0?1.0:-1.0)*(wa*.5);E=+f[b+48>>2]+i*u+x*j+l*E;C=+f[b+52>>2]+i*w+x*v+l*C;D=+f[b+56>>2]+i*o+x*t+l*D;c[Fa+352>>2]=c[b+112>>2];c[Fa+352+4>>2]=c[b+112+4>>2];c[Fa+352+8>>2]=c[b+112+8>>2];l=+f[Fa>>2];t=+f[Fa+16>>2];x=+f[Fa+32>>2];o=(l*M+t*L+x*K>0.0?-1.0:1.0)*((Ba+za)*2.0*.5);i=+f[Fa+4>>2];v=+f[Fa+20>>2];w=+f[Fa+36>>2];j=(i*M+v*L+w*K>0.0?-1.0:1.0)*((Ca+Aa)*2.0*.5);v=+f[Fa+352+4>>2]+o*t+j*v;w=+f[Fa+352+8>>2]+o*x+j*w;x=+f[Fa+8>>2];t=+f[Fa+24>>2];u=+f[Fa+40>>2];A=(x*M+t*L+u*K>0.0?-1.0:1.0)*+f[Fa+456+8>>2];x=+f[Fa+352>>2]+o*l+j*i+A*x;f[Fa+352>>2]=x;f[Fa+352+4>>2]=v+A*t;f[Fa+352+8>>2]=w+A*u;Ea=Q+-7|0;i=+f[Fa+48+(((Ea|0)/3|0)<<2)>>2];j=+f[Fa+48+(((Ea|0)/3|0)+4<<2)>>2];l=+f[Fa+48+(((Ea|0)/3|0)+8<<2)>>2];Ea=Ea+(z((Ea|0)/3|0,-3)|0)|0;o=+f[Fa+(Ea<<2)>>2];p=+f[Fa+(Ea+4<<2)>>2];q=+f[Fa+(Ea+8<<2)>>2];n=1.0-(i*o+j*p+l*q)*(i*o+j*p+l*q);if(!(n<=9.999999747378752e-05))i=(((x-E)*i+(v+A*t-C)*j+(w+A*u-D)*l)*(i*o+j*p+l*q)-((x-E)*o+(v+A*t-C)*p+(w+A*u-D)*q))*(1.0/n);else i=0.0;f[Fa+352>>2]=x+i*o;f[Fa+352+4>>2]=v+A*t+i*p;f[Fa+352+8>>2]=w+A*u+i*q;Ea=c[(c[d>>2]|0)+16>>2]|0;f[Fa+320>>2]=-M;f[Fa+320+4>>2]=-L;f[Fa+320+8>>2]=-K;f[Fa+320+12>>2]=0.0;Na[Ea&15](d,Fa+320|0,Fa+352|0,O);ea=Fa;return}Da=(Q|0)<4;ga=(c[h>>2]=a,+f[h>>2]);if(Da){da=(c[h>>2]=I,+f[h>>2]);fa=(c[h>>2]=J,+f[h>>2]);N=Fa+48|0;G=Fa+16|0;F=Fa+32|0;ka=Fa;ba=Fa+468|0;P=Fa+456|0;B=Fa+20|0;m=Fa+36|0;k=Fa+4|0;a=Fa+24|0;g=Fa+40|0;e=Fa+8|0;ca=ga;Ea=b+48|0;H=b+112|0}else{da=-(c[h>>2]=I,+f[h>>2]);fa=-(c[h>>2]=J,+f[h>>2]);N=Fa;ka=Fa+48|0;ba=Fa+456|0;P=Fa+468|0;a=R;ca=-ga;Ea=b+112|0;H=b+48|0}x=ca*+f[ka>>2]+da*+f[G>>2]+fa*+f[F>>2];f[Fa+440>>2]=x;A=ca*+f[k>>2]+da*+f[B>>2]+fa*+f[m>>2];f[Fa+440+4>>2]=A;C=ca*+f[e>>2]+da*+f[a>>2]+fa*+f[g>>2];f[Fa+440+8>>2]=C;x=+r(+x);A=+r(+A);C=+r(+C);e=A>x?(A>C?1:2):x>C?0:2;b=(A>x?A>C:x>C)?2:1;l=+f[P+(e<<2)>>2];j=+f[H>>2]-+f[Ea>>2];i=l*+f[ka+(e<<2)>>2];if(+f[Fa+440+(e<<2)>>2]<0.0){$=j+i;aa=+f[H+4>>2]-+f[Ea+4>>2]+l*+f[ka+((e|4)<<2)>>2];_=+f[H+8>>2]-+f[Ea+8>>2]+l*+f[ka+((e|8)<<2)>>2]}else{$=j-i;aa=+f[H+4>>2]-+f[Ea+4>>2]-l*+f[ka+((e|4)<<2)>>2];_=+f[H+8>>2]-+f[Ea+8>>2]-l*+f[ka+((e|8)<<2)>>2]}Q=(Da?-1:-4)+Q|0;switch(Q|0){case 0:{e=1;g=2;break}case 1:{e=0;g=2;break}default:{e=0;g=1}}R=N+(e<<2)|0;Y=+f[R>>2];W=+f[R+16>>2];X=+f[R+32>>2];Z=$*Y+aa*W+_*X;N=N+(g<<2)|0;K=+f[N>>2];D=+f[N+16>>2];E=+f[N+32>>2];V=$*K+aa*D+_*E;N=ka+((x>C&(A>x^1)&1)<<2)|0;O=+f[N>>2];L=+f[N+16>>2];M=+f[N+32>>2];R=ka+(b<<2)|0;U=+f[R>>2];S=+f[R+16>>2];T=+f[R+32>>2];w=+f[P+((x>C&(A>x^1)&1)<<2)>>2];v=+f[P+(b<<2)>>2];u=(Y*U+W*S+X*T)*v;v=(K*U+D*S+E*T)*v;q=Z-(Y*O+W*L+X*M)*w-u;t=V-(K*O+D*L+E*M)*w-v;l=Z-(Y*O+W*L+X*M)*w+u;f[Fa+416>>2]=l;n=V-(K*O+D*L+E*M)*w+v;o=Z+(Y*O+W*L+X*M)*w+u;p=V+(K*O+D*L+E*M)*w+v;u=Z+(Y*O+W*L+X*M)*w-u;v=V+(K*O+D*L+E*M)*w-v;G=c[ba+(e<<2)>>2]|0;H=c[ba+(g<<2)>>2]|0;w=(c[h>>2]=G,+f[h>>2]);do if(!(w>-q))if(w>-l){a=1;i=-l;e=1;g=Fa+256|0;P=78}else{j=l;i=-l;e=0;g=Fa+256|0;P=153}else{f[Fa+256>>2]=q;f[Fa+256+4>>2]=t;if(!(w>-l)){a=w>-l;i=-l;e=2;g=Fa+256+8|0;P=78;break}f[Fa+256+8>>2]=l;f[Fa+256+8+4>>2]=n;e=2;g=Fa+256+8|0;P=152}while(0);do if((P|0)==78){f[g+4>>2]=t+(-w-q)*((n-t)/(l-q));f[g>>2]=-w;g=g+8|0;if(!a){j=l;P=153;break}f[g>>2]=l;f[g+4>>2]=n;if(!(e+1&8)){e=e+1|0;P=152}else{e=e+1|0;P=102}}while(0);if((P|0)==152){i=+f[Fa+416>>2];j=i;i=-i;g=g+8|0;P=153}a:do if((P|0)==153){if(i-o){f[g+4>>2]=n+(-w-j)*((p-n)/(o-j));f[g>>2]=-w;e=e+1|0;if(!(e&8))g=g+8|0;else{P=102;break}}if(w>-o){f[g>>2]=o;f[g+4>>2]=p;e=e+1|0;if(e&8|0){P=102;break}g=g+8|0;if(w>-o^w>-u){a=w>-u;P=159}else{a=w>-u;P=161}}else if(w>-o^w>-u){a=w>-u;P=159}else{a=w>-u;P=161}if((P|0)==159){f[g+4>>2]=p+(-w-o)*((v-p)/(u-o));f[g>>2]=-w;e=e+1|0;if(e&8|0){P=102;break}g=g+8|0;if(a)P=162;else P=163}else if((P|0)==161)if(a)P=162;else P=163;do if((P|0)==162){f[g>>2]=u;f[g+4>>2]=v;e=e+1|0;if(e&8|0){P=102;break a}if(a^w>-q){g=g+8|0;P=165}else P=167}else if((P|0)==163){if(w>-q){P=165;break}if((e|0)>0)P=167;else{e=0;P=79}}while(0);if((P|0)==165){f[g+4>>2]=v+(-w-u)*((t-v)/(q-u));f[g>>2]=-w;e=e+1|0;if(!(e&8))P=167;else{P=102;break}}b:do if((P|0)==167){B=e;e=0;F=Fa+256|0;g=Fa+352|0;while(1){i=+f[F>>2];if(i>2]=i;c[g+4>>2]=c[F+4>>2];e=e+1|0;if(e&8|0){P=79;break b}i=+f[F>>2];g=g+8|0}m=(B|0)>1;k=F;F=F+8|0;a=m?F:Fa+256|0;j=+f[a>>2];if(i>2];f[g+4>>2]=Ca+(w-i)*((+f[a+4>>2]-Ca)/(j-i));c[g>>2]=G;e=e+1|0;if(!(e&8))g=g+8|0;else{P=79;break b}}if(!m)break;else B=B+-1|0}if((e|0)<=0){e=0;P=79;break}n=(c[h>>2]=H,+f[h>>2]);g=0;F=Fa+352|0;a=Fa+256|0;while(1){k=F+4|0;i=+f[k>>2];if(n>-i){c[a>>2]=c[F>>2];c[a+4>>2]=c[k>>2];g=g+1|0;if(g&8|0){e=g;break b}j=+f[k>>2];l=j;j=-j;a=a+8|0}else{l=i;j=-i}B=(e|0)>1;m=F;F=F+8|0;k=B?F:Fa+352|0;i=+f[k+4>>2];if(j-i){Ca=+f[m>>2];f[a>>2]=Ca+(-n-l)*((+f[k>>2]-Ca)/(i-l));f[a+4>>2]=-n;g=g+1|0;if(!(g&8))a=a+8|0;else{e=g;break b}}if(!B)break;else e=e+-1|0}if((g|0)<=0){e=0;P=79;break}e=0;F=Fa+256|0;a=Fa+352|0;while(1){k=F+4|0;i=+f[k>>2];if(i>2]=c[F>>2];c[a+4>>2]=c[k>>2];e=e+1|0;if(e&8|0){P=79;break b}i=+f[k>>2];a=a+8|0}B=(g|0)>1;m=F;F=F+8|0;k=B?F:Fa+256|0;j=+f[k+4>>2];if(i>2];f[a>>2]=Ca+(n-i)*((+f[k>>2]-Ca)/(j-i));c[a+4>>2]=H;e=e+1|0;if(!(e&8))a=a+8|0;else{P=79;break b}}if(!B){P=79;break}else g=g+-1|0}}while(0);if((P|0)==79)vh(Fa+256|0,Fa+352|0,e<<3|0)|0;if((e|0)>=1)P=104}while(0);if((P|0)==102)P=104;if((P|0)==104){v=1.0/((Y*O+W*L+X*M)*(K*U+D*S+E*T)-(K*O+D*L+E*M)*(Y*U+W*S+X*T));u=+f[ba+(Q<<2)>>2];t=+f[N>>2];o=+f[R>>2];p=+f[ka+((x>C&(A>x^1)&1|4)<<2)>>2];q=+f[ka+((b|4)<<2)>>2];n=+f[ka+((x>C&(A>x^1)&1|8)<<2)>>2];l=+f[ka+((b|8)<<2)>>2];B=0;a=0;do{g=a<<1;i=+f[Fa+256+(g<<2)>>2];j=+f[Fa+256+((g|1)<<2)>>2];za=(K*U+D*S+E*T)*v*(i-Z)-(Y*U+W*S+X*T)*v*(j-V);Ca=(Y*O+W*L+X*M)*v*(j-V)-(K*O+D*L+E*M)*v*(i-Z);g=B*3|0;Aa=$+za*t+Ca*o;f[Fa+160+(g<<2)>>2]=Aa;Ba=aa+za*p+Ca*q;f[Fa+160+(g+1<<2)>>2]=Ba;Ca=_+za*n+Ca*l;f[Fa+160+(g+2<<2)>>2]=Ca;Ca=u-(ca*Aa+da*Ba+fa*Ca);f[Fa+128+(B<<2)>>2]=Ca;g=B<<1;if(Ca>=0.0){f[Fa+256+(g<<2)>>2]=i;f[Fa+256+((g|1)<<2)>>2]=j;B=B+1|0}a=a+1|0}while((a|0)!=(e|0));c:do if((B|0)>=1){G=(B|0)<4?B:4;H=(G|0)>1?G:1;if((B|0)<=(H|0))if(Da){g=Ea+4|0;a=Ea+8|0;j=-(c[h>>2]=I,+f[h>>2]);i=-(c[h>>2]=J,+f[h>>2]);e=0;while(1){Da=e*3|0;f[Fa+352>>2]=+f[Fa+160+(Da<<2)>>2]+ +f[Ea>>2];f[Fa+352+4>>2]=+f[Fa+160+(Da+1<<2)>>2]+ +f[g>>2];f[Fa+352+8>>2]=+f[Fa+160+(Da+2<<2)>>2]+ +f[a>>2];Da=c[(c[d>>2]|0)+16>>2]|0;f[Fa+320>>2]=-ga;f[Fa+320+4>>2]=j;f[Fa+320+8>>2]=i;f[Fa+320+12>>2]=0.0;Na[Da&15](d,Fa+320|0,Fa+352|0,-+f[Fa+128+(e<<2)>>2]);e=e+1|0;if((e|0)==(B|0))break c}}else{g=Ea+4|0;a=Ea+8|0;j=(c[h>>2]=I,+f[h>>2]);i=(c[h>>2]=J,+f[h>>2]);e=0;while(1){Da=e*3|0;Ca=+f[Fa+128+(e<<2)>>2];f[Fa+352>>2]=+f[Fa+160+(Da<<2)>>2]+ +f[Ea>>2]-Ca*ga;f[Fa+352+4>>2]=+f[Fa+160+(Da+1<<2)>>2]+ +f[g>>2]-Ca*j;f[Fa+352+8>>2]=+f[Fa+160+(Da+2<<2)>>2]+ +f[a>>2]-Ca*i;Da=c[(c[d>>2]|0)+16>>2]|0;f[Fa+320>>2]=-ga;f[Fa+320+4>>2]=-j;f[Fa+320+8>>2]=-i;f[Fa+320+12>>2]=0.0;Na[Da&15](d,Fa+320|0,Fa+352|0,-Ca);e=e+1|0;if((e|0)==(B|0))break c}}d:do if((B|0)>1){g=1;k=0;j=+f[Fa+128>>2];while(1){i=+f[Fa+128+(g<<2)>>2];e=i>j;k=e?g:k;g=g+1|0;if((g|0)==(B|0))break;else j=e?i:j}switch(B|0){case 1:{e=Fa+96|0;g=Fa+96|0;a=1;P=120;break d}case 2:{e=Fa+96|0;g=Fa+96|0;a=2;j=(+f[Fa+256>>2]+ +f[Fa+256+8>>2])*.5;i=(+f[Fa+256+4>>2]+ +f[Fa+256+12>>2])*.5;P=124;break d}default:{}}g=B+-1|0;i=0.0;j=0.0;q=0.0;e=0;do{ka=e<<1;za=+f[Fa+256+(ka<<2)>>2];Aa=+f[Fa+256+(ka+3<<2)>>2];Ba=+f[Fa+256+(ka+2<<2)>>2];Ca=+f[Fa+256+((ka|1)<<2)>>2];i=i+(za*Aa-Ba*Ca);j=j+(za+Ba)*(za*Aa-Ba*Ca);q=q+(Aa+Ca)*(za*Aa-Ba*Ca);e=e+1|0}while((e|0)!=(g|0));ka=B<<1;l=+f[Fa+256+(ka+-2<<2)>>2];n=+f[Fa+256+4>>2];o=+f[Fa+256>>2];p=+f[Fa+256+(ka+-1<<2)>>2];i=i+(l*n-o*p);ka=+r(+i)>1.1920928955078125e-07;i=ka?1.0/(i*3.0):999999984306749440.0;if((B|0)>0){m=Fa+96|0;F=Fa+352|0;g=Fa+96|0;a=B;j=(j+(l+o)*(l*n-o*p))*i;i=(q+(n+p)*(l*n-o*p))*i;P=127;break}g=Fa+96|0;e=0}else{e=Fa+96|0;g=Fa+96|0;a=B;k=0;P=120}while(0);if((P|0)==120){j=+f[Fa+256>>2];i=+f[Fa+256+4>>2];P=124}if((P|0)==124){m=e;F=Fa+352|0;P=127}if((P|0)==127){e=0;do{ka=e<<1;f[Fa+352+(e<<2)>>2]=+y(+(+f[Fa+256+((ka|1)<<2)>>2]-i),+(+f[Fa+256+(ka<<2)>>2]-j));e=e+1|0}while((e|0)!=(a|0));e=0;do{c[Fa+320+(e<<2)>>2]=1;e=e+1|0}while((e|0)!=(a|0));e=1;B=a}a=Fa+320+(k<<2)|0;c[a>>2]=0;c[g>>2]=k;e:do if((G|0)>1){n=+f[Fa+352+(k<<2)>>2];if(!e){e=Fa+96+4|0;g=1;while(1){c[e>>2]=k;c[a>>2]=0;g=g+1|0;if((g|0)==(H|0))break e;else e=e+4|0}}a=Fa+96+4|0;m=1;while(1){l=6.2831854820251465/+(H|0)*+(m|0)+n;l=l>3.1415927410125732?l+-6.2831854820251465:l;c[a>>2]=k;e=k;g=0;j=1.0e9;while(1){do if(!(c[Fa+320+(g<<2)>>2]|0))i=j;else{i=+r(+(+f[Fa+352+(g<<2)>>2]-l));i=i>3.1415927410125732?6.2831854820251465-i:i;if(!(i>2]=g;e=g}while(0);g=g+1|0;if((g|0)==(B|0))break;else j=i}c[Fa+320+(e<<2)>>2]=0;m=m+1|0;if((m|0)==(H|0))break;else a=a+4|0}}while(0);if((H|0)>0){g=Ea+4|0;a=Ea+8|0;j=(c[h>>2]=I,+f[h>>2]);i=(c[h>>2]=J,+f[h>>2]);if(Da){e=0;do{Da=c[Fa+96+(e<<2)>>2]|0;f[Fa+352>>2]=+f[Fa+160+(Da*3<<2)>>2]+ +f[Ea>>2];f[Fa+352+4>>2]=+f[Fa+160+((Da*3|0)+1<<2)>>2]+ +f[g>>2];f[Fa+352+8>>2]=+f[Fa+160+((Da*3|0)+2<<2)>>2]+ +f[a>>2];ka=c[(c[d>>2]|0)+16>>2]|0;f[Fa+320>>2]=-ga;f[Fa+320+4>>2]=-j;f[Fa+320+8>>2]=-i;f[Fa+320+12>>2]=0.0;Na[ka&15](d,Fa+320|0,Fa+352|0,-+f[Fa+128+(Da<<2)>>2]);e=e+1|0}while(e>>>0>>0)}else{e=0;do{ka=c[Fa+96+(e<<2)>>2]|0;za=+f[Fa+160+(ka*3<<2)>>2]+ +f[Ea>>2];f[Fa+352>>2]=za;Aa=+f[Fa+160+((ka*3|0)+1<<2)>>2]+ +f[g>>2];f[Fa+352+4>>2]=Aa;Ba=+f[Fa+160+((ka*3|0)+2<<2)>>2]+ +f[a>>2];f[Fa+352+8>>2]=Ba;Da=c[(c[d>>2]|0)+16>>2]|0;f[Fa+320>>2]=-ga;f[Fa+320+4>>2]=-j;f[Fa+320+8>>2]=-i;f[Fa+320+12>>2]=0.0;Ca=+f[Fa+128+(ka<<2)>>2];f[Fa+424>>2]=za-Ca*ga;f[Fa+424+4>>2]=Aa-Ca*j;f[Fa+424+8>>2]=Ba-Ca*i;f[Fa+424+12>>2]=0.0;Na[Da&15](d,Fa+320|0,Fa+424|0,-Ca);e=e+1|0}while(e>>>0>>0)}}}while(0)}ea=Fa;return}function jb(b,d,e,g){b=b|0;d=d|0;e=e|0;g=+g;var i=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0,q=0.0,r=0,t=0.0,u=0.0,v=0.0,w=0.0,x=0,y=0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0.0,Y=0.0,Z=0.0,_=0.0,$=0.0,aa=0.0;P=ea;ea=ea+448|0;if(!(a[b+527>>0]|0)){ea=P;return}J=c[b+28>>2]|0;I=+f[b+348>>2];H=+f[b+352>>2];B=+f[b+356>>2];k=+f[J+52>>2];z=I*+f[J+4>>2]+H*+f[J+8>>2]+B*+f[J+12>>2]+k;l=+f[J+56>>2];D=I*+f[J+20>>2]+H*+f[J+24>>2]+B*+f[J+28>>2]+l;m=+f[J+60>>2];B=I*+f[J+36>>2]+H*+f[J+40>>2]+B*+f[J+44>>2]+m;K=c[b+32>>2]|0;H=+f[b+412>>2];I=+f[b+416>>2];C=+f[b+420>>2];n=+f[K+52>>2];A=H*+f[K+4>>2]+I*+f[K+8>>2]+C*+f[K+12>>2]+n;q=+f[K+56>>2];E=H*+f[K+20>>2]+I*+f[K+24>>2]+C*+f[K+28>>2]+q;t=+f[K+60>>2];C=H*+f[K+36>>2]+I*+f[K+40>>2]+C*+f[K+44>>2]+t;if(!(a[b+524>>0]|0)){v=+f[d+192>>2]+ +f[d+80>>2];w=+f[d+196>>2]+ +f[d+84>>2];u=+f[d+200>>2]+ +f[d+88>>2];H=+f[e+192>>2]+ +f[e+80>>2];G=+f[e+196>>2]+ +f[e+84>>2];I=+f[e+200>>2]+ +f[e+88>>2];F=+f[d+176>>2]+ +f[d+64>>2]+((B-m)*w-(D-l)*u)-(+f[e+176>>2]+ +f[e+64>>2]+((C-t)*G-(E-q)*I));I=+f[d+180>>2]+ +f[d+68>>2]+((z-k)*u-(B-m)*v)-(+f[e+180>>2]+ +f[e+68>>2]+((A-n)*I-(C-t)*H));G=+f[d+184>>2]+ +f[d+72>>2]+((D-l)*v-(z-k)*w)-(+f[e+184>>2]+ +f[e+72>>2]+((E-q)*H-(A-n)*G));y=(c[d+240>>2]|0)==0;x=(c[e+240>>2]|0)==0;r=0;do{w=1.0/+f[b+48+(r*84|0)+80>>2];i=b+48+(r*84|0)|0;v=+f[i>>2];p=b+48+(r*84|0)+4|0;u=+f[p>>2];o=b+48+(r*84|0)+8|0;H=+f[o>>2];H=w*(((z-A)*v+(D-E)*u+(B-C)*H)*-.30000001192092896/g)-w*(F*v+I*u+G*H);f[b+36>>2]=+f[b+36>>2]+H;u=+f[o>>2];v=+f[p>>2];w=+f[i>>2];j=+f[J+344>>2];if(!y){S=((D-l)*u-(B-m)*v)*+f[J+296>>2]+((B-m)*w-(z-k)*u)*+f[J+300>>2]+((z-k)*v-(D-l)*w)*+f[J+304>>2];Q=((D-l)*u-(B-m)*v)*+f[J+280>>2]+((B-m)*w-(z-k)*u)*+f[J+284>>2]+((z-k)*v-(D-l)*w)*+f[J+288>>2];R=((D-l)*u-(B-m)*v)*+f[J+264>>2]+((B-m)*w-(z-k)*u)*+f[J+268>>2]+((z-k)*v-(D-l)*w)*+f[J+272>>2];U=H*(v*j)*+f[d+116>>2];T=H*(u*j)*+f[d+120>>2];f[d+64>>2]=H*(w*j)*+f[d+112>>2]+ +f[d+64>>2];f[d+68>>2]=U+ +f[d+68>>2];f[d+72>>2]=T+ +f[d+72>>2];Q=Q*(H*+f[d+100>>2]);j=S*(H*+f[d+104>>2]);f[d+80>>2]=R*(H*+f[d+96>>2])+ +f[d+80>>2];f[d+84>>2]=Q+ +f[d+84>>2];f[d+88>>2]=j+ +f[d+88>>2]}j=+f[K+344>>2];if(!x){U=((E-q)*u-(C-t)*v)*+f[K+296>>2]+((C-t)*w-(A-n)*u)*+f[K+300>>2]+((A-n)*v-(E-q)*w)*+f[K+304>>2];T=((E-q)*u-(C-t)*v)*+f[K+280>>2]+((C-t)*w-(A-n)*u)*+f[K+284>>2]+((A-n)*v-(E-q)*w)*+f[K+288>>2];S=((E-q)*u-(C-t)*v)*+f[K+264>>2]+((C-t)*w-(A-n)*u)*+f[K+268>>2]+((A-n)*v-(E-q)*w)*+f[K+272>>2];Q=j*+f[p>>2]*-H*+f[e+116>>2];R=j*+f[o>>2]*-H*+f[e+120>>2];f[e+64>>2]=+f[e+112>>2]*(j*+f[i>>2]*-H)+ +f[e+64>>2];f[e+68>>2]=Q+ +f[e+68>>2];f[e+72>>2]=R+ +f[e+72>>2];T=T*(+f[e+100>>2]*-H);U=U*(+f[e+104>>2]*-H);f[e+80>>2]=S*(+f[e+96>>2]*-H)+ +f[e+80>>2];f[e+84>>2]=T+ +f[e+84>>2];f[e+88>>2]=U+ +f[e+88>>2]}r=r+1|0}while((r|0)!=3)}do if(!(a[b+552>>0]|0)){j=+f[b+440>>2];if(!(j>1.1920928955078125e-07)){r=e+192|0;i=d+192|0;y=e+200|0;p=d+200|0;M=e+88|0;J=d+88|0;N=e+80|0;K=d+80|0;x=e+196|0;o=d+196|0;O=e+84|0;L=d+84|0;break}u=+f[d+80>>2];v=+f[d+84>>2];w=+f[d+88>>2];k=+f[e+192>>2]+ +f[e+80>>2]-(+f[d+192>>2]+u);n=+f[e+196>>2]+ +f[e+84>>2]-(+f[d+196>>2]+v);t=+f[e+200>>2]+ +f[e+88>>2]-(+f[d+200>>2]+w);if(k*k+n*n+t*t>1.1920928955078125e-07){m=1.0/+s(+(k*k+n*n+t*t));z=+f[J+264>>2];A=+f[J+280>>2];B=+f[J+296>>2];C=+f[J+268>>2];D=+f[J+284>>2];E=+f[J+300>>2];F=+f[J+272>>2];G=+f[J+288>>2];q=+f[J+304>>2];j=j*(1.0/(k*m*(k*m*z+n*m*A+t*m*B)+n*m*(k*m*C+n*m*D+t*m*E)+t*m*(k*m*F+n*m*G+t*m*q)+(k*m*(k*m*+f[K+264>>2]+n*m*+f[K+280>>2]+t*m*+f[K+296>>2])+n*m*(k*m*+f[K+268>>2]+n*m*+f[K+284>>2]+t*m*+f[K+300>>2])+t*m*(k*m*+f[K+272>>2]+n*m*+f[K+288>>2]+t*m*+f[K+304>>2]))));m=+s(+(t*j*(t*j)+(k*j*(k*j)+n*j*(n*j))));l=k*j*(1.0/m);k=n*j*(1.0/m);j=t*j*(1.0/m);if(c[d+240>>2]|0){U=m*0.0*+f[d+116>>2];T=m*0.0*+f[d+120>>2];f[d+64>>2]=m*0.0*+f[d+112>>2]+ +f[d+64>>2];f[d+68>>2]=U+ +f[d+68>>2];f[d+72>>2]=T+ +f[d+72>>2];T=(l*A+k*D+j*G)*(m*+f[d+100>>2]);U=(l*B+k*E+j*q)*(m*+f[d+104>>2]);f[d+80>>2]=u+(l*z+k*C+j*F)*(m*+f[d+96>>2]);f[d+84>>2]=v+T;f[d+88>>2]=w+U}if(c[e+240>>2]|0){U=l*+f[K+296>>2]+k*+f[K+300>>2]+j*+f[K+304>>2];T=l*+f[K+280>>2]+k*+f[K+284>>2]+j*+f[K+288>>2];S=l*+f[K+264>>2]+k*+f[K+268>>2]+j*+f[K+272>>2];Q=m*-0.0*+f[e+116>>2];R=m*-0.0*+f[e+120>>2];f[e+64>>2]=m*-0.0*+f[e+112>>2]+ +f[e+64>>2];f[e+68>>2]=Q+ +f[e+68>>2];f[e+72>>2]=R+ +f[e+72>>2];T=T*(+f[e+100>>2]*-m);U=U*(+f[e+104>>2]*-m);f[e+80>>2]=S*(+f[e+96>>2]*-m)+ +f[e+80>>2];f[e+84>>2]=T+ +f[e+84>>2];f[e+88>>2]=U+ +f[e+88>>2];r=e+192|0;i=d+192|0;y=e+200|0;p=d+200|0;M=e+88|0;J=d+88|0;N=e+80|0;K=d+80|0;x=e+196|0;o=d+196|0;O=e+84|0;L=d+84|0}else{r=e+192|0;i=d+192|0;y=e+200|0;p=d+200|0;M=e+88|0;J=d+88|0;N=e+80|0;K=d+80|0;x=e+196|0;o=d+196|0;O=e+84|0;L=d+84|0}}else{r=e+192|0;i=d+192|0;y=e+200|0;p=d+200|0;M=e+88|0;J=d+88|0;N=e+80|0;K=d+80|0;x=e+196|0;o=d+196|0;O=e+84|0;L=d+84|0}}else{c[P+352>>2]=c[J+4>>2];c[P+352+4>>2]=c[J+4+4>>2];c[P+352+8>>2]=c[J+4+8>>2];c[P+352+12>>2]=c[J+4+12>>2];c[P+352+16>>2]=c[J+20>>2];c[P+352+16+4>>2]=c[J+20+4>>2];c[P+352+16+8>>2]=c[J+20+8>>2];c[P+352+16+12>>2]=c[J+20+12>>2];c[P+352+32>>2]=c[J+36>>2];c[P+352+32+4>>2]=c[J+36+4>>2];c[P+352+32+8>>2]=c[J+36+8>>2];c[P+352+32+12>>2]=c[J+36+12>>2];c[P+352+48>>2]=c[J+52>>2];c[P+352+48+4>>2]=c[J+52+4>>2];c[P+352+48+8>>2]=c[J+52+8>>2];c[P+352+48+12>>2]=c[J+52+12>>2];c[P+288>>2]=c[K+4>>2];c[P+288+4>>2]=c[K+4+4>>2];c[P+288+8>>2]=c[K+4+8>>2];c[P+288+12>>2]=c[K+4+12>>2];c[P+288+16>>2]=c[K+20>>2];c[P+288+16+4>>2]=c[K+20+4>>2];c[P+288+16+8>>2]=c[K+20+8>>2];c[P+288+16+12>>2]=c[K+20+12>>2];c[P+288+32>>2]=c[K+36>>2];c[P+288+32+4>>2]=c[K+36+4>>2];c[P+288+32+8>>2]=c[K+36+8>>2];c[P+288+32+12>>2]=c[K+36+12>>2];c[P+288+48>>2]=c[K+52>>2];c[P+288+48+4>>2]=c[K+52+4>>2];c[P+288+48+8>>2]=c[K+52+8>>2];c[P+288+48+12>>2]=c[K+52+12>>2];S=+f[d+196>>2]+ +f[d+84>>2];u=+f[d+200>>2]+ +f[d+88>>2];f[P+272>>2]=+f[d+192>>2]+ +f[d+80>>2];f[P+272+4>>2]=S;f[P+272+8>>2]=u;f[P+272+12>>2]=0.0;u=+f[e+196>>2]+ +f[e+84>>2];S=+f[e+200>>2]+ +f[e+88>>2];f[P+256>>2]=+f[e+192>>2]+ +f[e+80>>2];f[P+256+4>>2]=u;f[P+256+8>>2]=S;f[P+256+12>>2]=0.0;c[P+192>>2]=1065353216;N=P+192+4|0;c[N>>2]=0;c[N+4>>2]=0;c[N+8>>2]=0;c[N+12>>2]=0;c[P+192+20>>2]=1065353216;O=P+192+24|0;c[O>>2]=0;c[O+4>>2]=0;c[O+8>>2]=0;c[O+12>>2]=0;c[P+192+40>>2]=1065353216;L=P+192+44|0;c[L>>2]=0;c[L+4>>2]=0;c[L+8>>2]=0;c[L+12>>2]=0;c[L+16>>2]=0;ag(P+352|0,0.0,0.0,0.0,P+272|0,g,P+192|0);c[P+128>>2]=1065353216;L=P+128+4|0;c[L>>2]=0;c[L+4>>2]=0;c[L+8>>2]=0;c[L+12>>2]=0;c[P+128+20>>2]=1065353216;M=P+128+24|0;c[M>>2]=0;c[M+4>>2]=0;c[M+8>>2]=0;c[M+12>>2]=0;c[P+128+40>>2]=1065353216;K=P+128+44|0;c[K>>2]=0;c[K+4>>2]=0;c[K+8>>2]=0;c[K+12>>2]=0;c[K+16>>2]=0;ag(P+288|0,0.0,0.0,0.0,P+256|0,g,P+128|0);S=+f[b+556>>2];u=+f[b+560>>2];T=+f[b+564>>2];v=+f[b+568>>2];G=S*(2.0/(S*S+u*u+T*T+v*v));A=u*(2.0/(S*S+u*u+T*T+v*v));H=T*(2.0/(S*S+u*u+T*T+v*v));W=+f[b+364>>2];V=+f[b+368>>2];Z=+f[b+372>>2];k=Z*(S*H-v*A)+(V*(S*A+v*H)+W*(1.0-(u*A+T*H)));l=Z*(u*H+v*G)+(W*(S*A-v*H)+V*(1.0-(S*G+T*H)));m=W*(S*H+v*A)+V*(u*H-v*G)+Z*(1.0-(S*G+u*A));j=+f[b+380>>2];F=+f[b+384>>2];D=+f[b+388>>2];n=(S*H-v*A)*D+(F*(S*A+v*H)+j*(1.0-(u*A+T*H)));q=(u*H+v*G)*D+(j*(S*A-v*H)+F*(1.0-(S*G+T*H)));t=j*(S*H+v*A)+F*(u*H-v*G)+D*(1.0-(S*G+u*A));Q=+f[b+396>>2];C=+f[b+400>>2];B=+f[b+404>>2];R=(1.0-(u*A+T*H))*Q+(S*A+v*H)*C+(S*H-v*A)*B;T=(S*A-v*H)*Q+(1.0-(S*G+T*H))*C+(u*H+v*G)*B;A=(S*H+v*A)*Q+(u*H-v*G)*C+(1.0-(S*G+u*A))*B;u=+f[b+300>>2];G=+f[b+316>>2];S=+f[b+332>>2];v=+f[b+304>>2];H=+f[b+320>>2];U=+f[b+336>>2];E=+f[b+308>>2];I=+f[b+324>>2];w=+f[b+340>>2];z=-+f[b+348>>2];aa=-+f[b+352>>2];Y=-+f[b+356>>2];Z=W*0.0+V*0.0+Z*0.0+ +f[b+412>>2]+(m*(E*z+I*aa+w*Y)+(k*(u*z+G*aa+S*Y)+l*(v*z+H*aa+U*Y)));D=j*0.0+F*0.0+D*0.0+ +f[b+416>>2]+(t*(E*z+I*aa+w*Y)+(n*(u*z+G*aa+S*Y)+q*(v*z+H*aa+U*Y)));Y=Q*0.0+C*0.0+B*0.0+ +f[b+420>>2]+(A*(E*z+I*aa+w*Y)+(R*(u*z+G*aa+S*Y)+T*(v*z+H*aa+U*Y)));aa=+f[P+128>>2];z=+f[L>>2];B=+f[P+128+8>>2];C=+f[P+128+16>>2];Q=+f[P+128+20>>2];F=+f[M>>2];j=+f[P+128+32>>2];V=+f[P+128+36>>2];W=+f[P+128+40>>2];X=B*Y+(aa*Z+z*D)+ +f[P+128+48>>2];_=C*Z+D*Q+Y*F+ +f[P+128+52>>2];$=Z*j+D*V+Y*W+ +f[P+128+56>>2];f[P+64>>2]=(k*u+l*v+m*E)*aa+(n*u+q*v+t*E)*z+(R*u+T*v+A*E)*B;f[P+64+4>>2]=(k*G+l*H+m*I)*aa+(n*G+q*H+t*I)*z+(R*G+T*H+A*I)*B;f[P+64+8>>2]=(k*S+l*U+m*w)*aa+(n*S+q*U+t*w)*z+(R*S+T*U+A*w)*B;f[P+64+12>>2]=0.0;f[P+64+16>>2]=(k*u+l*v+m*E)*C+(n*u+q*v+t*E)*Q+(R*u+T*v+A*E)*F;f[P+64+20>>2]=(k*G+l*H+m*I)*C+(n*G+q*H+t*I)*Q+(R*G+T*H+A*I)*F;f[P+64+24>>2]=(k*S+l*U+m*w)*C+(n*S+q*U+t*w)*Q+(R*S+T*U+A*w)*F;f[P+64+28>>2]=0.0;f[P+64+32>>2]=(k*u+l*v+m*E)*j+(n*u+q*v+t*E)*V+(R*u+T*v+A*E)*W;f[P+64+36>>2]=(k*G+l*H+m*I)*j+(n*G+q*H+t*I)*V+(R*G+T*H+A*I)*W;f[P+64+40>>2]=(k*S+l*U+m*w)*j+(n*S+q*U+t*w)*V+(R*S+T*U+A*w)*W;f[P+64+44>>2]=0.0;f[P+64+48>>2]=X;f[P+64+52>>2]=_;f[P+64+56>>2]=$;f[P+64+60>>2]=0.0;$=(R*u+T*v+A*E)*-Y+((k*u+l*v+m*E)*-Z+(n*u+q*v+t*E)*-D);_=(R*G+T*H+A*I)*-Y+((k*G+l*H+m*I)*-Z+(n*G+q*H+t*I)*-D);D=(R*S+T*U+A*w)*-Y+((k*S+l*U+m*w)*-Z+(n*S+q*U+t*w)*-D);Z=+f[P+192>>2];Y=+f[N>>2];X=+f[P+192+8>>2];W=+f[P+192+16>>2];V=+f[P+192+20>>2];j=+f[O>>2];F=+f[P+192+32>>2];Q=+f[P+192+36>>2];C=+f[P+192+40>>2];B=$*Z+_*Y+D*X+ +f[P+192+48>>2];z=$*W+_*V+D*j+ +f[P+192+52>>2];D=$*F+_*Q+D*C+ +f[P+192+56>>2];f[P>>2]=(k*u+l*v+m*E)*Z+(k*G+l*H+m*I)*Y+(k*S+l*U+m*w)*X;f[P+4>>2]=(n*u+q*v+t*E)*Z+(n*G+q*H+t*I)*Y+(n*S+q*U+t*w)*X;f[P+8>>2]=(R*u+T*v+A*E)*Z+(R*G+T*H+A*I)*Y+(R*S+T*U+A*w)*X;f[P+12>>2]=0.0;f[P+16>>2]=(k*u+l*v+m*E)*W+(k*G+l*H+m*I)*V+(k*S+l*U+m*w)*j;f[P+20>>2]=(n*u+q*v+t*E)*W+(n*G+q*H+t*I)*V+(n*S+q*U+t*w)*j;f[P+24>>2]=(R*u+T*v+A*E)*W+(R*G+T*H+A*I)*V+(R*S+T*U+A*w)*j;f[P+28>>2]=0.0;f[P+32>>2]=(k*u+l*v+m*E)*F+(k*G+l*H+m*I)*Q+(k*S+l*U+m*w)*C;f[P+36>>2]=(n*u+q*v+t*E)*F+(n*G+q*H+t*I)*Q+(n*S+q*U+t*w)*C;f[P+40>>2]=(R*u+T*v+A*E)*F+(R*G+T*H+A*I)*Q+(R*S+T*U+A*w)*C;f[P+44>>2]=0.0;f[P+48>>2]=B;f[P+52>>2]=z;f[P+56>>2]=D;f[P+60>>2]=0.0;Ee(P+352|0,P+64|0,P+424|0,P+416|0);D=+f[P+416>>2];z=1.0/g*(+f[P+424>>2]*D);B=1.0/g*(D*+f[P+424+4>>2]);D=1.0/g*(D*+f[P+424+8>>2]);Ee(P+288|0,P,P+424|0,P+416|0);C=+f[P+416>>2];z=z-+f[P+272>>2];B=B-+f[P+272+4>>2];D=D-+f[P+272+8>>2];w=1.0/g*(+f[P+424>>2]*C)-+f[P+256>>2];A=1.0/g*(C*+f[P+424+4>>2])-+f[P+256+4>>2];C=1.0/g*(C*+f[P+424+8>>2])-+f[P+256+8>>2];if(z*z+B*B+D*D>1.1920928955078125e-07){t=1.0/+s(+(z*z+B*B+D*D));O=c[b+28>>2]|0;j=z*t;l=B*t;n=D*t;t=z*t*(z*t*+f[O+264>>2]+B*t*+f[O+280>>2]+D*t*+f[O+296>>2])+B*t*(z*t*+f[O+268>>2]+B*t*+f[O+284>>2]+D*t*+f[O+300>>2])+D*t*(z*t*+f[O+272>>2]+B*t*+f[O+288>>2]+D*t*+f[O+304>>2])}else{j=0.0;l=0.0;n=0.0;t=0.0}if(w*w+A*A+C*C>1.1920928955078125e-07){u=1.0/+s(+(w*w+A*A+C*C));O=c[b+32>>2]|0;k=w*u;m=A*u;q=C*u;u=w*u*(w*u*+f[O+264>>2]+A*u*+f[O+280>>2]+C*u*+f[O+296>>2])+A*u*(w*u*+f[O+268>>2]+A*u*+f[O+284>>2]+C*u*+f[O+300>>2])+C*u*(w*u*+f[O+272>>2]+A*u*+f[O+288>>2]+C*u*+f[O+304>>2])}else{k=0.0;m=0.0;q=0.0;u=0.0}v=t*j+u*k;k=t*l+u*m;j=t*n+u*q;if(v*v+k*k+j*j>1.1920928955078125e-07){n=1.0/+s(+(v*v+k*k+j*j));i=c[b+28>>2]|0;l=v*n*(v*n*+f[i+264>>2]+k*n*+f[i+280>>2]+j*n*+f[i+296>>2])+k*n*(v*n*+f[i+268>>2]+k*n*+f[i+284>>2]+j*n*+f[i+300>>2])+j*n*(v*n*+f[i+272>>2]+k*n*+f[i+288>>2]+j*n*+f[i+304>>2]);o=c[b+32>>2]|0;n=v*n*(v*n*+f[o+264>>2]+k*n*+f[o+280>>2]+j*n*+f[o+296>>2])+k*n*(v*n*+f[o+268>>2]+k*n*+f[o+284>>2]+j*n*+f[o+300>>2])+j*n*(v*n*+f[o+272>>2]+k*n*+f[o+288>>2]+j*n*+f[o+304>>2]);k=(z*l-w*n)*(1.0/((l+n)*(l+n)));z=(B*l-A*n)*(1.0/((l+n)*(l+n)));n=(D*l-C*n)*(1.0/((l+n)*(l+n)));j=+f[b+572>>2];if(!(j>=0.0))j=z;else{t=(a[b+553>>0]|0)==0?j:j/l;j=+f[b+576>>2];m=+f[b+580>>2];l=+f[b+584>>2];q=+s(+((k+j)*(k+j)+(z+m)*(z+m)+(n+l)*(n+l)));if(q>t){u=j+(t*((k+j)*(1.0/q))-j);v=l+(t*((n+l)*(1.0/q))-l);w=m+(t*((z+m)*(1.0/q))-m);k=t*((k+j)*(1.0/q))-j;n=t*((n+l)*(1.0/q))-l;j=t*((z+m)*(1.0/q))-m}else{u=k+j;v=n+l;w=z+m;j=z}f[b+576>>2]=u;f[b+580>>2]=w;f[b+584>>2]=v}m=+s(+(k*k+j*j+n*n));l=k*(1.0/m);k=j*(1.0/m);j=n*(1.0/m);if(c[d+240>>2]|0){aa=l*+f[i+296>>2]+k*+f[i+300>>2]+j*+f[i+304>>2];$=l*+f[i+280>>2]+k*+f[i+284>>2]+j*+f[i+288>>2];_=l*+f[i+264>>2]+k*+f[i+268>>2]+j*+f[i+272>>2];Y=m*0.0*+f[d+116>>2];Z=m*0.0*+f[d+120>>2];f[d+64>>2]=m*0.0*+f[d+112>>2]+ +f[d+64>>2];f[d+68>>2]=Y+ +f[d+68>>2];f[d+72>>2]=Z+ +f[d+72>>2];$=$*(m*+f[d+100>>2]);aa=aa*(m*+f[d+104>>2]);f[d+80>>2]=_*(m*+f[d+96>>2])+ +f[d+80>>2];f[d+84>>2]=$+ +f[d+84>>2];f[d+88>>2]=aa+ +f[d+88>>2]}if(c[e+240>>2]|0){aa=l*+f[o+296>>2]+k*+f[o+300>>2]+j*+f[o+304>>2];$=l*+f[o+280>>2]+k*+f[o+284>>2]+j*+f[o+288>>2];_=l*+f[o+264>>2]+k*+f[o+268>>2]+j*+f[o+272>>2];Y=m*-0.0*+f[e+116>>2];Z=m*-0.0*+f[e+120>>2];f[e+64>>2]=m*-0.0*+f[e+112>>2]+ +f[e+64>>2];f[e+68>>2]=Y+ +f[e+68>>2];f[e+72>>2]=Z+ +f[e+72>>2];$=$*(+f[e+100>>2]*-m);aa=aa*(+f[e+104>>2]*-m);f[e+80>>2]=_*(+f[e+96>>2]*-m)+ +f[e+80>>2];f[e+84>>2]=$+ +f[e+84>>2];f[e+88>>2]=aa+ +f[e+88>>2]}}r=e+192|0;i=d+192|0;y=e+200|0;p=d+200|0;M=e+88|0;J=d+88|0;N=e+80|0;K=d+80|0;x=e+196|0;o=d+196|0;O=e+84|0;L=d+84|0}while(0);z=+f[i>>2]+ +f[K>>2];w=+f[o>>2]+ +f[L>>2];v=+f[p>>2]+ +f[J>>2];u=+f[r>>2]+ +f[N>>2];t=+f[x>>2]+ +f[O>>2];q=+f[y>>2]+ +f[M>>2];if(a[b+526>>0]|0){k=+f[b+528>>2];j=k*+f[b+504>>2]*+f[b+432>>2]/g;l=+f[b+460>>2];m=+f[b+464>>2];n=+f[b+468>>2];if((u-z)*l+(t-w)*m+(q-v)*n>0.0)j=j+k*((u-z)*l+(t-w)*m+(q-v)*n)*+f[b+436>>2];$=+f[b+516>>2];Z=$+j*+f[b+492>>2];f[P+424>>2]=Z;f[P+416>>2]=0.0;i=c[(Z>0.0?P+424|0:P+416|0)>>2]|0;c[b+516>>2]=i;$=(c[h>>2]=i,+f[h>>2])-$;Z=+f[b+536>>2];_=+f[b+540>>2];j=+f[b+544>>2];k=l*$-Z*(l*$*Z+m*$*_+n*$*j);aa=m*$-_*(l*$*Z+m*$*_+n*$*j);m=n*$-j*(l*$*Z+m*$*_+n*$*j);j=+s(+(m*m+(k*k+aa*aa)));k=k*(1.0/j);l=aa*(1.0/j);m=m*(1.0/j);i=c[b+28>>2]|0;if(c[d+240>>2]|0){aa=k*+f[i+296>>2]+l*+f[i+300>>2]+m*+f[i+304>>2];$=k*+f[i+280>>2]+l*+f[i+284>>2]+m*+f[i+288>>2];_=k*+f[i+264>>2]+l*+f[i+268>>2]+m*+f[i+272>>2];Y=j*0.0*+f[d+116>>2];Z=j*0.0*+f[d+120>>2];f[d+64>>2]=j*0.0*+f[d+112>>2]+ +f[d+64>>2];f[d+68>>2]=Y+ +f[d+68>>2];f[d+72>>2]=Z+ +f[d+72>>2];$=$*(j*+f[d+100>>2]);aa=aa*(j*+f[d+104>>2]);f[K>>2]=_*(j*+f[d+96>>2])+ +f[K>>2];f[L>>2]=$+ +f[L>>2];f[J>>2]=aa+ +f[J>>2]}i=c[b+32>>2]|0;if(c[e+240>>2]|0){aa=k*+f[i+296>>2]+l*+f[i+300>>2]+m*+f[i+304>>2];$=k*+f[i+280>>2]+l*+f[i+284>>2]+m*+f[i+288>>2];_=k*+f[i+264>>2]+l*+f[i+268>>2]+m*+f[i+272>>2];Y=j*-0.0*+f[e+116>>2];Z=j*-0.0*+f[e+120>>2];f[e+64>>2]=j*-0.0*+f[e+112>>2]+ +f[e+64>>2];f[e+68>>2]=Y+ +f[e+68>>2];f[e+72>>2]=Z+ +f[e+72>>2];$=$*(+f[e+100>>2]*-j);aa=aa*(+f[e+104>>2]*-j);f[N>>2]=_*(+f[e+96>>2]*-j)+ +f[N>>2];f[O>>2]=$+ +f[O>>2];f[M>>2]=aa+ +f[M>>2]}}if(!(a[b+525>>0]|0)){ea=P;return}n=+f[b+532>>2];m=n*+f[b+508>>2]*+f[b+432>>2]/g;l=+f[b+476>>2];k=+f[b+480>>2];j=+f[b+484>>2];if((u-z)*l+(t-w)*k+(q-v)*j>0.0)m=m+n*((u-z)*l+(t-w)*k+(q-v)*j)*+f[b+436>>2];aa=+f[b+520>>2];m=aa+m*+f[b+496>>2];f[P+424>>2]=m;f[P+416>>2]=0.0;i=c[(m>0.0?P+424|0:P+416|0)>>2]|0;c[b+520>>2]=i;m=(c[h>>2]=i,+f[h>>2])-aa;i=c[b+28>>2]|0;if(c[d+240>>2]|0){aa=l*+f[i+296>>2]+k*+f[i+300>>2]+j*+f[i+304>>2];$=l*+f[i+280>>2]+k*+f[i+284>>2]+j*+f[i+288>>2];j=l*+f[i+264>>2]+k*+f[i+268>>2]+j*+f[i+272>>2];l=m*0.0*+f[d+116>>2];k=m*0.0*+f[d+120>>2];f[d+64>>2]=m*0.0*+f[d+112>>2]+ +f[d+64>>2];f[d+68>>2]=l+ +f[d+68>>2];f[d+72>>2]=k+ +f[d+72>>2];k=$*(m*+f[d+100>>2]);l=aa*(m*+f[d+104>>2]);f[K>>2]=j*(m*+f[d+96>>2])+ +f[K>>2];f[L>>2]=k+ +f[L>>2];f[J>>2]=l+ +f[J>>2];l=+f[b+476>>2];k=+f[b+480>>2];j=+f[b+484>>2]}i=c[b+32>>2]|0;if(!(c[e+240>>2]|0)){ea=P;return}aa=l*+f[i+296>>2]+k*+f[i+300>>2]+j*+f[i+304>>2];$=l*+f[i+280>>2]+k*+f[i+284>>2]+j*+f[i+288>>2];_=l*+f[i+264>>2]+k*+f[i+268>>2]+j*+f[i+272>>2];Y=m*-0.0*+f[e+116>>2];Z=m*-0.0*+f[e+120>>2];f[e+64>>2]=m*-0.0*+f[e+112>>2]+ +f[e+64>>2];f[e+68>>2]=Y+ +f[e+68>>2];f[e+72>>2]=Z+ +f[e+72>>2];$=$*(+f[e+100>>2]*-m);aa=aa*(+f[e+104>>2]*-m);f[N>>2]=_*(+f[e+96>>2]*-m)+ +f[N>>2];f[O>>2]=$+ +f[O>>2];f[M>>2]=aa+ +f[M>>2];ea=P;return}function kb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=ea;ea=ea+16|0;do if(a>>>0<245){m=a>>>0<11?16:a+11&-8;e=3?m>>>3:m;l=c[6765]|0;f=e?l>>>e:l;if(f&3|0){d=27100+((f&1^1)+e<<1<<2)|0;a=c[d+8>>2]|0;b=c[a+8>>2]|0;if((b|0)==(d|0))c[6765]=l&~(1<<(f&1^1)+e);else{c[b+12>>2]=d;c[d+8>>2]=b}c[a+4>>2]=(f&1^1)+e<<3|3;c[a+((f&1^1)+e<<3)+4>>2]=c[a+((f&1^1)+e<<3)+4>>2]|1;r=a+8|0;ea=s;return r|0}k=c[6767]|0;if(m>>>0>k>>>0){if(f|0){g=(f<>>12:g)&16;g=q?g>>>q:g;p=(5?g>>>5:g)&8;g=p?g>>>p:g;r=(2?g>>>2:g)&4;g=r?g>>>r:g;a=(1?g>>>1:g)&2;g=a?g>>>a:g;f=(1?g>>>1:g)&1;g=(p|q|r|a|f)+(f?g>>>f:g)|0;f=c[27100+(g<<1<<2)+8>>2]|0;a=c[f+8>>2]|0;if((a|0)==(27100+(g<<1<<2)|0)){c[6765]=l&~(1<>2]=27100+(g<<1<<2);c[27100+(g<<1<<2)+8>>2]=a;a=l}c[f+4>>2]=m|3;c[f+m+4>>2]=(g<<3)-m|1;c[f+(g<<3)>>2]=(g<<3)-m;if(k|0){e=c[6770]|0;d=3?k>>>3:k;if(!(a&1<>2]|0}c[a>>2]=e;c[b+12>>2]=e;c[e+8>>2]=b;c[e+12>>2]=27100+(d<<1<<2)}c[6767]=(g<<3)-m;c[6770]=f+m;r=f+8|0;ea=s;return r|0}g=c[6766]|0;if(g){f=(12?((g&0-g)+-1|0)>>>12:(g&0-g)+-1|0)&16;j=f?((g&0-g)+-1|0)>>>f:(g&0-g)+-1|0;e=(5?j>>>5:j)&8;j=e?j>>>e:j;h=(2?j>>>2:j)&4;j=h?j>>>h:j;b=(1?j>>>1:j)&2;j=b?j>>>b:j;i=(1?j>>>1:j)&1;j=c[27364+((e|f|h|b|i)+(i?j>>>i:j)<<2)>>2]|0;i=(c[j+4>>2]&-8)-m|0;b=j;while(1){a=c[b+16>>2]|0;if(!a){a=c[b+20>>2]|0;if(!a)break}b=(c[a+4>>2]&-8)-m|0;h=b>>>0>>0;i=h?b:i;b=a;j=h?a:j}h=j+m|0;if(h>>>0>j>>>0){f=c[j+24>>2]|0;a=c[j+12>>2]|0;do if((a|0)==(j|0)){b=j+20|0;a=c[b>>2]|0;if(!a){b=j+16|0;a=c[b>>2]|0;if(!a){b=0;break}}while(1){e=a+20|0;d=c[e>>2]|0;if(!d){e=a+16|0;d=c[e>>2]|0;if(!d)break;else{a=d;b=e}}else{a=d;b=e}}c[b>>2]=0;b=a}else{b=c[j+8>>2]|0;c[b+12>>2]=a;c[a+8>>2]=b;b=a}while(0);do if(f|0){a=c[j+28>>2]|0;if((j|0)==(c[27364+(a<<2)>>2]|0)){c[27364+(a<<2)>>2]=b;if(!b){c[6766]=g&~(1<>2]|0)==(j|0)?f+16|0:f+20|0)>>2]=b;if(!b)break}c[b+24>>2]=f;a=c[j+16>>2]|0;if(a|0){c[b+16>>2]=a;c[a+24>>2]=b}a=c[j+20>>2]|0;if(a|0){c[b+20>>2]=a;c[a+24>>2]=b}}while(0);if(i>>>0<16){r=i+m|0;c[j+4>>2]=r|3;r=j+r+4|0;c[r>>2]=c[r>>2]|1}else{c[j+4>>2]=m|3;c[h+4>>2]=i|1;c[h+i>>2]=i;if(k|0){e=c[6770]|0;d=3?k>>>3:k;if(!(1<>2]|0}c[a>>2]=e;c[b+12>>2]=e;c[e+8>>2]=b;c[e+12>>2]=27100+(d<<1<<2)}c[6767]=i;c[6770]=h}r=j+8|0;ea=s;return r|0}}}}else if(a>>>0<=4294967231){m=a+11&-8;e=c[6766]|0;if(e){a=8?(a+11|0)>>>8:a+11|0;if(a)if(m>>>0>16777215)i=31;else{l=(16?(a+1048320|0)>>>16:a+1048320|0)&8;q=(16?((a<>>16:(a<>>16:(a<>>15:a<>>(i+7|0):m)&1|i<<1}else i=0;a=c[27364+(i<<2)>>2]|0;a:do if(!a){d=0-m|0;b=0;a=0;q=61}else{d=0-m|0;b=0;h=m<<((i|0)==31?0:25-(1?i>>>1:i)|0);g=0;while(1){f=(c[a+4>>2]&-8)-m|0;if(f>>>0>>0)if(!f){d=0;b=a;q=65;break a}else{d=f;g=a}q=c[a+20>>2]|0;a=c[a+16+((31?h>>>31:h)<<2)>>2]|0;b=(q|0)==0|(q|0)==(a|0)?b:q;if(!a){a=g;q=61;break}else h=h<<1}}while(0);if((q|0)==61){if((b|0)==0&(a|0)==0){a=2<>>12:b)&16;b=i?b>>>i:b;h=(5?b>>>5:b)&8;b=h?b>>>h:b;k=(2?b>>>2:b)&4;b=k?b>>>k:b;l=(1?b>>>1:b)&2;b=l?b>>>l:b;a=(1?b>>>1:b)&1;b=c[27364+((h|i|k|l|a)+(a?b>>>a:b)<<2)>>2]|0;a=0}if(!b){h=d;i=a}else q=65}if((q|0)==65)while(1){l=(c[b+4>>2]&-8)-m|0;f=l>>>0>>0;d=f?l:d;f=f?b:a;a=c[b+16>>2]|0;if(!a)a=c[b+20>>2]|0;if(!a){h=d;i=f;break}else{b=a;a=f}}if(((i|0)!=0?h>>>0<((c[6767]|0)-m|0)>>>0:0)?(j=i+m|0,j>>>0>i>>>0):0){g=c[i+24>>2]|0;a=c[i+12>>2]|0;do if((a|0)==(i|0)){b=i+20|0;a=c[b>>2]|0;if(!a){b=i+16|0;a=c[b>>2]|0;if(!a){a=0;break}}while(1){f=a+20|0;d=c[f>>2]|0;if(!d){f=a+16|0;d=c[f>>2]|0;if(!d)break;else{a=d;b=f}}else{a=d;b=f}}c[b>>2]=0}else{r=c[i+8>>2]|0;c[r+12>>2]=a;c[a+8>>2]=r}while(0);do if(g){b=c[i+28>>2]|0;if((i|0)==(c[27364+(b<<2)>>2]|0)){c[27364+(b<<2)>>2]=a;if(!a){c[6766]=e&~(1<>2]|0)==(i|0)?g+16|0:g+20|0)>>2]=a;if(!a)break}c[a+24>>2]=g;b=c[i+16>>2]|0;if(b|0){c[a+16>>2]=b;c[b+24>>2]=a}b=c[i+20>>2]|0;if(b){c[a+20>>2]=b;c[b+24>>2]=a}}while(0);b:do if(h>>>0<16){r=h+m|0;c[i+4>>2]=r|3;r=i+r+4|0;c[r>>2]=c[r>>2]|1}else{c[i+4>>2]=m|3;c[j+4>>2]=h|1;c[j+h>>2]=h;d=3?h>>>3:h;if(h>>>0<256){a=c[6765]|0;if(!(a&1<>2]|0}c[a>>2]=j;c[b+12>>2]=j;c[j+8>>2]=b;c[j+12>>2]=27100+(d<<1<<2);break}a=8?h>>>8:h;if(a)if(h>>>0>16777215)d=31;else{q=(16?(a+1048320|0)>>>16:a+1048320|0)&8;r=(16?((a<>>16:(a<>>16:(a<>>15:a<>>(d+7|0):h)&1|d<<1}else d=0;a=27364+(d<<2)|0;c[j+28>>2]=d;c[j+16+4>>2]=0;c[j+16>>2]=0;b=1<>2]=j;c[j+24>>2]=a;c[j+12>>2]=j;c[j+8>>2]=j;break}a=c[a>>2]|0;c:do if((c[a+4>>2]&-8|0)!=(h|0)){e=h<<((d|0)==31?0:25-(1?d>>>1:d)|0);while(1){d=a+16+((31?e>>>31:e)<<2)|0;b=c[d>>2]|0;if(!b)break;if((c[b+4>>2]&-8|0)==(h|0)){a=b;break c}else{e=e<<1;a=b}}c[d>>2]=j;c[j+24>>2]=a;c[j+12>>2]=j;c[j+8>>2]=j;break b}while(0);q=a+8|0;r=c[q>>2]|0;c[r+12>>2]=j;c[q>>2]=j;c[j+8>>2]=r;c[j+12>>2]=a;c[j+24>>2]=0}while(0);r=i+8|0;ea=s;return r|0}}}else m=-1;while(0);d=c[6767]|0;if(d>>>0>=m>>>0){b=d-m|0;a=c[6770]|0;if(b>>>0>15){r=a+m|0;c[6770]=r;c[6767]=b;c[r+4>>2]=b|1;c[a+d>>2]=b;c[a+4>>2]=m|3}else{c[6767]=0;c[6770]=0;c[a+4>>2]=d|3;c[a+d+4>>2]=c[a+d+4>>2]|1}r=a+8|0;ea=s;return r|0}f=c[6768]|0;if(f>>>0>m>>>0){p=f-m|0;c[6768]=p;r=c[6771]|0;q=r+m|0;c[6771]=q;c[q+4>>2]=p|1;c[r+4>>2]=m|3;r=r+8|0;ea=s;return r|0}if(!(c[6883]|0)){c[6885]=4096;c[6884]=4096;c[6886]=-1;c[6887]=-1;c[6888]=0;c[6876]=0;c[6883]=s&-16^1431655768;a=4096}else a=c[6885]|0;g=m+48|0;h=m+47|0;j=a+h|0;i=0-a|0;if((j&i)>>>0<=m>>>0){r=0;ea=s;return r|0}a=c[6875]|0;if(a|0?(l=c[6873]|0,(l+(j&i)|0)>>>0<=l>>>0?1:(l+(j&i)|0)>>>0>a>>>0):0){r=0;ea=s;return r|0}d:do if(!(c[6876]&4)){b=c[6771]|0;e:do if(b){d=27508;while(1){a=c[d>>2]|0;if(a>>>0<=b>>>0?(o=d+4|0,(a+(c[o>>2]|0)|0)>>>0>b>>>0):0)break;a=c[d+8>>2]|0;if(!a){q=128;break e}else d=a}if((j-f&i)>>>0<2147483647){a=bo(j-f&i|0)|0;if((a|0)==((c[d>>2]|0)+(c[o>>2]|0)|0))if((a|0)==(-1|0))a=j-f&i;else{h=a;g=j-f&i;break d}else{e=a;d=j-f&i;q=136}}else a=0}else q=128;while(0);do if((q|0)==128){b=bo(0)|0;if((b|0)!=(-1|0)?(p=c[6884]|0,p=((p+-1&b|0)==0?0:(p+-1+b&0-p)-b|0)+(j&i)|0,n=c[6873]|0,p>>>0>m>>>0&p>>>0<2147483647):0){o=c[6875]|0;if(o|0?(p+n|0)>>>0<=n>>>0|(p+n|0)>>>0>o>>>0:0){a=0;break}a=bo(p|0)|0;if((a|0)==(b|0)){h=b;g=p;break d}else{e=a;d=p;q=136}}else a=0}while(0);do if((q|0)==136){b=0-d|0;if(!(g>>>0>d>>>0&(d>>>0<2147483647&(e|0)!=(-1|0))))if((e|0)==(-1|0)){a=0;break}else{h=e;g=d;break d}a=c[6885]|0;a=h-d+a&0-a;if(a>>>0>=2147483647){h=e;g=d;break d}if((bo(a|0)|0)==(-1|0)){bo(b|0)|0;a=0;break}else{h=e;g=a+d|0;break d}}while(0);c[6876]=c[6876]|4;q=143}else{a=0;q=143}while(0);if((q|0)==143){if((j&i)>>>0>=2147483647){r=0;ea=s;return r|0}b=bo(j&i|0)|0;d=bo(0)|0;e=(d-b|0)>>>0>(m+40|0)>>>0;if((b|0)==(-1|0)|e^1|b>>>0>>0&((b|0)!=(-1|0)&(d|0)!=(-1|0))^1){r=0;ea=s;return r|0}else{h=b;g=e?d-b|0:a}}a=(c[6873]|0)+g|0;c[6873]=a;if(a>>>0>(c[6874]|0)>>>0)c[6874]=a;j=c[6771]|0;f:do if(j){f=27508;while(1){a=c[f>>2]|0;e=f+4|0;b=c[e>>2]|0;if((h|0)==(a+b|0)){q=154;break}d=c[f+8>>2]|0;if(!d)break;else f=d}if(((q|0)==154?(c[f+12>>2]&8|0)==0:0)?h>>>0>j>>>0&a>>>0<=j>>>0:0){c[e>>2]=b+g;r=(c[6768]|0)+g|0;q=(j+8&7|0)==0?0:0-(j+8)&7;c[6771]=j+q;c[6768]=r-q;c[j+q+4>>2]=r-q|1;c[j+r+4>>2]=40;c[6772]=c[6887];break}if(h>>>0<(c[6769]|0)>>>0)c[6769]=h;d=h+g|0;b=27508;while(1){if((c[b>>2]|0)==(d|0)){q=162;break}a=c[b+8>>2]|0;if(!a)break;else b=a}if((q|0)==162?(c[b+12>>2]&8|0)==0:0){c[b>>2]=h;l=b+4|0;c[l>>2]=(c[l>>2]|0)+g;l=h+8|0;l=h+((l&7|0)==0?0:0-l&7)|0;a=d+((d+8&7|0)==0?0:0-(d+8)&7)|0;k=l+m|0;i=a-l-m|0;c[l+4>>2]=m|3;g:do if((j|0)==(a|0)){r=(c[6768]|0)+i|0;c[6768]=r;c[6771]=k;c[k+4>>2]=r|1}else{if((c[6770]|0)==(a|0)){r=(c[6767]|0)+i|0;c[6767]=r;c[6770]=k;c[k+4>>2]=r|1;c[k+r>>2]=r;break}h=c[a+4>>2]|0;if((h&3|0)==1){e=3?h>>>3:h;h:do if(h>>>0<256){b=c[a+8>>2]|0;d=c[a+12>>2]|0;if((d|0)==(b|0)){c[6765]=c[6765]&~(1<>2]=d;c[d+8>>2]=b;break}}else{g=c[a+24>>2]|0;b=c[a+12>>2]|0;do if((b|0)==(a|0)){b=c[a+16+4>>2]|0;if(!b){b=c[a+16>>2]|0;if(!b){b=0;break}else d=a+16|0}else d=a+16+4|0;while(1){f=b+20|0;e=c[f>>2]|0;if(!e){f=b+16|0;e=c[f>>2]|0;if(!e)break;else{b=e;d=f}}else{b=e;d=f}}c[d>>2]=0}else{r=c[a+8>>2]|0;c[r+12>>2]=b;c[b+8>>2]=r}while(0);if(!g)break;d=c[a+28>>2]|0;do if((c[27364+(d<<2)>>2]|0)!=(a|0)){c[((c[g+16>>2]|0)==(a|0)?g+16|0:g+20|0)>>2]=b;if(!b)break h}else{c[27364+(d<<2)>>2]=b;if(b|0)break;c[6766]=c[6766]&~(1<>2]=g;d=c[a+16>>2]|0;if(d|0){c[b+16>>2]=d;c[d+24>>2]=b}d=c[a+16+4>>2]|0;if(!d)break;c[b+20>>2]=d;c[d+24>>2]=b}while(0);a=a+(h&-8)|0;f=(h&-8)+i|0}else f=i;d=a+4|0;c[d>>2]=c[d>>2]&-2;c[k+4>>2]=f|1;c[k+f>>2]=f;d=3?f>>>3:f;if(f>>>0<256){a=c[6765]|0;if(!(a&1<>2]|0}c[a>>2]=k;c[b+12>>2]=k;c[k+8>>2]=b;c[k+12>>2]=27100+(d<<1<<2);break}a=8?f>>>8:f;do if(!a)e=0;else{if(f>>>0>16777215){e=31;break}q=(16?(a+1048320|0)>>>16:a+1048320|0)&8;r=(16?((a<>>16:(a<>>16:(a<>>15:a<>>(e+7|0):f)&1|e<<1}while(0);b=27364+(e<<2)|0;c[k+28>>2]=e;c[k+16+4>>2]=0;c[k+16>>2]=0;a=c[6766]|0;d=1<>2]=k;c[k+24>>2]=b;c[k+12>>2]=k;c[k+8>>2]=k;break}a=c[b>>2]|0;i:do if((c[a+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(1?e>>>1:e)|0);while(1){d=a+16+((31?e>>>31:e)<<2)|0;b=c[d>>2]|0;if(!b)break;if((c[b+4>>2]&-8|0)==(f|0)){a=b;break i}else{e=e<<1;a=b}}c[d>>2]=k;c[k+24>>2]=a;c[k+12>>2]=k;c[k+8>>2]=k;break g}while(0);q=a+8|0;r=c[q>>2]|0;c[r+12>>2]=k;c[q>>2]=k;c[k+8>>2]=r;c[k+12>>2]=a;c[k+24>>2]=0}while(0);r=l+8|0;ea=s;return r|0}b=27508;while(1){a=c[b>>2]|0;if(a>>>0<=j>>>0?(r=a+(c[b+4>>2]|0)|0,r>>>0>j>>>0):0)break;b=c[b+8>>2]|0}f=r+-47+((r+-47+8&7|0)==0?0:0-(r+-47+8)&7)|0;f=f>>>0<(j+16|0)>>>0?j:f;a=g+-40|0;p=h+8|0;p=(p&7|0)==0?0:0-p&7;q=h+p|0;c[6771]=q;c[6768]=a-p;c[q+4>>2]=a-p|1;c[h+a+4>>2]=40;c[6772]=c[6887];c[f+4>>2]=27;c[f+8>>2]=c[6877];c[f+8+4>>2]=c[6878];c[f+8+8>>2]=c[6879];c[f+8+12>>2]=c[6880];c[6877]=h;c[6878]=g;c[6880]=0;c[6879]=f+8;a=f+24|0;do{q=a;a=a+4|0;c[a>>2]=7}while((q+8|0)>>>0>>0);if((f|0)!=(j|0)){c[f+4>>2]=c[f+4>>2]&-2;c[j+4>>2]=f-j|1;c[f>>2]=f-j;d=3?(f-j|0)>>>3:f-j|0;if((f-j|0)>>>0<256){a=c[6765]|0;if(!(a&1<>2]|0}c[a>>2]=j;c[b+12>>2]=j;c[j+8>>2]=b;c[j+12>>2]=27100+(d<<1<<2);break}a=8?(f-j|0)>>>8:f-j|0;if(a)if((f-j|0)>>>0>16777215)e=31;else{q=(16?(a+1048320|0)>>>16:a+1048320|0)&8;r=(16?((a<>>16:(a<>>16:(a<>>15:a<>>(e+7|0):f-j|0)&1|e<<1}else e=0;b=27364+(e<<2)|0;c[j+28>>2]=e;c[j+20>>2]=0;c[j+16>>2]=0;a=c[6766]|0;d=1<>2]=j;c[j+24>>2]=b;c[j+12>>2]=j;c[j+8>>2]=j;break}a=c[b>>2]|0;j:do if((c[a+4>>2]&-8|0)!=(f-j|0)){e=f-j<<((e|0)==31?0:25-(1?e>>>1:e)|0);while(1){d=a+16+((31?e>>>31:e)<<2)|0;b=c[d>>2]|0;if(!b)break;if((c[b+4>>2]&-8|0)==(f-j|0)){a=b;break j}else{e=e<<1;a=b}}c[d>>2]=j;c[j+24>>2]=a;c[j+12>>2]=j;c[j+8>>2]=j;break f}while(0);q=a+8|0;r=c[q>>2]|0;c[r+12>>2]=j;c[q>>2]=j;c[j+8>>2]=r;c[j+12>>2]=a;c[j+24>>2]=0}}else{r=c[6769]|0;if((r|0)==0|h>>>0>>0)c[6769]=h;c[6877]=h;c[6878]=g;c[6880]=0;c[6774]=c[6883];c[6773]=-1;c[6778]=27100;c[6777]=27100;c[6780]=27108;c[6779]=27108;c[6782]=27116;c[6781]=27116;c[6784]=27124;c[6783]=27124;c[6786]=27132;c[6785]=27132;c[6788]=27140;c[6787]=27140;c[6790]=27148;c[6789]=27148;c[6792]=27156;c[6791]=27156;c[6794]=27164;c[6793]=27164;c[6796]=27172;c[6795]=27172;c[6798]=27180;c[6797]=27180;c[6800]=27188;c[6799]=27188;c[6802]=27196;c[6801]=27196;c[6804]=27204;c[6803]=27204;c[6806]=27212;c[6805]=27212;c[6808]=27220;c[6807]=27220;c[6810]=27228;c[6809]=27228;c[6812]=27236;c[6811]=27236;c[6814]=27244;c[6813]=27244;c[6816]=27252;c[6815]=27252;c[6818]=27260;c[6817]=27260;c[6820]=27268;c[6819]=27268;c[6822]=27276;c[6821]=27276;c[6824]=27284;c[6823]=27284;c[6826]=27292;c[6825]=27292;c[6828]=27300;c[6827]=27300;c[6830]=27308;c[6829]=27308;c[6832]=27316;c[6831]=27316;c[6834]=27324;c[6833]=27324;c[6836]=27332;c[6835]=27332;c[6838]=27340;c[6837]=27340;c[6840]=27348;c[6839]=27348;r=g+-40|0;p=h+8|0;p=(p&7|0)==0?0:0-p&7;q=h+p|0;c[6771]=q;c[6768]=r-p;c[q+4>>2]=r-p|1;c[h+r+4>>2]=40;c[6772]=c[6887]}while(0);a=c[6768]|0;if(a>>>0<=m>>>0){r=0;ea=s;return r|0}p=a-m|0;c[6768]=p;r=c[6771]|0;q=r+m|0;c[6771]=q;c[q+4>>2]=p|1;c[r+4>>2]=m|3;r=r+8|0;ea=s;return r|0}function lb(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0;T=c[e>>2]|0;da=c[f>>2]|0;if(T|0)g=c[T+12>>2]|0;else g=b;h=c[g+88>>2]|0;i=c[g+92>>2]|0;m=c[g+96>>2]|0;if(!da)g=d;else g=c[da+12>>2]|0;s=c[g+88>>2]|0;n=c[g+92>>2]|0;t=c[g+96>>2]|0;U=c[b+88>>2]|0;ba=(c[d+88>>2]|0)-U|0;v=c[b+92>>2]|0;ca=(c[d+92>>2]|0)-v|0;b=c[b+96>>2]|0;aa=(c[d+96>>2]|0)-b|0;$=c[(T|0?T:da)+12>>2]|0;V=(c[$+88>>2]|0)-U|0;S=(c[$+92>>2]|0)-v|0;$=(c[$+96>>2]|0)-b|0;_=(z(S,aa)|0)-(z($,ca)|0)|0;$=(z($,ba)|0)-(z(V,aa)|0)|0;S=(z(V,ca)|0)-(z(S,ba)|0)|0;U=Yr(_|0,((_|0)<0)<<31>>31|0,U|0,((U|0)<0)<<31>>31|0)|0;V=D()|0;v=Yr($|0,(($|0)<0)<<31>>31|0,v|0,((v|0)<0)<<31>>31|0)|0;u=D()|0;b=Yr(S|0,((S|0)<0)<<31>>31|0,b|0,((b|0)<0)<<31>>31|0)|0;b=Lv(U|0,V|0,b|0,D()|0)|0;u=Lv(b|0,D()|0,v|0,u|0)|0;v=D()|0;b=Yr(S|0,((S|0)<0)<<31>>31|0,ca|0,((ca|0)<0)<<31>>31|0)|0;V=D()|0;U=Yr($|0,(($|0)<0)<<31>>31|0,aa|0,((aa|0)<0)<<31>>31|0)|0;U=tv(b|0,V|0,U|0,D()|0)|0;V=D()|0;b=Yr(_|0,((_|0)<0)<<31>>31|0,aa|0,((aa|0)<0)<<31>>31|0)|0;X=D()|0;W=Yr(S|0,((S|0)<0)<<31>>31|0,ba|0,((ba|0)<0)<<31>>31|0)|0;W=tv(b|0,X|0,W|0,D()|0)|0;X=D()|0;b=Yr($|0,(($|0)<0)<<31>>31|0,ba|0,((ba|0)<0)<<31>>31|0)|0;Z=D()|0;Y=Yr(_|0,((_|0)<0)<<31>>31|0,ca|0,((ca|0)<0)<<31>>31|0)|0;Y=tv(b|0,Z|0,Y|0,D()|0)|0;Z=D()|0;b=Yr(U|0,V|0,h|0,((h|0)<0)<<31>>31|0)|0;R=D()|0;g=Yr(W|0,X|0,i|0,((i|0)<0)<<31>>31|0)|0;R=Lv(g|0,D()|0,b|0,R|0)|0;b=D()|0;g=Yr(Y|0,Z|0,m|0,((m|0)<0)<<31>>31|0)|0;g=Lv(R|0,b|0,g|0,D()|0)|0;b=D()|0;if((T|0)!=0?(c[T+12>>2]|0)!=0:0){p=T;q=h;o=i;while(1){p=c[(c[p+8>>2]|0)+4>>2]|0;k=p+12|0;i=c[k>>2]|0;d=c[i+88>>2]|0;Q=Yr(d|0,((d|0)<0)<<31>>31|0,_|0,((_|0)<0)<<31>>31|0)|0;P=D()|0;h=c[i+92>>2]|0;R=Yr(h|0,((h|0)<0)<<31>>31|0,$|0,(($|0)<0)<<31>>31|0)|0;P=Lv(R|0,D()|0,Q|0,P|0)|0;Q=D()|0;i=c[i+96>>2]|0;R=Yr(i|0,((i|0)<0)<<31>>31|0,S|0,((S|0)<0)<<31>>31|0)|0;R=Lv(P|0,Q|0,R|0,D()|0)|0;Q=D()|0;if((Q|0)<(v|0)|(Q|0)==(v|0)&R>>>0>>0){d=q;i=o;h=m;break}if((c[p+20>>2]|0)==(c[a+100>>2]|0)){d=q;i=o;h=m;break}l=Yr(U|0,V|0,d|0,((d|0)<0)<<31>>31|0)|0;R=D()|0;j=Yr(W|0,X|0,h|0,((h|0)<0)<<31>>31|0)|0;R=Lv(j|0,D()|0,l|0,R|0)|0;l=D()|0;j=Yr(Y|0,Z|0,i|0,((i|0)<0)<<31>>31|0)|0;j=Lv(R|0,l|0,j|0,D()|0)|0;l=D()|0;if(!((l|0)>(b|0)|(l|0)==(b|0)&j>>>0>g>>>0)){d=q;i=o;h=m;break}c[e>>2]=p;R=c[k>>2]|0;d=c[R+88>>2]|0;i=c[R+92>>2]|0;h=c[R+96>>2]|0;if(!R){g=j;b=l;break}else{b=l;g=j;q=d;o=i;m=h}}p=c[f>>2]|0;R=d;m=h}else{p=da;R=h}h=Yr(U|0,V|0,s|0,((s|0)<0)<<31>>31|0)|0;Q=D()|0;d=Yr(W|0,X|0,n|0,((n|0)<0)<<31>>31|0)|0;Q=Lv(d|0,D()|0,h|0,Q|0)|0;h=D()|0;d=Yr(Y|0,Z|0,t|0,((t|0)<0)<<31>>31|0)|0;d=Lv(Q|0,h|0,d|0,D()|0)|0;h=D()|0;a:do if(p)if(!(c[p+12>>2]|0)){k=s;o=t}else{r=p;q=s;o=t;while(1){p=c[c[r+8>>2]>>2]|0;l=c[p+12>>2]|0;j=c[l+88>>2]|0;P=Yr(j|0,((j|0)<0)<<31>>31|0,_|0,((_|0)<0)<<31>>31|0)|0;O=D()|0;k=c[l+92>>2]|0;Q=Yr(k|0,((k|0)<0)<<31>>31|0,$|0,(($|0)<0)<<31>>31|0)|0;O=Lv(Q|0,D()|0,P|0,O|0)|0;P=D()|0;l=c[l+96>>2]|0;Q=Yr(l|0,((l|0)<0)<<31>>31|0,S|0,((S|0)<0)<<31>>31|0)|0;Q=Lv(O|0,P|0,Q|0,D()|0)|0;P=D()|0;if((P|0)<(v|0)|(P|0)==(v|0)&Q>>>0>>0){p=r;k=q;break a}if((c[p+20>>2]|0)==(c[a+100>>2]|0)){p=r;k=q;break a}Q=Yr(U|0,V|0,j|0,((j|0)<0)<<31>>31|0)|0;P=D()|0;j=Yr(W|0,X|0,k|0,((k|0)<0)<<31>>31|0)|0;P=Lv(j|0,D()|0,Q|0,P|0)|0;Q=D()|0;j=Yr(Y|0,Z|0,l|0,((l|0)<0)<<31>>31|0)|0;j=Lv(P|0,Q|0,j|0,D()|0)|0;l=D()|0;if(!((l|0)>(h|0)|(l|0)==(h|0)&j>>>0>d>>>0)){p=r;k=q;break a}c[f>>2]=p;Q=c[p+12>>2]|0;k=c[Q+88>>2]|0;n=c[Q+92>>2]|0;o=c[Q+96>>2]|0;if(!Q){d=j;h=l;break}else{r=p;h=l;d=j;q=k}}}else{p=0;k=s;o=t}while(0);j=tv(d|0,h|0,g|0,b|0)|0;b=D()|0;if((b|0)>0|(b|0)==0&j>>>0>0){P=tv(0,0,S|0,((S|0)<0)<<31>>31|0)|0;Q=D()|0;q=j;g=b;d=R;h=i;l=m;K=k;L=n;M=o;while(1){J=c[e>>2]|0;O=g;b:while(1){N=(z(L-h|0,ca)|0)+(z(K-d|0,ba)|0)+(z(M-l|0,aa)|0)|0;if(!J)break;if(!(c[J+12>>2]|0))break;F=c[(c[J>>2]|0)+8>>2]|0;if((c[F+20>>2]|0)<=(c[a+100>>2]|0))break;I=c[F+12>>2]|0;G=c[I+88>>2]|0;E=G-d|0;H=c[I+92>>2]|0;C=H-h|0;I=c[I+96>>2]|0;g=I-l|0;s=Yr(U|0,V|0,E|0,((E|0)<0)<<31>>31|0)|0;B=D()|0;r=Yr(W|0,X|0,C|0,((C|0)<0)<<31>>31|0)|0;B=Lv(r|0,D()|0,s|0,B|0)|0;s=D()|0;r=Yr(Y|0,Z|0,g|0,((g|0)<0)<<31>>31|0)|0;r=Lv(B|0,s|0,r|0,D()|0)|0;s=D()|0;g=(z(C,ca)|0)+(z(E,ba)|0)+(z(g,aa)|0)|0;do if((r|0)==0&(s|0)==0){if((g|0)>=0)break b}else{if((s|0)>=0)break b;if((g|0)>0){E=-1;v=g;u=((g|0)<0)<<31>>31}else{v=tv(0,0,g|0,((g|0)<0)<<31>>31|0)|0;u=D()|0;E=(g|0)!=0&1;v=g|0?v:0;u=g|0?u:0}y=tv(0,0,r|0,s|0)|0;A=D()|0;if((N|0)>0){r=-1;B=N;C=((N|0)<0)<<31>>31;g=1}else{B=tv(0,0,N|0,((N|0)<0)<<31>>31|0)|0;C=D()|0;r=(N|0)!=0&1;B=N|0?B:0;C=N|0?C:0;g=((N|0)!=0)<<31>>31}if((O|0)>0|(O|0)==0&q>>>0>0){s=q;t=O}else{x=(q|0)!=0|(O|0)!=0;s=tv(0,0,q|0,O|0)|0;t=D()|0;s=x?s:0;t=x?t:0;g=x?r:g}if((E|0)==(g|0)){if(!E)break;fa=Yr(s|0,0,v|0,0)|0;g=D()|0;r=Yr(t|0,0,v|0,0)|0;ga=D()|0;w=Yr(s|0,0,u|0,0)|0;x=D()|0;v=Yr(t|0,0,u|0,0)|0;u=D()|0;w=Lv(r|0,0,w|0,0)|0;r=D()|0;u=Lv(ga|0,0,v|0,u|0)|0;x=Lv(u|0,D()|0,x|0,0)|0;r=Lv(x|0,D()|0,r|0,0)|0;x=D()|0;u=Lv(0,w|0,fa|0,g|0)|0;v=D()|0;w=Lv(r|0,x|0,(v>>>0>>0|(v|0)==(w|0)&u>>>0<0)&1|0,0)|0;x=D()|0;r=Yr(B|0,0,y|0,0)|0;g=D()|0;fa=Yr(C|0,0,y|0,0)|0;y=D()|0;s=Yr(B|0,0,A|0,0)|0;t=D()|0;A=Yr(C|0,0,A|0,0)|0;B=D()|0;s=Lv(fa|0,0,s|0,0)|0;C=D()|0;B=Lv(y|0,0,A|0,B|0)|0;t=Lv(B|0,D()|0,t|0,0)|0;C=Lv(t|0,D()|0,C|0,0)|0;t=D()|0;g=Lv(0,s|0,r|0,g|0)|0;r=D()|0;s=Lv(C|0,t|0,(r>>>0>>0|(r|0)==(s|0)&g>>>0<0)&1|0,0)|0;t=D()|0;if(x>>>0>>0|(x|0)==(t|0)&w>>>0>>0)g=-1;else g=x>>>0>t>>>0|(x|0)==(t|0)&w>>>0>s>>>0?1:v>>>0>>0|(v|0)==(r|0)&u>>>0>>0?-1:(v>>>0>r>>>0|(v|0)==(r|0)&u>>>0>g>>>0)&1;g=z(g,E)|0}else g=E-g|0;if((g|0)<=-1)break b}while(0);O=K-G|0;h=L-H|0;q=M-I|0;O=Yr(U|0,V|0,O|0,((O|0)<0)<<31>>31|0)|0;d=D()|0;h=Yr(W|0,X|0,h|0,((h|0)<0)<<31>>31|0)|0;d=Lv(h|0,D()|0,O|0,d|0)|0;O=D()|0;q=Yr(Y|0,Z|0,q|0,((q|0)<0)<<31>>31|0)|0;q=Lv(d|0,O|0,q|0,D()|0)|0;O=D()|0;d=(J|0)==(T|0)?0:F;c[e>>2]=d;J=d;d=G;h=H;l=I}g=c[f>>2]|0;if(!g){g=110;break}if(!(c[g+12>>2]|0)){g=110;break}G=c[c[g+8>>2]>>2]|0;if((c[G+20>>2]|0)<=(c[a+100>>2]|0)){g=110;break}s=c[G+12>>2]|0;v=c[s+88>>2]|0;t=v-K|0;u=c[s+92>>2]|0;r=u-L|0;s=c[s+96>>2]|0;g=s-M|0;ga=Yr(t|0,((t|0)<0)<<31>>31|0,_|0,((_|0)<0)<<31>>31|0)|0;M=D()|0;fa=Yr(r|0,((r|0)<0)<<31>>31|0,$|0,(($|0)<0)<<31>>31|0)|0;M=Lv(fa|0,D()|0,ga|0,M|0)|0;ga=D()|0;fa=Yr(P|0,Q|0,g|0,((g|0)<0)<<31>>31|0)|0;if(!((M|0)==(fa|0)&(ga|0)==(D()|0))){g=110;break}x=Yr(U|0,V|0,t|0,((t|0)<0)<<31>>31|0)|0;F=D()|0;w=Yr(W|0,X|0,r|0,((r|0)<0)<<31>>31|0)|0;F=Lv(w|0,D()|0,x|0,F|0)|0;x=D()|0;w=Yr(Y|0,Z|0,g|0,((g|0)<0)<<31>>31|0)|0;w=Lv(F|0,x|0,w|0,D()|0)|0;x=D()|0;g=(z(r,ca)|0)+(z(t,ba)|0)+(z(g,aa)|0)|0;F=v-d|0;fa=u-h|0;E=s-l|0;F=Yr(U|0,V|0,F|0,((F|0)<0)<<31>>31|0)|0;ga=D()|0;fa=Yr(W|0,X|0,fa|0,((fa|0)<0)<<31>>31|0)|0;ga=Lv(fa|0,D()|0,F|0,ga|0)|0;F=D()|0;E=Yr(Y|0,Z|0,E|0,((E|0)<0)<<31>>31|0)|0;E=Lv(ga|0,F|0,E|0,D()|0)|0;F=D()|0;if(!((F|0)>0|(F|0)==0&E>>>0>0)){g=110;break}if((w|0)==0&(x|0)==0){if((g|0)>=0){g=110;break}}else{if((x|0)>=0){g=110;break}if((g|0)>0){C=-1;u=g;t=((g|0)<0)<<31>>31}else{u=tv(0,0,g|0,((g|0)<0)<<31>>31|0)|0;t=D()|0;C=(g|0)!=0&1;u=g|0?u:0;t=g|0?t:0}x=tv(0,0,w|0,x|0)|0;y=D()|0;if((N|0)>0){s=-1;A=N;B=((N|0)<0)<<31>>31;g=1}else{A=tv(0,0,N|0,((N|0)<0)<<31>>31|0)|0;B=D()|0;s=(N|0)!=0&1;A=N|0?A:0;B=N|0?B:0;g=((N|0)!=0)<<31>>31}if((O|0)>0|(O|0)==0&q>>>0>0)r=O;else{ga=(q|0)!=0|(O|0)!=0;q=tv(0,0,q|0,O|0)|0;r=D()|0;q=ga?q:0;r=ga?r:0;g=ga?s:g}if((C|0)==(g|0)){if(!C){g=110;break}ga=Yr(q|0,0,u|0,0)|0;g=D()|0;s=Yr(r|0,0,u|0,0)|0;N=D()|0;v=Yr(q|0,0,t|0,0)|0;w=D()|0;u=Yr(r|0,0,t|0,0)|0;t=D()|0;v=Lv(s|0,0,v|0,0)|0;q=D()|0;t=Lv(N|0,0,u|0,t|0)|0;w=Lv(t|0,D()|0,w|0,0)|0;q=Lv(w|0,D()|0,q|0,0)|0;w=D()|0;t=Lv(0,v|0,ga|0,g|0)|0;u=D()|0;v=Lv(q|0,w|0,(u>>>0>>0|(u|0)==(v|0)&t>>>0<0)&1|0,0)|0;w=D()|0;q=Yr(A|0,0,x|0,0)|0;g=D()|0;ga=Yr(B|0,0,x|0,0)|0;N=D()|0;r=Yr(A|0,0,y|0,0)|0;s=D()|0;O=Yr(B|0,0,y|0,0)|0;fa=D()|0;r=Lv(ga|0,0,r|0,0)|0;ga=D()|0;fa=Lv(N|0,0,O|0,fa|0)|0;s=Lv(fa|0,D()|0,s|0,0)|0;ga=Lv(s|0,D()|0,ga|0,0)|0;s=D()|0;g=Lv(0,r|0,q|0,g|0)|0;q=D()|0;r=Lv(ga|0,s|0,(q>>>0>>0|(q|0)==(r|0)&g>>>0<0)&1|0,0)|0;s=D()|0;if(w>>>0>>0|(w|0)==(s|0)&v>>>0>>0)g=-1;else g=w>>>0>s>>>0|(w|0)==(s|0)&v>>>0>r>>>0?1:u>>>0>>0|(u|0)==(q|0)&t>>>0>>0?-1:(u>>>0>q>>>0|(u|0)==(q|0)&t>>>0>g>>>0)&1;g=z(g,C)|0}else g=C-g|0;if((g|0)<=0){g=110;break}}c[f>>2]=G;M=c[G+12>>2]|0;q=E;g=F;K=c[M+88>>2]|0;L=c[M+92>>2]|0;M=c[M+96>>2]|0}if((g|0)==110)return}if((b|0)>=0)return;G=tv(0,0,S|0,((S|0)<0)<<31>>31|0)|0;H=D()|0;h=p;d=R;g=m;F=k;c:while(1){x=h;E=b;C=j;y=d;A=g;d:while(1){B=(z(n-i|0,ca)|0)+(z(F-y|0,ba)|0)+(z(o-A|0,aa)|0)|0;do if((x|0?c[x+12>>2]|0:0)?(ea=c[(c[x+4>>2]|0)+8>>2]|0,(c[ea+20>>2]|0)>(c[a+100>>2]|0)):0){w=c[ea+12>>2]|0;u=c[w+88>>2]|0;ga=u-F|0;v=c[w+92>>2]|0;fa=v-n|0;w=c[w+96>>2]|0;g=w-o|0;d=Yr(U|0,V|0,ga|0,((ga|0)<0)<<31>>31|0)|0;T=D()|0;b=Yr(W|0,X|0,fa|0,((fa|0)<0)<<31>>31|0)|0;T=Lv(b|0,D()|0,d|0,T|0)|0;d=D()|0;b=Yr(Y|0,Z|0,g|0,((g|0)<0)<<31>>31|0)|0;b=Lv(T|0,d|0,b|0,D()|0)|0;d=D()|0;g=(z(fa,ca)|0)+(z(ga,ba)|0)+(z(g,aa)|0)|0;if((b|0)==0&(d|0)==0)if((g|0)>0)break d;else break;if((d|0)<0){if((g|0)>0){t=-1;k=g;j=((g|0)<0)<<31>>31}else{k=tv(0,0,g|0,((g|0)<0)<<31>>31|0)|0;j=D()|0;t=(g|0)!=0&1;k=g|0?k:0;j=g|0?j:0}p=tv(0,0,b|0,d|0)|0;q=D()|0;if((B|0)>0){b=-1;r=B;s=((B|0)<0)<<31>>31;g=1}else{r=tv(0,0,B|0,((B|0)<0)<<31>>31|0)|0;s=D()|0;b=(B|0)!=0&1;r=B|0?r:0;s=B|0?s:0;g=((B|0)!=0)<<31>>31}if((E|0)>0|(E|0)==0&C>>>0>0){d=C;h=E}else{ga=(C|0)!=0|(E|0)!=0;d=tv(0,0,C|0,E|0)|0;h=D()|0;d=ga?d:0;h=ga?h:0;g=ga?b:g}if((t|0)==(g|0)){if(!t)break d;ga=Yr(d|0,0,k|0,0)|0;g=D()|0;b=Yr(h|0,0,k|0,0)|0;S=D()|0;l=Yr(d|0,0,j|0,0)|0;m=D()|0;k=Yr(h|0,0,j|0,0)|0;j=D()|0;l=Lv(b|0,0,l|0,0)|0;b=D()|0;j=Lv(S|0,0,k|0,j|0)|0;m=Lv(j|0,D()|0,m|0,0)|0;b=Lv(m|0,D()|0,b|0,0)|0;m=D()|0;j=Lv(0,l|0,ga|0,g|0)|0;k=D()|0;l=Lv(b|0,m|0,(k>>>0>>0|(k|0)==(l|0)&j>>>0<0)&1|0,0)|0;m=D()|0;b=Yr(r|0,0,p|0,0)|0;g=D()|0;ga=Yr(s|0,0,p|0,0)|0;S=D()|0;d=Yr(r|0,0,q|0,0)|0;h=D()|0;T=Yr(s|0,0,q|0,0)|0;fa=D()|0;d=Lv(ga|0,0,d|0,0)|0;ga=D()|0;fa=Lv(S|0,0,T|0,fa|0)|0;h=Lv(fa|0,D()|0,h|0,0)|0;ga=Lv(h|0,D()|0,ga|0,0)|0;h=D()|0;g=Lv(0,d|0,b|0,g|0)|0;b=D()|0;d=Lv(ga|0,h|0,(b>>>0>>0|(b|0)==(d|0)&g>>>0<0)&1|0,0)|0;h=D()|0;if(m>>>0>>0|(m|0)==(h|0)&l>>>0>>0)g=-1;else g=m>>>0>h>>>0|(m|0)==(h|0)&l>>>0>d>>>0?1:k>>>0>>0|(k|0)==(b|0)&j>>>0>>0?-1:(k>>>0>b>>>0|(k|0)==(b|0)&j>>>0>g>>>0)&1;g=z(g,t)|0}else g=t-g|0;if((g|0)<1)break d}}while(0);g=c[e>>2]|0;if(!g){g=110;break c}if(!(c[g+12>>2]|0)){g=110;break c}v=c[(c[g+8>>2]|0)+4>>2]|0;if((c[v+20>>2]|0)<=(c[a+100>>2]|0)){g=110;break c}d=c[v+12>>2]|0;k=c[d+88>>2]|0;h=k-y|0;j=c[d+92>>2]|0;b=j-i|0;d=c[d+96>>2]|0;g=d-A|0;ga=Yr(h|0,((h|0)<0)<<31>>31|0,_|0,((_|0)<0)<<31>>31|0)|0;T=D()|0;fa=Yr(b|0,((b|0)<0)<<31>>31|0,$|0,(($|0)<0)<<31>>31|0)|0;T=Lv(fa|0,D()|0,ga|0,T|0)|0;ga=D()|0;fa=Yr(G|0,H|0,g|0,((g|0)<0)<<31>>31|0)|0;if(!((T|0)==(fa|0)&(ga|0)==(D()|0))){g=110;break c}l=Yr(U|0,V|0,h|0,((h|0)<0)<<31>>31|0)|0;u=D()|0;i=Yr(W|0,X|0,b|0,((b|0)<0)<<31>>31|0)|0;u=Lv(i|0,D()|0,l|0,u|0)|0;l=D()|0;i=Yr(Y|0,Z|0,g|0,((g|0)<0)<<31>>31|0)|0;i=Lv(u|0,l|0,i|0,D()|0)|0;l=D()|0;g=(z(b,ca)|0)+(z(h,ba)|0)+(z(g,aa)|0)|0;u=F-k|0;fa=n-j|0;t=o-d|0;u=Yr(U|0,V|0,u|0,((u|0)<0)<<31>>31|0)|0;ga=D()|0;fa=Yr(W|0,X|0,fa|0,((fa|0)<0)<<31>>31|0)|0;ga=Lv(fa|0,D()|0,u|0,ga|0)|0;u=D()|0;t=Yr(Y|0,Z|0,t|0,((t|0)<0)<<31>>31|0)|0;t=Lv(ga|0,u|0,t|0,D()|0)|0;u=D()|0;if((u|0)>=0){g=110;break c}if((i|0)==0&(l|0)==0){if((g|0)<=0){g=110;break c}}else{if((l|0)>=0){g=110;break c}if((g|0)>0){s=-1;k=g;j=((g|0)<0)<<31>>31}else{k=tv(0,0,g|0,((g|0)<0)<<31>>31|0)|0;j=D()|0;s=(g|0)!=0&1;k=g|0?k:0;j=g|0?j:0}m=tv(0,0,i|0,l|0)|0;p=D()|0;if((B|0)>0){h=-1;q=B;r=((B|0)<0)<<31>>31;g=1}else{q=tv(0,0,B|0,((B|0)<0)<<31>>31|0)|0;r=D()|0;h=(B|0)!=0&1;q=B|0?q:0;r=B|0?r:0;g=((B|0)!=0)<<31>>31}if((E|0)>0|(E|0)==0&C>>>0>0){d=C;b=E}else{ga=(C|0)!=0|(E|0)!=0;d=tv(0,0,C|0,E|0)|0;b=D()|0;d=ga?d:0;b=ga?b:0;g=ga?h:g}if((s|0)==(g|0)){if(!s){g=110;break c}g=Yr(d|0,0,k|0,0)|0;i=D()|0;h=Yr(b|0,0,k|0,0)|0;S=D()|0;k=Yr(d|0,0,j|0,0)|0;l=D()|0;ga=Yr(b|0,0,j|0,0)|0;j=D()|0;k=Lv(h|0,0,k|0,0)|0;b=D()|0;j=Lv(S|0,0,ga|0,j|0)|0;l=Lv(j|0,D()|0,l|0,0)|0;b=Lv(l|0,D()|0,b|0,0)|0;l=D()|0;i=Lv(0,k|0,g|0,i|0)|0;j=D()|0;k=Lv(b|0,l|0,(j>>>0>>0|(j|0)==(k|0)&i>>>0<0)&1|0,0)|0;l=D()|0;b=Yr(q|0,0,m|0,0)|0;g=D()|0;ga=Yr(r|0,0,m|0,0)|0;S=D()|0;d=Yr(q|0,0,p|0,0)|0;h=D()|0;T=Yr(r|0,0,p|0,0)|0;fa=D()|0;d=Lv(ga|0,0,d|0,0)|0;ga=D()|0;fa=Lv(S|0,0,T|0,fa|0)|0;h=Lv(fa|0,D()|0,h|0,0)|0;ga=Lv(h|0,D()|0,ga|0,0)|0;h=D()|0;g=Lv(0,d|0,b|0,g|0)|0;b=D()|0;d=Lv(ga|0,h|0,(b>>>0>>0|(b|0)==(d|0)&g>>>0<0)&1|0,0)|0;h=D()|0;if(l>>>0>>0|(l|0)==(h|0)&k>>>0>>0)g=-1;else g=l>>>0>h>>>0|(l|0)==(h|0)&k>>>0>d>>>0?1:j>>>0>>0|(j|0)==(b|0)&i>>>0>>0?-1:(j>>>0>b>>>0|(j|0)==(b|0)&i>>>0>g>>>0)&1;g=z(g,s)|0}else g=s-g|0;if((g|0)>=0){g=110;break c}}c[e>>2]=v;A=c[v+12>>2]|0;x=c[f>>2]|0;E=u;C=t;y=c[A+88>>2]|0;i=c[A+92>>2]|0;A=c[A+96>>2]|0}b=u-y|0;d=v-i|0;j=w-A|0;b=Yr(U|0,V|0,b|0,((b|0)<0)<<31>>31|0)|0;h=D()|0;d=Yr(W|0,X|0,d|0,((d|0)<0)<<31>>31|0)|0;h=Lv(d|0,D()|0,b|0,h|0)|0;b=D()|0;j=Yr(Y|0,Z|0,j|0,((j|0)<0)<<31>>31|0)|0;j=Lv(h|0,b|0,j|0,D()|0)|0;b=D()|0;h=(x|0)==(da|0)?0:ea;c[f>>2]=h;d=y;g=A;F=u;n=v;o=w}if((g|0)==110)return}function mb(b,d,e){b=b|0;d=d|0;e=e|0;var g=0,i=0,j=0,k=0.0,l=0,m=0,n=0.0,o=0,p=0.0,q=0,r=0.0,s=0.0,t=0,u=0.0,v=0,w=0,x=0,y=0.0,A=0.0,B=0.0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;I=ea;ea=ea+176|0;if((e|0)<1){g=c[b+12>>2]|0;if(g|0){if(a[b+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[b+12>>2]=0}a[b+16>>0]=1;c[b+12>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;g=c[b+32>>2]|0;if(g|0){if(a[b+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[b+32>>2]=0}a[b+36>>0]=1;c[b+32>>2]=0;c[b+24>>2]=0;c[b+28>>2]=0;g=c[b+52>>2]|0;if(g|0){if(a[b+56>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[b+52>>2]=0}a[b+56>>0]=1;c[b+52>>2]=0;c[b+44>>2]=0;c[b+48>>2]=0;ea=I;return}c[I+32>>2]=0;c[I+36>>2]=0;c[I+40>>2]=0;c[I+44>>2]=256;c[I+48>>2]=0;c[I+52>>2]=0;c[I+56>>2]=0;c[I+60>>2]=256;c[I+64>>2]=0;c[I+68>>2]=0;c[I+72>>2]=0;c[I+76>>2]=256;a[I+96>>0]=1;c[I+92>>2]=0;c[I+84>>2]=0;c[I+88>>2]=0;l=0;m=-246811958;t=-246811958;w=-246811958;q=1900671690;v=1900671690;x=1900671690;o=d;while(1){g=c[o>>2]|0;i=c[o+4>>2]|0;j=c[o+8>>2]|0;k=(c[h>>2]=g,+f[h>>2]);q=k<(c[h>>2]=q,+f[h>>2])?g:q;n=(c[h>>2]=i,+f[h>>2]);v=n<(c[h>>2]=v,+f[h>>2])?i:v;p=(c[h>>2]=j,+f[h>>2]);x=p<(c[h>>2]=x,+f[h>>2])?j:x;m=(c[h>>2]=m,+f[h>>2])>2]=t,+f[h>>2])>2]=w,+f[h>>2])>2]=m,+f[h>>2]);s=(c[h>>2]=q,+f[h>>2]);r=(c[h>>2]=t,+f[h>>2]);p=(c[h>>2]=v,+f[h>>2]);n=(c[h>>2]=w,+f[h>>2]);k=(c[h>>2]=x,+f[h>>2]);i=u-s>2]=i;g=u-s>>0)%3|0;c[I+104>>2]=g;t=(i^3)-g|0;c[I+108>>2]=t;y=((t+1|0)%3|0|0)==(i|0)?(u-s)*9.788566967472434e-05:-((u-s)*9.788566967472434e-05);A=((t+1|0)%3|0|0)==(i|0)?(r-p)*9.788566967472434e-05:-((r-p)*9.788566967472434e-05);B=((t+1|0)%3|0|0)==(i|0)?(n-k)*9.788566967472434e-05:-((n-k)*9.788566967472434e-05);f[I>>2]=y;f[I+4>>2]=A;f[I+8>>2]=B;f[I+12>>2]=0.0;y=y!=0.0?1.0/y:y;A=A!=0.0?1.0/A:A;B=B!=0.0?1.0/B:B;f[I+16>>2]=(u+s)*.5;f[I+20>>2]=(r+p)*.5;f[I+24>>2]=(n+k)*.5;f[I+28>>2]=0.0;t=I+144+16|0;a[t>>0]=1;q=I+144+12|0;c[q>>2]=0;c[I+144+4>>2]=0;c[I+144+8>>2]=0;c[6747]=(c[6747]|0)+1;g=kb((e<<4|3)+16|0)|0;if(!g)l=0;else{c[(g+4+15&-16)+-4>>2]=g;l=g+4+15&-16}j=c[I+144+4>>2]|0;i=c[q>>2]|0;if((j|0)<=0){if(i|0)H=25}else{g=0;do{H=l+(g<<4)|0;F=i+(g<<4)|0;c[H>>2]=c[F>>2];c[H+4>>2]=c[F+4>>2];c[H+8>>2]=c[F+8>>2];c[H+12>>2]=c[F+12>>2];g=g+1|0}while((g|0)!=(j|0));H=25}if((H|0)==25){if(a[t>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0)}c[q>>2]=0}a[t>>0]=1;c[q>>2]=l;c[I+144+8>>2]=e;c[l>>2]=c[I+128>>2];c[l+4>>2]=c[I+128+4>>2];c[l+8>>2]=c[I+128+8>>2];c[l+12>>2]=c[I+128+12>>2];if((e|0)!=1){g=1;do{F=(c[q>>2]|0)+(g<<4)|0;c[F>>2]=c[I+128>>2];c[F+4>>2]=c[I+128+4>>2];c[F+8>>2]=c[I+128+8>>2];c[F+12>>2]=c[I+128+12>>2];g=g+1|0}while((g|0)!=(e|0))}c[I+144+4>>2]=e;j=I+128+(c[I+108>>2]<<2)|0;i=c[q>>2]|0;l=I+128+(c[I+112>>2]<<2)|0;m=I+128+(c[I+104>>2]<<2)|0;k=+f[I+16>>2];n=+f[I+20>>2];p=+f[I+24>>2];o=0;g=d;while(1){s=A*(+f[g+4>>2]-n);u=B*(+f[g+8>>2]-p);f[I+128>>2]=y*(+f[g>>2]-k);f[I+128+4>>2]=s;f[I+128+8>>2]=u;f[I+128+12>>2]=0.0;c[i+(o<<4)>>2]=~~+f[j>>2];c[i+(o<<4)+4>>2]=~~+f[l>>2];c[i+(o<<4)+8>>2]=~~+f[m>>2];c[i+(o<<4)+12>>2]=o;o=o+1|0;if((o|0)==(e|0))break;else g=g+16|0}if((e|0)>1)hg(I+144|0,0,e+-1|0);c[I+36>>2]=c[I+32>>2];c[I+40>>2]=0;c[I+44>>2]=e;g=c[I+84>>2]|0;if((g|0)<(e|0)){if((c[I+88>>2]|0)<(e|0)){if(!e){j=g;l=0}else{c[6747]=(c[6747]|0)+1;i=kb((e<<2|3)+16|0)|0;if(!i)i=0;else{c[(i+4+15&-16)+-4>>2]=i;i=i+4+15&-16}j=c[I+84>>2]|0;l=i}if((j|0)>0){i=0;do{c[l+(i<<2)>>2]=c[(c[I+92>>2]|0)+(i<<2)>>2];i=i+1|0}while((i|0)!=(j|0))}i=c[I+92>>2]|0;if(i|0){if(a[I+96>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0)}c[I+92>>2]=0}a[I+96>>0]=1;c[I+92>>2]=l;c[I+88>>2]=e}do{c[(c[I+92>>2]|0)+(g<<2)>>2]=0;g=g+1|0}while((g|0)!=(e|0))}c[I+84>>2]=e;m=0;do{g=c[I+40>>2]|0;if(!g){g=c[I+36>>2]|0;if(!g){c[6747]=(c[6747]|0)+1;g=kb(31)|0;if(!g)i=0;else{c[(g+4+15&-16)+-4>>2]=g;i=g+4+15&-16}g=c[I+44>>2]|0;c[i+4>>2]=g;j=i+8|0;c[j>>2]=0;c[6747]=(c[6747]|0)+1;g=kb((g*112|3)+16|0)|0;if(!g)g=0;else{c[(g+4+15&-16)+-4>>2]=g;g=g+4+15&-16}c[i>>2]=g;c[j>>2]=c[I+32>>2];c[I+32>>2]=i}else{c[I+36>>2]=c[g+8>>2];i=g}g=c[i>>2]|0;i=c[i+4>>2]|0;if((i|0)>0?(c[g>>2]=(i|0)!=1?g+112|0:0,(i|0)!=1):0){j=1;l=g+112|0;do{j=j+1|0;F=(j|0)<(i|0);E=l;l=l+112|0;c[E>>2]=F?l:0}while(F)}}c[I+40>>2]=c[g>>2];F=g+104|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;c[g+16>>2]=0;c[F>>2]=-1;c[g+8>>2]=0;D=(c[q>>2]|0)+(m<<4)|0;E=g+88|0;c[E>>2]=c[D>>2];c[E+4>>2]=c[D+4>>2];c[E+8>>2]=c[D+8>>2];c[E+12>>2]=c[D+12>>2];c[F>>2]=-1;c[(c[I+92>>2]|0)+(m<<2)>>2]=g;m=m+1|0}while((m|0)<(e|0));g=c[q>>2]|0;if(g|0){if(a[t>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[q>>2]=0}a[t>>0]=1;c[q>>2]=0;c[I+144+4>>2]=0;c[I+144+8>>2]=0;c[I+52>>2]=c[I+48>>2];c[I+56>>2]=0;c[I+60>>2]=e*6;c[I+116>>2]=0;c[I+120>>2]=0;c[I+100>>2]=-3;c[I+128>>2]=0;c[I+128+4>>2]=0;c[I+128+8>>2]=0;c[I+128+12>>2]=0;hb(I,0,e,I+128|0);c[I+124>>2]=c[I+128>>2];g=c[q>>2]|0;if(g|0){if(a[t>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[q>>2]=0}g=c[b+4>>2]|0;if((g|0)<0){if((c[b+8>>2]|0)<0){i=c[b+12>>2]|0;if(i|0){if(a[b+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0)}c[b+12>>2]=0}a[b+16>>0]=1;c[b+12>>2]=0;c[b+8>>2]=0}do{F=(c[b+12>>2]|0)+(g<<4)|0;c[F>>2]=c[I+144>>2];c[F+4>>2]=c[I+144+4>>2];c[F+8>>2]=c[I+144+8>>2];c[F+12>>2]=c[I+144+12>>2];g=g+1|0}while((g|0)!=0)}c[b+4>>2]=0;c[I+144>>2]=0;c[I+144+4>>2]=0;c[I+144+8>>2]=0;g=c[b+24>>2]|0;if((g|0)<0){if((c[b+28>>2]|0)<0){i=c[b+32>>2]|0;if(i|0){if(a[b+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0)}c[b+32>>2]=0}a[b+36>>0]=1;c[b+32>>2]=0;c[b+28>>2]=0}do{F=(c[b+32>>2]|0)+(g*12|0)|0;c[F>>2]=c[I+144>>2];c[F+4>>2]=c[I+144+4>>2];c[F+8>>2]=c[I+144+8>>2];g=g+1|0}while((g|0)!=0)}c[b+24>>2]=0;i=c[b+44>>2]|0;if((i|0)<0){g=c[b+52>>2]|0;if((c[b+48>>2]|0)<0){if(g|0?a[b+56>>0]|0:0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}a[b+56>>0]=1;c[b+52>>2]=0;c[b+48>>2]=0;g=0}hk(g+(i<<2)|0,0,z(i,-4)|0)|0}c[b+44>>2]=0;i=c[I+124>>2]|0;if((c[i+104>>2]|0)<0){c[i+104>>2]=0;c[6747]=(c[6747]|0)+1;g=kb(23)|0;if(!g)g=0;else{c[(g+4+15&-16)+-4>>2]=g;g=g+4+15&-16}c[g>>2]=i;o=g;q=g;F=0;t=1;v=g;j=1;while(1){if((c[i+100>>2]|0)>-1){f[I+144+(c[I+108>>2]<<2)>>2]=+(c[i+88>>2]|0);f[I+144+(c[I+112>>2]<<2)>>2]=+(c[i+92>>2]|0);k=+(c[i+96>>2]|0)}else{k=+nk(i+24|0);E=i+72|0;k=k/+nk(E);f[I+144+(c[I+108>>2]<<2)>>2]=k;k=+nk(i+40|0);k=k/+nk(E);f[I+144+(c[I+112>>2]<<2)>>2]=k;k=+nk(i+56|0);k=k/+nk(E)}f[I+144+(c[I+104>>2]<<2)>>2]=k;k=+f[I+144>>2]*+f[I>>2]+ +f[I+16>>2];p=+f[I+144+4>>2]*+f[I+4>>2]+ +f[I+20>>2];n=+f[I+144+8>>2]*+f[I+8>>2]+ +f[I+24>>2];g=c[b+4>>2]|0;if((g|0)==(c[b+8>>2]|0)?(G=(g|0)==0?1:g<<1,(g|0)<(G|0)):0){if(!G)l=0;else{c[6747]=(c[6747]|0)+1;g=kb((G<<4|3)+16|0)|0;if(!g)l=0;else{c[(g+4+15&-16)+-4>>2]=g;l=g+4+15&-16}g=c[b+4>>2]|0}if((g|0)>0){m=0;do{E=l+(m<<4)|0;D=(c[b+12>>2]|0)+(m<<4)|0;c[E>>2]=c[D>>2];c[E+4>>2]=c[D+4>>2];c[E+8>>2]=c[D+8>>2];c[E+12>>2]=c[D+12>>2];m=m+1|0}while((m|0)!=(g|0))}g=c[b+12>>2]|0;if(g|0){if(a[b+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[b+12>>2]=0}a[b+16>>0]=1;c[b+12>>2]=l;c[b+8>>2]=G;g=c[b+4>>2]|0}E=c[b+12>>2]|0;f[E+(g<<4)>>2]=k;f[E+(g<<4)+4>>2]=p;f[E+(g<<4)+8>>2]=n;f[E+(g<<4)+12>>2]=0.0;c[b+4>>2]=(c[b+4>>2]|0)+1;E=c[i+8>>2]|0;if(!E){x=q;l=o;m=t;w=v}else{l=o;w=q;D=E;i=-1;m=t;e=v;C=-1;while(1){d=D+20|0;g=c[d>>2]|0;if((g|0)<0){x=c[b+24>>2]|0;c[I+144>>2]=0;c[I+144+4>>2]=0;c[I+144+8>>2]=0;do if((x|0)==(c[b+28>>2]|0)){t=(x|0)==0?1:x<<1;if((x|0)>=(t|0)){g=x;break}if(!t){o=x;q=0}else{c[6747]=(c[6747]|0)+1;g=kb((t*12|3)+16|0)|0;if(!g)g=0;else{c[(g+4+15&-16)+-4>>2]=g;g=g+4+15&-16}o=c[b+24>>2]|0;q=g}if((o|0)>0){g=0;do{v=q+(g*12|0)|0;J=(c[b+32>>2]|0)+(g*12|0)|0;c[v>>2]=c[J>>2];c[v+4>>2]=c[J+4>>2];c[v+8>>2]=c[J+8>>2];g=g+1|0}while((g|0)!=(o|0))}g=c[b+32>>2]|0;if(g|0){if(a[b+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[b+32>>2]=0}a[b+36>>0]=1;c[b+32>>2]=q;c[b+28>>2]=t;g=c[b+24>>2]|0}else g=x;while(0);g=(c[b+32>>2]|0)+(g*12|0)|0;c[g>>2]=c[I+144>>2];c[g+4>>2]=c[I+144+4>>2];c[g+8>>2]=c[I+144+8>>2];g=(c[b+24>>2]|0)+1|0;c[b+24>>2]=g;c[I+144>>2]=0;c[I+144+4>>2]=0;c[I+144+8>>2]=0;do if((g|0)==(c[b+28>>2]|0)){t=(g|0)==0?1:g<<1;if((g|0)>=(t|0))break;if(!t)o=0;else{c[6747]=(c[6747]|0)+1;g=kb((t*12|3)+16|0)|0;if(!g)o=0;else{c[(g+4+15&-16)+-4>>2]=g;o=g+4+15&-16}g=c[b+24>>2]|0}if((g|0)>0){q=0;do{J=o+(q*12|0)|0;v=(c[b+32>>2]|0)+(q*12|0)|0;c[J>>2]=c[v>>2];c[J+4>>2]=c[v+4>>2];c[J+8>>2]=c[v+8>>2];q=q+1|0}while((q|0)!=(g|0))}g=c[b+32>>2]|0;if(g|0){if(a[b+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[b+32>>2]=0}a[b+36>>0]=1;c[b+32>>2]=o;c[b+28>>2]=t;g=c[b+24>>2]|0}while(0);v=(c[b+32>>2]|0)+(g*12|0)|0;c[v>>2]=c[I+144>>2];c[v+4>>2]=c[I+144+4>>2];c[v+8>>2]=c[I+144+8>>2];c[b+24>>2]=(c[b+24>>2]|0)+1;v=c[b+32>>2]|0;c[d>>2]=x;c[(c[D+8>>2]|0)+20>>2]=x+1;c[v+(x*12|0)+4>>2]=1;c[v+((x+1|0)*12|0)+4>>2]=-1;t=c[D+12>>2]|0;g=c[t+104>>2]|0;if((g|0)<0){c[t+104>>2]=j;do if((j|0)==(m|0)){q=(m|0)==0?1:m<<1;if((m|0)>=(q|0)){g=w;o=e;break}do if(!q)o=0;else{c[6747]=(c[6747]|0)+1;g=kb((q<<2|3)+16|0)|0;if(!g){o=0;break}c[(g+4+15&-16)+-4>>2]=g;o=g+4+15&-16}while(0);if((m|0)>0){g=0;do{c[o+(g<<2)>>2]=c[e+(g<<2)>>2];g=g+1|0}while((g|0)!=(m|0));if(!l){g=o;l=o;m=q;break}}else if((e|0)==0|(l|0)==0){g=o;l=o;m=q;break}c[6748]=(c[6748]|0)+1;uc(c[l+-4>>2]|0);g=o;l=o;m=q}else{g=w;o=e}while(0);c[o+(j<<2)>>2]=t;q=g;g=j;j=j+1|0}else{q=w;o=e}c[v+(x*12|0)+8>>2]=g;c[v+((x+1|0)*12|0)+8>>2]=F;g=c[d>>2]|0}else{q=w;o=e}if((C|0)>-1)c[(c[b+32>>2]|0)+(g*12|0)>>2]=C-g;else i=g;D=c[D>>2]|0;if((D|0)==(E|0))break;else{w=q;e=o;C=g}}c[(c[b+32>>2]|0)+(i*12|0)>>2]=g-i;x=q;w=o}g=F+1|0;if((g|0)>=(j|0))break;i=c[w+(g<<2)>>2]|0;o=l;q=x;F=g;t=m;v=w}v=0;while(1){q=c[(c[w+(v<<2)>>2]|0)+8>>2]|0;if(q|0){t=q;do{o=t+20|0;g=c[o>>2]|0;if((g|0)>-1){i=c[b+44>>2]|0;do if((i|0)==(c[b+48>>2]|0)){m=(i|0)==0?1:i<<1;if((i|0)>=(m|0))break;if(!m){g=i;i=0}else{c[6747]=(c[6747]|0)+1;g=kb((m<<2|3)+16|0)|0;if(!g)i=0;else{c[(g+4+15&-16)+-4>>2]=g;i=g+4+15&-16}g=c[b+44>>2]|0}l=c[b+52>>2]|0;if((g|0)<=0){if(l)H=186}else{j=0;do{c[i+(j<<2)>>2]=c[l+(j<<2)>>2];j=j+1|0}while((j|0)!=(g|0));H=186}if((H|0)==186){H=0;if(a[b+56>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[l+-4>>2]|0)}c[b+52>>2]=0;g=c[b+44>>2]|0}a[b+56>>0]=1;c[b+52>>2]=i;c[b+48>>2]=m;i=g;g=c[o>>2]|0}while(0);c[(c[b+52>>2]|0)+(i<<2)>>2]=g;c[b+44>>2]=(c[b+44>>2]|0)+1;g=t;do{c[g+20>>2]=-1;g=c[(c[g+8>>2]|0)+4>>2]|0}while((g|0)!=(t|0))}t=c[t>>2]|0}while((t|0)!=(q|0))}if((v|0)==(F|0))break;else v=v+1|0}if(!((w|0)==0|(x|0)==0)){c[6748]=(c[6748]|0)+1;uc(c[x+-4>>2]|0)}}_h(I);ea=I;return}function nb(b){b=b|0;var d=0,e=0.0,g=0.0,h=0,i=0,j=0.0,k=0,l=0.0,m=0.0,n=0.0,o=0,p=0,q=0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0,H=0,I=0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0;I=ea;ea=ea+64|0;if(!(a[b+356>>0]|0)){b=a[b+312>>0]|0;b=b<<24>>24!=0;ea=I;return b|0}c[b+336>>2]=0;c[b+336+4>>2]=0;c[b+336+8>>2]=0;c[b+336+12>>2]=0;a[b+336+16>>0]=0;k=a[b+332>>0]|0;a[b+332>>0]=k&-16;a[b+356>>0]=0;switch(c[b>>2]|0){case 0:{a[b+312>>0]=0;b=0;b=b<<24>>24!=0;ea=I;return b|0}case 1:{c[b+244>>2]=c[b+84>>2];c[b+244+4>>2]=c[b+84+4>>2];c[b+244+8>>2]=c[b+84+8>>2];c[b+244+12>>2]=c[b+84+12>>2];c[b+260>>2]=c[b+164>>2];c[b+260+4>>2]=c[b+164+4>>2];c[b+260+8>>2]=c[b+164+8>>2];c[b+260+12>>2]=c[b+164+12>>2];E=+f[b+248>>2]-+f[b+264>>2];F=+f[b+252>>2]-+f[b+268>>2];f[b+276>>2]=+f[b+244>>2]-+f[b+260>>2];f[b+280>>2]=E;f[b+284>>2]=F;f[b+288>>2]=0.0;a[b+352>>0]=0;a[b+332>>0]=k&-16;f[b+336>>2]=1.0;f[b+340>>2]=0.0;f[b+344>>2]=0.0;f[b+348>>2]=0.0;a[b+312>>0]=1;b=1;b=b<<24>>24!=0;ea=I;return b|0}case 2:{e=+f[b+4>>2];g=+f[b+8>>2];j=+f[b+12>>2];l=+f[b+20>>2]-e;n=+f[b+24>>2]-g;m=+f[b+28>>2]-j;if((0.0-e)*l+(0.0-g)*n+(0.0-j)*m>0.0)if((0.0-e)*l+(0.0-g)*n+(0.0-j)*m>0]=k&-16|h;e=1.0-g;f[b+336>>2]=e;f[b+340>>2]=g;f[b+344>>2]=0.0;f[b+348>>2]=0.0;A=+f[b+84>>2];C=+f[b+88>>2];E=+f[b+92>>2];A=A+g*(+f[b+100>>2]-A);C=C+g*(+f[b+104>>2]-C);E=E+g*(+f[b+108>>2]-E);f[b+244>>2]=A;f[b+248>>2]=C;f[b+252>>2]=E;f[b+256>>2]=0.0;B=+f[b+164>>2];D=+f[b+168>>2];F=+f[b+172>>2];B=B+g*(+f[b+180>>2]-B);D=D+g*(+f[b+184>>2]-D);F=F+g*(+f[b+188>>2]-F);f[b+260>>2]=B;f[b+264>>2]=D;f[b+268>>2]=F;f[b+272>>2]=0.0;f[b+276>>2]=A-B;f[b+280>>2]=C-D;f[b+284>>2]=E-F;f[b+288>>2]=0.0;if(!(h&2)){c[b>>2]=1;d=0}else d=1;if(!(h&1)){q=b+4+(d<<4)|0;G=b+84+(d<<4)|0;H=b+164+(d<<4)|0;c[b>>2]=d;c[b+4>>2]=c[q>>2];c[b+4+4>>2]=c[q+4>>2];c[b+4+8>>2]=c[q+8>>2];c[b+4+12>>2]=c[q+12>>2];c[b+84>>2]=c[G>>2];c[b+84+4>>2]=c[G+4>>2];c[b+84+8>>2]=c[G+8>>2];c[b+84+12>>2]=c[G+12>>2];c[b+164>>2]=c[H>>2];c[b+164+4>>2]=c[H+4>>2];c[b+164+8>>2]=c[H+8>>2];c[b+164+12>>2]=c[H+12>>2]}H=g>=0.0&e>=0.0&1;a[b+312>>0]=H;b=H;b=b<<24>>24!=0;ea=I;return b|0}case 3:{c[I+16>>2]=0;c[I+16+4>>2]=0;c[I+16+8>>2]=0;c[I+16+12>>2]=0;de(I+16|0,b+4|0,b+20|0,b+36|0,b+316|0);F=+f[b+336>>2];e=+f[b+340>>2];g=+f[b+344>>2];A=+f[b+84>>2]*F+ +f[b+100>>2]*e+ +f[b+116>>2]*g;C=F*+f[b+88>>2]+e*+f[b+104>>2]+g*+f[b+120>>2];E=F*+f[b+92>>2]+e*+f[b+108>>2]+g*+f[b+124>>2];f[b+244>>2]=A;f[b+248>>2]=C;f[b+252>>2]=E;f[b+256>>2]=0.0;B=F*+f[b+164>>2]+e*+f[b+180>>2]+g*+f[b+196>>2];D=F*+f[b+168>>2]+e*+f[b+184>>2]+g*+f[b+200>>2];F=F*+f[b+172>>2]+e*+f[b+188>>2]+g*+f[b+204>>2];f[b+260>>2]=B;f[b+264>>2]=D;f[b+268>>2]=F;f[b+272>>2]=0.0;f[b+276>>2]=A-B;f[b+280>>2]=C-D;f[b+284>>2]=E-F;f[b+288>>2]=0.0;k=c[b>>2]|0;do if((k|0)>3){d=a[b+332>>0]|0;if(!(d&8)){h=b+164+(k+-1<<4)|0;i=b+84+(k+-1<<4)|0;H=b+4+(k+-1<<4)|0;c[b>>2]=k+-1;c[b+52>>2]=c[H>>2];c[b+52+4>>2]=c[H+4>>2];c[b+52+8>>2]=c[H+8>>2];c[b+52+12>>2]=c[H+12>>2];c[b+132>>2]=c[i>>2];c[b+132+4>>2]=c[i+4>>2];c[b+132+8>>2]=c[i+8>>2];c[b+132+12>>2]=c[i+12>>2];c[b+212>>2]=c[h>>2];c[b+212+4>>2]=c[h+4>>2];c[b+212+8>>2]=c[h+8>>2];c[b+212+12>>2]=c[h+12>>2];h=b+332|0;k=k+-1|0;i=d;H=19}else{h=b+332|0;i=d;H=19}}else{if((k|0)==3){h=b+332|0;k=3;i=a[b+332>>0]|0;H=19;break}if((k|0)<=1){if((k|0)==1){d=1;H=26}}else{d=2;H=22}}while(0);if((H|0)==19){d=k+-1|0;if(!(i&4)){c[b>>2]=d;c[b+36>>2]=c[b+4+(d<<4)>>2];c[b+36+4>>2]=c[b+4+(d<<4)+4>>2];c[b+36+8>>2]=c[b+4+(d<<4)+8>>2];c[b+36+12>>2]=c[b+4+(d<<4)+12>>2];c[b+116>>2]=c[b+84+(d<<4)>>2];c[b+116+4>>2]=c[b+84+(d<<4)+4>>2];c[b+116+8>>2]=c[b+84+(d<<4)+8>>2];c[b+116+12>>2]=c[b+84+(d<<4)+12>>2];c[b+196>>2]=c[b+164+(d<<4)>>2];c[b+196+4>>2]=c[b+164+(d<<4)+4>>2];c[b+196+8>>2]=c[b+164+(d<<4)+8>>2];c[b+196+12>>2]=c[b+164+(d<<4)+12>>2];H=23}else{d=k;H=22}}if((H|0)==22){h=b+332|0;H=23}if((H|0)==23){i=d+-1|0;if(!(a[h>>0]&2)){c[b>>2]=i;c[b+20>>2]=c[b+4+(i<<4)>>2];c[b+20+4>>2]=c[b+4+(i<<4)+4>>2];c[b+20+8>>2]=c[b+4+(i<<4)+8>>2];c[b+20+12>>2]=c[b+4+(i<<4)+12>>2];c[b+100>>2]=c[b+84+(i<<4)>>2];c[b+100+4>>2]=c[b+84+(i<<4)+4>>2];c[b+100+8>>2]=c[b+84+(i<<4)+8>>2];c[b+100+12>>2]=c[b+84+(i<<4)+12>>2];c[b+180>>2]=c[b+164+(i<<4)>>2];c[b+180+4>>2]=c[b+164+(i<<4)+4>>2];c[b+180+8>>2]=c[b+164+(i<<4)+8>>2];c[b+180+12>>2]=c[b+164+(i<<4)+12>>2];o=h;H=27}else H=26}if((H|0)==26){o=b+332|0;i=d;H=27}if((H|0)==27?(p=i+-1|0,(a[o>>0]&1)==0):0){c[b>>2]=p;c[b+4>>2]=c[b+4+(p<<4)>>2];c[b+4+4>>2]=c[b+4+(p<<4)+4>>2];c[b+4+8>>2]=c[b+4+(p<<4)+8>>2];c[b+4+12>>2]=c[b+4+(p<<4)+12>>2];c[b+84>>2]=c[b+84+(p<<4)>>2];c[b+84+4>>2]=c[b+84+(p<<4)+4>>2];c[b+84+8>>2]=c[b+84+(p<<4)+8>>2];c[b+84+12>>2]=c[b+84+(p<<4)+12>>2];c[b+164>>2]=c[b+164+(p<<4)>>2];c[b+164+4>>2]=c[b+164+(p<<4)+4>>2];c[b+164+8>>2]=c[b+164+(p<<4)+8>>2];c[b+164+12>>2]=c[b+164+(p<<4)+12>>2]}if((e>=0.0?!(+f[b+336>>2]>=0.0):1)|!(g>=0.0))d=0;else d=+f[b+348>>2]>=0.0&1;a[b+312>>0]=d;b=d;b=b<<24>>24!=0;ea=I;return b|0}case 4:{c[I>>2]=0;c[I+4>>2]=0;c[I+8>>2]=0;c[I+12>>2]=0;q=I+16+16|0;a[q>>0]=0;c[b+316>>2]=0;c[b+316+4>>2]=0;c[b+316+8>>2]=0;c[b+316+12>>2]=0;a[b+332>>0]=k|15;K=+f[b+20>>2];T=+f[b+4>>2];Q=+f[b+24>>2];J=+f[b+8>>2];M=+f[b+28>>2];U=+f[b+12>>2];P=+f[b+36>>2];R=+f[b+40>>2];N=+f[b+44>>2];L=+f[b+52>>2];S=+f[b+56>>2];O=+f[b+60>>2];V=((Q-J)*(N-U)-(M-U)*(R-J))*(L-T)+((M-U)*(P-T)-(K-T)*(N-U))*(S-J)+((K-T)*(R-J)-(Q-J)*(P-T))*(O-U);i=V*V<9.99999905104687e-09?-1:((0.0-T)*((Q-J)*(N-U)-(M-U)*(R-J))+(0.0-J)*((M-U)*(P-T)-(K-T)*(N-U))+((K-T)*(R-J)-(Q-J)*(P-T))*(0.0-U))*V<0.0&1;V=(M-U)*((P-T)*(S-J)-(R-J)*(L-T))+((K-T)*((R-J)*(O-U)-(N-U)*(S-J))+(Q-J)*((N-U)*(L-T)-(P-T)*(O-U)));k=V*V<9.99999905104687e-09?-1:((0.0-U)*((P-T)*(S-J)-(R-J)*(L-T))+((0.0-T)*((R-J)*(O-U)-(N-U)*(S-J))+(0.0-J)*((N-U)*(L-T)-(P-T)*(O-U))))*V<0.0&1;V=(N-U)*((Q-J)*(L-T)-(K-T)*(S-J))+((P-T)*((M-U)*(S-J)-(Q-J)*(O-U))+(R-J)*((K-T)*(O-U)-(M-U)*(L-T)));o=V*V<9.99999905104687e-09?-1:((0.0-U)*((Q-J)*(L-T)-(K-T)*(S-J))+((0.0-T)*((M-U)*(S-J)-(Q-J)*(O-U))+(0.0-J)*((K-T)*(O-U)-(M-U)*(L-T))))*V<0.0&1;J=(U-M)*((R-Q)*(L-K)-(P-K)*(S-Q))+((T-K)*((N-M)*(S-Q)-(R-Q)*(O-M))+(J-Q)*((P-K)*(O-M)-(N-M)*(L-K)));p=J*J<9.99999905104687e-09?-1:((0.0-M)*((R-Q)*(L-K)-(P-K)*(S-Q))+((0.0-K)*((N-M)*(S-Q)-(R-Q)*(O-M))+(0.0-Q)*((P-K)*(O-M)-(N-M)*(L-K))))*J<0.0&1;do if((k|i|o|p|0)<0){a[b+352>>0]=1;d=b+312|0;H=68}else{if(!(k|i|o|p)){if(a[b+352>>0]|0){d=b+312|0;H=68;break}a[b+312>>0]=1;c[b+276>>2]=0;c[b+276+4>>2]=0;c[b+276+8>>2]=0;c[b+276+12>>2]=0;d=1;break}if((i|0)!=0?(de(I,b+4|0,b+20|0,b+36|0,I+16|0),e=+f[I+16>>2],g=+f[I+16+4>>2],j=+f[I+16+8>>2],l=e-+f[I>>2],n=g-+f[I+4>>2],m=j-+f[I+8>>2],l*l+n*n+m*m<3402823466385288598117041.0e14):0){W=c[I+16+12>>2]|0;f[b+316>>2]=e;f[b+320>>2]=g;f[b+324>>2]=j;c[b+328>>2]=W;W=a[q>>0]|0;a[b+332>>0]=W&1|a[b+332>>0]&-16|W&2|W&4;W=c[I+16+24>>2]|0;i=c[I+16+28>>2]|0;c[b+336>>2]=c[I+16+20>>2];c[b+340>>2]=W;c[b+344>>2]=i;f[b+348>>2]=0.0;e=l*l+n*n+m*m}else e=3402823466385288598117041.0e14;if((k|0)!=0?(de(I,b+4|0,b+36|0,b+52|0,I+16|0),r=+f[I+16>>2],s=+f[I+16+4>>2],t=+f[I+16+8>>2],u=r-+f[I>>2],w=s-+f[I+4>>2],v=t-+f[I+8>>2],u*u+w*w+v*v>2]|0;f[b+316>>2]=r;f[b+320>>2]=s;f[b+324>>2]=t;c[b+328>>2]=k;k=a[q>>0]|0;a[b+332>>0]=k&1|a[b+332>>0]&-16|k<<1&4|k<<1&8;k=c[I+16+24>>2]|0;W=c[I+16+28>>2]|0;c[b+336>>2]=c[I+16+20>>2];f[b+340>>2]=0.0;c[b+344>>2]=k;c[b+348>>2]=W;e=u*u+w*w+v*v}if((o|0)!=0?(de(I,b+4|0,b+52|0,b+20|0,I+16|0),x=+f[I+16>>2],y=+f[I+16+4>>2],z=+f[I+16+8>>2],A=x-+f[I>>2],C=y-+f[I+4>>2],B=z-+f[I+8>>2],A*A+C*C+B*B>2]|0;f[b+316>>2]=x;f[b+320>>2]=y;f[b+324>>2]=z;c[b+328>>2]=o;o=a[q>>0]|0;a[b+332>>0]=o&1|a[b+332>>0]&-16|(1?(o&255)>>>1:o&255)&2|o<<2&8;o=c[I+16+28>>2]|0;W=c[I+16+24>>2]|0;c[b+336>>2]=c[I+16+20>>2];c[b+340>>2]=o;f[b+344>>2]=0.0;c[b+348>>2]=W;e=A*A+C*C+B*B}if(p|0?(de(I,b+20|0,b+52|0,b+36|0,I+16|0),D=+f[I+16>>2],E=+f[I+16+4>>2],F=+f[I+16+8>>2],T=D-+f[I>>2],U=E-+f[I+4>>2],V=F-+f[I+8>>2],T*T+U*U+V*V>2]|0;f[b+316>>2]=D;f[b+320>>2]=E;f[b+324>>2]=F;c[b+328>>2]=p;p=a[q>>0]|0;a[b+332>>0]=p&4|a[b+332>>0]&-16|p<<1&2|p<<2&8;p=c[I+16+20>>2]|0;q=c[I+16+28>>2]|0;W=c[I+16+24>>2]|0;f[b+336>>2]=0.0;c[b+340>>2]=p;c[b+344>>2]=q;c[b+348>>2]=W}O=+f[b+336>>2];P=+f[b+340>>2];V=+f[b+344>>2];e=+f[b+348>>2];Q=+f[b+84>>2]*O+ +f[b+100>>2]*P+ +f[b+116>>2]*V+ +f[b+132>>2]*e;S=O*+f[b+88>>2]+P*+f[b+104>>2]+V*+f[b+120>>2]+e*+f[b+136>>2];U=O*+f[b+92>>2]+P*+f[b+108>>2]+V*+f[b+124>>2]+e*+f[b+140>>2];f[b+244>>2]=Q;f[b+248>>2]=S;f[b+252>>2]=U;f[b+256>>2]=0.0;R=O*+f[b+164>>2]+P*+f[b+180>>2]+V*+f[b+196>>2]+e*+f[b+212>>2];T=O*+f[b+168>>2]+P*+f[b+184>>2]+V*+f[b+200>>2]+e*+f[b+216>>2];V=O*+f[b+172>>2]+P*+f[b+188>>2]+V*+f[b+204>>2]+e*+f[b+220>>2];f[b+260>>2]=R;f[b+264>>2]=T;f[b+268>>2]=V;f[b+272>>2]=0.0;f[b+276>>2]=Q-R;f[b+280>>2]=S-T;f[b+284>>2]=U-V;f[b+288>>2]=0.0;i=c[b>>2]|0;do if((i|0)>3){d=a[b+332>>0]|0;if(!(d&8)){h=b+164+(i+-1<<4)|0;k=b+84+(i+-1<<4)|0;H=b+4+(i+-1<<4)|0;c[b>>2]=i+-1;c[b+52>>2]=c[H>>2];c[b+52+4>>2]=c[H+4>>2];c[b+52+8>>2]=c[H+8>>2];c[b+52+12>>2]=c[H+12>>2];c[b+132>>2]=c[k>>2];c[b+132+4>>2]=c[k+4>>2];c[b+132+8>>2]=c[k+8>>2];c[b+132+12>>2]=c[k+12>>2];c[b+212>>2]=c[h>>2];c[b+212+4>>2]=c[h+4>>2];c[b+212+8>>2]=c[h+8>>2];c[b+212+12>>2]=c[h+12>>2];h=b+332|0;k=i+-1|0;i=d;H=52}else{h=b+332|0;k=i;i=d;H=52}}else{if((i|0)==3){h=b+332|0;k=3;i=a[b+332>>0]|0;H=52;break}if((i|0)<=1){if((i|0)==1){d=1;H=59}}else{d=2;H=55}}while(0);if((H|0)==52){d=k+-1|0;if(!(i&4)){c[b>>2]=d;c[b+36>>2]=c[b+4+(d<<4)>>2];c[b+36+4>>2]=c[b+4+(d<<4)+4>>2];c[b+36+8>>2]=c[b+4+(d<<4)+8>>2];c[b+36+12>>2]=c[b+4+(d<<4)+12>>2];c[b+116>>2]=c[b+84+(d<<4)>>2];c[b+116+4>>2]=c[b+84+(d<<4)+4>>2];c[b+116+8>>2]=c[b+84+(d<<4)+8>>2];c[b+116+12>>2]=c[b+84+(d<<4)+12>>2];c[b+196>>2]=c[b+164+(d<<4)>>2];c[b+196+4>>2]=c[b+164+(d<<4)+4>>2];c[b+196+8>>2]=c[b+164+(d<<4)+8>>2];c[b+196+12>>2]=c[b+164+(d<<4)+12>>2];H=56}else{d=k;H=55}}if((H|0)==55){h=b+332|0;H=56}if((H|0)==56){i=d+-1|0;if(!(a[h>>0]&2)){c[b>>2]=i;c[b+20>>2]=c[b+4+(i<<4)>>2];c[b+20+4>>2]=c[b+4+(i<<4)+4>>2];c[b+20+8>>2]=c[b+4+(i<<4)+8>>2];c[b+20+12>>2]=c[b+4+(i<<4)+12>>2];c[b+100>>2]=c[b+84+(i<<4)>>2];c[b+100+4>>2]=c[b+84+(i<<4)+4>>2];c[b+100+8>>2]=c[b+84+(i<<4)+8>>2];c[b+100+12>>2]=c[b+84+(i<<4)+12>>2];c[b+180>>2]=c[b+164+(i<<4)>>2];c[b+180+4>>2]=c[b+164+(i<<4)+4>>2];c[b+180+8>>2]=c[b+164+(i<<4)+8>>2];c[b+180+12>>2]=c[b+164+(i<<4)+12>>2];d=i;H=60}else H=59}if((H|0)==59){h=b+332|0;H=60}if((H|0)==60?(G=d+-1|0,(a[h>>0]&1)==0):0){c[b>>2]=G;c[b+4>>2]=c[b+4+(G<<4)>>2];c[b+4+4>>2]=c[b+4+(G<<4)+4>>2];c[b+4+8>>2]=c[b+4+(G<<4)+8>>2];c[b+4+12>>2]=c[b+4+(G<<4)+12>>2];c[b+84>>2]=c[b+84+(G<<4)>>2];c[b+84+4>>2]=c[b+84+(G<<4)+4>>2];c[b+84+8>>2]=c[b+84+(G<<4)+8>>2];c[b+84+12>>2]=c[b+84+(G<<4)+12>>2];c[b+164>>2]=c[b+164+(G<<4)>>2];c[b+164+4>>2]=c[b+164+(G<<4)+4>>2];c[b+164+8>>2]=c[b+164+(G<<4)+8>>2];c[b+164+12>>2]=c[b+164+(G<<4)+12>>2]}if((+f[b+336>>2]>=0.0?+f[b+340>>2]>=0.0:0)?+f[b+344>>2]>=0.0:0)d=e>=0.0&1;else d=0;a[b+312>>0]=d}while(0);if((H|0)==68){a[d>>0]=0;d=0}W=d;W=W<<24>>24!=0;ea=I;return W|0}default:{a[b+312>>0]=0;W=0;W=W<<24>>24!=0;ea=I;return W|0}}return 0}function ob(b,d,e,g,h,i,j,k,l){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0.0,q=0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0.0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Z=0,_=0;_=ea;ea=ea+256|0;c[b+188>>2]=-1;Fi(15490);c[b+184>>2]=0;if((e|0)>0){l=0;do{c[(c[d+(l<<2)>>2]|0)+212>>2]=-1;l=l+1|0}while((l|0)!=(e|0))}l=c[b+12>>2]|0;if((l|0)>(e|0))n=b+8|0;else{if((e+1|0)!=0?(c[6747]=(c[6747]|0)+1,m=kb(((e+1|0)*244|3)+16|0)|0,(m|0)!=0):0){c[(m+4+15&-16)+-4>>2]=m;n=m+4+15&-16}else n=0;l=c[b+8>>2]|0;if((l|0)>0){m=0;do{W=n+(m*244|0)|0;X=c[b+16>>2]|0;V=X+(m*244|0)|0;c[W>>2]=c[V>>2];c[W+4>>2]=c[V+4>>2];c[W+8>>2]=c[V+8>>2];c[W+12>>2]=c[V+12>>2];W=X+(m*244|0)+16|0;V=n+(m*244|0)+16|0;c[V>>2]=c[W>>2];c[V+4>>2]=c[W+4>>2];c[V+8>>2]=c[W+8>>2];c[V+12>>2]=c[W+12>>2];V=X+(m*244|0)+32|0;W=n+(m*244|0)+32|0;c[W>>2]=c[V>>2];c[W+4>>2]=c[V+4>>2];c[W+8>>2]=c[V+8>>2];c[W+12>>2]=c[V+12>>2];W=n+(m*244|0)+48|0;V=X+(m*244|0)+48|0;c[W>>2]=c[V>>2];c[W+4>>2]=c[V+4>>2];c[W+8>>2]=c[V+8>>2];c[W+12>>2]=c[V+12>>2];vh(n+(m*244|0)+64|0,X+(m*244|0)+64|0,180)|0;m=m+1|0}while((m|0)!=(l|0))}l=c[b+16>>2]|0;if(l|0){if(a[b+20>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[l+-4>>2]|0)}c[b+16>>2]=0}a[b+20>>0]=1;c[b+16>>2]=n;c[b+12>>2]=e+1;l=e+1|0;n=b+8|0}hk(_|0,0,244)|0;m=c[n>>2]|0;if((m|0)<0){if((l|0)<0){l=c[b+16>>2]|0;if(l|0){if(a[b+20>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[l+-4>>2]|0)}c[b+16>>2]=0}a[b+20>>0]=1;c[b+16>>2]=0;c[b+12>>2]=0}l=m;do{X=c[b+16>>2]|0;W=X+(l*244|0)|0;c[W>>2]=c[_>>2];c[W+4>>2]=c[_+4>>2];c[W+8>>2]=c[_+8>>2];c[W+12>>2]=c[_+12>>2];W=X+(l*244|0)+16|0;c[W>>2]=c[_+16>>2];c[W+4>>2]=c[_+16+4>>2];c[W+8>>2]=c[_+16+8>>2];c[W+12>>2]=c[_+16+12>>2];W=X+(l*244|0)+32|0;c[W>>2]=c[_+32>>2];c[W+4>>2]=c[_+32+4>>2];c[W+8>>2]=c[_+32+8>>2];c[W+12>>2]=c[_+32+12>>2];W=X+(l*244|0)+48|0;c[W>>2]=c[_+48>>2];c[W+4>>2]=c[_+48+4>>2];c[W+8>>2]=c[_+48+8>>2];c[W+12>>2]=c[_+48+12>>2];vh(X+(l*244|0)+64|0,_+64|0,180)|0;l=l+1|0}while((l|0)!=0)}c[n>>2]=0;if((e|0)>0){n=0;do{l=d+(n<<2)|0;m=Kc(b,c[l>>2]|0,+f[k+12>>2])|0;l=c[l>>2]|0;if((!((l|0)==0?1:(c[l+236>>2]&2|0)==0)?+f[l+344>>2]!=0.0:0)?(o=c[b+16>>2]|0,c[l+504>>2]&2|0):0){p=+f[k+76>>2];N=1.0/+f[l+396>>2];P=1.0/+f[l+400>>2];t=1.0/+f[l+404>>2];H=+f[l+4>>2];I=+f[l+8>>2];J=+f[l+12>>2];K=+f[l+20>>2];L=+f[l+24>>2];M=+f[l+28>>2];O=+f[l+36>>2];Q=+f[l+40>>2];v=+f[l+44>>2];x=+f[l+328>>2];y=+f[l+332>>2];u=+f[l+336>>2];A=(N*H*H+P*I*I+t*J*J)*x+(N*H*K+P*I*L+t*J*M)*y+(N*H*O+P*I*Q+t*J*v)*u;z=(N*K*H+P*L*I+t*M*J)*x+(N*K*K+P*L*L+t*M*M)*y+(N*K*O+P*L*Q+t*M*v)*u;v=(N*O*H+P*Q*I+t*v*J)*x+(N*O*K+P*Q*L+t*v*M)*y+(N*O*O+P*Q*Q+t*v*v)*u;t=(x*z-y*A)*(x*z-y*A)+((y*v-u*z)*(y*v-u*z)+(u*A-x*v)*(u*A-x*v));if(t>p*p){p=1.0/+s(+t)*p;w=(y*v-u*z)*p;t=(u*A-x*v)*p;p=(x*z-y*A)*p}else{w=y*v-u*z;t=u*A-x*v;p=x*z-y*A}O=+f[k+12>>2];P=(w*+f[l+268>>2]+t*+f[l+284>>2]+p*+f[l+300>>2])*O;Q=O*(w*+f[l+272>>2]+t*+f[l+288>>2]+p*+f[l+304>>2]);f[o+(m*244|0)+224>>2]=+f[o+(m*244|0)+224>>2]-(w*+f[l+264>>2]+t*+f[l+280>>2]+p*+f[l+296>>2])*O;f[o+(m*244|0)+228>>2]=+f[o+(m*244|0)+228>>2]-P;f[o+(m*244|0)+232>>2]=+f[o+(m*244|0)+232>>2]-Q}n=n+1|0}while((n|0)!=(e|0))}if((j|0)>0){l=0;do{X=c[i+(l<<2)>>2]|0;Ca[c[(c[X>>2]|0)+8>>2]&511](X);f[X+36>>2]=0.0;l=l+1|0}while((l|0)<(j|0))}l=c[b+168>>2]|0;if((l|0)<(j|0)?(c[b+172>>2]|0)<(j|0):0){if(!j)m=0;else{c[6747]=(c[6747]|0)+1;l=kb((j<<3|3)+16|0)|0;if(!l)m=0;else{c[(l+4+15&-16)+-4>>2]=l;m=l+4+15&-16}l=c[b+168>>2]|0}if((l|0)>0){n=0;do{V=(c[b+176>>2]|0)+(n<<3)|0;W=c[V+4>>2]|0;X=m+(n<<3)|0;c[X>>2]=c[V>>2];c[X+4>>2]=W;n=n+1|0}while((n|0)!=(l|0))}l=c[b+176>>2]|0;if(l|0){if(a[b+180>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[l+-4>>2]|0)}c[b+176>>2]=0}a[b+180>>0]=1;c[b+176>>2]=m;c[b+172>>2]=j}c[b+168>>2]=j;if((j|0)>0){q=0;l=0;do{d=c[b+176>>2]|0;e=d+(q<<3)|0;o=i+(q<<2)|0;m=c[o>>2]|0;n=c[m+44>>2]|0;if(n){m=n+64|0;do{c[n>>2]=0;n=n+4|0}while((n|0)<(m|0));m=c[o>>2]|0}if(!(a[m+20>>0]|0)){c[e>>2]=0;c[d+(q<<3)+4>>2]=0;m=0}else{Ia[c[(c[m>>2]|0)+16>>2]&127](m,e);m=c[e>>2]|0}l=m+l|0;q=q+1|0}while((q|0)<(j|0));o=l}else o=0;l=c[b+48>>2]|0;if((l|0)<(o|0)?(c[b+52>>2]|0)<(o|0):0){if(!o)m=0;else{c[6747]=(c[6747]|0)+1;l=kb((o*152|3)+16|0)|0;if(!l)m=0;else{c[(l+4+15&-16)+-4>>2]=l;m=l+4+15&-16}l=c[b+48>>2]|0}if((l|0)>0){n=0;do{vh(m+(n*152|0)|0,(c[b+56>>2]|0)+(n*152|0)|0,152)|0;n=n+1|0}while((n|0)!=(l|0))}l=c[b+56>>2]|0;if(l|0){if(a[b+60>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[l+-4>>2]|0)}c[b+56>>2]=0}a[b+60>>0]=1;c[b+56>>2]=m;c[b+52>>2]=o}c[b+48>>2]=o;if((j|0)>0){l=c[b+176>>2]|0;W=0;X=0;while(1){V=l+(X<<3)|0;if(!(c[V>>2]|0))m=0;else{l=c[b+56>>2]|0;R=l+(W*152|0)|0;S=i+(X<<2)|0;o=c[S>>2]|0;d=c[o+28>>2]|0;e=c[o+32>>2]|0;T=Kc(b,d,+f[k+12>>2])|0;U=Kc(b,e,+f[k+12>>2])|0;q=c[b+16>>2]|0;m=c[o+24>>2]|0;m=(m|0)>0?m:c[k+20>>2]|0;if((m|0)>(c[b+184>>2]|0))c[b+184>>2]=m;if((c[V>>2]|0)>0){n=0;do{hk(R+(n*152|0)|0,0,152)|0;f[R+(n*152|0)+120>>2]=-3402823466385288598117041.0e14;f[R+(n*152|0)+124>>2]=3402823466385288598117041.0e14;f[R+(n*152|0)+100>>2]=0.0;f[R+(n*152|0)+96>>2]=0.0;c[R+(n*152|0)+144>>2]=T;c[R+(n*152|0)+148>>2]=U;c[R+(n*152|0)+136>>2]=m;n=n+1|0}while((n|0)<(c[V>>2]|0))}c[q+(T*244|0)+64>>2]=0;c[q+(T*244|0)+64+4>>2]=0;c[q+(T*244|0)+64+8>>2]=0;c[q+(T*244|0)+64+12>>2]=0;c[q+(T*244|0)+64+16>>2]=0;c[q+(T*244|0)+64+20>>2]=0;c[q+(T*244|0)+64+24>>2]=0;c[q+(T*244|0)+64+28>>2]=0;c[q+(T*244|0)+144>>2]=0;c[q+(T*244|0)+144+4>>2]=0;c[q+(T*244|0)+144+8>>2]=0;c[q+(T*244|0)+144+12>>2]=0;c[q+(T*244|0)+144+16>>2]=0;c[q+(T*244|0)+144+20>>2]=0;c[q+(T*244|0)+144+24>>2]=0;c[q+(T*244|0)+144+28>>2]=0;c[q+(U*244|0)+64>>2]=0;c[q+(U*244|0)+64+4>>2]=0;c[q+(U*244|0)+64+8>>2]=0;c[q+(U*244|0)+64+12>>2]=0;c[q+(U*244|0)+64+16>>2]=0;c[q+(U*244|0)+64+20>>2]=0;c[q+(U*244|0)+64+24>>2]=0;c[q+(U*244|0)+64+28>>2]=0;c[q+(U*244|0)+144>>2]=0;c[q+(U*244|0)+144+4>>2]=0;c[q+(U*244|0)+144+8>>2]=0;c[q+(U*244|0)+144+12>>2]=0;c[q+(U*244|0)+144+16>>2]=0;c[q+(U*244|0)+144+20>>2]=0;c[q+(U*244|0)+144+24>>2]=0;c[q+(U*244|0)+144+28>>2]=0;f[_>>2]=1.0/+f[k+12>>2];c[_+4>>2]=c[k+32>>2];c[_+8>>2]=l+(W*152|0)+16;c[_+12>>2]=R;c[_+16>>2]=l+(W*152|0)+48;c[_+20>>2]=l+(W*152|0)+32;c[_+24>>2]=38;c[_+28>>2]=l+(W*152|0)+112;n=l+(W*152|0)+116|0;c[n>>2]=c[k+40>>2];c[_+52>>2]=c[k+4>>2];c[_+32>>2]=n;c[_+36>>2]=l+(W*152|0)+120;c[_+40>>2]=l+(W*152|0)+124;c[_+48>>2]=c[k+20>>2];n=c[S>>2]|0;Ia[c[(c[n>>2]|0)+20>>2]&127](n,_);if((c[V>>2]|0)>0){m=0;do{l=R+(m*152|0)+124|0;p=+f[(c[S>>2]|0)+16>>2];if(+f[l>>2]>=p)f[l>>2]=p;l=R+(m*152|0)+120|0;if(+f[l>>2]<=-p)f[l>>2]=-p;c[R+(m*152|0)+132>>2]=o;n=R+(m*152|0)|0;l=c[o+28>>2]|0;p=+f[n>>2];t=+f[n+4>>2];u=+f[n+8>>2];w=(p*+f[l+280>>2]+t*+f[l+284>>2]+u*+f[l+288>>2])*+f[l+548>>2];v=(p*+f[l+296>>2]+t*+f[l+300>>2]+u*+f[l+304>>2])*+f[l+552>>2];n=R+(m*152|0)+64|0;f[n>>2]=(+f[l+264>>2]*p+ +f[l+268>>2]*t+ +f[l+272>>2]*u)*+f[l+544>>2];f[n+4>>2]=w;f[n+8>>2]=v;f[n+12>>2]=0.0;n=R+(m*152|0)+32|0;l=c[o+32>>2]|0;v=+f[n>>2];w=+f[n+4>>2];x=+f[n+8>>2];y=(v*+f[l+280>>2]+w*+f[l+284>>2]+x*+f[l+288>>2])*+f[l+548>>2];P=(v*+f[l+296>>2]+w*+f[l+300>>2]+x*+f[l+304>>2])*+f[l+552>>2];n=R+(m*152|0)+80|0;f[n>>2]=(+f[l+264>>2]*v+ +f[l+268>>2]*w+ +f[l+272>>2]*x)*+f[l+544>>2];f[n+4>>2]=y;f[n+8>>2]=P;f[n+12>>2]=0.0;n=R+(m*152|0)+16|0;P=+f[d+344>>2];y=+f[n>>2];z=+f[n+4>>2];A=+f[n+8>>2];n=R+(m*152|0)+48|0;Q=+f[e+344>>2];B=+f[n>>2];C=+f[n+4>>2];D=+f[n+8>>2];Q=y*(P*y)+z*(P*z)+A*(P*A)+(p*(p*+f[d+264>>2]+t*+f[d+268>>2]+u*+f[d+272>>2])+t*(p*+f[d+280>>2]+t*+f[d+284>>2]+u*+f[d+288>>2])+u*(p*+f[d+296>>2]+t*+f[d+300>>2]+u*+f[d+304>>2]))+(B*(Q*B)+C*(Q*C)+D*(Q*D))+(v*(v*+f[e+264>>2]+w*+f[e+268>>2]+x*+f[e+272>>2])+w*(v*+f[e+280>>2]+w*+f[e+284>>2]+x*+f[e+288>>2])+x*(v*+f[e+296>>2]+w*+f[e+300>>2]+x*+f[e+304>>2]));n=+r(+Q)>1.1920928955078125e-07;Q=n?1.0/Q:0.0;f[R+(m*152|0)+108>>2]=Q;if(!(c[q+(T*244|0)+240>>2]|0)){E=0.0;F=0.0;G=0.0;H=0.0;I=0.0;J=0.0}else{E=+f[q+(T*244|0)+208>>2];F=+f[q+(T*244|0)+212>>2];G=+f[q+(T*244|0)+216>>2];H=+f[q+(T*244|0)+224>>2];I=+f[q+(T*244|0)+228>>2];J=+f[q+(T*244|0)+232>>2]}if(!(c[q+(U*244|0)+240>>2]|0)){K=0.0;L=0.0;M=0.0;N=0.0;O=0.0;P=0.0}else{K=+f[q+(U*244|0)+208>>2];L=+f[q+(U*244|0)+212>>2];M=+f[q+(U*244|0)+216>>2];N=+f[q+(U*244|0)+224>>2];O=+f[q+(U*244|0)+228>>2];P=+f[q+(U*244|0)+232>>2]}n=R+(m*152|0)+112|0;f[n>>2]=Q*+f[n>>2]+Q*(0.0-+f[_+52>>2]*(y*(E+ +f[d+312>>2])+z*(F+ +f[d+316>>2])+A*(G+ +f[d+320>>2])+(p*(H+ +f[d+328>>2])+t*(I+ +f[d+332>>2])+u*(J+ +f[d+336>>2]))+(B*(K+ +f[e+312>>2])+C*(L+ +f[e+316>>2])+D*(M+ +f[e+320>>2])+(v*(N+ +f[e+328>>2])+w*(O+ +f[e+332>>2])+x*(P+ +f[e+336>>2])))));f[R+(m*152|0)+100>>2]=0.0;m=m+1|0}while((m|0)<(c[V>>2]|0))}l=c[b+176>>2]|0;m=c[l+(X<<3)>>2]|0}X=X+1|0;if((X|0)>=(j|0))break;else W=m+W|0}}Pa[c[(c[b>>2]|0)+28>>2]&127](b,g,h,k);d=c[b+48>>2]|0;e=c[b+28>>2]|0;q=c[b+68>>2]|0;l=c[b+128>>2]|0;if((l|0)<(d|0)?(c[b+132>>2]|0)<(d|0):0){if(!d)m=0;else{c[6747]=(c[6747]|0)+1;l=kb((d<<2|3)+16|0)|0;if(!l)m=0;else{c[(l+4+15&-16)+-4>>2]=l;m=l+4+15&-16}l=c[b+128>>2]|0}o=c[b+136>>2]|0;if((l|0)<=0)if(!o)l=b+140|0;else Z=106;else{n=0;do{c[m+(n<<2)>>2]=c[o+(n<<2)>>2];n=n+1|0}while((n|0)!=(l|0));Z=106}if((Z|0)==106){if(a[b+140>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[o+-4>>2]|0)}c[b+136>>2]=0;l=b+140|0}a[l>>0]=1;c[b+136>>2]=m;c[b+132>>2]=d}c[b+128>>2]=d;if(!(c[k+64>>2]&16)){l=c[b+108>>2]|0;if((l|0)<(e|0)?(c[b+112>>2]|0)<(e|0):0){if(!e)m=0;else{c[6747]=(c[6747]|0)+1;l=kb((e<<2|3)+16|0)|0;if(!l)m=0;else{c[(l+4+15&-16)+-4>>2]=l;m=l+4+15&-16}l=c[b+108>>2]|0}o=c[b+116>>2]|0;if((l|0)<=0)if(!o)l=b+120|0;else Z=138;else{n=0;do{c[m+(n<<2)>>2]=c[o+(n<<2)>>2];n=n+1|0}while((n|0)!=(l|0));Z=138}if((Z|0)==138){if(a[b+120>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[o+-4>>2]|0)}c[b+116>>2]=0;l=b+120|0}a[l>>0]=1;c[b+116>>2]=m;c[b+112>>2]=e}c[b+108>>2]=e}else{l=c[b+108>>2]|0;if((l|0)<(e<<1|0)?(c[b+112>>2]|0)<(e<<1|0):0){if(!e)m=0;else{c[6747]=(c[6747]|0)+1;l=kb((e<<3|3)+16|0)|0;if(!l)m=0;else{c[(l+4+15&-16)+-4>>2]=l;m=l+4+15&-16}l=c[b+108>>2]|0}o=c[b+116>>2]|0;if((l|0)<=0)if(!o)l=b+120|0;else Z=122;else{n=0;do{c[m+(n<<2)>>2]=c[o+(n<<2)>>2];n=n+1|0}while((n|0)!=(l|0));Z=122}if((Z|0)==122){if(a[b+120>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[o+-4>>2]|0)}c[b+116>>2]=0;l=b+120|0}a[l>>0]=1;c[b+116>>2]=m;c[b+112>>2]=e<<1}c[b+108>>2]=e<<1}l=c[b+148>>2]|0;if((l|0)<(q|0)?(c[b+152>>2]|0)<(q|0):0){if(!q)m=0;else{c[6747]=(c[6747]|0)+1;l=kb((q<<2|3)+16|0)|0;if(!l)m=0;else{c[(l+4+15&-16)+-4>>2]=l;m=l+4+15&-16}l=c[b+148>>2]|0}o=c[b+156>>2]|0;if((l|0)<=0)if(!o)l=b+160|0;else Z=154;else{n=0;do{c[m+(n<<2)>>2]=c[o+(n<<2)>>2];n=n+1|0}while((n|0)!=(l|0));Z=154}if((Z|0)==154){if(a[b+160>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[o+-4>>2]|0)}c[b+156>>2]=0;l=b+160|0}a[l>>0]=1;c[b+156>>2]=m;c[b+152>>2]=q}c[b+148>>2]=q;if((d|0)>0){l=c[b+136>>2]|0;m=0;do{c[l+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(d|0))}if((e|0)>0){l=c[b+116>>2]|0;m=0;do{c[l+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(e|0))}if((q|0)>0){l=c[b+156>>2]|0;m=0;do{c[l+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(q|0))}l=c[2685]|0;b=(c[l+16>>2]|0)+-1|0;c[l+16>>2]=b;if(b|0){ea=_;return 0.0}do if(c[l+4>>2]|0){Y(_|0,0)|0;b=c[6746]|0;f[l+8>>2]=+f[l+8>>2]+ +(((c[_+4>>2]|0)-(c[b+4>>2]|0)+(((c[_>>2]|0)-(c[b>>2]|0)|0)*1e6|0)-(c[l+12>>2]|0)|0)>>>0)/1.0e3;if(!(c[l+16>>2]|0)){l=c[2685]|0;break}else{ea=_;return 0.0}}while(0);c[2685]=c[l+20>>2];ea=_;return 0.0}function pb(b,d,e,g,h){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,t=0.0,x=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0.0,Y=0.0,Z=0.0,_=0.0,$=0.0,aa=0.0,ba=0.0,ca=0.0,da=0.0,fa=0.0,ga=0.0,ha=0.0,ia=0.0,ja=0.0,ka=0.0,la=0.0,ma=0,na=0.0,oa=0.0,pa=0.0,qa=0.0,ra=0.0,sa=0.0;ma=ea;ea=ea+80|0;f[b+504>>2]=0.0;f[b+500>>2]=0.0;a[b+525>>0]=0;a[b+526>>0]=0;if(a[b+552>>0]|0?(a[b+527>>0]|0)==0:0){sa=+f[b+556>>2];qa=+f[b+560>>2];la=+f[b+564>>2];pa=+f[b+568>>2];$=sa*(2.0/(sa*sa+qa*qa+la*la+pa*pa));ra=qa*(2.0/(sa*sa+qa*qa+la*la+pa*pa));oa=la*(2.0/(sa*sa+qa*qa+la*la+pa*pa));aa=+f[b+300>>2];S=+f[d>>2];ba=+f[b+316>>2];T=+f[d+4>>2];ca=+f[b+332>>2];U=+f[d+8>>2];fa=+f[b+304>>2];ha=+f[b+320>>2];ja=+f[b+336>>2];Y=+f[b+308>>2];Z=+f[b+324>>2];_=+f[b+340>>2];V=+f[d+16>>2];W=+f[d+20>>2];X=+f[d+24>>2];ga=+f[d+32>>2];ia=+f[d+36>>2];ka=+f[d+40>>2];q=+f[b+348>>2];p=+f[b+352>>2];o=+f[b+356>>2];A=+f[b+364>>2];na=+f[e>>2];B=+f[b+380>>2];l=+f[e+4>>2];C=+f[b+396>>2];k=+f[e+8>>2];D=+f[b+368>>2];E=+f[b+384>>2];F=+f[b+400>>2];t=+f[b+372>>2];x=+f[b+388>>2];z=+f[b+404>>2];m=+f[e+16>>2];n=+f[e+20>>2];j=+f[e+24>>2];G=+f[e+32>>2];I=+f[e+36>>2];K=+f[e+40>>2];H=+f[b+412>>2];J=+f[b+416>>2];i=+f[b+420>>2];M=(1.0-(qa*ra+la*oa))*(A*na+B*l+C*k)+(sa*ra+pa*oa)*(na*D+l*E+k*F)+(sa*oa-pa*ra)*(na*t+l*x+k*z);N=(sa*ra-pa*oa)*(A*na+B*l+C*k)+(1.0-(sa*$+la*oa))*(na*D+l*E+k*F)+(qa*oa+pa*$)*(na*t+l*x+k*z);L=(sa*oa+pa*ra)*(A*na+B*l+C*k)+(qa*oa-pa*$)*(na*D+l*E+k*F)+(1.0-(sa*$+qa*ra))*(na*t+l*x+k*z);P=(sa*oa-pa*ra)*(t*m+x*n+z*j)+((1.0-(qa*ra+la*oa))*(A*m+B*n+C*j)+(sa*ra+pa*oa)*(D*m+E*n+F*j));R=(qa*oa+pa*$)*(t*m+x*n+z*j)+((sa*ra-pa*oa)*(A*m+B*n+C*j)+(1.0-(sa*$+la*oa))*(D*m+E*n+F*j));O=(1.0-(sa*$+qa*ra))*(t*m+x*n+z*j)+((sa*oa+pa*ra)*(A*m+B*n+C*j)+(qa*oa-pa*$)*(D*m+E*n+F*j));da=(sa*oa-pa*ra)*(t*G+x*I+z*K)+((1.0-(qa*ra+la*oa))*(A*G+B*I+C*K)+(sa*ra+pa*oa)*(D*G+E*I+F*K));la=(qa*oa+pa*$)*(t*G+x*I+z*K)+((sa*ra-pa*oa)*(A*G+B*I+C*K)+(1.0-(sa*$+la*oa))*(D*G+E*I+F*K));$=(1.0-(sa*$+qa*ra))*(t*G+x*I+z*K)+((sa*oa+pa*ra)*(A*G+B*I+C*K)+(qa*oa-pa*$)*(D*G+E*I+F*K));pa=-(+f[d+48>>2]+(S*q+T*p+U*o));oa=-(V*q+W*p+X*o+ +f[d+52>>2]);o=-(ga*q+ia*p+ka*o+ +f[d+56>>2]);p=(aa*S+ba*T+ca*U)*pa+(aa*V+ba*W+ca*X)*oa+(aa*ga+ba*ia+ca*ka)*o;q=(S*fa+T*ha+U*ja)*pa+(fa*V+ha*W+ja*X)*oa+(fa*ga+ha*ia+ja*ka)*o;o=(S*Y+T*Z+U*_)*pa+(Y*V+Z*W+_*X)*oa+(Y*ga+Z*ia+_*ka)*o;k=o*L+(p*M+q*N)+((A*na+B*l+C*k)*0.0+(na*D+l*E+k*F)*0.0+(na*t+l*x+k*z)*0.0+(+f[e+48>>2]+(na*H+l*J+k*i)));j=o*O+(p*P+q*R)+((t*m+x*n+z*j)*0.0+((A*m+B*n+C*j)*0.0+(D*m+E*n+F*j)*0.0)+(m*H+n*J+j*i+ +f[e+52>>2]));i=o*$+(p*da+q*la)+((t*G+x*I+z*K)*0.0+((A*G+B*I+C*K)*0.0+(D*G+E*I+F*K)*0.0)+(G*H+I*J+K*i+ +f[e+56>>2]));f[ma+16>>2]=(S*Y+T*Z+U*_)*L+((aa*S+ba*T+ca*U)*M+(S*fa+T*ha+U*ja)*N);f[ma+16+4>>2]=(Y*V+Z*W+_*X)*L+((aa*V+ba*W+ca*X)*M+(fa*V+ha*W+ja*X)*N);f[ma+16+8>>2]=(Y*ga+Z*ia+_*ka)*L+((aa*ga+ba*ia+ca*ka)*M+(fa*ga+ha*ia+ja*ka)*N);f[ma+16+12>>2]=0.0;f[ma+16+16>>2]=(S*Y+T*Z+U*_)*O+((aa*S+ba*T+ca*U)*P+(S*fa+T*ha+U*ja)*R);f[ma+16+20>>2]=(Y*V+Z*W+_*X)*O+((aa*V+ba*W+ca*X)*P+(fa*V+ha*W+ja*X)*R);f[ma+16+24>>2]=(Y*ga+Z*ia+_*ka)*O+((aa*ga+ba*ia+ca*ka)*P+(fa*ga+ha*ia+ja*ka)*R);f[ma+16+28>>2]=0.0;f[ma+16+32>>2]=(S*Y+T*Z+U*_)*$+((aa*S+ba*T+ca*U)*da+(S*fa+T*ha+U*ja)*la);f[ma+16+36>>2]=(Y*V+Z*W+_*X)*$+((aa*V+ba*W+ca*X)*da+(fa*V+ha*W+ja*X)*la);f[ma+16+40>>2]=(Y*ga+Z*ia+_*ka)*$+((aa*ga+ba*ia+ca*ka)*da+(fa*ga+ha*ia+ja*ka)*la);f[ma+16+44>>2]=0.0;f[ma+16+48>>2]=k;f[ma+16+52>>2]=j;f[ma+16+56>>2]=i;f[ma+16+60>>2]=0.0;Gg(ma+16|0,ma);i=+f[ma>>2];j=+f[ma+4>>2];k=+f[ma+8>>2];if(!(+r(+(i*i+j*j+k*k))<1.1920928955078125e-07)?(f[b+472>>2]=0.0,sa=1.0/+s(+(i*i+j*j+k*k)),f[b+460>>2]=sa*i,f[b+464>>2]=sa*j,f[b+468>>2]=sa*k,sa=+f[ma+12>>2],sa=sa<-1.0?-1.0:sa,sa=+w(+(sa>1.0?1.0:sa))*2.0,f[b+504>>2]=sa,!(+r(+sa)<1.1920928955078125e-07)):0)a[b+526>>0]=1;ea=ma;return}Gg(d,ma+16|0);Gg(b+300|0,ma);U=+f[ma+16+12>>2];V=+f[ma>>2];W=+f[ma+16>>2];X=+f[ma+12>>2];Y=+f[ma+16+4>>2];Z=+f[ma+8>>2];_=+f[ma+16+8>>2];$=+f[ma+4>>2];Gg(e,ma+16|0);Gg(b+364|0,ma);aa=+f[ma+16+12>>2];ba=+f[ma>>2];ca=+f[ma+16>>2];da=+f[ma+12>>2];fa=+f[ma+16+4>>2];ga=+f[ma+8>>2];ha=+f[ma+16+8>>2];ia=+f[ma+4>>2];ja=-(aa*ba+ca*da+fa*ga-ha*ia);ka=-(ba*ha+(da*fa+aa*ia)-ca*ga);la=-(aa*ga+da*ha+ca*ia-ba*fa);p=(U*X-V*W-Y*$-Z*_)*ja+(U*V+W*X+Y*Z-_*$)*(aa*da-ba*ca-fa*ia-ga*ha)+(U*Z+X*_+W*$-V*Y)*ka-(V*_+(X*Y+U*$)-W*Z)*la;q=(U*V+W*X+Y*Z-_*$)*la+((V*_+(X*Y+U*$)-W*Z)*(aa*da-ba*ca-fa*ia-ga*ha)+(U*X-V*W-Y*$-Z*_)*ka)-(U*Z+X*_+W*$-V*Y)*ja;t=(V*_+(X*Y+U*$)-W*Z)*ja+((U*Z+X*_+W*$-V*Y)*(aa*da-ba*ca-fa*ia-ga*ha)+(U*X-V*W-Y*$-Z*_)*la)-(U*V+W*X+Y*Z-_*$)*ka;x=(U*X-V*W-Y*$-Z*_)*(aa*da-ba*ca-fa*ia-ga*ha)-(U*V+W*X+Y*Z-_*$)*ja-(V*_+(X*Y+U*$)-W*Z)*ka-(U*Z+X*_+W*$-V*Y)*la;l=-p-q*0.0-t*0.0;k=(t+x*0.0-p*0.0)*-t+(x*(x+q*0.0-t*0.0)+l*-p)-(x*0.0+p*0.0-q)*-q;i=(x*0.0+p*0.0-q)*-p+(x*(t+x*0.0-p*0.0)+l*-q)-(x+q*0.0-t*0.0)*-t;l=(x+q*0.0-t*0.0)*-q+(x*(x*0.0+p*0.0-q)+l*-t)-(t+x*0.0-p*0.0)*-p;j=1.0/+s(+(l*l+(k*k+i*i)));if(l*j*0.0+(i*j*0.0+k*j)<-.9999998807907104){m=-0.0;n=0.0;o=0.0;i=1.0}else{sa=+s(+((l*j*0.0+(i*j*0.0+k*j)+1.0)*2.0));m=(l*j*0.0-i*j*0.0)*(1.0/sa);n=(i*j-k*j*0.0)*(1.0/sa);o=sa*.5;i=(k*j*0.0-l*j)*(1.0/sa)}k=1.0/+s(+(m*m+i*i+n*n+o*o));z=m*k;A=i*k;m=n*k;k=o*k;T=1.0/+s(+((x*k-p*-z-q*-A-t*-m)*(x*k-p*-z-q*-A-t*-m)+((q*-z+(t*k+x*-m)-p*-A)*(q*-z+(t*k+x*-m)-p*-A)+((t*-A+(p*k+x*-z)-q*-m)*(t*-A+(p*k+x*-z)-q*-m)+(p*-m+(x*-A+q*k)-t*-z)*(p*-m+(x*-A+q*k)-t*-z)))));j=(t*-A+(p*k+x*-z)-q*-m)*T;l=(p*-m+(x*-A+q*k)-t*-z)*T;i=(q*-z+(t*k+x*-m)-p*-A)*T;T=(x*k-p*-z-q*-A-t*-m)*T;S=+f[b+444>>2];R=+f[b+456>>2];if(S>=R?(B=+f[b+448>>2],B>=R):0){t=k<-1.0?-1.0:k;t=+w(+(t>1.0?1.0:t))*2.0;if(t>1.1920928955078125e-07){k=1.0/+s(+(m*m+(z*z+A*A)));if(+r(+(A*k))>1.1920928955078125e-07){q=+s(+((m*k*(m*k)/(A*k*(A*k))+1.0)/(m*k*(m*k)/(A*k*(A*k))/(S*S)+1.0/(B*B))));n=z*k;m=m*k;k=A*k}else{q=S;n=z*k;m=m*k;k=A*k}}else{q=0.0;n=0.0;m=0.0;k=0.0}o=+f[b+428>>2];p=q*o;if(t>p){a[b+526>>0]=1;if(t>2]=o;f[b+504>>2]=t-p;if(+r(+k)>1.1920928955078125e-07){sa=+r(+(k*(B/S*(-m/k))));m=m<-0.0?sa:-sa;sa=1.0/+s(+(n*n+k*k+m*m));n=n*sa;m=-(m*sa);k=k*sa}ra=-n;qa=-k;oa=-m;na=(aa*da-ba*ca-fa*ia-ga*ha)*ra+(ba*ha+(da*fa+aa*ia)-ca*ga)*oa-(aa*ga+da*ha+ca*ia-ba*fa)*qa;sa=(aa*ga+da*ha+ca*ia-ba*fa)*ra+(aa*da-ba*ca-fa*ia-ga*ha)*qa-(aa*ba+ca*da+fa*ga-ha*ia)*oa;pa=(aa*ba+ca*da+fa*ga-ha*ia)*qa+(aa*da-ba*ca-fa*ia-ga*ha)*oa-(ba*ha+(da*fa+aa*ia)-ca*ga)*ra;oa=-((aa*ba+ca*da+fa*ga-ha*ia)*ra)-(ba*ha+(da*fa+aa*ia)-ca*ga)*qa-(aa*ga+da*ha+ca*ia-ba*fa)*oa;qa=sa*la+(oa*ja+(aa*da-ba*ca-fa*ia-ga*ha)*na)-pa*ka;ra=pa*ja+((aa*da-ba*ca-fa*ia-ga*ha)*sa+oa*ka)-na*la;sa=na*ka+(oa*la+(aa*da-ba*ca-fa*ia-ga*ha)*pa)-sa*ja;f[b+460>>2]=qa;f[b+464>>2]=ra;f[b+468>>2]=sa;f[b+472>>2]=0.0;c[b+536>>2]=0;c[b+536+4>>2]=0;c[b+536+8>>2]=0;c[b+536+12>>2]=0;f[b+492>>2]=1.0/(qa*(+f[g>>2]*qa+ +f[g+16>>2]*ra+ +f[g+32>>2]*sa)+ra*(qa*+f[g+4>>2]+ra*+f[g+20>>2]+sa*+f[g+36>>2])+sa*(qa*+f[g+8>>2]+ra*+f[g+24>>2]+sa*+f[g+40>>2])+(qa*(qa*+f[h>>2]+ra*+f[h+16>>2]+sa*+f[h+32>>2])+ra*(qa*+f[h+4>>2]+ra*+f[h+20>>2]+sa*+f[h+36>>2])+sa*(qa*+f[h+8>>2]+ra*+f[h+24>>2]+sa*+f[h+40>>2])))}}else Q=20;a:do if((Q|0)==20){F=+f[b+300>>2];G=+f[b+316>>2];H=+f[b+332>>2];I=+f[d>>2];J=+f[d+4>>2];K=+f[d+8>>2];L=+f[d+16>>2];M=+f[d+20>>2];N=+f[d+24>>2];O=+f[d+32>>2];P=+f[d+36>>2];q=+f[d+40>>2];t=+f[b+304>>2];x=+f[b+320>>2];z=+f[b+336>>2];A=+f[b+308>>2];B=+f[b+324>>2];C=+f[b+340>>2];m=+f[b+364>>2];n=+f[b+380>>2];p=+f[b+396>>2];E=m*+f[e>>2]+n*+f[e+4>>2]+p*+f[e+8>>2];D=m*+f[e+16>>2]+n*+f[e+20>>2]+p*+f[e+24>>2];p=m*+f[e+32>>2]+n*+f[e+36>>2]+p*+f[e+40>>2];n=(F*I+G*J+H*K)*E+(F*L+G*M+H*N)*D+(F*O+G*P+H*q)*p;m=(I*t+J*x+K*z)*E+(L*t+M*x+N*z)*D+(O*t+P*x+q*z)*p;k=(I*A+J*B+K*C)*E+(L*A+M*B+N*C)*D+(O*A+P*B+q*C)*p;do if(S>2];if(o>0]=1;f[b+460>>2]=-((F*O+G*P+H*q)*D-(F*L+G*M+H*N)*p);f[b+464>>2]=-((F*I+G*J+H*K)*p-(F*O+G*P+H*q)*E);f[b+468>>2]=-((F*L+G*M+H*N)*E-(F*I+G*J+H*K)*D);f[b+472>>2]=0.0;break a}if(!(+r(+n)<1.1920928955078125e-07&+r(+k)<1.1920928955078125e-07)?(a[b+526>>0]=1,o>=R):0){m=+y(+k,+n);if(m>o){n=+u(+o);m=0.0;k=+v(+o);break}if(m<-o){n=+u(+o);m=0.0;k=-+v(+o)}else m=0.0}}else if(!(+r(+n)<1.1920928955078125e-07&+r(+m)<1.1920928955078125e-07)?(a[b+526>>0]=1,S>=R):0){k=+y(+m,+n);if(k>S){n=+u(+S);m=+v(+S);k=0.0;break}if(k<-S){n=+u(+S);m=-+v(+S);k=0.0}else k=0.0}while(0);qa=(I*A+J*B+K*C)*k+((I*t+J*x+K*z)*m+(F*I+G*J+H*K)*n);pa=(L*A+M*B+N*C)*k+((L*t+M*x+N*z)*m+(F*L+G*M+H*N)*n);oa=(O*A+P*B+q*C)*k+((O*t+P*x+q*z)*m+(F*O+G*P+H*q)*n);ra=1.0/+s(+(oa*oa+(qa*qa+pa*pa)));f[b+472>>2]=0.0;sa=+s(+((D*(oa*ra)-p*(pa*ra))*(D*(oa*ra)-p*(pa*ra))+(p*(qa*ra)-E*(oa*ra))*(p*(qa*ra)-E*(oa*ra))+(E*(pa*ra)-D*(qa*ra))*(E*(pa*ra)-D*(qa*ra))));f[b+504>>2]=sa;f[b+460>>2]=-((D*(oa*ra)-p*(pa*ra))*(1.0/sa));f[b+464>>2]=-((p*(qa*ra)-E*(oa*ra))*(1.0/sa));f[b+468>>2]=-((E*(pa*ra)-D*(qa*ra))*(1.0/sa))}while(0);o=+f[b+452>>2];if(!(o>=0.0)){f[b+512>>2]=0.0;ea=ma;return}k=T<-1.0?-1.0:T;k=+w(+(k>1.0?1.0:k))*2.0;if(k>3.1415927410125732){n=-T<-1.0?-1.0:-T;j=-j;l=-l;i=-i;n=+w(+(n>1.0?1.0:n))*2.0}else n=k;f[b+512>>2]=n;if(n>1.1920928955078125e-07){sa=1.0/+s(+(j*j+l*l+i*i));j=j*sa;m=i*sa;l=l*sa}else m=i;i=+f[b+428>>2];if(n>o*i){a[b+525>>0]=1;k=n-o*i;if(n>2]=i;f[b+508>>2]=k;ra=-j;qa=-l;oa=-m;na=(aa*da-ba*ca-fa*ia-ga*ha)*ra+(ba*ha+(da*fa+aa*ia)-ca*ga)*oa-(aa*ga+da*ha+ca*ia-ba*fa)*qa;sa=(aa*ga+da*ha+ca*ia-ba*fa)*ra+(aa*da-ba*ca-fa*ia-ga*ha)*qa-(aa*ba+ca*da+fa*ga-ha*ia)*oa;pa=(aa*ba+ca*da+fa*ga-ha*ia)*qa+(aa*da-ba*ca-fa*ia-ga*ha)*oa-(ba*ha+(da*fa+aa*ia)-ca*ga)*ra;oa=-((aa*ba+ca*da+fa*ga-ha*ia)*ra)-(ba*ha+(da*fa+aa*ia)-ca*ga)*qa-(aa*ga+da*ha+ca*ia-ba*fa)*oa;qa=sa*la+(oa*ja+(aa*da-ba*ca-fa*ia-ga*ha)*na)-pa*ka;ra=pa*ja+((aa*da-ba*ca-fa*ia-ga*ha)*sa+oa*ka)-na*la;sa=na*ka+(oa*la+(aa*da-ba*ca-fa*ia-ga*ha)*pa)-sa*ja;f[b+476>>2]=qa;f[b+480>>2]=ra;f[b+484>>2]=sa;f[b+488>>2]=0.0;f[b+496>>2]=1.0/(qa*(+f[g>>2]*qa+ +f[g+16>>2]*ra+ +f[g+32>>2]*sa)+ra*(qa*+f[g+4>>2]+ra*+f[g+20>>2]+sa*+f[g+36>>2])+sa*(qa*+f[g+8>>2]+ra*+f[g+24>>2]+sa*+f[g+40>>2])+(qa*(qa*+f[h>>2]+ra*+f[h+16>>2]+sa*+f[h+32>>2])+ra*(qa*+f[h+4>>2]+ra*+f[h+20>>2]+sa*+f[h+36>>2])+sa*(qa*+f[h+8>>2]+ra*+f[h+24>>2]+sa*+f[h+40>>2])))}if(!(a[b+526>>0]|0)){ea=ma;return}na=-j;sa=-l;oa=-m;la=(U*X-V*W-Y*$-Z*_)*na+(V*_+(X*Y+U*$)-W*Z)*oa-(U*Z+X*_+W*$-V*Y)*sa;ra=(U*Z+X*_+W*$-V*Y)*na+(U*X-V*W-Y*$-Z*_)*sa-(U*V+W*X+Y*Z-_*$)*oa;qa=(U*V+W*X+Y*Z-_*$)*sa+(U*X-V*W-Y*$-Z*_)*oa-(V*_+(X*Y+U*$)-W*Z)*na;oa=-((U*V+W*X+Y*Z-_*$)*na)-(V*_+(X*Y+U*$)-W*Z)*sa-(U*Z+X*_+W*$-V*Y)*oa;sa=-(U*V+W*X+Y*Z-_*$);na=-(V*_+(X*Y+U*$)-W*Z);pa=-(U*Z+X*_+W*$-V*Y);f[b+536>>2]=ra*pa+(oa*sa+(U*X-V*W-Y*$-Z*_)*la)-qa*na;f[b+540>>2]=qa*sa+((U*X-V*W-Y*$-Z*_)*ra+oa*na)-la*pa;f[b+544>>2]=la*na+(oa*pa+(U*X-V*W-Y*$-Z*_)*qa)-ra*sa;f[b+548>>2]=0.0;ea=ma;return}function qb(b,d){b=b|0;d=d|0;var e=0.0,g=0.0,h=0,i=0.0,j=0,k=0.0,l=0.0,m=0,n=0.0,o=0,p=0.0,q=0,r=0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0.0,Y=0.0,Z=0.0,_=0.0,$=0.0,aa=0.0,ba=0.0,ca=0.0,da=0.0,ea=0.0,fa=0.0,ga=0.0,ha=0.0,ia=0.0,ja=0.0,ka=0.0,la=0,ma=0,na=0;ma=c[b+28>>2]|0;na=c[b+32>>2]|0;la=c[d+24>>2]|0;if(!(a[b+739>>0]|0)){k=+f[b+552>>2];R=+f[ma+4>>2];l=+f[b+568>>2];S=+f[ma+8>>2];n=+f[b+584>>2];T=+f[ma+12>>2];p=+f[b+556>>2];t=+f[b+572>>2];u=+f[b+588>>2];U=+f[b+560>>2];V=+f[b+576>>2];W=+f[b+592>>2];X=+f[ma+20>>2];Y=+f[ma+24>>2];Z=+f[ma+28>>2];_=+f[ma+36>>2];$=+f[ma+40>>2];aa=+f[ma+44>>2];v=+f[b+600>>2];w=+f[b+604>>2];x=+f[b+608>>2];y=+f[ma+52>>2];z=+f[ma+56>>2];A=+f[ma+60>>2];B=+f[na+4>>2];C=+f[na+8>>2];D=+f[na+12>>2];E=+f[b+624>>2];F=+f[b+640>>2];G=+f[b+656>>2];H=+f[na+20>>2];I=+f[na+24>>2];J=+f[na+28>>2];K=+f[na+36>>2];L=+f[na+40>>2];M=+f[na+44>>2];ja=+f[b+664>>2];ka=+f[b+668>>2];O=+f[b+672>>2];N=+f[na+52>>2]+(B*ja+C*ka+D*O);P=H*ja+I*ka+J*O+ +f[na+56>>2];O=K*ja+L*ka+M*O+ +f[na+60>>2];j=(a[b+736>>0]|0)==0;if(j){h=c[d+8>>2]|0;f[h>>2]=1.0;f[h+(la+1<<2)>>2]=1.0;f[h+((la<<1)+2<<2)>>2]=1.0;h=c[d+16>>2]|0;f[h>>2]=-1.0;f[h+(la+1<<2)>>2]=-1.0;f[h+((la<<1)+2<<2)>>2]=-1.0;e=+f[ma+52>>2];g=+f[ma+56>>2];i=+f[ma+60>>2];h=la<<1}else{e=y;g=z;i=A;h=la<<1}e=y+(R*v+S*w+T*x)-e;ka=X*v+Y*w+Z*x+z-g;ja=_*v+$*w+aa*x+A-i;m=c[d+12>>2]|0;o=m+(h<<2)|0;c[m>>2]=0;f[m+4>>2]=ja;f[m+8>>2]=-ka;f[m+12>>2]=0.0;f[m+(la<<2)>>2]=-ja;c[m+(la<<2)+4>>2]=0;f[m+(la<<2)+8>>2]=e;f[m+(la<<2)+12>>2]=0.0;f[o>>2]=ka;f[o+4>>2]=-e;c[o+8>>2]=0;f[o+12>>2]=0.0;e=N-+f[na+52>>2];ka=P-+f[na+56>>2];ja=O-+f[na+60>>2];o=c[d+20>>2]|0;Q=o+(h<<2)|0;c[o>>2]=0;f[o+4>>2]=-ja;f[o+8>>2]=ka;f[o+12>>2]=0.0;f[o+(la<<2)>>2]=ja;c[o+(la<<2)+4>>2]=0;f[o+(la<<2)+8>>2]=-e;f[o+(la<<2)+12>>2]=0.0;f[Q>>2]=-ka;f[Q+4>>2]=e;c[Q+8>>2]=0;f[Q+12>>2]=0.0;e=+f[d>>2]*+f[d+4>>2];Q=c[d+28>>2]|0;if(j){f[Q>>2]=e*(N-(y+(R*v+S*w+T*x)));f[Q+(la<<2)>>2]=e*(P-(X*v+Y*w+Z*x+z));f[Q+(la<<1<<2)>>2]=e*(O-(_*v+$*w+aa*x+A))}f[m+(la*3<<2)>>2]=k*R+l*S+n*T;f[m+((la*3|0)+1<<2)>>2]=k*X+l*Y+n*Z;f[m+((la*3|0)+2<<2)>>2]=k*_+l*$+n*aa;f[m+(la<<2<<2)>>2]=R*p+S*t+T*u;f[m+((la<<2|1)<<2)>>2]=p*X+t*Y+u*Z;f[m+((la<<2|2)<<2)>>2]=p*_+t*$+u*aa;f[o+(la*3<<2)>>2]=-(k*R+l*S+n*T);f[o+((la*3|0)+1<<2)>>2]=-(k*X+l*Y+n*Z);f[o+((la*3|0)+2<<2)>>2]=-(k*_+l*$+n*aa);f[o+(la<<2<<2)>>2]=-(R*p+S*t+T*u);f[o+((la<<2|1)<<2)>>2]=-(p*X+t*Y+u*Z);f[o+((la<<2|2)<<2)>>2]=-(p*_+t*$+u*aa);ja=(U*X+V*Y+W*Z)*(E*K+F*L+G*M)-(U*_+V*$+W*aa)*(E*H+F*I+G*J);ka=(U*_+V*$+W*aa)*(B*E+C*F+D*G)-(R*U+S*V+T*W)*(E*K+F*L+G*M);ia=(R*U+S*V+T*W)*(E*H+F*I+G*J)-(U*X+V*Y+W*Z)*(B*E+C*F+D*G);f[Q+(la*3<<2)>>2]=((k*_+l*$+n*aa)*ia+((k*R+l*S+n*T)*ja+(k*X+l*Y+n*Z)*ka))*e;f[Q+(la<<2<<2)>>2]=((p*_+t*$+u*aa)*ia+((R*p+S*t+T*u)*ja+(p*X+t*Y+u*Z)*ka))*e;if(!(a[b+716>>0]|0)){r=0;p=0.0}else{p=+f[b+708>>2]*+f[b+732>>2];r=p>0.0?1:2}h=a[b+737>>0]|0;q=(r|0)!=0;if(!(r|h&255))return;f[m+(la*5<<2)>>2]=R*U+S*V+T*W;f[m+((la*5|0)+1<<2)>>2]=U*X+V*Y+W*Z;f[m+((la*5|0)+2<<2)>>2]=U*_+V*$+W*aa;f[o+(la*5<<2)>>2]=-(R*U+S*V+T*W);f[o+((la*5|0)+1<<2)>>2]=-(U*X+V*Y+W*Z);f[o+((la*5|0)+2<<2)>>2]=-(U*_+V*$+W*aa);e=+f[b+688>>2];g=+f[b+692>>2];if(!((e-g)%6.2831854820251465<-3.1415927410125732))if((e-g)%6.2831854820251465>3.1415927410125732)n=(e-g)%6.2831854820251465+-6.2831854820251465;else n=(e-g)%6.2831854820251465;else n=(e-g)%6.2831854820251465+6.2831854820251465;if(!((e+g)%6.2831854820251465<-3.1415927410125732))if((e+g)%6.2831854820251465>3.1415927410125732)l=(e+g)%6.2831854820251465+-6.2831854820251465;else l=(e+g)%6.2831854820251465;else l=(e+g)%6.2831854820251465+6.2831854820251465;m=n==l;o=Q+(la*5<<2)|0;f[o>>2]=0.0;j=c[b+748>>2]|0;k=+f[((j&2|0)==0?d+4|0:b+760|0)>>2];if(!(h<<24>>24==0|q&m)){if(j&4|0)c[(c[d+32>>2]|0)+(la*5<<2)>>2]=c[b+752>>2];g=+f[b+728>>2];i=+f[b+680>>2];e=n>l?1.0:0.0;do if(!(n>=l)){e=i/(k*+f[d>>2]);if(e<0.0)if(g>=n&n-e>g){e=(n-g)/e;break}else{e=g0.0)if(g<=l&l-el?0.0:1.0;break}else e=0.0}while(0);f[o>>2]=e*i*+f[b+732>>2]+ +f[o>>2];f[(c[d+36>>2]|0)+(la*5<<2)>>2]=-+f[b+684>>2];c[(c[d+40>>2]|0)+(la*5<<2)>>2]=c[b+684>>2]}if(!q)return;f[o>>2]=+f[o>>2]+p*(k*+f[d>>2]);if(j&1|0)c[(c[d+32>>2]|0)+(la*5<<2)>>2]=c[b+756>>2];do if(!m){h=(c[d+36>>2]|0)+(la*5<<2)|0;if((r|0)==1){f[h>>2]=0.0;e=3402823466385288598117041.0e14;break}else{f[h>>2]=-3402823466385288598117041.0e14;e=0.0;break}}else{f[(c[d+36>>2]|0)+(la*5<<2)>>2]=-3402823466385288598117041.0e14;e=3402823466385288598117041.0e14}while(0);f[(c[d+40>>2]|0)+(la*5<<2)>>2]=e;g=+f[b+704>>2];do if(g>0.0){e=(R*U+S*V+T*W)*+f[ma+328>>2]+(U*X+V*Y+W*Z)*+f[ma+332>>2]+(U*_+V*$+W*aa)*+f[ma+336>>2]-((R*U+S*V+T*W)*+f[na+328>>2]+(U*X+V*Y+W*Z)*+f[na+332>>2]+(U*_+V*$+W*aa)*+f[na+336>>2]);if((r|0)==1){if(!(e<0.0))break;if(!(+f[o>>2]<-(g*e)))break;f[o>>2]=-(g*e);break}else{if(!(e>0.0))break;if(!(+f[o>>2]>-(g*e)))break;f[o>>2]=-(g*e);break}}while(0);f[o>>2]=+f[b+700>>2]*+f[o>>2];return}ea=+f[ma+4>>2];fa=+f[ma+8>>2];ga=+f[ma+12>>2];n=+f[b+556>>2];p=+f[b+572>>2];t=+f[b+588>>2];K=+f[b+560>>2];L=+f[b+576>>2];M=+f[b+592>>2];N=+f[ma+20>>2];O=+f[ma+24>>2];P=+f[ma+28>>2];R=+f[ma+36>>2];S=+f[ma+40>>2];T=+f[ma+44>>2];B=+f[b+600>>2];D=+f[b+604>>2];C=+f[b+608>>2];g=+f[ma+52>>2];u=+f[ma+56>>2];k=+f[ma+60>>2];U=+f[na+4>>2];V=+f[na+8>>2];W=+f[na+12>>2];X=+f[b+624>>2];Y=+f[b+640>>2];Z=+f[b+656>>2];_=+f[na+20>>2];$=+f[na+24>>2];aa=+f[na+28>>2];ba=+f[na+36>>2];ca=+f[na+40>>2];da=+f[na+44>>2];A=+f[b+664>>2];z=+f[b+668>>2];e=+f[b+672>>2];i=+f[na+52>>2];v=+f[na+56>>2];l=+f[na+60>>2];F=i+(U*A+V*z+W*e)-(g+(ea*B+fa*D+ga*C));H=_*A+$*z+aa*e+v-(N*B+O*D+P*C+u);G=ba*A+ca*z+da*e+l-(R*B+S*D+T*C+k);w=+f[(c[b+28>>2]|0)+344>>2];x=+f[(c[b+32>>2]|0)+344>>2];E=w+x>0.0?x/(w+x):.5;ha=(ea*K+fa*L+ga*M)*E+(U*X+V*Y+W*Z)*(1.0-E);ja=(K*N+L*O+M*P)*E+(X*_+Y*$+Z*aa)*(1.0-E);ia=(K*R+L*S+M*T)*E+(X*ba+Y*ca+Z*da)*(1.0-E);ka=1.0/+s(+(ia*ia+(ha*ha+ja*ja)));y=(ba*A+ca*z+da*e+l-l)*(ia*ka)+((i+(U*A+V*z+W*e)-i)*(ha*ka)+(_*A+$*z+aa*e+v-v)*(ja*ka));i=i+(U*A+V*z+W*e)-i-ha*ka*y;v=_*A+$*z+aa*e+v-v-ja*ka*y;l=ba*A+ca*z+da*e+l-l-ia*ka*y;e=(R*B+S*D+T*C+k-k)*(ia*ka)+((g+(ea*B+fa*D+ga*C)-g)*(ha*ka)+(N*B+O*D+P*C+u-u)*(ja*ka));g=g+(ea*B+fa*D+ga*C)-g-ha*ka*e;u=N*B+O*D+P*C+u-u-ja*ka*e;k=R*B+S*D+T*C+k-k-ia*ka*e;C=g+E*(ha*ka*e-ha*ka*y);D=u+E*(ja*ka*e-ja*ka*y);B=k+E*(ia*ka*e-ia*ka*y);z=i-(1.0-E)*(ha*ka*e-ha*ka*y);A=v-(1.0-E)*(ja*ka*e-ja*ka*y);y=l-(1.0-E)*(ia*ka*e-ia*ka*y);e=(E*l+(1.0-E)*k)*(E*l+(1.0-E)*k)+((E*i+(1.0-E)*g)*(E*i+(1.0-E)*g)+(E*v+(1.0-E)*u)*(E*v+(1.0-E)*u));if(e>1.1920928955078125e-07){p=1.0/+s(+e);J=(E*i+(1.0-E)*g)*p;I=(E*l+(1.0-E)*k)*p;p=(E*v+(1.0-E)*u)*p}else{J=ea*n+fa*p+ga*t;I=n*R+p*S+t*T;p=n*N+p*O+t*P}t=ja*ka*I-ia*ka*p;u=ia*ka*J-ha*ka*I;v=ha*ka*p-ja*ka*J;Q=c[d+12>>2]|0;f[Q>>2]=D*I-B*p;f[Q+4>>2]=B*J-C*I;f[Q+8>>2]=C*p-D*J;Q=c[d+20>>2]|0;f[Q>>2]=-(A*I-y*p);f[Q+4>>2]=-(y*J-z*I);f[Q+8>>2]=-(z*p-A*J);if(w<1.1920928955078125e-07|x<1.1920928955078125e-07?(a[b+716>>0]|0)!=0:0){e=(1.0-E)*(A*v-y*u);g=(1.0-E)*(y*t-z*v);i=(1.0-E)*(z*u-A*t);k=E*(D*v-B*u);l=E*(B*t-C*v);n=E*(C*u-D*t)}else{e=A*v-y*u;g=y*t-z*v;i=z*u-A*t;k=D*v-B*u;l=B*t-C*v;n=C*u-D*t}Q=(c[d+12>>2]|0)+(la<<2)|0;f[Q>>2]=k;f[Q+4>>2]=l;f[Q+8>>2]=n;Q=c[d+20>>2]|0;f[Q+(la<<2)>>2]=-e;f[Q+(la+1<<2)>>2]=-g;f[Q+(la+2<<2)>>2]=-i;if(w<1.1920928955078125e-07|x<1.1920928955078125e-07){n=(1.0-E)*(A*(ia*ka)-y*(ja*ka));l=(1.0-E)*(y*(ha*ka)-z*(ia*ka));k=(1.0-E)*(z*(ja*ka)-A*(ha*ka));i=E*(D*(ia*ka)-B*(ja*ka));g=E*(B*(ha*ka)-C*(ia*ka));e=E*(C*(ja*ka)-D*(ha*ka))}else{n=A*(ia*ka)-y*(ja*ka);l=y*(ha*ka)-z*(ia*ka);k=z*(ja*ka)-A*(ha*ka);i=D*(ia*ka)-B*(ja*ka);g=B*(ha*ka)-C*(ia*ka);e=C*(ja*ka)-D*(ha*ka)}h=(c[d+12>>2]|0)+(la<<1<<2)|0;f[h>>2]=i;f[h+4>>2]=g;f[h+8>>2]=e;h=c[d+20>>2]|0;f[h+(la<<1<<2)>>2]=-n;f[h+((la<<1|1)<<2)>>2]=-l;f[h+((la<<1)+2<<2)>>2]=-k;e=+f[d>>2]*+f[d+4>>2];if(!(a[b+736>>0]|0)){o=c[d+8>>2]|0;f[o>>2]=J;f[o+4>>2]=p;f[o+8>>2]=I;o=(c[d+8>>2]|0)+(la<<2)|0;f[o>>2]=t;f[o+4>>2]=u;f[o+8>>2]=v;o=(c[d+8>>2]|0)+(la<<1<<2)|0;f[o>>2]=ha*ka;f[o+4>>2]=ja*ka;f[o+8>>2]=ia*ka;o=c[d+16>>2]|0;g=-J;f[o>>2]=g;f[o+4>>2]=-p;f[o+8>>2]=-I;f[o+(la<<2)>>2]=-t;f[o+(la+1<<2)>>2]=-u;f[o+(la+2<<2)>>2]=-v;f[o+(la<<1<<2)>>2]=-(ha*ka);f[o+((la<<1|1)<<2)>>2]=-(ja*ka);f[o+((la<<1)+2<<2)>>2]=-(ia*ka);o=c[d+28>>2]|0;f[o>>2]=e*(F*J+H*p+G*I);f[o+(la<<2)>>2]=e*(F*t+H*u+G*v);f[o+(la<<1<<2)>>2]=e*(F*(ha*ka)+H*(ja*ka)+G*(ia*ka));m=c[d+20>>2]|0;e=g;g=-t;i=-u;k=-v}else{m=h;o=c[d+28>>2]|0;e=-J;g=-t;i=-u;k=-v}j=c[d+12>>2]|0;f[j+(la*3<<2)>>2]=J;f[j+((la*3|0)+1<<2)>>2]=p;f[j+((la*3|0)+2<<2)>>2]=I;f[j+(la<<2<<2)>>2]=t;f[j+((la<<2|1)<<2)>>2]=u;f[j+((la<<2|2)<<2)>>2]=v;f[m+(la*3<<2)>>2]=e;f[m+((la*3|0)+1<<2)>>2]=-p;f[m+((la*3|0)+2<<2)>>2]=-I;f[m+(la<<2<<2)>>2]=g;f[m+((la<<2|1)<<2)>>2]=i;f[m+((la<<2|2)<<2)>>2]=k;G=+f[d>>2]*+f[d+4>>2];H=(K*N+L*O+M*P)*(X*ba+Y*ca+Z*da)-(K*R+L*S+M*T)*(X*_+Y*$+Z*aa);da=(K*R+L*S+M*T)*(U*X+V*Y+W*Z)-(ea*K+fa*L+ga*M)*(X*ba+Y*ca+Z*da);ga=(ea*K+fa*L+ga*M)*(X*_+Y*$+Z*aa)-(K*N+L*O+M*P)*(U*X+V*Y+W*Z);f[o+(la*3<<2)>>2]=G*(H*J+da*p+ga*I);f[o+(la<<2<<2)>>2]=G*(H*t+da*u+ga*v);if(!(a[b+716>>0]|0)){r=0;p=0.0}else{p=+f[b+708>>2]*+f[b+732>>2];r=p>0.0?1:2}h=a[b+737>>0]|0;q=(r|0)!=0;if(!(r|h&255))return;f[j+(la*5<<2)>>2]=ha*ka;f[j+((la*5|0)+1<<2)>>2]=ja*ka;f[j+((la*5|0)+2<<2)>>2]=ia*ka;f[m+(la*5<<2)>>2]=-(ha*ka);f[m+((la*5|0)+1<<2)>>2]=-(ja*ka);f[m+((la*5|0)+2<<2)>>2]=-(ia*ka);e=+f[b+688>>2];g=+f[b+692>>2];if(!((e-g)%6.2831854820251465<-3.1415927410125732))if((e-g)%6.2831854820251465>3.1415927410125732)n=(e-g)%6.2831854820251465+-6.2831854820251465;else n=(e-g)%6.2831854820251465;else n=(e-g)%6.2831854820251465+6.2831854820251465;if(!((e+g)%6.2831854820251465<-3.1415927410125732))if((e+g)%6.2831854820251465>3.1415927410125732)l=(e+g)%6.2831854820251465+-6.2831854820251465;else l=(e+g)%6.2831854820251465;else l=(e+g)%6.2831854820251465+6.2831854820251465;m=n==l;o=o+(la*5<<2)|0;f[o>>2]=0.0;j=c[b+748>>2]|0;k=+f[((j&2|0)==0?d+4|0:b+760|0)>>2];if(!(h<<24>>24==0|q&m)){if(j&4|0)c[(c[d+32>>2]|0)+(la*5<<2)>>2]=c[b+752>>2];g=+f[b+728>>2];i=+f[b+680>>2];e=n>l?1.0:0.0;do if(!(n>=l)){e=i/(k*+f[d>>2]);if(e<0.0)if(g>=n&n-e>g){e=(n-g)/e;break}else{e=g0.0)if(g<=l&l-el?0.0:1.0;break}else e=0.0}while(0);f[o>>2]=e*i*+f[b+732>>2]+ +f[o>>2];f[(c[d+36>>2]|0)+(la*5<<2)>>2]=-+f[b+684>>2];c[(c[d+40>>2]|0)+(la*5<<2)>>2]=c[b+684>>2]}if(!q)return;f[o>>2]=+f[o>>2]+p*(k*+f[d>>2]);if(j&1|0)c[(c[d+32>>2]|0)+(la*5<<2)>>2]=c[b+756>>2];do if(!m){h=(c[d+36>>2]|0)+(la*5<<2)|0;if((r|0)==1){f[h>>2]=0.0;e=3402823466385288598117041.0e14;break}else{f[h>>2]=-3402823466385288598117041.0e14;e=0.0;break}}else{f[(c[d+36>>2]|0)+(la*5<<2)>>2]=-3402823466385288598117041.0e14;e=3402823466385288598117041.0e14}while(0);f[(c[d+40>>2]|0)+(la*5<<2)>>2]=e;g=+f[b+704>>2];do if(g>0.0){e=+f[ma+328>>2]*(ha*ka)+ +f[ma+332>>2]*(ja*ka)+ +f[ma+336>>2]*(ia*ka)-(+f[na+328>>2]*(ha*ka)+ +f[na+332>>2]*(ja*ka)+ +f[na+336>>2]*(ia*ka));if((r|0)==1){if(!(e<0.0))break;if(!(+f[o>>2]<-(g*e)))break;f[o>>2]=-(g*e);break}else{if(!(e>0.0))break;if(!(+f[o>>2]>-(g*e)))break;f[o>>2]=-(g*e);break}}while(0);f[o>>2]=+f[b+700>>2]*+f[o>>2];return}function rb(d,e,g,h,i,j){d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=+j;var k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,t=0.0,u=0.0,v=0,w=0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0,E=0,F=0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0;F=ea;ea=ea+896|0;E=c[h+4>>2]|0;D=c[h+12>>2]|0;k=c[E+4>>2]|0;if((k|0)<20){c[F+712>>2]=4752;c[F+712+168>>2]=0;f[F+712+172>>2]=j;c[F+712+164>>2]=c[i+4>>2];f[F+352+308>>2]=9.999999747378752e-05;a[F+352+332>>0]=0;c[F+288>>2]=10432;c[F+64>>2]=10500;c[F+64+4>>2]=F+352;c[F+64+8>>2]=F+288;c[F+64+12>>2]=d;c[F+64+16>>2]=E;c[F+64+20>>2]=0;if((Rc(F+64|0,e,g,D,D,F+712|0)|0?(v=F+712+132|0,t=+f[v>>2],l=+f[F+712+136>>2],m=+f[F+712+140>>2],t*t+l*l+m*m>9.999999747378752e-05):0)?(n=+f[F+712+164>>2],n<+f[i+4>>2]):0){j=1.0/+s(+(t*t+l*l+m*m));f[v>>2]=t*j;f[F+712+136>>2]=l*j;f[F+712+140>>2]=m*j;c[F+16>>2]=c[h+8>>2];c[F+16+4>>2]=0;c[F+16+8>>2]=c[v>>2];c[F+16+8+4>>2]=c[v+4>>2];c[F+16+8+8>>2]=c[v+8>>2];c[F+16+8+12>>2]=c[v+12>>2];c[F+16+24>>2]=c[F+712+148>>2];c[F+16+24+4>>2]=c[F+712+148+4>>2];c[F+16+24+8>>2]=c[F+712+148+8>>2];c[F+16+24+12>>2]=c[F+712+148+12>>2];f[F+16+40>>2]=n;+ka[c[(c[i>>2]|0)+12>>2]&15](i,F+16|0,1)}ea=F;return}if((k+-21|0)>>>0>=9){if((k|0)!=31){ea=F;return}Fi(17838);if((c[E+16>>2]|0)>0){k=0;do{v=c[E+24>>2]|0;l=+f[v+(k*80|0)>>2];o=+f[v+(k*80|0)+4>>2];r=+f[v+(k*80|0)+8>>2];m=+f[v+(k*80|0)+16>>2];p=+f[v+(k*80|0)+20>>2];u=+f[v+(k*80|0)+24>>2];n=+f[v+(k*80|0)+32>>2];q=+f[v+(k*80|0)+36>>2];y=+f[v+(k*80|0)+40>>2];N=+f[v+(k*80|0)+48>>2];M=+f[v+(k*80|0)+52>>2];C=+f[v+(k*80|0)+56>>2];v=c[v+(k*80|0)+64>>2]|0;L=+f[D>>2];K=+f[D+4>>2];J=+f[D+8>>2];I=+f[D+16>>2];H=+f[D+20>>2];G=+f[D+24>>2];t=+f[D+32>>2];x=+f[D+36>>2];z=+f[D+40>>2];A=N*L+M*K+C*J+ +f[D+48>>2];B=N*I+M*H+C*G+ +f[D+52>>2];C=N*t+M*x+C*z+ +f[D+56>>2];f[F+712>>2]=l*L+m*K+n*J;f[F+712+4>>2]=o*L+p*K+q*J;f[F+712+8>>2]=r*L+u*K+y*J;f[F+712+12>>2]=0.0;f[F+712+16>>2]=l*I+m*H+n*G;f[F+712+20>>2]=o*I+p*H+q*G;f[F+712+24>>2]=r*I+u*H+y*G;f[F+712+28>>2]=0.0;f[F+712+32>>2]=l*t+m*x+n*z;f[F+712+36>>2]=o*t+p*x+q*z;f[F+712+40>>2]=r*t+u*x+y*z;f[F+712+44>>2]=0.0;f[F+712+48>>2]=A;f[F+712+52>>2]=B;f[F+712+56>>2]=C;f[F+712+60>>2]=0.0;b[F+352+8>>1]=1;b[F+352+10>>1]=-1;c[F+352>>2]=7024;c[F+352+12>>2]=i;c[F+352+16>>2]=k;c[F+352+4>>2]=c[i+4>>2];w=c[h+8>>2]|0;c[F+288>>2]=h;c[F+288+4>>2]=v;c[F+288+8>>2]=w;c[F+288+12>>2]=F+712;c[F+288+16>>2]=-1;c[F+288+20>>2]=k;rb(d,e,g,F+288|0,F+352|0,j);k=k+1|0}while((k|0)<(c[E+16>>2]|0))}k=c[2685]|0;E=(c[k+16>>2]|0)+-1|0;c[k+16>>2]=E;if(E|0){ea=F;return}do if(c[k+4>>2]|0){Y(F+712|0,0)|0;E=c[6746]|0;f[k+8>>2]=+f[k+8>>2]+ +(((c[F+712+4>>2]|0)-(c[E+4>>2]|0)+(((c[F+712>>2]|0)-(c[E>>2]|0)|0)*1e6|0)-(c[k+12>>2]|0)|0)>>>0)/1.0e3;if(!(c[k+16>>2]|0)){k=c[2685]|0;break}else{ea=F;return}}while(0);c[2685]=c[k+20>>2];ea=F;return}switch(k|0){case 21:{l=+f[D>>2];m=+f[D+16>>2];n=+f[D+32>>2];o=+f[D+4>>2];p=+f[D+20>>2];q=+f[D+36>>2];r=+f[D+8>>2];t=+f[D+24>>2];u=+f[D+40>>2];A=-+f[D+48>>2];B=-+f[D+52>>2];C=-+f[D+56>>2];z=+f[e+48>>2];y=+f[e+52>>2];x=+f[e+56>>2];f[F+352>>2]=l*A+m*B+n*C+(l*z+m*y+n*x);f[F+352+4>>2]=o*A+p*B+q*C+(o*z+p*y+q*x);f[F+352+8>>2]=r*A+t*B+u*C+(r*z+t*y+u*x);f[F+352+12>>2]=0.0;x=+f[g+48>>2];y=+f[g+52>>2];z=+f[g+56>>2];O=+f[g>>2];G=+f[g+16>>2];H=+f[g+32>>2];I=+f[g+4>>2];J=+f[g+20>>2];K=+f[g+36>>2];L=+f[g+8>>2];M=+f[g+24>>2];N=+f[g+40>>2];f[F+288>>2]=l*O+m*G+n*H;f[F+288+4>>2]=l*I+m*J+n*K;f[F+288+8>>2]=l*L+m*M+n*N;f[F+288+12>>2]=0.0;f[F+288+16>>2]=o*O+p*G+q*H;f[F+288+20>>2]=o*I+p*J+q*K;f[F+288+24>>2]=o*L+p*M+q*N;f[F+288+28>>2]=0.0;f[F+288+32>>2]=r*O+t*G+u*H;f[F+288+36>>2]=r*I+t*J+u*K;f[F+288+40>>2]=r*L+t*M+u*N;k=F+288+44|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[k+16>>2]=0;k=c[h+8>>2]|0;N=+ha[c[(c[E>>2]|0)+48>>2]&15](E);c[F+64>>2]=10360;c[F+64+4>>2]=d;c[F+64+8>>2]=c[e>>2];c[F+64+8+4>>2]=c[e+4>>2];c[F+64+8+8>>2]=c[e+8>>2];c[F+64+8+12>>2]=c[e+12>>2];c[F+64+24>>2]=c[e+16>>2];c[F+64+24+4>>2]=c[e+16+4>>2];c[F+64+24+8>>2]=c[e+16+8>>2];c[F+64+24+12>>2]=c[e+16+12>>2];c[F+64+40>>2]=c[e+32>>2];c[F+64+40+4>>2]=c[e+32+4>>2];c[F+64+40+8>>2]=c[e+32+8>>2];c[F+64+40+12>>2]=c[e+32+12>>2];c[F+64+56>>2]=c[e+48>>2];c[F+64+56+4>>2]=c[e+48+4>>2];c[F+64+56+8>>2]=c[e+48+8>>2];c[F+64+56+12>>2]=c[e+48+12>>2];c[F+64+72>>2]=c[g>>2];c[F+64+72+4>>2]=c[g+4>>2];c[F+64+72+8>>2]=c[g+8>>2];c[F+64+72+12>>2]=c[g+12>>2];c[F+64+88>>2]=c[g+16>>2];c[F+64+88+4>>2]=c[g+16+4>>2];c[F+64+88+8>>2]=c[g+16+8>>2];c[F+64+88+12>>2]=c[g+16+12>>2];c[F+64+104>>2]=c[g+32>>2];c[F+64+104+4>>2]=c[g+32+4>>2];c[F+64+104+8>>2]=c[g+32+8>>2];c[F+64+104+12>>2]=c[g+32+12>>2];c[F+64+120>>2]=c[g+48>>2];c[F+64+120+4>>2]=c[g+48+4>>2];c[F+64+120+8>>2]=c[g+48+8>>2];c[F+64+120+12>>2]=c[g+48+12>>2];c[F+64+136>>2]=c[D>>2];c[F+64+136+4>>2]=c[D+4>>2];c[F+64+136+8>>2]=c[D+8>>2];c[F+64+136+12>>2]=c[D+12>>2];c[F+64+152>>2]=c[D+16>>2];c[F+64+152+4>>2]=c[D+16+4>>2];c[F+64+152+8>>2]=c[D+16+8>>2];c[F+64+152+12>>2]=c[D+16+12>>2];c[F+64+168>>2]=c[D+32>>2];c[F+64+168+4>>2]=c[D+32+4>>2];c[F+64+168+8>>2]=c[D+32+8>>2];c[F+64+168+12>>2]=c[D+32+12>>2];c[F+64+184>>2]=c[D+48>>2];c[F+64+184+4>>2]=c[D+48+4>>2];c[F+64+184+8>>2]=c[D+48+8>>2];c[F+64+184+12>>2]=c[D+48+12>>2];f[F+64+204>>2]=N;c[F+64>>2]=6976;c[F+64+212>>2]=i;c[F+64+216>>2]=k;c[F+64+220>>2]=E;c[F+64+200>>2]=c[i+4>>2];f[F+64+208>>2]=j;Pa[c[(c[d>>2]|0)+8>>2]&127](d,F+288|0,F+16|0,F);k=c[E+48>>2]|0;c[F+712>>2]=8116;c[F+712+4>>2]=k;c[F+712+8>>2]=F+64;k=c[E+52>>2]|0;if(!(a[k+60>>0]|0))Ld(k,F+712|0,F+352|0,l*A+m*B+n*C+(l*x+m*y+n*z),o*A+p*B+q*C+(o*x+p*y+q*z),r*A+t*B+u*C+(r*x+t*y+u*z),F+16|0,F);else pd(k,F+712|0,F+352|0,l*A+m*B+n*C+(l*x+m*y+n*z),o*A+p*B+q*C+(o*x+p*y+q*z),r*A+t*B+u*C+(r*x+t*y+u*z),F+16|0,F,c[k+56>>2]|0);ea=F;return}case 28:{c[F+712>>2]=4752;c[F+712+168>>2]=0;f[F+712+172>>2]=j;c[F+712+164>>2]=c[i+4>>2];c[F+352>>2]=10500;c[F+352+4>>2]=0;c[F+352+8>>2]=0;c[F+352+12>>2]=d;c[F+352+16>>2]=0;c[F+352+20>>2]=E;if((Rc(F+352|0,e,g,D,D,F+712|0)|0?(w=F+712+132|0,o=+f[w>>2],p=+f[F+712+136>>2],q=+f[F+712+140>>2],o*o+p*p+q*q>9.999999747378752e-05):0)?(r=+f[F+712+164>>2],r<+f[i+4>>2]):0){O=1.0/+s(+(o*o+p*p+q*q));f[w>>2]=o*O;f[F+712+136>>2]=p*O;f[F+712+140>>2]=q*O;c[F+288>>2]=c[h+8>>2];c[F+288+4>>2]=0;c[F+288+8>>2]=c[w>>2];c[F+288+8+4>>2]=c[w+4>>2];c[F+288+8+8>>2]=c[w+8>>2];c[F+288+8+12>>2]=c[w+12>>2];c[F+288+24>>2]=c[F+712+148>>2];c[F+288+24+4>>2]=c[F+712+148+4>>2];c[F+288+24+8>>2]=c[F+712+148+8>>2];c[F+288+24+12>>2]=c[F+712+148+12>>2];f[F+288+40>>2]=r;+ka[c[(c[i>>2]|0)+12>>2]&15](i,F+288|0,1)}ea=F;return}default:{o=+f[D>>2];p=+f[D+16>>2];q=+f[D+32>>2];x=+f[D+4>>2];y=+f[D+20>>2];z=+f[D+36>>2];J=+f[D+8>>2];L=+f[D+24>>2];N=+f[D+40>>2];H=-+f[D+48>>2];G=-+f[D+52>>2];C=-+f[D+56>>2];A=+f[e+48>>2];B=+f[e+52>>2];u=+f[e+56>>2];r=o*H+p*G+q*C+(o*A+p*B+q*u);t=x*H+y*G+z*C+(x*A+y*B+z*u);u=J*H+L*G+N*C+(J*A+L*B+N*u);B=+f[g+48>>2];A=+f[g+52>>2];l=+f[g+56>>2];n=o*H+p*G+q*C+(o*B+p*A+q*l);m=x*H+y*G+z*C+(x*B+y*A+z*l);l=J*H+L*G+N*C+(J*B+L*A+N*l);A=+f[g>>2];B=+f[g+16>>2];C=+f[g+32>>2];G=+f[g+4>>2];H=+f[g+20>>2];I=+f[g+36>>2];K=+f[g+8>>2];M=+f[g+24>>2];O=+f[g+40>>2];f[F+712>>2]=o*A+p*B+q*C;f[F+712+4>>2]=o*G+p*H+q*I;f[F+712+8>>2]=o*K+p*M+q*O;f[F+712+12>>2]=0.0;f[F+712+16>>2]=x*A+y*B+z*C;f[F+712+20>>2]=x*G+y*H+z*I;f[F+712+24>>2]=x*K+y*M+z*O;f[F+712+28>>2]=0.0;f[F+712+32>>2]=J*A+L*B+N*C;f[F+712+36>>2]=J*G+L*H+N*I;f[F+712+40>>2]=J*K+L*M+N*O;w=F+712+44|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;c[w+12>>2]=0;c[w+16>>2]=0;h=c[h+8>>2]|0;O=+ha[c[(c[E>>2]|0)+48>>2]&15](E);c[F+352>>2]=10360;c[F+352+4>>2]=d;c[F+352+8>>2]=c[e>>2];c[F+352+8+4>>2]=c[e+4>>2];c[F+352+8+8>>2]=c[e+8>>2];c[F+352+8+12>>2]=c[e+12>>2];c[F+352+24>>2]=c[e+16>>2];c[F+352+24+4>>2]=c[e+16+4>>2];c[F+352+24+8>>2]=c[e+16+8>>2];c[F+352+24+12>>2]=c[e+16+12>>2];c[F+352+40>>2]=c[e+32>>2];c[F+352+40+4>>2]=c[e+32+4>>2];c[F+352+40+8>>2]=c[e+32+8>>2];c[F+352+40+12>>2]=c[e+32+12>>2];c[F+352+56>>2]=c[e+48>>2];c[F+352+56+4>>2]=c[e+48+4>>2];c[F+352+56+8>>2]=c[e+48+8>>2];c[F+352+56+12>>2]=c[e+48+12>>2];c[F+352+72>>2]=c[g>>2];c[F+352+72+4>>2]=c[g+4>>2];c[F+352+72+8>>2]=c[g+8>>2];c[F+352+72+12>>2]=c[g+12>>2];c[F+352+88>>2]=c[g+16>>2];c[F+352+88+4>>2]=c[g+16+4>>2];c[F+352+88+8>>2]=c[g+16+8>>2];c[F+352+88+12>>2]=c[g+16+12>>2];c[F+352+104>>2]=c[g+32>>2];c[F+352+104+4>>2]=c[g+32+4>>2];c[F+352+104+8>>2]=c[g+32+8>>2];c[F+352+104+12>>2]=c[g+32+12>>2];c[F+352+120>>2]=c[g+48>>2];c[F+352+120+4>>2]=c[g+48+4>>2];c[F+352+120+8>>2]=c[g+48+8>>2];c[F+352+120+12>>2]=c[g+48+12>>2];c[F+352+136>>2]=c[D>>2];c[F+352+136+4>>2]=c[D+4>>2];c[F+352+136+8>>2]=c[D+8>>2];c[F+352+136+12>>2]=c[D+12>>2];c[F+352+152>>2]=c[D+16>>2];c[F+352+152+4>>2]=c[D+16+4>>2];c[F+352+152+8>>2]=c[D+16+8>>2];c[F+352+152+12>>2]=c[D+16+12>>2];c[F+352+168>>2]=c[D+32>>2];c[F+352+168+4>>2]=c[D+32+4>>2];c[F+352+168+8>>2]=c[D+32+8>>2];c[F+352+168+12>>2]=c[D+32+12>>2];c[F+352+184>>2]=c[D+48>>2];c[F+352+184+4>>2]=c[D+48+4>>2];c[F+352+184+8>>2]=c[D+48+8>>2];c[F+352+184+12>>2]=c[D+48+12>>2];f[F+352+204>>2]=O;c[F+352>>2]=7e3;c[F+352+212>>2]=i;c[F+352+216>>2]=h;c[F+352+220>>2]=E;c[F+352+200>>2]=c[i+4>>2];f[F+352+208>>2]=j;Pa[c[(c[d>>2]|0)+8>>2]&127](d,F+712|0,F+288|0,F+64|0);f[F+16>>2]=r;f[F+16+4>>2]=t;f[F+16+8>>2]=u;f[F+16+12>>2]=0.0;if(n>2]=n;o=n}else o=r;if(m>2]=m;p=m}else p=t;if(l>2]=l;q=l}else q=u;f[F>>2]=r;f[F+4>>2]=t;f[F+8>>2]=u;f[F+12>>2]=0.0;if(r>2]=n;else n=r;if(t>2]=m;else m=t;if(u>2]=l;else l=u;f[F+16>>2]=+f[F+288>>2]+o;f[F+16+4>>2]=+f[F+288+4>>2]+p;f[F+16+8>>2]=+f[F+288+8>>2]+q;f[F>>2]=+f[F+64>>2]+n;f[F+4>>2]=+f[F+64+4>>2]+m;f[F+8>>2]=+f[F+64+8>>2]+l;Pa[c[(c[E>>2]|0)+64>>2]&127](E,F+352|0,F+16|0,F);ea=F;return}}}function sb(d,e,g){d=d|0;e=e|0;g=+g;var h=0,i=0.0,j=0.0,k=0.0,l=0.0,m=0,n=0,o=0,p=0.0,q=0.0,s=0.0,t=0,u=0;t=ea;ea=ea+528|0;if((a[d+171>>0]|0)==0?+f[d+172>>2]<=0.0:0){ea=t;return}a[d+168>>0]=(ra[c[(c[d>>2]|0)+48>>2]&127](d)|0)&1;k=+f[d+16>>2]-+f[d+44>>2]*g;f[d+16>>2]=k;if(k>0.0?(j=+f[d+28>>2],k>j):0)f[d+16>>2]=j;else j=k;if(j<0.0?(q=+r(+j),l=+r(+(+f[d+24>>2])),q>l):0){f[d+16>>2]=-l;j=-l}f[d+20>>2]=j*g;o=c[d+8>>2]|0;c[t>>2]=c[o+4>>2];c[t+4>>2]=c[o+4+4>>2];c[t+8>>2]=c[o+4+8>>2];c[t+12>>2]=c[o+4+12>>2];c[t+16>>2]=c[o+20>>2];c[t+16+4>>2]=c[o+20+4>>2];c[t+16+8>>2]=c[o+20+8>>2];c[t+16+12>>2]=c[o+20+12>>2];c[t+32>>2]=c[o+36>>2];c[t+32+4>>2]=c[o+36+4>>2];c[t+32+8>>2]=c[o+36+8>>2];c[t+32+12>>2]=c[o+36+12>>2];c[t+48>>2]=c[o+52>>2];c[t+48+4>>2]=c[o+52+4>>2];c[t+48+8>>2]=c[o+52+8>>2];c[t+48+12>>2]=c[o+52+12>>2];if((a[24960]|0)==0?DC(24960)|0:0){c[5640]=1065353216;c[5641]=0;c[5642]=0;c[5643]=0;c[5644]=0;c[5645]=1065353216;c[5646]=0;c[5647]=0;c[5648]=0;c[5649]=0;c[5650]=1065353216;f[5651]=0.0;PB(24960)}o=c[d+176>>2]|0;l=+f[d+20>>2];l=+f[d+52>>2]+(l>0.0?l:0.0);p=+f[22560+(o<<4)+4>>2]*l+ +f[d+96>>2];q=l*+f[22560+(o<<4)+8>>2]+ +f[d+100>>2];f[d+112>>2]=+f[d+92>>2]+ +f[22560+(o<<4)>>2]*l;f[d+116>>2]=p;f[d+120>>2]=q;f[d+124>>2]=0.0;c[t+456>>2]=1065353216;c[t+456+4>>2]=0;c[t+456+4+4>>2]=0;c[t+456+4+8>>2]=0;c[t+456+4+12>>2]=0;c[t+456+20>>2]=1065353216;c[t+456+24>>2]=0;c[t+456+24+4>>2]=0;c[t+456+24+8>>2]=0;c[t+456+24+12>>2]=0;c[t+456+40>>2]=1065353216;o=t+456+44|0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;c[o+16>>2]=0;c[t+392>>2]=1065353216;c[t+392+4>>2]=0;c[t+392+4+4>>2]=0;c[t+392+4+8>>2]=0;c[t+392+4+12>>2]=0;c[t+392+20>>2]=1065353216;c[t+392+24>>2]=0;c[t+392+24+4>>2]=0;c[t+392+24+8>>2]=0;c[t+392+24+12>>2]=0;c[t+392+40>>2]=1065353216;o=t+392+44|0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;c[o+16>>2]=0;if((a[24960]|0)==0?DC(24960)|0:0){c[5640]=1065353216;c[5641]=0;c[5642]=0;c[5643]=0;c[5644]=0;c[5645]=1065353216;c[5646]=0;c[5647]=0;c[5648]=0;c[5649]=0;c[5650]=1065353216;f[5651]=0.0;PB(24960)}h=c[d+176>>2]|0;o=c[d+12>>2]|0;l=+ha[c[(c[o>>2]|0)+48>>2]&15](o);l=l+ +f[d+56>>2];p=l*+f[22560+(h<<4)+4>>2]+ +f[d+96>>2];q=l*+f[22560+(h<<4)+8>>2]+ +f[d+100>>2];f[t+456+48>>2]=+f[22560+(h<<4)>>2]*l+ +f[d+92>>2];f[t+456+52>>2]=p;f[t+456+56>>2]=q;f[t+456+60>>2]=0.0;c[t+392+48>>2]=c[d+112>>2];c[t+392+48+4>>2]=c[d+112+4>>2];c[t+392+48+8>>2]=c[d+112+8>>2];c[t+392+48+12>>2]=c[d+112+12>>2];h=c[d+8>>2]|0;if((a[24960]|0)==0?DC(24960)|0:0){c[5640]=1065353216;c[5641]=0;c[5642]=0;c[5643]=0;c[5644]=0;c[5645]=1065353216;c[5646]=0;c[5647]=0;c[5648]=0;c[5649]=0;c[5650]=1065353216;f[5651]=0.0;PB(24960)}o=c[d+176>>2]|0;l=-+f[22560+(o<<4)>>2];p=-+f[22560+(o<<4)+4>>2];q=-+f[22560+(o<<4)+8>>2];f[t+288+4>>2]=1.0;o=t+288+12|0;c[t+288+76>>2]=0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;c[o+16>>2]=0;c[o+20>>2]=0;c[o+24>>2]=0;c[o+28>>2]=0;c[t+288>>2]=6052;c[t+288+80>>2]=h;f[t+288+84>>2]=l;f[t+288+88>>2]=p;f[t+288+92>>2]=q;f[t+288+96>>2]=0.0;f[t+288+100>>2]=.707099974155426;h=c[d+8>>2]|0;o=c[h+188>>2]|0;b[t+288+8>>1]=b[o+4>>1]|0;b[t+288+10>>1]=b[o+6>>1]|0;if(!(a[d+170>>0]|0))Gc(e,c[d+12>>2]|0,t+456|0,t+392|0,t+288|0,0.0);else mc(h,c[d+12>>2]|0,t+456|0,t+392|0,t+288|0,+f[e+56>>2]);if(+f[t+288+4>>2]<1.0){if((a[24960]|0)==0?DC(24960)|0:0){c[5640]=1065353216;c[5641]=0;c[5642]=0;c[5643]=0;c[5644]=0;c[5645]=1065353216;c[5646]=0;c[5647]=0;c[5648]=0;c[5649]=0;c[5650]=1065353216;f[5651]=0.0;PB(24960)}o=c[d+176>>2]|0;do if(+f[t+288+44>>2]*+f[22560+(o<<4)>>2]+ +f[t+288+48>>2]*+f[22560+(o<<4)+4>>2]+ +f[t+288+52>>2]*+f[22560+(o<<4)+8>>2]>0.0){j=+f[t+288+4>>2];f[d+108>>2]=+f[d+52>>2]*j;if(!(a[d+180>>0]|0)){c[d+92>>2]=c[d+112>>2];c[d+92+4>>2]=c[d+112+4>>2];c[d+92+8>>2]=c[d+112+8>>2];c[d+92+12>>2]=c[d+112+12>>2];break}else{f[d+92>>2]=(1.0-j)*+f[d+92>>2]+j*+f[d+112>>2];f[d+96>>2]=(1.0-j)*+f[d+96>>2]+j*+f[d+116>>2];f[d+100>>2]=(1.0-j)*+f[d+100>>2]+j*+f[d+120>>2];break}}while(0);f[d+16>>2]=0.0;f[d+20>>2]=0.0}else{c[d+108>>2]=c[d+52>>2];c[d+92>>2]=c[d+112>>2];c[d+92+4>>2]=c[d+112+4>>2];c[d+92+8>>2]=c[d+112+8>>2];c[d+92+12>>2]=c[d+112+12>>2]}if(!(a[d+171>>0]|0)){p=+f[d+172>>2];q=p>g?g:p;f[d+172>>2]=p-g;$c(d,e,q*+f[d+60>>2],q*+f[d+64>>2],q*+f[d+68>>2])}else $c(d,e,+f[d+60>>2],+f[d+64>>2],+f[d+68>>2]);c[t+272>>2]=c[d+112>>2];c[t+272+4>>2]=c[d+112+4>>2];c[t+272+8>>2]=c[d+112+8>>2];c[t+272+12>>2]=c[d+112+12>>2];j=+f[d+16>>2];j=(j<0.0?-j:0.0)*g;do if(j>0.0?(i=+f[d+24>>2],j>i):0){if((a[d+168>>0]|0)==0?a[d+169>>0]|0:0){i=j;break}}else i=j;while(0);if((a[24960]|0)==0?DC(24960)|0:0){c[5640]=1065353216;c[5641]=0;c[5642]=0;c[5643]=0;c[5644]=0;c[5645]=1065353216;c[5646]=0;c[5647]=0;c[5648]=0;c[5649]=0;c[5650]=1065353216;f[5651]=0.0;PB(24960)}h=c[d+176>>2]|0;q=i+ +f[d+108>>2];l=+f[22560+(h<<4)>>2]*q;p=q*+f[22560+(h<<4)+4>>2];q=q*+f[22560+(h<<4)+8>>2];f[d+112>>2]=+f[d+112>>2]-l;f[d+116>>2]=+f[d+116>>2]-p;f[d+120>>2]=+f[d+120>>2]-q;h=c[d+8>>2]|0;if((a[24960]|0)==0?DC(24960)|0:0){c[5640]=1065353216;c[5641]=0;c[5642]=0;c[5643]=0;c[5644]=0;c[5645]=1065353216;c[5646]=0;c[5647]=0;c[5648]=0;c[5649]=0;c[5650]=1065353216;f[5651]=0.0;PB(24960)}m=22560+(c[d+176>>2]<<4)|0;n=c[d+40>>2]|0;o=t+168+4|0;f[o>>2]=1.0;u=t+168+12|0;c[t+168+76>>2]=0;c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u+12>>2]=0;c[u+16>>2]=0;c[u+20>>2]=0;c[u+24>>2]=0;c[u+28>>2]=0;c[t+168>>2]=6052;c[t+168+80>>2]=h;c[t+168+84>>2]=c[m>>2];c[t+168+84+4>>2]=c[m+4>>2];c[t+168+84+8>>2]=c[m+8>>2];c[t+168+84+12>>2]=c[m+12>>2];c[t+168+100>>2]=n;h=c[d+8>>2]|0;n=c[h+188>>2]|0;b[t+168+8>>1]=b[n+4>>1]|0;b[t+168+10>>1]=b[n+6>>1]|0;if((a[24960]|0)==0?DC(24960)|0:0){c[5640]=1065353216;c[5641]=0;c[5642]=0;c[5643]=0;c[5644]=0;c[5645]=1065353216;c[5646]=0;c[5647]=0;c[5648]=0;c[5649]=0;c[5650]=1065353216;f[5651]=0.0;PB(24960)}n=22560+(c[d+176>>2]<<4)|0;u=c[d+40>>2]|0;f[t+64+4>>2]=1.0;m=t+64+12|0;c[t+64+76>>2]=0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;c[m+16>>2]=0;c[m+20>>2]=0;c[m+24>>2]=0;c[m+28>>2]=0;c[t+64>>2]=6052;c[t+64+80>>2]=h;c[t+64+84>>2]=c[n>>2];c[t+64+84+4>>2]=c[n+4>>2];c[t+64+84+8>>2]=c[n+8>>2];c[t+64+84+12>>2]=c[n+12>>2];c[t+64+100>>2]=u;h=c[(c[d+8>>2]|0)+188>>2]|0;b[t+64+8>>1]=b[h+4>>1]|0;b[t+64+10>>1]=b[h+6>>1]|0;i=+f[d+112>>2];j=+f[d+116>>2];k=+f[d+120>>2];h=0;while(1){c[t+456>>2]=1065353216;c[t+456+4>>2]=0;c[t+456+4+4>>2]=0;c[t+456+4+8>>2]=0;c[t+456+4+12>>2]=0;c[t+456+20>>2]=1065353216;c[t+456+24>>2]=0;c[t+456+24+4>>2]=0;c[t+456+24+8>>2]=0;c[t+456+24+12>>2]=0;c[t+456+40>>2]=1065353216;c[t+456+44>>2]=0;c[t+392>>2]=1065353216;c[t+392+4>>2]=0;c[t+392+4+4>>2]=0;c[t+392+4+8>>2]=0;c[t+392+4+12>>2]=0;c[t+392+20>>2]=1065353216;c[t+392+24>>2]=0;c[t+392+24+4>>2]=0;c[t+392+24+8>>2]=0;c[t+392+24+12>>2]=0;c[t+392+40>>2]=1065353216;c[t+392+44>>2]=0;c[t+288>>2]=1065353216;c[t+288+4>>2]=0;c[t+288+4+4>>2]=0;c[t+288+4+8>>2]=0;c[t+288+4+12>>2]=0;c[t+288+20>>2]=1065353216;c[t+288+24>>2]=0;c[t+288+24+4>>2]=0;c[t+288+24+8>>2]=0;c[t+288+24+12>>2]=0;c[t+288+40>>2]=1065353216;c[t+288+44>>2]=0;c[t+456+48>>2]=c[d+92>>2];c[t+456+48+4>>2]=c[d+92+4>>2];c[t+456+48+8>>2]=c[d+92+8>>2];c[t+456+48+12>>2]=c[d+92+12>>2];c[t+392+48>>2]=c[d+112>>2];c[t+392+48+4>>2]=c[d+112+4>>2];c[t+392+48+8>>2]=c[d+112+8>>2];c[t+392+48+12>>2]=c[d+112+12>>2];f[t+288+48>>2]=i-l;f[t+288+52>>2]=j-p;f[t+288+56>>2]=k-q;f[t+288+60>>2]=0.0;if(!(a[d+170>>0]|0)){Gc(e,c[d+12>>2]|0,t+456|0,t+392|0,t+168|0,+f[e+56>>2]);if(!(+f[o>>2]<1.0))Gc(e,c[d+12>>2]|0,t+456|0,t+288|0,t+64|0,+f[e+56>>2])}else{mc(c[d+8>>2]|0,c[d+12>>2]|0,t+456|0,t+392|0,t+168|0,+f[e+56>>2]);if(!(+f[o>>2]<1.0))mc(c[d+8>>2]|0,c[d+12>>2]|0,t+456|0,t+288|0,t+64|0,+f[e+56>>2])}j=+f[d+16>>2];j=(j<0.0?-j:0.0)*g;n=(a[d+182>>0]|0)==0;if(!n?+f[o>>2]<1.0:0)m=1;else m=+f[t+64+4>>2]<1.0;if(!(j>0.0))break;i=+f[d+52>>2];if(h|(!(j>0]|0)==0?a[d+169>>0]|0:0){h=0;break}c[d+112>>2]=c[t+272>>2];c[d+112+4>>2]=c[t+272+4>>2];c[d+112+8>>2]=c[t+272+8>>2];c[d+112+12>>2]=c[t+272+12>>2];do if(!(a[24960]|0)){if(!(DC(24960)|0))break;c[5640]=1065353216;c[5641]=0;c[5642]=0;c[5643]=0;c[5644]=0;c[5645]=1065353216;c[5646]=0;c[5647]=0;c[5648]=0;c[5649]=0;c[5650]=1065353216;f[5651]=0.0;PB(24960)}while(0);h=c[d+176>>2]|0;i=i+ +f[d+108>>2];j=i*+f[22560+(h<<4)+4>>2];k=i*+f[22560+(h<<4)+8>>2];i=+f[d+112>>2]-+f[22560+(h<<4)>>2]*i;f[d+112>>2]=i;j=+f[d+116>>2]-j;f[d+116>>2]=j;k=+f[d+120>>2]-k;f[d+120>>2]=k;h=1}k=+f[o>>2];if(h|k<1.0){i=+f[d+96>>2];j=(i-+f[t+168+64>>2])*.5;do if(!n)if(!(a[d+181>>0]|0)){f[d+92>>2]=(1.0-j)*+f[d+92>>2]+j*+f[d+112>>2];f[d+96>>2]=i*(1.0-j)+j*+f[d+116>>2];f[d+100>>2]=(1.0-j)*+f[d+100>>2]+j*+f[d+120>>2];h=d+181|0;break}else{f[d+92>>2]=(1.0-k)*+f[d+92>>2]+k*+f[d+112>>2];f[d+96>>2]=i*(1.0-k)+k*+f[d+116>>2];f[d+100>>2]=(1.0-k)*+f[d+100>>2]+k*+f[d+120>>2];h=d+181|0;break}else{f[d+92>>2]=(1.0-k)*+f[d+92>>2]+k*+f[d+112>>2];f[d+96>>2]=i*(1.0-k)+k*+f[d+116>>2];f[d+100>>2]=(1.0-k)*+f[d+100>>2]+k*+f[d+120>>2];h=d+181|0}while(0);a[h>>0]=0;f[d+16>>2]=0.0;f[d+20>>2]=0.0;a[d+169>>0]=0}else{a[d+181>>0]=1;do if(!n?(s=+f[d+24>>2],j>s):0){if((a[d+168>>0]|0)==0?a[d+169>>0]|0:0)break;f[d+112>>2]=l+ +f[d+112>>2];f[d+116>>2]=p+ +f[d+116>>2];f[d+120>>2]=q+ +f[d+120>>2];do if(!(a[24960]|0)){if(!(DC(24960)|0))break;c[5640]=1065353216;c[5641]=0;c[5642]=0;c[5643]=0;c[5644]=0;c[5645]=1065353216;c[5646]=0;c[5647]=0;c[5648]=0;c[5649]=0;c[5650]=1065353216;f[5651]=0.0;PB(24960)}while(0);u=c[d+176>>2]|0;q=s+ +f[d+108>>2];g=q*+f[22560+(u<<4)+4>>2];s=q*+f[22560+(u<<4)+8>>2];f[d+112>>2]=+f[d+112>>2]-+f[22560+(u<<4)>>2]*q;f[d+116>>2]=+f[d+116>>2]-g;f[d+120>>2]=+f[d+120>>2]-s}while(0);c[d+92>>2]=c[d+112>>2];c[d+92+4>>2]=c[d+112+4>>2];c[d+92+8>>2]=c[d+112+8>>2];c[d+92+12>>2]=c[d+112+12>>2]}c[t+48>>2]=c[d+92>>2];c[t+48+4>>2]=c[d+92+4>>2];c[t+48+8>>2]=c[d+92+8>>2];c[t+48+12>>2]=c[d+92+12>>2];u=c[d+8>>2]|0;c[u+260>>2]=(c[u+260>>2]|0)+1;c[u+4>>2]=c[t>>2];c[u+4+4>>2]=c[t+4>>2];c[u+4+8>>2]=c[t+8>>2];c[u+4+12>>2]=c[t+12>>2];c[u+20>>2]=c[t+16>>2];c[u+20+4>>2]=c[t+16+4>>2];c[u+20+8>>2]=c[t+16+8>>2];c[u+20+12>>2]=c[t+16+12>>2];c[u+36>>2]=c[t+32>>2];c[u+36+4>>2]=c[t+32+4>>2];c[u+36+8>>2]=c[t+32+8>>2];c[u+36+12>>2]=c[t+32+12>>2];c[u+52>>2]=c[t+48>>2];c[u+52+4>>2]=c[t+48+4>>2];c[u+52+8>>2]=c[t+48+8>>2];c[u+52+12>>2]=c[t+48+12>>2];ea=t;return}function tb(b,d){b=b|0;d=d|0;var e=0.0,g=0.0,i=0,j=0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,t=0,u=0.0,v=0.0,w=0.0,x=0,y=0,A=0,B=0.0,C=0.0,D=0,E=0,F=0.0,G=0,H=0,I=0,J=0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0,R=0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0.0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0.0;ca=c[b+28>>2]|0;da=c[b+32>>2]|0;V=+f[ca+344>>2];W=+f[da+344>>2];ba=c[d+24>>2]|0;ea=(a[b+180>>0]|0)==0?-1.0:1.0;S=+f[b+936>>2]-+f[b+872>>2];U=+f[b+940>>2]-+f[b+876>>2];T=+f[b+944>>2]-+f[b+880>>2];X=V+W>0.0?W/(V+W):.5;D=c[b+824>>2]|0;E=c[b+840>>2]|0;G=c[b+856>>2]|0;H=c[b+888>>2]|0;I=c[b+904>>2]|0;J=c[b+920>>2]|0;Y=(a[b+49>>0]|0)==0;if(Y){A=c[b+828>>2]|0;x=c[b+844>>2]|0;t=c[b+860>>2]|0;y=c[b+832>>2]|0;j=c[b+848>>2]|0;i=c[b+864>>2]|0;o=(c[h>>2]=A,+f[h>>2]);p=(c[h>>2]=x,+f[h>>2]);q=(c[h>>2]=t,+f[h>>2]);u=(c[h>>2]=y,+f[h>>2]);n=(c[h>>2]=j,+f[h>>2]);g=(c[h>>2]=i,+f[h>>2]);_=D;$=E;aa=G}else{l=X*(c[h>>2]=D,+f[h>>2]);n=X*(c[h>>2]=E,+f[h>>2]);e=X*(c[h>>2]=G,+f[h>>2]);k=(1.0-X)*(c[h>>2]=H,+f[h>>2]);m=(1.0-X)*(c[h>>2]=I,+f[h>>2]);e=e+(1.0-X)*(c[h>>2]=J,+f[h>>2]);g=1.0/+s(+((l+k)*(l+k)+(n+m)*(n+m)+e*e));i=(f[h>>2]=(l+k)*g,c[h>>2]|0);j=(f[h>>2]=(n+m)*g,c[h>>2]|0);t=(f[h>>2]=e*g,c[h>>2]|0);if(+r(+(e*g))>.7071067690849304){P=1.0/+s(+(e*g*(e*g)+(n+m)*g*((n+m)*g)));q=(n+m)*g*P;v=(l+k)*g*-(e*g*P);o=0.0;p=-(e*g*P);u=(e*g*(e*g)+(n+m)*g*((n+m)*g))*P;e=-((l+k)*g*((n+m)*g*P))}else{v=(l+k)*g*((l+k)*g)+(n+m)*g*((n+m)*g);P=1.0/+s(+v);q=0.0;v=v*P;o=-((n+m)*g*P);p=(l+k)*g*P;u=-(e*g*((l+k)*g*P));e=e*g*-((n+m)*g*P)}A=(f[h>>2]=o,c[h>>2]|0);x=(f[h>>2]=p,c[h>>2]|0);Q=(f[h>>2]=q,c[h>>2]|0);y=(f[h>>2]=u,c[h>>2]|0);R=(f[h>>2]=e,c[h>>2]|0);n=e;g=v;_=i;$=j;aa=t;t=Q;i=(f[h>>2]=v,c[h>>2]|0);j=R}R=c[d+12>>2]|0;c[R>>2]=A;c[R+4>>2]=x;c[R+8>>2]=t;c[R+(ba<<2)>>2]=y;c[R+(ba+1<<2)>>2]=j;c[R+(ba+2<<2)>>2]=i;k=-o;x=c[d+20>>2]|0;f[x>>2]=k;f[x+4>>2]=-p;f[x+8>>2]=-q;f[x+(ba<<2)>>2]=-u;f[x+(ba+1<<2)>>2]=-n;f[x+(ba+2<<2)>>2]=-g;Q=c[b+300>>2]|0;e=+f[b+280>>2];if(!(Q&128))e=e*+f[d+4>>2];F=e*+f[d>>2];O=(c[h>>2]=E,+f[h>>2]);L=(c[h>>2]=J,+f[h>>2]);K=(c[h>>2]=G,+f[h>>2]);N=(c[h>>2]=I,+f[h>>2]);P=(c[h>>2]=H,+f[h>>2]);M=(c[h>>2]=D,+f[h>>2]);D=c[d+28>>2]|0;f[D>>2]=F*((O*L-K*N)*o+(K*P-M*L)*p+(M*N-O*P)*q);f[D+(ba<<2)>>2]=F*((O*L-K*N)*u+(K*P-M*L)*n+(M*N-O*P)*g);if(Q&64|0){J=c[d+32>>2]|0;c[J>>2]=c[b+292>>2];c[J+(ba<<2)>>2]=c[b+292>>2]}C=+f[ca+52>>2];w=+f[ca+56>>2];B=+f[ca+60>>2];m=+f[da+52>>2];e=+f[da+56>>2];l=+f[da+60>>2];if(Y){v=(e-w)*q-(l-B)*p;P=(l-B)*o-(m-C)*q;O=(m-C)*p-(e-w)*o;f[R+(ba<<1<<2)>>2]=X*v;f[R+((ba<<1|1)<<2)>>2]=X*P;f[R+((ba<<1)+2<<2)>>2]=X*O;f[x+(ba<<1<<2)>>2]=(1.0-X)*v;f[x+((ba<<1|1)<<2)>>2]=(1.0-X)*P;f[x+((ba<<1)+2<<2)>>2]=(1.0-X)*O;O=(e-w)*g-(l-B)*n;P=(l-B)*u-(m-C)*g;v=(m-C)*n-(e-w)*u;f[R+(ba*3<<2)>>2]=X*O;f[R+((ba*3|0)+1<<2)>>2]=X*P;f[R+((ba*3|0)+2<<2)>>2]=X*v;f[x+(ba*3<<2)>>2]=(1.0-X)*O;f[x+((ba*3|0)+1<<2)>>2]=(1.0-X)*P;f[x+((ba*3|0)+2<<2)>>2]=(1.0-X)*v;j=c[d+8>>2]|0;f[j+(ba<<1<<2)>>2]=o;f[j+((ba<<1|1)<<2)>>2]=p;f[j+((ba<<1)+2<<2)>>2]=q;f[j+(ba*3<<2)>>2]=u;f[j+((ba*3|0)+1<<2)>>2]=n;f[j+((ba*3|0)+2<<2)>>2]=g;i=c[d+16>>2]|0;f[i+(ba<<1<<2)>>2]=k;f[i+((ba<<1|1)<<2)>>2]=-p;f[i+((ba<<1)+2<<2)>>2]=-q;f[i+(ba*3<<2)>>2]=-u;f[i+((ba*3|0)+1<<2)>>2]=-n;v=n;t=i;P=0.0;O=0.0;M=0.0;L=0.0;K=0.0;F=0.0;n=e-w;l=l-B;k=m-C;i=i+((ba*3|0)+2<<2)|0}else{v=+f[b+936>>2]-m;M=+f[b+940>>2]-e;N=+f[b+944>>2]-l;n=(c[h>>2]=_,+f[h>>2]);p=(c[h>>2]=$,+f[h>>2]);m=(c[h>>2]=aa,+f[h>>2]);O=+f[b+872>>2]-C;P=+f[b+876>>2]-w;k=+f[b+880>>2]-B;K=+f[b+1080>>2]-+f[b+1032>>2];F=(O*n+P*p+k*m)*n+K*n-(v*n+M*p+N*m)*n;L=(O*n+P*p+k*m)*p+K*p-(v*n+M*p+N*m)*p;K=(O*n+P*p+k*m)*m+K*m-(v*n+M*p+N*m)*m;C=O-(O*n+P*p+k*m)*n+X*F;w=P-(O*n+P*p+k*m)*p+X*L;B=k-(O*n+P*p+k*m)*m+X*K;F=v-(v*n+M*p+N*m)*n-(1.0-X)*F;L=M-(v*n+M*p+N*m)*p-(1.0-X)*L;K=N-(v*n+M*p+N*m)*m-(1.0-X)*K;g=X*(v-(v*n+M*p+N*m)*n)+(1.0-X)*(O-(O*n+P*p+k*m)*n);e=X*(M-(v*n+M*p+N*m)*p)+(1.0-X)*(P-(O*n+P*p+k*m)*p);k=X*(N-(v*n+M*p+N*m)*m)+(1.0-X)*(k-(O*n+P*p+k*m)*m);if(k*k+(g*g+e*e)>1.1920928955078125e-07){P=1.0/+s(+(k*k+(g*g+e*e)));j=(f[h>>2]=e*P,c[h>>2]|0);t=(f[h>>2]=k*P,c[h>>2]|0);l=e*P;o=g*P;i=(f[h>>2]=g*P,c[h>>2]|0);e=k*P}else{i=c[b+828>>2]|0;j=c[b+844>>2]|0;t=c[b+860>>2]|0;e=(c[h>>2]=t,+f[h>>2]);l=(c[h>>2]=j,+f[h>>2]);o=(c[h>>2]=i,+f[h>>2])}u=e*p-l*m;v=o*m-e*n;N=l*n-o*p;f[R+(ba<<1<<2)>>2]=w*e-B*l;f[R+(ba<<1<<2)+4>>2]=B*o-C*e;f[R+(ba<<1<<2)+8>>2]=C*l-w*o;f[x+(ba<<1<<2)>>2]=-(L*e-K*l);f[x+((ba<<1|1)<<2)>>2]=-(K*o-F*e);f[x+((ba<<1)+2<<2)>>2]=-(F*l-L*o);if(V<1.1920928955078125e-07|W<1.1920928955078125e-07?(a[b+297>>0]|0)!=0:0){e=(1.0-X)*(L*N-K*v);g=(1.0-X)*(K*u-F*N);k=(1.0-X)*(F*v-L*u);l=X*(w*N-B*v);m=X*(C*v-w*u);n=X*(B*u-C*N)}else{e=L*N-K*v;g=K*u-F*N;k=F*v-L*u;l=w*N-B*v;m=C*v-w*u;n=B*u-C*N}f[R+(ba*3<<2)>>2]=l;f[R+(ba*3<<2)+4>>2]=n;f[R+(ba*3<<2)+8>>2]=m;f[x+(ba*3<<2)>>2]=-e;f[x+((ba*3|0)+1<<2)>>2]=-g;f[x+((ba*3|0)+2<<2)>>2]=-k;J=c[d+8>>2]|0;c[J+(ba<<1<<2)>>2]=i;c[J+((ba<<1|1)<<2)>>2]=j;c[J+((ba<<1)+2<<2)>>2]=t;f[J+(ba*3<<2)>>2]=u;f[J+((ba*3|0)+1<<2)>>2]=v;f[J+((ba*3|0)+2<<2)>>2]=N;i=c[d+16>>2]|0;f[i+(ba<<1<<2)>>2]=-o;p=(c[h>>2]=j,+f[h>>2]);f[i+((ba<<1|1)<<2)>>2]=-p;q=(c[h>>2]=t,+f[h>>2]);f[i+((ba<<1)+2<<2)>>2]=-q;f[i+(ba*3<<2)>>2]=-u;f[i+((ba*3|0)+1<<2)>>2]=-v;j=J;t=i;P=w;O=B;M=C;n=0.0;l=0.0;k=0.0;i=i+((ba*3|0)+2<<2)|0;g=N}f[i>>2]=-g;e=+f[b+264>>2];if(!(Q&32))e=e*+f[d+4>>2];N=e*+f[d>>2];f[D+(ba<<1<<2)>>2]=N*(S*o+U*p+T*q);f[D+(ba*3<<2)>>2]=N*(S*u+U*v+T*g);if(Q&16|0){J=c[d+32>>2]|0;c[J+(ba<<1<<2)>>2]=c[b+276>>2];c[J+(ba*3<<2)>>2]=c[b+276>>2]}if(!(a[b+296>>0]|0)){A=0;o=0.0}else{o=ea*+f[b+1032>>2];A=o>0.0?2:1}i=a[b+1096>>0]|0;y=(A|0)!=0;if(A|i&255){c[j+(ba<<2<<2)>>2]=_;c[j+((ba<<2|1)<<2)>>2]=$;c[j+((ba<<2|2)<<2)>>2]=aa;p=(c[h>>2]=_,+f[h>>2]);f[t+(ba<<2<<2)>>2]=-p;q=(c[h>>2]=$,+f[h>>2]);f[t+((ba<<2|1)<<2)>>2]=-q;u=(c[h>>2]=aa,+f[h>>2]);f[t+((ba<<2|2)<<2)>>2]=-u;if(!Y){if(!(V<1.1920928955078125e-07|W<1.1920928955078125e-07)){f[R+(ba<<2<<2)>>2]=P*u-O*q;f[R+((ba<<2|1)<<2)>>2]=O*p-M*u;f[R+((ba<<2|2)<<2)>>2]=M*q-P*p;f[x+(ba<<2<<2)>>2]=-(L*u-K*q);f[x+((ba<<2|1)<<2)>>2]=-(K*p-F*u);e=-(F*q-L*p);Z=31}}else{V=n*u-l*q;W=l*p-k*u;e=k*q-n*p;f[R+(ba<<2<<2)>>2]=X*V;f[R+((ba<<2|1)<<2)>>2]=X*W;f[R+((ba<<2|2)<<2)>>2]=X*e;f[x+(ba<<2<<2)>>2]=(1.0-X)*V;f[x+((ba<<2|1)<<2)>>2]=(1.0-X)*W;e=(1.0-X)*e;Z=31}if((Z|0)==31)f[x+((ba<<2|2)<<2)>>2]=e;x=+f[b+184>>2]==+f[b+188>>2];f[D+(ba<<2<<2)>>2]=0.0;j=(c[d+36>>2]|0)+(ba<<2<<2)|0;f[j>>2]=0.0;t=(c[d+40>>2]|0)+(ba<<2<<2)|0;f[t>>2]=0.0;n=+f[((Q&512|0)==0?d+4|0:b+232|0)>>2];if(!(i<<24>>24==0|y&x)){if(Q&1|0)c[(c[d+32>>2]|0)+(ba<<2<<2)>>2]=c[b+212>>2];m=+f[b+1100>>2];e=+f[b+1080>>2];g=+f[b+184>>2];k=+f[b+188>>2];l=n*+f[d>>2];do if(!(g>k))if(!(g==k)){if(m/l<0.0)if(e>=g?g-m/l>e:0){e=(g-e)/(m/l);break}else{e=e0.0)if(e<=k?k-m/lk?0.0:1.0;break}else e=0.0}else e=0.0;else e=1.0;while(0);Z=(c[d+28>>2]|0)+(ba<<2<<2)|0;f[Z>>2]=+f[Z>>2]-ea*e*m;f[j>>2]=+f[j>>2]-+f[b+1104>>2]*+f[d>>2];f[t>>2]=+f[b+1104>>2]*+f[d>>2]+ +f[t>>2]}if(y){i=(c[d+28>>2]|0)+(ba<<2<<2)|0;f[i>>2]=+f[i>>2]+o*(n*+f[d>>2]);if(c[b+300>>2]&256|0)c[(c[d+32>>2]|0)+(ba<<2<<2)>>2]=c[b+244>>2];do if(!x)if((A|0)==1){f[j>>2]=-3402823466385288598117041.0e14;e=0.0;break}else{f[j>>2]=0.0;e=3402823466385288598117041.0e14;break}else{f[j>>2]=-3402823466385288598117041.0e14;e=3402823466385288598117041.0e14}while(0);f[t>>2]=e;X=1.0-+f[b+240>>2];g=+r(+X);do if(!(X!=X|0.0!=0.0|X==0.0)){e=ea*(+f[ca+312>>2]*p+ +f[ca+316>>2]*q+ +f[ca+320>>2]*u-(+f[da+312>>2]*p+ +f[da+316>>2]*q+ +f[da+320>>2]*u));if((A|0)==1){if(!(e<0.0))break;if(!(+f[i>>2]<-(g*e)))break;f[i>>2]=-(g*e);break}else{if(!(e>0.0))break;if(!(+f[i>>2]>-(g*e)))break;f[i>>2]=-(g*e);break}}while(0);f[i>>2]=+f[b+232>>2]*+f[i>>2];i=5}else i=5}else i=4;if(!(a[b+297>>0]|0)){y=0;v=0.0}else{v=+f[b+1088>>2];y=v>0.0?1:2}j=a[b+1112>>0]|0;t=(y|0)!=0;if(!(y|j&255))return;x=z(c[d+24>>2]|0,i)|0;i=c[d+12>>2]|0;c[i+(x<<2)>>2]=_;c[i+(x+1<<2)>>2]=$;c[i+(x+2<<2)>>2]=aa;w=(c[h>>2]=_,+f[h>>2]);i=c[d+20>>2]|0;f[i+(x<<2)>>2]=-w;u=(c[h>>2]=$,+f[h>>2]);f[i+(x+1<<2)>>2]=-u;q=(c[h>>2]=aa,+f[h>>2]);f[i+(x+2<<2)>>2]=-q;n=+f[b+192>>2];o=+f[b+196>>2];i=c[b+300>>2]|0;p=+f[((i&2048|0)==0?d+4|0:b+248|0)>>2];if(!(j<<24>>24==0|t&n==o)){if(!(i&4)){g=n;k=o}else{c[(c[d+32>>2]|0)+(x<<2)>>2]=c[b+228>>2];g=+f[b+192>>2];k=+f[b+196>>2]}e=+f[b+1084>>2];m=+f[b+1116>>2];l=p*+f[d>>2];do if(!(g>k))if(!(g==k)){if(m/l<0.0)if(e>=g?g-m/l>e:0){e=(g-e)/(m/l);break}else{e=e0.0)if(e<=k?k-m/lk?0.0:1.0;break}else e=0.0}else e=0.0;else e=1.0;while(0);f[(c[d+28>>2]|0)+(x<<2)>>2]=e*m;f[(c[d+36>>2]|0)+(x<<2)>>2]=-(+f[b+1120>>2]*+f[d>>2]);f[(c[d+40>>2]|0)+(x<<2)>>2]=+f[b+1120>>2]*+f[d>>2]}if(!t)return;j=(c[d+28>>2]|0)+(x<<2)|0;f[j>>2]=+f[j>>2]+v*(p*+f[d>>2]);if(i&1024|0)c[(c[d+32>>2]|0)+(x<<2)>>2]=c[b+260>>2];do if(!(n==o)){i=(c[d+36>>2]|0)+(x<<2)|0;if((y|0)==1){f[i>>2]=0.0;e=3402823466385288598117041.0e14;break}else{f[i>>2]=-3402823466385288598117041.0e14;e=0.0;break}}else{f[(c[d+36>>2]|0)+(x<<2)>>2]=-3402823466385288598117041.0e14;e=3402823466385288598117041.0e14}while(0);f[(c[d+40>>2]|0)+(x<<2)>>2]=e;ea=1.0-+f[b+256>>2];g=+r(+ea);do if(!(ea!=ea|0.0!=0.0|ea==0.0)){da=c[b+28>>2]|0;d=c[b+32>>2]|0;e=+f[da+328>>2]*w+ +f[da+332>>2]*u+ +f[da+336>>2]*q-(+f[d+328>>2]*w+ +f[d+332>>2]*u+ +f[d+336>>2]*q);if((y|0)==1){if(!(e<0.0))break;if(!(+f[j>>2]<-(g*e)))break;f[j>>2]=-(g*e);break}else{if(!(e>0.0))break;if(!(+f[j>>2]>-(g*e)))break;f[j>>2]=-(g*e);break}}while(0);f[j>>2]=+f[b+248>>2]*+f[j>>2];return}function ub(b,d,e,g,h){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0,v=0,w=0,x=0,y=0.0,z=0;z=ea;ea=ea+112|0;c[b+164>>2]=1065353216;c[b+168>>2]=1065353216;c[b+172>>2]=1065353216;f[b+176>>2]=0.0;c[b+180>>2]=0;f[b+184>>2]=999999984306749440.0;c[b+188>>2]=0;c[b+188+4>>2]=0;c[b+188+8>>2]=0;c[b+188+12>>2]=0;c[b+204>>2]=1;c[b+208>>2]=-1;c[b+212>>2]=-1;c[b+216>>2]=1;f[b+220>>2]=0.0;f[b+224>>2]=.5;f[b+228>>2]=0.0;f[b+232>>2]=0.0;c[b+236>>2]=1;c[b+240>>2]=0;f[b+244>>2]=1.0;c[b+248>>2]=0;c[b+248+4>>2]=0;c[b+248+8>>2]=0;c[b+248+12>>2]=0;c[b+4>>2]=1065353216;c[b+8>>2]=0;c[b+8+4>>2]=0;c[b+8+8>>2]=0;c[b+8+12>>2]=0;c[b+24>>2]=1065353216;c[b+28>>2]=0;c[b+28+4>>2]=0;c[b+28+8>>2]=0;c[b+28+12>>2]=0;c[b+44>>2]=1065353216;c[b+48>>2]=0;c[b+48+4>>2]=0;c[b+48+8>>2]=0;c[b+48+12>>2]=0;c[b+48+16>>2]=0;c[b>>2]=4244;a[b+280>>0]=1;c[b+276>>2]=0;c[b+268>>2]=0;c[b+272>>2]=0;c[b+284>>2]=0;a[b+408>>0]=1;c[b+404>>2]=0;c[b+396>>2]=0;c[b+400>>2]=0;a[b+428>>0]=1;c[b+424>>2]=0;c[b+416>>2]=0;c[b+420>>2]=0;a[b+448>>0]=1;c[b+444>>2]=0;c[b+436>>2]=0;c[b+440>>2]=0;a[b+496>>0]=1;c[b+492>>2]=0;c[b+484>>2]=0;c[b+488>>2]=0;a[b+516>>0]=1;c[b+512>>2]=0;c[b+504>>2]=0;c[b+508>>2]=0;c[b+684>>2]=d;a[b+704>>0]=1;c[b+700>>2]=0;c[b+692>>2]=0;c[b+696>>2]=0;a[b+724>>0]=1;c[b+720>>2]=0;c[b+712>>2]=0;c[b+716>>2]=0;a[b+744>>0]=1;c[b+740>>2]=0;c[b+732>>2]=0;c[b+736>>2]=0;a[b+764>>0]=1;c[b+760>>2]=0;c[b+752>>2]=0;c[b+756>>2]=0;a[b+784>>0]=1;c[b+780>>2]=0;c[b+772>>2]=0;c[b+776>>2]=0;a[b+804>>0]=1;c[b+800>>2]=0;c[b+792>>2]=0;c[b+796>>2]=0;a[b+824>>0]=1;c[b+820>>2]=0;c[b+812>>2]=0;c[b+816>>2]=0;a[b+844>>0]=1;c[b+840>>2]=0;c[b+832>>2]=0;c[b+836>>2]=0;a[b+864>>0]=1;c[b+860>>2]=0;c[b+852>>2]=0;c[b+856>>2]=0;a[b+884>>0]=1;c[b+880>>2]=0;c[b+872>>2]=0;c[b+876>>2]=0;a[b+964>>0]=1;c[b+960>>2]=0;c[b+952>>2]=0;c[b+956>>2]=0;a[b+984>>0]=1;c[b+980>>2]=0;c[b+972>>2]=0;c[b+976>>2]=0;c[b+928>>2]=0;c[b+932>>2]=0;c[b+936>>2]=-1;c[b+940>>2]=0;c[b+944>>2]=0;a[b+1024>>0]=1;c[b+1020>>2]=0;c[b+1012>>2]=0;c[b+1016>>2]=0;a[b+1044>>0]=1;c[b+1040>>2]=0;c[b+1032>>2]=0;c[b+1036>>2]=0;c[b+988>>2]=0;c[b+992>>2]=0;c[b+996>>2]=-1;c[b+1e3>>2]=0;c[b+1004>>2]=0;a[b+1084>>0]=1;c[b+1080>>2]=0;c[b+1072>>2]=0;c[b+1076>>2]=0;a[b+1104>>0]=1;c[b+1100>>2]=0;c[b+1092>>2]=0;c[b+1096>>2]=0;c[b+1048>>2]=0;c[b+1052>>2]=0;c[b+1056>>2]=-1;c[b+1060>>2]=0;c[b+1064>>2]=0;a[b+1124>>0]=1;c[b+1120>>2]=0;c[b+1112>>2]=0;c[b+1116>>2]=0;a[b+1144>>0]=1;c[b+1140>>2]=0;c[b+1132>>2]=0;c[b+1136>>2]=0;a[b+1248>>0]=1;c[b+1244>>2]=0;c[b+1236>>2]=0;c[b+1240>>2]=0;c[b+236>>2]=8;c[b+288>>2]=0;f[b+292>>2]=1.0;c[b+296>>2]=0;c[b+296+4>>2]=0;c[b+296+8>>2]=0;c[b+296+12>>2]=0;c[b+296+16>>2]=0;f[b+316>>2]=.20000000298023224;f[b+320>>2]=0.0;f[b+324>>2]=1.0;f[b+328>>2]=.10000000149011612;f[b+332>>2]=1.0;f[b+336>>2]=.699999988079071;f[b+340>>2]=.10000000149011612;f[b+344>>2]=1.0;f[b+348>>2]=.5;f[b+352>>2]=.5;f[b+356>>2]=.5;f[b+360>>2]=.5;f[b+364>>2]=1.0;f[b+368>>2]=1.0;c[b+372>>2]=0;c[b+376>>2]=1;c[b+380>>2]=0;c[b+384>>2]=4;c[b+388>>2]=1;a[b+472>>0]=0;a[b+473>>0]=0;f[b+476>>2]=0.0;c[b+520>>2]=0;c[b+520+4>>2]=0;c[b+520+8>>2]=0;c[b+520+12>>2]=0;c[b+536>>2]=1065353216;c[b+540>>2]=0;c[b+540+4>>2]=0;c[b+540+8>>2]=0;c[b+540+12>>2]=0;c[b+556>>2]=1065353216;c[b+560>>2]=0;c[b+560+4>>2]=0;c[b+560+8>>2]=0;c[b+560+12>>2]=0;c[b+576>>2]=1065353216;f[b+580>>2]=0.0;c[b+584>>2]=1065353216;c[b+588>>2]=0;c[b+588+4>>2]=0;c[b+588+8>>2]=0;c[b+588+12>>2]=0;c[b+604>>2]=1065353216;c[b+608>>2]=0;c[b+608+4>>2]=0;c[b+608+8>>2]=0;c[b+608+12>>2]=0;c[b+624>>2]=1065353216;f[b+628>>2]=0.0;c[b+680>>2]=0;f[b+888>>2]=0.0;a[b+924>>0]=1;c[b+892>>2]=0;c[b+892+4>>2]=0;c[b+892+8>>2]=0;c[b+892+12>>2]=0;c[b+892+16>>2]=0;c[b+892+20>>2]=0;c[b+892+24>>2]=0;c[b+892+28>>2]=0;c[b+4>>2]=1065353216;c[b+8>>2]=0;c[b+8+4>>2]=0;c[b+8+8>>2]=0;c[b+8+12>>2]=0;c[b+24>>2]=1065353216;c[b+28>>2]=0;c[b+28+4>>2]=0;c[b+28+8>>2]=0;c[b+28+12>>2]=0;c[b+44>>2]=1065353216;c[b+48>>2]=0;c[b+48+4>>2]=0;c[b+48+8>>2]=0;c[b+48+12>>2]=0;c[b+48+16>>2]=0;d=c[b+404>>2]|0;if(d|0){if(a[b+408>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+404>>2]=0}a[b+408>>0]=1;c[b+404>>2]=0;c[b+396>>2]=0;c[b+400>>2]=0;d=c[b+424>>2]|0;if(d|0){if(a[b+428>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+424>>2]=0}a[b+428>>0]=1;c[b+424>>2]=0;c[b+416>>2]=0;c[b+420>>2]=0;d=c[b+444>>2]|0;do if(d){if(!(a[b+448>>0]|0)){c[b+444>>2]=0;a[b+448>>0]=1;c[b+444>>2]=0;c[b+436>>2]=0;c[b+440>>2]=0;d=1;u=17;break}c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0);i=c[b+416>>2]|0;d=c[b+420>>2]|0;c[b+444>>2]=0;a[b+448>>0]=1;c[b+444>>2]=0;c[b+436>>2]=0;c[b+440>>2]=0;if((i|0)==(d|0))if(d)if((d|0)<(d<<1|0))if(!(d<<1)){i=d;d=d<<1;j=0;u=20}else{d=d<<1;u=17}else i=d;else{d=1;u=17}}else{a[b+448>>0]=1;c[b+444>>2]=0;c[b+436>>2]=0;c[b+440>>2]=0;d=1;u=17}while(0);if((u|0)==17){c[6747]=(c[6747]|0)+1;i=kb((d<<2|3)+16|0)|0;if(!i)j=0;else{c[(i+4+15&-16)+-4>>2]=i;j=i+4+15&-16}i=c[b+416>>2]|0;u=20}if((u|0)==20){l=c[b+424>>2]|0;if((i|0)<=0){if(l)u=24}else{k=0;do{c[j+(k<<2)>>2]=c[l+(k<<2)>>2];k=k+1|0}while((k|0)!=(i|0));u=24}if((u|0)==24){if(a[b+428>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[l+-4>>2]|0);i=c[b+416>>2]|0}c[b+424>>2]=0}a[b+428>>0]=1;c[b+424>>2]=j;c[b+420>>2]=d}k=c[b+424>>2]|0;c[k+(i<<2)>>2]=1;j=i+1|0;c[b+416>>2]=j;if((j|0)==(d|0)){l=(d|0)==0?1:d<<1;if((d|0)<(l|0)){if(!l)i=0;else{c[6747]=(c[6747]|0)+1;d=kb((l<<2|3)+16|0)|0;if(!d)i=0;else{c[(d+4+15&-16)+-4>>2]=d;i=d+4+15&-16}d=c[b+416>>2]|0;k=c[b+424>>2]|0}if((d|0)<=0){if(k)u=38}else{j=0;do{c[i+(j<<2)>>2]=c[k+(j<<2)>>2];j=j+1|0}while((j|0)!=(d|0));u=38}if((u|0)==38){if(a[b+428>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[k+-4>>2]|0);d=c[b+416>>2]|0}c[b+424>>2]=0}a[b+428>>0]=1;c[b+424>>2]=i;c[b+420>>2]=l;j=d;d=l}else{i=k;j=d}}else i=k;c[i+(j<<2)>>2]=2;j=j+1|0;c[b+416>>2]=j;if((j|0)==(d|0)){l=(d|0)==0?1:d<<1;if((d|0)<(l|0)){if(!l)k=0;else{c[6747]=(c[6747]|0)+1;d=kb((l<<2|3)+16|0)|0;if(!d)j=0;else{c[(d+4+15&-16)+-4>>2]=d;j=d+4+15&-16}d=c[b+416>>2]|0;i=c[b+424>>2]|0;k=j}if((d|0)<=0){if(i)u=52}else{j=0;do{c[k+(j<<2)>>2]=c[i+(j<<2)>>2];j=j+1|0}while((j|0)!=(d|0));u=52}if((u|0)==52){if(a[b+428>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0);d=c[b+416>>2]|0}c[b+424>>2]=0}a[b+428>>0]=1;c[b+424>>2]=k;c[b+420>>2]=l;i=k;j=d;d=l}else j=d}c[i+(j<<2)>>2]=3;j=j+1|0;c[b+416>>2]=j;if((j|0)==(d|0)){l=(d|0)==0?1:d<<1;if((d|0)<(l|0)){if(!l)k=0;else{c[6747]=(c[6747]|0)+1;d=kb((l<<2|3)+16|0)|0;if(!d)j=0;else{c[(d+4+15&-16)+-4>>2]=d;j=d+4+15&-16}d=c[b+416>>2]|0;i=c[b+424>>2]|0;k=j}if((d|0)<=0){if(i)u=66}else{j=0;do{c[k+(j<<2)>>2]=c[i+(j<<2)>>2];j=j+1|0}while((j|0)!=(d|0));u=66}if((u|0)==66){if(a[b+428>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0);d=c[b+416>>2]|0}c[b+424>>2]=0}a[b+428>>0]=1;c[b+424>>2]=k;c[b+420>>2]=l;i=k}}else d=j;c[i+(d<<2)>>2]=0;c[b+416>>2]=d+1;c[6747]=(c[6747]|0)+1;d=kb(39)|0;if(!d)d=0;else{c[(d+4+15&-16)+-4>>2]=d;d=d+4+15&-16}c[d+8>>2]=0;c[d>>2]=4352;c[d+4>>2]=32;c[d+16>>2]=b;c[b+192>>2]=d;f[d+12>>2]=.25;c[b+1148>>2]=1065353216;c[b+1152>>2]=0;c[b+1152+4>>2]=0;c[b+1152+8>>2]=0;c[b+1152+12>>2]=0;c[b+1168>>2]=1065353216;c[b+1172>>2]=0;c[b+1172+4>>2]=0;c[b+1172+8>>2]=0;c[b+1172+12>>2]=0;c[b+1188>>2]=1065353216;u=b+1192|0;v=u+36|0;do{c[u>>2]=0;u=u+4|0}while((u|0)<(v|0));f[b+1228>>2]=1.0;x=pg(b)|0;f[x+4>>2]=1.0;f[x+8>>2]=1.0;f[x+12>>2]=1.0;c[x+16>>2]=1;u=c[b+192>>2]|0;y=+ha[c[(c[u>>2]|0)+48>>2]&15](u);u=z;v=u+100|0;do{c[u>>2]=0;u=u+4|0}while((u|0)<(v|0));l=c[b+712>>2]|0;if((l|0)<(e|0)){if((c[b+716>>2]|0)<(e|0)){if(!e){i=l;j=0}else{c[6747]=(c[6747]|0)+1;d=kb((e*104|3)+16|0)|0;if(!d)d=0;else{c[(d+4+15&-16)+-4>>2]=d;d=d+4+15&-16}i=c[b+712>>2]|0;j=d}if((i|0)>0){d=0;do{u=j+(d*104|0)|0;k=(c[b+720>>2]|0)+(d*104|0)|0;v=u+104|0;do{c[u>>2]=c[k>>2];u=u+4|0;k=k+4|0}while((u|0)<(v|0));d=d+1|0}while((d|0)!=(i|0))}d=c[b+720>>2]|0;if(d|0){if(a[b+724>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+720>>2]=0}a[b+724>>0]=1;c[b+720>>2]=j;c[b+716>>2]=e}d=l;do{u=c[b+720>>2]|0;c[u+(d*104|0)>>2]=0;u=u+(d*104|0)+4|0;k=z;v=u+100|0;do{c[u>>2]=c[k>>2];u=u+4|0;k=k+4|0}while((u|0)<(v|0));d=d+1|0}while((d|0)!=(e|0))}c[b+712>>2]=e;if((e|0)>0){w=0;i=h;d=g;while(1){k=c[b+720>>2]|0;l=k+(w*104|0)|0;u=l;v=u+104|0;do{c[u>>2]=0;u=u+4|0}while((u|0)<(v|0));if(!d){p=0.0;n=0.0;o=0.0;m=0.0;d=0}else{p=+f[d+8>>2];n=+f[d>>2];o=+f[d+4>>2];m=+f[d+12>>2];d=d+16|0}h=k+(w*104|0)+8|0;f[h>>2]=n;f[k+(w*104|0)+12>>2]=o;f[k+(w*104|0)+16>>2]=p;f[k+(w*104|0)+20>>2]=m;g=k+(w*104|0)+24|0;c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];c[g+12>>2]=c[h+12>>2];if(!i){m=1.0;j=0}else{m=+f[i>>2];j=i+4|0}f[k+(w*104|0)+88>>2]=m>0.0?1.0/m:0.0;r=n-y;t=o-y;s=p-y;q=y+n;n=y+o;m=y+p;i=c[b+932>>2]|0;if(!i){c[6747]=(c[6747]|0)+1;i=kb(63)|0;if(!i)i=0;else{c[(i+4+15&-16)+-4>>2]=i;i=i+4+15&-16}u=i;v=u+44|0;do{c[u>>2]=0;u=u+4|0}while((u|0)<(v|0))}else c[b+932>>2]=0;c[i+32>>2]=0;c[i+36>>2]=l;c[i+40>>2]=0;f[i>>2]=r;f[i+4>>2]=t;f[i+8>>2]=s;f[i+12>>2]=0.0;f[i+16>>2]=q;f[i+20>>2]=n;f[i+24>>2]=m;f[i+28>>2]=0.0;je(b+928|0,c[b+928>>2]|0,i);c[b+940>>2]=(c[b+940>>2]|0)+1;c[k+(w*104|0)+96>>2]=i;c[k+(w*104|0)+4>>2]=x;w=w+1|0;if((w|0)==(e|0))break;else i=j}}d=c[b+928>>2]|0;if(!d){c[b+892>>2]=0;c[b+892+4>>2]=0;c[b+892+8>>2]=0;c[b+892+12>>2]=0;c[b+892+16>>2]=0;c[b+892+20>>2]=0;c[b+892+24>>2]=0;c[b+892+28>>2]=0;ea=z;return}e=c[b+192>>2]|0;s=+ha[c[(c[e>>2]|0)+48>>2]&15](e);y=+f[d+4>>2]-s;t=+f[d+8>>2]-s;f[b+892>>2]=+f[d>>2]-s;f[b+896>>2]=y;f[b+900>>2]=t;f[b+904>>2]=0.0;t=s+ +f[d+20>>2];y=s+ +f[d+24>>2];f[b+908>>2]=s+ +f[d+16>>2];f[b+912>>2]=t;f[b+916>>2]=y;f[b+920>>2]=0.0;d=c[b+188>>2]|0;if(!d){ea=z;return}e=c[b+684>>2]|0;g=c[e+32>>2]|0;Ta[c[(c[g>>2]|0)+16>>2]&31](g,d,b+892|0,b+908|0,c[e+36>>2]|0);ea=z;return}function vb(d,g,h){d=d|0;g=g|0;h=h|0;var i=0,j=0,k=0.0,l=0.0,m=0.0,n=0,o=0.0,p=0,q=0,r=0,s=0.0,t=0.0,u=0,v=0,w=0.0,x=0.0,y=0.0,z=0,A=0,B=0.0,C=0.0,D=0.0,E=0,F=0,G=0,H=0,I=0,J=0,K=0.0,L=0.0,M=0.0;J=ea;ea=ea+96|0;G=c[d+56>>2]|0;if((h-g|0)==1){if(!(a[d+60>>0]|0)){p=(c[d+96>>2]|0)+(G<<6)|0;q=(c[d+76>>2]|0)+(g<<6)|0;r=p+64|0;do{c[p>>2]=c[q>>2];p=p+4|0;q=q+4|0}while((p|0)<(r|0))}else{H=(c[d+116>>2]|0)+(g<<4)|0;I=(c[d+136>>2]|0)+(G<<4)|0;c[I>>2]=c[H>>2];c[I+4>>2]=c[H+4>>2];c[I+8>>2]=c[H+8>>2];c[I+12>>2]=c[H+12>>2]}c[d+56>>2]=(c[d+56>>2]|0)+1;ea=J;return}if((h|0)>(g|0)){n=(a[d+60>>0]|0)==0;if(n){i=c[d+76>>2]|0;l=0.0;k=0.0;m=0.0;j=g;do{k=k+(+f[i+(j<<6)+16>>2]+ +f[i+(j<<6)>>2])*.5;m=m+(+f[i+(j<<6)+20>>2]+ +f[i+(j<<6)+4>>2])*.5;l=l+(+f[i+(j<<6)+24>>2]+ +f[i+(j<<6)+8>>2])*.5;j=j+1|0}while((j|0)!=(h|0))}else{i=c[d+116>>2]|0;o=+f[d+36>>2];s=+f[d+40>>2];t=+f[d+44>>2];w=+f[d+4>>2];x=+f[d+8>>2];y=+f[d+12>>2];k=0.0;m=0.0;l=0.0;j=g;do{k=k+(+(e[i+(j<<4)+6>>1]|0)/o+w+(+(e[i+(j<<4)>>1]|0)/o+w))*.5;m=m+(+(e[i+(j<<4)+8>>1]|0)/s+x+(+(e[i+(j<<4)+2>>1]|0)/s+x))*.5;l=l+(+(e[i+(j<<4)+10>>1]|0)/t+y+(+(e[i+(j<<4)+4>>1]|0)/t+y))*.5;j=j+1|0}while((j|0)!=(h|0))}B=1.0/+(h-g|0);D=B*k;C=B*m;B=B*l;if(n){i=c[d+76>>2]|0;k=0.0;m=0.0;o=0.0;j=g;do{w=(+f[i+(j<<6)+16>>2]+ +f[i+(j<<6)>>2])*.5-D;x=(+f[i+(j<<6)+20>>2]+ +f[i+(j<<6)+4>>2])*.5-C;y=(+f[i+(j<<6)+24>>2]+ +f[i+(j<<6)+8>>2])*.5-B;k=k+w*w;m=m+x*x;o=o+y*y;j=j+1|0}while((j|0)!=(h|0));l=+(h-g|0)}else{i=c[d+116>>2]|0;l=+f[d+36>>2];s=+f[d+40>>2];t=+f[d+44>>2];w=+f[d+4>>2];x=+f[d+8>>2];y=+f[d+12>>2];k=0.0;m=0.0;o=0.0;j=g;do{M=(+(e[i+(j<<4)+6>>1]|0)/l+w+(+(e[i+(j<<4)>>1]|0)/l+w))*.5-D;L=(+(e[i+(j<<4)+8>>1]|0)/s+x+(+(e[i+(j<<4)+2>>1]|0)/s+x))*.5-C;K=(+(e[i+(j<<4)+10>>1]|0)/t+y+(+(e[i+(j<<4)+4>>1]|0)/t+y))*.5-B;k=k+M*M;m=m+L*L;o=o+K*K;j=j+1|0}while((j|0)!=(h|0));l=+(h-g|0)}}else{o=0.0;m=0.0;k=0.0;l=+(h-g|0)}M=1.0/(l+-1.0);L=M*k;K=M*m;M=M*o;v=L>2]=0;c[J+16+4>>2]=0;c[J+16+8>>2]=0;c[J+16+12>>2]=0;if((h|0)>(g|0)){if(!(a[d+60>>0]|0)){i=c[d+76>>2]|0;l=0.0;k=0.0;m=0.0;j=g;do{m=(+f[i+(j<<6)+16>>2]+ +f[i+(j<<6)>>2])*.5+m;l=(+f[i+(j<<6)+20>>2]+ +f[i+(j<<6)+4>>2])*.5+l;k=(+f[i+(j<<6)+24>>2]+ +f[i+(j<<6)+8>>2])*.5+k;j=j+1|0}while((j|0)!=(h|0))}else{i=c[d+116>>2]|0;o=+f[d+36>>2];s=+f[d+40>>2];t=+f[d+44>>2];w=+f[d+4>>2];x=+f[d+8>>2];y=+f[d+12>>2];l=0.0;k=0.0;m=0.0;j=g;do{m=(+(e[i+(j<<4)+6>>1]|0)/o+w+(+(e[i+(j<<4)>>1]|0)/o+w))*.5+m;l=(+(e[i+(j<<4)+8>>1]|0)/s+x+(+(e[i+(j<<4)+2>>1]|0)/s+x))*.5+l;k=(+(e[i+(j<<4)+10>>1]|0)/t+y+(+(e[i+(j<<4)+4>>1]|0)/t+y))*.5+k;j=j+1|0}while((j|0)!=(h|0))}f[J+16>>2]=m;f[J+16+4>>2]=l;f[J+16+8>>2]=k;i=J+16|0}else{m=0.0;l=0.0;k=0.0;i=J+16|0}f[i>>2]=1.0/+(h-g|0)*m;f[J+16+4>>2]=1.0/+(h-g|0)*l;f[J+16+8>>2]=1.0/+(h-g|0)*k;w=+f[J+16+(v<<2)>>2];if((h|0)>(g|0)){u=g;i=g;do{j=(a[d+60>>0]|0)==0;if(j){F=c[d+76>>2]|0;k=+f[F+(u<<6)+16>>2];l=+f[F+(u<<6)+20>>2];m=+f[F+(u<<6)+24>>2];o=+f[F+(u<<6)>>2];s=+f[F+(u<<6)+4>>2];t=+f[F+(u<<6)+8>>2]}else{F=c[d+116>>2]|0;K=+f[d+36>>2];L=+f[d+40>>2];M=+f[d+44>>2];o=+f[d+4>>2];s=+f[d+8>>2];t=+f[d+12>>2];k=+(e[F+(u<<4)+6>>1]|0)/K+o;l=+(e[F+(u<<4)+8>>1]|0)/L+s;m=+(e[F+(u<<4)+10>>1]|0)/M+t;o=+(e[F+(u<<4)>>1]|0)/K+o;s=+(e[F+(u<<4)+2>>1]|0)/L+s;t=+(e[F+(u<<4)+4>>1]|0)/M+t}f[J>>2]=(k+o)*.5;f[J+4>>2]=(l+s)*.5;f[J+8>>2]=(m+t)*.5;f[J+12>>2]=0.0;if(+f[J+(v<<2)>>2]>w){if(j){j=c[d+76>>2]|0;n=j+(u<<6)|0;p=J+32|0;q=n;r=p+64|0;do{c[p>>2]=c[q>>2];p=p+4|0;q=q+4|0}while((p|0)<(r|0));p=n;q=j+(i<<6)|0;r=p+64|0;do{c[p>>2]=c[q>>2];p=p+4|0;q=q+4|0}while((p|0)<(r|0));p=(c[d+76>>2]|0)+(i<<6)|0;q=J+32|0;r=p+64|0;do{c[p>>2]=c[q>>2];p=p+4|0;q=q+4|0}while((p|0)<(r|0))}else{E=c[d+116>>2]|0;F=E+(u<<4)|0;c[J+32>>2]=c[F>>2];c[J+32+4>>2]=c[F+4>>2];c[J+32+8>>2]=c[F+8>>2];c[J+32+12>>2]=c[F+12>>2];E=E+(i<<4)|0;c[F>>2]=c[E>>2];c[F+4>>2]=c[E+4>>2];c[F+8>>2]=c[E+8>>2];c[F+12>>2]=c[E+12>>2];F=(c[d+116>>2]|0)+(i<<4)|0;c[F>>2]=c[J+32>>2];c[F+4>>2]=c[J+32+4>>2];c[F+8>>2]=c[J+32+8>>2];c[F+12>>2]=c[J+32+12>>2]}i=i+1|0}u=u+1|0}while((u|0)!=(h|0))}else i=g;if(!((i|0)>(((h-g|0)/3|0)+g|0)?(i|0)<(h+-1-((h-g|0)/3|0)|0):0))i=(1?h-g>>1:h-g|0)+g|0;F=c[d+56>>2]|0;if(!(a[d+60>>0]|0)){E=(c[d+96>>2]|0)+(F<<6)|0;c[E>>2]=c[d+20>>2];c[E+4>>2]=c[d+20+4>>2];c[E+8>>2]=c[d+20+8>>2];c[E+12>>2]=c[d+20+12>>2]}else{E=c[d+136>>2]|0;L=(+f[d+24>>2]-+f[d+8>>2])*+f[d+40>>2];M=(+f[d+28>>2]-+f[d+12>>2])*+f[d+44>>2];b[E+(F<<4)>>1]=~~((+f[d+20>>2]-+f[d+4>>2])*+f[d+36>>2])&65535&-2;b[E+(F<<4)+2>>1]=~~L&65535&-2;b[E+(F<<4)+4>>1]=~~M&65535&-2}j=c[d+56>>2]|0;if(!(a[d+60>>0]|0)){E=(c[d+96>>2]|0)+(j<<6)+16|0;c[E>>2]=c[d+4>>2];c[E+4>>2]=c[d+4+4>>2];c[E+8>>2]=c[d+4+8>>2];c[E+12>>2]=c[d+4+12>>2]}else{E=c[d+136>>2]|0;K=+f[d+4>>2];L=+f[d+8>>2];M=+f[d+12>>2];L=(L-L)*+f[d+40>>2];M=(M-M)*+f[d+44>>2];b[E+(j<<4)+6>>1]=~~((K-K)*+f[d+36>>2]+1.0)&65535|1;b[E+(j<<4)+8>>1]=~~(L+1.0)&65535|1;b[E+(j<<4)+10>>1]=~~(M+1.0)&65535|1}E=c[d+56>>2]|0;if((h|0)>(g|0)){z=a[d+60>>0]|0;A=g;do{if(!(z<<24>>24)){j=c[d+76>>2]|0;k=+f[j+(A<<6)>>2];m=+f[j+(A<<6)+4>>2];o=+f[j+(A<<6)+8>>2];l=+f[j+(A<<6)+12>>2];s=+f[j+(A<<6)+16>>2];x=+f[j+(A<<6)+20>>2];t=+f[j+(A<<6)+24>>2];w=+f[j+(A<<6)+28>>2];j=c[d+96>>2]|0;if(k<+f[j+(E<<6)>>2])f[j+(E<<6)>>2]=k;if(m<+f[j+(E<<6)+4>>2])f[j+(E<<6)+4>>2]=m;if(o<+f[j+(E<<6)+8>>2])f[j+(E<<6)+8>>2]=o;if(l<+f[j+(E<<6)+12>>2])f[j+(E<<6)+12>>2]=l;if(+f[j+(E<<6)+16>>2]>2]=s;if(+f[j+(E<<6)+20>>2]>2]=x;if(+f[j+(E<<6)+24>>2]>2]=t;if(+f[j+(E<<6)+28>>2]>2]=w}else{u=c[d+116>>2]|0;s=+f[d+36>>2];y=+f[d+40>>2];K=+f[d+44>>2];t=+f[d+4>>2];B=+f[d+8>>2];L=+f[d+12>>2];w=+f[d+4>>2];C=+f[d+8>>2];M=+f[d+12>>2];o=+f[d+36>>2];x=+f[d+40>>2];D=+f[d+44>>2];j=~~((+(e[u+(A<<4)>>1]|0)/s+t-w)*o)&65535&-2;n=~~((+(e[u+(A<<4)+2>>1]|0)/y+B-C)*x)&65535&-2;p=~~((+(e[u+(A<<4)+4>>1]|0)/K+L-M)*D)&65535&-2;q=~~(o*(+(e[u+(A<<4)+6>>1]|0)/s+t-w)+1.0)&65535|1;r=~~(x*(+(e[u+(A<<4)+8>>1]|0)/y+B-C)+1.0)&65535|1;u=~~(D*(+(e[u+(A<<4)+10>>1]|0)/K+L-M)+1.0)&65535|1;v=c[d+136>>2]|0;if((e[v+(E<<4)>>1]|0)>(j&65535))b[v+(E<<4)>>1]=j;if((e[v+(E<<4)+6>>1]|0)<(q&65535))b[v+(E<<4)+6>>1]=q;if((e[v+(E<<4)+2>>1]|0)>(n&65535))b[v+(E<<4)+2>>1]=n;if((e[v+(E<<4)+8>>1]|0)<(r&65535))b[v+(E<<4)+8>>1]=r;if((e[v+(E<<4)+4>>1]|0)>(p&65535))b[v+(E<<4)+4>>1]=p;if((e[v+(E<<4)+10>>1]|0)<(u&65535))b[v+(E<<4)+10>>1]=u}A=A+1|0}while((A|0)!=(h|0))}c[d+56>>2]=E+1;vb(d,g,i);z=c[d+56>>2]|0;vb(d,i,h);v=(c[d+56>>2]|0)-G|0;i=a[d+60>>0]|0;if(i<<24>>24!=0&(v|0)>128){r=c[d+136>>2]|0;q=c[r+(E+1<<4)+12>>2]|0;q=(q|0)>-1?1:0-q|0;u=c[r+(z<<4)+12>>2]|0;u=(u|0)>-1?1:0-u|0;if((q|0)<129){p=c[d+152>>2]|0;if((p|0)==(c[d+156>>2]|0)?(H=(p|0)==0?1:p<<1,(p|0)<(H|0)):0){if(!H){j=p;n=0}else{c[6747]=(c[6747]|0)+1;i=kb(H<<5|19)|0;if(!i)i=0;else{c[(i+4+15&-16)+-4>>2]=i;i=i+4+15&-16}j=c[d+152>>2]|0;n=i}if((j|0)>0){i=0;do{h=n+(i<<5)|0;G=(c[d+160>>2]|0)+(i<<5)|0;c[h>>2]=c[G>>2];c[h+4>>2]=c[G+4>>2];c[h+8>>2]=c[G+8>>2];c[h+12>>2]=c[G+12>>2];c[h+16>>2]=c[G+16>>2];c[h+20>>2]=c[G+20>>2];c[h+24>>2]=c[G+24>>2];c[h+28>>2]=c[G+28>>2];i=i+1|0}while((i|0)!=(j|0))}i=c[d+160>>2]|0;if(i|0){if(a[d+164>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0)}c[d+160>>2]=0}a[d+164>>0]=1;c[d+160>>2]=n;c[d+156>>2]=H;i=c[d+152>>2]|0}else i=p;c[d+152>>2]=i+1;H=(c[d+160>>2]|0)+(p<<5)|0;c[H>>2]=c[J+32>>2];c[H+4>>2]=c[J+32+4>>2];c[H+8>>2]=c[J+32+8>>2];c[H+12>>2]=c[J+32+12>>2];c[H+16>>2]=c[J+32+16>>2];c[H+20>>2]=c[J+32+20>>2];c[H+24>>2]=c[J+32+24>>2];c[H+28>>2]=c[J+32+28>>2];H=c[d+160>>2]|0;b[H+(p<<5)>>1]=b[r+(E+1<<4)>>1]|0;b[H+(p<<5)+2>>1]=b[r+(E+1<<4)+2>>1]|0;b[H+(p<<5)+4>>1]=b[r+(E+1<<4)+4>>1]|0;b[H+(p<<5)+6>>1]=b[r+(E+1<<4)+6>>1]|0;b[H+(p<<5)+8>>1]=b[r+(E+1<<4)+8>>1]|0;b[H+(p<<5)+10>>1]=b[r+(E+1<<4)+10>>1]|0;c[H+(p<<5)+12>>2]=E+1;c[H+(p<<5)+16>>2]=q}if((u|0)<129){p=c[d+152>>2]|0;if((p|0)==(c[d+156>>2]|0)?(I=(p|0)==0?1:p<<1,(p|0)<(I|0)):0){if(!I){j=p;n=0}else{c[6747]=(c[6747]|0)+1;i=kb(I<<5|19)|0;if(!i)i=0;else{c[(i+4+15&-16)+-4>>2]=i;i=i+4+15&-16}j=c[d+152>>2]|0;n=i}if((j|0)>0){i=0;do{H=n+(i<<5)|0;h=(c[d+160>>2]|0)+(i<<5)|0;c[H>>2]=c[h>>2];c[H+4>>2]=c[h+4>>2];c[H+8>>2]=c[h+8>>2];c[H+12>>2]=c[h+12>>2];c[H+16>>2]=c[h+16>>2];c[H+20>>2]=c[h+20>>2];c[H+24>>2]=c[h+24>>2];c[H+28>>2]=c[h+28>>2];i=i+1|0}while((i|0)!=(j|0))}i=c[d+160>>2]|0;if(i|0){if(a[d+164>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0)}c[d+160>>2]=0}a[d+164>>0]=1;c[d+160>>2]=n;c[d+156>>2]=I;i=c[d+152>>2]|0}else i=p;c[d+152>>2]=i+1;i=(c[d+160>>2]|0)+(p<<5)|0;c[i>>2]=c[J+32>>2];c[i+4>>2]=c[J+32+4>>2];c[i+8>>2]=c[J+32+8>>2];c[i+12>>2]=c[J+32+12>>2];c[i+16>>2]=c[J+32+16>>2];c[i+20>>2]=c[J+32+20>>2];c[i+24>>2]=c[J+32+24>>2];c[i+28>>2]=c[J+32+28>>2];i=c[d+160>>2]|0;b[i+(p<<5)>>1]=b[r+(z<<4)>>1]|0;b[i+(p<<5)+2>>1]=b[r+(z<<4)+2>>1]|0;b[i+(p<<5)+4>>1]=b[r+(z<<4)+4>>1]|0;b[i+(p<<5)+6>>1]=b[r+(z<<4)+6>>1]|0;b[i+(p<<5)+8>>1]=b[r+(z<<4)+8>>1]|0;b[i+(p<<5)+10>>1]=b[r+(z<<4)+10>>1]|0;c[i+(p<<5)+12>>2]=z;c[i+(p<<5)+16>>2]=u;i=d+152|0}else i=d+152|0;c[d+168>>2]=c[i>>2];i=a[d+60>>0]|0}if(!(i<<24>>24)){c[(c[d+96>>2]|0)+(F<<6)+32>>2]=v;ea=J;return}else{c[(c[d+136>>2]|0)+(F<<4)+12>>2]=0-v;ea=J;return}}function wb(b,d,e,g,h){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0,t=0,u=0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0.0,Y=0.0,Z=0.0,_=0.0,$=0.0,aa=0,ba=0,ca=0,da=0,fa=0,ga=0,ha=0.0,ia=0.0,ja=0.0,ka=0.0,la=0.0,ma=0.0,na=0.0,oa=0.0,pa=0.0,qa=0.0,ra=0.0;ga=ea;ea=ea+176|0;ca=c[d+4>>2]|0;da=c[e+4>>2]|0;if((c[ca+68>>2]|0)==(c[b+40>>2]|0)?(c[da+68>>2]|0)==(c[b+44>>2]|0):0)ba=b+8|0;else{i=c[b+8>>2]|0;j=c[i+8>>2]|0;if((j|0)>0){l=0;do{k=c[(c[i+16>>2]|0)+(l*12|0)+8>>2]|0;if(k|0){Ca[c[c[k>>2]>>2]&511](k);ba=c[b+4>>2]|0;Ia[c[(c[ba>>2]|0)+60>>2]&127](ba,k)}l=l+1|0}while((l|0)!=(j|0));i=c[b+8>>2]|0}$g(i);ba=b+8|0}a[ga+128+16>>0]=1;o=ga+128+12|0;c[o>>2]=0;c[ga+128+4>>2]=0;c[ga+128+8>>2]=0;n=c[ba>>2]|0;i=c[n+8>>2]|0;if((i|0)>0){m=0;do{j=c[(c[n+16>>2]|0)+(m*12|0)+8>>2]|0;if(j){Ia[c[(c[j>>2]|0)+16>>2]&127](j,ga+128|0);i=c[ga+128+4>>2]|0;if((i|0)>0){l=0;do{k=c[(c[o>>2]|0)+(l<<2)>>2]|0;if(c[k+748>>2]|0){c[h+4>>2]=k;i=c[k+740>>2]|0;j=c[(c[h+8>>2]|0)+8>>2]|0;if((i|0)==(j|0))Hd(k,i+4|0,(c[(c[h+12>>2]|0)+8>>2]|0)+4|0);else Hd(k,(c[(c[h+12>>2]|0)+8>>2]|0)+4|0,j+4|0);c[h+4>>2]=0;i=c[ga+128+4>>2]|0}l=l+1|0}while((l|0)<(i|0))}if((i|0)<0){if((c[ga+128+8>>2]|0)<0){j=c[o>>2]|0;if(j|0){if(a[ga+128+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[j+-4>>2]|0)}c[o>>2]=0}a[ga+128+16>>0]=1;c[o>>2]=0;c[ga+128+8>>2]=0}do{c[(c[o>>2]|0)+(i<<2)>>2]=0;i=i+1|0}while((i|0)!=0)}c[ga+128+4>>2]=0;i=c[n+8>>2]|0}m=m+1|0}while((m|0)<(i|0));i=c[o>>2]|0;if(i|0){if(a[ga+128+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0)}c[o>>2]=0}}j=c[ca+64>>2]|0;k=c[da+64>>2]|0;s=c[b+4>>2]|0;t=c[ba>>2]|0;u=c[b+32>>2]|0;c[ga+128>>2]=7368;c[ga+128+4>>2]=0;c[ga+128+8>>2]=d;c[ga+128+12>>2]=e;c[ga+128+16>>2]=s;c[ga+128+20>>2]=g;c[ga+128+24>>2]=h;c[ga+128+28>>2]=t;c[ga+128+32>>2]=u;u=c[d+12>>2]|0;E=+f[u>>2];F=+f[u+16>>2];G=+f[u+32>>2];H=+f[u+4>>2];I=+f[u+20>>2];J=+f[u+36>>2];K=+f[u+8>>2];L=+f[u+24>>2];M=+f[u+40>>2];Z=-+f[u+48>>2];_=-+f[u+52>>2];$=-+f[u+56>>2];u=c[e+12>>2]|0;N=+f[u>>2];O=+f[u+16>>2];P=+f[u+32>>2];Q=+f[u+4>>2];R=+f[u+20>>2];S=+f[u+36>>2];T=+f[u+8>>2];U=+f[u+24>>2];V=+f[u+40>>2];W=+f[u+48>>2];X=+f[u+52>>2];Y=+f[u+56>>2];j=c[j>>2]|0;k=c[k>>2]|0;if((j|0)!=0&(k|0)!=0){c[6747]=(c[6747]|0)+1;i=kb(1043)|0;if(!i)i=0;else{c[(i+4+15&-16)+-4>>2]=i;i=i+4+15&-16}c[i>>2]=j;c[i+4>>2]=k;v=+r(+(E*N+F*O+G*P));w=+r(+(E*Q+F*R+G*S));x=+r(+(E*T+F*U+G*V));y=+r(+(H*N+I*O+J*P));z=+r(+(H*Q+I*R+J*S));A=+r(+(H*T+I*U+J*V));B=+r(+(K*N+L*O+M*P));C=+r(+(K*Q+L*R+M*S));D=+r(+(K*T+L*U+M*V));m=i;o=i;n=i;u=1;j=128;q=i;l=128;i=124;while(1){g=u+-1|0;s=c[q+(g<<3)>>2]|0;t=c[q+(g<<3)+4>>2]|0;ra=+f[t+16>>2];qa=+f[t>>2];pa=+f[t+20>>2];oa=+f[t+4>>2];na=+f[t+24>>2];ha=+f[t+8>>2];ma=E*Z+F*_+G*$+(E*W+F*X+G*Y)+((E*N+F*O+G*P)*((ra+qa)*.5)+(E*Q+F*R+G*S)*((pa+oa)*.5)+(E*T+F*U+G*V)*((na+ha)*.5));ka=H*Z+I*_+J*$+(H*W+I*X+J*Y)+((H*N+I*O+J*P)*((ra+qa)*.5)+(H*Q+I*R+J*S)*((pa+oa)*.5)+(H*T+I*U+J*V)*((na+ha)*.5));ia=K*Z+L*_+M*$+(K*W+L*X+M*Y)+((K*N+L*O+M*P)*((ra+qa)*.5)+(K*Q+L*R+M*S)*((pa+oa)*.5)+(K*T+L*U+M*V)*((na+ha)*.5));la=v*((ra-qa)*.5+0.0)+w*((pa-oa)*.5+0.0)+x*((na-ha)*.5+0.0);ja=y*((ra-qa)*.5+0.0)+z*((pa-oa)*.5+0.0)+A*((na-ha)*.5+0.0);ha=B*((ra-qa)*.5+0.0)+C*((pa-oa)*.5+0.0)+D*((na-ha)*.5+0.0);do if(((((+f[s>>2]<=la+ma?+f[s+16>>2]>=ma-la:0)?+f[s+4>>2]<=ja+ka:0)?+f[s+20>>2]>=ka-ja:0)?+f[s+8>>2]<=ha+ia:0)?+f[s+24>>2]>=ia-ha:0){if((g|0)>(i|0)){h=l<<1;do if((l|0)<(h|0)&(j|0)<(h|0)){do if(!l){k=0;i=0;aa=55}else{c[6747]=(c[6747]|0)+1;i=kb((l<<4|3)+16|0)|0;if(!i)j=0;else{c[(i+4+15&-16)+-4>>2]=i;j=i+4+15&-16}if((l|0)<=0){k=j;i=j;aa=55;break}i=0;do{n=q+(i<<3)|0;o=c[n+4>>2]|0;p=j+(i<<3)|0;c[p>>2]=c[n>>2];c[p+4>>2]=o;i=i+1|0}while((i|0)!=(l|0));k=j;i=j}while(0);if((aa|0)==55){aa=0;if(!q){l=i;n=i;j=h;break}}if(!m){l=i;n=i;j=h}else{c[6748]=(c[6748]|0)+1;uc(c[m+-4>>2]|0);l=i;n=i;j=h}}else{l=o;i=m;k=q}while(0);o=l;m=i;p=j;l=h;h=h+-4|0}else{p=j;k=q;h=i}j=(c[t+40>>2]|0)!=0;if(!(c[s+40>>2]|0))if(j){j=c[t+36>>2]|0;c[k+(g<<3)>>2]=s;c[k+(g<<3)+4>>2]=j;g=c[t+40>>2]|0;c[k+(u<<3)>>2]=s;c[k+(u<<3)+4>>2]=g;g=u+1|0;j=p;i=h;break}else{Ma[c[(c[ga+128>>2]|0)+8>>2]&127](ga+128|0,s,t);j=p;i=h;break}else{i=c[s+36>>2]|0;if(j){j=c[t+36>>2]|0;c[k+(g<<3)>>2]=i;c[k+(g<<3)+4>>2]=j;i=c[t+36>>2]|0;j=u+1|0;c[k+(u<<3)>>2]=c[s+40>>2];c[k+(u<<3)+4>>2]=i;i=c[t+40>>2]|0;g=u+2|0;c[k+(j<<3)>>2]=c[s+36>>2];c[k+(j<<3)+4>>2]=i;j=c[t+40>>2]|0;c[k+(g<<3)>>2]=c[s+40>>2];c[k+(g<<3)+4>>2]=j;g=u+3|0;j=p;i=h;break}else{c[k+(g<<3)>>2]=i;c[k+(g<<3)+4>>2]=t;c[k+(u<<3)>>2]=c[s+40>>2];c[k+(u<<3)+4>>2]=t;g=u+1|0;j=p;i=h;break}}}else k=q;while(0);if(!g)break;else{u=g;q=k}}if(!((k|0)==0|(o|0)==0)){c[6748]=(c[6748]|0)+1;uc(c[o+-4>>2]|0)}}n=c[ba>>2]|0;if((c[n+8>>2]|0)>0){o=0;do{i=c[n+16>>2]|0;j=c[i+(o*12|0)+8>>2]|0;do if(j|0){aa=c[i+(o*12|0)>>2]|0;u=c[ca+24>>2]|0;t=c[u+(aa*80|0)+64>>2]|0;s=c[d+12>>2]|0;ra=+f[s>>2];R=+f[s+4>>2];Q=+f[s+8>>2];oa=+f[s+16>>2];ma=+f[s+20>>2];ka=+f[s+24>>2];na=+f[s+32>>2];ja=+f[s+36>>2];W=+f[s+40>>2];ia=+f[u+(aa*80|0)>>2];ha=+f[u+(aa*80|0)+16>>2];$=+f[u+(aa*80|0)+32>>2];_=+f[u+(aa*80|0)+4>>2];Z=+f[u+(aa*80|0)+20>>2];Y=+f[u+(aa*80|0)+36>>2];la=+f[u+(aa*80|0)+8>>2];X=+f[u+(aa*80|0)+24>>2];V=+f[u+(aa*80|0)+40>>2];qa=+f[u+(aa*80|0)+48>>2];pa=+f[u+(aa*80|0)+52>>2];S=+f[u+(aa*80|0)+56>>2];U=+f[s+48>>2]+(ra*qa+R*pa+Q*S);T=+f[s+52>>2]+(oa*qa+ma*pa+ka*S);S=+f[s+56>>2]+(na*qa+ja*pa+W*S);f[ga>>2]=ra*ia+R*ha+Q*$;f[ga+4>>2]=ra*_+R*Z+Q*Y;f[ga+8>>2]=ra*la+R*X+Q*V;f[ga+12>>2]=0.0;f[ga+16>>2]=oa*ia+ma*ha+ka*$;f[ga+20>>2]=oa*_+ma*Z+ka*Y;f[ga+24>>2]=oa*la+ma*X+ka*V;f[ga+28>>2]=0.0;f[ga+32>>2]=na*ia+ja*ha+W*$;f[ga+36>>2]=na*_+ja*Z+W*Y;f[ga+40>>2]=na*la+ja*X+W*V;f[ga+44>>2]=0.0;f[ga+48>>2]=U;f[ga+52>>2]=T;f[ga+56>>2]=S;f[ga+60>>2]=0.0;Pa[c[(c[t>>2]|0)+8>>2]&127](t,ga,ga+112|0,ga+96|0);t=c[(c[n+16>>2]|0)+(o*12|0)+4>>2]|0;s=c[da+24>>2]|0;aa=c[s+(t*80|0)+64>>2]|0;u=c[e+12>>2]|0;S=+f[u>>2];T=+f[u+4>>2];U=+f[u+8>>2];V=+f[u+16>>2];W=+f[u+20>>2];X=+f[u+24>>2];ja=+f[u+32>>2];la=+f[u+36>>2];na=+f[u+40>>2];Y=+f[s+(t*80|0)>>2];Z=+f[s+(t*80|0)+16>>2];_=+f[s+(t*80|0)+32>>2];$=+f[s+(t*80|0)+4>>2];ha=+f[s+(t*80|0)+20>>2];ia=+f[s+(t*80|0)+36>>2];ka=+f[s+(t*80|0)+8>>2];ma=+f[s+(t*80|0)+24>>2];oa=+f[s+(t*80|0)+40>>2];Q=+f[s+(t*80|0)+48>>2];R=+f[s+(t*80|0)+52>>2];ra=+f[s+(t*80|0)+56>>2];pa=+f[u+48>>2]+(S*Q+T*R+U*ra);qa=+f[u+52>>2]+(V*Q+W*R+X*ra);ra=+f[u+56>>2]+(ja*Q+la*R+na*ra);f[ga>>2]=S*Y+T*Z+U*_;f[ga+4>>2]=S*$+T*ha+U*ia;f[ga+8>>2]=S*ka+T*ma+U*oa;f[ga+12>>2]=0.0;f[ga+16>>2]=V*Y+W*Z+X*_;f[ga+20>>2]=V*$+W*ha+X*ia;f[ga+24>>2]=V*ka+W*ma+X*oa;f[ga+28>>2]=0.0;f[ga+32>>2]=ja*Y+la*Z+na*_;f[ga+36>>2]=ja*$+la*ha+na*ia;f[ga+40>>2]=ja*ka+la*ma+na*oa;f[ga+44>>2]=0.0;f[ga+48>>2]=pa;f[ga+52>>2]=qa;f[ga+56>>2]=ra;f[ga+60>>2]=0.0;Pa[c[(c[aa>>2]|0)+8>>2]&127](aa,ga,ga+80|0,ga+64|0);if(!(+f[ga+112>>2]>+f[ga+64>>2])?!(+f[ga+96>>2]<+f[ga+80>>2]):0)i=1;else i=0;if(!(!(+f[ga+112+8>>2]>+f[ga+64+8>>2])?!(+f[ga+96+8>>2]<+f[ga+80+8>>2]):0))i=0;if(!(+f[ga+112+4>>2]>+f[ga+64+4>>2])?!(+f[ga+96+4>>2]<+f[ga+80+4>>2]|i^1):0)break;Ca[c[c[j>>2]>>2]&511](j);m=c[b+4>>2]|0;Ia[c[(c[m>>2]|0)+60>>2]&127](m,j);m=c[n+16>>2]|0;l=c[m+(o*12|0)>>2]|0;m=c[m+(o*12|0)+4>>2]|0;i=c[b+16>>2]|0;if((i|0)==(c[b+20>>2]|0)?(fa=(i|0)==0?1:i<<1,(i|0)<(fa|0)):0){if(!fa)j=0;else{c[6747]=(c[6747]|0)+1;i=kb((fa*12|3)+16|0)|0;if(!i)j=0;else{c[(i+4+15&-16)+-4>>2]=i;j=i+4+15&-16}i=c[b+16>>2]|0}if((i|0)>0){k=0;do{aa=j+(k*12|0)|0;u=(c[b+24>>2]|0)+(k*12|0)|0;c[aa>>2]=c[u>>2];c[aa+4>>2]=c[u+4>>2];c[aa+8>>2]=c[u+8>>2];k=k+1|0}while((k|0)!=(i|0))}i=c[b+24>>2]|0;if(i|0){if(a[b+28>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0)}c[b+24>>2]=0}a[b+28>>0]=1;c[b+24>>2]=j;c[b+20>>2]=fa;i=c[b+16>>2]|0}aa=c[b+24>>2]|0;c[aa+(i*12|0)>>2]=l;c[aa+(i*12|0)+4>>2]=m;c[aa+(i*12|0)+8>>2]=0;c[b+16>>2]=(c[b+16>>2]|0)+1}while(0);o=o+1|0}while((o|0)<(c[n+8>>2]|0));j=b+24|0;k=b+16|0}else{j=b+24|0;k=b+16|0}if((c[k>>2]|0)>0){i=0;do{e=c[ba>>2]|0;fa=c[j>>2]|0;va[c[(c[e>>2]|0)+8>>2]&63](e,c[fa+(i*12|0)>>2]|0,c[fa+(i*12|0)+4>>2]|0)|0;i=i+1|0}while((i|0)<(c[k>>2]|0))}i=c[j>>2]|0;if(!i){a[b+28>>0]=1;c[j>>2]=0;c[k>>2]=0;b=b+20|0;c[b>>2]=0;ea=ga;return}if(a[b+28>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0)}c[j>>2]=0;a[b+28>>0]=1;c[j>>2]=0;c[k>>2]=0;b=b+20|0;c[b>>2]=0;ea=ga;return}function xb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0,h=0.0,i=0.0,j=0.0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0;s=ea;ea=ea+208|0;g=ra[c[(c[a>>2]|0)+20>>2]&127](a)|0;Ja[c[(c[g>>2]|0)+56>>2]&7](g,b,1.0);g=c[d+4>>2]|0;switch(g|0){case 31:{g=c[d+16>>2]|0;if((g|0)<=0){ea=s;return}do{r=g;g=g+-1|0;q=c[d+24>>2]|0;D=+f[q+(g*80|0)>>2];A=+f[q+(g*80|0)+4>>2];x=+f[q+(g*80|0)+8>>2];C=+f[q+(g*80|0)+16>>2];z=+f[q+(g*80|0)+20>>2];v=+f[q+(g*80|0)+24>>2];B=+f[q+(g*80|0)+32>>2];y=+f[q+(g*80|0)+36>>2];t=+f[q+(g*80|0)+40>>2];L=+f[q+(g*80|0)+48>>2];K=+f[q+(g*80|0)+52>>2];k=+f[q+(g*80|0)+56>>2];q=c[q+(g*80|0)+64>>2]|0;p=c[(c[a>>2]|0)+28>>2]|0;J=+f[b>>2];I=+f[b+4>>2];H=+f[b+8>>2];G=+f[b+16>>2];F=+f[b+20>>2];E=+f[b+24>>2];w=+f[b+32>>2];u=+f[b+36>>2];h=+f[b+40>>2];i=L*J+K*I+k*H+ +f[b+48>>2];j=L*G+K*F+k*E+ +f[b+52>>2];k=L*w+K*u+k*h+ +f[b+56>>2];f[s+144>>2]=D*J+C*I+B*H;f[s+144+4>>2]=A*J+z*I+y*H;f[s+144+8>>2]=x*J+v*I+t*H;f[s+144+12>>2]=0.0;f[s+144+16>>2]=D*G+C*F+B*E;f[s+144+20>>2]=A*G+z*F+y*E;f[s+144+24>>2]=x*G+v*F+t*E;f[s+144+28>>2]=0.0;f[s+144+32>>2]=D*w+C*u+B*h;f[s+144+36>>2]=A*w+z*u+y*h;f[s+144+40>>2]=x*w+v*u+t*h;f[s+144+44>>2]=0.0;f[s+144+48>>2]=i;f[s+144+52>>2]=j;f[s+144+56>>2]=k;f[s+144+60>>2]=0.0;Pa[p&127](a,s+144|0,q,e)}while((r|0)>1);ea=s;return}case 0:{c[s+144>>2]=c[d+28>>2];c[s+144+4>>2]=c[d+28+4>>2];c[s+144+8>>2]=c[d+28+8>>2];c[s+144+12>>2]=c[d+28+12>>2];J=+ha[c[(c[d>>2]|0)+48>>2]&15](d);K=+ha[c[(c[d>>2]|0)+48>>2]&15](d);L=+ha[c[(c[d>>2]|0)+48>>2]&15](d);J=J+ +f[s+144>>2];f[s+144>>2]=J;K=K+ +f[s+144+4>>2];f[s+144+4>>2]=K;L=L+ +f[s+144+8>>2];f[s+144+8>>2]=L;a=ra[c[(c[a>>2]|0)+20>>2]&127](a)|0;d=c[(c[a>>2]|0)+72>>2]|0;f[s+112>>2]=-J;f[s+112+4>>2]=-K;f[s+112+8>>2]=-L;f[s+112+12>>2]=0.0;Ta[d&31](a,s+112|0,s+144|0,b,e);ea=s;return}case 8:{L=+ha[c[(c[d>>2]|0)+48>>2]&15](d);a=ra[c[(c[a>>2]|0)+20>>2]&127](a)|0;Ha[c[(c[a>>2]|0)+16>>2]&1](a,L,b,e);ea=s;return}case 9:{g=c[d+92>>2]|0;if((g|0)<=0){ea=s;return}do{r=g;g=g+-1|0;q=c[d+100>>2]|0;x=+f[q+(g<<4)>>2];y=+f[q+(g<<4)+4>>2];K=+f[q+(g<<4)+8>>2];q=ra[c[(c[a>>2]|0)+20>>2]&127](a)|0;p=c[(c[q>>2]|0)+16>>2]|0;L=+f[(c[d+120>>2]|0)+(g<<2)>>2];A=+f[b>>2];B=+f[b+4>>2];z=+f[b+8>>2];D=+f[b+16>>2];E=+f[b+20>>2];C=+f[b+24>>2];G=+f[b+32>>2];H=+f[b+36>>2];F=+f[b+40>>2];I=x*A+y*B+K*z+ +f[b+48>>2];J=x*D+y*E+K*C+ +f[b+52>>2];K=x*G+y*H+K*F+ +f[b+56>>2];f[s+144>>2]=A+B*0.0+z*0.0;f[s+144+4>>2]=A*0.0+B+z*0.0;f[s+144+8>>2]=z+(A*0.0+B*0.0);f[s+144+12>>2]=0.0;f[s+144+16>>2]=D+E*0.0+C*0.0;f[s+144+20>>2]=D*0.0+E+C*0.0;f[s+144+24>>2]=C+(D*0.0+E*0.0);f[s+144+28>>2]=0.0;f[s+144+32>>2]=G+H*0.0+F*0.0;f[s+144+36>>2]=G*0.0+H+F*0.0;f[s+144+40>>2]=F+(G*0.0+H*0.0);f[s+144+44>>2]=0.0;f[s+144+48>>2]=I;f[s+144+52>>2]=J;f[s+144+56>>2]=K;f[s+144+60>>2]=0.0;Ha[p&1](q,L,s+144|0,e)}while((r|0)>1);ea=s;return}case 10:{r=c[d+52>>2]|0;K=+f[d+28+(((r+2|0)%3|0)<<2)>>2];L=+f[d+28+(r<<2)>>2];a=ra[c[(c[a>>2]|0)+20>>2]&127](a)|0;Fa[c[(c[a>>2]|0)+76>>2]&3](a,K,L,r,b,e);ea=s;return}case 11:{K=+f[d+56>>2];L=+f[d+60>>2];d=c[d+68>>2]|0;a=ra[c[(c[a>>2]|0)+20>>2]&127](a)|0;Fa[c[(c[a>>2]|0)+84>>2]&3](a,K,L,d,b,e);ea=s;return}case 13:{r=c[d+52>>2]|0;K=+ha[c[(c[d>>2]|0)+92>>2]&15](d);c[s+128>>2]=c[d+28>>2];c[s+128+4>>2]=c[d+28+4>>2];c[s+128+8>>2]=c[d+28+8>>2];c[s+128+12>>2]=c[d+28+12>>2];I=+ha[c[(c[d>>2]|0)+48>>2]&15](d);J=+ha[c[(c[d>>2]|0)+48>>2]&15](d);L=+ha[c[(c[d>>2]|0)+48>>2]&15](d);f[s+128>>2]=I+ +f[s+128>>2];f[s+128+4>>2]=J+ +f[s+128+4>>2];f[s+128+8>>2]=L+ +f[s+128+8>>2];L=+f[s+128+(r<<2)>>2];a=ra[c[(c[a>>2]|0)+20>>2]&127](a)|0;Fa[c[(c[a>>2]|0)+80>>2]&3](a,K,L,r,b,e);ea=s;return}case 28:{L=+f[d+64>>2];a=ra[c[(c[a>>2]|0)+20>>2]&127](a)|0;La[c[(c[a>>2]|0)+88>>2]&1](a,d+48|0,L,b,e);ea=s;return}default:{a:do if((g|0)<7){q=c[d+52>>2]|0;if(!q){if((ra[c[(c[d>>2]|0)+100>>2]&127](d)|0)<=0)break;g=0;while(1){Pa[c[(c[d>>2]|0)+104>>2]&127](d,g,s+144|0,s+112|0);L=+f[s+144>>2];y=+f[b>>2];J=+f[s+144+4>>2];z=+f[b+4>>2];H=+f[s+144+8>>2];A=+f[b+8>>2];C=+f[b+16>>2];D=+f[b+20>>2];E=+f[b+24>>2];G=+f[b+32>>2];I=+f[b+36>>2];K=+f[b+40>>2];x=+f[b+48>>2];B=+f[b+52>>2];F=+f[b+56>>2];f[s+16>>2]=L*y+J*z+H*A+x;f[s+16+4>>2]=L*C+J*D+H*E+B;f[s+16+8>>2]=L*G+J*I+H*K+F;f[s+16+12>>2]=0.0;H=+f[s+112>>2];J=+f[s+112+4>>2];L=+f[s+112+8>>2];f[s>>2]=x+(y*H+z*J+A*L);f[s+4>>2]=B+(C*H+D*J+E*L);f[s+8>>2]=F+(G*H+I*J+K*L);f[s+12>>2]=0.0;r=ra[c[(c[a>>2]|0)+20>>2]&127](a)|0;Pa[c[(c[r>>2]|0)+8>>2]&127](r,s+16|0,s,e);g=g+1|0;if((g|0)>=(ra[c[(c[d>>2]|0)+100>>2]&127](d)|0))break a}}if((c[q+28>>2]|0)>0){r=0;do{g=c[q+36>>2]|0;p=c[g+(r*36|0)+4>>2]|0;b:do if((p|0)>0){n=c[g+(r*36|0)+12>>2]|0;l=n;h=0.0;i=0.0;j=0.0;n=c[n+(p+-1<<2)>>2]|0;g=0;while(1){o=c[l+(g<<2)>>2]|0;m=c[q+16>>2]|0;h=h+ +f[m+(o<<4)>>2];i=i+ +f[m+(o<<4)+4>>2];j=j+ +f[m+(o<<4)+8>>2];m=ra[c[(c[a>>2]|0)+20>>2]&127](a)|0;l=c[(c[m>>2]|0)+8>>2]|0;M=c[q+16>>2]|0;L=+f[M+(n<<4)>>2];y=+f[b>>2];J=+f[M+(n<<4)+4>>2];z=+f[b+4>>2];H=+f[M+(n<<4)+8>>2];A=+f[b+8>>2];C=+f[b+16>>2];D=+f[b+20>>2];E=+f[b+24>>2];G=+f[b+32>>2];I=+f[b+36>>2];K=+f[b+40>>2];x=+f[b+48>>2];B=+f[b+52>>2];F=+f[b+56>>2];f[s+144>>2]=L*y+J*z+H*A+x;f[s+144+4>>2]=L*C+J*D+H*E+B;f[s+144+8>>2]=L*G+J*I+H*K+F;f[s+144+12>>2]=0.0;H=+f[M+(o<<4)>>2];J=+f[M+(o<<4)+4>>2];L=+f[M+(o<<4)+8>>2];f[s+112>>2]=x+(y*H+z*J+A*L);f[s+112+4>>2]=B+(C*H+D*J+E*L);f[s+112+8>>2]=F+(G*H+I*J+K*L);f[s+112+12>>2]=0.0;Pa[l&127](m,s+144|0,s+112|0,e);m=g+1|0;g=c[q+36>>2]|0;if((m|0)>=(c[g+(r*36|0)+4>>2]|0))break b;l=c[g+(r*36|0)+12>>2]|0;n=o;g=m}}else{h=0.0;i=0.0;j=0.0}while(0);k=1.0/+(p|0)*h;i=1.0/+(p|0)*i;h=1.0/+(p|0)*j;M=ra[c[(c[a>>2]|0)+20>>2]&127](a)|0;if((ra[c[(c[M>>2]|0)+48>>2]&127](M)|0)&16384|0){c[s+144>>2]=1065353216;c[s+144+4>>2]=1065353216;c[s+144+8>>2]=0;f[s+144+12>>2]=0.0;M=c[q+36>>2]|0;F=+f[M+(r*36|0)+20>>2];H=+f[M+(r*36|0)+24>>2];J=+f[M+(r*36|0)+28>>2];M=ra[c[(c[a>>2]|0)+20>>2]&127](a)|0;p=c[(c[M>>2]|0)+8>>2]|0;x=+f[b>>2];y=+f[b+4>>2];z=+f[b+8>>2];B=+f[b+16>>2];C=+f[b+20>>2];D=+f[b+24>>2];G=+f[b+32>>2];I=+f[b+36>>2];K=+f[b+40>>2];A=+f[b+48>>2];E=+f[b+52>>2];L=+f[b+56>>2];f[s+112>>2]=k*x+i*y+h*z+A;f[s+112+4>>2]=k*B+i*C+h*D+E;f[s+112+8>>2]=k*G+i*I+h*K+L;f[s+112+12>>2]=0.0;f[s+16>>2]=(k+F)*x+(i+H)*y+(h+J)*z+A;f[s+16+4>>2]=(k+F)*B+(i+H)*C+(h+J)*D+E;f[s+16+8>>2]=(k+F)*G+(i+H)*I+(h+J)*K+L;f[s+16+12>>2]=0.0;Pa[p&127](M,s+112|0,s+16|0,s+144|0)}r=r+1|0}while((r|0)<(c[q+28>>2]|0))}}while(0);g=c[d+4>>2]|0;if((g+-21|0)>>>0<9){c[s+144>>2]=1566444395;c[s+144+4>>2]=1566444395;c[s+144+8>>2]=1566444395;f[s+144+12>>2]=0.0;c[s+112>>2]=-581039253;c[s+112+4>>2]=-581039253;c[s+112+8>>2]=-581039253;f[s+112+12>>2]=0.0;g=ra[c[(c[a>>2]|0)+20>>2]&127](a)|0;c[s+16>>2]=6932;c[s+16+4>>2]=6956;c[s+16+8>>2]=g;c[s+16+12>>2]=c[e>>2];c[s+16+12+4>>2]=c[e+4>>2];c[s+16+12+8>>2]=c[e+8>>2];c[s+16+12+12>>2]=c[e+12>>2];c[s+16+28>>2]=c[b>>2];c[s+16+28+4>>2]=c[b+4>>2];c[s+16+28+8>>2]=c[b+8>>2];c[s+16+28+12>>2]=c[b+12>>2];c[s+16+44>>2]=c[b+16>>2];c[s+16+44+4>>2]=c[b+16+4>>2];c[s+16+44+8>>2]=c[b+16+8>>2];c[s+16+44+12>>2]=c[b+16+12>>2];c[s+16+60>>2]=c[b+32>>2];c[s+16+60+4>>2]=c[b+32+4>>2];c[s+16+60+8>>2]=c[b+32+8>>2];c[s+16+60+12>>2]=c[b+32+12>>2];c[s+16+76>>2]=c[b+48>>2];c[s+16+76+4>>2]=c[b+48+4>>2];c[s+16+76+8>>2]=c[b+48+8>>2];c[s+16+76+12>>2]=c[b+48+12>>2];Pa[c[(c[d>>2]|0)+64>>2]&127](d,s+16|0,s+112|0,s+144|0);g=c[d+4>>2]|0}if((g|0)!=3){ea=s;return}c[s+144>>2]=1566444395;c[s+144+4>>2]=1566444395;c[s+144+8>>2]=1566444395;f[s+144+12>>2]=0.0;c[s+112>>2]=-581039253;c[s+112+4>>2]=-581039253;c[s+112+8>>2]=-581039253;f[s+112+12>>2]=0.0;M=ra[c[(c[a>>2]|0)+20>>2]&127](a)|0;c[s+16>>2]=6932;c[s+16+4>>2]=6956;c[s+16+8>>2]=M;c[s+16+12>>2]=c[e>>2];c[s+16+12+4>>2]=c[e+4>>2];c[s+16+12+8>>2]=c[e+8>>2];c[s+16+12+12>>2]=c[e+12>>2];c[s+16+28>>2]=c[b>>2];c[s+16+28+4>>2]=c[b+4>>2];c[s+16+28+8>>2]=c[b+8>>2];c[s+16+28+12>>2]=c[b+12>>2];c[s+16+44>>2]=c[b+16>>2];c[s+16+44+4>>2]=c[b+16+4>>2];c[s+16+44+8>>2]=c[b+16+8>>2];c[s+16+44+12>>2]=c[b+16+12>>2];c[s+16+60>>2]=c[b+32>>2];c[s+16+60+4>>2]=c[b+32+4>>2];c[s+16+60+8>>2]=c[b+32+8>>2];c[s+16+60+12>>2]=c[b+32+12>>2];c[s+16+76>>2]=c[b+48>>2];c[s+16+76+4>>2]=c[b+48+4>>2];c[s+16+76+8>>2]=c[b+48+8>>2];c[s+16+76+12>>2]=c[b+48+12>>2];M=c[d+92>>2]|0;Pa[c[(c[M>>2]|0)+8>>2]&127](M,s+16+4|0,s+112|0,s+144|0);ea=s;return}}}function yb(b,d,e,g){b=b|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0.0,l=0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0,s=0,t=0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0;t=ea;ea=ea+48|0;z=1.0/+f[b+108>>2];A=1.0/+f[b+112>>2];B=1.0/+f[b+116>>2];u=+f[b+48>>2];v=z*+f[e>>2]+u;o=+f[b+52>>2];k=A*+f[e+4>>2]+o;q=+f[b+56>>2];p=B*+f[e+8>>2]+q;u=z*+f[g>>2]+u;o=A*+f[g+4>>2]+o;q=B*+f[g+8>>2]+q;B=+f[b+16>>2];v=v>2];k=k>2];p=p>2];v=y>2];k=x>2];p=w>2]|0)+-1|0;e=(c[b+68>>2]|0)+-1|0;switch(c[b+104>>2]|0){case 0:{e=(g|0)<(e|0)?g:e;j=(i|0)<(j|0)?i:j;g=(l|0)>0?l:0;r=(n|0)>0?n:0;break}case 1:{e=(g|0)<(e|0)?g:e;j=(h|0)<(j|0)?h:j;g=(l|0)>0?l:0;r=(m|0)>0?m:0;break}case 2:{e=(i|0)<(e|0)?i:e;j=(h|0)<(j|0)?h:j;g=(n|0)>0?n:0;r=(m|0)>0?m:0;break}default:{g=0;r=0}}if((g|0)>=(e|0)){ea=t;return}n=(r|0)<(j|0);l=g;while(1){if(n){m=(l&1|0)==0;q=+(l|0);g=l+1|0;i=r;while(1){do if(!(a[b+100>>0]|0)){if(a[b+101>>0]|0?(i+l&1|0)==0:0){s=16;break}if(!(m&(a[b+102>>0]|0)!=0)){k=+ka[c[(c[b>>2]|0)+68>>2]&15](b,i,l);switch(c[b+104>>2]|0){case 0:{k=k-+f[b+48>>2];o=+(i|0)-+f[b+80>>2]*.5;p=q-+f[b+84>>2]*.5;f[t>>2]=k;f[t+4>>2]=o;f[t+8>>2]=p;f[t+12>>2]=0.0;break}case 1:{B=+(i|0)-+f[b+80>>2]*.5;o=k-+f[b+52>>2];p=q-+f[b+84>>2]*.5;f[t>>2]=B;f[t+4>>2]=o;f[t+8>>2]=p;f[t+12>>2]=0.0;k=B;break}case 2:{B=+(i|0)-+f[b+80>>2]*.5;o=q-+f[b+84>>2]*.5;p=k-+f[b+56>>2];f[t>>2]=B;f[t+4>>2]=o;f[t+8>>2]=p;f[t+12>>2]=0.0;k=B;break}default:{k=+f[t>>2];o=+f[t+4>>2];p=+f[t+8>>2]}}f[t>>2]=k*+f[b+108>>2];f[t+4>>2]=o*+f[b+112>>2];f[t+8>>2]=p*+f[b+116>>2];k=+ka[c[(c[b>>2]|0)+68>>2]&15](b,i,g);switch(c[b+104>>2]|0){case 0:{k=k-+f[b+48>>2];o=+(i|0)-+f[b+80>>2]*.5;p=+(g|0)-+f[b+84>>2]*.5;f[t+16>>2]=k;f[t+20>>2]=o;f[t+24>>2]=p;f[t+28>>2]=0.0;break}case 1:{B=+(i|0)-+f[b+80>>2]*.5;o=k-+f[b+52>>2];p=+(g|0)-+f[b+84>>2]*.5;f[t+16>>2]=B;f[t+20>>2]=o;f[t+24>>2]=p;f[t+28>>2]=0.0;k=B;break}case 2:{B=+(i|0)-+f[b+80>>2]*.5;o=+(g|0)-+f[b+84>>2]*.5;p=k-+f[b+56>>2];f[t+16>>2]=B;f[t+20>>2]=o;f[t+24>>2]=p;f[t+28>>2]=0.0;k=B;break}default:{k=+f[t+16>>2];o=+f[t+20>>2];p=+f[t+24>>2]}}f[t+16>>2]=k*+f[b+108>>2];f[t+20>>2]=o*+f[b+112>>2];f[t+24>>2]=p*+f[b+116>>2];h=i+1|0;k=+ka[c[(c[b>>2]|0)+68>>2]&15](b,h,l);switch(c[b+104>>2]|0){case 0:{k=k-+f[b+48>>2];o=+(h|0)-+f[b+80>>2]*.5;p=q-+f[b+84>>2]*.5;f[t+32>>2]=k;f[t+36>>2]=o;f[t+40>>2]=p;f[t+44>>2]=0.0;break}case 1:{B=+(h|0)-+f[b+80>>2]*.5;o=k-+f[b+52>>2];p=q-+f[b+84>>2]*.5;f[t+32>>2]=B;f[t+36>>2]=o;f[t+40>>2]=p;f[t+44>>2]=0.0;k=B;break}case 2:{B=+(h|0)-+f[b+80>>2]*.5;o=q-+f[b+84>>2]*.5;p=k-+f[b+56>>2];f[t+32>>2]=B;f[t+36>>2]=o;f[t+40>>2]=p;f[t+44>>2]=0.0;k=B;break}default:{k=+f[t+32>>2];o=+f[t+36>>2];p=+f[t+40>>2]}}f[t+32>>2]=k*+f[b+108>>2];f[t+36>>2]=o*+f[b+112>>2];f[t+40>>2]=p*+f[b+116>>2];Pa[c[(c[d>>2]|0)+8>>2]&127](d,t,i,l);k=+ka[c[(c[b>>2]|0)+68>>2]&15](b,h,l);switch(c[b+104>>2]|0){case 0:{k=k-+f[b+48>>2];o=+(h|0)-+f[b+80>>2]*.5;p=q-+f[b+84>>2]*.5;f[t>>2]=k;f[t+4>>2]=o;f[t+8>>2]=p;f[t+12>>2]=0.0;break}case 1:{B=+(h|0)-+f[b+80>>2]*.5;o=k-+f[b+52>>2];p=q-+f[b+84>>2]*.5;f[t>>2]=B;f[t+4>>2]=o;f[t+8>>2]=p;f[t+12>>2]=0.0;k=B;break}case 2:{B=+(h|0)-+f[b+80>>2]*.5;o=q-+f[b+84>>2]*.5;p=k-+f[b+56>>2];f[t>>2]=B;f[t+4>>2]=o;f[t+8>>2]=p;f[t+12>>2]=0.0;k=B;break}default:{k=+f[t>>2];o=+f[t+4>>2];p=+f[t+8>>2]}}f[t>>2]=k*+f[b+108>>2];f[t+4>>2]=o*+f[b+112>>2];f[t+8>>2]=p*+f[b+116>>2];k=+ka[c[(c[b>>2]|0)+68>>2]&15](b,h,g);switch(c[b+104>>2]|0){case 0:{k=k-+f[b+48>>2];o=+(h|0)-+f[b+80>>2]*.5;p=+(g|0)-+f[b+84>>2]*.5;f[t+32>>2]=k;f[t+36>>2]=o;f[t+40>>2]=p;f[t+44>>2]=0.0;break}case 1:{B=+(h|0)-+f[b+80>>2]*.5;o=k-+f[b+52>>2];p=+(g|0)-+f[b+84>>2]*.5;f[t+32>>2]=B;f[t+36>>2]=o;f[t+40>>2]=p;f[t+44>>2]=0.0;k=B;break}case 2:{B=+(h|0)-+f[b+80>>2]*.5;o=+(g|0)-+f[b+84>>2]*.5;p=k-+f[b+56>>2];f[t+32>>2]=B;f[t+36>>2]=o;f[t+40>>2]=p;f[t+44>>2]=0.0;k=B;break}default:{k=+f[t+32>>2];o=+f[t+36>>2];p=+f[t+40>>2]}}f[t+32>>2]=k*+f[b+108>>2];f[t+36>>2]=o*+f[b+112>>2];f[t+40>>2]=p*+f[b+116>>2];Pa[c[(c[d>>2]|0)+8>>2]&127](d,t,i,l)}else s=16}else s=16;while(0);if((s|0)==16){s=0;k=+ka[c[(c[b>>2]|0)+68>>2]&15](b,i,l);switch(c[b+104>>2]|0){case 0:{k=k-+f[b+48>>2];o=+(i|0)-+f[b+80>>2]*.5;p=q-+f[b+84>>2]*.5;f[t>>2]=k;f[t+4>>2]=o;f[t+8>>2]=p;f[t+12>>2]=0.0;break}case 1:{B=+(i|0)-+f[b+80>>2]*.5;o=k-+f[b+52>>2];p=q-+f[b+84>>2]*.5;f[t>>2]=B;f[t+4>>2]=o;f[t+8>>2]=p;f[t+12>>2]=0.0;k=B;break}case 2:{B=+(i|0)-+f[b+80>>2]*.5;o=q-+f[b+84>>2]*.5;p=k-+f[b+56>>2];f[t>>2]=B;f[t+4>>2]=o;f[t+8>>2]=p;f[t+12>>2]=0.0;k=B;break}default:{k=+f[t>>2];o=+f[t+4>>2];p=+f[t+8>>2]}}f[t>>2]=k*+f[b+108>>2];f[t+4>>2]=o*+f[b+112>>2];f[t+8>>2]=p*+f[b+116>>2];h=i+1|0;k=+ka[c[(c[b>>2]|0)+68>>2]&15](b,h,l);switch(c[b+104>>2]|0){case 0:{k=k-+f[b+48>>2];o=+(h|0)-+f[b+80>>2]*.5;p=q-+f[b+84>>2]*.5;f[t+16>>2]=k;f[t+20>>2]=o;f[t+24>>2]=p;f[t+28>>2]=0.0;break}case 1:{B=+(h|0)-+f[b+80>>2]*.5;o=k-+f[b+52>>2];p=q-+f[b+84>>2]*.5;f[t+16>>2]=B;f[t+20>>2]=o;f[t+24>>2]=p;f[t+28>>2]=0.0;k=B;break}case 2:{B=+(h|0)-+f[b+80>>2]*.5;o=q-+f[b+84>>2]*.5;p=k-+f[b+56>>2];f[t+16>>2]=B;f[t+20>>2]=o;f[t+24>>2]=p;f[t+28>>2]=0.0;k=B;break}default:{k=+f[t+16>>2];o=+f[t+20>>2];p=+f[t+24>>2]}}f[t+16>>2]=k*+f[b+108>>2];f[t+20>>2]=o*+f[b+112>>2];f[t+24>>2]=p*+f[b+116>>2];k=+ka[c[(c[b>>2]|0)+68>>2]&15](b,h,g);switch(c[b+104>>2]|0){case 0:{k=k-+f[b+48>>2];o=+(h|0)-+f[b+80>>2]*.5;p=+(g|0)-+f[b+84>>2]*.5;f[t+32>>2]=k;f[t+36>>2]=o;f[t+40>>2]=p;f[t+44>>2]=0.0;break}case 1:{B=+(h|0)-+f[b+80>>2]*.5;o=k-+f[b+52>>2];p=+(g|0)-+f[b+84>>2]*.5;f[t+32>>2]=B;f[t+36>>2]=o;f[t+40>>2]=p;f[t+44>>2]=0.0;k=B;break}case 2:{B=+(h|0)-+f[b+80>>2]*.5;o=+(g|0)-+f[b+84>>2]*.5;p=k-+f[b+56>>2];f[t+32>>2]=B;f[t+36>>2]=o;f[t+40>>2]=p;f[t+44>>2]=0.0;k=B;break}default:{k=+f[t+32>>2];o=+f[t+36>>2];p=+f[t+40>>2]}}f[t+32>>2]=k*+f[b+108>>2];f[t+36>>2]=o*+f[b+112>>2];f[t+40>>2]=p*+f[b+116>>2];Pa[c[(c[d>>2]|0)+8>>2]&127](d,t,i,l);k=+ka[c[(c[b>>2]|0)+68>>2]&15](b,h,g);switch(c[b+104>>2]|0){case 0:{k=k-+f[b+48>>2];o=+(h|0)-+f[b+80>>2]*.5;p=+(g|0)-+f[b+84>>2]*.5;f[t+16>>2]=k;f[t+20>>2]=o;f[t+24>>2]=p;f[t+28>>2]=0.0;break}case 1:{B=+(h|0)-+f[b+80>>2]*.5;o=k-+f[b+52>>2];p=+(g|0)-+f[b+84>>2]*.5;f[t+16>>2]=B;f[t+20>>2]=o;f[t+24>>2]=p;f[t+28>>2]=0.0;k=B;break}case 2:{B=+(h|0)-+f[b+80>>2]*.5;o=+(g|0)-+f[b+84>>2]*.5;p=k-+f[b+56>>2];f[t+16>>2]=B;f[t+20>>2]=o;f[t+24>>2]=p;f[t+28>>2]=0.0;k=B;break}default:{k=+f[t+16>>2];o=+f[t+20>>2];p=+f[t+24>>2]}}f[t+16>>2]=k*+f[b+108>>2];f[t+20>>2]=o*+f[b+112>>2];f[t+24>>2]=p*+f[b+116>>2];k=+ka[c[(c[b>>2]|0)+68>>2]&15](b,i,g);switch(c[b+104>>2]|0){case 0:{k=k-+f[b+48>>2];o=+(i|0)-+f[b+80>>2]*.5;p=+(g|0)-+f[b+84>>2]*.5;f[t+32>>2]=k;f[t+36>>2]=o;f[t+40>>2]=p;f[t+44>>2]=0.0;break}case 1:{B=+(i|0)-+f[b+80>>2]*.5;o=k-+f[b+52>>2];p=+(g|0)-+f[b+84>>2]*.5;f[t+32>>2]=B;f[t+36>>2]=o;f[t+40>>2]=p;f[t+44>>2]=0.0;k=B;break}case 2:{B=+(i|0)-+f[b+80>>2]*.5;o=+(g|0)-+f[b+84>>2]*.5;p=k-+f[b+56>>2];f[t+32>>2]=B;f[t+36>>2]=o;f[t+40>>2]=p;f[t+44>>2]=0.0;k=B;break}default:{k=+f[t+32>>2];o=+f[t+36>>2];p=+f[t+40>>2]}}f[t+32>>2]=k*+f[b+108>>2];f[t+36>>2]=o*+f[b+112>>2];f[t+40>>2]=p*+f[b+116>>2];Pa[c[(c[d>>2]|0)+8>>2]&127](d,t,i,l)}if((h|0)==(j|0))break;else i=h}}else g=l+1|0;if((g|0)==(e|0))break;else l=g}ea=t;return}function zb(b,d){b=b|0;d=d|0;var e=0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0,m=0.0,n=0.0,o=0,p=0,q=0.0,r=0.0,t=0,u=0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0,B=0,C=0,D=0.0,E=0.0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0.0;Q=ea;ea=ea+192|0;O=c[d+36>>2]|0;m=+f[(+f[O+88>>2]>0.0?b+16|0:b+20|0)>>2];if(a[O+100>>0]&1){ea=Q;return}M=c[b+8>>2]|0;t=c[M+4>>2]|0;N=c[M+12>>2]|0;I=c[(c[b+4>>2]|0)+684>>2]|0;D=+f[O+8>>2]-+f[N+48>>2];q=+f[O+12>>2]-+f[N+52>>2];E=+f[O+16>>2]-+f[N+56>>2];z=1.0/+f[I+76>>2];y=(D*+f[N>>2]+q*+f[N+16>>2]+E*+f[N+32>>2])*z/3.0;F=y<0.0?~~(1.0-y):0;J=~~((y+ +(F|0)-+(~~(y+ +(F|0))|0))*3.0);n=(y+ +(F|0)-+(~~(y+ +(F|0))|0))*3.0-+(J|0);F=~~(y+ +(F|0))-F|0;y=z*(D*+f[N+4>>2]+q*+f[N+20>>2]+E*+f[N+36>>2])/3.0;H=y<0.0?~~(1.0-y):0;L=~~((y+ +(H|0)-+(~~(y+ +(H|0))|0))*3.0);r=(y+ +(H|0)-+(~~(y+ +(H|0))|0))*3.0-+(L|0);H=~~(y+ +(H|0))-H|0;E=z*(D*+f[N+8>>2]+q*+f[N+24>>2]+E*+f[N+40>>2])/3.0;G=E<0.0?~~(1.0-E):0;K=~~((E+ +(G|0)-+(~~(E+ +(G|0))|0))*3.0);q=(E+ +(G|0)-+(~~(E+ +(G|0))|0))*3.0-+(K|0);G=~~(E+ +(G|0))-G|0;u=(16?F>>>16:F)<<11^(F&65535)+16^(F&65535)+16<<16;u=u+(H&65535)+(11?u>>>11:u)|0;u=u^(16?H>>>16:H)<<11^u<<16;u=u+(G&65535)+(11?u>>>11:u)|0;u=u^(16?G>>>16:G)<<11^u<<16;u=u+(t&65535)+(11?u>>>11:u)|0;u=u^(16?t>>>16:t)<<11^u<<16;u=(11?u>>>11:u)+u|0;u=(5?(u<<3^u)>>>5:u<<3^u)+(u<<3^u)|0;u=(17?(u<<4^u)>>>17:u<<4^u)+(u<<4^u)|0;u=(6?(u<<25^u)>>>6:u<<25^u)+(u<<25^u)|0;o=c[I+60>>2]|0;p=c[I+68>>2]|0;d=c[p+(((u>>>0)%(o>>>0)|0)<<2)>>2]|0;c[I+96>>2]=(c[I+96>>2]|0)+1;e=(c[I+92>>2]|0)+1|0;c[I+92>>2]=e;a:do if(!d)l=10;else while(1){if(((((c[d+272>>2]|0)==(u|0)?(c[d+256>>2]|0)==(F|0):0)?(c[d+260>>2]|0)==(H|0):0)?(c[d+264>>2]|0)==(G|0):0)?(c[d+276>>2]|0)==(t|0):0)break a;d=c[d+280>>2]|0;e=e+1|0;c[I+92>>2]=e;if(!d){l=10;break}}while(0);b:do if((l|0)==10){C=c[I+84>>2]|0;c[I+84>>2]=C+1;if((C|0)>=(c[I+88>>2]|0)){c[6394]=(c[6394]|0)+1;c:do if((o|0)>0){e=p;l=0;while(1){C=e+(l<<2)|0;d=c[C>>2]|0;c[C>>2]=0;if(d|0)do{C=d;d=c[d+280>>2]|0;LJ(C)}while((d|0)!=0);d=l+1|0;if((d|0)==(o|0))break c;e=c[I+68>>2]|0;l=d}}while(0);f[I+76>>2]=.25;c[I+80>>2]=0;c[I+84>>2]=0;c[I+92>>2]=1;c[I+96>>2]=1}d=GI(284)|0;hk(d|0,0,284)|0;c[d+280>>2]=c[p+(((u>>>0)%(o>>>0)|0)<<2)>>2];c[p+(((u>>>0)%(o>>>0)|0)<<2)>>2]=d;c[d+276>>2]=t;c[d+272>>2]=u;c[d+256>>2]=F;c[d+260>>2]=H;c[d+264>>2]=G;j=+f[I+76>>2];A=Q+120+4|0;B=Q+120+24|0;C=Q+120+44|0;g=j;e=0;while(1){i=j*(+(G|0)*3.0)+g*+(e|0);l=0;while(1){h=j*(+(H|0)*3.0)+g*+(l|0);f[Q+48>>2]=+(F|0)*3.0*j+g*0.0;f[Q+48+4>>2]=h;f[Q+48+8>>2]=i;f[Q+48+12>>2]=0.0;p=c[d+276>>2]|0;c[Q+120>>2]=1065353216;c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;c[A+12>>2]=0;c[Q+120+20>>2]=1065353216;c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;c[B+12>>2]=0;c[Q+120+40>>2]=1065353216;c[C>>2]=0;c[C+4>>2]=0;c[C+8>>2]=0;c[C+12>>2]=0;c[C+16>>2]=0;o=c[p+4>>2]|0;if((o|0)<20){g=+_b(Q+48|0,p,Q+120|0,Q+64|0);u=c[d+276>>2]|0;o=c[u+4>>2]|0;t=u;u=u+4|0}else{t=p;u=p+4|0;g=0.0}f[d+(l<<4)+(e<<2)>>2]=g;f[Q+48>>2]=+(F|0)*3.0*j+ +f[I+76>>2];f[Q+48+4>>2]=h;f[Q+48+8>>2]=i;f[Q+48+12>>2]=0.0;c[Q+120>>2]=1065353216;c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;c[A+12>>2]=0;c[Q+120+20>>2]=1065353216;c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;c[B+12>>2]=0;c[Q+120+40>>2]=1065353216;c[C>>2]=0;c[C+4>>2]=0;c[C+8>>2]=0;c[C+12>>2]=0;c[C+16>>2]=0;if((o|0)<20){g=+_b(Q+48|0,t,Q+120|0,Q+64|0);o=c[d+276>>2]|0;p=o;o=o+4|0}else{p=t;o=u;g=0.0}f[d+64+(l<<4)+(e<<2)>>2]=g;f[Q+48>>2]=+(F|0)*3.0*j+ +f[I+76>>2]*2.0;f[Q+48+4>>2]=h;f[Q+48+8>>2]=i;f[Q+48+12>>2]=0.0;c[Q+120>>2]=1065353216;c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;c[A+12>>2]=0;c[Q+120+20>>2]=1065353216;c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;c[B+12>>2]=0;c[Q+120+40>>2]=1065353216;c[C>>2]=0;c[C+4>>2]=0;c[C+8>>2]=0;c[C+12>>2]=0;c[C+16>>2]=0;if((c[o>>2]|0)<20){g=+_b(Q+48|0,p,Q+120|0,Q+64|0);o=c[d+276>>2]|0;p=o;o=o+4|0}else g=0.0;f[d+128+(l<<4)+(e<<2)>>2]=g;f[Q+48>>2]=+(F|0)*3.0*j+ +f[I+76>>2]*3.0;f[Q+48+4>>2]=h;f[Q+48+8>>2]=i;f[Q+48+12>>2]=0.0;c[Q+120>>2]=1065353216;c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;c[A+12>>2]=0;c[Q+120+20>>2]=1065353216;c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;c[B+12>>2]=0;c[Q+120+40>>2]=1065353216;c[C>>2]=0;c[C+4>>2]=0;c[C+8>>2]=0;c[C+12>>2]=0;c[C+16>>2]=0;if((c[o>>2]|0)<20)g=+_b(Q+48|0,p,Q+120|0,Q+64|0);else g=0.0;f[d+192+(l<<4)+(e<<2)>>2]=g;l=l+1|0;if((l|0)==4)break;g=+f[I+76>>2]}e=e+1|0;if((e|0)==4)break b;g=+f[I+76>>2]}}while(0);c[d+268>>2]=c[I+80>>2];g=+f[d+(J<<6)+(L<<4)+(K<<2)>>2];x=+f[d+(J+1<<6)+(L<<4)+(K<<2)>>2];v=+f[d+(J+1<<6)+(L+1<<4)+(K<<2)>>2];w=+f[d+(J<<6)+(L+1<<4)+(K<<2)>>2];E=+f[d+(J<<6)+(L<<4)+(K+1<<2)>>2];D=+f[d+(J+1<<6)+(L<<4)+(K+1<<2)>>2];y=+f[d+(J+1<<6)+(L+1<<4)+(K+1<<2)>>2];z=+f[d+(J<<6)+(L+1<<4)+(K+1<<2)>>2];j=x-g+r*(v-w-(x-g))+q*(D-E+r*(y-z-(D-E))-(x-g+r*(v-w-(x-g))));i=w-g+n*(v-x-(w-g))+q*(z-E+n*(y-D-(z-E))-(w-g+n*(v-x-(w-g))));h=E-g+n*(D-x-(E-g))+r*(z-w+n*(y-v-(z-w))-(E-g+n*(D-x-(E-g))));k=1.0/+s(+(h*h+(j*j+i*i)));g=g+n*(x-g)+r*(w+n*(v-w)-(g+n*(x-g)));g=g+q*(E+n*(D-E)+r*(z+n*(y-z)-(E+n*(D-E)))-g)-m;if(!(g<0.0)){ea=Q;return}t=c[M+8>>2]|0;E=+f[N>>2]*(j*k)+ +f[N+4>>2]*(i*k)+ +f[N+8>>2]*(h*k);D=j*k*+f[N+16>>2]+i*k*+f[N+20>>2]+h*k*+f[N+24>>2];z=j*k*+f[N+32>>2]+i*k*+f[N+36>>2]+h*k*+f[N+40>>2];y=-(E*(+f[O+8>>2]-g*E)+D*(+f[O+12>>2]-g*D)+z*(+f[O+16>>2]-g*z));r=+f[O+88>>2];d=c[b+12>>2]|0;if(!d)q=0.0;else q=+f[d+344>>2];if(!(r+q>0.0)){ea=Q;return}if(!d)l=(c[(c[b+8>>2]|0)+8>>2]|0)+4|0;else l=d+4|0;if((a[24928]|0)==0?DC(24928)|0:0){d=25580;e=d+48|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));PB(24928)}e=c[b+12>>2]|0;k=+f[O+8>>2];w=k-+f[l+48>>2];m=+f[O+12>>2];x=m-+f[l+52>>2];n=+f[O+16>>2];v=n-+f[l+56>>2];if(!e){N=c[b+4>>2]|0;g=0.0;h=0.0;i=0.0;d=N;j=+f[N+452>>2]}else{i=+f[e+332>>2];h=+f[e+336>>2];R=+f[e+328>>2];d=c[b+4>>2]|0;j=+f[d+452>>2];g=(v*i-x*h+ +f[e+312>>2])*j;h=(+f[e+316>>2]+(w*h-v*R))*j;i=(x*R-w*i+ +f[e+320>>2])*j}k=k-+f[O+24>>2]-g;m=m-+f[O+28>>2]-h;R=n-+f[O+32>>2]-i;g=+f[d+316>>2]*+f[(c[(c[b+8>>2]|0)+8>>2]|0)+224>>2];Me(Q+120|0,j,r,q,(e|0)==0?25580:e+264|0,w,x,v);c[Q+32>>2]=c[Q+120>>2];c[Q+32+4>>2]=c[Q+120+4>>2];c[Q+32+8>>2]=c[Q+120+8>>2];c[Q+32+12>>2]=c[Q+120+12>>2];c[Q+16>>2]=c[Q+120+16>>2];c[Q+16+4>>2]=c[Q+120+16+4>>2];c[Q+16+8>>2]=c[Q+120+16+8>>2];c[Q+16+12>>2]=c[Q+120+16+12>>2];c[Q>>2]=c[Q+120+32>>2];c[Q+4>>2]=c[Q+120+32+4>>2];c[Q+8>>2]=c[Q+120+32+8>>2];c[Q+12>>2]=c[Q+120+32+12>>2];p=c[b+4>>2]|0;h=r*+f[p+452>>2];g=(R-z*(k*E+m*D+R*z))*(R-z*(k*E+m*D+R*z))+((k-E*(k*E+m*D+R*z))*(k-E*(k*E+m*D+R*z))+(m-D*(k*E+m*D+R*z))*(m-D*(k*E+m*D+R*z)))>2]|0)+8>>2]|0)+204>>2]&3|0)==0?p+324|0:p+328|0)>>2]|0;d=c[p+812>>2]|0;if((d|0)==(c[p+816>>2]|0)?(P=(d|0)==0?1:d<<1,(d|0)<(P|0)):0){if(!P)e=0;else{c[6747]=(c[6747]|0)+1;d=kb((P*104|3)+16|0)|0;if(!d)e=0;else{c[(d+4+15&-16)+-4>>2]=d;e=d+4+15&-16}d=c[p+812>>2]|0}if((d|0)>0){l=0;do{N=e+(l*104|0)|0;M=c[p+820>>2]|0;L=M+(l*104|0)|0;c[N>>2]=c[L>>2];c[N+4>>2]=c[L+4>>2];c[N+8>>2]=c[L+8>>2];c[N+12>>2]=c[L+12>>2];c[N+16>>2]=c[L+16>>2];c[N+20>>2]=c[L+20>>2];c[N+24>>2]=c[L+24>>2];N=e+(l*104|0)+28|0;L=M+(l*104|0)+28|0;c[N>>2]=c[L>>2];c[N+4>>2]=c[L+4>>2];c[N+8>>2]=c[L+8>>2];c[N+12>>2]=c[L+12>>2];N=M+(l*104|0)+44|0;L=e+(l*104|0)+44|0;c[L>>2]=c[N>>2];c[L+4>>2]=c[N+4>>2];c[L+8>>2]=c[N+8>>2];c[L+12>>2]=c[N+12>>2];L=M+(l*104|0)+60|0;N=e+(l*104|0)+60|0;c[N>>2]=c[L>>2];c[N+4>>2]=c[L+4>>2];c[N+8>>2]=c[L+8>>2];c[N+12>>2]=c[L+12>>2];N=e+(l*104|0)+76|0;M=M+(l*104|0)+76|0;c[N>>2]=c[M>>2];c[N+4>>2]=c[M+4>>2];c[N+8>>2]=c[M+8>>2];c[N+12>>2]=c[M+12>>2];c[N+16>>2]=c[M+16>>2];c[N+20>>2]=c[M+20>>2];c[N+24>>2]=c[M+24>>2];l=l+1|0}while((l|0)!=(d|0))}d=c[p+820>>2]|0;if(d|0){if(a[p+824>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[p+820>>2]=0}a[p+824>>0]=1;c[p+820>>2]=e;c[p+816>>2]=P;d=c[p+812>>2]|0}N=c[p+820>>2]|0;c[N+(d*104|0)>>2]=t;f[N+(d*104|0)+4>>2]=E;f[N+(d*104|0)+8>>2]=D;f[N+(d*104|0)+12>>2]=z;f[N+(d*104|0)+16>>2]=0.0;f[N+(d*104|0)+20>>2]=y;c[N+(d*104|0)+24>>2]=O;P=N+(d*104|0)+28|0;c[P>>2]=c[Q+32>>2];c[P+4>>2]=c[Q+32+4>>2];c[P+8>>2]=c[Q+32+8>>2];c[P+12>>2]=c[Q+32+12>>2];P=N+(d*104|0)+44|0;c[P>>2]=c[Q+16>>2];c[P+4>>2]=c[Q+16+4>>2];c[P+8>>2]=c[Q+16+8>>2];c[P+12>>2]=c[Q+16+12>>2];P=N+(d*104|0)+60|0;c[P>>2]=c[Q>>2];c[P+4>>2]=c[Q+4>>2];c[P+8>>2]=c[Q+8>>2];c[P+12>>2]=c[Q+12>>2];P=N+(d*104|0)+76|0;f[P>>2]=w;f[N+(d*104|0)+80>>2]=x;f[N+(d*104|0)+84>>2]=v;f[N+(d*104|0)+88>>2]=0.0;f[P+16>>2]=h;f[P+20>>2]=g;c[P+24>>2]=o;c[p+812>>2]=(c[p+812>>2]|0)+1;d=c[b+12>>2]|0;if(!d){ea=Q;return}if(c[d+204>>2]&3|0){ea=Q;return}if((c[d+216>>2]&-2|0)!=4)c[d+216>>2]=1;f[d+220>>2]=0.0;ea=Q;return}function Ab(b,d){b=b|0;d=+d;var e=0,g=0.0,h=0,i=0,j=0,k=0.0,l=0.0,m=0,n=0,o=0.0,p=0,q=0,r=0,t=0.0,u=0.0,v=0.0,w=0.0,x=0,y=0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0.0;q=ea;ea=ea+96|0;n=c[b+136>>2]|0;if(!n){ea=q;return}j=c[b+8>>2]|0;if((j|0)<(n|0)){if((c[b+12>>2]|0)<(n|0)){c[6747]=(c[6747]|0)+1;e=kb((n<<4|3)+16|0)|0;if(!e)i=0;else{c[(e+4+15&-16)+-4>>2]=e;i=e+4+15&-16}e=c[b+8>>2]|0;if((e|0)>0){h=0;do{m=i+(h<<4)|0;r=(c[b+16>>2]|0)+(h<<4)|0;c[m>>2]=c[r>>2];c[m+4>>2]=c[r+4>>2];c[m+8>>2]=c[r+8>>2];c[m+12>>2]=c[r+12>>2];h=h+1|0}while((h|0)!=(e|0))}e=c[b+16>>2]|0;if(e|0){if(a[b+20>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0)}c[b+16>>2]=0}a[b+20>>0]=1;c[b+16>>2]=i;c[b+12>>2]=n;h=b+16|0}else h=b+16|0;e=j;do{r=(c[h>>2]|0)+(e<<4)|0;c[r>>2]=c[q+48>>2];c[r+4>>2]=c[q+48+4>>2];c[r+8>>2]=c[q+48+8>>2];c[r+12>>2]=c[q+48+12>>2];e=e+1|0}while((e|0)!=(n|0))}c[b+8>>2]=n;j=c[b+28>>2]|0;if((j|0)<(n|0)){if((c[b+32>>2]|0)<(n|0)){c[6747]=(c[6747]|0)+1;e=kb((n<<4|3)+16|0)|0;if(!e)i=0;else{c[(e+4+15&-16)+-4>>2]=e;i=e+4+15&-16}e=c[b+28>>2]|0;if((e|0)>0){h=0;do{r=i+(h<<4)|0;m=(c[b+36>>2]|0)+(h<<4)|0;c[r>>2]=c[m>>2];c[r+4>>2]=c[m+4>>2];c[r+8>>2]=c[m+8>>2];c[r+12>>2]=c[m+12>>2];h=h+1|0}while((h|0)!=(e|0))}e=c[b+36>>2]|0;if(e|0){if(a[b+40>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0)}c[b+36>>2]=0}a[b+40>>0]=1;c[b+36>>2]=i;c[b+32>>2]=n;h=b+36|0}else h=b+36|0;e=j;do{r=(c[h>>2]|0)+(e<<4)|0;c[r>>2]=c[q+48>>2];c[r+4>>2]=c[q+48+4>>2];c[r+8>>2]=c[q+48+8>>2];c[r+12>>2]=c[q+48+12>>2];e=e+1|0}while((e|0)!=(n|0))}c[b+28>>2]=n;m=c[b+48>>2]|0;if((m|0)<(n|0)){do if((c[b+52>>2]|0)<(n|0)){c[6747]=(c[6747]|0)+1;e=kb((n<<2|3)+16|0)|0;if(!e)e=0;else{c[(e+4+15&-16)+-4>>2]=e;e=e+4+15&-16}h=c[b+48>>2]|0;i=c[b+56>>2]|0;if((h|0)<=0){if(!i){a[b+60>>0]=1;c[b+56>>2]=e;c[b+52>>2]=n;h=n<<2;break}}else{j=0;do{c[e+(j<<2)>>2]=c[i+(j<<2)>>2];j=j+1|0}while((j|0)!=(h|0))}if(a[b+60>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0)}a[b+60>>0]=1;c[b+56>>2]=e;c[b+52>>2]=n;h=n<<2}else{h=n<<2;e=c[b+56>>2]|0}while(0);hk(e+(m<<2)|0,0,h-(m<<2)|0)|0}c[b+48>>2]=n;m=c[b+68>>2]|0;if((m|0)<(n|0)){do if((c[b+72>>2]|0)<(n|0)){c[6747]=(c[6747]|0)+1;e=kb((n<<2|3)+16|0)|0;if(!e)e=0;else{c[(e+4+15&-16)+-4>>2]=e;e=e+4+15&-16}h=c[b+68>>2]|0;i=c[b+76>>2]|0;if((h|0)<=0){if(!i){a[b+80>>0]=1;c[b+76>>2]=e;c[b+72>>2]=n;h=n<<2;break}}else{j=0;do{c[e+(j<<2)>>2]=c[i+(j<<2)>>2];j=j+1|0}while((j|0)!=(h|0))}if(a[b+80>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0)}a[b+80>>0]=1;c[b+76>>2]=e;c[b+72>>2]=n;h=n<<2}else{h=n<<2;e=c[b+76>>2]|0}while(0);hk(e+(m<<2)|0,0,h-(m<<2)|0)|0}c[b+68>>2]=n;e=c[b+136>>2]|0;if((e|0)<=0){ea=q;return}h=c[b+76>>2]|0;i=c[b+56>>2]|0;j=0;do{f[h+(j<<2)>>2]=0.0;f[i+(j<<2)>>2]=0.0;j=j+1|0}while((j|0)!=(e|0));j=0;do{h=c[b+144>>2]|0;i=c[h+(j*284|0)+88>>2]|0;if(i){x=h+(j*284|0)+92|0;c[q+48>>2]=c[x>>2];c[q+48+4>>2]=c[x+4>>2];c[q+48+8>>2]=c[x+8>>2];c[q+48+12>>2]=c[x+12>>2];x=h+(j*284|0)+108|0;c[q+48+16>>2]=c[x>>2];c[q+48+16+4>>2]=c[x+4>>2];c[q+48+16+8>>2]=c[x+8>>2];c[q+48+16+12>>2]=c[x+12>>2];x=h+(j*284|0)+124|0;c[q+48+32>>2]=c[x>>2];c[q+48+32+4>>2]=c[x+4>>2];c[q+48+32+8>>2]=c[x+8>>2];c[q+48+32+12>>2]=c[x+12>>2];x=c[b+120>>2]|0;e=c[q+48+16+(x<<2)>>2]|0;y=c[q+48+32+(x<<2)>>2]|0;m=c[b+36>>2]|0;c[m+(j<<4)>>2]=c[q+48+(x<<2)>>2];c[m+(j<<4)+4>>2]=e;c[m+(j<<4)+8>>2]=y;f[m+(j<<4)+12>>2]=0.0;m=c[b+36>>2]|0;y=m+(j<<4)|0;z=+f[y>>2];e=h+(j*284|0)|0;g=+f[e>>2];x=m+(j<<4)+4|0;w=+f[x>>2];r=h+(j*284|0)+4|0;k=+f[r>>2];m=m+(j<<4)+8|0;t=+f[m>>2];n=h+(j*284|0)+8|0;v=+f[n>>2];l=z-g*(z*g+w*k+t*v);u=w-k*(z*g+w*k+t*v);v=t-v*(z*g+w*k+t*v);t=1.0/+s(+(v*v+(l*l+u*u)));f[y>>2]=l*t;f[x>>2]=u*t;f[m>>2]=v*t;k=+f[r>>2];w=+f[n>>2];g=+f[e>>2];e=c[b+16>>2]|0;f[e+(j<<4)>>2]=k*(v*t)-w*(u*t);f[e+(j<<4)+4>>2]=w*(l*t)-v*t*g;f[e+(j<<4)+8>>2]=u*t*g-k*(l*t);f[e+(j<<4)+12>>2]=0.0;e=c[b+16>>2]|0;n=e+(j<<4)|0;t=+f[n>>2];r=e+(j<<4)+4|0;l=+f[r>>2];e=e+(j<<4)+8|0;k=+f[e>>2];g=1.0/+s(+(t*t+l*l+k*k));f[n>>2]=t*g;f[r>>2]=l*g;f[e>>2]=k*g;e=c[b+116>>2]|0;r=c[b+36>>2]|0;g=+f[r+(j<<4)>>2];k=+f[r+(j<<4)+4>>2];l=+f[r+(j<<4)+8>>2];if(g*g+k*k+l*l>1.100000023841858)g=0.0;else{C=+f[h+(j*284|0)+16>>2];G=C-+f[e+52>>2];E=+f[h+(j*284|0)+20>>2];I=E-+f[e+56>>2];J=+f[h+(j*284|0)+24>>2];L=J-+f[e+60>>2];C=C-+f[i+52>>2];E=E-+f[i+56>>2];J=J-+f[i+60>>2];F=+f[e+332>>2];M=+f[e+336>>2];H=+f[e+328>>2];B=+f[i+332>>2];K=+f[i+336>>2];D=+f[i+328>>2];A=(l*I-k*L)*+f[e+4>>2]+(g*L-l*G)*+f[e+20>>2]+(k*G-g*I)*+f[e+36>>2];t=(l*I-k*L)*+f[e+8>>2]+(g*L-l*G)*+f[e+24>>2]+(k*G-g*I)*+f[e+40>>2];u=(l*I-k*L)*+f[e+12>>2]+(g*L-l*G)*+f[e+28>>2]+(k*G-g*I)*+f[e+44>>2];v=(E*-l-J*-k)*+f[i+4>>2]+(J*-g-C*-l)*+f[i+20>>2]+(C*-k-E*-g)*+f[i+36>>2];w=(E*-l-J*-k)*+f[i+8>>2]+(J*-g-C*-l)*+f[i+24>>2]+(C*-k-E*-g)*+f[i+40>>2];z=(E*-l-J*-k)*+f[i+12>>2]+(J*-g-C*-l)*+f[i+28>>2]+(C*-k-E*-g)*+f[i+44>>2];g=(g*(L*F-I*M+ +f[e+312>>2]-(J*B-E*K+ +f[i+312>>2]))+k*(+f[e+316>>2]+(G*M-L*H)-(+f[i+316>>2]+(C*K-J*D)))+l*(I*H-G*F+ +f[e+320>>2]-(E*D-C*B+ +f[i+320>>2])))*-.20000000298023224*(1.0/(+f[i+344>>2]+(+f[e+344>>2]+(A*(A*+f[e+396>>2])+t*(t*+f[e+400>>2])+u*(u*+f[e+404>>2])))+(v*(v*+f[i+396>>2])+w*(w*+f[i+400>>2])+z*(z*+f[i+404>>2]))))}f[(c[b+76>>2]|0)+(j<<2)>>2]=g;e=c[b+136>>2]|0}j=j+1|0}while((j|0)<(e|0));if((e|0)<=0){ea=q;return}i=c[b+144>>2]|0;h=0;m=0;while(1){e=c[i+(m*284|0)+88>>2]|0;if(e){g=+f[i+(m*284|0)+252>>2];if(g!=0.0){e=i;g=g*d}else{M=+f[i+(m*284|0)+256>>2];M=M==0.0?0.0:M;y=c[b+116>>2]|0;x=c[b+16>>2]|0;G=+f[i+(m*284|0)+16>>2];E=+f[i+(m*284|0)+20>>2];A=+f[i+(m*284|0)+24>>2];w=+f[x+(m<<4)>>2];D=+f[x+(m<<4)+4>>2];g=+f[x+(m<<4)+8>>2];O=G-+f[y+52>>2];P=E-+f[y+56>>2];k=A-+f[y+60>>2];l=+f[y+264>>2]*(P*g-k*D)+ +f[y+280>>2]*(k*w-O*g)+(O*D-P*w)*+f[y+296>>2];Q=(P*g-k*D)*+f[y+268>>2]+(k*w-O*g)*+f[y+284>>2]+(O*D-P*w)*+f[y+300>>2];N=(P*g-k*D)*+f[y+272>>2]+(k*w-O*g)*+f[y+288>>2]+(O*D-P*w)*+f[y+304>>2];K=G-+f[e+52>>2];I=E-+f[e+56>>2];C=A-+f[e+60>>2];v=(D*K-w*I)*+f[e+296>>2]+(+f[e+264>>2]*(g*I-D*C)+ +f[e+280>>2]*(w*C-g*K));t=(g*I-D*C)*+f[e+268>>2]+(w*C-g*K)*+f[e+284>>2]+(D*K-w*I)*+f[e+300>>2];u=(g*I-D*C)*+f[e+272>>2]+(w*C-g*K)*+f[e+288>>2]+(D*K-w*I)*+f[e+304>>2];G=G-+f[y+52>>2];E=E-+f[y+56>>2];A=A-+f[y+60>>2];H=+f[y+332>>2];z=+f[y+336>>2];F=+f[y+328>>2];L=+f[e+332>>2];B=+f[e+336>>2];J=+f[e+328>>2];g=-(1.0/(+f[y+344>>2]+(g*(P*l-O*Q)+(w*(k*Q-P*N)+D*(O*N-k*l)))+(+f[e+344>>2]+(g*(I*v-K*t)+(w*(C*t-I*u)+D*(K*u-C*v)))))*((A*H-E*z+ +f[y+312>>2]-(C*L-I*B+ +f[e+312>>2]))*w+(+f[y+316>>2]+(G*z-A*F)-(+f[e+316>>2]+(K*B-C*J)))*D+(E*F-G*H+ +f[y+320>>2]-(I*J-K*L+ +f[e+320>>2]))*g));g=M>2]|0;g=g<-M?-M:g}y=(c[b+56>>2]|0)+(m<<2)|0;f[y>>2]=0.0;j=e+(m*284|0)+280|0;f[j>>2]=1.0;l=+f[i+(m*284|0)+276>>2]*d*+f[i+(m*284|0)+228>>2];f[y>>2]=g;k=g*.5;g=+f[(c[b+76>>2]|0)+(m<<2)>>2];if(k*k+g*g>l*l){Q=l/+s(+(k*k+g*g));f[j>>2]=Q*+f[j>>2];h=1}}else{f[(c[b+56>>2]|0)+(m<<2)>>2]=0.0;f[i+(m*284|0)+280>>2]=1.0;e=i}m=m+1|0;j=c[b+136>>2]|0;if((m|0)>=(j|0))break;else i=e}if(h&(j|0)>0){e=c[b+76>>2]|0;i=0;do{h=e+(i<<2)|0;if(+f[h>>2]!=0.0?(p=(c[b+144>>2]|0)+(i*284|0)+280|0,o=+f[p>>2],o<1.0):0){y=(c[b+56>>2]|0)+(i<<2)|0;f[y>>2]=o*+f[y>>2];f[h>>2]=+f[p>>2]*+f[h>>2]}i=i+1|0}while((i|0)!=(j|0))}if((j|0)<=0){ea=q;return}n=0;do{h=c[b+144>>2]|0;e=c[b+116>>2]|0;i=h+(n*284|0)+16|0;k=+f[i>>2]-+f[e+52>>2];m=h+(n*284|0)+20|0;d=+f[m>>2]-+f[e+56>>2];j=h+(n*284|0)+24|0;l=+f[j>>2]-+f[e+60>>2];f[q+48>>2]=k;f[q+48+4>>2]=d;f[q+48+8>>2]=l;f[q+48+12>>2]=0.0;g=+f[(c[b+56>>2]|0)+(n<<2)>>2];if(g!=0.0){y=c[b+16>>2]|0;P=g*+f[y+(n<<4)+4>>2];Q=g*+f[y+(n<<4)+8>>2];f[q+32>>2]=g*+f[y+(n<<4)>>2];f[q+32+4>>2]=P;f[q+32+8>>2]=Q;f[q+32+12>>2]=0.0;uk(e,q+32|0,q+48|0)}g=+f[(c[b+76>>2]|0)+(n<<2)>>2];if(g!=0.0){y=c[(c[b+144>>2]|0)+(n*284|0)+88>>2]|0;P=+f[m>>2]-+f[y+56>>2];O=+f[j>>2]-+f[y+60>>2];f[q+32>>2]=+f[i>>2]-+f[y+52>>2];f[q+32+4>>2]=P;f[q+32+8>>2]=O;f[q+32+12>>2]=0.0;x=c[b+36>>2]|0;O=+f[x+(n<<4)>>2]*g;P=g*+f[x+(n<<4)+4>>2];Q=g*+f[x+(n<<4)+8>>2];f[q+16>>2]=O;f[q+16+4>>2]=P;f[q+16+8>>2]=Q;f[q+16+12>>2]=0.0;x=c[b+116>>2]|0;r=c[b+124>>2]|0;K=+f[x+4+(r<<2)>>2];L=+f[x+20+(r<<2)>>2];M=+f[x+36+(r<<2)>>2];N=(K*k+L*d+M*l)*(1.0-+f[h+(n*284|0)+244>>2]);f[q+48>>2]=k-K*N;f[q+48+4>>2]=d-L*N;f[q+48+8>>2]=l-M*N;uk(x,q+16|0,q+48|0);f[q>>2]=-O;f[q+4>>2]=-P;f[q+8>>2]=-Q;f[q+12>>2]=0.0;uk(y,q,q+32|0)}n=n+1|0}while((n|0)<(c[b+136>>2]|0));ea=q;return}function Bb(b,e,g,h,i,j,k){b=b|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0.0,m=0.0,n=0.0,o=0,p=0,q=0.0,r=0.0,t=0,u=0,v=0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0;v=ea;ea=ea+9824|0;o=j;p=o+36|0;do{c[o>>2]=0;o=o+4|0}while((o|0)<(p|0));c[v+9680>>2]=b;c[v+9680+4>>2]=g;F=+f[h>>2];L=+f[e>>2];E=+f[h+16>>2];K=+f[e+16>>2];D=+f[h+32>>2];J=+f[e+32>>2];I=+f[e+4>>2];H=+f[e+20>>2];G=+f[e+36>>2];z=+f[e+8>>2];x=+f[e+24>>2];l=+f[e+40>>2];C=+f[h+4>>2];B=+f[h+20>>2];A=+f[h+36>>2];y=+f[h+8>>2];w=+f[h+24>>2];m=+f[h+40>>2];f[v+9680+8>>2]=F*L+E*K+D*J;f[v+9680+12>>2]=F*I+E*H+D*G;f[v+9680+16>>2]=F*z+E*x+D*l;f[v+9680+20>>2]=0.0;f[v+9680+24>>2]=L*C+K*B+J*A;f[v+9680+28>>2]=I*C+H*B+G*A;f[v+9680+32>>2]=z*C+x*B+l*A;f[v+9680+36>>2]=0.0;f[v+9680+40>>2]=L*y+K*w+J*m;f[v+9680+44>>2]=I*y+H*w+G*m;f[v+9680+48>>2]=z*y+x*w+l*m;f[v+9680+52>>2]=0.0;N=+f[h+48>>2]-+f[e+48>>2];M=+f[h+52>>2]-+f[e+52>>2];q=+f[h+56>>2]-+f[e+56>>2];n=N*+f[e>>2]+M*+f[e+16>>2]+q*+f[e+32>>2];r=N*+f[e+4>>2]+M*+f[e+20>>2]+q*+f[e+36>>2];q=N*+f[e+8>>2]+M*+f[e+24>>2]+q*+f[e+40>>2];f[v+9680+56>>2]=F*L+E*K+D*J;f[v+9680+60>>2]=L*C+K*B+J*A;f[v+9680+64>>2]=L*y+K*w+J*m;f[v+9680+68>>2]=0.0;f[v+9680+72>>2]=F*I+E*H+D*G;f[v+9680+76>>2]=I*C+H*B+G*A;f[v+9680+80>>2]=I*y+H*w+G*m;f[v+9680+84>>2]=0.0;f[v+9680+88>>2]=F*z+E*x+D*l;f[v+9680+92>>2]=z*C+x*B+l*A;f[v+9680+96>>2]=z*y+x*w+l*m;f[v+9680+100>>2]=0.0;f[v+9680+104>>2]=n;f[v+9680+108>>2]=r;f[v+9680+112>>2]=q;f[v+9680+116>>2]=0.0;c[v+9680+120>>2]=k?83:82;c[v+9680+124>>2]=0;c[v+9296+364>>2]=0;c[v+9296+128>>2]=0;c[v+9296+128+4>>2]=0;c[v+9296+128+8>>2]=0;c[v+9296+128+12>>2]=0;c[v+9296+376>>2]=2;c[v+9296+368>>2]=0;f[v+9296+144>>2]=0.0;q=-+f[i+4>>2];r=-+f[i+8>>2];f[v+9808>>2]=-+f[i>>2];f[v+9808+4>>2]=q;f[v+9808+8>>2]=r;f[v+9808+12>>2]=0.0;switch(Db(v+9296|0,v+9680|0,v+9808|0)|0){case 1:{c[v+9280>>2]=0;c[v+9280+4>>2]=0;c[v+9280+8>>2]=0;c[v+9280+12>>2]=0;c[v>>2]=9;c[v+9276>>2]=0;c[v+40>>2]=0;c[v+40+4>>2]=0;c[v+40+8>>2]=0;c[v+40+12>>2]=0;c[v+40+16>>2]=0;g=0;do{k=128-g+-1|0;c[v+2108+(k*56|0)+44>>2]=0;b=c[v+9288>>2]|0;c[v+2108+(k*56|0)+48>>2]=b;if(b|0)c[b+44>>2]=v+2108+(k*56|0);c[v+9288>>2]=v+2108+(k*56|0);g=g+1|0}while((g|0)!=128);c[v+9292>>2]=128;n=+f[i>>2];q=+f[i+4>>2];m=+f[i+8>>2];t=c[v+9296+372>>2]|0;do if((c[t+32>>2]|0)>>>0>1?Rb(v+9296|0)|0:0){b=c[v+9280>>2]|0;if(b|0){o=c[v+9284>>2]|0;p=c[v+9292>>2]|0;do{k=b+44|0;h=b+48|0;g=c[h>>2]|0;if(g|0)c[g+44>>2]=c[k>>2];g=c[k>>2]|0;if(g|0)c[g+48>>2]=c[h>>2];if((c[v+9280>>2]|0)==(b|0))c[v+9280>>2]=c[h>>2];o=o+-1|0;c[b+44>>2]=0;c[h>>2]=c[v+9288>>2];g=c[v+9288>>2]|0;if(g|0)c[g+44>>2]=b;c[v+9288>>2]=b;p=p+1|0;b=c[v+9280>>2]|0}while((b|0)!=0);c[v+9284>>2]=o;c[v+9292>>2]=p}c[v>>2]=0;c[v+9276>>2]=0;b=c[t>>2]|0;g=c[t+12>>2]|0;N=+f[g+16>>2];F=+f[b+16>>2]-N;H=+f[g+20>>2];I=+f[b+20>>2]-H;K=+f[g+24>>2];L=+f[b+24>>2]-K;g=c[t+4>>2]|0;J=+f[g+16>>2]-N;M=+f[g+20>>2]-H;G=+f[g+24>>2]-K;k=c[t+8>>2]|0;N=+f[k+16>>2]-N;H=+f[k+20>>2]-H;K=+f[k+24>>2]-K;if(F*M*K+(I*G*N+L*J*H-F*G*H-I*J*K)-L*M*N<0.0){c[t>>2]=g;c[t+4>>2]=b;h=c[t+16>>2]|0;c[t+16>>2]=c[t+20>>2];c[t+20>>2]=h;h=g}else{h=b;b=g}h=Ud(v,h,b,k,1)|0;o=Ud(v,c[t+4>>2]|0,c[t>>2]|0,c[t+12>>2]|0,1)|0;p=Ud(v,c[t+8>>2]|0,c[t+4>>2]|0,c[t+12>>2]|0,1)|0;i=Ud(v,c[t>>2]|0,c[t+8>>2]|0,c[t+12>>2]|0,1)|0;if((c[v+9284>>2]|0)==4){g=c[v+9280>>2]|0;l=+f[g+16>>2];b=c[g+48>>2]|0;if(b){m=l*l;k=g;while(1){l=+f[b+16>>2];g=l*l>2]|0;if(!b)break;else m=g?l*l:m}g=k;l=+f[k+16>>2]}r=+f[g>>2];q=+f[g+4>>2];n=+f[g+8>>2];m=+f[g+12>>2];b=c[g+20>>2]|0;k=c[g+24>>2]|0;t=c[g+28>>2]|0;a[h+52>>0]=0;c[h+32>>2]=o;a[o+52>>0]=0;c[o+32>>2]=h;a[h+53>>0]=0;c[h+36>>2]=p;a[p+52>>0]=1;c[p+32>>2]=h;a[h+54>>0]=0;c[h+40>>2]=i;a[i+52>>0]=2;c[i+32>>2]=h;a[o+53>>0]=2;c[o+36>>2]=i;a[i+54>>0]=1;c[i+40>>2]=o;a[o+54>>0]=1;c[o+40>>2]=p;a[p+53>>0]=2;c[p+36>>2]=o;a[p+54>>0]=1;c[p+40>>2]=i;a[i+53>>0]=2;c[i+36>>2]=p;c[v>>2]=0;i=g;o=b;h=k;p=t;t=0;while(1){b=c[v+9276>>2]|0;if(b>>>0>=64){u=45;break}c[v+9808>>2]=0;c[v+9808+4>>2]=0;c[v+9808+8>>2]=0;c[v+9276>>2]=b+1;t=t+1|0;a[i+55>>0]=t;g=i+4|0;k=i+8|0;Og(v+9296|0,+f[i>>2],+f[g>>2],+f[k>>2],v+60+(b<<5)|0);if(!(+f[i>>2]*+f[v+60+(b<<5)+16>>2]+ +f[g>>2]*+f[v+60+(b<<5)+20>>2]+ +f[k>>2]*+f[v+60+(b<<5)+24>>2]-+f[i+16>>2]>9.999999747378752e-05)){b=7;u=44;break}k=0;do{g=xg(v,t,v+60+(b<<5)|0,c[i+32+(k<<2)>>2]|0,d[i+52+k>>0]|0,v+9808|0)|0;k=k+1|0}while(g&k>>>0<3);if(!(g&(c[v+9808+8>>2]|0)>>>0>2)){b=4;u=44;break}k=c[v+9808>>2]|0;g=c[v+9808+4>>2]|0;a[k+53>>0]=2;c[k+36>>2]=g;a[g+54>>0]=1;c[g+40>>2]=k;g=i+44|0;k=i+48|0;b=c[k>>2]|0;if(b|0)c[b+44>>2]=c[g>>2];b=c[g>>2]|0;if(b|0)c[b+48>>2]=c[k>>2];if((c[v+9280>>2]|0)==(i|0))c[v+9280>>2]=c[k>>2];c[v+9284>>2]=(c[v+9284>>2]|0)+-1;c[i+44>>2]=0;c[k>>2]=c[v+9288>>2];b=c[v+9288>>2]|0;if(b|0)c[b+44>>2]=i;c[v+9288>>2]=i;c[v+9292>>2]=(c[v+9292>>2]|0)+1;g=c[v+9280>>2]|0;l=+f[g+16>>2];b=c[g+48>>2]|0;if(b){m=l*l;k=g;while(1){l=+f[b+16>>2];g=l*l>2]|0;if(!b)break;else m=g?l*l:m}g=k;l=+f[k+16>>2]}r=+f[g>>2];q=+f[g+4>>2];n=+f[g+8>>2];m=+f[g+12>>2];k=c[g+20>>2]|0;h=c[g+24>>2]|0;b=c[g+28>>2]|0;if(t>>>0>=255){g=h;break}else{i=g;o=k;p=b}}if((u|0)==44){c[v>>2]=b;k=o;g=h;b=p}else if((u|0)==45){c[v>>2]=6;k=o;g=h;b=p}J=r*l;H=q*l;N=n*l;f[v+40>>2]=r;f[v+44>>2]=q;f[v+48>>2]=n;f[v+52>>2]=m;f[v+56>>2]=l;c[v+36>>2]=3;c[v+4>>2]=k;c[v+8>>2]=g;c[v+12>>2]=b;t=g;K=+f[t+16>>2]-J;F=+f[t+20>>2]-H;I=+f[t+24>>2]-N;i=b;E=+f[i+16>>2]-J;G=+f[i+20>>2]-H;L=+f[i+24>>2]-N;L=+s(+((K*G-F*E)*(K*G-F*E)+((F*L-I*G)*(F*L-I*G)+(I*E-K*L)*(I*E-K*L))));f[v+20>>2]=L;K=+f[i+16>>2]-J;E=+f[i+20>>2]-H;I=+f[i+24>>2]-N;i=k;G=+f[i+16>>2]-J;F=+f[i+20>>2]-H;M=+f[i+24>>2]-N;M=+s(+((K*F-E*G)*(K*F-E*G)+((E*M-I*F)*(E*M-I*F)+(I*G-K*M)*(I*G-K*M))));f[v+24>>2]=M;K=+f[i+16>>2]-J;G=+f[i+20>>2]-H;I=+f[i+24>>2]-N;J=+f[t+16>>2]-J;H=+f[t+20>>2]-H;N=+f[t+24>>2]-N;N=+s(+((K*H-G*J)*(K*H-G*J)+((G*N-I*H)*(G*N-I*H)+(I*J-K*N)*(I*J-K*N))));f[v+20>>2]=L/(L+M+N);f[v+24>>2]=M/(L+M+N);f[v+28>>2]=N/(L+M+N);if((c[v>>2]|0)!=9)if(!(c[v+36>>2]|0)){n=0.0;m=0.0;l=0.0;break}else{h=v+36|0;u=54;break}c[j>>2]=3;e=0;ea=v;return e|0}else u=48}else u=48;while(0);if((u|0)==48){c[v>>2]=8;f[v+40>>2]=n;f[v+44>>2]=q;f[v+48>>2]=m;f[v+52>>2]=0.0;l=+s(+(n*n+q*q+m*m));if(l>0.0){f[v+40>>2]=1.0/l*n;f[v+44>>2]=1.0/l*q;f[v+48>>2]=1.0/l*m}else{c[v+40>>2]=1065353216;c[v+44>>2]=0;c[v+48>>2]=0}f[v+52>>2]=0.0;f[v+56>>2]=0.0;c[v+36>>2]=1;c[v+4>>2]=c[t>>2];f[v+20>>2]=1.0;h=v+36|0;u=54}if((u|0)==54){l=0.0;m=0.0;n=0.0;k=0;do{b=c[v+9680+120>>2]|0;u=c[v+9680+124>>2]|0;g=(c[v+9680>>2]|0)+(1?u>>1:u)|0;if(u&1)b=c[(c[g>>2]|0)+b>>2]|0;Ma[b&127](v+9808|0,g,c[v+4+(k<<2)>>2]|0);N=+f[v+20+(k<<2)>>2];l=l+ +f[v+9808>>2]*N;m=m+N*+f[v+9808+4>>2];n=n+N*+f[v+9808+8>>2];k=k+1|0}while(k>>>0<(c[h>>2]|0)>>>0)}c[j>>2]=1;N=l*+f[e+16>>2]+m*+f[e+20>>2]+n*+f[e+24>>2]+ +f[e+52>>2];K=l*+f[e+32>>2]+m*+f[e+36>>2]+n*+f[e+40>>2]+ +f[e+56>>2];f[j+4>>2]=l*+f[e>>2]+m*+f[e+4>>2]+n*+f[e+8>>2]+ +f[e+48>>2];f[j+8>>2]=N;f[j+12>>2]=K;f[j+16>>2]=0.0;K=+f[v+40>>2];N=+f[v+56>>2];L=+f[v+44>>2];M=+f[v+48>>2];F=l-K*N;G=m-N*L;H=n-N*M;I=F*+f[e+16>>2]+G*+f[e+20>>2]+H*+f[e+24>>2]+ +f[e+52>>2];J=F*+f[e+32>>2]+G*+f[e+36>>2]+H*+f[e+40>>2]+ +f[e+56>>2];f[j+20>>2]=F*+f[e>>2]+G*+f[e+4>>2]+H*+f[e+8>>2]+ +f[e+48>>2];f[j+24>>2]=I;f[j+28>>2]=J;f[j+32>>2]=0.0;f[j+36>>2]=-K;f[j+40>>2]=-L;f[j+44>>2]=-M;f[j+48>>2]=0.0;f[j+52>>2]=-N;e=1;ea=v;return e|0}case 2:{c[j>>2]=2;e=0;ea=v;return e|0}default:{e=0;ea=v;return e|0}}return 0}function Cb(b){b=b|0;var d=0.0,e=0,g=0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0.0;x=ea;ea=ea+176|0;if(!(a[b+738>>0]|0)){ea=x;return}f[b+36>>2]=0.0;f[b+744>>2]=0.0;if(!(a[b+736>>0]|0)){e=c[b+28>>2]|0;l=+f[b+600>>2];m=+f[b+604>>2];t=+f[b+608>>2];v=l*+f[e+20>>2]+m*+f[e+24>>2]+t*+f[e+28>>2]+ +f[e+56>>2];g=c[b+32>>2]|0;n=+f[b+664>>2];o=+f[b+668>>2];q=+f[b+672>>2];w=n*+f[g+20>>2]+o*+f[g+24>>2]+q*+f[g+28>>2]+ +f[g+56>>2];u=n*+f[g+36>>2]+o*+f[g+40>>2]+q*+f[g+44>>2]+ +f[g+60>>2];p=l*+f[e+4>>2]+m*+f[e+8>>2]+t*+f[e+12>>2]+ +f[e+52>>2];t=l*+f[e+36>>2]+m*+f[e+40>>2]+t*+f[e+44>>2]+ +f[e+60>>2];q=n*+f[g+4>>2]+o*+f[g+8>>2]+q*+f[g+12>>2]+ +f[g+52>>2];if((q-p)*(q-p)+(w-v)*(w-v)+(u-t)*(u-t)>1.1920928955078125e-07){k=1.0/+s(+((q-p)*(q-p)+(w-v)*(w-v)+(u-t)*(u-t)));f[x>>2]=(q-p)*k;f[x+4>>2]=(w-v)*k;f[x+8>>2]=(u-t)*k;c[x+12>>2]=0;j=(u-t)*k;d=(w-v)*k;k=(q-p)*k}else{c[x>>2]=1065353216;c[x+4>>2]=0;c[x+8>>2]=0;f[x+12>>2]=0.0;j=0.0;d=0.0;k=1.0}if(+r(+j)>.7071067690849304){y=j*j+d*d;o=1.0/+s(+y);n=-(j*o);d=d*o;i=d;l=k*n;m=0.0;o=y*o;d=-(k*d)}else{m=k*k+d*d;l=1.0/+s(+m);d=-(d*l);o=k*l;i=0.0;l=m*l;m=d;n=o;o=-(j*o);d=j*d}f[x+16>>2]=m;f[x+20>>2]=n;f[x+24>>2]=i;f[x+32>>2]=o;f[x+36>>2]=d;f[x+40>>2]=l;e=c[b+28>>2]|0;c[x+128>>2]=c[e+4>>2];c[x+128+4>>2]=c[e+20>>2];c[x+128+8>>2]=c[e+36>>2];f[x+128+12>>2]=0.0;c[x+128+16>>2]=c[e+8>>2];c[x+128+20>>2]=c[e+24>>2];c[x+128+24>>2]=c[e+40>>2];f[x+128+28>>2]=0.0;c[x+128+32>>2]=c[e+12>>2];c[x+128+36>>2]=c[e+28>>2];c[x+128+40>>2]=c[e+44>>2];f[x+128+44>>2]=0.0;g=c[b+32>>2]|0;c[x+80>>2]=c[g+4>>2];c[x+80+4>>2]=c[g+20>>2];c[x+80+8>>2]=c[g+36>>2];f[x+80+12>>2]=0.0;c[x+80+16>>2]=c[g+8>>2];c[x+80+20>>2]=c[g+24>>2];c[x+80+24>>2]=c[g+40>>2];f[x+80+28>>2]=0.0;c[x+80+32>>2]=c[g+12>>2];c[x+80+36>>2]=c[g+28>>2];c[x+80+40>>2]=c[g+44>>2];f[x+80+44>>2]=0.0;y=v-+f[e+56>>2];o=t-+f[e+60>>2];f[x+64>>2]=p-+f[e+52>>2];f[x+64+4>>2]=y;f[x+64+8>>2]=o;f[x+64+12>>2]=0.0;o=w-+f[g+56>>2];y=u-+f[g+60>>2];f[x+48>>2]=q-+f[g+52>>2];f[x+48+4>>2]=o;f[x+48+8>>2]=y;f[x+48+12>>2]=0.0;_f(b+48|0,x+128|0,x+80|0,x+64|0,x+48|0,x,e+396|0,+f[e+344>>2],g+396|0,+f[g+344>>2]);g=c[b+28>>2]|0;c[x+128>>2]=c[g+4>>2];c[x+128+4>>2]=c[g+20>>2];c[x+128+8>>2]=c[g+36>>2];f[x+128+12>>2]=0.0;c[x+128+16>>2]=c[g+8>>2];c[x+128+20>>2]=c[g+24>>2];c[x+128+24>>2]=c[g+40>>2];f[x+128+28>>2]=0.0;c[x+128+32>>2]=c[g+12>>2];c[x+128+36>>2]=c[g+28>>2];c[x+128+40>>2]=c[g+44>>2];f[x+128+44>>2]=0.0;e=c[b+32>>2]|0;c[x+80>>2]=c[e+4>>2];c[x+80+4>>2]=c[e+20>>2];c[x+80+8>>2]=c[e+36>>2];f[x+80+12>>2]=0.0;c[x+80+16>>2]=c[e+8>>2];c[x+80+20>>2]=c[e+24>>2];c[x+80+24>>2]=c[e+40>>2];f[x+80+28>>2]=0.0;c[x+80+32>>2]=c[e+12>>2];c[x+80+36>>2]=c[e+28>>2];c[x+80+40>>2]=c[e+44>>2];f[x+80+44>>2]=0.0;y=v-+f[g+56>>2];o=t-+f[g+60>>2];f[x+64>>2]=p-+f[g+52>>2];f[x+64+4>>2]=y;f[x+64+8>>2]=o;f[x+64+12>>2]=0.0;o=w-+f[e+56>>2];y=u-+f[e+60>>2];f[x+48>>2]=q-+f[e+52>>2];f[x+48+4>>2]=o;f[x+48+8>>2]=y;f[x+48+12>>2]=0.0;_f(b+132|0,x+128|0,x+80|0,x+64|0,x+48|0,x+16|0,g+396|0,+f[g+344>>2],e+396|0,+f[e+344>>2]);e=c[b+28>>2]|0;c[x+128>>2]=c[e+4>>2];c[x+128+4>>2]=c[e+20>>2];c[x+128+8>>2]=c[e+36>>2];f[x+128+12>>2]=0.0;c[x+128+16>>2]=c[e+8>>2];c[x+128+20>>2]=c[e+24>>2];c[x+128+24>>2]=c[e+40>>2];f[x+128+28>>2]=0.0;c[x+128+32>>2]=c[e+12>>2];c[x+128+36>>2]=c[e+28>>2];c[x+128+40>>2]=c[e+44>>2];f[x+128+44>>2]=0.0;g=c[b+32>>2]|0;c[x+80>>2]=c[g+4>>2];c[x+80+4>>2]=c[g+20>>2];c[x+80+8>>2]=c[g+36>>2];f[x+80+12>>2]=0.0;c[x+80+16>>2]=c[g+8>>2];c[x+80+20>>2]=c[g+24>>2];c[x+80+24>>2]=c[g+40>>2];f[x+80+28>>2]=0.0;c[x+80+32>>2]=c[g+12>>2];c[x+80+36>>2]=c[g+28>>2];c[x+80+40>>2]=c[g+44>>2];f[x+80+44>>2]=0.0;v=v-+f[e+56>>2];y=t-+f[e+60>>2];f[x+64>>2]=p-+f[e+52>>2];f[x+64+4>>2]=v;f[x+64+8>>2]=y;f[x+64+12>>2]=0.0;w=w-+f[g+56>>2];y=u-+f[g+60>>2];f[x+48>>2]=q-+f[g+52>>2];f[x+48+4>>2]=w;f[x+48+8>>2]=y;f[x+48+12>>2]=0.0;_f(b+216|0,x+128|0,x+80|0,x+64|0,x+48|0,x+32|0,e+396|0,+f[e+344>>2],g+396|0,+f[g+344>>2])}e=c[b+560>>2]|0;g=c[b+576>>2]|0;p=+f[b+592>>2];if(+r(+p)>.7071067690849304){n=(c[h>>2]=g,+f[h>>2]);o=1.0/+s(+(p*p+n*n));y=(c[h>>2]=e,+f[h>>2]);d=n;i=y;j=0.0;k=o*n;l=-(p*o);m=(p*p+n*n)*o;n=-(o*n*y);o=y*-(p*o)}else{w=(c[h>>2]=e,+f[h>>2]);y=(c[h>>2]=g,+f[h>>2]);o=1.0/+s(+(w*w+y*y));d=y;i=w;j=-(o*y);k=0.0;l=o*w;m=-(p*(o*w));n=p*-(o*y);o=(w*w+y*y)*o}e=c[b+28>>2]|0;Q=+f[e+4>>2];K=+f[e+8>>2];D=+f[e+12>>2];z=j*Q+l*K+k*D;P=+f[e+20>>2];B=+f[e+24>>2];I=+f[e+28>>2];q=j*P+l*B+k*I;O=+f[e+36>>2];t=+f[e+40>>2];F=+f[e+44>>2];M=j*O+l*t+k*F;E=m*Q+n*K+o*D;G=m*P+n*B+o*I;J=m*O+n*t+o*F;u=Q*i+K*d+p*D;w=P*i+B*d+p*I;i=O*i+t*d+p*F;g=c[b+32>>2]|0;A=+f[g+4>>2];j=+f[g+20>>2];k=+f[g+36>>2];o=+f[g+8>>2];p=+f[g+24>>2];v=+f[g+40>>2];H=+f[g+12>>2];m=+f[g+28>>2];L=+f[g+44>>2];c[b+300>>2]=0;c[b+300+4>>2]=0;c[b+300+8>>2]=0;c[b+300+12>>2]=0;f[b+316>>2]=z*Q+q*P+M*O;f[b+320>>2]=z*K+q*B+M*t;f[b+324>>2]=z*D+q*I+M*F;f[b+328>>2]=0.0;f[b+332>>2]=A*-z+j*-q+k*-M;f[b+336>>2]=o*-z+p*-q+v*-M;f[b+340>>2]=H*-z+m*-q+L*-M;f[b+344>>2]=0.0;l=(z*Q+q*P+M*O)*+f[e+396>>2];d=(z*K+q*B+M*t)*+f[e+400>>2];C=(z*D+q*I+M*F)*+f[e+404>>2];f[b+348>>2]=l;f[b+352>>2]=d;f[b+356>>2]=C;f[b+360>>2]=0.0;n=(A*-z+j*-q+k*-M)*+f[g+396>>2];y=(o*-z+p*-q+v*-M)*+f[g+400>>2];N=(H*-z+m*-q+L*-M)*+f[g+404>>2];f[b+364>>2]=n;f[b+368>>2]=y;f[b+372>>2]=N;f[b+376>>2]=0.0;f[b+380>>2]=(z*Q+q*P+M*O)*l+(z*K+q*B+M*t)*d+(z*D+q*I+M*F)*C+((A*-z+j*-q+k*-M)*n+(o*-z+p*-q+v*-M)*y+(H*-z+m*-q+L*-M)*N);N=+f[e+4>>2];M=+f[e+20>>2];L=+f[e+36>>2];q=+f[e+8>>2];m=+f[e+24>>2];z=+f[e+40>>2];H=+f[e+12>>2];y=+f[e+28>>2];v=+f[e+44>>2];p=+f[g+4>>2];o=+f[g+20>>2];n=+f[g+36>>2];k=+f[g+8>>2];j=+f[g+24>>2];A=+f[g+40>>2];C=+f[g+12>>2];F=+f[g+28>>2];I=+f[g+44>>2];c[b+384>>2]=0;c[b+384+4>>2]=0;c[b+384+8>>2]=0;c[b+384+12>>2]=0;f[b+400>>2]=E*N+G*M+J*L;f[b+404>>2]=E*q+G*m+J*z;f[b+408>>2]=E*H+G*y+J*v;f[b+412>>2]=0.0;f[b+416>>2]=p*-E+o*-G+n*-J;f[b+420>>2]=k*-E+j*-G+A*-J;f[b+424>>2]=C*-E+F*-G+I*-J;f[b+428>>2]=0.0;d=(E*N+G*M+J*L)*+f[e+396>>2];D=(E*q+G*m+J*z)*+f[e+400>>2];t=(E*H+G*y+J*v)*+f[e+404>>2];f[b+432>>2]=d;f[b+436>>2]=D;f[b+440>>2]=t;f[b+444>>2]=0.0;l=(p*-E+o*-G+n*-J)*+f[g+396>>2];B=(k*-E+j*-G+A*-J)*+f[g+400>>2];K=(C*-E+F*-G+I*-J)*+f[g+404>>2];f[b+448>>2]=l;f[b+452>>2]=B;f[b+456>>2]=K;f[b+460>>2]=0.0;f[b+464>>2]=(E*N+G*M+J*L)*d+(E*q+G*m+J*z)*D+(E*H+G*y+J*v)*t+((p*-E+o*-G+n*-J)*l+(k*-E+j*-G+A*-J)*B+(C*-E+F*-G+I*-J)*K);K=+f[e+4>>2];J=+f[e+20>>2];I=+f[e+36>>2];G=+f[e+8>>2];F=+f[e+24>>2];E=+f[e+40>>2];C=+f[e+12>>2];B=+f[e+28>>2];A=+f[e+44>>2];j=+f[g+4>>2];k=+f[g+20>>2];l=+f[g+36>>2];n=+f[g+8>>2];o=+f[g+24>>2];p=+f[g+40>>2];t=+f[g+12>>2];v=+f[g+28>>2];y=+f[g+44>>2];c[b+468>>2]=0;c[b+468+4>>2]=0;c[b+468+8>>2]=0;c[b+468+12>>2]=0;f[b+484>>2]=u*K+w*J+i*I;f[b+488>>2]=u*G+w*F+i*E;f[b+492>>2]=u*C+w*B+i*A;f[b+496>>2]=0.0;f[b+500>>2]=j*-u+k*-w+l*-i;f[b+504>>2]=n*-u+o*-w+p*-i;f[b+508>>2]=t*-u+v*-w+y*-i;f[b+512>>2]=0.0;H=(u*K+w*J+i*I)*+f[e+396>>2];D=(u*G+w*F+i*E)*+f[e+400>>2];z=(u*C+w*B+i*A)*+f[e+404>>2];f[b+516>>2]=H;f[b+520>>2]=D;f[b+524>>2]=z;f[b+528>>2]=0.0;m=(j*-u+k*-w+l*-i)*+f[g+396>>2];q=(n*-u+o*-w+p*-i)*+f[g+400>>2];d=(t*-u+v*-w+y*-i)*+f[g+404>>2];f[b+532>>2]=m;f[b+536>>2]=q;f[b+540>>2]=d;f[b+544>>2]=0.0;f[b+548>>2]=(u*K+w*J+i*I)*H+(u*G+w*F+i*E)*D+(u*C+w*B+i*A)*z+((j*-u+k*-w+l*-i)*m+(n*-u+o*-w+p*-i)*q+(t*-u+v*-w+y*-i)*d);f[b+724>>2]=0.0;d=+pi(b,e+4|0,g+4|0);f[b+728>>2]=d;f[b+708>>2]=0.0;f[b+712>>2]=0.0;a[b+716>>0]=0;i=+f[b+692>>2];do if(i>=0.0){d=(d-+f[b+688>>2])%6.2831854820251465;if(!(d<-3.1415927410125732)){if(d>3.1415927410125732)d=d+-6.2831854820251465}else d=d+6.2831854820251465;if(d<-i){a[b+716>>0]=1;f[b+708>>2]=-(i+d);f[b+712>>2]=1.0;break}if(d>i){a[b+716>>0]=1;f[b+708>>2]=i-d;f[b+712>>2]=-1.0}}while(0);e=c[b+28>>2]|0;M=+f[b+560>>2];N=+f[b+576>>2];Q=+f[b+592>>2];O=M*+f[e+4>>2]+N*+f[e+8>>2]+Q*+f[e+12>>2];P=M*+f[e+20>>2]+N*+f[e+24>>2]+Q*+f[e+28>>2];Q=M*+f[e+36>>2]+N*+f[e+40>>2]+Q*+f[e+44>>2];g=c[b+32>>2]|0;f[b+720>>2]=1.0/(O*(O*+f[e+264>>2]+P*+f[e+280>>2]+Q*+f[e+296>>2])+P*(O*+f[e+268>>2]+P*+f[e+284>>2]+Q*+f[e+300>>2])+Q*(O*+f[e+272>>2]+P*+f[e+288>>2]+Q*+f[e+304>>2])+(O*(O*+f[g+264>>2]+P*+f[g+280>>2]+Q*+f[g+296>>2])+P*(O*+f[g+268>>2]+P*+f[g+284>>2]+Q*+f[g+300>>2])+Q*(O*+f[g+272>>2]+P*+f[g+288>>2]+Q*+f[g+304>>2])));ea=x;return}function Db(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,g=0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0,q=0,r=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0,D=0.0,E=0,F=0,G=0.0,H=0.0,I=0,J=0,K=0;J=ea;ea=ea+112|0;c[a+348>>2]=a+220;c[a+352>>2]=a+252;c[a+356>>2]=a+284;c[a+360>>2]=a+316;c[a+364>>2]=4;c[a+368>>2]=0;c[a+376>>2]=0;F=c[b+4>>2]|0;c[a>>2]=c[b>>2];c[a+4>>2]=F;c[a+8>>2]=c[b+8>>2];c[a+8+4>>2]=c[b+8+4>>2];c[a+8+8>>2]=c[b+8+8>>2];c[a+8+12>>2]=c[b+8+12>>2];c[a+24>>2]=c[b+24>>2];c[a+24+4>>2]=c[b+24+4>>2];c[a+24+8>>2]=c[b+24+8>>2];c[a+24+12>>2]=c[b+24+12>>2];c[a+40>>2]=c[b+40>>2];c[a+40+4>>2]=c[b+40+4>>2];c[a+40+8>>2]=c[b+40+8>>2];c[a+40+12>>2]=c[b+40+12>>2];c[a+56>>2]=c[b+56>>2];c[a+56+4>>2]=c[b+56+4>>2];c[a+56+8>>2]=c[b+56+8>>2];c[a+56+12>>2]=c[b+56+12>>2];c[a+72>>2]=c[b+72>>2];c[a+72+4>>2]=c[b+72+4>>2];c[a+72+8>>2]=c[b+72+8>>2];c[a+72+12>>2]=c[b+72+12>>2];c[a+88>>2]=c[b+88>>2];c[a+88+4>>2]=c[b+88+4>>2];c[a+88+8>>2]=c[b+88+8>>2];c[a+88+12>>2]=c[b+88+12>>2];c[a+104>>2]=c[b+104>>2];c[a+104+4>>2]=c[b+104+4>>2];c[a+104+8>>2]=c[b+104+8>>2];c[a+104+12>>2]=c[b+104+12>>2];F=c[b+124>>2]|0;c[a+120>>2]=c[b+120>>2];c[a+124>>2]=F;f[a+144>>2]=0.0;c[a+180>>2]=0;c[a+128>>2]=c[d>>2];c[a+128+4>>2]=c[d+4>>2];c[a+128+8>>2]=c[d+8>>2];c[a+128+12>>2]=c[d+12>>2];e=+f[a+128>>2];k=+f[a+132>>2];l=+f[a+136>>2];if(e*e+k*k+l*l>0.0){f[a+164>>2]=0.0;c[a+364>>2]=3;c[a+148>>2]=a+316;c[a+180>>2]=1;Og(a,-e,-k,-l,a+316|0);d=a+164|0;b=a+148|0}else{f[a+164>>2]=0.0;c[a+364>>2]=3;c[a+148>>2]=a+316;c[a+180>>2]=1;Og(a,1.0,0.0,0.0,a+316|0);d=a+164|0;b=a+148|0}f[d>>2]=1.0;C=(c[b>>2]|0)+16|0;c[a+128>>2]=c[C>>2];c[a+128+4>>2]=c[C+4>>2];c[a+128+8>>2]=c[C+8>>2];c[a+128+12>>2]=c[C+12>>2];c[J+16+48>>2]=c[C>>2];c[J+16+48+4>>2]=c[C+4>>2];c[J+16+48+8>>2]=c[C+8>>2];c[J+16+48+12>>2]=c[C+12>>2];c[J+16+32>>2]=c[C>>2];c[J+16+32+4>>2]=c[C+4>>2];c[J+16+32+8>>2]=c[C+8>>2];c[J+16+32+12>>2]=c[C+12>>2];c[J+16+16>>2]=c[C>>2];c[J+16+16+4>>2]=c[C+4>>2];c[J+16+16+8>>2]=c[C+8>>2];c[J+16+16+12>>2]=c[C+12>>2];c[J+16>>2]=c[C>>2];c[J+16+4>>2]=c[C+4>>2];c[J+16+8>>2]=c[C+8>>2];c[J+16+12>>2]=c[C+12>>2];C=c[a+368>>2]|0;i=+f[a+128>>2];m=+f[a+132>>2];j=+f[a+136>>2];D=0.0;E=0;F=0;e=e*e+k*k+l*l;a:while(1){d=1-C|0;o=a+148+(C*36|0)|0;l=+s(+(i*i+m*m+j*j));if(l<9.999999747378752e-05){I=6;break}q=a+148+(C*36|0)+32|0;g=c[q>>2]|0;f[a+148+(C*36|0)+16+(g<<2)>>2]=0.0;b=(c[a+364>>2]|0)+-1|0;c[a+364>>2]=b;b=c[a+348+(b<<2)>>2]|0;c[a+148+(C*36|0)+(g<<2)>>2]=b;c[q>>2]=g+1;Og(a,-i,-m,-j,b);b=c[q>>2]|0;g=c[a+148+(C*36|0)+(b+-1<<2)>>2]|0;i=+f[g+16>>2];j=+f[g+20>>2];k=+f[g+24>>2];z=i-+f[J+16>>2];A=j-+f[J+16+4>>2];B=k-+f[J+16+8>>2];if(z*z+A*A+B*B<9.999999747378752e-05){I=9;break}z=i-+f[J+16+16>>2];A=j-+f[J+16+20>>2];B=k-+f[J+16+24>>2];if(z*z+A*A+B*B<9.999999747378752e-05){I=9;break}z=i-+f[J+16+32>>2];A=j-+f[J+16+36>>2];B=k-+f[J+16+40>>2];if(z*z+A*A+B*B<9.999999747378752e-05){I=9;break}z=i-+f[J+16+48>>2];A=j-+f[J+16+52>>2];B=k-+f[J+16+56>>2];if(z*z+A*A+B*B<9.999999747378752e-05){I=9;break}E=E+1&3;p=J+16+(E<<4)|0;c[p>>2]=c[g+16>>2];c[p+4>>2]=c[g+16+4>>2];c[p+8>>2]=c[g+16+8>>2];c[p+12>>2]=c[g+16+12>>2];B=(+f[a+128>>2]*i+ +f[a+132>>2]*j+ +f[a+136>>2]*k)/l;D=B>D?B:D;if(l-D-l*9.999999747378752e-05<=0.0){I=10;break}c[J+80>>2]=0;b:do switch(b|0){case 2:{p=c[o>>2]|0;o=c[a+148+(C*36|0)+4>>2]|0;e=+f[o+16>>2];i=+f[p+16>>2];j=+f[o+20>>2];k=+f[p+20>>2];l=+f[o+24>>2];m=+f[p+24>>2];if(!((e-i)*(e-i)+(j-k)*(j-k)+(l-m)*(l-m)>0.0)){I=46;break a}n=-(i*(e-i)+k*(j-k)+m*(l-m))/((e-i)*(e-i)+(j-k)*(j-k)+(l-m)*(l-m));if(n>=1.0){f[J>>2]=0.0;f[J+4>>2]=1.0;c[J+80>>2]=2;e=e*e+j*j+l*l;break b}if(!(n<=0.0)){f[J+4>>2]=n;f[J>>2]=1.0-n;c[J+80>>2]=3;e=(m+(l-m)*n)*(m+(l-m)*n)+((i+(e-i)*n)*(i+(e-i)*n)+(k+(j-k)*n)*(k+(j-k)*n));break b}else{f[J>>2]=1.0;f[J+4>>2]=0.0;c[J+80>>2]=1;e=i*i+k*k+m*m;break b}}case 3:{e=+bd((c[o>>2]|0)+16|0,(c[a+148+(C*36|0)+4>>2]|0)+16|0,(c[a+148+(C*36|0)+8>>2]|0)+16|0,J,J+80|0);break}case 4:{b=c[o>>2]|0;g=c[a+148+(C*36|0)+4>>2]|0;o=c[a+148+(C*36|0)+8>>2]|0;p=c[a+148+(C*36|0)+12>>2]|0;r=+f[b+16>>2];t=+f[p+16>>2];u=+f[b+20>>2];v=+f[p+20>>2];w=+f[b+24>>2];x=+f[p+24>>2];i=+f[g+16>>2];j=+f[g+20>>2];k=+f[g+24>>2];y=+f[o+16>>2];z=+f[o+20>>2];A=+f[o+24>>2];B=(r-t)*(j-v)*(A-x)+((u-v)*(k-x)*(y-t)+(w-x)*(i-t)*(z-v)-(r-t)*(k-x)*(z-v)-(u-v)*(i-t)*(A-x))-(w-x)*(j-v)*(y-t);if(!(B==B&0.0==0.0&B!=0.0&B*(w*((u-j)*(i-y)-(r-i)*(j-z))+(r*((w-k)*(j-z)-(u-j)*(k-A))+u*((r-i)*(k-A)-(w-k)*(i-y))))<=0.0)){I=46;break a}c[J+88>>2]=0;c[J+88+4>>2]=0;c[J+88+8>>2]=0;c[J+84>>2]=0;if(B*(((u-v)*(k-x)-(w-x)*(j-v))*t+v*((w-x)*(i-t)-(r-t)*(k-x))+((r-t)*(j-v)-(u-v)*(i-t))*x)>0.0){e=+bd(b+16|0,g+16|0,p+16|0,J+88|0,J+84|0);K=c[J+84>>2]|0;c[J+80>>2]=K&2|K<<1&8|K&1;c[J>>2]=c[J+88>>2];c[J+4>>2]=c[J+88+4>>2];f[J+8>>2]=0.0;c[J+12>>2]=c[J+88+8>>2];l=+f[p+16>>2];m=+f[p+20>>2];n=+f[p+24>>2]}else{l=t;m=v;n=x;e=-1.0}if(B*(((j-v)*(A-x)-(k-x)*(z-v))*l+m*((k-x)*(y-t)-(A-x)*(i-t))+((z-v)*(i-t)-(j-v)*(y-t))*n)>0.0?(G=+bd(g+16|0,o+16|0,p+16|0,J+88|0,J+84|0),e<0.0|G>2]=c[J+84>>2]<<1&14;c[J+4>>2]=c[J+88>>2];c[J+8>>2]=c[J+88+4>>2];f[J>>2]=0.0;c[J+12>>2]=c[J+88+8>>2];e=G}if(B*(((z-v)*(w-x)-(A-x)*(u-v))*+f[p+16>>2]+ +f[p+20>>2]*((A-x)*(r-t)-(w-x)*(y-t))+((u-v)*(y-t)-(z-v)*(r-t))*+f[p+24>>2])>0.0?(H=+bd(o+16|0,b+16|0,p+16|0,J+88|0,J+84|0),e<0.0|H>2]|0;c[J+80>>2]=(1?K>>>1:K)&1|K<<1&8|K<<2&4;c[J+8>>2]=c[J+88>>2];c[J>>2]=c[J+88+4>>2];f[J+4>>2]=0.0;c[J+12>>2]=c[J+88+8>>2];e=H}if(e<0.0){c[J+80>>2]=15;r=+f[o+20>>2];A=+f[g+24>>2];z=+f[p+16>>2];m=+f[o+24>>2];y=+f[g+16>>2];t=+f[p+20>>2];n=+f[o+16>>2];x=+f[p+24>>2];v=+f[g+20>>2];f[J>>2]=(r*A*z+m*y*t-t*(A*n)-r*y*x+x*(n*v)-z*(m*v))/B;e=+f[b+20>>2];u=+f[b+24>>2];w=+f[b+16>>2];f[J+4>>2]=(e*m*z+u*n*t-t*(m*w)-e*n*x+x*(w*r)-z*(u*r))/B;f[J+8>>2]=(v*u*z+A*w*t-t*(u*y)-v*w*x+x*(y*e)-z*(A*e))/B;f[J+12>>2]=1.0-((r*A*z+m*y*t-t*(A*n)-r*y*x+x*(n*v)-z*(m*v))/B+(e*m*z+u*n*t-t*(m*w)-e*n*x+x*(w*r)-z*(u*r))/B+(v*u*z+A*w*t-t*(u*y)-v*w*x+x*(y*e)-z*(A*e))/B);e=0.0}break}default:{}}while(0);if(!(e>=0.0)){I=46;break}c[a+148+(d*36|0)+32>>2]=0;c[a+128>>2]=0;c[a+128+4>>2]=0;c[a+128+8>>2]=0;c[a+128+12>>2]=0;c[a+368>>2]=d;p=c[q>>2]|0;q=c[J+80>>2]|0;if(p){g=a+148+(C*36|0)|0;b=c[g>>2]|0;if(!(q&1)){K=c[a+364>>2]|0;c[a+364>>2]=K+1;c[a+348+(K<<2)>>2]=b;j=0.0;k=0.0;i=0.0}else{K=c[a+148+(d*36|0)+32>>2]|0;c[a+148+(d*36|0)+(K<<2)>>2]=b;o=c[J>>2]|0;c[a+148+(d*36|0)+32>>2]=K+1;c[a+148+(d*36|0)+16+(K<<2)>>2]=o;K=c[g>>2]|0;i=(c[h>>2]=o,+f[h>>2]);k=+f[K+20>>2]*i;j=+f[K+24>>2]*i;i=+f[K+16>>2]*i+ +f[a+128>>2];f[a+128>>2]=i;k=k+ +f[a+132>>2];f[a+132>>2]=k;j=j+ +f[a+136>>2];f[a+136>>2]=j}if((p|0)!=1){o=1;do{g=a+148+(C*36|0)+(o<<2)|0;b=c[g>>2]|0;if(!(q&1<>2]|0;c[a+364>>2]=K+1;c[a+348+(K<<2)>>2]=b}else{K=c[a+148+(d*36|0)+32>>2]|0;c[a+148+(d*36|0)+(K<<2)>>2]=b;b=c[J+(o<<2)>>2]|0;c[a+148+(d*36|0)+32>>2]=K+1;c[a+148+(d*36|0)+16+(K<<2)>>2]=b;K=c[g>>2]|0;i=(c[h>>2]=b,+f[h>>2]);k=+f[K+20>>2]*i;j=+f[K+24>>2]*i;i=+f[K+16>>2]*i+ +f[a+128>>2];f[a+128>>2]=i;k=k+ +f[a+132>>2];f[a+132>>2]=k;j=j+ +f[a+136>>2];f[a+136>>2]=j}o=o+1|0}while((o|0)!=(p|0))}}else{j=0.0;k=0.0;i=0.0}if((q|0)==15)c[a+376>>2]=1;F=F+1|0;if(F>>>0>=128){I=45;break}b=c[a+376>>2]|0;if(b|0)break;else{C=d;m=k}}if((I|0)==6){c[a+376>>2]=1;d=C;I=48}else if((I|0)==9){d=c[a+368>>2]|0;F=(c[a+148+(d*36|0)+32>>2]|0)+-1|0;c[a+148+(d*36|0)+32>>2]=F;F=c[a+148+(d*36|0)+(F<<2)>>2]|0;K=c[a+364>>2]|0;c[a+364>>2]=K+1;c[a+348+(K<<2)>>2]=F;I=48}else if((I|0)==10){d=c[a+368>>2]|0;F=(c[a+148+(d*36|0)+32>>2]|0)+-1|0;c[a+148+(d*36|0)+32>>2]=F;F=c[a+148+(d*36|0)+(F<<2)>>2]|0;K=c[a+364>>2]|0;c[a+364>>2]=K+1;c[a+348+(K<<2)>>2]=F;I=48}else if((I|0)==45){c[a+376>>2]=2;c[a+372>>2]=a+148+(d*36|0);K=2;ea=J;return K|0}else if((I|0)==46){d=c[a+368>>2]|0;F=(c[a+148+(d*36|0)+32>>2]|0)+-1|0;c[a+148+(d*36|0)+32>>2]=F;F=c[a+148+(d*36|0)+(F<<2)>>2]|0;K=c[a+364>>2]|0;c[a+364>>2]=K+1;c[a+348+(K<<2)>>2]=F;I=48}if((I|0)==48)b=c[a+376>>2]|0;c[a+372>>2]=a+148+(d*36|0);switch(b|0){case 0:{D=+f[a+128>>2];G=+f[a+132>>2];H=+f[a+136>>2];f[a+144>>2]=+s(+(D*D+G*G+H*H));K=0;ea=J;return K|0}case 1:{f[a+144>>2]=0.0;K=1;ea=J;return K|0}default:{K=b;ea=J;return K|0}}return 0} +function Eb(b,d){b=b|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=ea;ea=ea+16|0;Fi(14706);j=c[b+212>>2]|0;i=c[b+180>>2]|0;if((i|0)<(j|0)){if((c[b+184>>2]|0)<(j|0)){if(!j){g=i;h=0}else{c[6747]=(c[6747]|0)+1;e=kb((j<<2|3)+16|0)|0;if(!e)e=0;else{c[(e+4+15&-16)+-4>>2]=e;e=e+4+15&-16}g=c[b+180>>2]|0;h=e}if((g|0)>0){e=0;do{c[h+(e<<2)>>2]=c[(c[b+188>>2]|0)+(e<<2)>>2];e=e+1|0}while((e|0)!=(g|0))}e=c[b+188>>2]|0;if(e|0){if(a[b+192>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0)}c[b+188>>2]=0}a[b+192>>0]=1;c[b+188>>2]=h;c[b+184>>2]=j;g=b+188|0}else g=b+188|0;e=i;do{c[(c[g>>2]|0)+(e<<2)>>2]=0;e=e+1|0}while((e|0)!=(j|0))}else g=b+188|0;c[b+180>>2]=j;e=0;while(1){if((e|0)>=(ra[c[(c[b>>2]|0)+104>>2]&127](b)|0))break;c[(c[g>>2]|0)+(e<<2)>>2]=c[(c[b+220>>2]|0)+(e<<2)>>2];e=e+1|0}e=c[b+180>>2]|0;if((e|0)>1)Zf(b+176|0,0,e+-1|0);if(!(ra[c[(c[b>>2]|0)+104>>2]&127](b)|0))e=0;else e=c[g>>2]|0;h=c[b+196>>2]|0;r=c[b+180>>2]|0;s=ra[c[(c[b>>2]|0)+20>>2]&127](b)|0;c[h+4>>2]=d;c[h+12>>2]=e;c[h+16>>2]=r;c[h+20>>2]=s;e=c[h+32>>2]|0;if((e|0)<0){if((c[h+36>>2]|0)<0){g=c[h+40>>2]|0;if(g|0){if(a[h+44>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[h+40>>2]=0}a[h+44>>0]=1;c[h+40>>2]=0;c[h+36>>2]=0}do{c[(c[h+40>>2]|0)+(e<<2)>>2]=0;e=e+1|0}while((e|0)!=0)}c[h+32>>2]=0;e=c[h+52>>2]|0;if((e|0)<0){if((c[h+56>>2]|0)<0){g=c[h+60>>2]|0;if(g|0){if(a[h+64>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[h+60>>2]=0}a[h+64>>0]=1;c[h+60>>2]=0;c[h+56>>2]=0}do{c[(c[h+60>>2]|0)+(e<<2)>>2]=0;e=e+1|0}while((e|0)!=0)}c[h+52>>2]=0;e=c[h+72>>2]|0;if((e|0)<0){if((c[h+76>>2]|0)<0){g=c[h+80>>2]|0;if(g|0){if(a[h+84>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[h+80>>2]=0}a[h+84>>0]=1;c[h+80>>2]=0;c[h+76>>2]=0}do{c[(c[h+80>>2]|0)+(e<<2)>>2]=0;e=e+1|0}while((e|0)!=0)}c[h+72>>2]=0;s=c[b+200>>2]|0;e=c[(c[s>>2]|0)+8>>2]|0;p=c[b+8>>2]|0;r=c[b+24>>2]|0;r=ra[c[(c[r>>2]|0)+36>>2]&127](r)|0;Ma[e&127](s,p,r);r=c[b+204>>2]|0;p=c[b+24>>2]|0;s=c[b+196>>2]|0;Fi(16538);e=c[r+28>>2]|0;if((e|0)<0){if((c[r+32>>2]|0)<0){g=c[r+36>>2]|0;if(g|0){if(a[r+40>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[r+36>>2]=0}a[r+40>>0]=1;c[r+36>>2]=0;c[r+32>>2]=0}do{c[(c[r+36>>2]|0)+(e<<2)>>2]=0;e=e+1|0}while((e|0)!=0)}c[r+28>>2]=0;i=c[r+8>>2]|0;if((i|0)>0){j=c[r+16>>2]|0;k=0;do{l=j+(k<<3)|0;e=c[l>>2]|0;if((e|0)!=(k|0)){c[l>>2]=c[j+(e<<3)>>2];e=c[j+(e<<3)>>2]|0;g=c[j+(e<<3)>>2]|0;if((e|0)!=(g|0)){h=j+(e<<3)|0;do{e=j+(g<<3)|0;c[h>>2]=c[e>>2];e=c[e>>2]|0;h=j+(e<<3)|0;g=c[h>>2]|0}while((e|0)!=(g|0))}}else e=k;c[l>>2]=e;k=k+1|0}while((k|0)!=(i|0));if((i|0)>1){Ji(r+4|0,0,i+-1|0);m=c[r+8>>2]|0}else m=i;if((m|0)>0){n=c[r+16>>2]|0;i=0;while(1){o=c[n+(i<<3)>>2]|0;e=i+1|0;a:do if((e|0)<(m|0)){g=i;h=e;while(1){if((c[n+(h<<3)>>2]|0)!=(o|0)){e=h;break a}e=h+1|0;if((e|0)<(m|0)){g=h;h=e}else{g=h;break}}}else g=i;while(0);b:do if((i|0)<=(g|0)){l=c[b+16>>2]|0;h=1;k=i;while(1){j=c[l+(c[n+(k<<3)+4>>2]<<2)>>2]|0;if((c[j+208>>2]|0)==(o|0)){j=c[j+216>>2]|0;h=(j|0)!=4&(h&(j|0)!=1)}if((k|0)<(g|0))k=k+1|0;else break}if(h)while(1){h=c[l+(c[n+(i<<3)+4>>2]<<2)>>2]|0;do if((c[h+208>>2]|0)==(o|0)){if((c[h+216>>2]&-2|0)==4)break;c[h+216>>2]=2}while(0);if((i|0)>=(g|0))break b;i=i+1|0}else while(1){h=c[l+(c[n+(i<<3)+4>>2]<<2)>>2]|0;do if((c[h+208>>2]|0)==(o|0)){if((c[h+216>>2]|0)!=2)break;c[h+216>>2]=3;f[h+220>>2]=0.0}while(0);if((i|0)>=(g|0))break b;i=i+1|0}}while(0);if((e|0)<(m|0))i=e;else break}}}j=ra[c[(c[p>>2]|0)+36>>2]&127](p)|0;if((j|0)>0){l=0;do{k=ta[c[(c[p>>2]|0)+40>>2]&31](p,l)|0;h=c[k+740>>2]|0;i=c[k+744>>2]|0;if((h|0)!=0?(c[h+216>>2]|0)!=2:0){e=c[h+204>>2]|0;if(!(e&2))g=111;else g=106}else g=101;if(((g|0)==101?(g=0,i|0):0)?(c[i+216>>2]|0)!=2:0){e=c[h+204>>2]|0;if((e&2|0)!=0?(c[h+216>>2]|0)!=2:0)g=106;else g=111}if((g|0)==106)if((e&4|0)==0?(c[i+204>>2]&3|0)==0:0){if((c[i+216>>2]&-2|0)!=4)c[i+216>>2]=1;f[i+220>>2]=0.0;g=111}else g=111;if((g|0)==111){o=c[i+204>>2]|0;if(o&2|0?((o&4|e&3|0)==0?(c[i+216>>2]|0)!=2:0):0){if((c[h+216>>2]&-2|0)!=4)c[h+216>>2]=1;f[h+220>>2]=0.0}if(a[r+64>>0]|0?va[c[(c[p>>2]|0)+28>>2]&63](p,h,i)|0:0){e=c[r+28>>2]|0;if((e|0)==(c[r+32>>2]|0)?(q=(e|0)==0?1:e<<1,(e|0)<(q|0)):0){if(!q)g=0;else{c[6747]=(c[6747]|0)+1;e=kb((q<<2|3)+16|0)|0;if(!e)g=0;else{c[(e+4+15&-16)+-4>>2]=e;g=e+4+15&-16}e=c[r+28>>2]|0}if((e|0)>0){h=0;do{c[g+(h<<2)>>2]=c[(c[r+36>>2]|0)+(h<<2)>>2];h=h+1|0}while((h|0)!=(e|0))}h=c[r+36>>2]|0;if(h){if(a[r+40>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[h+-4>>2]|0);e=c[r+28>>2]|0}c[r+36>>2]=0}a[r+40>>0]=1;c[r+36>>2]=g;c[r+32>>2]=q}c[(c[r+36>>2]|0)+(e<<2)>>2]=k;c[r+28>>2]=e+1}}l=l+1|0}while((l|0)<(j|0))}e=c[2685]|0;q=(c[e+16>>2]|0)+-1|0;c[e+16>>2]=q;do if(!q){if(c[e+4>>2]|0){Y(t|0,0)|0;q=c[6746]|0;f[e+8>>2]=+f[e+8>>2]+ +(((c[t+4>>2]|0)-(c[q+4>>2]|0)+(((c[t>>2]|0)-(c[q>>2]|0)|0)*1e6|0)-(c[e+12>>2]|0)|0)>>>0)/1.0e3;if(c[e+16>>2]|0)break;e=c[2685]|0}c[2685]=c[e+20>>2]}while(0);q=c[r+8>>2]|0;Fi(16566);if(a[r+64>>0]|0){o=c[r+28>>2]|0;if((o|0)>1)Xf(r+24|0,0,o+-1|0);if((q|0)>0){m=1;g=0;p=0;while(1){e=c[r+16>>2]|0;n=c[e+(g<<3)>>2]|0;c:do if((g|0)<(q|0)){j=c[r+48>>2]|0;i=c[r+52>>2]|0;l=1;while(1){k=c[(c[b+16>>2]|0)+(c[e+(g<<3)+4>>2]<<2)>>2]|0;do if((j|0)==(i|0)){j=(i|0)==0?1:i<<1;if((i|0)>=(j|0)){e=i;break}if(!j){e=i;h=0}else{c[6747]=(c[6747]|0)+1;e=kb((j<<2|3)+16|0)|0;if(!e)h=0;else{c[(e+4+15&-16)+-4>>2]=e;h=e+4+15&-16}e=c[r+48>>2]|0}if((e|0)>0){i=0;do{c[h+(i<<2)>>2]=c[(c[r+56>>2]|0)+(i<<2)>>2];i=i+1|0}while((i|0)!=(e|0))}i=c[r+56>>2]|0;if(i){if(a[r+60>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0);e=c[r+48>>2]|0}c[r+56>>2]=0}a[r+60>>0]=1;c[r+56>>2]=h;c[r+52>>2]=j;i=j}else e=j;while(0);c[(c[r+56>>2]|0)+(e<<2)>>2]=k;j=e+1|0;c[r+48>>2]=j;h=c[k+216>>2]|0;h=l&((h|0)==5|(h|0)==2);g=g+1|0;if((g|0)>=(q|0)){l=g;k=h;break c}e=c[r+16>>2]|0;if((c[e+(g<<3)>>2]|0)!=(n|0)){l=g;k=h;break}else l=h}}else{l=g;k=1}while(0);if((p|0)<(o|0)){i=c[r+36>>2]|0;j=i+(p<<2)|0;g=c[j>>2]|0;e=c[(c[g+740>>2]|0)+208>>2]|0;if((e|0)<=-1)e=c[(c[g+744>>2]|0)+208>>2]|0;if((e|0)==(n|0)){e=p+1|0;d:do if((e|0)<(o|0))do{h=c[i+(e<<2)>>2]|0;g=c[(c[h+740>>2]|0)+208>>2]|0;if((g|0)<=-1)g=c[(c[h+744>>2]|0)+208>>2]|0;if((n|0)!=(g|0))break d;e=e+1|0}while((e|0)<(o|0));while(0);h=e;g=e-p|0;e=j}else{h=m;g=0;e=0}}else{h=m;g=0;e=0}if(!k)Va[c[(c[s>>2]|0)+8>>2]&7](s,c[r+56>>2]|0,c[r+48>>2]|0,e,g,n);p=(g|0)==0?p:h;e=c[r+48>>2]|0;if((e|0)<0){if((c[r+52>>2]|0)<0){g=c[r+56>>2]|0;if(g|0){if(a[r+60>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[r+56>>2]=0}a[r+60>>0]=1;c[r+56>>2]=0;c[r+52>>2]=0}do{c[(c[r+56>>2]|0)+(e<<2)>>2]=0;e=e+1|0}while((e|0)!=0)}c[r+48>>2]=0;if((l|0)>=(q|0))break;else{m=h;g=l}}}}else{q=ra[c[(c[p>>2]|0)+44>>2]&127](p)|0;r=ra[c[(c[p>>2]|0)+36>>2]&127](p)|0;Va[c[(c[s>>2]|0)+8>>2]&7](s,c[b+16>>2]|0,c[b+8>>2]|0,q,r,-1)}e=c[2685]|0;s=(c[e+16>>2]|0)+-1|0;c[e+16>>2]=s;do if(!s){if(c[e+4>>2]|0){Y(t|0,0)|0;s=c[6746]|0;f[e+8>>2]=+f[e+8>>2]+ +(((c[t+4>>2]|0)-(c[s+4>>2]|0)+(((c[t>>2]|0)-(c[s>>2]|0)|0)*1e6|0)-(c[e+12>>2]|0)|0)>>>0)/1.0e3;if(c[e+16>>2]|0)break;e=c[2685]|0}c[2685]=c[e+20>>2]}while(0);og(c[b+196>>2]|0);e=c[b+200>>2]|0;Ma[c[(c[e>>2]|0)+16>>2]&127](e,d,c[b+72>>2]|0);e=c[2685]|0;b=(c[e+16>>2]|0)+-1|0;c[e+16>>2]=b;if(b|0){ea=t;return}do if(c[e+4>>2]|0){Y(t|0,0)|0;b=c[6746]|0;f[e+8>>2]=+f[e+8>>2]+ +(((c[t+4>>2]|0)-(c[b+4>>2]|0)+(((c[t>>2]|0)-(c[b>>2]|0)|0)*1e6|0)-(c[e+12>>2]|0)|0)>>>0)/1.0e3;if(!(c[e+16>>2]|0)){e=c[2685]|0;break}else{ea=t;return}}while(0);c[2685]=c[e+20>>2];ea=t;return}function Fb(b,d,e,g){b=b|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0,H=0;r=ea;ea=ea+144|0;m=c[b+48>>2]|0;h=c[b+52>>2]|0;if((h|0?(j=c[h+20>>2]|0,j|0):0)?(ra[c[(c[j>>2]|0)+48>>2]&127](j)|0)&1|0:0){c[r>>2]=1065353216;c[r+4>>2]=1065353216;c[r+8>>2]=0;f[r+12>>2]=0.0;k=c[b+8>>2]|0;q=c[(c[b+52>>2]|0)+20>>2]|0;p=c[(c[q>>2]|0)+8>>2]|0;t=+f[d>>2];B=+f[d+4>>2];u=+f[d+8>>2];z=+f[k+20>>2];v=+f[k+24>>2];C=+f[k+28>>2];w=+f[k+36>>2];E=+f[k+40>>2];x=+f[k+44>>2];y=+f[k+52>>2];D=+f[k+56>>2];A=+f[k+60>>2];f[r+120>>2]=t*+f[k+4>>2]+B*+f[k+8>>2]+u*+f[k+12>>2]+y;f[r+120+4>>2]=t*z+B*v+u*C+D;f[r+120+8>>2]=t*w+B*E+u*x+A;f[r+120+12>>2]=0.0;u=+f[d+16>>2];B=+f[d+20>>2];t=+f[d+24>>2];f[r+96>>2]=y+(u*+f[k+4>>2]+B*+f[k+8>>2]+t*+f[k+12>>2]);f[r+96+4>>2]=D+(z*u+v*B+C*t);f[r+96+8>>2]=A+(w*u+E*B+x*t);f[r+96+12>>2]=0.0;Pa[p&127](q,r+120|0,r+96|0,r);q=c[(c[b+52>>2]|0)+20>>2]|0;p=c[(c[q>>2]|0)+8>>2]|0;t=+f[d+16>>2];x=+f[d+20>>2];B=+f[d+24>>2];E=+f[k+20>>2];u=+f[k+24>>2];w=+f[k+28>>2];A=+f[k+36>>2];C=+f[k+40>>2];v=+f[k+44>>2];z=+f[k+52>>2];D=+f[k+56>>2];y=+f[k+60>>2];f[r+120>>2]=t*+f[k+4>>2]+x*+f[k+8>>2]+B*+f[k+12>>2]+z;f[r+120+4>>2]=t*E+x*u+B*w+D;f[r+120+8>>2]=t*A+x*C+B*v+y;f[r+120+12>>2]=0.0;B=+f[d+32>>2];x=+f[d+36>>2];t=+f[d+40>>2];f[r+96>>2]=z+(B*+f[k+4>>2]+x*+f[k+8>>2]+t*+f[k+12>>2]);f[r+96+4>>2]=D+(E*B+u*x+w*t);f[r+96+8>>2]=y+(A*B+C*x+v*t);f[r+96+12>>2]=0.0;Pa[p&127](q,r+120|0,r+96|0,r);q=c[(c[b+52>>2]|0)+20>>2]|0;p=c[(c[q>>2]|0)+8>>2]|0;t=+f[d+32>>2];v=+f[d+36>>2];x=+f[d+40>>2];C=+f[k+20>>2];B=+f[k+24>>2];A=+f[k+28>>2];y=+f[k+36>>2];w=+f[k+40>>2];u=+f[k+44>>2];E=+f[k+52>>2];D=+f[k+56>>2];z=+f[k+60>>2];f[r+120>>2]=t*+f[k+4>>2]+v*+f[k+8>>2]+x*+f[k+12>>2]+E;f[r+120+4>>2]=t*C+v*B+x*A+D;f[r+120+8>>2]=t*y+v*w+x*u+z;f[r+120+12>>2]=0.0;x=+f[d>>2];v=+f[d+4>>2];t=+f[d+8>>2];f[r+96>>2]=E+(x*+f[k+4>>2]+v*+f[k+8>>2]+t*+f[k+12>>2]);f[r+96+4>>2]=D+(C*x+B*v+A*t);f[r+96+8>>2]=z+(y*x+w*v+u*t);f[r+96+12>>2]=0.0;Pa[p&127](q,r+120|0,r+96|0,r)}h=((10?(e<<21|g)+~(g<<15)>>10:(e<<21|g)+~(g<<15)|0)^(e<<21|g)+~(g<<15))*9|0;h=(6?h>>6:h)^h;h=(c[b+108>>2]|0)+-1&((16?h+~(h<<11)>>16:h+~(h<<11)|0)^h+~(h<<11));a:do if(h>>>0<(c[b+64>>2]|0)>>>0?(l=c[(c[b+72>>2]|0)+(h<<2)>>2]|0,(l|0)!=-1):0){k=c[b+132>>2]|0;j=l;while(1){if((e<<21|g|0)==(c[k+(j<<2)>>2]|0))break;h=c[(c[b+92>>2]|0)+(j<<2)>>2]|0;if((h|0)==-1)break a;else j=h}h=c[b+112>>2]|0;if(h+(j<<3)|0){p=c[h+(j<<3)+4>>2]|0;q=c[b+8>>2]|0;c[p+8>>2]=c[(c[q+192>>2]|0)+8>>2];o=c[b+4>>2]|0;n=c[o+192>>2]|0;c[r>>2]=0;c[r+4>>2]=n;c[r+8>>2]=o;c[r+12>>2]=o+4;c[r+16>>2]=-1;c[r+20>>2]=-1;c[r+120>>2]=0;c[r+120+4>>2]=p;c[r+120+8>>2]=q;c[r+120+12>>2]=q+4;c[r+120+16>>2]=e;c[r+120+20>>2]=g;q=wa[c[(c[m>>2]|0)+8>>2]&31](m,r,r+120|0,0)|0;Ta[c[(c[q>>2]|0)+8>>2]&31](q,r,r+120|0,c[b+52>>2]|0,c[b+44>>2]|0);Ca[c[c[q>>2]>>2]&511](q);Ia[c[(c[m>>2]|0)+60>>2]&127](m,q);ea=r;return}}while(0);v=+f[d+16>>2];F=+f[d>>2];w=+f[d+20>>2];t=+f[d+4>>2];x=+f[d+24>>2];u=+f[d+8>>2];y=+f[d+32>>2];A=+f[d+36>>2];C=+f[d+40>>2];z=(w-t)*(C-u)-(x-u)*(A-t);B=(x-u)*(y-F)-(v-F)*(C-u);D=(v-F)*(A-t)-(w-t)*(y-F);E=1.0/+s(+(D*D+(z*z+B*B)));f[r>>2]=F+z*E*.05999999865889549;f[r+4>>2]=t+B*E*.05999999865889549;f[r+8>>2]=u+D*E*.05999999865889549;f[r+12>>2]=0.0;f[r+16>>2]=v+z*E*.05999999865889549;f[r+20>>2]=w+B*E*.05999999865889549;f[r+24>>2]=x+D*E*.05999999865889549;f[r+28>>2]=0.0;f[r+32>>2]=y+z*E*.05999999865889549;f[r+36>>2]=A+B*E*.05999999865889549;f[r+40>>2]=C+D*E*.05999999865889549;f[r+44>>2]=0.0;f[r+48>>2]=F-z*E*.05999999865889549;f[r+52>>2]=t-B*E*.05999999865889549;f[r+56>>2]=u-D*E*.05999999865889549;f[r+60>>2]=0.0;f[r+64>>2]=v-z*E*.05999999865889549;f[r+68>>2]=w-B*E*.05999999865889549;f[r+72>>2]=x-D*E*.05999999865889549;f[r+76>>2]=0.0;f[r+80>>2]=y-z*E*.05999999865889549;f[r+84>>2]=A-B*E*.05999999865889549;f[r+88>>2]=C-D*E*.05999999865889549;f[r+92>>2]=0.0;c[6747]=(c[6747]|0)+1;h=kb(131)|0;if(!h)h=0;else{c[(h+4+15&-16)+-4>>2]=h;h=h+4+15&-16}of(h,r,6,16);q=c[b+8>>2]|0;c[h+8>>2]=c[(c[q+192>>2]|0)+8>>2];d=c[b+4>>2]|0;p=c[d+192>>2]|0;c[r+120>>2]=0;c[r+120+4>>2]=p;c[r+120+8>>2]=d;c[r+120+12>>2]=d+4;c[r+120+16>>2]=-1;c[r+120+20>>2]=-1;c[r+96>>2]=0;c[r+96+4>>2]=h;c[r+96+8>>2]=q;c[r+96+12>>2]=q+4;c[r+96+16>>2]=e;c[r+96+20>>2]=g;q=wa[c[(c[m>>2]|0)+8>>2]&31](m,r+120|0,r+96|0,0)|0;Ta[c[(c[q>>2]|0)+8>>2]&31](q,r+120|0,r+96|0,c[b+52>>2]|0,c[b+44>>2]|0);Ca[c[c[q>>2]>>2]&511](q);Ia[c[(c[m>>2]|0)+60>>2]&127](m,q);q=((10?(e<<21|g)+~(g<<15)>>10:(e<<21|g)+~(g<<15)|0)^(e<<21|g)+~(g<<15))*9|0;q=(6?q>>6:q)^q;q=(16?q+~(q<<11)>>16:q+~(q<<11)|0)^q+~(q<<11);d=c[b+108>>2]|0;b:do if((q&d+-1)>>>0<(c[b+64>>2]|0)>>>0?(i=c[(c[b+72>>2]|0)+((q&d+-1)<<2)>>2]|0,(i|0)!=-1):0){j=c[b+132>>2]|0;while(1){if((e<<21|g|0)==(c[j+(i<<2)>>2]|0))break;i=c[(c[b+92>>2]|0)+(i<<2)>>2]|0;if((i|0)==-1){n=20;break b}}b=c[b+112>>2]|0;c[b+(i<<3)>>2]=e<<21|g;c[b+(i<<3)+4>>2]=h}else n=20;while(0);if((n|0)==20){p=c[b+104>>2]|0;if((p|0)==(d|0)){l=(d|0)==0?1:d<<1;if((d|0)<(l|0)){if(!l){j=d;k=0}else{c[6747]=(c[6747]|0)+1;i=kb((l<<3|3)+16|0)|0;if(!i)i=0;else{c[(i+4+15&-16)+-4>>2]=i;i=i+4+15&-16}j=c[b+104>>2]|0;k=i}if((j|0)>0){i=0;do{H=(c[b+112>>2]|0)+(i<<3)|0;G=c[H+4>>2]|0;m=k+(i<<3)|0;c[m>>2]=c[H>>2];c[m+4>>2]=G;i=i+1|0}while((i|0)!=(j|0))}i=c[b+112>>2]|0;if(i|0){if(a[b+116>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0)}c[b+112>>2]=0}a[b+116>>0]=1;c[b+112>>2]=k;c[b+108>>2]=l;i=c[b+104>>2]|0}else i=d}else i=p;H=c[b+112>>2]|0;c[H+(i<<3)>>2]=e<<21|g;c[H+(i<<3)+4>>2]=h;c[b+104>>2]=(c[b+104>>2]|0)+1;h=c[b+124>>2]|0;if((h|0)==(c[b+128>>2]|0)?(o=(h|0)==0?1:h<<1,(h|0)<(o|0)):0){if(!o)i=0;else{c[6747]=(c[6747]|0)+1;h=kb((o<<2|3)+16|0)|0;if(!h)i=0;else{c[(h+4+15&-16)+-4>>2]=h;i=h+4+15&-16}h=c[b+124>>2]|0}k=c[b+132>>2]|0;if((h|0)<=0)if(!k)j=b+136|0;else n=45;else{j=0;do{c[i+(j<<2)>>2]=c[k+(j<<2)>>2];j=j+1|0}while((j|0)!=(h|0));n=45}if((n|0)==45){if(a[b+136>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[k+-4>>2]|0)}c[b+132>>2]=0;h=c[b+124>>2]|0;j=b+136|0}a[j>>0]=1;c[b+132>>2]=i;c[b+128>>2]=o}c[(c[b+132>>2]|0)+(h<<2)>>2]=e<<21|g;c[b+124>>2]=(c[b+124>>2]|0)+1;m=c[b+108>>2]|0;if((d|0)<(m|0)){n=c[b+64>>2]|0;if((n|0)<(m|0)){do if((c[b+68>>2]|0)<(m|0)){if(!m){k=n;h=0}else{c[6747]=(c[6747]|0)+1;h=kb((m<<2|3)+16|0)|0;if(!h)h=0;else{c[(h+4+15&-16)+-4>>2]=h;h=h+4+15&-16}k=c[b+64>>2]|0}i=c[b+72>>2]|0;if((k|0)<=0){if(!i){a[b+76>>0]=1;c[b+72>>2]=h;c[b+68>>2]=m;d=b+72|0;break}}else{j=0;do{c[h+(j<<2)>>2]=c[i+(j<<2)>>2];j=j+1|0}while((j|0)!=(k|0))}if(a[b+76>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0)}a[b+76>>0]=1;c[b+72>>2]=h;c[b+68>>2]=m;d=b+72|0}else{h=c[b+72>>2]|0;d=b+72|0}while(0);hk(h+(n<<2)|0,0,(m<<2)-(n<<2)|0)|0;c[b+64>>2]=m;l=c[b+84>>2]|0;if((l|0)<(m|0)){do if((c[b+88>>2]|0)<(m|0)){if(!m){k=l;h=0}else{c[6747]=(c[6747]|0)+1;h=kb((m<<2|3)+16|0)|0;if(!h)h=0;else{c[(h+4+15&-16)+-4>>2]=h;h=h+4+15&-16}k=c[b+84>>2]|0}i=c[b+92>>2]|0;if((k|0)<=0){if(!i){a[b+96>>0]=1;c[b+92>>2]=h;c[b+88>>2]=m;break}}else{j=0;do{c[h+(j<<2)>>2]=c[i+(j<<2)>>2];j=j+1|0}while((j|0)!=(k|0))}if(a[b+96>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0)}a[b+96>>0]=1;c[b+92>>2]=h;c[b+88>>2]=m}else h=c[b+92>>2]|0;while(0);hk(h+(l<<2)|0,0,(m<<2)-(l<<2)|0)|0}c[b+84>>2]=m;if((m|0)>0){hk(c[d>>2]|0,-1,m<<2|0)|0;hk(c[b+92>>2]|0,-1,m<<2|0)|0}if((n|0)>0){k=c[b+132>>2]|0;h=c[d>>2]|0;i=c[b+92>>2]|0;j=0;do{H=c[k+(j<<2)>>2]|0;H=((10?H+~(H<<15)>>10:H+~(H<<15)|0)^H+~(H<<15))*9|0;H=(6?H>>6:H)^H;H=h+((((16?H+~(H<<11)>>16:H+~(H<<11)|0)^H+~(H<<11))&(c[b+108>>2]|0)+-1)<<2)|0;c[i+(j<<2)>>2]=c[H>>2];c[H>>2]=j;j=j+1|0}while((j|0)!=(n|0))}}h=q&(c[b+108>>2]|0)+-1}else h=q&d+-1;H=(c[b+72>>2]|0)+(h<<2)|0;c[(c[b+92>>2]|0)+(p<<2)>>2]=c[H>>2];c[H>>2]=p}ea=r;return}function Gb(b,d,e,g,h,i,j){b=b|0;d=d|0;e=e|0;g=g|0;h=+h;i=+i;j=j|0;var k=0,l=0,m=0.0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0,u=0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0,I=0.0,J=0.0,K=0.0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0.0,$=0,aa=0;Z=ea;ea=ea+48|0;a[Z+16+16>>0]=1;Y=Z+16+12|0;c[Y>>2]=0;c[Z+16+4>>2]=0;c[Z+16+8>>2]=0;o=c[g+4>>2]|0;if((o|0)>0){c[6747]=(c[6747]|0)+1;k=kb((o<<4|3)+16|0)|0;if(!k)n=0;else{c[(k+4+15&-16)+-4>>2]=k;n=k+4+15&-16}k=c[Z+16+4>>2]|0;if((k|0)>0){l=0;do{X=n+(l<<4)|0;W=(c[Y>>2]|0)+(l<<4)|0;c[X>>2]=c[W>>2];c[X+4>>2]=c[W+4>>2];c[X+8>>2]=c[W+8>>2];c[X+12>>2]=c[W+12>>2];l=l+1|0}while((l|0)!=(k|0))}k=c[Y>>2]|0;if(k|0){if(a[Z+16+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[k+-4>>2]|0)}c[Y>>2]=0}a[Z+16+16>>0]=1;c[Y>>2]=n;c[Z+16+8>>2]=o}k=c[d+28>>2]|0;if((k|0)>0){W=c[d+36>>2]|0;C=+f[e>>2];D=+f[e+4>>2];E=+f[e+8>>2];F=+f[e+16>>2];G=+f[e+20>>2];q=+f[e+24>>2];v=+f[e+32>>2];p=+f[e+36>>2];m=+f[e+40>>2];r=+f[b>>2];s=+f[b+4>>2];w=+f[b+8>>2];X=-1;A=3402823466385288598117041.0e14;n=0;while(1){x=+f[W+(n*36|0)+20>>2];y=+f[W+(n*36|0)+24>>2];z=+f[W+(n*36|0)+28>>2];l=(x*C+y*D+z*E)*r+(x*F+y*G+z*q)*s+(x*v+y*p+z*m)*w=0){O=c[W+(X*36|0)+4>>2]|0;if((O|0)>0){P=W+(X*36|0)+12|0;n=W+(X*36|0)+20|0;Q=W+(X*36|0)+24|0;R=W+(X*36|0)+28|0;s=F;r=G;k=0;M=g;N=Z+16|0;while(1){H=c[P>>2]|0;B=c[H+(k<<2)>>2]|0;g=c[d+16>>2]|0;L=k+1|0;H=c[H+(((L|0)==(O|0)?0:L)<<2)>>2]|0;x=+f[g+(B<<4)>>2];w=x-+f[g+(H<<4)>>2];y=+f[g+(B<<4)+4>>2];_=y-+f[g+(H<<4)+4>>2];z=+f[g+(B<<4)+8>>2];F=z-+f[g+(H<<4)+8>>2];K=w*C+_*D+F*E;I=w*s+_*r+F*q;F=w*v+_*p+F*m;_=+f[n>>2];w=+f[Q>>2];A=+f[R>>2];J=C*_+D*w+E*A;G=s*_+r*w+q*A;A=v*_+p*w+m*A;v=(x*C+y*D+z*E+ +f[e+48>>2])*-(I*A-F*G)+(x*s+y*r+z*q+ +f[e+52>>2])*-(F*J-K*A)+(x*v+y*p+z*m+ +f[e+56>>2])*-(K*G-I*J);H=M;g=N;k=c[H+4>>2]|0;if((k|0)>=2){o=c[H+12>>2]|0;p=+f[o+(k+-1<<4)>>2];q=+f[o+(k+-1<<4)+4>>2];r=+f[o+(k+-1<<4)+8>>2];m=p*-(I*A-F*G)+q*-(F*J-K*A)+r*-(K*G-I*J)-v;B=0;while(1){x=+f[o+(B<<4)>>2];y=+f[o+(B<<4)+4>>2];z=+f[o+(B<<4)+8>>2];u=c[o+(B<<4)+12>>2]|0;w=x*-(I*A-F*G)+y*-(F*J-K*A)+z*-(K*G-I*J)-v;do if(m<0.0)if(w<0.0){l=c[g+4>>2]|0;if((l|0)==(c[g+8>>2]|0)?(T=(l|0)==0?1:l<<1,(l|0)<(T|0)):0){if(!T)o=0;else{c[6747]=(c[6747]|0)+1;l=kb((T<<4|3)+16|0)|0;if(!l)o=0;else{c[(l+4+15&-16)+-4>>2]=l;o=l+4+15&-16}l=c[g+4>>2]|0}if((l|0)>0){t=0;do{$=o+(t<<4)|0;aa=(c[g+12>>2]|0)+(t<<4)|0;c[$>>2]=c[aa>>2];c[$+4>>2]=c[aa+4>>2];c[$+8>>2]=c[aa+8>>2];c[$+12>>2]=c[aa+12>>2];t=t+1|0}while((t|0)!=(l|0))}l=c[g+12>>2]|0;if(l|0){if(a[g+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[l+-4>>2]|0)}c[g+12>>2]=0}a[g+16>>0]=1;c[g+12>>2]=o;c[g+8>>2]=T;l=c[g+4>>2]|0}t=c[g+12>>2]|0;f[t+(l<<4)>>2]=x;f[t+(l<<4)+4>>2]=y;f[t+(l<<4)+8>>2]=z;c[t+(l<<4)+12>>2]=u;t=83;break}else{m=m/(m-w);s=p+(x-p)*m;p=q+(y-q)*m;m=r+(z-r)*m;l=c[g+4>>2]|0;if((l|0)==(c[g+8>>2]|0)?(V=(l|0)==0?1:l<<1,(l|0)<(V|0)):0){if(!V)o=0;else{c[6747]=(c[6747]|0)+1;l=kb((V<<4|3)+16|0)|0;if(!l)o=0;else{c[(l+4+15&-16)+-4>>2]=l;o=l+4+15&-16}l=c[g+4>>2]|0}if((l|0)>0){t=0;do{aa=o+(t<<4)|0;$=(c[g+12>>2]|0)+(t<<4)|0;c[aa>>2]=c[$>>2];c[aa+4>>2]=c[$+4>>2];c[aa+8>>2]=c[$+8>>2];c[aa+12>>2]=c[$+12>>2];t=t+1|0}while((t|0)!=(l|0))}l=c[g+12>>2]|0;if(l|0){if(a[g+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[l+-4>>2]|0)}c[g+12>>2]=0}a[g+16>>0]=1;c[g+12>>2]=o;c[g+8>>2]=V;l=c[g+4>>2]|0}t=c[g+12>>2]|0;f[t+(l<<4)>>2]=s;f[t+(l<<4)+4>>2]=p;f[t+(l<<4)+8>>2]=m;f[t+(l<<4)+12>>2]=0.0;t=83;break}else if(w<0.0){m=m/(m-w);s=p+(x-p)*m;p=q+(y-q)*m;m=r+(z-r)*m;l=c[g+4>>2]|0;if((l|0)==(c[g+8>>2]|0)?(U=(l|0)==0?1:l<<1,(l|0)<(U|0)):0){if(!U)o=0;else{c[6747]=(c[6747]|0)+1;l=kb((U<<4|3)+16|0)|0;if(!l)o=0;else{c[(l+4+15&-16)+-4>>2]=l;o=l+4+15&-16}l=c[g+4>>2]|0}if((l|0)>0){t=0;do{aa=o+(t<<4)|0;$=(c[g+12>>2]|0)+(t<<4)|0;c[aa>>2]=c[$>>2];c[aa+4>>2]=c[$+4>>2];c[aa+8>>2]=c[$+8>>2];c[aa+12>>2]=c[$+12>>2];t=t+1|0}while((t|0)!=(l|0))}l=c[g+12>>2]|0;if(l|0){if(a[g+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[l+-4>>2]|0)}c[g+12>>2]=0}a[g+16>>0]=1;c[g+12>>2]=o;c[g+8>>2]=U;l=c[g+4>>2]|0}aa=c[g+12>>2]|0;f[aa+(l<<4)>>2]=s;f[aa+(l<<4)+4>>2]=p;f[aa+(l<<4)+8>>2]=m;f[aa+(l<<4)+12>>2]=0.0;l=(c[g+4>>2]|0)+1|0;c[g+4>>2]=l;if((l|0)==(c[g+8>>2]|0)?(S=(l|0)==0?1:l<<1,(l|0)<(S|0)):0){if(!S)o=0;else{c[6747]=(c[6747]|0)+1;l=kb((S<<4|3)+16|0)|0;if(!l)o=0;else{c[(l+4+15&-16)+-4>>2]=l;o=l+4+15&-16}l=c[g+4>>2]|0}if((l|0)>0){t=0;do{aa=o+(t<<4)|0;$=(c[g+12>>2]|0)+(t<<4)|0;c[aa>>2]=c[$>>2];c[aa+4>>2]=c[$+4>>2];c[aa+8>>2]=c[$+8>>2];c[aa+12>>2]=c[$+12>>2];t=t+1|0}while((t|0)!=(l|0))}l=c[g+12>>2]|0;if(l|0){if(a[g+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[l+-4>>2]|0)}c[g+12>>2]=0}a[g+16>>0]=1;c[g+12>>2]=o;c[g+8>>2]=S;l=c[g+4>>2]|0}t=c[g+12>>2]|0;f[t+(l<<4)>>2]=x;f[t+(l<<4)+4>>2]=y;f[t+(l<<4)+8>>2]=z;c[t+(l<<4)+12>>2]=u;t=83}while(0);if((t|0)==83){t=0;c[g+4>>2]=(c[g+4>>2]|0)+1}l=B+1|0;if((l|0)==(k|0))break;o=c[H+12>>2]|0;m=w;p=x;r=z;q=y;B=l}k=c[H+4>>2]|0}if((k|0)<0){if((c[H+8>>2]|0)<0){l=c[H+12>>2]|0;if(l|0){if(a[H+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[l+-4>>2]|0)}c[H+12>>2]=0}a[H+16>>0]=1;c[H+12>>2]=0;c[H+8>>2]=0}do{aa=(c[H+12>>2]|0)+(k<<4)|0;c[aa>>2]=c[Z>>2];c[aa+4>>2]=c[Z+4>>2];c[aa+8>>2]=c[Z+8>>2];c[aa+12>>2]=c[Z+12>>2];k=k+1|0}while((k|0)!=0)}c[H+4>>2]=0;if((L|0)>=(O|0))break;aa=N;C=+f[e>>2];D=+f[e+4>>2];E=+f[e+8>>2];s=+f[e+16>>2];r=+f[e+20>>2];q=+f[e+24>>2];v=+f[e+32>>2];p=+f[e+36>>2];m=+f[e+40>>2];k=L;N=M;M=aa}y=+f[e>>2];x=+f[e+4>>2];s=+f[e+8>>2];w=+f[e+16>>2];r=+f[e+20>>2];q=+f[e+24>>2];v=+f[e+32>>2];p=+f[e+36>>2];m=+f[e+40>>2];l=Q;k=R;t=e+56|0;u=e+48|0;o=e+52|0;B=g+4|0}else{y=C;x=D;s=E;w=F;r=G;n=W+(X*36|0)+20|0;l=W+(X*36|0)+24|0;k=W+(X*36|0)+28|0;t=e+56|0;u=e+48|0;o=e+52|0;B=g+4|0}J=+f[n>>2];K=+f[l>>2];_=+f[k>>2];s=J*y+K*x+_*s;r=J*w+K*r+_*q;q=J*v+K*p+_*m;p=+f[W+(X*36|0)+32>>2]-(s*+f[u>>2]+r*+f[o>>2]+q*+f[t>>2]);k=c[B>>2]|0;if((k|0)>0){o=g+12|0;n=0;do{aa=c[o>>2]|0;l=aa+(n<<4)|0;m=p+(s*+f[l>>2]+r*+f[aa+(n<<4)+4>>2]+q*+f[aa+(n<<4)+8>>2]);m=m<=h?h:m;if(m<=i){c[Z>>2]=c[l>>2];c[Z+4>>2]=c[l+4>>2];c[Z+8>>2]=c[l+8>>2];c[Z+12>>2]=c[l+12>>2];Na[c[(c[j>>2]|0)+16>>2]&15](j,b,Z,m);k=c[B>>2]|0}n=n+1|0}while((n|0)<(k|0))}}}k=c[Y>>2]|0;if(!k){ea=Z;return}if(a[Z+16+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[k+-4>>2]|0)}c[Y>>2]=0;ea=Z;return}function Hb(b,d,e,g,h){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0,B=0,C=0,D=0,E=0,F=0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0,N=0,O=0,P=0.0,Q=0.0,R=0.0,S=0;O=ea;ea=ea+208|0;f[b+56>>2]=0.0;M=O+192+4|0;N=O+192+8|0;c[O+192>>2]=0;c[O+192+4>>2]=0;c[O+192+8>>2]=0;c[O+192+12>>2]=0;c[O+128>>2]=c[d>>2];c[O+128+4>>2]=c[d+4>>2];c[O+128+8>>2]=c[d+8>>2];c[O+128+12>>2]=c[d+12>>2];c[O+128+16>>2]=c[d+16>>2];c[O+128+16+4>>2]=c[d+16+4>>2];c[O+128+16+8>>2]=c[d+16+8>>2];c[O+128+16+12>>2]=c[d+16+12>>2];c[O+128+32>>2]=c[d+32>>2];c[O+128+32+4>>2]=c[d+32+4>>2];c[O+128+32+8>>2]=c[d+32+8>>2];c[O+128+32+12>>2]=c[d+32+12>>2];D=O+128+48|0;c[D>>2]=c[d+48>>2];c[D+4>>2]=c[d+48+4>>2];c[D+8>>2]=c[d+48+8>>2];c[D+12>>2]=c[d+48+12>>2];c[O+64>>2]=c[d+64>>2];c[O+64+4>>2]=c[d+64+4>>2];c[O+64+8>>2]=c[d+64+8>>2];c[O+64+12>>2]=c[d+64+12>>2];c[O+64+16>>2]=c[d+80>>2];c[O+64+16+4>>2]=c[d+80+4>>2];c[O+64+16+8>>2]=c[d+80+8>>2];c[O+64+16+12>>2]=c[d+80+12>>2];c[O+64+32>>2]=c[d+96>>2];c[O+64+32+4>>2]=c[d+96+4>>2];c[O+64+32+8>>2]=c[d+96+8>>2];c[O+64+32+12>>2]=c[d+96+12>>2];E=O+64+48|0;c[E>>2]=c[d+112>>2];c[E+4>>2]=c[d+112+4>>2];c[E+8>>2]=c[d+112+8>>2];c[E+12>>2]=c[d+112+12>>2];G=+f[D>>2];H=+f[E>>2];I=+f[O+128+52>>2];J=+f[O+64+52>>2];K=+f[O+128+56>>2];L=+f[O+64+56>>2];f[D>>2]=G-(G+H)*.5;f[O+128+52>>2]=I-(I+J)*.5;f[O+128+56>>2]=K-(K+L)*.5;f[E>>2]=H-(G+H)*.5;f[O+64+52>>2]=J-(I+J)*.5;f[O+64+56>>2]=L-(K+L)*.5;if(((c[(c[b+28>>2]|0)+4>>2]|0)+-17|0)>>>0<2)D=((c[(c[b+32>>2]|0)+4>>2]|0)+-17|0)>>>0<2;else D=0;v=+f[b+44>>2];u=+f[b+48>>2];c[6732]=(c[6732]|0)+1;E=a[b+52>>0]|0;c[b+64>>2]=0;c[b+4>>2]=0;c[b+8>>2]=1065353216;c[b+12>>2]=0;f[b+16>>2]=0.0;c[b+68>>2]=0;c[b+60>>2]=-1;q=c[b+24>>2]|0;a[q+312>>0]=0;c[q>>2]=0;a[q+356>>0]=1;c[q+292>>2]=1566444395;c[q+296>>2]=1566444395;c[q+300>>2]=1566444395;f[q+304>>2]=0.0;c[q+336>>2]=0;c[q+336+4>>2]=0;c[q+336+8>>2]=0;c[q+336+12>>2]=0;a[q+336+16>>0]=0;a[q+332>>0]=a[q+332>>0]&-16;q=0;l=999999984306749440.0;do{o=+f[b+4>>2];m=+f[b+8>>2];j=+f[b+12>>2];p=+f[d+4>>2]*-o+ +f[d+20>>2]*-m+ +f[d+36>>2]*-j;r=+f[d+8>>2]*-o+ +f[d+24>>2]*-m+ +f[d+40>>2]*-j;f[O+48>>2]=+f[d>>2]*-o+ +f[d+16>>2]*-m+ +f[d+32>>2]*-j;f[O+48+4>>2]=p;f[O+48+8>>2]=r;f[O+48+12>>2]=0.0;r=o*+f[d+68>>2]+m*+f[d+84>>2]+j*+f[d+100>>2];p=o*+f[d+72>>2]+m*+f[d+88>>2]+j*+f[d+104>>2];f[O+32>>2]=o*+f[d+64>>2]+m*+f[d+80>>2]+j*+f[d+96>>2];f[O+32+4>>2]=r;f[O+32+8>>2]=p;f[O+32+12>>2]=0.0;Ac(O+16|0,c[b+28>>2]|0,O+48|0);Ac(O,c[b+32>>2]|0,O+32|0);p=+f[O+16>>2];r=+f[O+16+4>>2];j=+f[O+16+8>>2];m=p*+f[O+128>>2]+r*+f[O+128+4>>2]+j*+f[O+128+8>>2]+ +f[O+128+48>>2];o=p*+f[O+128+16>>2]+r*+f[O+128+20>>2]+j*+f[O+128+24>>2]+ +f[O+128+52>>2];j=p*+f[O+128+32>>2]+r*+f[O+128+36>>2]+j*+f[O+128+40>>2]+ +f[O+128+56>>2];r=+f[O>>2];p=+f[O+4>>2];t=+f[O+8>>2];k=r*+f[O+64>>2]+p*+f[O+64+4>>2]+t*+f[O+64+8>>2]+ +f[O+64+48>>2];n=r*+f[O+64+16>>2]+p*+f[O+64+20>>2]+t*+f[O+64+24>>2]+ +f[O+64+52>>2];t=r*+f[O+64+32>>2]+p*+f[O+64+36>>2]+t*+f[O+64+40>>2]+ +f[O+64+56>>2];p=D?0.0:t;r=D?0.0:j;t=D?0.0:j-t;j=(m-k)*+f[b+4>>2]+(o-n)*+f[b+8>>2]+t*+f[b+12>>2];if(j>0.0?j*j>l*+f[d+128>>2]:0){c[b+68>>2]=10;q=1;h=0}else S=7;do if((S|0)==7){S=0;B=c[b+24>>2]|0;C=c[B>>2]|0;if((C|0)>0){i=+f[B+308>>2];h=0;A=0;do{x=m-k-+f[B+4+(A<<4)>>2];y=o-n-+f[B+4+(A<<4)+4>>2];z=t-+f[B+4+(A<<4)+8>>2];h=h|x*x+y*y+z*z<=i;A=A+1|0}while((A|0)!=(C|0))}else h=0;if((+f[B+304>>2]==0.0?t==+f[B+300>>2]:0)?o-n==+f[B+296>>2]:0){if(m-k==+f[B+292>>2]|h)S=15}else S=14;if((S|0)==14?(S=0,h):0)S=15;if((S|0)==15){S=0;c[b+68>>2]=1;q=1;h=0;break}i=l-j;if(i<=l*9.999999974752427e-07){c[b+68>>2]=!(i<=0.0)?11:2;q=1;h=0;break}f[B+292>>2]=m-k;f[B+296>>2]=o-n;f[B+300>>2]=t;f[B+304>>2]=0.0;a[B+356>>0]=1;f[B+4+(C<<4)>>2]=m-k;f[B+4+(C<<4)+4>>2]=o-n;f[B+4+(C<<4)+8>>2]=t;f[B+4+(C<<4)+12>>2]=0.0;h=c[B>>2]|0;f[B+84+(h<<4)>>2]=m;f[B+84+(h<<4)+4>>2]=o;f[B+84+(h<<4)+8>>2]=r;f[B+84+(h<<4)+12>>2]=0.0;h=c[B>>2]|0;f[B+164+(h<<4)>>2]=k;f[B+164+(h<<4)+4>>2]=n;f[B+164+(h<<4)+8>>2]=p;f[B+164+(h<<4)+12>>2]=0.0;c[B>>2]=(c[B>>2]|0)+1;h=c[b+24>>2]|0;C=nb(h)|0;i=+f[h+276>>2];j=+f[h+280>>2];k=+f[h+284>>2];h=c[h+288>>2]|0;if(!C){c[b+68>>2]=3;q=1;h=0;break}if(i*i+j*j+k*k<9.999999974752427e-07){f[b+4>>2]=i;f[b+8>>2]=j;f[b+12>>2]=k;c[b+16>>2]=h;c[b+68>>2]=6;q=1;h=0;break}if(l-(i*i+j*j+k*k)<=l*1.1920928955078125e-07){c[b+68>>2]=12;q=1;h=0;l=i*i+j*j+k*k;break}f[b+4>>2]=i;f[b+8>>2]=j;f[b+12>>2]=k;c[b+16>>2]=h;C=c[b+64>>2]|0;c[b+64>>2]=C+1;if((C|0)<=1e3)if((c[c[b+24>>2]>>2]|0)==4){c[b+68>>2]=13;h=0;l=i*i+j*j+k*k}else{h=1;l=i*i+j*j+k*k}else{h=0;l=i*i+j*j+k*k}}while(0)}while(h);t=E<<24>>24==0?u:0.0;r=(E<<24>>24==0?v:0.0)+t;if(q){E=c[b+24>>2]|0;nb(E)|0;k=+f[E+260>>2];j=+f[E+264>>2];i=+f[E+268>>2];c[O+192>>2]=c[b+4>>2];c[O+192+4>>2]=c[b+4+4>>2];c[O+192+8>>2]=c[b+4+8>>2];c[O+192+12>>2]=c[b+4+12>>2];m=+f[b+4>>2];n=+f[b+8>>2];o=+f[b+12>>2];if(m*m+n*n+o*o<.0001)c[b+68>>2]=5;if(m*m+n*n+o*o>1.4210854715202004e-14){y=1.0/+s(+(m*m+n*n+o*o));f[O+192>>2]=y*+f[O+192>>2];f[M>>2]=y*+f[M>>2];f[N>>2]=y*+f[N>>2];z=t/+s(+l);h=1;l=1.0/y-r;q=1;k=z*m+k;j=z*n+j;i=z*o+i}else{h=2;l=0.0;q=0}c[b+60>>2]=h}else{l=0.0;q=0;k=0.0;j=0.0;i=0.0}if((c[b+72>>2]|0)!=0?(c[b+20>>2]|0)!=0:0)h=r+l<.01&(c[b+68>>2]|0)!=0;else h=0;A=q^1;do if(h|A?(F=c[b+20>>2]|0,(F|0)!=0):0){c[6731]=(c[6731]|0)+1;c[b+4>>2]=0;c[b+4+4>>2]=0;c[b+4+8>>2]=0;c[b+4+12>>2]=0;if(Aa[c[(c[F>>2]|0)+8>>2]&3](F,c[b+24>>2]|0,c[b+28>>2]|0,c[b+32>>2]|0,O+128|0,O+64|0,b+4|0,O+48|0,O+32|0,g)|0){n=+f[O+32>>2];o=+f[O+48>>2];p=+f[O+32+4>>2];r=+f[O+48+4>>2];t=+f[O+32+8>>2];u=+f[O+48+8>>2];if(!((n-o)*(n-o)+(p-r)*(p-r)+(t-u)*(t-u)<=1.4210854715202004e-14)){m=(n-o)*(n-o)+(p-r)*(p-r)+(t-u)*(t-u);w=n-o;x=t-u;y=0.0;z=p-r}else{w=+f[b+4>>2];z=+f[b+8>>2];x=+f[b+12>>2];m=w*w+z*z+x*x;y=+f[b+16>>2]}if(m>1.4210854715202004e-14){v=1.0/+s(+m);m=-+s(+((o-n)*(o-n)+(r-p)*(r-p)+(u-t)*(u-t)));if(l>m|A){k=+f[O+32>>2];j=+f[O+32+4>>2];i=+f[O+32+8>>2];f[O+192>>2]=w*v;f[M>>2]=z*v;f[N>>2]=x*v;f[O+192+12>>2]=y;c[b+60>>2]=3;l=m;break}else h=8}else h=9;c[b+60>>2]=h;if(q)break;ea=O;return}else{n=+f[b+4>>2];o=+f[b+8>>2];p=+f[b+12>>2];if(!(n*n+o*o+p*p>0.0)){if(q)break;ea=O;return}y=+f[O+48>>2]-+f[O+32>>2];z=+f[O+48+4>>2]-+f[O+32+4>>2];m=+f[O+48+8>>2]-+f[O+32+8>>2];m=+s(+(y*y+z*z+m*m))-r;if(m>2];j=t*o+ +f[O+32+4>>2];i=t*p+ +f[O+32+8>>2];c[O+192>>2]=c[b+4>>2];c[O+192+4>>2]=c[b+4+4>>2];c[O+192+8>>2]=c[b+4+8>>2];c[O+192+12>>2]=c[b+4+12>>2];x=+f[O+192>>2];y=+f[M>>2];z=+f[N>>2];l=1.0/+s(+(x*x+y*y+z*z));f[O+192>>2]=x*l;f[M>>2]=y*l;f[N>>2]=z*l;c[b+60>>2]=6;l=m;break}c[b+60>>2]=5;if(q)break;ea=O;return}}else S=51;while(0);if((S|0)==51)if(!q){ea=O;return}if(!(l<0.0)?!(l*l<+f[d+128>>2]):0){ea=O;return}if(c[b+76>>2]|0?(S=c[b+28>>2]|0,Pa[c[(c[S>>2]|0)+8>>2]&127](S,O+128|0,O+48|0,O+32|0),x=(+f[O+32>>2]+ +f[O+48>>2])*.5,y=(+f[O+32+4>>2]+ +f[O+48+4>>2])*.5,z=(+f[O+32+8>>2]+ +f[O+48+8>>2])*.5,S=c[b+32>>2]|0,Pa[c[(c[S>>2]|0)+8>>2]&127](S,O+64|0,O+48|0,O+32|0),P=+f[O+192>>2],Q=+f[M>>2],R=+f[N>>2],(x-(+f[O+48>>2]+ +f[O+32>>2])*.5)*P+(y-(+f[O+48+4>>2]+ +f[O+32+4>>2])*.5)*Q+(z-(+f[O+48+8>>2]+ +f[O+32+8>>2])*.5)*R<0.0):0){f[O+192>>2]=-P;f[M>>2]=-Q;f[N>>2]=-R}c[b+4>>2]=c[O+192>>2];c[b+4+4>>2]=c[O+192+4>>2];c[b+4+8>>2]=c[O+192+8>>2];c[b+4+12>>2]=c[O+192+12>>2];f[b+56>>2]=l;S=c[(c[e>>2]|0)+16>>2]|0;f[O+48>>2]=(G+H)*.5+k;f[O+48+4>>2]=(I+J)*.5+j;f[O+48+8>>2]=(K+L)*.5+i;f[O+48+12>>2]=0.0;Na[S&15](e,O+192|0,O+48|0,l);ea=O;return}function Ib(d,e,g,h){d=d|0;e=e|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0;c[d+168>>2]=c[d+152>>2];c[e>>2]=10324;c[e+52>>2]=282;a[e+60>>0]=0;a[e+80>>0]=1;c[e+76>>2]=0;c[e+68>>2]=0;c[e+72>>2]=0;a[e+100>>0]=1;c[e+96>>2]=0;c[e+88>>2]=0;c[e+92>>2]=0;a[e+120>>0]=1;c[e+116>>2]=0;c[e+108>>2]=0;c[e+112>>2]=0;a[e+140>>0]=1;c[e+136>>2]=0;c[e+128>>2]=0;c[e+132>>2]=0;c[e+144>>2]=0;a[e+164>>0]=1;c[e+160>>2]=0;c[e+152>>2]=0;c[e+156>>2]=0;c[e+168>>2]=0;c[e+4>>2]=-8388609;c[e+8>>2]=-8388609;c[e+12>>2]=-8388609;f[e+16>>2]=0.0;c[e+20>>2]=2139095039;c[e+24>>2]=2139095039;c[e+28>>2]=2139095039;f[e+32>>2]=0.0;g=c[d+56>>2]|0;if(h){c[e+56>>2]=$B(g|0)|0;a[e+4>>0]=a[d+4+3>>0]|0;a[e+5>>0]=a[d+4+2>>0]|0;a[e+6>>0]=a[d+4+1>>0]|0;a[e+7>>0]=a[d+4>>0]|0;a[e+8>>0]=a[d+8+3>>0]|0;a[e+9>>0]=a[d+8+2>>0]|0;a[e+10>>0]=a[d+8+1>>0]|0;a[e+11>>0]=a[d+8>>0]|0;a[e+12>>0]=a[d+12+3>>0]|0;a[e+13>>0]=a[d+12+2>>0]|0;a[e+14>>0]=a[d+12+1>>0]|0;a[e+15>>0]=a[d+12>>0]|0;a[e+16>>0]=a[d+16+3>>0]|0;a[e+17>>0]=a[d+16+2>>0]|0;a[e+18>>0]=a[d+16+1>>0]|0;a[e+19>>0]=a[d+16>>0]|0;a[e+20>>0]=a[d+20+3>>0]|0;a[e+21>>0]=a[d+20+2>>0]|0;a[e+22>>0]=a[d+20+1>>0]|0;a[e+23>>0]=a[d+20>>0]|0;a[e+24>>0]=a[d+24+3>>0]|0;a[e+25>>0]=a[d+24+2>>0]|0;a[e+26>>0]=a[d+24+1>>0]|0;a[e+27>>0]=a[d+24>>0]|0;a[e+28>>0]=a[d+28+3>>0]|0;a[e+29>>0]=a[d+28+2>>0]|0;a[e+30>>0]=a[d+28+1>>0]|0;a[e+31>>0]=a[d+28>>0]|0;a[e+32>>0]=a[d+32+3>>0]|0;a[e+33>>0]=a[d+32+2>>0]|0;a[e+34>>0]=a[d+32+1>>0]|0;a[e+35>>0]=a[d+32>>0]|0;a[e+36>>0]=a[d+36+3>>0]|0;a[e+37>>0]=a[d+36+2>>0]|0;a[e+38>>0]=a[d+36+1>>0]|0;a[e+39>>0]=a[d+36>>0]|0;a[e+40>>0]=a[d+40+3>>0]|0;a[e+41>>0]=a[d+40+2>>0]|0;a[e+42>>0]=a[d+40+1>>0]|0;a[e+43>>0]=a[d+40>>0]|0;a[e+44>>0]=a[d+44+3>>0]|0;a[e+45>>0]=a[d+44+2>>0]|0;a[e+46>>0]=a[d+44+1>>0]|0;a[e+47>>0]=a[d+44>>0]|0;a[e+48>>0]=a[d+48+3>>0]|0;a[e+49>>0]=a[d+48+2>>0]|0;a[e+50>>0]=a[d+48+1>>0]|0;a[e+51>>0]=a[d+48>>0]|0;c[e+144>>2]=$B(c[d+144>>2]|0)|0;g=$B(c[d+168>>2]|0)|0}else{c[e+56>>2]=g;c[e+4>>2]=c[d+4>>2];c[e+4+4>>2]=c[d+4+4>>2];c[e+4+8>>2]=c[d+4+8>>2];c[e+4+12>>2]=c[d+4+12>>2];c[e+20>>2]=c[d+20>>2];c[e+20+4>>2]=c[d+20+4>>2];c[e+20+8>>2]=c[d+20+8>>2];c[e+20+12>>2]=c[d+20+12>>2];c[e+36>>2]=c[d+36>>2];c[e+36+4>>2]=c[d+36+4>>2];c[e+36+8>>2]=c[d+36+8>>2];c[e+36+12>>2]=c[d+36+12>>2];c[e+144>>2]=c[d+144>>2];g=c[d+168>>2]|0}c[e+168>>2]=g;a[e+60>>0]=a[d+60>>0]|0;k=c[d+56>>2]|0;if(!(a[d+60>>0]|0)){g=c[e+96>>2]|0;if(g|0){if(a[e+100>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[e+96>>2]=0}a[e+100>>0]=0;c[e+96>>2]=e+172;c[e+88>>2]=k;c[e+92>>2]=k;if(h)if((k|0)>0){i=c[d+96>>2]|0;g=e+172|0;j=0;do{l=i+(j<<6)|0;n=g+(j<<6)|0;a[n>>0]=a[l+3>>0]|0;a[n+1>>0]=a[l+2>>0]|0;a[n+2>>0]=a[l+1>>0]|0;a[n+3>>0]=a[l>>0]|0;n=i+(j<<6)+4|0;l=g+(j<<6)+4|0;a[l>>0]=a[n+3>>0]|0;a[l+1>>0]=a[n+2>>0]|0;a[l+2>>0]=a[n+1>>0]|0;a[l+3>>0]=a[n>>0]|0;l=i+(j<<6)+8|0;n=g+(j<<6)+8|0;a[n>>0]=a[l+3>>0]|0;a[n+1>>0]=a[l+2>>0]|0;a[n+2>>0]=a[l+1>>0]|0;a[n+3>>0]=a[l>>0]|0;n=i+(j<<6)+12|0;g=g+(j<<6)+12|0;a[g>>0]=a[n+3>>0]|0;a[g+1>>0]=a[n+2>>0]|0;a[g+2>>0]=a[n+1>>0]|0;a[g+3>>0]=a[n>>0]|0;g=c[d+96>>2]|0;n=g+(j<<6)+16|0;l=c[e+96>>2]|0;m=l+(j<<6)+16|0;a[m>>0]=a[n+3>>0]|0;a[m+1>>0]=a[n+2>>0]|0;a[m+2>>0]=a[n+1>>0]|0;a[m+3>>0]=a[n>>0]|0;m=g+(j<<6)+20|0;n=l+(j<<6)+20|0;a[n>>0]=a[m+3>>0]|0;a[n+1>>0]=a[m+2>>0]|0;a[n+2>>0]=a[m+1>>0]|0;a[n+3>>0]=a[m>>0]|0;n=g+(j<<6)+24|0;m=l+(j<<6)+24|0;a[m>>0]=a[n+3>>0]|0;a[m+1>>0]=a[n+2>>0]|0;a[m+2>>0]=a[n+1>>0]|0;a[m+3>>0]=a[n>>0]|0;g=g+(j<<6)+28|0;l=l+(j<<6)+28|0;a[l>>0]=a[g+3>>0]|0;a[l+1>>0]=a[g+2>>0]|0;a[l+2>>0]=a[g+1>>0]|0;a[l+3>>0]=a[g>>0]|0;i=c[d+96>>2]|0;l=$B(c[i+(j<<6)+32>>2]|0)|0;g=c[e+96>>2]|0;c[g+(j<<6)+32>>2]=l;c[g+(j<<6)+36>>2]=$B(c[i+(j<<6)+36>>2]|0)|0;c[g+(j<<6)+40>>2]=$B(c[i+(j<<6)+40>>2]|0)|0;j=j+1|0}while((j|0)!=(k|0));i=29}else i=28;else if((k|0)>0){i=c[d+96>>2]|0;g=e+172|0;j=0;do{m=i+(j<<6)|0;n=g+(j<<6)|0;c[n>>2]=c[m>>2];c[n+4>>2]=c[m+4>>2];c[n+8>>2]=c[m+8>>2];c[n+12>>2]=c[m+12>>2];n=(c[d+96>>2]|0)+(j<<6)+16|0;g=(c[e+96>>2]|0)+(j<<6)+16|0;c[g>>2]=c[n>>2];c[g+4>>2]=c[n+4>>2];c[g+8>>2]=c[n+8>>2];c[g+12>>2]=c[n+12>>2];i=c[d+96>>2]|0;g=c[e+96>>2]|0;c[g+(j<<6)+32>>2]=c[i+(j<<6)+32>>2];c[g+(j<<6)+36>>2]=c[i+(j<<6)+36>>2];c[g+(j<<6)+40>>2]=c[i+(j<<6)+40>>2];j=j+1|0}while((j|0)!=(k|0));i=29}else i=28;if((i|0)==28){g=k<<6;i=32}else if((i|0)==29)if(g)if((a[e+100>>0]|0)==0|(g|0)==0){g=k<<6;i=32}else{c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0);g=k<<6;i=32}else g=k<<6;if((i|0)==32)c[e+96>>2]=0;c[e+88>>2]=0;c[e+88+4>>2]=0;c[e+88+8>>2]=0;a[e+88+12>>0]=0}else{g=c[e+136>>2]|0;if(g|0){if(a[e+140>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[e+136>>2]=0}a[e+140>>0]=0;c[e+136>>2]=e+172;c[e+128>>2]=k;c[e+132>>2]=k;if(h){if((k|0)>0){g=c[d+136>>2]|0;i=0;do{b[e+172+(i<<4)>>1]=jI(b[g+(i<<4)>>1]|0)|0;b[e+172+(i<<4)+2>>1]=jI(b[g+(i<<4)+2>>1]|0)|0;b[e+172+(i<<4)+4>>1]=jI(b[g+(i<<4)+4>>1]|0)|0;b[e+172+(i<<4)+6>>1]=jI(b[g+(i<<4)+6>>1]|0)|0;b[e+172+(i<<4)+8>>1]=jI(b[g+(i<<4)+8>>1]|0)|0;b[e+172+(i<<4)+10>>1]=jI(b[g+(i<<4)+10>>1]|0)|0;c[e+172+(i<<4)+12>>2]=$B(c[g+(i<<4)+12>>2]|0)|0;i=i+1|0}while((i|0)!=(k|0))}}else if((k|0)>0){g=c[d+136>>2]|0;i=0;do{b[e+172+(i<<4)>>1]=b[g+(i<<4)>>1]|0;b[e+172+(i<<4)+2>>1]=b[g+(i<<4)+2>>1]|0;b[e+172+(i<<4)+4>>1]=b[g+(i<<4)+4>>1]|0;b[e+172+(i<<4)+6>>1]=b[g+(i<<4)+6>>1]|0;b[e+172+(i<<4)+8>>1]=b[g+(i<<4)+8>>1]|0;b[e+172+(i<<4)+10>>1]=b[g+(i<<4)+10>>1]|0;c[e+172+(i<<4)+12>>2]=c[g+(i<<4)+12>>2];i=i+1|0}while((i|0)!=(k|0))}c[e+128>>2]=0;c[e+128+4>>2]=0;c[e+128+8>>2]=0;a[e+128+12>>0]=0;g=k<<4}k=e+172+g|0;g=c[d+168>>2]|0;i=c[e+160>>2]|0;if(i|0){if(a[e+164>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0)}c[e+160>>2]=0}a[e+164>>0]=0;c[e+160>>2]=k;c[e+152>>2]=g;c[e+156>>2]=g;j=c[d+168>>2]|0;if(h){if((j|0)<=0){c[e>>2]=0;c[e+152>>2]=0;c[e+152+4>>2]=0;c[e+152+8>>2]=0;a[e+152+12>>0]=0;return 1}g=c[d+160>>2]|0;i=0;do{b[k+(i<<5)>>1]=jI(b[g+(i<<5)>>1]|0)|0;b[k+(i<<5)+2>>1]=jI(b[g+(i<<5)+2>>1]|0)|0;b[k+(i<<5)+4>>1]=jI(b[g+(i<<5)+4>>1]|0)|0;b[k+(i<<5)+6>>1]=jI(b[g+(i<<5)+6>>1]|0)|0;b[k+(i<<5)+8>>1]=jI(b[g+(i<<5)+8>>1]|0)|0;b[k+(i<<5)+10>>1]=jI(b[g+(i<<5)+10>>1]|0)|0;c[k+(i<<5)+12>>2]=$B(c[g+(i<<5)+12>>2]|0)|0;c[k+(i<<5)+16>>2]=$B(c[g+(i<<5)+16>>2]|0)|0;i=i+1|0}while((i|0)!=(j|0));c[e>>2]=0;c[e+152>>2]=0;c[e+152+4>>2]=0;c[e+152+8>>2]=0;a[e+152+12>>0]=0;return 1}else{if((j|0)<=0){c[e>>2]=0;c[e+152>>2]=0;c[e+152+4>>2]=0;c[e+152+8>>2]=0;a[e+152+12>>0]=0;return 1}g=c[d+160>>2]|0;i=0;do{b[k+(i<<5)>>1]=b[g+(i<<5)>>1]|0;b[k+(i<<5)+2>>1]=b[g+(i<<5)+2>>1]|0;b[k+(i<<5)+4>>1]=b[g+(i<<5)+4>>1]|0;b[k+(i<<5)+6>>1]=b[g+(i<<5)+6>>1]|0;b[k+(i<<5)+8>>1]=b[g+(i<<5)+8>>1]|0;b[k+(i<<5)+10>>1]=b[g+(i<<5)+10>>1]|0;c[k+(i<<5)+12>>2]=c[g+(i<<5)+12>>2];c[k+(i<<5)+16>>2]=c[g+(i<<5)+16>>2];c[k+(i<<5)+20>>2]=0;c[k+(i<<5)+24>>2]=0;c[k+(i<<5)+28>>2]=0;i=i+1|0}while((i|0)<(c[d+168>>2]|0));c[e>>2]=0;c[e+152>>2]=0;c[e+152+4>>2]=0;c[e+152+8>>2]=0;a[e+152+12>>0]=0;return 1}return 0}function Jb(b,d,e,g,h,i,j,k,l,m){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0.0,o=0,p=0,q=0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0,A=0.0,B=0,C=0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0;B=ea;ea=ea+4224|0;if(((c[e+4>>2]|0)+-17|0)>>>0<2)z=((c[g+4>>2]|0)+-17|0)>>>0<2;else z=0;b=0;do{Qd();u=+f[23792+(b<<4)>>2];v=+f[23792+(b<<4)+4>>2];w=+f[23792+(b<<4)+8>>2];y=+f[h+4>>2]*-u+ +f[h+20>>2]*-v+ +f[h+36>>2]*-w;x=+f[h+8>>2]*-u+ +f[h+24>>2]*-v+ +f[h+40>>2]*-w;f[B+992+(b<<4)>>2]=+f[h>>2]*-u+ +f[h+16>>2]*-v+ +f[h+32>>2]*-w;f[B+992+(b<<4)+4>>2]=y;f[B+992+(b<<4)+8>>2]=x;f[B+992+(b<<4)+12>>2]=0.0;x=u*+f[i+4>>2]+v*+f[i+20>>2]+w*+f[i+36>>2];y=u*+f[i+8>>2]+v*+f[i+24>>2]+w*+f[i+40>>2];f[B+(b<<4)>>2]=u*+f[i>>2]+v*+f[i+16>>2]+w*+f[i+32>>2];f[B+(b<<4)+4>>2]=x;f[B+(b<<4)+8>>2]=y;f[B+(b<<4)+12>>2]=0.0;b=b+1|0}while((b|0)!=42);b=ra[c[(c[e>>2]|0)+84>>2]&127](e)|0;if((b|0)>0){o=0;p=42;while(1){Ma[c[(c[e>>2]|0)+88>>2]&127](e,o,B+4144|0);x=+f[B+4144>>2];y=+f[B+4144+4>>2];w=+f[B+4144+8>>2];v=x*+f[h+16>>2]+y*+f[h+20>>2]+w*+f[h+24>>2];u=x*+f[h+32>>2]+y*+f[h+36>>2]+w*+f[h+40>>2];f[B+4144>>2]=+f[h>>2]*x+ +f[h+4>>2]*y+ +f[h+8>>2]*w;f[B+4144+4>>2]=v;f[B+4144+8>>2]=u;f[B+4144+12>>2]=0.0;Qd();q=23792+(p<<4)|0;c[q>>2]=c[B+4144>>2];c[q+4>>2]=c[B+4144+4>>2];c[q+8>>2]=c[B+4144+8>>2];c[q+12>>2]=c[B+4144+12>>2];u=+f[B+4144>>2];v=+f[B+4144+4>>2];w=+f[B+4144+8>>2];y=+f[h+4>>2]*-u+ +f[h+20>>2]*-v+ +f[h+36>>2]*-w;x=+f[h+8>>2]*-u+ +f[h+24>>2]*-v+ +f[h+40>>2]*-w;f[B+992+(p<<4)>>2]=+f[h>>2]*-u+ +f[h+16>>2]*-v+ +f[h+32>>2]*-w;f[B+992+(p<<4)+4>>2]=y;f[B+992+(p<<4)+8>>2]=x;f[B+992+(p<<4)+12>>2]=0.0;x=u*+f[i+4>>2]+v*+f[i+20>>2]+w*+f[i+36>>2];y=u*+f[i+8>>2]+v*+f[i+24>>2]+w*+f[i+40>>2];f[B+(p<<4)>>2]=u*+f[i>>2]+v*+f[i+16>>2]+w*+f[i+32>>2];f[B+(p<<4)+4>>2]=x;f[B+(p<<4)+8>>2]=y;f[B+(p<<4)+12>>2]=0.0;o=o+1|0;if((o|0)==(b|0))break;else p=p+1|0}p=b+42|0}else p=42;b=ra[c[(c[g>>2]|0)+84>>2]&127](g)|0;if((b|0)>0){o=0;q=p;while(1){Ma[c[(c[g>>2]|0)+88>>2]&127](g,o,B+4144|0);x=+f[B+4144>>2];y=+f[B+4144+4>>2];w=+f[B+4144+8>>2];v=x*+f[i+16>>2]+y*+f[i+20>>2]+w*+f[i+24>>2];u=x*+f[i+32>>2]+y*+f[i+36>>2]+w*+f[i+40>>2];f[B+4144>>2]=+f[i>>2]*x+ +f[i+4>>2]*y+ +f[i+8>>2]*w;f[B+4144+4>>2]=v;f[B+4144+8>>2]=u;f[B+4144+12>>2]=0.0;Qd();C=23792+(q<<4)|0;c[C>>2]=c[B+4144>>2];c[C+4>>2]=c[B+4144+4>>2];c[C+8>>2]=c[B+4144+8>>2];c[C+12>>2]=c[B+4144+12>>2];u=+f[B+4144>>2];v=+f[B+4144+4>>2];w=+f[B+4144+8>>2];y=+f[h+4>>2]*-u+ +f[h+20>>2]*-v+ +f[h+36>>2]*-w;x=+f[h+8>>2]*-u+ +f[h+24>>2]*-v+ +f[h+40>>2]*-w;f[B+992+(q<<4)>>2]=+f[h>>2]*-u+ +f[h+16>>2]*-v+ +f[h+32>>2]*-w;f[B+992+(q<<4)+4>>2]=y;f[B+992+(q<<4)+8>>2]=x;f[B+992+(q<<4)+12>>2]=0.0;x=u*+f[i+4>>2]+v*+f[i+20>>2]+w*+f[i+36>>2];y=u*+f[i+8>>2]+v*+f[i+24>>2]+w*+f[i+40>>2];f[B+(q<<4)>>2]=u*+f[i>>2]+v*+f[i+16>>2]+w*+f[i+32>>2];f[B+(q<<4)+4>>2]=x;f[B+(q<<4)+8>>2]=y;f[B+(q<<4)+12>>2]=0.0;o=o+1|0;if((o|0)==(b|0))break;else q=q+1|0}p=b+p|0}Pa[c[(c[e>>2]|0)+76>>2]&127](e,B+992|0,B+2976|0,p);Pa[c[(c[g>>2]|0)+76>>2]&127](g,B,B+1984|0,p);if((p|0)>0){n=0.0;v=0.0;u=0.0;b=0;t=0.0;r=999999984306749440.0;do{Qd();s=+f[23792+(b<<4)>>2];w=+f[23792+(b<<4)+4>>2];y=+f[23792+(b<<4)+12>>2];x=z?0.0:+f[23792+(b<<4)+8>>2];if(s*s+w*w+x*x>.01?(E=+f[B+2976+(b<<4)>>2],D=+f[B+2976+(b<<4)+4>>2],A=+f[B+2976+(b<<4)+8>>2],H=+f[B+1984+(b<<4)>>2],G=+f[B+1984+(b<<4)+4>>2],F=+f[B+1984+(b<<4)+8>>2],A=s*(H*+f[i>>2]+G*+f[i+4>>2]+F*+f[i+8>>2]+ +f[i+48>>2]-(E*+f[h>>2]+D*+f[h+4>>2]+A*+f[h+8>>2]+ +f[h+48>>2]))+w*(H*+f[i+16>>2]+G*+f[i+20>>2]+F*+f[i+24>>2]+ +f[i+52>>2]-(E*+f[h+16>>2]+D*+f[h+20>>2]+A*+f[h+24>>2]+ +f[h+52>>2]))+x*(z?0.0:H*+f[i+32>>2]+G*+f[i+36>>2]+F*+f[i+40>>2]+ +f[i+56>>2]-(E*+f[h+32>>2]+D*+f[h+36>>2]+A*+f[h+40>>2]+ +f[h+56>>2])),A>2]|0){case 4:case 5:case 10:case 11:case 13:case 1:case 0:case 8:break;default:+ha[c[(c[e>>2]|0)+48>>2]&15](e)}switch(c[g+4>>2]|0){case 4:case 5:case 10:case 11:case 13:case 1:case 0:case 8:break;default:+ha[c[(c[g>>2]|0)+48>>2]&15](g)}if(r<0.0){C=0;ea=B;return C|0}switch(c[e+4>>2]|0){case 8:{s=+f[e+28>>2]*+f[e+12>>2];break}case 0:{s=+f[e+44>>2];break}case 1:{s=+f[e+44>>2];break}case 13:{s=+f[e+44>>2];break}case 11:{s=+f[e+44>>2];break}case 10:{s=+f[e+44>>2];break}case 4:case 5:{s=+f[e+44>>2];break}default:s=+ha[c[(c[e>>2]|0)+48>>2]&15](e)}b=c[g+4>>2]|0;switch(b|0){case 8:{b=8;n=+f[g+28>>2]*+f[g+12>>2];break}case 0:{b=0;n=+f[g+44>>2];break}case 1:{b=1;n=+f[g+44>>2];break}case 13:{b=13;n=+f[g+44>>2];break}case 11:{b=11;n=+f[g+44>>2];break}case 10:{b=10;n=+f[g+44>>2];break}case 4:case 5:{n=+f[g+44>>2];break}default:{n=+ha[c[(c[g>>2]|0)+48>>2]&15](g);b=c[g+4>>2]|0}}n=r+(s+n+.5);c[B+4144>>2]=10520;c[B+4144+4>>2]=0;c[B+4144+8>>2]=1065353216;c[B+4144+12>>2]=0;f[B+4144+16>>2]=0.0;c[B+4144+20>>2]=0;c[B+4144+24>>2]=d;c[B+4144+28>>2]=e;c[B+4144+32>>2]=g;c[B+4144+36>>2]=c[e+4>>2];c[B+4144+40>>2]=b;f[B+4144+44>>2]=+ha[c[(c[e>>2]|0)+48>>2]&15](e);f[B+4144+48>>2]=+ha[c[(c[g>>2]|0)+48>>2]&15](g);a[B+4144+52>>0]=0;c[B+4144+60>>2]=-1;c[B+4144+72>>2]=1;c[B+4144+76>>2]=1;F=u*n+ +f[h+48>>2];G=v*n+ +f[h+52>>2];H=w*n+ +f[h+56>>2];c[B+4012>>2]=c[h>>2];c[B+4012+4>>2]=c[h+4>>2];c[B+4012+8>>2]=c[h+8>>2];c[B+4012+12>>2]=c[h+12>>2];c[B+4012+16>>2]=c[h+16>>2];c[B+4012+16+4>>2]=c[h+16+4>>2];c[B+4012+16+8>>2]=c[h+16+8>>2];c[B+4012+16+12>>2]=c[h+16+12>>2];c[B+4012+32>>2]=c[h+32>>2];c[B+4012+32+4>>2]=c[h+32+4>>2];c[B+4012+32+8>>2]=c[h+32+8>>2];c[B+4012+32+12>>2]=c[h+32+12>>2];f[B+4012+48>>2]=F;f[B+4012+52>>2]=G;f[B+4012+56>>2]=H;f[B+4012+60>>2]=0.0;c[B+4012+64>>2]=c[i>>2];c[B+4012+64+4>>2]=c[i+4>>2];c[B+4012+64+8>>2]=c[i+8>>2];c[B+4012+64+12>>2]=c[i+12>>2];c[B+4012+80>>2]=c[i+16>>2];c[B+4012+80+4>>2]=c[i+16+4>>2];c[B+4012+80+8>>2]=c[i+16+8>>2];c[B+4012+80+12>>2]=c[i+16+12>>2];c[B+4012+96>>2]=c[i+32>>2];c[B+4012+96+4>>2]=c[i+32+4>>2];c[B+4012+96+8>>2]=c[i+32+8>>2];c[B+4012+96+12>>2]=c[i+32+12>>2];c[B+4012+112>>2]=c[i+48>>2];c[B+4012+112+4>>2]=c[i+48+4>>2];c[B+4012+112+8>>2]=c[i+48+8>>2];c[B+4012+112+12>>2]=c[i+48+12>>2];f[B+4012+128>>2]=999999984306749440.0;c[B+3968>>2]=10404;a[B+3968+40>>0]=0;f[B+4144+4>>2]=-u;f[B+4144+8>>2]=-v;f[B+4144+12>>2]=-w;f[B+4144+16>>2]=0.0;Hb(B+4144|0,B+4012|0,B+3968|0,m,0);n=n-+f[B+3968+36>>2];b=a[B+3968+40>>0]|0;if(b<<24>>24){C=B+3968+20|0;G=+f[B+3968+24>>2]-v*n;H=+f[B+3968+28>>2]-w*n;f[k>>2]=+f[C>>2]-u*n;f[k+4>>2]=G;f[k+8>>2]=H;f[k+12>>2]=0.0;c[l>>2]=c[C>>2];c[l+4>>2]=c[C+4>>2];c[l+8>>2]=c[C+8>>2];c[l+12>>2]=c[C+12>>2];f[j>>2]=u;f[j+4>>2]=v;f[j+8>>2]=w;f[j+12>>2]=t}C=b<<24>>24!=0;ea=B;return C|0}function Kb(b){b=b|0;var d=0,e=0.0,g=0.0,h=0.0,i=0,j=0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0,D=0,E=0,F=0,G=0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0;G=ea;ea=ea+192|0;Fi(13654);d=c[b+1112>>2]|0;if((d|0)>0){F=0;do{E=c[(c[b+1120>>2]|0)+(F<<2)>>2]|0;D=c[E+24>>2]|0;if(D){i=G+144+4|0;j=i+44|0;do{c[i>>2]=0;i=i+4|0}while((i|0)<(j|0));f[G+144>>2]=9.999999747378752e-05;f[G+144+20>>2]=1.9999999494757503e-04;f[G+144+40>>2]=2.9999998514540493e-04;if((D|0)>0){d=c[E+32>>2]|0;i=c[E+12>>2]|0;e=0.0;g=0.0;h=0.0;j=0;do{C=c[d+(j<<2)>>2]|0;B=+f[i+(j<<2)>>2];e=e+ +f[C+8>>2]*B;g=g+B*+f[C+12>>2];h=h+B*+f[C+16>>2];j=j+1|0}while((j|0)!=(D|0))}else{h=0.0;g=0.0;e=0.0}q=+f[E+128>>2];s=e*q;r=g*q;q=h*q;f[E+228>>2]=s;f[E+232>>2]=r;f[E+236>>2]=q;f[E+240>>2]=0.0;if((D|0)>0){d=c[E+32>>2]|0;i=c[E+52>>2]|0;e=9.999999747378752e-05;g=0.0;h=0.0;k=1.9999999494757503e-04;l=0.0;m=0.0;n=0.0;o=2.9999998514540493e-04;p=0.0;j=0;do{C=c[d+(j<<2)>>2]|0;w=+f[C+8>>2]-s;x=+f[C+12>>2]-r;A=+f[C+16>>2]-q;y=+f[i+(j<<4)>>2];z=+f[i+(j<<4)+4>>2];B=+f[i+(j<<4)+8>>2];e=w*y+e;g=w*z+g;h=w*B+h;p=x*y+p;k=x*z+k;l=x*B+l;m=A*y+m;n=A*z+n;o=A*B+o;j=j+1|0}while((j|0)!=(D|0));f[G+144>>2]=e;f[G+144+4>>2]=g;f[G+144+8>>2]=h;f[G+144+16>>2]=p;f[G+144+20>>2]=k;f[G+144+24>>2]=l;f[G+144+32>>2]=m;f[G+144+36>>2]=n;f[G+144+40>>2]=o}if((a[24920]|0)==0?DC(24920)|0:0){f[6392]=9.999999747378752e-05;c[6393]=16;PB(24920)}bc(G+144|0,G+96|0,G+48|0);c[E+108>>2]=c[E+228>>2];c[E+108+4>>2]=c[E+228+4>>2];c[E+108+8>>2]=c[E+228+8>>2];c[E+108+12>>2]=c[E+228+12>>2];c[E+60>>2]=c[G+96>>2];c[E+60+4>>2]=c[G+96+4>>2];c[E+60+8>>2]=c[G+96+8>>2];c[E+60+12>>2]=c[G+96+12>>2];c[E+76>>2]=c[G+96+16>>2];c[E+76+4>>2]=c[G+96+16+4>>2];c[E+76+8>>2]=c[G+96+16+8>>2];c[E+76+12>>2]=c[G+96+16+12>>2];c[E+92>>2]=c[G+96+32>>2];c[E+92+4>>2]=c[G+96+32+4>>2];c[E+92+8>>2]=c[G+96+32+8>>2];c[E+92+12>>2]=c[G+96+32+12>>2];l=+f[E+132>>2];J=+f[E+60>>2];m=+f[E+148>>2];I=+f[E+64>>2];n=+f[E+164>>2];x=+f[E+68>>2];o=+f[E+136>>2];p=+f[E+152>>2];q=+f[E+168>>2];r=+f[E+140>>2];s=+f[E+156>>2];t=+f[E+172>>2];H=+f[E+76>>2];e=+f[E+80>>2];w=+f[E+84>>2];k=+f[E+92>>2];h=+f[E+96>>2];g=+f[E+100>>2];v=(l*J+m*I+n*x)*J+(J*o+I*p+x*q)*I+(J*r+I*s+x*t)*x;u=(l*J+m*I+n*x)*H+(J*o+I*p+x*q)*e+(J*r+I*s+x*t)*w;B=(l*J+m*I+n*x)*k+(J*o+I*p+x*q)*h+(J*r+I*s+x*t)*g;A=(l*H+m*e+n*w)*J+(o*H+p*e+q*w)*I+(r*H+s*e+t*w)*x;z=(l*H+m*e+n*w)*H+(o*H+p*e+q*w)*e+(r*H+s*e+t*w)*w;y=(l*H+m*e+n*w)*k+(o*H+p*e+q*w)*h+(r*H+s*e+t*w)*g;x=J*(l*k+m*h+n*g)+(o*k+p*h+q*g)*I+(r*k+s*h+t*g)*x;w=H*(l*k+m*h+n*g)+(o*k+p*h+q*g)*e+(r*k+s*h+t*g)*w;t=(l*k+m*h+n*g)*k+(o*k+p*h+q*g)*h+(r*k+s*h+t*g)*g;f[E+180>>2]=v;f[E+184>>2]=u;f[E+188>>2]=B;f[E+192>>2]=0.0;f[E+196>>2]=A;f[E+200>>2]=z;f[E+204>>2]=y;f[E+208>>2]=0.0;f[E+212>>2]=x;f[E+216>>2]=w;f[E+220>>2]=t;f[E+224>>2]=0.0;c[E+316>>2]=0;c[E+316+4>>2]=0;c[E+316+8>>2]=0;c[E+316+12>>2]=0;c[E+316+16>>2]=0;c[E+316+20>>2]=0;c[E+316+24>>2]=0;c[E+316+28>>2]=0;if((D|0)>0){d=c[E+32>>2]|0;i=c[E+12>>2]|0;q=+f[E+228>>2];r=+f[E+232>>2];s=+f[E+236>>2];p=0.0;o=0.0;n=0.0;m=0.0;l=0.0;e=0.0;j=0;do{C=c[d+(j<<2)>>2]|0;L=+f[i+(j<<2)>>2];I=+f[C+40>>2]*L;K=L*+f[C+44>>2];L=L*+f[C+48>>2];p=I+p;f[E+316>>2]=p;o=K+o;f[E+320>>2]=o;n=L+n;f[E+324>>2]=n;H=+f[C+8>>2]-q;J=+f[C+12>>2]-r;M=+f[C+16>>2]-s;m=m+(L*J-K*M);f[E+332>>2]=m;l=I*M-L*H+l;f[E+336>>2]=l;e=K*H-I*J+e;f[E+340>>2]=e;j=j+1|0}while((j|0)!=(D|0));C=E+316|0;d=E+332|0}else{p=0.0;o=0.0;n=0.0;m=0.0;l=0.0;e=0.0;C=E+316|0;d=E+332|0}L=+f[E+128>>2];M=1.0-+f[E+356>>2];f[E+316>>2]=p*L*M;f[E+320>>2]=L*o*M;f[E+324>>2]=L*n*M;f[E+328>>2]=0.0;M=1.0-+f[E+360>>2];f[d>>2]=(v*m+u*l+B*e)*M;f[E+336>>2]=(m*A+l*z+e*y)*M;f[E+340>>2]=M*(m*x+l*w+e*t);f[E+344>>2]=0.0;i=E+244|0;j=i+72|0;do{c[i>>2]=0;i=i+4|0}while((i|0)<(j|0));e=+f[E+364>>2];a:do if(e>0.0?(c[E+24>>2]|0)>0:0){d=0;while(1){j=c[(c[E+32>>2]|0)+(d<<2)>>2]|0;i=c[E+52>>2]|0;H=+f[i+(d<<4)>>2];I=+f[i+(d<<4)+4>>2];J=+f[i+(d<<4)+8>>2];K=+f[j+8>>2];L=+f[j+12>>2];M=+f[j+16>>2];L=L+e*(H*+f[E+76>>2]+I*+f[E+80>>2]+J*+f[E+84>>2]+ +f[E+112>>2]-L);M=M+e*(H*k+I*h+J*g+ +f[E+116>>2]-M);f[j+8>>2]=K+e*(H*+f[E+60>>2]+I*+f[E+64>>2]+J*+f[E+68>>2]+ +f[E+108>>2]-K);f[j+12>>2]=L;f[j+16>>2]=M;f[j+20>>2]=0.0;d=d+1|0;if((d|0)>=(c[E+24>>2]|0))break a;k=+f[E+92>>2];h=+f[E+96>>2];g=+f[E+100>>2];e=+f[E+364>>2]}}while(0);if(a[E+377>>0]|0){d=c[E+32>>2]|0;j=c[d>>2]|0;e=+f[j+8>>2];p=+f[j+12>>2];q=+f[j+16>>2];g=+f[j+20>>2];if((D|0)>1){i=1;n=e;o=q;m=g;l=p;k=e;h=g;g=p;e=q;do{j=c[d+(i<<2)>>2]|0;J=+f[j+8>>2];n=J>2];l=K>2];o=L>2];m=M>2]=n;f[G+16+4>>2]=l;f[G+16+8>>2]=o;f[G+16+12>>2]=m;f[G+16+16>>2]=k;f[G+16+20>>2]=g;f[G+16+24>>2]=e;f[G+16+28>>2]=h;d=c[E+348>>2]|0;if(!d){d=c[b+1052>>2]|0;if(!d){c[6747]=(c[6747]|0)+1;d=kb(63)|0;if(!d)d=0;else{c[(d+4+15&-16)+-4>>2]=d;d=d+4+15&-16}i=d;j=i+44|0;do{c[i>>2]=0;i=i+4|0}while((i|0)<(j|0))}else c[b+1052>>2]=0;c[d+32>>2]=0;c[d+36>>2]=E;c[d+40>>2]=0;c[d>>2]=c[G+16>>2];c[d+4>>2]=c[G+16+4>>2];c[d+8>>2]=c[G+16+8>>2];c[d+12>>2]=c[G+16+12>>2];c[d+16>>2]=c[G+16+16>>2];c[d+20>>2]=c[G+16+20>>2];c[d+24>>2]=c[G+16+24>>2];c[d+28>>2]=c[G+16+28>>2];je(b+1048|0,c[b+1048>>2]|0,d);c[b+1060>>2]=(c[b+1060>>2]|0)+1;c[E+348>>2]=d}else{K=+f[b+452>>2];L=K*+f[E+320>>2]*3.0;M=K*+f[E+324>>2]*3.0;f[G>>2]=+f[C>>2]*K*3.0;f[G+4>>2]=L;f[G+8>>2]=M;f[G+12>>2]=0.0;rg(b+1048|0,d,G+16|0,G,+f[b+464>>2])|0}}d=c[b+1112>>2]|0}F=F+1|0}while((F|0)<(d|0))}d=c[2685]|0;b=(c[d+16>>2]|0)+-1|0;c[d+16>>2]=b;if(b|0){ea=G;return}do if(c[d+4>>2]|0){Y(G+144|0,0)|0;b=c[6746]|0;f[d+8>>2]=+f[d+8>>2]+ +(((c[G+144+4>>2]|0)-(c[b+4>>2]|0)+(((c[G+144>>2]|0)-(c[b>>2]|0)|0)*1e6|0)-(c[d+12>>2]|0)|0)>>>0)/1.0e3;if(!(c[d+16>>2]|0)){d=c[2685]|0;break}else{ea=G;return}}while(0);c[2685]=c[d+20>>2];ea=G;return}function Lb(d,e){d=d|0;e=+e;var g=0,h=0,i=0,j=0,k=0.0,l=0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0,s=0.0,t=0.0,u=0.0,v=0.0,w=0,x=0.0,y=0.0,z=0.0,A=0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0;A=ea;ea=ea+464|0;Fi(14515);g=c[d+84>>2]|0;if(g|0)Da[g&31](d,e);Da[c[(c[d>>2]|0)+140>>2]&31](d,e);f[d+28>>2]=e;c[d+32>>2]=0;c[d+48>>2]=ra[c[(c[d>>2]|0)+20>>2]&127](d)|0;Fi(14558);Fi(14583);g=c[d+316>>2]|0;if((c[d+308>>2]|0)>0){h=0;do{r=c[d+24>>2]|0;Ia[c[(c[r>>2]|0)+16>>2]&127](r,c[g+(h<<2)>>2]|0);h=h+1|0;g=c[d+316>>2]|0}while((h|0)<(c[d+308>>2]|0))}if(g|0){if(a[d+320>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[d+316>>2]=0}a[d+320>>0]=1;c[d+316>>2]=0;c[d+308>>2]=0;c[d+312>>2]=0;g=c[2685]|0;r=(c[g+16>>2]|0)+-1|0;c[g+16>>2]=r;do if(!r){if(c[g+4>>2]|0){Y(A+368|0,0)|0;r=c[6746]|0;f[g+8>>2]=+f[g+8>>2]+ +(((c[A+368+4>>2]|0)-(c[r+4>>2]|0)+(((c[A+368>>2]|0)-(c[r>>2]|0)|0)*1e6|0)-(c[g+12>>2]|0)|0)>>>0)/1.0e3;if(c[g+16>>2]|0)break;g=c[2685]|0}c[2685]=c[g+20>>2]}while(0);a:do if((c[d+232>>2]|0)>0){r=A+304+48|0;q=A+368+44|0;p=0;while(1){j=c[(c[d+240>>2]|0)+(p<<2)>>2]|0;f[j+244>>2]=1.0;b:do switch(c[j+216>>2]|0){case 2:case 5:break;default:if(((c[j+204>>2]&3|0)==0?(ag(j+4|0,+f[j+312>>2],+f[j+316>>2],+f[j+320>>2],j+328|0,e,A+304|0),s=+f[r>>2],x=s-+f[j+52>>2],t=+f[A+304+52>>2],z=t-+f[j+56>>2],u=+f[A+304+56>>2],y=u-+f[j+60>>2],a[d+44>>0]|0):0)?(o=+f[j+252>>2],o*o!=0.0?o*o>2]|0)+4>>2]|0)<20?(c[6409]=(c[6409]|0)+1,i=c[d+68>>2]|0,i=ra[c[(c[i>>2]|0)+36>>2]&127](i)|0,l=c[d+24>>2]|0,f[A+368+4>>2]=1.0,c[A+368+12>>2]=c[j+52>>2],c[A+368+12+4>>2]=c[j+52+4>>2],c[A+368+12+8>>2]=c[j+52+8>>2],c[A+368+12+12>>2]=c[j+52+12>>2],c[A+368+28>>2]=c[r>>2],c[A+368+28+4>>2]=c[r+4>>2],c[A+368+28+8>>2]=c[r+8>>2],c[A+368+28+12>>2]=c[r+12>>2],c[A+368+76>>2]=0,c[A+368>>2]=5396,c[A+368+80>>2]=j,c[A+368+88>>2]=i,c[A+368+92>>2]=l,l=c[j+248>>2]|0,c[A+248+8>>2]=0,c[A+248+12>>2]=1065353216,c[A+248+16>>2]=1065353216,c[A+248+20>>2]=1065353216,f[A+248+24>>2]=0.0,c[A+248>>2]=7884,c[A+248+4>>2]=8,c[A+248+28>>2]=l,c[A+248+44>>2]=l,c[A+368+84>>2]=c[d+56>>2],l=c[j+188>>2]|0,b[A+368+8>>1]=b[l+4>>1]|0,b[A+368+10>>1]=b[l+6>>1]|0,c[A+184+48>>2]=c[r>>2],c[A+184+48+4>>2]=c[r+4>>2],c[A+184+48+8>>2]=c[r+8>>2],c[A+184+48+12>>2]=c[r+12>>2],c[A+184>>2]=c[j+4>>2],c[A+184+4>>2]=c[j+4+4>>2],c[A+184+8>>2]=c[j+4+8>>2],c[A+184+12>>2]=c[j+4+12>>2],c[A+184+16>>2]=c[j+20>>2],c[A+184+16+4>>2]=c[j+20+4>>2],c[A+184+16+8>>2]=c[j+20+8>>2],c[A+184+16+12>>2]=c[j+20+12>>2],c[A+184+32>>2]=c[j+36>>2],c[A+184+32+4>>2]=c[j+36+4>>2],c[A+184+32+8>>2]=c[j+36+8>>2],c[A+184+32+12>>2]=c[j+36+12>>2],Gc(d,A+248|0,j+4|0,A+184|0,A+368|0,0.0),v=+f[A+368+4>>2],v<1.0):0){m=v*(s-+f[j+52>>2]);n=v*(t-+f[j+56>>2]);o=v*(u-+f[j+60>>2]);k=-(n*+f[A+368+48>>2])-m*+f[q>>2]-o*+f[A+368+52>>2];l=c[d+24>>2]|0;l=va[c[(c[l>>2]|0)+12>>2]&63](l,j,c[A+368+76>>2]|0)|0;g=c[d+308>>2]|0;if((g|0)==(c[d+312>>2]|0)?(w=(g|0)==0?1:g<<1,(g|0)<(w|0)):0){if(!w)h=0;else{c[6747]=(c[6747]|0)+1;g=kb((w<<2|3)+16|0)|0;if(!g)h=0;else{c[(g+4+15&-16)+-4>>2]=g;h=g+4+15&-16}g=c[d+308>>2]|0}if((g|0)>0){i=0;do{c[h+(i<<2)>>2]=c[(c[d+316>>2]|0)+(i<<2)>>2];i=i+1|0}while((i|0)!=(g|0))}i=c[d+316>>2]|0;if(i){if(a[d+320>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0);g=c[d+308>>2]|0}c[d+316>>2]=0}a[d+320>>0]=1;c[d+316>>2]=h;c[d+312>>2]=w}c[(c[d+316>>2]|0)+(g<<2)>>2]=l;c[d+308>>2]=g+1;m=m+ +f[j+52>>2];n=n+ +f[j+56>>2];o=o+ +f[j+60>>2];i=c[A+368+76>>2]|0;M=+f[i+4>>2];L=+f[i+20>>2];K=+f[i+36>>2];J=+f[i+8>>2];I=+f[i+24>>2];H=+f[i+40>>2];G=+f[i+12>>2];E=+f[i+28>>2];C=+f[i+44>>2];F=-+f[i+52>>2];D=-+f[i+56>>2];B=-+f[i+60>>2];c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;c[A+12>>2]=0;f[A+16>>2]=m*M+n*L+o*K+(M*F+L*D+K*B);f[A+20>>2]=m*J+n*I+o*H+(J*F+I*D+H*B);f[A+24>>2]=m*G+n*E+o*C+(G*F+E*D+C*B);f[A+28>>2]=0.0;c[A+64>>2]=c[q>>2];c[A+64+4>>2]=c[q+4>>2];c[A+64+8>>2]=c[q+8>>2];c[A+64+12>>2]=c[q+12>>2];f[A+80>>2]=k;f[A+84>>2]=0.0;f[A+88>>2]=0.0;f[A+92>>2]=0.0;c[A+112>>2]=0;a[A+116>>0]=0;c[A+120>>2]=0;c[A+120+4>>2]=0;c[A+120+8>>2]=0;c[A+120+12>>2]=0;c[A+120+16>>2]=0;c[A+120+20>>2]=0;c[A+120+24>>2]=0;c[A+120+28>>2]=0;i=Rd(l,A)|0;f[l+4+(i*184|0)+92>>2]=0.0;k=+f[j+224>>2]*+f[(c[A+368+76>>2]|0)+224>>2];k=k<-10.0?-10.0:k;f[l+4+(i*184|0)+84>>2]=k>10.0?10.0:k;c[l+4+(i*184|0)+48>>2]=c[j+52>>2];c[l+4+(i*184|0)+48+4>>2]=c[j+52+4>>2];c[l+4+(i*184|0)+48+8>>2]=c[j+52+8>>2];c[l+4+(i*184|0)+48+12>>2]=c[j+52+12>>2];f[l+4+(i*184|0)+32>>2]=m;f[l+4+(i*184|0)+36>>2]=n;f[l+4+(i*184|0)+40>>2]=o;f[l+4+(i*184|0)+44>>2]=0.0}g=c[2685]|0;l=(c[g+16>>2]|0)+-1|0;c[g+16>>2]=l;if(!l){if(c[g+4>>2]|0){Y(A+368|0,0)|0;l=c[6746]|0;f[g+8>>2]=+f[g+8>>2]+ +(((c[A+368+4>>2]|0)-(c[l+4>>2]|0)+(((c[A+368>>2]|0)-(c[l>>2]|0)|0)*1e6|0)-(c[g+12>>2]|0)|0)>>>0)/1.0e3;if(c[g+16>>2]|0)break b;g=c[2685]|0}c[2685]=c[g+20>>2]}}}while(0);p=p+1|0;if((p|0)>=(c[d+232>>2]|0))break a}}while(0);g=c[2685]|0;w=(c[g+16>>2]|0)+-1|0;c[g+16>>2]=w;do if(!w){if(c[g+4>>2]|0){Y(A+368|0,0)|0;w=c[6746]|0;f[g+8>>2]=+f[g+8>>2]+ +(((c[A+368+4>>2]|0)-(c[w+4>>2]|0)+(((c[A+368>>2]|0)-(c[w>>2]|0)|0)*1e6|0)-(c[g+12>>2]|0)|0)>>>0)/1.0e3;if(c[g+16>>2]|0)break;g=c[2685]|0}c[2685]=c[g+20>>2]}while(0);Ca[c[(c[d>>2]|0)+44>>2]&511](d);Ca[c[(c[d>>2]|0)+148>>2]&511](d);f[d+104>>2]=e;Ia[c[(c[d>>2]|0)+152>>2]&127](d,d+92|0);Da[c[(c[d>>2]|0)+144>>2]&31](d,e);Fi(14544);if((c[d+280>>2]|0)>0){g=0;do{w=c[(c[d+288>>2]|0)+(g<<2)>>2]|0;Ja[c[(c[w>>2]|0)+8>>2]&7](w,d,e);g=g+1|0}while((g|0)<(c[d+280>>2]|0))}g=c[2685]|0;w=(c[g+16>>2]|0)+-1|0;c[g+16>>2]=w;do if(!w){if(c[g+4>>2]|0){Y(A+368|0,0)|0;w=c[6746]|0;f[g+8>>2]=+f[g+8>>2]+ +(((c[A+368+4>>2]|0)-(c[w+4>>2]|0)+(((c[A+368>>2]|0)-(c[w>>2]|0)|0)*1e6|0)-(c[g+12>>2]|0)|0)>>>0)/1.0e3;if(c[g+16>>2]|0)break;g=c[2685]|0}c[2685]=c[g+20>>2]}while(0);Da[c[(c[d>>2]|0)+156>>2]&31](d,e);g=c[d+80>>2]|0;if(g|0)Da[g&31](d,e);g=c[2685]|0;d=(c[g+16>>2]|0)+-1|0;c[g+16>>2]=d;if(d|0){ea=A;return}do if(c[g+4>>2]|0){Y(A+368|0,0)|0;d=c[6746]|0;f[g+8>>2]=+f[g+8>>2]+ +(((c[A+368+4>>2]|0)-(c[d+4>>2]|0)+(((c[A+368>>2]|0)-(c[d>>2]|0)|0)*1e6|0)-(c[g+12>>2]|0)|0)>>>0)/1.0e3;if(!(c[g+16>>2]|0)){g=c[2685]|0;break}else{ea=A;return}}while(0);c[2685]=c[g+20>>2];ea=A;return}function Mb(b,d,e,g,h){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,t=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0,L=0,M=0,N=0,O=0.0,P=0.0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0.0,Y=0.0,Z=0.0,_=0.0,$=0,aa=0,ba=0.0,ca=0.0,da=0.0,fa=0.0,ga=0.0,ia=0.0,ja=0.0,ka=0.0,la=0.0,ma=0.0,na=0.0,oa=0.0,pa=0.0;L=ea;ea=ea+64|0;if(!(c[b+12>>2]|0)){ea=L;return}N=(a[b+16>>0]|0)!=0;i=N?e:d;N=N?d:e;g=c[i+4>>2]|0;K=c[N+4>>2]|0;i=c[i+12>>2]|0;_=+f[i>>2];Z=+f[i+16>>2];Y=+f[i+32>>2];X=+f[i+4>>2];W=+f[i+20>>2];C=+f[i+36>>2];j=+f[i+8>>2];E=+f[i+24>>2];w=+f[i+40>>2];R=+f[i+48>>2];Q=+f[i+52>>2];P=+f[i+56>>2];$=c[N+12>>2]|0;V=+f[$>>2];U=+f[$+16>>2];D=+f[$+32>>2];T=+f[$+4>>2];S=+f[$+20>>2];F=+f[$+36>>2];t=+f[$+8>>2];p=+f[$+24>>2];n=+f[$+40>>2];O=-+f[$+48>>2];G=-+f[$+52>>2];H=-+f[$+56>>2];I=+f[i>>2];J=+f[i+16>>2];B=+f[i+32>>2];z=+f[i+4>>2];y=+f[i+20>>2];x=+f[i+36>>2];q=+f[i+8>>2];o=+f[i+24>>2];m=+f[i+40>>2];i=c[(c[g>>2]|0)+64>>2]|0;l=-+f[K+48>>2];k=-+f[K+52>>2];A=-+f[K+56>>2];f[L+48>>2]=(_*V+Z*U+Y*D)*l+(_*T+Z*S+Y*F)*k+(_*t+Z*p+Y*n)*A;f[L+48+4>>2]=(X*V+W*U+C*D)*l+(X*T+W*S+C*F)*k+(X*t+W*p+C*n)*A;f[L+48+8>>2]=(j*V+E*U+w*D)*l+(j*T+E*S+w*F)*k+(j*t+E*p+w*n)*A;f[L+48+12>>2]=0.0;Ma[i&127](L,g,L+48|0);A=+f[L>>2];w=+f[L+4>>2];E=+f[L+8>>2];j=+f[K+48>>2];k=+f[K+52>>2];l=+f[K+56>>2];C=l*(R*t+Q*p+P*n+(t*O+p*G+n*H)+((t*I+p*J+n*B)*A+(t*z+p*y+n*x)*w+(t*q+p*o+n*m)*E))+(j*(R*V+Q*U+P*D+(V*O+U*G+D*H)+((V*I+U*J+D*B)*A+(V*z+U*y+D*x)*w+(V*q+U*o+D*m)*E))+k*(R*T+Q*S+P*F+(T*O+S*G+F*H)+((T*I+S*J+F*B)*A+(T*z+S*y+F*x)*w+(T*q+S*o+F*m)*E)))-+f[K+64>>2];D=R*V+Q*U+P*D+(V*O+U*G+D*H)+((V*I+U*J+D*B)*A+(V*z+U*y+D*x)*w+(V*q+U*o+D*m)*E)-j*C;F=R*T+Q*S+P*F+(T*O+S*G+F*H)+((T*I+S*J+F*B)*A+(T*z+S*y+F*x)*w+(T*q+S*o+F*m)*E)-k*C;E=R*t+Q*p+P*n+(t*O+p*G+n*H)+((t*I+p*J+n*B)*A+(t*z+p*y+n*x)*w+(t*q+p*o+n*m)*E)-l*C;N=c[N+12>>2]|0;m=+f[N>>2];n=+f[N+4>>2];o=+f[N+8>>2];p=+f[N+16>>2];q=+f[N+20>>2];t=+f[N+24>>2];w=+f[N+32>>2];x=+f[N+36>>2];y=+f[N+40>>2];z=+f[N+48>>2];A=+f[N+52>>2];B=+f[N+56>>2];N=c[b+12>>2]|0;i=C<+f[N+752>>2];c[h+4>>2]=N;if(i){f[L+48>>2]=m*j+n*k+o*l;f[L+48+4>>2]=j*p+k*q+l*t;f[L+48+8>>2]=j*w+k*x+l*y;f[L+48+12>>2]=0.0;f[L+32>>2]=o*E+(m*D+n*F)+z;f[L+32+4>>2]=D*p+F*q+E*t+A;f[L+32+8>>2]=D*w+F*x+E*y+B;f[L+32+12>>2]=0.0;Na[c[(c[h>>2]|0)+16>>2]&15](h,L+48|0,L+32|0,C)}if((c[g+4>>2]|0)<7?(c[(c[h+4>>2]|0)+748>>2]|0)<(c[b+24>>2]|0):0){j=+f[K+56>>2];if(+r(+j)>.7071067690849304){l=+f[K+52>>2];_=1.0/+s(+(j*j+l*l));k=0.0;l=l*_;j=-(j*_)}else{_=+f[K+48>>2];k=+f[K+52>>2];j=1.0/+s(+(_*_+k*k));k=-(k*j);l=0.0;j=_*j}G=.019999999552965164/+ha[c[(c[g>>2]|0)+16>>2]&15](g);G=(G>.39269909262657166?.39269909262657166:G)*.5;H=+v(+G)/+s(+(k*k+j*j+l*l));J=k*H;I=j*H;H=l*H;G=+u(+G);g=c[b+20>>2]|0;if((g|0)>0){i=0;do{p=+f[K+48>>2];_=+f[K+52>>2];z=+f[K+56>>2];x=6.2831854820251465/+(g|0)*+(i|0)*.5;Z=+v(+x)/+s(+(p*p+_*_+z*z));x=+u(+x);y=H*-(_*Z)+(J*x+G*-(p*Z))-I*-(z*Z);t=J*-(z*Z)+(I*x+G*-(_*Z))-H*-(p*Z);ca=I*-(p*Z)+(H*x+G*-(z*Z))-J*-(_*Z);B=G*x-J*-(p*Z)-I*-(_*Z)-H*-(z*Z);ja=z*Z*t+(p*Z*B+x*y)-_*Z*ca;ia=p*Z*ca+(x*t+_*Z*B)-z*Z*y;ma=_*Z*y+(z*Z*B+x*ca)-p*Z*t;ca=x*B-p*Z*y-_*Z*t-z*Z*ca;N=(a[b+16>>0]|0)!=0;aa=N?e:d;N=N?d:e;g=c[aa+4>>2]|0;$=c[N+4>>2]|0;aa=c[aa+12>>2]|0;Z=+f[aa>>2];z=+f[aa+4>>2];t=+f[aa+8>>2];_=+f[aa+16>>2];y=+f[aa+20>>2];p=+f[aa+24>>2];B=+f[aa+32>>2];x=+f[aa+36>>2];n=+f[aa+40>>2];T=+f[aa+48>>2];U=+f[aa+52>>2];V=+f[aa+56>>2];aa=c[N+12>>2]|0;P=+f[aa>>2];Q=+f[aa+16>>2];C=+f[aa+32>>2];R=+f[aa+4>>2];S=+f[aa+20>>2];F=+f[aa+36>>2];q=+f[aa+8>>2];o=+f[aa+24>>2];m=+f[aa+40>>2];W=-+f[aa+48>>2];X=-+f[aa+52>>2];Y=-+f[aa+56>>2];ga=ja*(2.0/(ja*ja+ia*ia+ma*ma+ca*ca));l=ia*(2.0/(ja*ja+ia*ia+ma*ma+ca*ca));ba=ma*(2.0/(ja*ja+ia*ia+ma*ma+ca*ca));oa=t*(ja*ba-ca*l)+(z*(ja*l+ca*ba)+Z*(1.0-(ia*l+ma*ba)));la=t*(ia*ba+ca*ga)+(Z*(ja*l-ca*ba)+z*(1.0-(ja*ga+ma*ba)));j=Z*(ja*ba+ca*l)+z*(ia*ba-ca*ga)+t*(1.0-(ja*ga+ia*l));na=p*(ja*ba-ca*l)+(y*(ja*l+ca*ba)+_*(1.0-(ia*l+ma*ba)));ka=p*(ia*ba+ca*ga)+(_*(ja*l-ca*ba)+y*(1.0-(ja*ga+ma*ba)));w=_*(ja*ba+ca*l)+y*(ia*ba-ca*ga)+p*(1.0-(ja*ga+ia*l));pa=n*(ja*ba-ca*l)+(x*(ja*l+ca*ba)+B*(1.0-(ia*l+ma*ba)));ma=n*(ia*ba+ca*ga)+(B*(ja*l-ca*ba)+x*(1.0-(ja*ga+ma*ba)));l=B*(ja*ba+ca*l)+x*(ia*ba-ca*ga)+n*(1.0-(ja*ga+ia*l));ia=+f[aa>>2];ga=+f[aa+16>>2];ja=+f[aa+32>>2];ca=+f[aa+4>>2];ba=+f[aa+20>>2];da=+f[aa+36>>2];k=+f[aa+8>>2];E=+f[aa+24>>2];D=+f[aa+40>>2];aa=c[(c[g>>2]|0)+64>>2]|0;fa=-+f[$+48>>2];O=-+f[$+52>>2];A=-+f[$+56>>2];f[L+32>>2]=(ja*pa+(ia*oa+ga*na))*fa+(da*pa+(ca*oa+ba*na))*O+(D*pa+(k*oa+E*na))*A;f[L+32+4>>2]=(ja*ma+(ia*la+ga*ka))*fa+(da*ma+(ca*la+ba*ka))*O+(D*ma+(k*la+E*ka))*A;f[L+32+8>>2]=(ja*l+(ia*j+ga*w))*fa+(da*l+(ca*j+ba*w))*O+(D*l+(k*j+E*w))*A;f[L+32+12>>2]=0.0;Ma[aa&127](L+48|0,g,L+32|0);A=+f[L+48>>2];w=+f[L+48+4>>2];E=+f[L+48+8>>2];j=+f[$+48>>2];k=+f[$+52>>2];l=+f[$+56>>2];D=l*(T*q+U*o+V*m+(q*W+o*X+m*Y)+((Z*q+_*o+B*m)*A+(z*q+y*o+x*m)*w+(t*q+p*o+n*m)*E))+(j*(T*P+U*Q+V*C+(P*W+Q*X+C*Y)+((Z*P+_*Q+B*C)*A+(z*P+y*Q+x*C)*w+(t*P+p*Q+n*C)*E))+k*(T*R+U*S+V*F+(R*W+S*X+F*Y)+((Z*R+_*S+B*F)*A+(z*R+y*S+x*F)*w+(t*R+p*S+n*F)*E)))-+f[$+64>>2];C=T*P+U*Q+V*C+(P*W+Q*X+C*Y)+((Z*P+_*Q+B*C)*A+(z*P+y*Q+x*C)*w+(t*P+p*Q+n*C)*E)-j*D;F=T*R+U*S+V*F+(R*W+S*X+F*Y)+((Z*R+_*S+B*F)*A+(z*R+y*S+x*F)*w+(t*R+p*S+n*F)*E)-k*D;E=T*q+U*o+V*m+(q*W+o*X+m*Y)+((Z*q+_*o+B*m)*A+(z*q+y*o+x*m)*w+(t*q+p*o+n*m)*E)-l*D;N=c[N+12>>2]|0;m=+f[N>>2];n=+f[N+4>>2];o=+f[N+8>>2];p=+f[N+16>>2];q=+f[N+20>>2];t=+f[N+24>>2];w=+f[N+32>>2];x=+f[N+36>>2];y=+f[N+40>>2];z=+f[N+48>>2];A=+f[N+52>>2];B=+f[N+56>>2];N=c[b+12>>2]|0;$=D<+f[N+752>>2];c[h+4>>2]=N;if($){f[L+32>>2]=m*j+n*k+o*l;f[L+32+4>>2]=j*p+k*q+l*t;f[L+32+8>>2]=j*w+k*x+l*y;f[L+32+12>>2]=0.0;f[L+16>>2]=o*E+(m*C+n*F)+z;f[L+16+4>>2]=C*p+F*q+E*t+A;f[L+16+8>>2]=C*w+F*x+E*y+B;f[L+16+12>>2]=0.0;Na[c[(c[h>>2]|0)+16>>2]&15](h,L+32|0,L+16|0,D)}i=i+1|0;g=c[b+20>>2]|0}while((i|0)<(g|0))}}do if((a[b+8>>0]|0?c[(c[b+12>>2]|0)+748>>2]|0:0)?(M=c[h+4>>2]|0,c[M+748>>2]|0):0){g=c[M+740>>2]|0;i=c[(c[h+8>>2]|0)+8>>2]|0;if((g|0)==(i|0)){Hd(M,g+4|0,(c[(c[h+12>>2]|0)+8>>2]|0)+4|0);break}else{Hd(M,(c[(c[h+12>>2]|0)+8>>2]|0)+4|0,i+4|0);break}}while(0);ea=L;return}function Nb(b,d,e,g){b=b|0;d=d|0;e=e|0;g=g|0;var h=0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0,F=0,G=0;G=ea;ea=ea+784|0;c[G+168+8>>2]=0;c[G+168+12>>2]=1065353216;c[G+168+16>>2]=1065353216;c[G+168+20>>2]=1065353216;f[G+168+24>>2]=0.0;c[G+168>>2]=7884;c[G+168+4>>2]=8;f[G+168+28>>2]=0.0;f[G+168+44>>2]=0.0;E=c[e+4>>2]|0;F=c[e+12>>2]|0;y=c[E+4>>2]|0;if((y|0)<20){c[G+600>>2]=4752;c[G+600+168>>2]=0;f[G+600+172>>2]=0.0;c[G+600+164>>2]=c[g+4>>2];f[G+240+308>>2]=9.999999747378752e-05;a[G+240+332>>0]=0;c[G+224>>2]=6076;c[G+224+4>>2]=G+240;c[G+224+8>>2]=G+168;c[G+224+12>>2]=E;c[G+152>>2]=10452;c[G+152+4>>2]=G+240;c[G+152+8>>2]=G+168;c[G+152+12>>2]=E;E=(c[g+16>>2]&8|0)==0?G+224|0:G+152|0;if((xa[c[(c[E>>2]|0)+8>>2]&3](E,b,d,F,F,G+600|0)|0?(h=G+600+132|0,j=+f[h>>2],k=+f[G+600+136>>2],l=+f[G+600+140>>2],j*j+k*k+l*l>9.999999747378752e-05):0)?(i=+f[G+600+164>>2],i<+f[g+4>>2]):0){D=1.0/+s(+(j*j+k*k+l*l));f[h>>2]=j*D;f[G+600+136>>2]=k*D;f[G+600+140>>2]=l*D;c[G+120>>2]=c[e+8>>2];c[G+120+4>>2]=0;c[G+120+8>>2]=c[h>>2];c[G+120+8+4>>2]=c[h+4>>2];c[G+120+8+8>>2]=c[h+8>>2];c[G+120+8+12>>2]=c[h+12>>2];f[G+120+24>>2]=i;+ka[c[(c[g>>2]|0)+12>>2]&15](g,G+120|0,1)}ea=G;return}if((y+-21|0)>>>0>=9){if((y|0)!=31){ea=G;return}h=c[E+64>>2]|0;e=c[e+8>>2]|0;c[G+600>>2]=6872;c[G+600+4>>2]=e;c[G+600+8>>2]=E;c[G+600+12>>2]=F;c[G+600+16>>2]=b;c[G+600+20>>2]=d;c[G+600+24>>2]=g;if(!h){h=c[E+16>>2]|0;if((h|0)>0){b=0;do{Ve(G+600|0,b);b=b+1|0}while((b|0)<(h|0))}}else{C=+f[F+48>>2];n=+f[b+48>>2]-C;B=+f[F+52>>2];o=+f[b+52>>2]-B;z=+f[F+56>>2];p=+f[b+56>>2]-z;t=+f[F>>2];r=+f[F+16>>2];q=+f[F+32>>2];w=+f[F+4>>2];v=+f[F+20>>2];u=+f[F+36>>2];D=+f[F+8>>2];A=+f[F+24>>2];x=+f[F+40>>2];f[G+240>>2]=n*t+o*r+p*q;f[G+240+4>>2]=n*w+o*v+p*u;f[G+240+8>>2]=n*D+o*A+p*x;f[G+240+12>>2]=0.0;C=+f[d+48>>2]-C;B=+f[d+52>>2]-B;z=+f[d+56>>2]-z;f[G+224>>2]=q*z+(r*B+C*t);f[G+224+4>>2]=u*z+(v*B+C*w);f[G+224+8>>2]=x*z+(A*B+C*D);f[G+224+12>>2]=0.0;Dd(c[h>>2]|0,G+240|0,G+224|0,G+600|0)}ea=G;return}i=+f[F>>2];q=+f[F+16>>2];r=+f[F+32>>2];k=+f[F+4>>2];u=+f[F+20>>2];v=+f[F+36>>2];j=+f[F+8>>2];z=+f[F+24>>2];A=+f[F+40>>2];B=-+f[F+48>>2];C=-+f[F+52>>2];D=-+f[F+56>>2];o=+f[b+48>>2];p=+f[b+52>>2];l=+f[b+56>>2];f[G+152>>2]=i*B+q*C+r*D+(i*o+q*p+r*l);f[G+152+4>>2]=k*B+u*C+v*D+(k*o+u*p+v*l);f[G+152+8>>2]=j*B+z*C+A*D+(j*o+z*p+A*l);f[G+152+12>>2]=0.0;w=+f[d+48>>2];x=+f[d+52>>2];t=+f[d+56>>2];i=i*B+q*C+r*D+(i*w+q*x+r*t);k=k*B+u*C+v*D+(k*w+u*x+v*t);j=j*B+z*C+A*D+(j*w+z*x+A*t);f[G+120>>2]=i;f[G+120+4>>2]=k;f[G+120+8>>2]=j;f[G+120+12>>2]=0.0;switch(y|0){case 21:{h=c[e+8>>2]|0;e=c[g+16>>2]|0;c[G+4>>2]=c[G+152>>2];c[G+4+4>>2]=c[G+152+4>>2];c[G+4+8>>2]=c[G+152+8>>2];c[G+4+12>>2]=c[G+152+12>>2];c[G+20>>2]=c[G+120>>2];c[G+20+4>>2]=c[G+120+4>>2];c[G+20+8>>2]=c[G+120+8>>2];c[G+20+12>>2]=c[G+120+12>>2];c[G+36>>2]=e;f[G+40>>2]=1.0;c[G>>2]=6824;c[G+44>>2]=g;c[G+48>>2]=h;c[G+52>>2]=E;c[G+56>>2]=c[F>>2];c[G+56+4>>2]=c[F+4>>2];c[G+56+8>>2]=c[F+8>>2];c[G+56+12>>2]=c[F+12>>2];c[G+72>>2]=c[F+16>>2];c[G+72+4>>2]=c[F+16+4>>2];c[G+72+8>>2]=c[F+16+8>>2];c[G+72+12>>2]=c[F+16+12>>2];c[G+88>>2]=c[F+32>>2];c[G+88+4>>2]=c[F+32+4>>2];c[G+88+8>>2]=c[F+32+8>>2];c[G+88+12>>2]=c[F+32+12>>2];c[G+104>>2]=c[F+48>>2];c[G+104+4>>2]=c[F+48+4>>2];c[G+104+8>>2]=c[F+48+8>>2];c[G+104+12>>2]=c[F+48+12>>2];c[G+40>>2]=c[g+4>>2];h=c[E+48>>2]|0;c[G+224>>2]=8096;c[G+224+4>>2]=h;c[G+224+8>>2]=G;h=c[E+52>>2]|0;c[G+600>>2]=0;c[G+600+4>>2]=0;c[G+600+8>>2]=0;c[G+600+12>>2]=0;c[G+240>>2]=0;c[G+240+4>>2]=0;c[G+240+8>>2]=0;c[G+240+12>>2]=0;if(!(a[h+60>>0]|0))Ld(h,G+224|0,G+152|0,i,k,j,G+600|0,G+240|0);else pd(h,G+224|0,G+152|0,i,k,j,G+600|0,G+240|0,c[h+56>>2]|0);break}case 25:{e=c[e+8>>2]|0;y=c[g+16>>2]|0;c[G+600+4>>2]=c[G+152>>2];c[G+600+4+4>>2]=c[G+152+4>>2];c[G+600+4+8>>2]=c[G+152+8>>2];c[G+600+4+12>>2]=c[G+152+12>>2];c[G+600+20>>2]=c[G+120>>2];c[G+600+20+4>>2]=c[G+120+4>>2];c[G+600+20+8>>2]=c[G+120+8>>2];c[G+600+20+12>>2]=c[G+120+12>>2];c[G+600+36>>2]=y;f[G+600+40>>2]=1.0;c[G+600>>2]=6824;c[G+600+44>>2]=g;c[G+600+48>>2]=e;c[G+600+52>>2]=E;c[G+600+56>>2]=c[F>>2];c[G+600+56+4>>2]=c[F+4>>2];c[G+600+56+8>>2]=c[F+8>>2];c[G+600+56+12>>2]=c[F+12>>2];c[G+600+72>>2]=c[F+16>>2];c[G+600+72+4>>2]=c[F+16+4>>2];c[G+600+72+8>>2]=c[F+16+8>>2];c[G+600+72+12>>2]=c[F+16+12>>2];c[G+600+88>>2]=c[F+32>>2];c[G+600+88+4>>2]=c[F+32+4>>2];c[G+600+88+8>>2]=c[F+32+8>>2];c[G+600+88+12>>2]=c[F+32+12>>2];c[G+600+104>>2]=c[F+48>>2];c[G+600+104+4>>2]=c[F+48+4>>2];c[G+600+104+8>>2]=c[F+48+8>>2];c[G+600+104+12>>2]=c[F+48+12>>2];c[G+600+40>>2]=c[g+4>>2];Pa[c[(c[E>>2]|0)+144>>2]&127](E,G+600|0,G+152|0,G+120|0);break}default:{k=+f[F>>2];j=+f[F+4>>2];i=+f[F+8>>2];m=r*l+(q*p+o*k)+(r*D+(q*C+k*B));n=v*l+(u*p+o*j)+(v*D+(u*C+j*B));l=A*l+(z*p+o*i)+(A*D+(z*C+i*B));k=r*t+(q*x+w*k)+(r*D+(q*C+k*B));j=v*t+(u*x+w*j)+(v*D+(u*C+j*B));i=A*t+(z*x+w*i)+(A*D+(z*C+i*B));e=c[e+8>>2]|0;y=c[g+16>>2]|0;f[G+600+4>>2]=m;f[G+600+8>>2]=n;f[G+600+12>>2]=l;f[G+600+16>>2]=0.0;f[G+600+20>>2]=k;f[G+600+24>>2]=j;f[G+600+28>>2]=i;f[G+600+32>>2]=0.0;c[G+600+36>>2]=y;f[G+600+40>>2]=1.0;c[G+600>>2]=6848;c[G+600+44>>2]=g;c[G+600+48>>2]=e;c[G+600+52>>2]=E;c[G+600+56>>2]=c[F>>2];c[G+600+56+4>>2]=c[F+4>>2];c[G+600+56+8>>2]=c[F+8>>2];c[G+600+56+12>>2]=c[F+12>>2];c[G+600+72>>2]=c[F+16>>2];c[G+600+72+4>>2]=c[F+16+4>>2];c[G+600+72+8>>2]=c[F+16+8>>2];c[G+600+72+12>>2]=c[F+16+12>>2];c[G+600+88>>2]=c[F+32>>2];c[G+600+88+4>>2]=c[F+32+4>>2];c[G+600+88+8>>2]=c[F+32+8>>2];c[G+600+88+12>>2]=c[F+32+12>>2];c[G+600+104>>2]=c[F+48>>2];c[G+600+104+4>>2]=c[F+48+4>>2];c[G+600+104+8>>2]=c[F+48+8>>2];c[G+600+104+12>>2]=c[F+48+12>>2];c[G+600+40>>2]=c[g+4>>2];f[G+240>>2]=m;f[G+240+4>>2]=n;f[G+240+8>>2]=l;f[G+240+12>>2]=0.0;if(k>2]=k;if(j>2]=j;if(i>2]=i;f[G+224>>2]=m;f[G+224+4>>2]=n;f[G+224+8>>2]=l;f[G+224+12>>2]=0.0;if(m>2]=k;if(n>2]=j;if(l>2]=i;Pa[c[(c[E>>2]|0)+64>>2]&127](E,G+600|0,G+240|0,G+224|0)}}ea=G;return}function Ob(b,d,e,g,h,i,j,k,l,m){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0.0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0;h=c[b+48>>2]|0;q=c[b+28>>2]|0;r=c[b+68>>2]|0;if(c[l+64>>2]&1|0){if((h|0)>0){i=c[b+136>>2]|0;m=c[b+192>>2]|0;p=0;do{o=i+(p<<2)|0;g=c[o>>2]|0;p=p+1|0;m=(z(m,1664525)|0)+1013904223|0;if(p>>>0<65537){e=(16?m>>>16:m)^m;if(p>>>0<257){e=(8?e>>>8:e)^e;if(p>>>0<17){e=(4?e>>>4:e)^e;u=(2?e>>>2:e)^e;e=p>>>0<5?(p>>>0<3?(1?u>>>1:u):0)^u:e}}}else e=m;u=i+(((e>>>0)%(p>>>0)|0)<<2)|0;c[o>>2]=c[u>>2];c[u>>2]=g}while((p|0)!=(h|0));c[b+192>>2]=m}if((c[l+20>>2]|0)>(d|0)){if((q|0)>0){g=c[b+116>>2]|0;i=c[b+192>>2]|0;o=0;do{m=g+(o<<2)|0;h=c[m>>2]|0;o=o+1|0;i=(z(i,1664525)|0)+1013904223|0;if(o>>>0<65537){e=(16?i>>>16:i)^i;if(o>>>0<257){e=(8?e>>>8:e)^e;if(o>>>0<17){e=(4?e>>>4:e)^e;u=(2?e>>>2:e)^e;e=o>>>0<5?(o>>>0<3?(1?u>>>1:u):0)^u:e}}}else e=i;u=g+(((e>>>0)%(o>>>0)|0)<<2)|0;c[m>>2]=c[u>>2];c[u>>2]=h}while((o|0)!=(q|0));c[b+192>>2]=i}if((r|0)>0){g=c[b+156>>2]|0;i=c[b+192>>2]|0;o=0;do{m=g+(o<<2)|0;h=c[m>>2]|0;o=o+1|0;i=(z(i,1664525)|0)+1013904223|0;if(o>>>0<65537){e=(16?i>>>16:i)^i;if(o>>>0<257){e=(8?e>>>8:e)^e;if(o>>>0<17){e=(4?e>>>4:e)^e;u=(2?e>>>2:e)^e;e=o>>>0<5?(o>>>0<3?(1?u>>>1:u):0)^u:e}}}else e=i;u=g+(((e>>>0)%(o>>>0)|0)<<2)|0;c[m>>2]=c[u>>2];c[u>>2]=h}while((o|0)!=(r|0));c[b+192>>2]=i}}}e=c[b+48>>2]|0;if(!(c[l+64>>2]&256)){if((e|0)>0){i=0;do{g=c[(c[b+136>>2]|0)+(i<<2)>>2]|0;h=c[b+56>>2]|0;if((c[h+(g*152|0)+136>>2]|0)>(d|0)){e=c[b+16>>2]|0;Ff(e+((c[h+(g*152|0)+144>>2]|0)*244|0)|0,e+((c[h+(g*152|0)+148>>2]|0)*244|0)|0,h+(g*152|0)|0);e=c[b+48>>2]|0}i=i+1|0}while((i|0)<(e|0))}if((c[l+20>>2]|0)<=(d|0))return 0.0;if((k|0)>0){h=0;do{g=j+(h<<2)|0;e=c[g>>2]|0;if(a[e+20>>0]|0){s=Kc(b,c[e+28>>2]|0,+f[l+12>>2])|0;u=Kc(b,c[(c[g>>2]|0)+32>>2]|0,+f[l+12>>2])|0;t=c[b+16>>2]|0;d=c[g>>2]|0;Na[c[(c[d>>2]|0)+24>>2]&15](d,t+(s*244|0)|0,t+(u*244|0)|0,+f[l+12>>2])}h=h+1|0}while((h|0)!=(k|0))}e=c[b+28>>2]|0;if((e|0)>0){g=0;do{u=c[(c[b+116>>2]|0)+(g<<2)>>2]|0;l=c[b+36>>2]|0;k=c[b+16>>2]|0;Qf(k+((c[l+(u*152|0)+144>>2]|0)*244|0)|0,k+((c[l+(u*152|0)+148>>2]|0)*244|0)|0,l+(u*152|0)|0);g=g+1|0}while((g|0)!=(e|0))}e=c[b+68>>2]|0;if((e|0)>0){i=0;do{g=c[(c[b+156>>2]|0)+(i<<2)>>2]|0;h=c[b+76>>2]|0;n=+f[(c[b+36>>2]|0)+((c[h+(g*152|0)+140>>2]|0)*152|0)+100>>2];if(n>0.0){n=n*+f[h+(g*152|0)+104>>2];f[h+(g*152|0)+120>>2]=-n;f[h+(g*152|0)+124>>2]=n;u=c[b+16>>2]|0;Ff(u+((c[h+(g*152|0)+144>>2]|0)*244|0)|0,u+((c[h+(g*152|0)+148>>2]|0)*244|0)|0,h+(g*152|0)|0)}i=i+1|0}while((i|0)!=(e|0))}e=c[b+88>>2]|0;if((e|0)<=0)return 0.0;h=0;do{g=c[b+96>>2]|0;n=+f[(c[b+36>>2]|0)+((c[g+(h*152|0)+140>>2]|0)*152|0)+100>>2];if(n>0.0){v=+f[g+(h*152|0)+104>>2];n=n*v>v?v:n*v;f[g+(h*152|0)+120>>2]=-n;f[g+(h*152|0)+124>>2]=n;u=c[b+16>>2]|0;Ff(u+((c[g+(h*152|0)+144>>2]|0)*244|0)|0,u+((c[g+(h*152|0)+148>>2]|0)*244|0)|0,g+(h*152|0)|0)}h=h+1|0}while((h|0)!=(e|0));return 0.0}if((e|0)>0){i=0;do{g=c[(c[b+136>>2]|0)+(i<<2)>>2]|0;h=c[b+56>>2]|0;if((c[h+(g*152|0)+136>>2]|0)>(d|0)){e=c[b+16>>2]|0;Ff(e+((c[h+(g*152|0)+144>>2]|0)*244|0)|0,e+((c[h+(g*152|0)+148>>2]|0)*244|0)|0,h+(g*152|0)|0);e=c[b+48>>2]|0}i=i+1|0}while((i|0)<(e|0))}if((c[l+20>>2]|0)<=(d|0))return 0.0;if((k|0)>0){h=0;do{g=j+(h<<2)|0;e=c[g>>2]|0;if(a[e+20>>0]|0){r=Kc(b,c[e+28>>2]|0,+f[l+12>>2])|0;u=Kc(b,c[(c[g>>2]|0)+32>>2]|0,+f[l+12>>2])|0;d=c[b+16>>2]|0;q=c[g>>2]|0;Na[c[(c[q>>2]|0)+24>>2]&15](q,d+(r*244|0)|0,d+(u*244|0)|0,+f[l+12>>2])}h=h+1|0}while((h|0)!=(k|0))}e=c[l+64>>2]|0;o=c[b+28>>2]|0;if(e&512|0){e=((4?e>>>4:e)&1)+1|0;if((o|0)<=0)return 0.0;i=0;do{m=c[(c[b+116>>2]|0)+(i<<2)>>2]|0;g=c[b+36>>2]|0;h=c[b+16>>2]|0;Qf(h+((c[g+(m*152|0)+144>>2]|0)*244|0)|0,h+((c[g+(m*152|0)+148>>2]|0)*244|0)|0,g+(m*152|0)|0);n=+f[g+(m*152|0)+100>>2];m=z(i,e)|0;g=c[(c[b+156>>2]|0)+(m<<2)>>2]|0;h=c[b+76>>2]|0;if(n>0.0){v=n*+f[h+(g*152|0)+104>>2];f[h+(g*152|0)+120>>2]=-v;f[h+(g*152|0)+124>>2]=v;u=c[b+16>>2]|0;Ff(u+((c[h+(g*152|0)+144>>2]|0)*244|0)|0,u+((c[h+(g*152|0)+148>>2]|0)*244|0)|0,h+(g*152|0)|0)}if(c[l+64>>2]&16|0?(s=c[(c[b+156>>2]|0)+(m+1<<2)>>2]|0,t=c[b+76>>2]|0,n>0.0):0){v=n*+f[t+(s*152|0)+104>>2];f[t+(s*152|0)+120>>2]=-v;f[t+(s*152|0)+124>>2]=v;u=c[b+16>>2]|0;Ff(u+((c[t+(s*152|0)+144>>2]|0)*244|0)|0,u+((c[t+(s*152|0)+148>>2]|0)*244|0)|0,t+(s*152|0)|0)}i=i+1|0}while((i|0)!=(o|0));return 0.0}if((o|0)>0){e=0;do{u=c[(c[b+116>>2]|0)+(e<<2)>>2]|0;l=c[b+36>>2]|0;k=c[b+16>>2]|0;Qf(k+((c[l+(u*152|0)+144>>2]|0)*244|0)|0,k+((c[l+(u*152|0)+148>>2]|0)*244|0)|0,l+(u*152|0)|0);e=e+1|0}while((e|0)!=(o|0))}e=c[b+68>>2]|0;if((e|0)>0){i=0;do{g=c[(c[b+156>>2]|0)+(i<<2)>>2]|0;h=c[b+76>>2]|0;n=+f[(c[b+36>>2]|0)+((c[h+(g*152|0)+140>>2]|0)*152|0)+100>>2];if(n>0.0){v=n*+f[h+(g*152|0)+104>>2];f[h+(g*152|0)+120>>2]=-v;f[h+(g*152|0)+124>>2]=v;u=c[b+16>>2]|0;Ff(u+((c[h+(g*152|0)+144>>2]|0)*244|0)|0,u+((c[h+(g*152|0)+148>>2]|0)*244|0)|0,h+(g*152|0)|0)}i=i+1|0}while((i|0)!=(e|0))}e=c[b+88>>2]|0;if((e|0)<=0)return 0.0;h=0;do{g=c[b+96>>2]|0;n=+f[(c[b+36>>2]|0)+((c[g+(h*152|0)+140>>2]|0)*152|0)+100>>2];if(n>0.0){v=+f[g+(h*152|0)+104>>2];v=n*v>v?v:n*v;f[g+(h*152|0)+120>>2]=-v;f[g+(h*152|0)+124>>2]=v;u=c[b+16>>2]|0;Ff(u+((c[g+(h*152|0)+144>>2]|0)*244|0)|0,u+((c[g+(h*152|0)+148>>2]|0)*244|0)|0,g+(h*152|0)|0)}h=h+1|0}while((h|0)!=(e|0));return 0.0}function Pb(b,e,f,g,h,i){b=b|0;e=+e;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,A=0;A=ea;ea=ea+560|0;c[A+536>>2]=0;y=A+540+12|0;Fv(e)|0;j=D()|0;if((j|0)<0){Fv(-e)|0;j=D()|0;w=1;v=22179;e=-e}else{w=(h&2049|0)!=0&1;v=(h&2048|0)==0?((h&1|0)==0?22180:22185):22182}do if(0==0&(j&2146435072|0)==2146435072){j=w+3|0;wm(b,32,f,j,h&-65537);AA(b,v,w);AA(b,e!=e|0.0!=0.0?(i&32|0?22206:22210):i&32|0?22198:22202,3);wm(b,32,f,j,h^8192)}else{o=+Cl(e,A+536|0)*2.0;if(o!=0.0)c[A+536>>2]=(c[A+536>>2]|0)+-1;if((i|32|0)==97){p=(i&32|0)==0?v:v+9|0;n=w|2;do if(!(g>>>0>11|(12-g|0)==0)){j=12-g|0;e=8.0;do{j=j+-1|0;e=e*16.0}while((j|0)!=0);if((a[p>>0]|0)==45){e=-(e+(-o-e));break}else{e=o+e-e;break}}else e=o;while(0);k=c[A+536>>2]|0;j=(k|0)<0?0-k|0:k;j=rl(j,((j|0)<0)<<31>>31,y)|0;if((j|0)==(y|0)){a[A+540+11>>0]=48;j=A+540+11|0}a[j+-1>>0]=((31?k>>31:k)&2)+43;m=j+-2|0;a[m>>0]=i+15;k=A;while(1){x=~~e;j=k+1|0;a[k>>0]=i&32|d[480+x>>0];e=(e-+(x|0))*16.0;if((j-A|0)==1?!((h&8|0)==0&((g|0)<1&e==0.0)):0){a[j>>0]=46;j=k+2|0}if(!(e!=0.0))break;else k=j}l=j;if((g|0)!=0?(-2-A+l|0)<(g|0):0){g=g+2+y-m|0;j=y;k=m}else{g=y-A-m+l|0;j=y;k=m}y=g+n|0;wm(b,32,f,y,h);AA(b,p,n);wm(b,48,f,y,h^65536);AA(b,A,l-A|0);j=j-k|0;wm(b,48,g-(l-A+j)|0,0,0);AA(b,m,j);wm(b,32,f,y,h^8192);j=y;break}k=(g|0)<0?6:g;if(o!=0.0){g=(c[A+536>>2]|0)+-28|0;c[A+536>>2]=g;e=o*268435456.0}else{g=c[A+536>>2]|0;e=o}x=(g|0)<0?A+32|0:A+32+288|0;l=x;do{t=~~e>>>0;c[l>>2]=t;l=l+4|0;e=(e-+(t>>>0))*1.0e9}while(e!=0.0);if((g|0)>0){j=x;do{n=(g|0)<29?g:29;g=l+-4|0;if(g>>>0>=j>>>0){m=0;do{r=pt(c[g>>2]|0,0,n|0)|0;r=Lv(r|0,D()|0,m|0,0)|0;s=D()|0;m=GB(r|0,s|0,1e9,0)|0;t=Yr(m|0,D()|0,-1e9,-1)|0;t=Lv(r|0,s|0,t|0,D()|0)|0;D()|0;c[g>>2]=t;g=g+-4|0}while(g>>>0>=j>>>0);if(m){j=j+-4|0;c[j>>2]=m}}a:do if(l>>>0>j>>>0)while(1){g=l+-4|0;if(c[g>>2]|0)break a;if(g>>>0>j>>>0)l=g;else{l=g;break}}while(0);g=(c[A+536>>2]|0)-n|0;c[A+536>>2]=g}while((g|0)>0)}else j=x;if((g|0)<0)do{p=0-g|0;p=(p|0)<9?p:9;if(j>>>0>>0){m=p?1e9>>>p:1e9;n=0;g=j;do{t=c[g>>2]|0;c[g>>2]=(p?t>>>p:t)+n;n=z(t&(1<>>0>>0);j=(c[j>>2]|0)==0?j+4|0:j;if(!n)g=l;else{c[l>>2]=n;g=l+4|0}}else{j=(c[j>>2]|0)==0?j+4|0:j;g=l}l=(i|32|0)==102?x:j;t=g-l|0;l=((2?t>>2:t)|0)>(((k+25|0)/9|0)+1|0)?l+(((k+25|0)/9|0)+1<<2)|0:g;g=(c[A+536>>2]|0)+p|0;c[A+536>>2]=g}while((g|0)<0);if(j>>>0>>0){g=x-j|0;g=(2?g>>2:g)*9|0;n=c[j>>2]|0;if(n>>>0<10)m=g;else{m=10;do{m=m*10|0;g=g+1|0}while(n>>>0>=m>>>0);m=g}}else m=0;n=k-((i|32|0)==102?0:m)+(((k|0)!=0&(i|32|0)==103)<<31>>31)|0;t=l-x|0;if((n|0)<(((2?t>>2:t)*9|0)+-9|0)){g=x+4+(((n+9216|0)/9|0)+-1024<<2)|0;n=n+9216+(z((n+9216|0)/9|0,-9)|0)|0;if((n|0)<8){p=10;while(1){p=p*10|0;if((n|0)<7)n=n+1|0;else break}}else p=10;q=c[g>>2]|0;n=(q>>>0)/(p>>>0)|0;s=z(n,p)|0;r=(g+4|0)==(l|0);if(!(r&(q-s|0)==0)){o=(n&1|0)==0?9007199254740992.0:9007199254740994.0;t=1?p>>>1:p;e=(q-s|0)>>>0>>0?.5:r&(q-s|0)==(t|0)?1.0:1.5;if(w){t=(a[v>>0]|0)==45;o=t?-o:o;e=t?-e:e}c[g>>2]=s;if(o+e!=o){t=s+p|0;c[g>>2]=t;if(t>>>0>999999999)while(1){m=g+-4|0;c[g>>2]=0;if(m>>>0>>0){j=j+-4|0;c[j>>2]=0}t=(c[m>>2]|0)+1|0;c[m>>2]=t;if(t>>>0>999999999)g=m;else{g=m;break}}m=x-j|0;m=(2?m>>2:m)*9|0;p=c[j>>2]|0;if(p>>>0>=10){n=10;do{n=n*10|0;m=m+1|0}while(p>>>0>=n>>>0)}}}s=g+4|0;t=j;l=l>>>0>s>>>0?s:l}else t=j;p=0-m|0;b:do if(l>>>0>t>>>0)while(1){j=l+-4|0;if(c[j>>2]|0){r=1;s=l;break b}if(j>>>0>t>>>0)l=j;else{r=0;s=j;break}}else{r=0;s=l}while(0);do if((i|32|0)==103){if((m|0)>-5?(k+(((k|0)!=0^1)&1)|0)>(m|0):0){k=k+(((k|0)!=0^1)&1)+-1-m|0;l=i+-1|0}else{k=k+(((k|0)!=0^1)&1)+-1|0;l=i+-2|0}if(!(h&8)){if(r?(u=c[s+-4>>2]|0,(u|0)!=0):0)if(!((u>>>0)%10|0)){g=10;j=0;do{g=g*10|0;j=j+1|0}while(!((u>>>0)%(g>>>0)|0|0))}else j=0;else j=9;g=s-x|0;g=((2?g>>2:g)*9|0)+-9|0;if((l|32|0)==102){i=g-j|0;i=(i|0)>0?i:0;k=(k|0)<(i|0)?k:i;break}else{i=g+m-j|0;i=(i|0)>0?i:0;k=(k|0)<(i|0)?k:i;break}}}else l=i;while(0);q=(k|0)!=0;g=q?1:(3?h>>>3:h)&1;n=(l|32|0)==102;if(n){p=0;j=(m|0)>0?m:0}else{j=(m|0)<0?p:m;j=rl(j,((j|0)<0)<<31>>31,y)|0;if((y-j|0)<2)do{j=j+-1|0;a[j>>0]=48}while((y-j|0)<2);a[j+-1>>0]=((31?m>>31:m)&2)+43;j=j+-2|0;a[j>>0]=l;p=j;j=y-j|0}j=w+1+k+g+j|0;wm(b,32,f,j,h);AA(b,v,w);wm(b,48,f,j,h^65536);if(n){m=t>>>0>x>>>0?x:t;l=m;do{g=rl(c[l>>2]|0,0,A+9|0)|0;if((l|0)==(m|0)){if((g|0)==(A+9|0)){a[A+8>>0]=48;g=A+8|0}}else if(g>>>0>A>>>0){hk(A|0,48,g-A|0)|0;do g=g+-1|0;while(g>>>0>A>>>0)}AA(b,g,A+9-g|0);l=l+4|0}while(l>>>0<=x>>>0);if(!((h&8|0)==0&(q^1)))AA(b,22393,1);if(l>>>0>>0&(k|0)>0)while(1){g=rl(c[l>>2]|0,0,A+9|0)|0;if(g>>>0>A>>>0){hk(A|0,48,g-A|0)|0;do g=g+-1|0;while(g>>>0>A>>>0)}AA(b,g,(k|0)<9?k:9);l=l+4|0;g=k+-9|0;if(!(l>>>0>>0&(k|0)>9)){k=g;break}else k=g}wm(b,48,k+9|0,9,0)}else{n=r?s:t+4|0;if(t>>>0>>0&(k|0)>-1){m=t;do{g=rl(c[m>>2]|0,0,A+9|0)|0;if((g|0)==(A+9|0)){a[A+8>>0]=48;g=A+8|0}do if((m|0)==(t|0)){l=g+1|0;AA(b,g,1);if((h&8|0)==0&(k|0)<1){g=l;break}AA(b,22393,1);g=l}else{if(g>>>0<=A>>>0)break;hk(A|0,48,g+(0-A)|0)|0;do g=g+-1|0;while(g>>>0>A>>>0)}while(0);x=A+9-g|0;AA(b,g,(k|0)>(x|0)?x:k);k=k-x|0;m=m+4|0}while(m>>>0>>0&(k|0)>-1)}wm(b,48,k+18|0,18,0);AA(b,p,y-p|0)}wm(b,32,f,j,h^8192)}while(0);ea=A;return ((j|0)<(f|0)?f:j)|0}function Qb(b,d,e,g){b=b|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0.0,m=0.0,n=0.0,o=0,p=0.0,q=0,s=0,t=0.0;o=ea;ea=ea+80|0;i=c[b+28>>2]|0;d=c[g+64>>2]|0;if((d&4|0)!=0&(i|0)>0){e=c[b+36>>2]|0;h=c[b+76>>2]|0;if(!(d&16)){d=0;do{k=c[e+(d*152|0)+132>>2]|0;c[k+120>>2]=c[e+(d*152|0)+100>>2];c[k+124>>2]=c[h+((c[e+(d*152|0)+140>>2]|0)*152|0)+100>>2];d=d+1|0}while((d|0)!=(i|0))}else{d=0;do{k=c[e+(d*152|0)+132>>2]|0;c[k+120>>2]=c[e+(d*152|0)+100>>2];j=c[e+(d*152|0)+140>>2]|0;c[k+124>>2]=c[h+(j*152|0)+100>>2];c[k+128>>2]=c[h+((j+1|0)*152|0)+100>>2];d=d+1|0}while((d|0)!=(i|0))}}e=c[b+48>>2]|0;if((e|0)>0){k=0;do{h=c[b+56>>2]|0;i=c[h+(k*152|0)+132>>2]|0;j=c[i+44>>2]|0;d=h+(k*152|0)+100|0;if(j|0){n=+f[d>>2];s=c[i+28>>2]|0;m=1.0/+f[g+12>>2];l=n*+f[h+(k*152|0)+20>>2]*+f[s+352>>2]*m;p=n*+f[h+(k*152|0)+24>>2]*+f[s+356>>2]*m;f[j>>2]=+f[j>>2]+ +f[h+(k*152|0)+16>>2]*n*+f[s+348>>2]*m;f[j+4>>2]=l+ +f[j+4>>2];f[j+8>>2]=p+ +f[j+8>>2];p=+f[d>>2];q=c[i+32>>2]|0;l=1.0/+f[g+12>>2];m=p*+f[h+(k*152|0)+52>>2]*+f[q+352>>2]*l;n=p*+f[h+(k*152|0)+56>>2]*+f[q+356>>2]*l;f[j+32>>2]=+f[j+32>>2]+ +f[h+(k*152|0)+48>>2]*p*+f[q+348>>2]*l;f[j+36>>2]=m+ +f[j+36>>2];f[j+40>>2]=n+ +f[j+40>>2];n=+f[d>>2];m=1.0/+f[g+12>>2];l=+f[h+(k*152|0)+4>>2]*+f[s+548>>2]*n*m;p=n*(+f[h+(k*152|0)+8>>2]*+f[s+552>>2])*m;f[j+16>>2]=+f[j+16>>2]+ +f[h+(k*152|0)>>2]*+f[s+544>>2]*n*m;f[j+20>>2]=l+ +f[j+20>>2];f[j+24>>2]=p+ +f[j+24>>2];p=+f[d>>2];l=1.0/+f[g+12>>2];m=+f[h+(k*152|0)+36>>2]*+f[q+548>>2]*p*l;n=p*(+f[h+(k*152|0)+40>>2]*+f[q+552>>2])*l;f[j+48>>2]=+f[j+48>>2]+ +f[h+(k*152|0)+32>>2]*+f[q+544>>2]*p*l;f[j+52>>2]=m+ +f[j+52>>2];f[j+56>>2]=n+ +f[j+56>>2]}p=+f[d>>2];f[i+36>>2]=p;p=+r(+p);if(p>=+f[i+16>>2])a[i+20>>0]=0;k=k+1|0}while((k|0)!=(e|0))}d=c[b+8>>2]|0;if((d|0)>0){e=c[b+16>>2]|0;j=0;do{h=e+(j*244|0)|0;i=c[e+(j*244|0)+240>>2]|0;if(i){if(!(c[g+44>>2]|0)){h=e+(j*244|0)+176|0;m=+f[e+(j*244|0)+64>>2]+ +f[h>>2];f[h>>2]=m;h=e+(j*244|0)+180|0;n=+f[e+(j*244|0)+68>>2]+ +f[h>>2];f[h>>2]=n;h=e+(j*244|0)+184|0;l=+f[e+(j*244|0)+72>>2]+ +f[h>>2];f[h>>2]=l;h=e+(j*244|0)+192|0;f[h>>2]=+f[e+(j*244|0)+80>>2]+ +f[h>>2];h=e+(j*244|0)+196|0;f[h>>2]=+f[e+(j*244|0)+84>>2]+ +f[h>>2];h=e+(j*244|0)+200|0;f[h>>2]=+f[e+(j*244|0)+88>>2]+ +f[h>>2];h=e;d=i}else{l=+f[g+12>>2];m=+f[g+52>>2];d=e+(j*244|0)+176|0;f[d>>2]=+f[e+(j*244|0)+64>>2]+ +f[d>>2];d=e+(j*244|0)+180|0;f[d>>2]=+f[e+(j*244|0)+68>>2]+ +f[d>>2];d=e+(j*244|0)+184|0;f[d>>2]=+f[e+(j*244|0)+72>>2]+ +f[d>>2];d=e+(j*244|0)+192|0;f[d>>2]=+f[e+(j*244|0)+80>>2]+ +f[d>>2];d=e+(j*244|0)+196|0;f[d>>2]=+f[e+(j*244|0)+84>>2]+ +f[d>>2];d=e+(j*244|0)+200|0;f[d>>2]=+f[e+(j*244|0)+88>>2]+ +f[d>>2];n=+f[e+(j*244|0)+144>>2];d=e+(j*244|0)+148|0;if(((((!(n!=0.0)?!(+f[d>>2]!=0.0):0)?!(+f[e+(j*244|0)+152>>2]!=0.0):0)?!(+f[e+(j*244|0)+160>>2]!=0.0):0)?!(+f[e+(j*244|0)+164>>2]!=0.0):0)?!(+f[e+(j*244|0)+168>>2]!=0.0):0)d=i;else{t=+f[e+(j*244|0)+164>>2]*m;p=+f[e+(j*244|0)+168>>2]*m;f[o>>2]=+f[e+(j*244|0)+160>>2]*m;f[o+4>>2]=t;f[o+8>>2]=p;f[o+12>>2]=0.0;ag(h,n,+f[d>>2],+f[e+(j*244|0)+152>>2],o,l,o+16|0);c[h>>2]=c[o+16>>2];c[h+4>>2]=c[o+16+4>>2];c[h+8>>2]=c[o+16+8>>2];c[h+12>>2]=c[o+16+12>>2];d=e+(j*244|0)+16|0;c[d>>2]=c[o+16+16>>2];c[d+4>>2]=c[o+16+16+4>>2];c[d+8>>2]=c[o+16+16+8>>2];c[d+12>>2]=c[o+16+16+12>>2];d=e+(j*244|0)+32|0;c[d>>2]=c[o+16+32>>2];c[d+4>>2]=c[o+16+32+4>>2];c[d+8>>2]=c[o+16+32+8>>2];c[d+12>>2]=c[o+16+32+12>>2];d=e+(j*244|0)+48|0;c[d>>2]=c[o+16+48>>2];c[d+4>>2]=c[o+16+48+4>>2];c[d+8>>2]=c[o+16+48+8>>2];c[d+12>>2]=c[o+16+48+12>>2];d=c[b+16>>2]|0;e=d;d=c[d+(j*244|0)+240>>2]|0}h=e;m=+f[e+(j*244|0)+176>>2];n=+f[e+(j*244|0)+180>>2];l=+f[e+(j*244|0)+184>>2]}t=m+ +f[h+(j*244|0)+208>>2];p=n+ +f[h+(j*244|0)+212>>2];n=l+ +f[h+(j*244|0)+216>>2];q=d+260|0;c[q>>2]=(c[q>>2]|0)+1;f[d+312>>2]=t;f[d+316>>2]=p;f[d+320>>2]=n;f[d+324>>2]=0.0;q=c[b+16>>2]|0;s=c[q+(j*244|0)+240>>2]|0;n=+f[q+(j*244|0)+192>>2]+ +f[q+(j*244|0)+224>>2];p=+f[q+(j*244|0)+196>>2]+ +f[q+(j*244|0)+228>>2];t=+f[q+(j*244|0)+200>>2]+ +f[q+(j*244|0)+232>>2];c[s+260>>2]=(c[s+260>>2]|0)+1;f[s+328>>2]=n;f[s+332>>2]=p;f[s+336>>2]=t;f[s+340>>2]=0.0;if(c[g+44>>2]|0){q=c[b+16>>2]|0;s=c[q+(j*244|0)+240>>2]|0;k=q+(j*244|0)|0;c[s+260>>2]=(c[s+260>>2]|0)+1;c[s+4>>2]=c[k>>2];c[s+4+4>>2]=c[k+4>>2];c[s+4+8>>2]=c[k+8>>2];c[s+4+12>>2]=c[k+12>>2];k=q+(j*244|0)+16|0;c[s+20>>2]=c[k>>2];c[s+20+4>>2]=c[k+4>>2];c[s+20+8>>2]=c[k+8>>2];c[s+20+12>>2]=c[k+12>>2];k=q+(j*244|0)+32|0;c[s+36>>2]=c[k>>2];c[s+36+4>>2]=c[k+4>>2];c[s+36+8>>2]=c[k+8>>2];c[s+36+12>>2]=c[k+12>>2];q=q+(j*244|0)+48|0;c[s+52>>2]=c[q>>2];c[s+52+4>>2]=c[q+4>>2];c[s+52+8>>2]=c[q+8>>2];c[s+52+12>>2]=c[q+12>>2]}e=c[b+16>>2]|0;c[(c[e+(j*244|0)+240>>2]|0)+212>>2]=-1;d=c[b+8>>2]|0}j=j+1|0}while((j|0)<(d|0))}if((c[b+28>>2]|0)<0?(c[b+32>>2]|0)<0:0){d=c[b+36>>2]|0;if(d|0){if(a[b+40>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+36>>2]=0}a[b+40>>0]=1;c[b+36>>2]=0;c[b+32>>2]=0}c[b+28>>2]=0;if((c[b+48>>2]|0)<0?(c[b+52>>2]|0)<0:0){d=c[b+56>>2]|0;if(d|0){if(a[b+60>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+56>>2]=0}a[b+60>>0]=1;c[b+56>>2]=0;c[b+52>>2]=0}c[b+48>>2]=0;if((c[b+68>>2]|0)<0?(c[b+72>>2]|0)<0:0){d=c[b+76>>2]|0;if(d|0){if(a[b+80>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+76>>2]=0}a[b+80>>0]=1;c[b+76>>2]=0;c[b+72>>2]=0}c[b+68>>2]=0;if((c[b+88>>2]|0)<0?(c[b+92>>2]|0)<0:0){d=c[b+96>>2]|0;if(d|0){if(a[b+100>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+96>>2]=0}a[b+100>>0]=1;c[b+96>>2]=0;c[b+92>>2]=0}c[b+88>>2]=0;if((c[b+8>>2]|0)>=0){c[b+8>>2]=0;ea=o;return 0.0}if((c[b+12>>2]|0)>=0){c[b+8>>2]=0;ea=o;return 0.0}d=c[b+16>>2]|0;if(d|0){if(a[b+20>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+16>>2]=0}a[b+20>>0]=1;c[b+16>>2]=0;c[b+12>>2]=0;c[b+8>>2]=0;ea=o;return 0.0}function Rb(a){a=a|0;var b=0.0,d=0.0,e=0.0,g=0.0,h=0.0,i=0.0,j=0,k=0,l=0,m=0.0,n=0.0,o=0.0;j=c[a+372>>2]|0;a:do switch(c[j+32>>2]|0){case 1:{f[j+20>>2]=0.0;k=(c[a+364>>2]|0)+-1|0;c[a+364>>2]=k;k=c[a+348+(k<<2)>>2]|0;c[j+4>>2]=k;c[j+32>>2]=2;Og(a,1.0,0.0,0.0,k);if(Rb(a)|0){k=1;return k|0}j=c[a+372>>2]|0;k=(c[j+32>>2]|0)+-1|0;c[j+32>>2]=k;k=c[j+(k<<2)>>2]|0;c[a+348+(c[a+364>>2]<<2)>>2]=k;j=c[a+372>>2]|0;l=c[j+32>>2]|0;f[j+16+(l<<2)>>2]=0.0;c[j+(l<<2)>>2]=k;c[j+32>>2]=l+1;Og(a,-1.0,-0.0,-0.0,k);if(Rb(a)|0){l=1;return l|0}k=c[a+372>>2]|0;l=(c[k+32>>2]|0)+-1|0;c[k+32>>2]=l;l=c[k+(l<<2)>>2]|0;c[a+348+(c[a+364>>2]<<2)>>2]=l;k=c[a+372>>2]|0;j=c[k+32>>2]|0;f[k+16+(j<<2)>>2]=0.0;c[k+(j<<2)>>2]=l;c[k+32>>2]=j+1;Og(a,0.0,1.0,0.0,l);if(Rb(a)|0){l=1;return l|0}k=c[a+372>>2]|0;l=(c[k+32>>2]|0)+-1|0;c[k+32>>2]=l;l=c[k+(l<<2)>>2]|0;c[a+348+(c[a+364>>2]<<2)>>2]=l;k=c[a+372>>2]|0;j=c[k+32>>2]|0;f[k+16+(j<<2)>>2]=0.0;c[k+(j<<2)>>2]=l;c[k+32>>2]=j+1;Og(a,-0.0,-1.0,-0.0,l);if(Rb(a)|0){l=1;return l|0}k=c[a+372>>2]|0;l=(c[k+32>>2]|0)+-1|0;c[k+32>>2]=l;l=c[k+(l<<2)>>2]|0;c[a+348+(c[a+364>>2]<<2)>>2]=l;k=c[a+372>>2]|0;j=c[k+32>>2]|0;f[k+16+(j<<2)>>2]=0.0;c[k+(j<<2)>>2]=l;c[k+32>>2]=j+1;Og(a,0.0,0.0,1.0,l);if(Rb(a)|0){l=1;return l|0}k=c[a+372>>2]|0;l=(c[k+32>>2]|0)+-1|0;c[k+32>>2]=l;l=c[k+(l<<2)>>2]|0;c[a+348+(c[a+364>>2]<<2)>>2]=l;k=c[a+372>>2]|0;j=c[k+32>>2]|0;f[k+16+(j<<2)>>2]=0.0;c[k+(j<<2)>>2]=l;c[k+32>>2]=j+1;Og(a,-0.0,-0.0,-1.0,l);if(Rb(a)|0){l=1;return l|0}else{l=c[a+372>>2]|0;k=(c[l+32>>2]|0)+-1|0;c[l+32>>2]=k;k=c[l+(k<<2)>>2]|0;l=c[a+364>>2]|0;c[a+364>>2]=l+1;c[a+348+(l<<2)>>2]=k;break a}}case 2:{k=c[j+4>>2]|0;l=c[j>>2]|0;d=+f[k+16>>2]-+f[l+16>>2];g=+f[k+20>>2]-+f[l+20>>2];e=+f[k+24>>2]-+f[l+24>>2];b=g*0.0-e*0.0;do if((d*0.0-g)*(d*0.0-g)+(b*b+(e-d*0.0)*(e-d*0.0))>0.0){f[j+24>>2]=0.0;l=(c[a+364>>2]|0)+-1|0;c[a+364>>2]=l;l=c[a+348+(l<<2)>>2]|0;c[j+8>>2]=l;c[j+32>>2]=3;Og(a,b,e-d*0.0,d*0.0-g,l);if(Rb(a)|0){l=1;return l|0}k=c[a+372>>2]|0;l=(c[k+32>>2]|0)+-1|0;c[k+32>>2]=l;l=c[k+(l<<2)>>2]|0;c[a+348+(c[a+364>>2]<<2)>>2]=l;k=c[a+372>>2]|0;j=c[k+32>>2]|0;f[k+16+(j<<2)>>2]=0.0;c[k+(j<<2)>>2]=l;c[k+32>>2]=j+1;Og(a,-b,-(e-d*0.0),-(d*0.0-g),l);if(Rb(a)|0){l=1;return l|0}else{l=c[a+372>>2]|0;k=(c[l+32>>2]|0)+-1|0;c[l+32>>2]=k;k=c[l+(k<<2)>>2]|0;l=c[a+364>>2]|0;c[a+364>>2]=l+1;c[a+348+(l<<2)>>2]=k;break}}while(0);b=e*0.0-d*0.0;do if((d-g*0.0)*(d-g*0.0)+((g*0.0-e)*(g*0.0-e)+b*b)>0.0){k=c[a+372>>2]|0;j=c[k+32>>2]|0;f[k+16+(j<<2)>>2]=0.0;l=(c[a+364>>2]|0)+-1|0;c[a+364>>2]=l;l=c[a+348+(l<<2)>>2]|0;c[k+(j<<2)>>2]=l;c[k+32>>2]=j+1;Og(a,g*0.0-e,b,d-g*0.0,l);if(Rb(a)|0){l=1;return l|0}k=c[a+372>>2]|0;l=(c[k+32>>2]|0)+-1|0;c[k+32>>2]=l;l=c[k+(l<<2)>>2]|0;c[a+348+(c[a+364>>2]<<2)>>2]=l;k=c[a+372>>2]|0;j=c[k+32>>2]|0;f[k+16+(j<<2)>>2]=0.0;c[k+(j<<2)>>2]=l;c[k+32>>2]=j+1;Og(a,-(g*0.0-e),-b,-(d-g*0.0),l);if(Rb(a)|0){l=1;return l|0}else{l=c[a+372>>2]|0;k=(c[l+32>>2]|0)+-1|0;c[l+32>>2]=k;k=c[l+(k<<2)>>2]|0;l=c[a+364>>2]|0;c[a+364>>2]=l+1;c[a+348+(l<<2)>>2]=k;break}}while(0);b=d*0.0-g*0.0;if(b*b+((g-e*0.0)*(g-e*0.0)+(e*0.0-d)*(e*0.0-d))>0.0){k=c[a+372>>2]|0;j=c[k+32>>2]|0;f[k+16+(j<<2)>>2]=0.0;l=(c[a+364>>2]|0)+-1|0;c[a+364>>2]=l;l=c[a+348+(l<<2)>>2]|0;c[k+(j<<2)>>2]=l;c[k+32>>2]=j+1;Og(a,g-e*0.0,e*0.0-d,b,l);if(Rb(a)|0){l=1;return l|0}k=c[a+372>>2]|0;l=(c[k+32>>2]|0)+-1|0;c[k+32>>2]=l;l=c[k+(l<<2)>>2]|0;c[a+348+(c[a+364>>2]<<2)>>2]=l;k=c[a+372>>2]|0;j=c[k+32>>2]|0;f[k+16+(j<<2)>>2]=0.0;c[k+(j<<2)>>2]=l;c[k+32>>2]=j+1;Og(a,-(g-e*0.0),-(e*0.0-d),-b,l);if(Rb(a)|0){l=1;return l|0}else{l=c[a+372>>2]|0;k=(c[l+32>>2]|0)+-1|0;c[l+32>>2]=k;k=c[l+(k<<2)>>2]|0;l=c[a+364>>2]|0;c[a+364>>2]=l+1;c[a+348+(l<<2)>>2]=k;break a}}break}case 3:{l=c[j+4>>2]|0;k=c[j>>2]|0;b=+f[k+16>>2];d=+f[l+16>>2]-b;h=+f[k+20>>2];i=+f[l+20>>2]-h;e=+f[k+24>>2];g=+f[l+24>>2]-e;l=c[j+8>>2]|0;b=+f[l+16>>2]-b;h=+f[l+20>>2]-h;e=+f[l+24>>2]-e;if((d*h-i*b)*(d*h-i*b)+((i*e-g*h)*(i*e-g*h)+(g*b-d*e)*(g*b-d*e))>0.0){f[j+28>>2]=0.0;l=(c[a+364>>2]|0)+-1|0;c[a+364>>2]=l;l=c[a+348+(l<<2)>>2]|0;c[j+12>>2]=l;c[j+32>>2]=4;Og(a,i*e-g*h,g*b-d*e,d*h-i*b,l);if(Rb(a)|0){l=1;return l|0}k=c[a+372>>2]|0;l=(c[k+32>>2]|0)+-1|0;c[k+32>>2]=l;l=c[k+(l<<2)>>2]|0;c[a+348+(c[a+364>>2]<<2)>>2]=l;k=c[a+372>>2]|0;j=c[k+32>>2]|0;f[k+16+(j<<2)>>2]=0.0;c[k+(j<<2)>>2]=l;c[k+32>>2]=j+1;Og(a,-(i*e-g*h),-(g*b-d*e),-(d*h-i*b),l);if(Rb(a)|0){l=1;return l|0}else{l=c[a+372>>2]|0;k=(c[l+32>>2]|0)+-1|0;c[l+32>>2]=k;k=c[l+(k<<2)>>2]|0;l=c[a+364>>2]|0;c[a+364>>2]=l+1;c[a+348+(l<<2)>>2]=k;break a}}break}case 4:{l=c[j>>2]|0;k=c[j+12>>2]|0;i=+f[k+16>>2];o=+f[l+16>>2]-i;m=+f[k+20>>2];b=+f[l+20>>2]-m;e=+f[k+24>>2];g=+f[l+24>>2]-e;l=c[j+4>>2]|0;d=+f[l+16>>2]-i;h=+f[l+20>>2]-m;n=+f[l+24>>2]-e;l=c[j+8>>2]|0;i=+f[l+16>>2]-i;m=+f[l+20>>2]-m;e=+f[l+24>>2]-e;if(!((0.0!=0.0?1:o*h*e+(b*n*i+g*d*m-o*n*m-b*d*e)-g*h*i!=o*h*e+(b*n*i+g*d*m-o*n*m-b*d*e)-g*h*i)|o*h*e+(b*n*i+g*d*m-o*n*m-b*d*e)-g*h*i==0.0)){l=1;return l|0}break}default:{}}while(0);l=0;return l|0}function Sb(d,e,f,h,i){d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=ea;ea=ea+64|0;c[w+56>>2]=e;v=w+40|0;e=0;j=0;m=0;a:while(1){do{if((e|0)>-1)e=(j|0)>(2147483647-e|0)?-1:j+e|0;r=c[w+56>>2]|0;j=a[r>>0]|0;if(!(j<<24>>24)){u=89;break a}k=r;b:while(1){switch(j<<24>>24){case 37:{u=8;break b}case 0:{j=k;break b}default:{}}t=k+1|0;c[w+56>>2]=t;j=a[t>>0]|0;k=t}c:do if((u|0)==8){u=0;l=k;j=k;do{if((a[l+1>>0]|0)!=37)break c;j=j+1|0;l=l+2|0;c[w+56>>2]=l}while((a[l>>0]|0)==37)}while(0);j=j-r|0;if(d|0)AA(d,r,j)}while((j|0)!=0);l=c[w+56>>2]|0;j=a[l+1>>0]|0;if(!(VI(j)|0)){k=1;q=-1;o=m}else{o=(a[l+2>>0]|0)==36;k=o?3:1;q=o?j+-48|0:-1;o=o?1:m}k=l+k|0;c[w+56>>2]=k;j=a[k>>0]|0;if(((j<<24>>24)+-32|0)>>>0>31|(1<<(j<<24>>24)+-32&75913|0)==0)n=0;else{l=0;m=(j<<24>>24)+-32|0;do{l=1<>2]=k;j=a[k>>0]|0;m=(j<<24>>24)+-32|0}while(!(m>>>0>31|(1<>24==42){l=k+1|0;j=a[l>>0]|0;if((VI(j)|0)!=0?(a[k+2>>0]|0)==36:0){c[i+(j+-48<<2)>>2]=10;m=1;j=k+3|0;k=c[h+((a[l>>0]|0)+-48<<3)>>2]|0}else{if(o|0){e=-1;break}if(d|0){m=(c[f>>2]|0)+(4-1)&~(4-1);k=c[m>>2]|0;c[f>>2]=m+4;m=0;j=l}else{m=0;j=l;k=0}}c[w+56>>2]=j;s=(k|0)<0;l=j;n=s?n|8192:n;t=m;s=s?0-k|0:k}else{j=zo(w+56|0)|0;if((j|0)<0){e=-1;break}l=c[w+56>>2]|0;t=o;s=j}do if((a[l>>0]|0)==46){j=l+1|0;if((a[j>>0]|0)!=42){c[w+56>>2]=j;m=zo(w+56|0)|0;j=c[w+56>>2]|0;break}j=l+2|0;k=a[j>>0]|0;if(VI(k)|0?(a[l+3>>0]|0)==36:0){c[i+(k+-48<<2)>>2]=10;m=c[h+((a[j>>0]|0)+-48<<3)>>2]|0;j=l+4|0;c[w+56>>2]=j;break}if(t|0){e=-1;break a}if(d|0){p=(c[f>>2]|0)+(4-1)&~(4-1);k=c[p>>2]|0;c[f>>2]=p+4}else k=0;c[w+56>>2]=j;m=k}else{j=l;m=-1}while(0);p=0;while(1){if(((a[j>>0]|0)+-65|0)>>>0>57){e=-1;break a}k=j+1|0;c[w+56>>2]=k;l=a[(a[j>>0]|0)+-65+(16+(p*58|0))>>0]|0;if(((l&255)+-1|0)>>>0<8){j=k;p=l&255}else break}if(!(l<<24>>24)){e=-1;break}k=(q|0)>-1;do if(l<<24>>24==19)if(k){e=-1;break a}else u=50;else{if(k){c[i+(q<<2)>>2]=l&255;q=h+(q<<3)|0;u=c[q+4>>2]|0;c[w+40>>2]=c[q>>2];c[w+40+4>>2]=u;u=50;break}if(!d){e=0;break a}gg(w+40|0,l&255,f);u=51}while(0);if((u|0)==50){u=0;if(d|0)u=51;else j=0}d:do if((u|0)==51){u=0;l=a[j>>0]|0;l=(p|0)!=0&(l&15|0)==3?l&-33:l;j=n&-65537;o=(n&8192|0)==0?n:j;e:do switch(l|0){case 110:switch((p&255)<<24>>24){case 0:{c[c[w+40>>2]>>2]=e;j=0;break d}case 1:{c[c[w+40>>2]>>2]=e;j=0;break d}case 2:{j=c[w+40>>2]|0;c[j>>2]=e;c[j+4>>2]=((e|0)<0)<<31>>31;j=0;break d}case 3:{b[c[w+40>>2]>>1]=e;j=0;break d}case 4:{a[c[w+40>>2]>>0]=e;j=0;break d}case 6:{c[c[w+40>>2]>>2]=e;j=0;break d}case 7:{j=c[w+40>>2]|0;c[j>>2]=e;c[j+4>>2]=((e|0)<0)<<31>>31;j=0;break d}default:{j=0;break d}}case 112:{j=o|8;k=m>>>0>8?m:8;n=120;u=63;break}case 88:case 120:{j=o;k=m;n=l;u=63;break}case 111:{q=c[w+40>>2]|0;r=c[w+40+4>>2]|0;l=zq(q,r,w+40|0)|0;p=l;j=o;m=(o&8|0)==0|(m|0)>(v-l|0)?m:v-l+1|0;l=0;k=22162;u=69;break}case 105:case 100:{j=c[w+40>>2]|0;k=c[w+40+4>>2]|0;if((k|0)<0){j=tv(0,0,j|0,k|0)|0;k=D()|0;c[w+40>>2]=j;c[w+40+4>>2]=k;l=1;n=22162;u=68;break e}else{l=(o&2049|0)!=0&1;n=(o&2048|0)==0?((o&1|0)==0?22162:22164):22163;u=68;break e}}case 117:{j=c[w+40>>2]|0;k=c[w+40+4>>2]|0;l=0;n=22162;u=68;break}case 99:{a[w+39>>0]=c[w+40>>2];p=w+39|0;o=j;n=1;l=0;k=22162;j=v;break}case 115:{q=c[w+40>>2]|0;q=(q|0)==0?22172:q;r=Si(q,m)|0;p=q;o=j;n=(r|0)==0?m:r-q|0;l=0;k=22162;j=(r|0)==0?q+m|0:r;break}case 67:{c[w+48>>2]=c[w+40>>2];c[w+48+4>>2]=0;c[w+40>>2]=w+48;l=w+48|0;m=-1;u=76;break}case 83:if(!m){wm(d,32,s,0,o);j=0;u=86;break e}else{l=c[w+40>>2]|0;u=76;break e}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{j=Pb(d,+g[w+40>>3],s,m,o,l)|0;break d}default:{p=r;n=m;l=0;k=22162;j=v}}while(0);f:do if((u|0)==63){q=c[w+40>>2]|0;r=c[w+40+4>>2]|0;p=yp(q,r,w+40|0,n&32)|0;o=(j&8|0)==0|(q|0)==0&(r|0)==0;m=k;l=o?0:2;k=o?22162:22162+(4?n>>>4:n)|0;u=69}else if((u|0)==68){q=j;r=k;p=rl(j,k,w+40|0)|0;j=o;k=n;u=69}else if((u|0)==76){u=0;j=0;n=l;while(1){k=c[n>>2]|0;if(!k)break;k=XA(w+60|0,k)|0;if((k|0)<0|k>>>0>(m-j|0)>>>0){u=80;break}j=k+j|0;if(m>>>0>j>>>0)n=n+4|0;else break}if((u|0)==80){u=0;if((k|0)<0){e=-1;break a}}wm(d,32,s,j,o);if(!j){j=0;u=86}else{m=0;while(1){k=c[l>>2]|0;if(!k){u=86;break f}k=XA(w+60|0,k)|0;m=k+m|0;if((m|0)>(j|0)){u=86;break f}AA(d,w+60|0,k);if(m>>>0>=j>>>0){u=86;break}else l=l+4|0}}}while(0);if((u|0)==69){u=0;n=(q|0)!=0|(r|0)!=0;r=(m|0)!=0|n;n=v-p+((n^1)&1)|0;p=r?p:w+40|0;o=(m|0)>-1?j&-65537:j;n=r?((m|0)>(n|0)?m:n):0;j=v}else if((u|0)==86){u=0;wm(d,32,s,j,o^8192);j=(s|0)>(j|0)?s:j;break}q=j-p|0;n=(n|0)<(q|0)?q:n;r=n+l|0;j=(s|0)<(r|0)?r:s;wm(d,32,j,r,o);AA(d,k,l);wm(d,48,j,r,o^65536);wm(d,48,n,q,0);AA(d,p,q);wm(d,32,j,r,o^8192)}while(0);m=t}g:do if((u|0)==89)if(!d)if(!m)e=0;else{e=1;while(1){j=c[i+(e<<2)>>2]|0;if(!j)break;gg(h+(e<<3)|0,j,f);e=e+1|0;if(e>>>0>=10){e=1;break g}}j=0;while(1){e=e+1|0;if(j|0){e=-1;break g}if(e>>>0>=10){e=1;break g}j=c[i+(e<<2)>>2]|0}}while(0);ea=w;return e|0}function Tb(a,b){a=a|0;b=+b;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0,s=0.0,t=0.0,u=0.0,v=0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0;n=ea;ea=ea+48|0;d=c[a+24>>2]|0;if((d|0)<=0){ea=n;return}m=0;a:while(1){l=c[(c[a+32>>2]|0)+(m<<2)>>2]|0;switch(c[l+216>>2]|0){case 2:case 5:break;default:{Qc(l,0);d=c[l+732>>2]|0;if((d|0)>0){e=0;do{k=c[l+740>>2]|0;i=c[k+(e*52|0)+12>>2]|0;j=c[k+(e*52|0)+8>>2]|0;x=+f[i+24>>2]-+f[j+24>>2];w=+f[i+28>>2]-+f[j+28>>2];b=+f[i+32>>2]-+f[j+32>>2];f[k+(e*52|0)+36>>2]=x;f[k+(e*52|0)+40>>2]=w;f[k+(e*52|0)+44>>2]=b;f[k+(e*52|0)+48>>2]=0.0;f[k+(e*52|0)+32>>2]=1.0/(+f[k+(e*52|0)+24>>2]*(x*x+w*w+b*b));e=e+1|0}while((e|0)!=(d|0))}d=c[l+792>>2]|0;if((d|0)>0){b=+f[l+452>>2];g=0;do{k=c[l+800>>2]|0;e=k+(g*96|0)+20|0;i=c[e>>2]|0;A=+f[k+(g*96|0)+4>>2];z=+f[k+(g*96|0)+8>>2];x=+f[k+(g*96|0)+12>>2];y=+f[i+4>>2]*A+ +f[i+8>>2]*z+ +f[i+12>>2]*x;w=A*+f[i+20>>2]+z*+f[i+24>>2]+x*+f[i+28>>2];x=A*+f[i+36>>2]+z*+f[i+40>>2]+x*+f[i+44>>2];j=k+(g*96|0)|0;Me(n,b,+f[(c[j>>2]|0)+88>>2],+f[i+344>>2],i+264|0,y,w,x);i=k+(g*96|0)+28|0;c[i>>2]=c[n>>2];c[i+4>>2]=c[n+4>>2];c[i+8>>2]=c[n+8>>2];c[i+12>>2]=c[n+12>>2];i=k+(g*96|0)+44|0;c[i>>2]=c[n+16>>2];c[i+4>>2]=c[n+16+4>>2];c[i+8>>2]=c[n+16+8>>2];c[i+12>>2]=c[n+16+12>>2];i=k+(g*96|0)+60|0;c[i>>2]=c[n+32>>2];c[i+4>>2]=c[n+32+4>>2];c[i+8>>2]=c[n+32+8>>2];c[i+12>>2]=c[n+32+12>>2];f[k+(g*96|0)+76>>2]=y;f[k+(g*96|0)+80>>2]=w;f[k+(g*96|0)+84>>2]=x;f[k+(g*96|0)+88>>2]=0.0;b=+f[l+452>>2];f[k+(g*96|0)+92>>2]=b*+f[(c[j>>2]|0)+88>>2];e=c[e>>2]|0;if(!(c[e+204>>2]&3)){if((c[e+216>>2]&-2|0)!=4)c[e+216>>2]=1;f[e+220>>2]=0.0}g=g+1|0}while((g|0)!=(d|0))}d=c[l+372>>2]|0;if((d|0)>0){e=c[l+396>>2]|0;g=0;do{if((e|0)>0){d=0;do{Da[((c[(c[l+404>>2]|0)+(d<<2)>>2]|0)==0?23:0)&31](l,1.0);d=d+1|0;e=c[l+396>>2]|0}while((d|0)<(e|0));d=c[l+372>>2]|0}g=g+1|0}while((g|0)<(d|0));d=c[l+712>>2]|0;if((d|0)>0){e=0;do{k=c[l+720>>2]|0;y=+f[l+452>>2];z=y*+f[k+(e*104|0)+44>>2]+ +f[k+(e*104|0)+28>>2];A=y*+f[k+(e*104|0)+48>>2]+ +f[k+(e*104|0)+32>>2];f[k+(e*104|0)+8>>2]=+f[k+(e*104|0)+40>>2]*y+ +f[k+(e*104|0)+24>>2];f[k+(e*104|0)+12>>2]=z;f[k+(e*104|0)+16>>2]=A;f[k+(e*104|0)+20>>2]=0.0;e=e+1|0}while((e|0)!=(d|0))}}d=c[l+376>>2]|0;if((d|0)>0){e=c[l+416>>2]|0;h=0;do{b=+(h|0)/+(d|0);if((e|0)>0){g=0;do{switch(c[(c[l+424>>2]|0)+(g<<2)>>2]|0){case 1:{d=2;break}case 0:{d=3;break}case 2:{d=4;break}case 3:{d=5;break}default:{v=37;break a}}Ea[d&7](l,1.0,b);g=g+1|0;e=c[l+416>>2]|0}while((g|0)<(e|0));d=c[l+376>>2]|0}h=h+1|0}while((h|0)<(d|0));b=+f[l+456>>2]*(1.0-+f[l+296>>2]);d=c[l+712>>2]|0;if((d|0)>0){e=0;do{k=c[l+720>>2]|0;z=b*(+f[k+(e*104|0)+12>>2]-+f[k+(e*104|0)+28>>2]);A=b*(+f[k+(e*104|0)+16>>2]-+f[k+(e*104|0)+32>>2]);f[k+(e*104|0)+40>>2]=b*(+f[k+(e*104|0)+8>>2]-+f[k+(e*104|0)+24>>2]);f[k+(e*104|0)+44>>2]=z;f[k+(e*104|0)+48>>2]=A;k=k+(e*104|0)+52|0;e=e+1|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[k+16>>2]=0}while((e|0)!=(d|0))}}d=c[l+380>>2]|0;if((d|0)>0){b=+f[l+292>>2]*+f[l+456>>2];e=c[l+712>>2]|0;if((e|0)>0){d=0;do{k=c[l+720>>2]|0;j=k+(d*104|0)+8|0;k=k+(d*104|0)+24|0;c[k>>2]=c[j>>2];c[k+4>>2]=c[j+4>>2];c[k+8>>2]=c[j+8>>2];c[k+12>>2]=c[j+12>>2];d=d+1|0}while((d|0)!=(e|0));d=c[l+380>>2]|0;if((d|0)>0)v=45}else v=45;if((v|0)==45){v=0;e=c[l+436>>2]|0;h=0;do{if((e|0)>0){g=0;do{switch(c[(c[l+444>>2]|0)+(g<<2)>>2]|0){case 1:{d=2;break}case 0:{d=3;break}case 2:{d=4;break}case 3:{d=5;break}default:{v=56;break a}}Ea[d&7](l,1.0,0.0);g=g+1|0;e=c[l+436>>2]|0}while((g|0)<(e|0));d=c[l+380>>2]|0}h=h+1|0}while((h|0)<(d|0))}d=c[l+712>>2]|0;if((d|0)>0){e=c[l+720>>2]|0;g=0;do{z=b*(+f[e+(g*104|0)+12>>2]-+f[e+(g*104|0)+28>>2]);A=b*(+f[e+(g*104|0)+16>>2]-+f[e+(g*104|0)+32>>2]);k=e+(g*104|0)+40|0;f[k>>2]=b*(+f[e+(g*104|0)+8>>2]-+f[e+(g*104|0)+24>>2])+ +f[k>>2];k=e+(g*104|0)+44|0;f[k>>2]=z+ +f[k>>2];k=e+(g*104|0)+48|0;f[k>>2]=A+ +f[k>>2];g=g+1|0}while((g|0)!=(d|0))}}g=c[l+1112>>2]|0;if((g|0)>0){h=c[l+1120>>2]|0;j=0;do{i=c[h+(j<<2)>>2]|0;if(+f[i+352>>2]>0.0?(r=c[i+24>>2]|0,(r|0)>0):0){d=c[i+32>>2]|0;k=0;do{e=c[d+(k<<2)>>2]|0;if(+f[e+88>>2]>0.0?(o=+f[e+24>>2]-+f[i+228>>2],q=+f[e+28>>2]-+f[i+232>>2],u=+f[e+32>>2]-+f[i+236>>2],t=+f[i+336>>2],A=+f[i+340>>2],p=+f[i+332>>2],s=+f[i+316>>2]+(t*u-q*A),u=+f[i+320>>2]+(o*A-u*p),t=q*p-o*t+ +f[i+324>>2],o=+f[e+40>>2],p=+f[e+44>>2],q=+f[e+48>>2],s*s+u*u+t*t<=o*o+p*p+q*q):0){A=+f[i+352>>2];f[e+40>>2]=o+(s-o)*A;f[e+44>>2]=p+(u-p)*A;f[e+48>>2]=q+(t-q)*A}k=k+1|0}while((k|0)!=(r|0))}j=j+1|0}while((j|0)!=(g|0))}Qc(l,1);d=c[a+24>>2]|0}}m=m+1|0;if((m|0)>=(d|0)){v=3;break}}if((v|0)==3){ea=n;return}}function Ub(b,d,e){b=b|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,t=0,u=0,v=0,w=0,x=0,y=0,A=0.0,B=0.0,C=0.0;if((d|0)<=1){y=0;return y|0}x=c[b+712>>2]|0;y=z(x,x)|0;y=GJ(y>>>0>1073741823?-1:y<<2)|0;if((x|0)>0){j=0;do{k=z(j,x)|0;h=y+(j+k<<2)|0;i=0;do{g=y+((z(i,x)|0)+j<<2)|0;if((i|0)==(j|0)){c[g>>2]=0;c[h>>2]=0}else{c[g>>2]=2147483647;c[y+(i+k<<2)>>2]=2147483647}i=i+1|0}while((i|0)!=(x|0));j=j+1|0}while((j|0)!=(x|0))}g=c[b+732>>2]|0;if((g|0)>0){h=c[b+740>>2]|0;i=c[b+720>>2]|0;j=0;do{p=((c[h+(j*52|0)+8>>2]|0)-i|0)/104|0;u=((c[h+(j*52|0)+12>>2]|0)-i|0)/104|0;c[y+((z(u,x)|0)+p<<2)>>2]=1;c[y+((z(p,x)|0)+u<<2)>>2]=1;j=j+1|0}while((j|0)!=(g|0))}do if((d|0)!=2)if((x|0)>0){m=0;do{n=z(m,x)|0;k=0;do{l=k;k=k+1|0;if((k|0)<(x|0)){o=z(l,x)|0;h=y+(o+m<<2)|0;j=k;do{g=(c[h>>2]|0)+(c[y+(j+n<<2)>>2]|0)|0;i=y+(j+o<<2)|0;if((c[i>>2]|0)>>>0>g>>>0){c[y+((z(j,x)|0)+l<<2)>>2]=g;c[i>>2]=g}j=j+1|0}while((j|0)!=(x|0))}}while((k|0)!=(x|0));m=m+1|0}while((m|0)!=(x|0));q=97}else g=0;else{if((x|0)<0)Z();if((x|0)>0){c[6747]=(c[6747]|0)+1;g=kb((x*20|3)+16|0)|0;if(!g)h=0;else{c[(g+4+15&-16)+-4>>2]=g;h=g+4+15&-16}g=0;do{a[h+(g*20|0)+16>>0]=1;c[h+(g*20|0)+12>>2]=0;u=h+(g*20|0)+4|0;c[u>>2]=0;c[h+(g*20|0)+8>>2]=0;c[u>>2]=0;g=g+1|0}while((g|0)!=(x|0));u=h}else u=0;if((c[b+732>>2]|0)>0){n=0;do{m=c[b+740>>2]|0;p=c[b+720>>2]|0;o=((c[m+(n*52|0)+8>>2]|0)-p|0)/104|0;p=((c[m+(n*52|0)+12>>2]|0)-p|0)/104|0;m=u+(o*20|0)+4|0;g=c[m>>2]|0;a:do if((g|0)>0){i=c[u+(o*20|0)+12>>2]|0;h=0;while(1){if((c[i+(h<<2)>>2]|0)==(p|0))break;h=h+1|0;if((h|0)>=(g|0)){q=28;break a}}if((h|0)==(g|0))q=28}else q=28;while(0);if((q|0)==28){q=0;l=u+(o*20|0)+8|0;if((g|0)==(c[l>>2]|0)?(t=(g|0)==0?1:g<<1,(g|0)<(t|0)):0){if(!t)h=0;else{c[6747]=(c[6747]|0)+1;g=kb((t<<2|3)+16|0)|0;if(!g)h=0;else{c[(g+4+15&-16)+-4>>2]=g;h=g+4+15&-16}g=c[m>>2]|0}k=u+(o*20|0)+12|0;j=c[k>>2]|0;if((g|0)<=0)if(!j)i=u+(o*20|0)+16|0;else q=39;else{i=0;do{c[h+(i<<2)>>2]=c[j+(i<<2)>>2];i=i+1|0}while((i|0)!=(g|0));q=39}if((q|0)==39){q=0;i=u+(o*20|0)+16|0;if(a[i>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[j+-4>>2]|0)}c[k>>2]=0;g=c[m>>2]|0}a[i>>0]=1;c[k>>2]=h;c[l>>2]=t}c[(c[u+(o*20|0)+12>>2]|0)+(g<<2)>>2]=p;c[m>>2]=(c[m>>2]|0)+1}m=u+(p*20|0)+4|0;g=c[m>>2]|0;b:do if((g|0)>0){i=c[u+(p*20|0)+12>>2]|0;h=0;while(1){if((c[i+(h<<2)>>2]|0)==(o|0))break;h=h+1|0;if((h|0)>=(g|0)){q=49;break b}}if((h|0)==(g|0))q=49}else q=49;while(0);if((q|0)==49){q=0;l=u+(p*20|0)+8|0;if((g|0)==(c[l>>2]|0)?(r=(g|0)==0?1:g<<1,(g|0)<(r|0)):0){if(!r)h=0;else{c[6747]=(c[6747]|0)+1;g=kb((r<<2|3)+16|0)|0;if(!g)h=0;else{c[(g+4+15&-16)+-4>>2]=g;h=g+4+15&-16}g=c[m>>2]|0}k=u+(p*20|0)+12|0;j=c[k>>2]|0;if((g|0)<=0)if(!j)i=u+(p*20|0)+16|0;else q=60;else{i=0;do{c[h+(i<<2)>>2]=c[j+(i<<2)>>2];i=i+1|0}while((i|0)!=(g|0));q=60}if((q|0)==60){q=0;i=u+(p*20|0)+16|0;if(a[i>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[j+-4>>2]|0)}c[k>>2]=0;g=c[m>>2]|0}a[i>>0]=1;c[k>>2]=h;c[l>>2]=r}c[(c[u+(p*20|0)+12>>2]|0)+(g<<2)>>2]=o;c[m>>2]=(c[m>>2]|0)+1}n=n+1|0}while((n|0)<(c[b+732>>2]|0))}if((x|0)<=0){if(!u){g=0;break}}else{p=0;do{q=u+(p*20|0)+4|0;g=c[q>>2]|0;if((g|0)>0){r=z(p,x)|0;o=c[u+(p*20|0)+12>>2]|0;n=0;do{l=c[o+(n<<2)>>2]|0;m=u+(l*20|0)+4|0;h=c[m>>2]|0;if((h|0)>0){j=c[u+(l*20|0)+12>>2]|0;k=y+((z(l,x)|0)+p<<2)|0;i=0;do{g=c[j+(i<<2)>>2]|0;if((p|0)!=(g|0)?(w=z(g,x)|0,v=(c[y+(w+l<<2)>>2]|0)+(c[k>>2]|0)|0,w=y+(w+p<<2)|0,(c[w>>2]|0)>>>0>v>>>0):0){c[y+(g+r<<2)>>2]=v;c[w>>2]=v;h=c[m>>2]|0}i=i+1|0}while((i|0)<(h|0));g=c[q>>2]|0}n=n+1|0}while((n|0)<(g|0))}p=p+1|0}while((p|0)!=(x|0));i=0;do{k=u+(i*20|0)+4|0;j=u+(i*20|0)+12|0;h=c[j>>2]|0;g=u+(i*20|0)+16|0;if(h|0){if(a[g>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[h+-4>>2]|0)}c[j>>2]=0}a[g>>0]=1;c[j>>2]=0;c[k>>2]=0;c[u+(i*20|0)+8>>2]=0;i=i+1|0}while((i|0)!=(x|0))}c[6748]=(c[6748]|0)+1;uc(c[u+-4>>2]|0);q=97}while(0);if((q|0)==97)if((x|0)>0){k=0;g=0;do{i=k;k=k+1|0;if((k|0)<(x|0)){j=z(i,x)|0;h=k;do{if((c[y+(h+j<<2)>>2]|0)==(d|0)){u=c[b+720>>2]|0;mh(b,e);w=(c[b+732>>2]|0)+-1|0;v=c[b+740>>2]|0;c[v+(w*52|0)+8>>2]=u+(h*104|0);c[v+(w*52|0)+12>>2]=u+(i*104|0);C=+f[u+(h*104|0)+8>>2]-+f[u+(i*104|0)+8>>2];B=+f[u+(h*104|0)+12>>2]-+f[u+(i*104|0)+12>>2];A=+f[u+(h*104|0)+16>>2]-+f[u+(i*104|0)+16>>2];f[v+(w*52|0)+16>>2]=+s(+(C*C+B*B+A*A));a[b+924>>0]=1;w=(c[b+740>>2]|0)+(w*52|0)+20|0;a[w>>0]=a[w>>0]|1;g=g+1|0}h=h+1|0}while((h|0)!=(x|0))}}while((k|0)!=(x|0))}else g=0;HJ(y);y=g;return y|0}function Vb(d,e){d=d|0;e=+e;var g=0,h=0.0,i=0,j=0.0,k=0.0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0,s=0.0,t=0;r=ea;ea=ea+304|0;Fi(14750);a:do if((c[d+232>>2]|0)>0){n=r+136+48|0;m=0;while(1){l=c[(c[d+240>>2]|0)+(m<<2)>>2]|0;f[l+244>>2]=1.0;b:do switch(c[l+216>>2]|0){case 2:case 5:break;default:if(!(c[l+204>>2]&3)){ag(l+4|0,+f[l+312>>2],+f[l+316>>2],+f[l+320>>2],l+328|0,e,r+136|0);h=+f[n>>2]-+f[l+52>>2];k=+f[r+136+52>>2]-+f[l+56>>2];j=+f[r+136+56>>2]-+f[l+60>>2];if(a[d+44>>0]|0?(s=+f[l+252>>2],s*s!=0.0?s*s>2]|0)+4>>2]|0)<20){c[6409]=(c[6409]|0)+1;g=c[d+68>>2]|0;g=ra[c[(c[g>>2]|0)+36>>2]&127](g)|0;i=c[d+24>>2]|0;f[r+200+4>>2]=1.0;c[r+200+12>>2]=c[l+52>>2];c[r+200+12+4>>2]=c[l+52+4>>2];c[r+200+12+8>>2]=c[l+52+8>>2];c[r+200+12+12>>2]=c[l+52+12>>2];c[r+200+28>>2]=c[n>>2];c[r+200+28+4>>2]=c[n+4>>2];c[r+200+28+8>>2]=c[n+8>>2];c[r+200+28+12>>2]=c[n+12>>2];c[r+200+76>>2]=0;c[r+200>>2]=5396;c[r+200+80>>2]=l;c[r+200+88>>2]=g;c[r+200+92>>2]=i;i=c[l+248>>2]|0;c[r+80+8>>2]=0;c[r+80+12>>2]=1065353216;c[r+80+16>>2]=1065353216;c[r+80+20>>2]=1065353216;f[r+80+24>>2]=0.0;c[r+80>>2]=7884;c[r+80+4>>2]=8;c[r+80+28>>2]=i;c[r+80+44>>2]=i;c[r+200+84>>2]=c[d+56>>2];i=c[l+188>>2]|0;b[r+200+8>>1]=b[i+4>>1]|0;b[r+200+10>>1]=b[i+6>>1]|0;c[r+16+48>>2]=c[n>>2];c[r+16+48+4>>2]=c[n+4>>2];c[r+16+48+8>>2]=c[n+8>>2];c[r+16+48+12>>2]=c[n+12>>2];c[r+16>>2]=c[l+4>>2];c[r+16+4>>2]=c[l+4+4>>2];c[r+16+8>>2]=c[l+4+8>>2];c[r+16+12>>2]=c[l+4+12>>2];c[r+16+16>>2]=c[l+20>>2];c[r+16+16+4>>2]=c[l+20+4>>2];c[r+16+16+8>>2]=c[l+20+8>>2];c[r+16+16+12>>2]=c[l+20+12>>2];c[r+16+32>>2]=c[l+36>>2];c[r+16+32+4>>2]=c[l+36+4>>2];c[r+16+32+8>>2]=c[l+36+8>>2];c[r+16+32+12>>2]=c[l+36+12>>2];Gc(d,r+80|0,l+4|0,r+16|0,r+200|0,0.0);h=+f[r+200+4>>2];if(h<1.0){f[l+244>>2]=h;ag(l+4|0,+f[l+312>>2],+f[l+316>>2],+f[l+320>>2],l+328|0,h*e,r+136|0);f[l+244>>2]=0.0;Md(l,r+136|0);g=4}else g=0;if(!g)o=12}else o=12;if((o|0)==12){o=0;g=0}i=c[2685]|0;t=(c[i+16>>2]|0)+-1|0;c[i+16>>2]=t;do if(!t){if(c[i+4>>2]|0){Y(r+200|0,0)|0;t=c[6746]|0;f[i+8>>2]=+f[i+8>>2]+ +(((c[r+200+4>>2]|0)-(c[t+4>>2]|0)+(((c[r+200>>2]|0)-(c[t>>2]|0)|0)*1e6|0)-(c[i+12>>2]|0)|0)>>>0)/1.0e3;if(c[i+16>>2]|0)break;i=c[2685]|0}c[2685]=c[i+20>>2]}while(0);if(g|0)break b}Md(l,r+136|0)}}while(0);m=m+1|0;if((m|0)>=(c[d+232>>2]|0))break a}}while(0);do if(a[d+275>>0]|0){Fi(14790);if((c[d+308>>2]|0)>0){n=0;do{m=c[(c[d+316>>2]|0)+(n<<2)>>2]|0;l=c[m+740>>2]|0;l=(c[l+236>>2]&2|0)==0?0:l;o=c[m+744>>2]|0;o=(c[o+236>>2]&2|0)==0?0:o;g=c[m+748>>2]|0;if((g|0)>0)if(!l){i=0;do{h=+f[57]*+f[o+228>>2];if(h>0.0?(p=+f[m+4+(i*184|0)+120>>2],p!=0.0):0){k=h*(p*+f[m+4+(i*184|0)+64>>2]);e=h*(p*+f[m+4+(i*184|0)+68>>2]);s=h*(p*+f[m+4+(i*184|0)+72>>2]);h=+f[m+4+(i*184|0)+36>>2]-+f[o+56>>2];j=+f[m+4+(i*184|0)+40>>2]-+f[o+60>>2];f[r+16>>2]=+f[m+4+(i*184|0)+32>>2]-+f[o+52>>2];f[r+16+4>>2]=h;f[r+16+8>>2]=j;f[r+16+12>>2]=0.0;f[r>>2]=k;f[r+4>>2]=e;f[r+8>>2]=s;f[r+12>>2]=0.0;uk(o,r,r+16|0);g=c[m+748>>2]|0}i=i+1|0}while((i|0)<(g|0))}else{i=0;do{h=+f[l+228>>2]*+f[o+228>>2];if(h>0.0?(q=+f[m+4+(i*184|0)+120>>2],q!=0.0):0){k=h*(q*+f[m+4+(i*184|0)+64>>2]);e=h*(q*+f[m+4+(i*184|0)+68>>2]);s=h*(q*+f[m+4+(i*184|0)+72>>2]);f[r+200>>2]=-k;f[r+200+4>>2]=-e;f[r+200+8>>2]=-s;f[r+200+12>>2]=0.0;j=+f[m+4+(i*184|0)+52>>2]-+f[l+56>>2];h=+f[m+4+(i*184|0)+56>>2]-+f[l+60>>2];f[r+80>>2]=+f[m+4+(i*184|0)+48>>2]-+f[l+52>>2];f[r+80+4>>2]=j;f[r+80+8>>2]=h;f[r+80+12>>2]=0.0;h=+f[m+4+(i*184|0)+36>>2]-+f[o+56>>2];j=+f[m+4+(i*184|0)+40>>2]-+f[o+60>>2];f[r+16>>2]=+f[m+4+(i*184|0)+32>>2]-+f[o+52>>2];f[r+16+4>>2]=h;f[r+16+8>>2]=j;f[r+16+12>>2]=0.0;uk(l,r+200|0,r+80|0);f[r>>2]=k;f[r+4>>2]=e;f[r+8>>2]=s;f[r+12>>2]=0.0;uk(o,r,r+16|0);g=c[m+748>>2]|0}i=i+1|0}while((i|0)<(g|0))}n=n+1|0}while((n|0)<(c[d+308>>2]|0))}g=c[2685]|0;t=(c[g+16>>2]|0)+-1|0;c[g+16>>2]=t;if(!t){if(c[g+4>>2]|0){Y(r+200|0,0)|0;t=c[6746]|0;f[g+8>>2]=+f[g+8>>2]+ +(((c[r+200+4>>2]|0)-(c[t+4>>2]|0)+(((c[r+200>>2]|0)-(c[t>>2]|0)|0)*1e6|0)-(c[g+12>>2]|0)|0)>>>0)/1.0e3;if(c[g+16>>2]|0)break;g=c[2685]|0}c[2685]=c[g+20>>2]}}while(0);g=c[2685]|0;t=(c[g+16>>2]|0)+-1|0;c[g+16>>2]=t;if(t|0){ea=r;return}do if(c[g+4>>2]|0){Y(r+200|0,0)|0;t=c[6746]|0;f[g+8>>2]=+f[g+8>>2]+ +(((c[r+200+4>>2]|0)-(c[t+4>>2]|0)+(((c[r+200>>2]|0)-(c[t>>2]|0)|0)*1e6|0)-(c[g+12>>2]|0)|0)>>>0)/1.0e3;if(!(c[g+16>>2]|0)){g=c[2685]|0;break}else{ea=r;return}}while(0);c[2685]=c[g+20>>2];ea=r;return}function Wb(b,d){b=b|0;d=d|0;var e=0,g=0.0,i=0.0,j=0.0,k=0,l=0,m=0.0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,t=0,u=0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0,G=0,H=0,I=0,J=0,K=0;H=ea;ea=ea+96|0;e=c[b+216>>2]|0;if(+f[e+4>>2]==0.0){G=0;ea=H;return G|0}G=c[d>>2]|0;if(!(ta[c[(c[e>>2]|0)+8>>2]&31](e,c[G+188>>2]|0)|0)){G=1;ea=H;return G|0}d=c[G+192>>2]|0;F=c[b+216>>2]|0;if((c[d+4>>2]|0)!=32){c[H+32>>2]=0;c[H+32+4>>2]=d;c[H+32+8>>2]=G;c[H+32+12>>2]=G+4;c[H+32+16>>2]=-1;c[H+32+20>>2]=-1;Nb(b+68|0,b+132|0,H+32|0,F);G=1;ea=H;return G|0}if((G|0)==0?1:(c[G+236>>2]|0)!=8){G=1;ea=H;return G|0}d=c[G+752>>2]|0;if(d)if(!(c[G+988>>2]|0)){d=c[G+988+4>>2]|0;if(d|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[G+988+4>>2]=0;c[G+988+8>>2]=-1;d=c[G+988+32>>2]|0;if(d|0){if(a[G+988+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[G+988+32>>2]=0}a[G+988+36>>0]=1;c[G+988+32>>2]=0;c[G+988+24>>2]=0;c[G+988+28>>2]=0;c[G+988+16>>2]=0;d=c[G+752>>2]|0;if((d|0)>0){t=0;do{l=c[G+760>>2]|0;n=l+(t*44|0)|0;k=c[l+(t*44|0)+8>>2]|0;u=c[l+(t*44|0)+12>>2]|0;d=c[l+(t*44|0)+16>>2]|0;g=+f[k+8>>2];j=+f[k+12>>2];i=+f[k+16>>2];q=+f[k+20>>2];B=+f[u+8>>2];m=B>2];r=E>2];o=D>2];p=C>2];m=C>2];r=D>2];o=E>2];p=B>2]|0;if(!d){c[6747]=(c[6747]|0)+1;d=kb(63)|0;if(!d)d=0;else{c[(d+4+15&-16)+-4>>2]=d;d=d+4+15&-16}e=d;k=e+44|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(k|0))}else c[G+988+4>>2]=0;c[d+32>>2]=0;c[d+36>>2]=n;c[d+40>>2]=0;f[d>>2]=m;f[d+4>>2]=r;f[d+8>>2]=o;f[d+12>>2]=p;f[d+16>>2]=g;f[d+20>>2]=j;f[d+24>>2]=i;f[d+28>>2]=q;je(G+988|0,c[G+988>>2]|0,d);c[G+988+12>>2]=(c[G+988+12>>2]|0)+1;c[l+(t*44|0)+40>>2]=d;t=t+1|0;d=c[G+752>>2]|0}while((t|0)<(d|0));e=G+988|0}else e=G+988|0}else e=G+988|0;else{e=G+988|0;d=0}C=+f[b+180>>2]-+f[b+116>>2];E=+f[b+184>>2]-+f[b+120>>2];D=+f[b+188>>2]-+f[b+124>>2];e=c[e>>2]|0;if(!e)if((d|0)>0){t=c[G+760>>2]|0;i=1.0;g=1.0;k=0;u=0;l=-1;n=1065353216;e=0;do{K=c[t+(u*44|0)+8>>2]|0;J=c[t+(u*44|0)+12>>2]|0;I=c[t+(u*44|0)+16>>2]|0;j=+Pg(b+116|0,C,E,D,+f[K+8>>2],+f[K+12>>2],+f[K+16>>2],+f[J+8>>2],+f[J+12>>2],+f[J+16>>2],+f[I+8>>2],+f[I+12>>2],+f[I+16>>2],i);if(j>0.0){g=j;i=j;k=k+1|0;l=u;n=(f[h>>2]=j,c[h>>2]|0);e=3}u=u+1|0}while((u|0)!=(d|0));d=k}else{g=1.0;d=0;l=-1;n=1065353216;e=0}else{c[H+32>>2]=4284;c[H+32+4>>2]=c[b+116>>2];c[H+32+4+4>>2]=c[b+116+4>>2];c[H+32+4+8>>2]=c[b+116+8>>2];c[H+32+4+12>>2]=c[b+116+12>>2];f[H+32+36>>2]=C;f[H+32+40>>2]=E;f[H+32+44>>2]=D;f[H+32+48>>2]=0.0;c[H+32+20>>2]=c[b+180>>2];c[H+32+20+4>>2]=c[b+180+4>>2];c[H+32+20+8>>2]=c[b+180+8>>2];c[H+32+20+12>>2]=c[b+180+12>>2];c[H+32+52>>2]=1065353216;c[H+32+56>>2]=0;c[H+32+60>>2]=0;Dd(e,b+116|0,b+180|0,H+32|0);d=c[H+32+56>>2]|0;if(!d){g=1.0;k=0;l=-1;n=1065353216;e=0}else{n=c[H+32+52>>2]|0;g=(c[h>>2]=n,+f[h>>2]);k=1;l=(d-(c[G+760>>2]|0)|0)/44|0;e=3}d=k}t=c[G+772>>2]|0;if((t|0)>0){u=c[G+780>>2]|0;k=0;do{K=c[u+(k*104|0)+8>>2]|0;w=+f[K+8>>2];x=+f[K+12>>2];y=+f[K+16>>2];K=c[u+(k*104|0)+12>>2]|0;m=+f[K+8>>2];o=+f[K+12>>2];p=+f[K+16>>2];K=c[u+(k*104|0)+16>>2]|0;z=+f[K+8>>2];A=+f[K+12>>2];B=+f[K+16>>2];i=(c[h>>2]=n,+f[h>>2]);j=+Pg(b+116|0,C,E,D,w,x,y,m,o,p,z,A,B,i);if(j>0.0){i=j;g=j;d=d+1|0;l=k;n=(f[h>>2]=j,c[h>>2]|0);e=4}K=c[u+(k*104|0)+20>>2]|0;q=+f[K+8>>2];r=+f[K+12>>2];v=+f[K+16>>2];i=+Pg(b+116|0,C,E,D,w,x,y,m,o,p,q,r,v,i);if(i>0.0){j=i;g=i;d=d+1|0;l=k;n=(f[h>>2]=i,c[h>>2]|0);e=4}else j=(c[h>>2]=n,+f[h>>2]);i=+Pg(b+116|0,C,E,D,m,o,p,z,A,B,q,r,v,j);if(i>0.0){j=i;g=i;d=d+1|0;l=k;n=(f[h>>2]=i,c[h>>2]|0);e=4}else j=(c[h>>2]=n,+f[h>>2]);i=+Pg(b+116|0,C,E,D,w,x,y,z,A,B,q,r,v,j);if(i>0.0){g=i;d=d+1|0;l=k;n=(f[h>>2]=i,c[h>>2]|0);e=4}k=k+1|0}while((k|0)!=(t|0));q=g}else q=g;if(!d){K=1;ea=H;return K|0}if(!(q<=+f[F+4>>2])){K=1;ea=H;return K|0}c[H+32>>2]=0;c[H+32+4>>2]=l;m=+f[b+180>>2]-+f[b+116>>2];p=+f[b+184>>2]-+f[b+120>>2];o=+f[b+188>>2]-+f[b+124>>2];g=1.0/+s(+(m*m+p*p+o*o));if((e|0)==3){d=c[G+748+12>>2]|0;g=+f[d+(l*44|0)+20>>2];j=+f[d+(l*44|0)+24>>2];i=+f[d+(l*44|0)+28>>2];if(m*g+p*j+o*i>0.0){m=-g;j=-j;i=-i;g=0.0}else{m=g;g=+f[d+(l*44|0)+32>>2]}}else{m=-(m*g);j=-(p*g);i=-(o*g);g=0.0}c[H>>2]=G;c[H+4>>2]=H+32;f[H+8>>2]=m;f[H+12>>2]=j;f[H+16>>2]=i;f[H+20>>2]=g;f[H+24>>2]=q;+ka[c[(c[F>>2]|0)+12>>2]&15](F,H,1);K=1;ea=H;return K|0}function Xb(b,d,e){b=b|0;d=d|0;e=+e;var g=0,h=0,i=0,j=0,k=0,l=0.0,m=0.0,n=0,o=0,p=0.0,q=0,r=0;r=ea;ea=ea+112|0;j=c[b+716>>2]|0;if((j|0)==(c[b+712>>2]|0)){a:do if(j){k=c[b+720>>2]|0;if((j|0)>0){h=k;i=0;while(1){g=c[h+(i*104|0)+96>>2]|0;if(g|0)c[g+36>>2]=i;g=i+1|0;if((g|0)==(j|0))break a;h=c[b+720>>2]|0;i=g}}}else k=0;while(0);g=c[b+732>>2]|0;if((g|0)>0){h=0;do{o=(c[b+740>>2]|0)+(h*52|0)+8|0;c[o>>2]=((c[o>>2]|0)-k|0)/104|0;o=(c[b+740>>2]|0)+(h*52|0)+12|0;c[o>>2]=((c[o>>2]|0)-k|0)/104|0;h=h+1|0}while((h|0)!=(g|0))}g=c[b+752>>2]|0;if((g|0)>0){i=0;do{h=(c[b+760>>2]|0)+(i*44|0)+8|0;c[h>>2]=((c[h>>2]|0)-k|0)/104|0;h=(c[b+760>>2]|0)+(i*44|0)+12|0;c[h>>2]=((c[h>>2]|0)-k|0)/104|0;h=(c[b+760>>2]|0)+(i*44|0)+16|0;c[h>>2]=((c[h>>2]|0)-k|0)/104|0;h=c[(c[b+760>>2]|0)+(i*44|0)+40>>2]|0;if(h|0)c[h+36>>2]=i;i=i+1|0}while((i|0)!=(g|0))}g=c[b+792>>2]|0;if((g|0)>0){h=c[b+800>>2]|0;i=0;do{o=h+(i*96|0)|0;c[o>>2]=((c[o>>2]|0)-k|0)/104|0;i=i+1|0}while((i|0)!=(g|0))}i=c[b+692>>2]|0;if((i|0)>0){g=c[b+700>>2]|0;j=0;do{if((c[g+(j*60|0)+24>>2]|0)>0){h=0;do{g=g+(j*60|0)+28+(h<<2)|0;c[g>>2]=((c[g>>2]|0)-k|0)/104|0;h=h+1|0;g=c[b+700>>2]|0}while((h|0)<(c[g+(j*60|0)+24>>2]|0))}j=j+1|0}while((j|0)!=(i|0))}i=c[b+712>>2]|0;if((c[b+716>>2]|0)<(i<<1|1|0)){c[6747]=(c[6747]|0)+1;g=kb(((i<<1|1)*104|3)+16|0)|0;if(!g)j=0;else{c[(g+4+15&-16)+-4>>2]=g;j=g+4+15&-16}g=c[b+712>>2]|0;if((g|0)>0){h=0;do{n=j+(h*104|0)|0;k=(c[b+720>>2]|0)+(h*104|0)|0;o=n+104|0;do{c[n>>2]=c[k>>2];n=n+4|0;k=k+4|0}while((n|0)<(o|0));h=h+1|0}while((h|0)!=(g|0))}g=c[b+720>>2]|0;if(g|0){if(a[b+724>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[b+720>>2]=0}a[b+724>>0]=1;c[b+720>>2]=j;c[b+716>>2]=i<<1|1;i=c[b+712>>2]|0}b:do if(i){j=c[b+720>>2]|0;if((i|0)>0){k=j;g=0;while(1){h=c[k+(g*104|0)+96>>2]|0;if(h|0)c[h+36>>2]=k+(g*104|0);g=g+1|0;if((g|0)==(i|0)){k=j;break b}k=c[b+720>>2]|0}}else k=j}else k=0;while(0);g=c[b+732>>2]|0;if((g|0)>0){h=0;do{o=(c[b+740>>2]|0)+(h*52|0)+8|0;c[o>>2]=k+((c[o>>2]|0)*104|0);o=(c[b+740>>2]|0)+(h*52|0)+12|0;c[o>>2]=k+((c[o>>2]|0)*104|0);h=h+1|0}while((h|0)!=(g|0))}g=c[b+752>>2]|0;if((g|0)>0){j=0;do{h=(c[b+760>>2]|0)+(j*44|0)+8|0;c[h>>2]=k+((c[h>>2]|0)*104|0);h=(c[b+760>>2]|0)+(j*44|0)+12|0;c[h>>2]=k+((c[h>>2]|0)*104|0);h=(c[b+760>>2]|0)+(j*44|0)+16|0;c[h>>2]=k+((c[h>>2]|0)*104|0);h=c[b+760>>2]|0;i=c[h+(j*44|0)+40>>2]|0;if(i|0)c[i+36>>2]=h+(j*44|0);j=j+1|0}while((j|0)!=(g|0))}h=c[b+792>>2]|0;if((h|0)>0){g=c[b+800>>2]|0;i=0;do{o=g+(i*96|0)|0;c[o>>2]=k+((c[o>>2]|0)*104|0);i=i+1|0}while((i|0)!=(h|0))}i=c[b+692>>2]|0;if((i|0)>0){g=c[b+700>>2]|0;j=0;do{if((c[g+(j*60|0)+24>>2]|0)>0){h=0;do{g=g+(j*60|0)+28+(h<<2)|0;c[g>>2]=k+((c[g>>2]|0)*104|0);h=h+1|0;g=c[b+700>>2]|0}while((h|0)<(c[g+(j*60|0)+24>>2]|0))}j=j+1|0}while((j|0)!=(i|0))}}n=c[b+192>>2]|0;p=+ha[c[(c[n>>2]|0)+48>>2]&15](n);n=r;o=n+100|0;do{c[n>>2]=0;n=n+4|0}while((n|0)<(o|0));g=c[b+712>>2]|0;if((g|0)==(c[b+716>>2]|0)?(q=(g|0)==0?1:g<<1,(g|0)<(q|0)):0){if(!q)h=0;else{c[6747]=(c[6747]|0)+1;g=kb((q*104|3)+16|0)|0;if(!g)h=0;else{c[(g+4+15&-16)+-4>>2]=g;h=g+4+15&-16}g=c[b+712>>2]|0}if((g|0)>0){i=0;do{n=h+(i*104|0)|0;k=(c[b+720>>2]|0)+(i*104|0)|0;o=n+104|0;do{c[n>>2]=c[k>>2];n=n+4|0;k=k+4|0}while((n|0)<(o|0));i=i+1|0}while((i|0)!=(g|0))}g=c[b+720>>2]|0;if(g|0){if(a[b+724>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[b+720>>2]=0}a[b+724>>0]=1;c[b+720>>2]=h;c[b+716>>2]=q;g=c[b+712>>2]|0}n=c[b+720>>2]|0;c[n+(g*104|0)>>2]=0;n=n+(g*104|0)+4|0;k=r;o=n+100|0;do{c[n>>2]=c[k>>2];n=n+4|0;k=k+4|0}while((n|0)<(o|0));h=c[b+712>>2]|0;c[b+712>>2]=h+1;i=c[b+720>>2]|0;n=i+(h*104|0)|0;o=n+104|0;do{c[n>>2]=0;n=n+4|0}while((n|0)<(o|0));c[i+(h*104|0)+8>>2]=c[d>>2];c[i+(h*104|0)+8+4>>2]=c[d+4>>2];c[i+(h*104|0)+8+8>>2]=c[d+8>>2];c[i+(h*104|0)+8+12>>2]=c[d+12>>2];mp(i+(h*104|0)+24|0,d|0,16)|0;f[i+(h*104|0)+88>>2]=e>0.0?1.0/e:0.0;c[i+(h*104|0)+4>>2]=c[c[b+880>>2]>>2];e=+f[i+(h*104|0)+8>>2];l=+f[i+(h*104|0)+12>>2];m=+f[i+(h*104|0)+16>>2];g=c[b+932>>2]|0;if(g|0){c[b+932>>2]=0;d=g;q=d+32|0;c[q>>2]=0;q=d+36|0;c[q>>2]=i+(h*104|0);q=d+40|0;c[q>>2]=0;f[d>>2]=e-p;q=d+4|0;f[q>>2]=l-p;q=d+8|0;f[q>>2]=m-p;q=d+12|0;f[q>>2]=0.0;q=d+16|0;f[q>>2]=p+e;q=d+20|0;f[q>>2]=p+l;q=d+24|0;f[q>>2]=p+m;q=d+28|0;f[q>>2]=0.0;q=c[b+928>>2]|0;je(b+928|0,q,d);b=b+940|0;q=c[b>>2]|0;q=q+1|0;c[b>>2]=q;b=i+(h*104|0)+96|0;c[b>>2]=d;ea=r;return}c[6747]=(c[6747]|0)+1;g=kb(63)|0;if(!g)g=0;else{c[(g+4+15&-16)+-4>>2]=g;g=g+4+15&-16}n=g;o=n+44|0;do{c[n>>2]=0;n=n+4|0}while((n|0)<(o|0));d=g;q=d+32|0;c[q>>2]=0;q=d+36|0;c[q>>2]=i+(h*104|0);q=d+40|0;c[q>>2]=0;f[d>>2]=e-p;q=d+4|0;f[q>>2]=l-p;q=d+8|0;f[q>>2]=m-p;q=d+12|0;f[q>>2]=0.0;q=d+16|0;f[q>>2]=p+e;q=d+20|0;f[q>>2]=p+l;q=d+24|0;f[q>>2]=p+m;q=d+28|0;f[q>>2]=0.0;q=c[b+928>>2]|0;je(b+928|0,q,d);b=b+940|0;q=c[b>>2]|0;q=q+1|0;c[b>>2]=q;b=i+(h*104|0)+96|0;c[b>>2]=d;ea=r;return}function Yb(b,d,e,g,h,i,j,k,l){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0,H=0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0;H=ea;ea=ea+32|0;c[H+12>>2]=i;c[H+12+4>>2]=j;c[H+12+8>>2]=k;c[H>>2]=e;c[H+4>>2]=g;c[H+8>>2]=h;if(!(+f[d+52>>2]<+f[b+12>>2])){l=0;ea=H;return l|0}x=+f[d+36>>2];z=+f[d+40>>2];y=+f[d+44>>2];h=c[d+48>>2]|0;w=1.0/+s(+(x*x+z*z+y*y));k=wh(H)|0;A=+f[d+4>>2]-+f[k+48>>2];E=+f[d+8>>2]-+f[k+52>>2];C=+f[d+12>>2]-+f[k+56>>2];k=wh(H+12|0)|0;B=+f[d+20>>2]-+f[k+48>>2];F=+f[d+24>>2]-+f[k+52>>2];D=+f[d+28>>2]-+f[k+56>>2];if(!g)if(!e){o=0.0;r=0.0;p=0.0;m=0.0;n=0.0;q=0.0}else{q=+f[e+336>>2];n=+f[e+340>>2];v=+f[e+332>>2];o=+f[e+316>>2];r=+f[e+320>>2];p=+f[e+324>>2];m=C*q-E*n;n=A*n-C*v;q=E*v-A*q}else{q=+f[g+332>>2];n=+f[g+336>>2];v=+f[g+328>>2];o=+f[g+312>>2];r=+f[g+316>>2];p=+f[g+320>>2];m=C*q-E*n;n=A*n-C*v;q=E*v-A*q}v=o+m;u=r+n;q=p+q;if(!j)if(!i){r=0.0;t=0.0;m=0.0;n=0.0;o=0.0;p=0.0}else{p=+f[i+336>>2];o=+f[i+340>>2];I=+f[i+332>>2];r=+f[i+316>>2];t=+f[i+320>>2];m=+f[i+324>>2];n=D*p-F*o;o=B*o-D*I;p=F*I-B*p}else{p=+f[j+332>>2];o=+f[j+336>>2];I=+f[j+328>>2];r=+f[j+312>>2];t=+f[j+316>>2];m=+f[j+320>>2];n=D*p-F*o;o=B*o-D*I;p=F*I-B*p}r=v-(r+n);u=u-(t+o);t=q-(m+p);v=y*w*t+(z*w*u+x*w*r);I=+f[d+52>>2]-+f[b+12>>2];c[l+4>>2]=c[H>>2];c[l+4+4>>2]=c[H+4>>2];c[l+4+8>>2]=c[H+8>>2];c[l+16>>2]=c[H+12>>2];c[l+16+4>>2]=c[H+12+4>>2];c[l+16+8>>2]=c[H+12+8>>2];d=wh(H)|0;q=A*+f[d+4>>2]+E*+f[d+20>>2]+C*+f[d+36>>2];p=A*+f[d+8>>2]+E*+f[d+24>>2]+C*+f[d+40>>2];f[l+28>>2]=A*+f[d>>2]+E*+f[d+16>>2]+C*+f[d+32>>2];f[l+32>>2]=q;f[l+36>>2]=p;f[l+40>>2]=0.0;d=wh(H+12|0)|0;p=B*+f[d+4>>2]+F*+f[d+20>>2]+D*+f[d+36>>2];q=B*+f[d+8>>2]+F*+f[d+24>>2]+D*+f[d+40>>2];f[l+44>>2]=B*+f[d>>2]+F*+f[d+16>>2]+D*+f[d+32>>2];f[l+48>>2]=p;f[l+52>>2]=q;f[l+56>>2]=0.0;f[l+164>>2]=A;f[l+168>>2]=E;f[l+172>>2]=C;f[l+176>>2]=0.0;f[l+180>>2]=B;f[l+184>>2]=F;f[l+188>>2]=D;f[l+192>>2]=0.0;f[l+60>>2]=1.0;f[l+64>>2]=1.0;c[l+156>>2]=0;c[l+160>>2]=0;f[l+68>>2]=1.0;f[l+72>>2]=x*w*I;f[l+76>>2]=z*w*I;f[l+80>>2]=y*w*I;f[l+84>>2]=0.0;f[l+196>>2]=x*w;f[l+200>>2]=z*w;f[l+204>>2]=y*w;c[l+208>>2]=h;a[l+152>>0]=0;I=+f[b+16>>2];f[l+212>>2]=(t-y*w*v)*(t-y*w*v)+((r-x*w*v)*(r-x*w*v)+(u-z*w*v)*(u-z*w*v))>2]|0;if(!h){h=c[H>>2]|0;if(!h)n=0.0;else{h=h+128|0;G=14}}else{h=h+344|0;G=14}if((G|0)==14)n=+f[h>>2];if((a[24896]|0)==0?DC(24896)|0:0){h=25440;k=h+48|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(k|0));PB(24896)}h=c[H+4>>2]|0;if(!h){e=c[H>>2]|0;e=(e|0)==0?25440:e+180|0}else e=h+264|0;h=c[H+12+4>>2]|0;if(!h){h=c[H+12>>2]|0;if(!h)m=0.0;else{h=h+128|0;G=25}}else{h=h+344|0;G=25}if((G|0)==25)m=+f[h>>2];if((a[24896]|0)==0?DC(24896)|0:0){h=25440;k=h+48|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(k|0));PB(24896)}h=c[H+12+4>>2]|0;if(!h){h=c[H+12>>2]|0;h=(h|0)==0?25440:h+180|0}else h=h+264|0;V=+f[l+172>>2];N=+f[l+168>>2];M=+f[l+164>>2];U=+f[e>>2];T=+f[e+16>>2];S=+f[e+32>>2];R=+f[e+4>>2];Q=+f[e+20>>2];P=+f[e+36>>2];O=+f[e+8>>2];L=+f[e+24>>2];K=+f[e+40>>2];B=+f[l+188>>2];v=+f[l+184>>2];w=+f[l+180>>2];J=+f[h>>2];o=+f[h+16>>2];p=+f[h+32>>2];q=+f[h+4>>2];r=+f[h+20>>2];t=+f[h+36>>2];u=+f[h+8>>2];I=+f[h+24>>2];x=+f[h+40>>2];D=n-((U*0.0+T*-V+N*S)*0.0+V*(R*0.0+Q*-V+N*P)+(O*0.0+L*-V+N*K)*-N)+(m-((J*0.0+o*-B+v*p)*0.0+B*(q*0.0+r*-B+v*t)+(u*0.0+I*-B+v*x)*-v));F=0.0-((U*0.0+T*-V+N*S)*-V+(R*0.0+Q*-V+N*P)*0.0+M*(O*0.0+L*-V+N*K))+(0.0-((J*0.0+o*-B+v*p)*-B+(q*0.0+r*-B+v*t)*0.0+w*(u*0.0+I*-B+v*x)));y=0.0-(N*(U*0.0+T*-V+N*S)+(R*0.0+Q*-V+N*P)*-M+(O*0.0+L*-V+N*K)*0.0)+(0.0-(v*(J*0.0+o*-B+v*p)+(q*0.0+r*-B+v*t)*-w+(u*0.0+I*-B+v*x)*0.0));E=0.0-((V*U+T*0.0+S*-M)*0.0+V*(V*R+Q*0.0+P*-M)+(V*O+L*0.0+K*-M)*-N)+(0.0-((B*J+o*0.0+p*-w)*0.0+B*(B*q+r*0.0+t*-w)+(B*u+I*0.0+x*-w)*-v));C=n-((V*U+T*0.0+S*-M)*-V+(V*R+Q*0.0+P*-M)*0.0+M*(V*O+L*0.0+K*-M))+(m-((B*J+o*0.0+p*-w)*-B+(B*q+r*0.0+t*-w)*0.0+w*(B*u+I*0.0+x*-w)));z=0.0-(N*(V*U+T*0.0+S*-M)+(V*R+Q*0.0+P*-M)*-M+(V*O+L*0.0+K*-M)*0.0)+(0.0-(v*(B*J+o*0.0+p*-w)+(B*q+r*0.0+t*-w)*-w+(B*u+I*0.0+x*-w)*0.0));A=0.0-((U*-N+M*T+S*0.0)*0.0+V*(R*-N+M*Q+P*0.0)+(O*-N+M*L+K*0.0)*-N)+(0.0-((J*-v+w*o+p*0.0)*0.0+B*(q*-v+w*r+t*0.0)+(u*-v+w*I+x*0.0)*-v));B=0.0-((U*-N+M*T+S*0.0)*-V+(R*-N+M*Q+P*0.0)*0.0+M*(O*-N+M*L+K*0.0))+(0.0-((J*-v+w*o+p*0.0)*-B+(q*-v+w*r+t*0.0)*0.0+w*(u*-v+w*I+x*0.0)));x=n-(N*(U*-N+M*T+S*0.0)+(R*-N+M*Q+P*0.0)*-M+(O*-N+M*L+K*0.0)*0.0)+(m-(v*(J*-v+w*o+p*0.0)+(q*-v+w*r+t*0.0)*-w+(u*-v+w*I+x*0.0)*0.0));I=1.0/(y*(B*E-C*A)+(D*(C*x-z*B)+F*(z*A-x*E)));f[l+104>>2]=(C*x-z*B)*I;f[l+108>>2]=(B*y-x*F)*I;f[l+112>>2]=(z*F-C*y)*I;f[l+116>>2]=0.0;f[l+120>>2]=(z*A-x*E)*I;f[l+124>>2]=(x*D-A*y)*I;f[l+128>>2]=(E*y-z*D)*I;f[l+132>>2]=0.0;f[l+136>>2]=(B*E-C*A)*I;f[l+140>>2]=(A*F-B*D)*I;f[l+144>>2]=(C*D-E*F)*I;f[l+148>>2]=0.0;l=1;ea=H;return l|0}function Zb(b,d,e){b=b|0;d=d|0;e=e|0;var g=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0,u=0,v=0.0,w=0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0;w=(a[b+180>>0]|0)==0;if(w?(a[b+48>>0]|0)!=0:0){s=+f[b+116>>2];v=+f[e>>2];z=+f[b+132>>2];y=+f[e+4>>2];B=+f[b+148>>2];A=+f[e+8>>2];q=+f[b+120>>2];E=+f[b+136>>2];F=+f[b+152>>2];o=+f[b+124>>2];J=+f[b+140>>2];p=+f[b+156>>2];x=+f[e+16>>2];m=+f[e+20>>2];n=+f[e+24>>2];I=+f[e+32>>2];r=+f[e+36>>2];C=+f[e+40>>2];i=+f[b+164>>2];g=+f[b+168>>2];H=+f[b+172>>2];G=+f[e+48>>2]+(v*i+y*g+A*H);D=x*i+m*g+n*H+ +f[e+52>>2];H=I*i+r*g+C*H+ +f[e+56>>2];f[b+824>>2]=s*v+z*y+B*A;f[b+828>>2]=v*q+y*E+A*F;f[b+832>>2]=v*o+y*J+A*p;f[b+836>>2]=0.0;f[b+840>>2]=s*x+z*m+B*n;f[b+844>>2]=q*x+E*m+F*n;f[b+848>>2]=o*x+J*m+p*n;f[b+852>>2]=0.0;f[b+856>>2]=s*I+z*r+B*C;f[b+860>>2]=q*I+E*r+F*C;f[b+864>>2]=o*I+J*r+p*C;f[b+868>>2]=0.0;f[b+872>>2]=G;f[b+876>>2]=D;f[b+880>>2]=H;f[b+884>>2]=0.0;H=+f[b+52>>2];D=+f[d>>2];G=+f[b+68>>2];C=+f[d+4>>2];p=+f[b+84>>2];r=+f[d+8>>2];J=+f[b+56>>2];I=+f[b+72>>2];o=+f[b+88>>2];F=+f[b+60>>2];E=+f[b+76>>2];q=+f[b+92>>2];B=+f[d+16>>2];z=+f[d+20>>2];s=+f[d+24>>2];n=+f[d+32>>2];m=+f[d+36>>2];x=+f[d+40>>2];A=+f[b+100>>2];y=+f[b+104>>2];v=+f[b+108>>2];g=n*A+m*y;i=F*n+E*m+q*x;j=D*J+C*I+r*o;k=H*D+G*C+p*r;l=J*n+I*m+o*x;m=H*n+G*m+p*x;n=F*B+E*z+q*s;o=J*B+I*z+o*s;p=H*B+G*z+p*s;q=D*F+C*E+r*q;r=D*A+C*y+r*v;s=B*A+z*y+s*v;t=b+856|0;u=b+840|0;v=x*v}else{s=+f[b+52>>2];v=+f[d>>2];H=+f[b+68>>2];I=+f[d+4>>2];F=+f[b+84>>2];G=+f[d+8>>2];q=+f[b+56>>2];C=+f[b+72>>2];B=+f[b+88>>2];o=+f[b+60>>2];x=+f[b+76>>2];p=+f[b+92>>2];J=+f[d+16>>2];m=+f[d+20>>2];n=+f[d+24>>2];y=+f[d+32>>2];r=+f[d+36>>2];E=+f[d+40>>2];i=+f[b+100>>2];g=+f[b+104>>2];z=+f[b+108>>2];A=+f[d+48>>2]+(v*i+I*g+G*z);D=J*i+m*g+n*z+ +f[d+52>>2];z=y*i+r*g+E*z+ +f[d+56>>2];f[b+824>>2]=s*v+H*I+F*G;f[b+828>>2]=v*q+I*C+G*B;f[b+832>>2]=v*o+I*x+G*p;f[b+836>>2]=0.0;f[b+840>>2]=s*J+H*m+F*n;f[b+844>>2]=q*J+C*m+B*n;f[b+848>>2]=o*J+x*m+p*n;f[b+852>>2]=0.0;f[b+856>>2]=s*y+H*r+F*E;f[b+860>>2]=q*y+C*r+B*E;f[b+864>>2]=o*y+x*r+p*E;f[b+868>>2]=0.0;f[b+872>>2]=A;f[b+876>>2]=D;f[b+880>>2]=z;f[b+884>>2]=0.0;z=+f[b+116>>2];D=+f[e>>2];A=+f[b+132>>2];E=+f[e+4>>2];p=+f[b+148>>2];r=+f[e+8>>2];x=+f[b+120>>2];y=+f[b+136>>2];o=+f[b+152>>2];B=+f[b+124>>2];C=+f[b+140>>2];q=+f[b+156>>2];F=+f[e+16>>2];H=+f[e+20>>2];s=+f[e+24>>2];n=+f[e+32>>2];m=+f[e+36>>2];J=+f[e+40>>2];G=+f[b+164>>2];I=+f[b+168>>2];v=+f[b+172>>2];g=n*G+m*I;i=B*n+C*m+q*J;j=D*x+E*y+r*o;k=z*D+A*E+p*r;l=x*n+y*m+o*J;m=z*n+A*m+p*J;n=B*F+C*H+q*s;o=x*F+y*H+o*s;p=z*F+A*H+p*s;q=D*B+E*C+r*q;r=D*G+E*I+r*v;s=F*G+H*I+s*v;t=b+856|0;u=b+840|0;v=J*v;d=e}I=+f[d+48>>2]+r;J=s+ +f[d+52>>2];g=g+v+ +f[d+56>>2];f[b+888>>2]=k;f[b+892>>2]=j;f[b+896>>2]=q;f[b+900>>2]=0.0;f[b+904>>2]=p;f[b+908>>2]=o;f[b+912>>2]=n;f[b+916>>2]=0.0;f[b+920>>2]=m;f[b+924>>2]=l;f[b+928>>2]=i;f[b+932>>2]=0.0;f[b+936>>2]=I;f[b+940>>2]=J;f[b+944>>2]=g;f[b+948>>2]=0.0;c[b+968>>2]=c[b+872>>2];c[b+968+4>>2]=c[b+872+4>>2];c[b+968+8>>2]=c[b+872+8>>2];c[b+968+12>>2]=c[b+872+12>>2];c[b+984>>2]=c[b+936>>2];c[b+984+4>>2]=c[b+936+4>>2];c[b+984+8>>2]=c[b+936+8>>2];c[b+984+12>>2]=c[b+936+12>>2];d=c[b+824>>2]|0;e=c[u>>2]|0;u=c[t>>2]|0;c[b+952>>2]=d;c[b+956>>2]=e;c[b+960>>2]=u;f[b+964>>2]=0.0;i=(c[h>>2]=d,+f[h>>2]);j=(c[h>>2]=e,+f[h>>2]);g=(c[h>>2]=u,+f[h>>2]);if(w?(a[b+48>>0]|0)==0:0){E=+f[b+968>>2];F=+f[b+972>>2];H=+f[b+976>>2];A=E;B=F;C=H;E=E-+f[b+984>>2];H=H-+f[b+992>>2];F=F-+f[b+988>>2];w=b+1016|0;f[w>>2]=E;w=b+1020|0;f[w>>2]=F;w=b+1024|0;f[w>>2]=H;w=b+1028|0;f[w>>2]=0.0;J=E*i;D=F*j;D=J+D;J=H*g;J=D+J;D=J*i;G=J*j;I=J*g;D=A+D;G=B+G;I=C+I;w=b+1e3|0;f[w>>2]=D;w=b+1004|0;f[w>>2]=G;w=b+1008|0;f[w>>2]=I;w=b+1012|0;f[w>>2]=0.0;w=b+1032|0;f[w>>2]=J;w=b+828|0;u=b+844|0;t=b+860|0;J=+f[w>>2];I=+f[u>>2];G=+f[t>>2];J=E*J;I=F*I;I=J+I;G=H*G;G=I+G;t=b+1036|0;f[t>>2]=G;t=b+832|0;u=b+848|0;w=b+864|0;G=+f[t>>2];I=+f[u>>2];J=+f[w>>2];G=E*G;I=F*I;I=G+I;J=H*J;J=I+J;w=b+1040|0;f[w>>2]=J;return}E=+f[b+968>>2];F=+f[b+972>>2];H=+f[b+976>>2];A=E;B=F;C=H;E=+f[b+984>>2]-E;H=+f[b+992>>2]-H;F=+f[b+988>>2]-F;w=b+1016|0;f[w>>2]=E;w=b+1020|0;f[w>>2]=F;w=b+1024|0;f[w>>2]=H;w=b+1028|0;f[w>>2]=0.0;J=E*i;D=F*j;D=J+D;J=H*g;J=D+J;D=J*i;G=J*j;I=J*g;D=A+D;G=B+G;I=C+I;w=b+1e3|0;f[w>>2]=D;w=b+1004|0;f[w>>2]=G;w=b+1008|0;f[w>>2]=I;w=b+1012|0;f[w>>2]=0.0;w=b+1032|0;f[w>>2]=J;w=b+828|0;u=b+844|0;t=b+860|0;J=+f[w>>2];I=+f[u>>2];G=+f[t>>2];J=E*J;I=F*I;I=J+I;G=H*G;G=I+G;t=b+1036|0;f[t>>2]=G;t=b+832|0;u=b+848|0;w=b+864|0;G=+f[t>>2];I=+f[u>>2];J=+f[w>>2];G=E*G;I=F*I;I=G+I;J=H*J;J=I+J;w=b+1040|0;f[w>>2]=J;return}function _b(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0.0,h=0.0,i=0.0,j=0.0,k=0,l=0.0,m=0.0,n=0.0,o=0,p=0.0,q=0.0,r=0.0,t=0,u=0,v=0.0,w=0.0,x=0;u=ea;ea=ea+672|0;c[u+448+8>>2]=0;c[u+448+12>>2]=1065353216;c[u+448+16>>2]=1065353216;c[u+448+20>>2]=1065353216;f[u+448+24>>2]=0.0;c[u+448>>2]=7884;c[u+448+4>>2]=8;f[u+448+28>>2]=0.0;f[u+448+44>>2]=0.0;f[u+384>>2]=1.0;c[u+384+4>>2]=0;c[u+384+4+4>>2]=0;c[u+384+4+8>>2]=0;c[u+384+4+12>>2]=0;f[u+384+20>>2]=1.0;c[u+384+24>>2]=0;c[u+384+24+4>>2]=0;c[u+384+24+8>>2]=0;c[u+384+24+12>>2]=0;f[u+384+40>>2]=1.0;f[u+384+44>>2]=0.0;c[u+384+48>>2]=c[a>>2];c[u+384+48+4>>2]=c[a+4>>2];c[u+384+48+8>>2]=c[a+8>>2];c[u+384+48+12>>2]=c[a+12>>2];a=e;k=a+36|0;do{c[a>>2]=0;a=a+4|0}while((a|0)<(k|0));c[u+504>>2]=b;c[u+504+4>>2]=u+448;w=+f[d>>2];v=+f[d+16>>2];g=+f[d+32>>2];h=+f[d+4>>2];i=+f[d+20>>2];j=+f[d+36>>2];m=+f[d+8>>2];p=+f[d+24>>2];r=+f[d+40>>2];f[u+504+8>>2]=w+v*0.0+g*0.0;f[u+504+12>>2]=h+i*0.0+j*0.0;f[u+504+16>>2]=m+p*0.0+r*0.0;f[u+504+20>>2]=0.0;f[u+504+24>>2]=w*0.0+v+g*0.0;f[u+504+28>>2]=h*0.0+i+j*0.0;f[u+504+32>>2]=m*0.0+p+r*0.0;f[u+504+36>>2]=0.0;f[u+504+40>>2]=w*0.0+v*0.0+g;f[u+504+44>>2]=h*0.0+i*0.0+j;f[u+504+48>>2]=m*0.0+p*0.0+r;f[u+504+52>>2]=0.0;l=+f[u+384+48>>2]-+f[d+48>>2];n=+f[u+384+52>>2]-+f[d+52>>2];q=+f[u+384+56>>2]-+f[d+56>>2];f[u+504+56>>2]=w+v*0.0+g*0.0;f[u+504+60>>2]=w*0.0+v+g*0.0;f[u+504+64>>2]=w*0.0+v*0.0+g;f[u+504+68>>2]=0.0;f[u+504+72>>2]=h+i*0.0+j*0.0;f[u+504+76>>2]=h*0.0+i+j*0.0;f[u+504+80>>2]=h*0.0+i*0.0+j;f[u+504+84>>2]=0.0;f[u+504+88>>2]=m+p*0.0+r*0.0;f[u+504+92>>2]=m*0.0+p+r*0.0;f[u+504+96>>2]=m*0.0+p*0.0+r;f[u+504+100>>2]=0.0;f[u+504+104>>2]=l*w+n*v+q*g;f[u+504+108>>2]=l*h+n*i+q*j;f[u+504+112>>2]=l*m+n*p+q*r;f[u+504+116>>2]=0.0;c[u+504+120>>2]=82;c[u+504+124>>2]=0;c[u+364>>2]=0;c[u+128>>2]=0;c[u+128+4>>2]=0;c[u+128+8>>2]=0;c[u+128+12>>2]=0;c[u+376>>2]=2;c[u+368>>2]=0;f[u+144>>2]=0.0;c[u+648>>2]=1065353216;c[u+648+4>>2]=1065353216;c[u+648+8>>2]=1065353216;f[u+648+12>>2]=0.0;switch(Db(u,u+504|0,u+648|0)|0){case 0:{a=c[u+372>>2]|0;if(!(c[a+32>>2]|0)){j=0.0;i=0.0;g=0.0;p=0.0;n=0.0;h=0.0}else{g=0.0;i=0.0;j=0.0;h=0.0;n=0.0;p=0.0;t=0;do{r=+f[a+16+(t<<2)>>2];k=c[u+504+120>>2]|0;x=c[u+504+124>>2]|0;o=(c[u+504>>2]|0)+(1?x>>1:x)|0;if(x&1)k=c[(c[o>>2]|0)+k>>2]|0;Ma[k&127](u+648|0,o,c[a+(t<<2)>>2]|0);g=g+r*+f[u+648>>2];i=i+r*+f[u+648+4>>2];j=j+r*+f[u+648+8>>2];a=c[(c[u+372>>2]|0)+(t<<2)>>2]|0;l=-+f[a>>2];m=-+f[a+4>>2];q=-+f[a+8>>2];a=c[u+504+120>>2]|0;x=c[u+504+124>>2]|0;k=(c[u+504+4>>2]|0)+(1?x>>1:x)|0;if(x&1)a=c[(c[k>>2]|0)+a>>2]|0;w=+f[u+504+24>>2]*l+ +f[u+504+28>>2]*m+ +f[u+504+32>>2]*q;v=+f[u+504+40>>2]*l+ +f[u+504+44>>2]*m+ +f[u+504+48>>2]*q;f[u+632>>2]=+f[u+504+8>>2]*l+ +f[u+504+12>>2]*m+ +f[u+504+16>>2]*q;f[u+632+4>>2]=w;f[u+632+8>>2]=v;f[u+632+12>>2]=0.0;Ma[a&127](u+648|0,k,u+632|0);q=+f[u+648>>2];v=+f[u+648+4>>2];w=+f[u+648+8>>2];h=h+r*(q*+f[u+504+56>>2]+v*+f[u+504+60>>2]+w*+f[u+504+64>>2]+ +f[u+504+104>>2]);n=n+r*(q*+f[u+504+72>>2]+v*+f[u+504+76>>2]+w*+f[u+504+80>>2]+ +f[u+504+108>>2]);p=p+r*(q*+f[u+504+88>>2]+v*+f[u+504+92>>2]+w*+f[u+504+96>>2]+ +f[u+504+112>>2]);t=t+1|0;a=c[u+372>>2]|0}while(t>>>0<(c[a+32>>2]|0)>>>0)}q=g*+f[d>>2]+i*+f[d+4>>2]+j*+f[d+8>>2]+ +f[d+48>>2];r=g*+f[d+16>>2]+i*+f[d+20>>2]+j*+f[d+24>>2]+ +f[d+52>>2];l=g*+f[d+32>>2]+i*+f[d+36>>2]+j*+f[d+40>>2]+ +f[d+56>>2];f[e+4>>2]=q;f[e+8>>2]=r;f[e+12>>2]=l;f[e+16>>2]=0.0;j=h*+f[d>>2]+n*+f[d+4>>2]+p*+f[d+8>>2]+ +f[d+48>>2];m=h*+f[d+16>>2]+n*+f[d+20>>2]+p*+f[d+24>>2]+ +f[d+52>>2];i=h*+f[d+32>>2]+n*+f[d+36>>2]+p*+f[d+40>>2]+ +f[d+56>>2];f[e+20>>2]=j;f[e+24>>2]=m;f[e+28>>2]=i;f[e+32>>2]=0.0;switch(c[b+4>>2]|0){case 8:{g=+f[b+28>>2]*+f[b+12>>2];break}case 0:{g=+f[b+44>>2];break}case 1:{g=+f[b+44>>2];break}case 13:{g=+f[b+44>>2];break}case 11:{g=+f[b+44>>2];break}case 10:{g=+f[b+44>>2];break}case 4:case 5:{g=+f[b+44>>2];break}default:g=+ha[c[(c[b>>2]|0)+48>>2]&15](b)}switch(c[u+448+4>>2]|0){case 8:{h=+f[u+448+28>>2]*+f[u+448+12>>2];break}case 0:{h=+f[u+448+44>>2];break}case 1:{h=+f[u+448+44>>2];break}case 13:{h=+f[u+448+44>>2];break}case 11:{h=+f[u+448+44>>2];break}case 10:{h=+f[u+448+44>>2];break}case 4:case 5:{h=+f[u+448+44>>2];break}default:h=+ha[c[(c[u+448>>2]|0)+48>>2]&15](u+448|0)}w=g+h;v=+s(+((j-q)*(j-q)+(m-r)*(m-r)+(i-l)*(i-l)));f[e+36>>2]=(j-q)*(1.0/v);f[e+40>>2]=(m-r)*(1.0/v);f[e+44>>2]=(i-l)*(1.0/v);f[e+48>>2]=0.0;f[e+4>>2]=w*((j-q)*(1.0/v))+ +f[e+4>>2];f[e+8>>2]=w*((m-r)*(1.0/v))+ +f[e+8>>2];f[e+12>>2]=w*((i-l)*(1.0/v))+ +f[e+12>>2];w=v-w;ea=u;return +w}case 1:{if(!(Bb(b,d,u+448|0,u+384|0,u+128|0,e,1)|0)){w=3402823466385288598117041.0e14;ea=u;return +w}h=+f[e+4>>2]-+f[e+20>>2];j=+f[e+8>>2]-+f[e+24>>2];i=+f[e+12>>2]-+f[e+28>>2];g=+s(+(h*h+j*j+i*i));if(g>=1.1920928955078125e-07){f[e+36>>2]=h*(1.0/g);f[e+40>>2]=j*(1.0/g);f[e+44>>2]=i*(1.0/g);f[e+48>>2]=0.0}w=-g;ea=u;return +w}default:{w=3402823466385288598117041.0e14;ea=u;return +w}}return 0.0}function $b(b,d,e,g,h){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0;q=ea;ea=ea+224|0;p=(a[b+28>>0]|0)!=0;o=p?e:d;p=p?d:e;n=c[o+4>>2]|0;if((c[n+68>>2]|0)!=(c[b+40>>2]|0)){i=c[b+12>>2]|0;if((i|0)>0){k=0;do{j=c[(c[b+20>>2]|0)+(k<<2)>>2]|0;if(j|0){Ca[c[c[j>>2]>>2]&511](j);l=c[b+4>>2]|0;Ia[c[(c[l>>2]|0)+60>>2]&127](l,c[(c[b+20>>2]|0)+(k<<2)>>2]|0)}k=k+1|0}while((k|0)!=(i|0))}mg(b,d,e)}l=c[n+64>>2]|0;k=c[b+4>>2]|0;j=c[b+20>>2]|0;i=c[b+32>>2]|0;c[q+192>>2]=7304;c[q+192+4>>2]=o;c[q+192+8>>2]=p;c[q+192+12>>2]=k;c[q+192+16>>2]=g;c[q+192+20>>2]=h;c[q+192+24>>2]=j;c[q+192+28>>2]=i;a[q+128+16>>0]=1;g=q+128+12|0;c[g>>2]=0;c[q+128+4>>2]=0;c[q+128+8>>2]=0;i=c[b+12>>2]|0;if((i|0)>0){d=0;while(1){j=c[j+(d<<2)>>2]|0;if(j){Ia[c[(c[j>>2]|0)+16>>2]&127](j,q+128|0);i=c[q+128+4>>2]|0;if((i|0)>0){k=0;do{e=c[(c[g>>2]|0)+(k<<2)>>2]|0;if(c[e+748>>2]|0){c[h+4>>2]=e;i=c[e+740>>2]|0;j=c[(c[h+8>>2]|0)+8>>2]|0;if((i|0)==(j|0))Hd(e,i+4|0,(c[(c[h+12>>2]|0)+8>>2]|0)+4|0);else Hd(e,(c[(c[h+12>>2]|0)+8>>2]|0)+4|0,j+4|0);c[h+4>>2]=0;i=c[q+128+4>>2]|0}k=k+1|0}while((k|0)<(i|0))}if((i|0)<0){if((c[q+128+8>>2]|0)<0){j=c[g>>2]|0;if(j|0){if(a[q+128+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[j+-4>>2]|0)}c[g>>2]=0}a[q+128+16>>0]=1;c[g>>2]=0;c[q+128+8>>2]=0}do{c[(c[g>>2]|0)+(i<<2)>>2]=0;i=i+1|0}while((i|0)!=0)}c[q+128+4>>2]=0;i=c[b+12>>2]|0}d=d+1|0;if((d|0)>=(i|0))break;j=c[b+20>>2]|0}i=c[g>>2]|0;if(i|0){if(a[q+128+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0)}c[g>>2]=0}}if(!l){j=c[b+12>>2]|0;if((j|0)>0){i=0;do{Pd(q+192|0,c[(c[n+24>>2]|0)+(i*80|0)+64>>2]|0,i);i=i+1|0}while((i|0)<(j|0));m=40}}else{m=c[o+12>>2]|0;F=+f[m>>2];E=+f[m+16>>2];D=+f[m+32>>2];C=+f[m+4>>2];B=+f[m+20>>2];A=+f[m+36>>2];w=+f[m+8>>2];u=+f[m+24>>2];s=+f[m+40>>2];z=-+f[m+48>>2];y=-+f[m+52>>2];x=-+f[m+56>>2];m=c[p+12>>2]|0;O=+f[m>>2];N=+f[m+16>>2];M=+f[m+32>>2];L=+f[m+4>>2];K=+f[m+20>>2];J=+f[m+36>>2];I=+f[m+8>>2];H=+f[m+24>>2];G=+f[m+40>>2];v=+f[m+48>>2];t=+f[m+52>>2];r=+f[m+56>>2];f[q+48>>2]=F*O+E*N+D*M;f[q+48+4>>2]=F*L+E*K+D*J;f[q+48+8>>2]=F*I+E*H+D*G;f[q+48+12>>2]=0.0;f[q+48+16>>2]=C*O+B*N+A*M;f[q+48+20>>2]=C*L+B*K+A*J;f[q+48+24>>2]=C*I+B*H+A*G;f[q+48+28>>2]=0.0;f[q+48+32>>2]=w*O+u*N+s*M;f[q+48+36>>2]=w*L+u*K+s*J;f[q+48+40>>2]=w*I+u*H+s*G;f[q+48+44>>2]=0.0;f[q+48+48>>2]=F*z+E*y+D*x+(F*v+E*t+D*r);f[q+48+52>>2]=C*z+B*y+A*x+(C*v+B*t+A*r);f[q+48+56>>2]=w*z+u*y+s*x+(w*v+u*t+s*r);f[q+48+60>>2]=0.0;m=c[p+4>>2]|0;Pa[c[(c[m>>2]|0)+8>>2]&127](m,q+48|0,q+128|0,q+112|0);c[q+16>>2]=c[q+128>>2];c[q+16+4>>2]=c[q+128+4>>2];c[q+16+8>>2]=c[q+128+8>>2];c[q+16+12>>2]=c[q+128+12>>2];c[q+16+16>>2]=c[q+112>>2];c[q+16+16+4>>2]=c[q+112+4>>2];c[q+16+16+8>>2]=c[q+112+8>>2];c[q+16+16+12>>2]=c[q+112+12>>2];Zd(c[l>>2]|0,q+16|0,q+192|0);m=40}if((m|0)==40)j=c[b+12>>2]|0;if((j|0)<=0){ea=q;return}d=0;do{do if(c[(c[b+20>>2]|0)+(d<<2)>>2]|0){l=c[n+24>>2]|0;m=c[l+(d*80|0)+64>>2]|0;h=c[o+12>>2]|0;u=+f[h>>2];v=+f[h+4>>2];w=+f[h+8>>2];x=+f[h+16>>2];y=+f[h+20>>2];z=+f[h+24>>2];G=+f[h+32>>2];I=+f[h+36>>2];K=+f[h+40>>2];A=+f[l+(d*80|0)>>2];B=+f[l+(d*80|0)+16>>2];C=+f[l+(d*80|0)+32>>2];D=+f[l+(d*80|0)+4>>2];E=+f[l+(d*80|0)+20>>2];F=+f[l+(d*80|0)+36>>2];H=+f[l+(d*80|0)+8>>2];J=+f[l+(d*80|0)+24>>2];L=+f[l+(d*80|0)+40>>2];s=+f[l+(d*80|0)+48>>2];t=+f[l+(d*80|0)+52>>2];O=+f[l+(d*80|0)+56>>2];M=+f[h+48>>2]+(u*s+v*t+w*O);N=+f[h+52>>2]+(x*s+y*t+z*O);O=+f[h+56>>2]+(G*s+I*t+K*O);f[q+128>>2]=u*A+v*B+w*C;f[q+128+4>>2]=u*D+v*E+w*F;f[q+128+8>>2]=u*H+v*J+w*L;f[q+128+12>>2]=0.0;f[q+128+16>>2]=x*A+y*B+z*C;f[q+128+20>>2]=x*D+y*E+z*F;f[q+128+24>>2]=x*H+y*J+z*L;f[q+128+28>>2]=0.0;f[q+128+32>>2]=G*A+I*B+K*C;f[q+128+36>>2]=G*D+I*E+K*F;f[q+128+40>>2]=G*H+I*J+K*L;f[q+128+44>>2]=0.0;f[q+128+48>>2]=M;f[q+128+52>>2]=N;f[q+128+56>>2]=O;f[q+128+60>>2]=0.0;Pa[c[(c[m>>2]|0)+8>>2]&127](m,q+128|0,q+112|0,q+48|0);m=c[p+4>>2]|0;Pa[c[(c[m>>2]|0)+8>>2]&127](m,c[p+12>>2]|0,q+16|0,q);if(!(+f[q+112>>2]>+f[q>>2])?!(+f[q+48>>2]<+f[q+16>>2]):0)i=1;else i=0;if(!(!(+f[q+112+8>>2]>+f[q+8>>2])?!(+f[q+48+8>>2]<+f[q+16+8>>2]):0))i=0;if(!(+f[q+112+4>>2]>+f[q+4>>2])?!(+f[q+48+4>>2]<+f[q+16+4>>2]|i^1):0)break;m=c[(c[b+20>>2]|0)+(d<<2)>>2]|0;Ca[c[c[m>>2]>>2]&511](m);m=c[b+4>>2]|0;Ia[c[(c[m>>2]|0)+60>>2]&127](m,c[(c[b+20>>2]|0)+(d<<2)>>2]|0);c[(c[b+20>>2]|0)+(d<<2)>>2]=0}while(0);d=d+1|0}while((d|0)<(j|0));ea=q;return}function ac(a,b,h,i){a=a|0;b=b|0;h=h|0;i=i|0;var j=0.0,k=0.0,l=0.0,m=0,n=0,o=0.0,p=0.0,q=0,r=0,s=0,t=0;n=ea;ea=ea+80|0;h=ra[c[(c[a>>2]|0)+28>>2]&127](a)|0;j=+f[a+4>>2];k=+f[a+8>>2];l=+f[a+12>>2];if((h|0)<=0){ea=n;return}m=0;do{Za[c[(c[a>>2]|0)+16>>2]&3](a,n+76|0,n+52|0,n+64|0,n+56|0,n+72|0,n+68|0,n+48|0,n+60|0,m);a:do switch(c[n+64>>2]|0){case 0:{switch(c[n+60>>2]|0){case 2:{if((c[n+48>>2]|0)<=0)break a;i=0;do{r=(c[n+72>>2]|0)+(z(c[n+68>>2]|0,i)|0)|0;s=c[n+76>>2]|0;q=c[n+56>>2]|0;t=s+(z(q,c[r>>2]|0)|0)|0;p=k*+f[t+4>>2];o=l*+f[t+8>>2];f[n>>2]=j*+f[t>>2];f[n+4>>2]=p;f[n+8>>2]=o;f[n+12>>2]=0.0;t=s+(z(c[r+4>>2]|0,q)|0)|0;o=k*+f[t+4>>2];p=l*+f[t+8>>2];f[n+16>>2]=j*+f[t>>2];f[n+20>>2]=o;f[n+24>>2]=p;f[n+28>>2]=0.0;q=s+(z(c[r+8>>2]|0,q)|0)|0;p=k*+f[q+4>>2];o=l*+f[q+8>>2];f[n+32>>2]=j*+f[q>>2];f[n+36>>2]=p;f[n+40>>2]=o;f[n+44>>2]=0.0;Pa[c[(c[b>>2]|0)+8>>2]&127](b,n,m,i);i=i+1|0}while((i|0)<(c[n+48>>2]|0));break}case 3:{if((c[n+48>>2]|0)<=0)break a;i=0;do{t=(c[n+72>>2]|0)+(z(c[n+68>>2]|0,i)|0)|0;r=c[n+76>>2]|0;s=c[n+56>>2]|0;q=r+(z(s,e[t>>1]|0)|0)|0;o=k*+f[q+4>>2];p=l*+f[q+8>>2];f[n>>2]=j*+f[q>>2];f[n+4>>2]=o;f[n+8>>2]=p;f[n+12>>2]=0.0;q=r+(z(s,e[t+2>>1]|0)|0)|0;p=k*+f[q+4>>2];o=l*+f[q+8>>2];f[n+16>>2]=j*+f[q>>2];f[n+20>>2]=p;f[n+24>>2]=o;f[n+28>>2]=0.0;t=r+(z(s,e[t+4>>1]|0)|0)|0;o=k*+f[t+4>>2];p=l*+f[t+8>>2];f[n+32>>2]=j*+f[t>>2];f[n+36>>2]=o;f[n+40>>2]=p;f[n+44>>2]=0.0;Pa[c[(c[b>>2]|0)+8>>2]&127](b,n,m,i);i=i+1|0}while((i|0)<(c[n+48>>2]|0));break}case 5:{if((c[n+48>>2]|0)<=0)break a;i=0;do{t=(c[n+72>>2]|0)+(z(c[n+68>>2]|0,i)|0)|0;r=c[n+76>>2]|0;s=c[n+56>>2]|0;q=r+(z(s,d[t>>0]|0)|0)|0;o=k*+f[q+4>>2];p=l*+f[q+8>>2];f[n>>2]=j*+f[q>>2];f[n+4>>2]=o;f[n+8>>2]=p;f[n+12>>2]=0.0;q=r+(z(s,d[t+1>>0]|0)|0)|0;p=k*+f[q+4>>2];o=l*+f[q+8>>2];f[n+16>>2]=j*+f[q>>2];f[n+20>>2]=p;f[n+24>>2]=o;f[n+28>>2]=0.0;t=r+(z(s,d[t+2>>0]|0)|0)|0;o=k*+f[t+4>>2];p=l*+f[t+8>>2];f[n+32>>2]=j*+f[t>>2];f[n+36>>2]=o;f[n+40>>2]=p;f[n+44>>2]=0.0;Pa[c[(c[b>>2]|0)+8>>2]&127](b,n,m,i);i=i+1|0}while((i|0)<(c[n+48>>2]|0));break}default:break a}break}case 1:{switch(c[n+60>>2]|0){case 2:{if((c[n+48>>2]|0)<=0)break a;i=0;do{s=(c[n+72>>2]|0)+(z(c[n+68>>2]|0,i)|0)|0;r=c[n+76>>2]|0;t=c[n+56>>2]|0;q=r+(z(t,c[s>>2]|0)|0)|0;o=k*+g[q+8>>3];p=l*+g[q+16>>3];f[n>>2]=j*+g[q>>3];f[n+4>>2]=o;f[n+8>>2]=p;f[n+12>>2]=0.0;q=r+(z(c[s+4>>2]|0,t)|0)|0;p=k*+g[q+8>>3];o=l*+g[q+16>>3];f[n+16>>2]=j*+g[q>>3];f[n+20>>2]=p;f[n+24>>2]=o;f[n+28>>2]=0.0;t=r+(z(c[s+8>>2]|0,t)|0)|0;o=k*+g[t+8>>3];p=l*+g[t+16>>3];f[n+32>>2]=j*+g[t>>3];f[n+36>>2]=o;f[n+40>>2]=p;f[n+44>>2]=0.0;Pa[c[(c[b>>2]|0)+8>>2]&127](b,n,m,i);i=i+1|0}while((i|0)<(c[n+48>>2]|0));break}case 3:{if((c[n+48>>2]|0)<=0)break a;i=0;do{t=(c[n+72>>2]|0)+(z(c[n+68>>2]|0,i)|0)|0;r=c[n+76>>2]|0;s=c[n+56>>2]|0;q=r+(z(s,e[t>>1]|0)|0)|0;o=k*+g[q+8>>3];p=l*+g[q+16>>3];f[n>>2]=j*+g[q>>3];f[n+4>>2]=o;f[n+8>>2]=p;f[n+12>>2]=0.0;q=r+(z(s,e[t+2>>1]|0)|0)|0;p=k*+g[q+8>>3];o=l*+g[q+16>>3];f[n+16>>2]=j*+g[q>>3];f[n+20>>2]=p;f[n+24>>2]=o;f[n+28>>2]=0.0;t=r+(z(s,e[t+4>>1]|0)|0)|0;o=k*+g[t+8>>3];p=l*+g[t+16>>3];f[n+32>>2]=j*+g[t>>3];f[n+36>>2]=o;f[n+40>>2]=p;f[n+44>>2]=0.0;Pa[c[(c[b>>2]|0)+8>>2]&127](b,n,m,i);i=i+1|0}while((i|0)<(c[n+48>>2]|0));break}case 5:{if((c[n+48>>2]|0)<=0)break a;i=0;do{t=(c[n+72>>2]|0)+(z(c[n+68>>2]|0,i)|0)|0;r=c[n+76>>2]|0;s=c[n+56>>2]|0;q=r+(z(s,d[t>>0]|0)|0)|0;o=k*+g[q+8>>3];p=l*+g[q+16>>3];f[n>>2]=j*+g[q>>3];f[n+4>>2]=o;f[n+8>>2]=p;f[n+12>>2]=0.0;q=r+(z(s,d[t+1>>0]|0)|0)|0;p=k*+g[q+8>>3];o=l*+g[q+16>>3];f[n+16>>2]=j*+g[q>>3];f[n+20>>2]=p;f[n+24>>2]=o;f[n+28>>2]=0.0;t=r+(z(s,d[t+2>>0]|0)|0)|0;o=k*+g[t+8>>3];p=l*+g[t+16>>3];f[n+32>>2]=j*+g[t>>3];f[n+36>>2]=o;f[n+40>>2]=p;f[n+44>>2]=0.0;Pa[c[(c[b>>2]|0)+8>>2]&127](b,n,m,i);i=i+1|0}while((i|0)<(c[n+48>>2]|0));break}default:break a}break}default:{}}while(0);Ia[c[(c[a>>2]|0)+24>>2]&127](a,m);m=m+1|0}while((m|0)!=(h|0));ea=n;return}function bc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,s=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0;c[b>>2]=c[a>>2];c[b+4>>2]=c[a+4>>2];c[b+8>>2]=c[a+8>>2];c[b+12>>2]=c[a+12>>2];c[b+16>>2]=c[a+16>>2];c[b+16+4>>2]=c[a+16+4>>2];c[b+16+8>>2]=c[a+16+8>>2];c[b+16+12>>2]=c[a+16+12>>2];c[b+32>>2]=c[a+32>>2];c[b+32+4>>2]=c[a+32+4>>2];c[b+32+8>>2]=c[a+32+8>>2];c[b+32+12>>2]=c[a+32+12>>2];s=+f[a+20>>2];m=+f[a+40>>2];p=+f[a+24>>2];n=+f[a+36>>2];o=+f[a+32>>2];u=+f[a+16>>2];v=+f[a>>2];w=+f[a+4>>2];q=+f[a+8>>2];x=1.0/((s*m-p*n)*v+w*(p*o-m*u)+(n*u-s*o)*q);f[d>>2]=(s*m-p*n)*x;f[d+4>>2]=(n*q-m*w)*x;f[d+8>>2]=(p*w-s*q)*x;f[d+12>>2]=0.0;f[d+16>>2]=(p*o-m*u)*x;f[d+20>>2]=(m*v-o*q)*x;f[d+24>>2]=(u*q-p*v)*x;f[d+28>>2]=0.0;f[d+32>>2]=(n*u-s*o)*x;f[d+36>>2]=(o*w-n*v)*x;f[d+40>>2]=(s*v-u*w)*x;f[d+44>>2]=0.0;a:do if(!(c[6393]|0)){e=b;g=b+40|0;h=b+24|0;i=b+8|0;j=b+36|0;k=b+20|0;l=b+4|0}else{F=(s*m-p*n)*x;G=(p*o-m*u)*x;H=(n*u-s*o)*x;I=(n*q-m*w)*x;E=(m*v-o*q)*x;C=(o*w-n*v)*x;D=(p*w-s*q)*x;B=(u*q-p*v)*x;n=(s*v-u*w)*x;e=0;while(1){p=+r(+F);o=+r(+G);N=+r(+H);W=+r(+I);O=+r(+E);M=+r(+C);Q=+r(+D);P=+r(+B);z=+r(+n);R=p+o+N>W+O+M?p+o+N:W+O+M;O=p+W+Q>o+O+P?p+W+Q:o+O+P;o=+f[b>>2];W=+r(+o);p=+f[b+16>>2];T=+r(+p);q=+f[b+32>>2];K=+r(+q);s=+f[b+4>>2];V=+r(+s);u=+f[b+20>>2];S=+r(+u);v=+f[b+36>>2];J=+r(+v);w=+f[b+8>>2];U=+r(+w);x=+f[b+24>>2];L=+r(+x);y=+f[b+40>>2];A=+r(+y);m=W+T+K>V+S+J?W+T+K:V+S+J;m=m>U+L+A?m:U+L+A;L=W+V+U>T+S+L?W+V+U:T+S+L;z=(R>Q+P+z?R:Q+P+z)*(O>N+M+z?O:N+M+z);A=m*(L>K+J+A?L:K+J+A);if(z<1.1920928955078125e-07|A<1.1920928955078125e-07){e=b;g=b+40|0;h=b+24|0;i=b+8|0;j=b+36|0;k=b+20|0;l=b+4|0;break a}W=+t(+(z/A),.25);O=(o*(W+-2.0)+1.0/W*F)*.5;Q=(s*(W+-2.0)+1.0/W*G)*.5;S=(w*(W+-2.0)+1.0/W*H)*.5;P=(p*(W+-2.0)+1.0/W*I)*.5;R=(u*(W+-2.0)+1.0/W*E)*.5;T=(x*(W+-2.0)+1.0/W*C)*.5;U=(q*(W+-2.0)+1.0/W*D)*.5;V=(v*(W+-2.0)+1.0/W*B)*.5;W=(y*(W+-2.0)+1.0/W*n)*.5;f[b>>2]=o+O;f[b+4>>2]=s+Q;f[b+8>>2]=w+S;f[b+12>>2]=0.0;f[b+16>>2]=p+P;f[b+20>>2]=u+R;f[b+24>>2]=x+T;f[b+28>>2]=0.0;f[b+32>>2]=q+U;f[b+36>>2]=v+V;f[b+40>>2]=y+W;f[b+44>>2]=0.0;N=1.0/((w+S)*((p+P)*(v+V)-(u+R)*(q+U))+((o+O)*((u+R)*(y+W)-(x+T)*(v+V))+(s+Q)*((x+T)*(q+U)-(p+P)*(y+W))));F=((u+R)*(y+W)-(x+T)*(v+V))*N;I=((w+S)*(v+V)-(s+Q)*(y+W))*N;D=((s+Q)*(x+T)-(w+S)*(u+R))*N;G=((x+T)*(q+U)-(p+P)*(y+W))*N;E=((o+O)*(y+W)-(w+S)*(q+U))*N;B=((w+S)*(p+P)-(o+O)*(x+T))*N;H=((p+P)*(v+V)-(u+R)*(q+U))*N;C=((s+Q)*(q+U)-(o+O)*(v+V))*N;n=((o+O)*(u+R)-(s+Q)*(p+P))*N;f[d>>2]=F;f[d+4>>2]=I;f[d+8>>2]=D;f[d+12>>2]=0.0;f[d+16>>2]=G;f[d+20>>2]=E;f[d+24>>2]=B;f[d+28>>2]=0.0;f[d+32>>2]=H;f[d+36>>2]=C;f[d+40>>2]=n;f[d+44>>2]=0.0;U=+r(+O)+ +r(+P)+ +r(+U);V=+r(+Q)+ +r(+R)+ +r(+V);W=+r(+S)+ +r(+T)+ +r(+W);V=U>V?U:V;if((V>W?V:W)<=m*+f[6392])break;e=e+1|0;if(e>>>0>=(c[6393]|0)>>>0){e=b;g=b+40|0;h=b+24|0;i=b+8|0;j=b+36|0;k=b+20|0;l=b+4|0;break a}}M=+f[b>>2];O=+f[b+16>>2];Q=+f[b+32>>2];K=+f[b+4>>2];L=+f[b+20>>2];S=+f[b+36>>2];F=+f[b+8>>2];G=+f[b+24>>2];U=+f[b+40>>2];N=+f[a>>2];P=+f[a+16>>2];R=+f[a+32>>2];H=+f[a+4>>2];I=+f[a+20>>2];J=+f[a+36>>2];C=+f[a+8>>2];D=+f[a+24>>2];E=+f[a+40>>2];W=F*C+G*D+U*E+(F*C+G*D+U*E);V=K*C+L*D+S*E+(F*H+G*I+U*J);T=K*H+L*I+S*J+(K*H+L*I+S*J);U=M*C+O*D+Q*E+(F*N+G*P+U*R);S=M*H+O*I+Q*J+(K*N+L*P+S*R);R=M*N+O*P+Q*R+(M*N+O*P+Q*R);V=V*.5;U=U*.5;S=S*.5;R=R*.5;f[d>>2]=R;f[d+4>>2]=S;f[d+8>>2]=U;f[d+12>>2]=0.0;f[d+16>>2]=S;T=T*.5;f[d+20>>2]=T;f[d+24>>2]=V;f[d+28>>2]=0.0;f[d+32>>2]=U;f[d+36>>2]=V;W=W*.5;f[d+40>>2]=W;f[d+44>>2]=0.0;return}while(0);M=+f[e>>2];O=+f[b+16>>2];Q=+f[b+32>>2];K=+f[l>>2];L=+f[k>>2];S=+f[j>>2];F=+f[i>>2];G=+f[h>>2];U=+f[g>>2];N=+f[a>>2];P=+f[a+16>>2];R=+f[a+32>>2];H=+f[a+4>>2];I=+f[a+20>>2];J=+f[a+36>>2];C=+f[a+8>>2];D=+f[a+24>>2];E=+f[a+40>>2];W=F*C+G*D+U*E+(F*C+G*D+U*E);V=K*C+L*D+S*E+(F*H+G*I+U*J);T=K*H+L*I+S*J+(K*H+L*I+S*J);U=M*C+O*D+Q*E+(F*N+G*P+U*R);S=M*H+O*I+Q*J+(K*N+L*P+S*R);R=M*N+O*P+Q*R+(M*N+O*P+Q*R);V=V*.5;U=U*.5;S=S*.5;R=R*.5;f[d>>2]=R;f[d+4>>2]=S;f[d+8>>2]=U;f[d+12>>2]=0.0;f[d+16>>2]=S;T=T*.5;f[d+20>>2]=T;f[d+24>>2]=V;f[d+28>>2]=0.0;f[d+32>>2]=U;f[d+36>>2]=V;W=W*.5;f[d+40>>2]=W;f[d+44>>2]=0.0;return}function cc(d,e,g,h,i){d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=0.0,k=0,l=0.0,m=0,n=0,o=0.0,p=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0;z=ea;ea=ea+128|0;a[d+60>>0]=g&1;if(g){q=+f[h>>2]+-1.0;t=+f[h+4>>2]+-1.0;s=+f[h+8>>2]+-1.0;f[d+4>>2]=q;f[d+8>>2]=t;f[d+12>>2]=s;f[d+16>>2]=0.0;v=+f[i>>2]+1.0;y=+f[i+4>>2]+1.0;x=+f[i+8>>2]+1.0;f[d+20>>2]=v;f[d+24>>2]=y;f[d+28>>2]=x;f[d+32>>2]=0.0;f[d+36>>2]=65533.0/(v-q);f[d+40>>2]=65533.0/(y-t);f[d+44>>2]=65533.0/(x-s);f[d+48>>2]=0.0;a[d+60>>0]=1;j=q+ +(~~((q-q)*(65533.0/(v-q)))&65535&-2&65535)/(65533.0/(v-q))+-1.0;l=t+ +(~~((t-t)*(65533.0/(y-t)))&65535&-2&65535)/(65533.0/(y-t))+-1.0;o=s+ +(~~((s-s)*(65533.0/(x-s)))&65535&-2&65535)/(65533.0/(x-s))+-1.0;if(j>2]=j;w=j}else w=q;if(l>2]=l;u=l}else u=t;if(o>2]=o;r=o;j=x-o}else{r=s;j=x-s}o=w+ +((~~(65533.0/(v-q)*(v-w)+1.0)&65535|1)&65535)/(65533.0/(v-q))+1.0;l=u+ +((~~(65533.0/(y-t)*(y-u)+1.0)&65535|1)&65535)/(65533.0/(y-t))+1.0;q=r+ +((~~(65533.0/(x-s)*j+1.0)&65535|1)&65535)/(65533.0/(x-s))+1.0;if(v>2]=o;else o=v;if(y>2]=l;else l=y;if(x>2]=q;j=q-r}f[d+36>>2]=65533.0/(o-w);f[d+40>>2]=65533.0/(l-u);f[d+44>>2]=65533.0/j;f[d+48>>2]=0.0;c[z+96>>2]=9332;c[z+96+4>>2]=d+104;c[z+96+8>>2]=d;Pa[c[(c[e>>2]|0)+8>>2]&127](e,z+96|0,d+4|0,d+20|0);g=c[d+108>>2]|0;c[z+80>>2]=0;c[z+80+4>>2]=0;c[z+80+8>>2]=0;c[z+80+12>>2]=0;k=c[d+128>>2]|0;if((k|0)<(g<<1|0)){if((c[d+132>>2]|0)<(g<<1|0)){if(!g){i=k;e=0}else{c[6747]=(c[6747]|0)+1;h=kb(g<<5|19)|0;if(!h)h=0;else{c[(h+4+15&-16)+-4>>2]=h;h=h+4+15&-16}i=c[d+128>>2]|0;e=h}if((i|0)>0){h=0;do{p=e+(h<<4)|0;n=(c[d+136>>2]|0)+(h<<4)|0;c[p>>2]=c[n>>2];c[p+4>>2]=c[n+4>>2];c[p+8>>2]=c[n+8>>2];c[p+12>>2]=c[n+12>>2];h=h+1|0}while((h|0)!=(i|0))}h=c[d+136>>2]|0;if(h|0){if(a[d+140>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[h+-4>>2]|0)}c[d+136>>2]=0}a[d+140>>0]=1;c[d+136>>2]=e;c[d+132>>2]=g<<1;i=d+136|0}else i=d+136|0;h=k;do{p=(c[i>>2]|0)+(h<<4)|0;c[p>>2]=c[z+80>>2];c[p+4>>2]=c[z+80+4>>2];c[p+8>>2]=c[z+80+8>>2];c[p+12>>2]=c[z+80+12>>2];h=h+1|0}while((h|0)!=(g<<1|0))}c[d+128>>2]=g<<1}else{c[z+96>>2]=9352;c[z+96+4>>2]=d+64;c[z+80>>2]=-581039253;c[z+80+4>>2]=-581039253;c[z+80+8>>2]=-581039253;f[z+80+12>>2]=0.0;c[z+64>>2]=1566444395;c[z+64+4>>2]=1566444395;c[z+64+8>>2]=1566444395;f[z+64+12>>2]=0.0;Pa[c[(c[e>>2]|0)+8>>2]&127](e,z+96|0,z+80|0,z+64|0);g=c[d+68>>2]|0;k=z;n=k+64|0;do{c[k>>2]=0;k=k+4|0}while((k|0)<(n|0));p=c[d+88>>2]|0;if((p|0)<(g<<1|0)){if((c[d+92>>2]|0)<(g<<1|0)){if(!g){i=p;e=0}else{c[6747]=(c[6747]|0)+1;h=kb(g<<7|19)|0;if(!h)h=0;else{c[(h+4+15&-16)+-4>>2]=h;h=h+4+15&-16}i=c[d+88>>2]|0;e=h}if((i|0)>0){h=0;do{k=e+(h<<6)|0;m=(c[d+96>>2]|0)+(h<<6)|0;n=k+64|0;do{c[k>>2]=c[m>>2];k=k+4|0;m=m+4|0}while((k|0)<(n|0));h=h+1|0}while((h|0)!=(i|0))}h=c[d+96>>2]|0;if(h|0){if(a[d+100>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[h+-4>>2]|0)}c[d+96>>2]=0}a[d+100>>0]=1;c[d+96>>2]=e;c[d+92>>2]=g<<1;i=d+96|0}else i=d+96|0;h=p;do{k=(c[i>>2]|0)+(h<<6)|0;m=z;n=k+64|0;do{c[k>>2]=c[m>>2];k=k+4|0;m=m+4|0}while((k|0)<(n|0));h=h+1|0}while((h|0)!=(g<<1|0))}c[d+88>>2]=g<<1}c[d+56>>2]=0;vb(d,0,g);if(a[d+60>>0]|0?(c[d+152>>2]|0)==0:0){if(!(c[d+156>>2]|0)){c[6747]=(c[6747]|0)+1;g=kb(51)|0;if(!g)e=0;else{c[(g+4+15&-16)+-4>>2]=g;e=g+4+15&-16}g=c[d+152>>2]|0;if((g|0)>0){h=0;do{p=e+(h<<5)|0;n=(c[d+160>>2]|0)+(h<<5)|0;c[p>>2]=c[n>>2];c[p+4>>2]=c[n+4>>2];c[p+8>>2]=c[n+8>>2];c[p+12>>2]=c[n+12>>2];c[p+16>>2]=c[n+16>>2];c[p+20>>2]=c[n+20>>2];c[p+24>>2]=c[n+24>>2];c[p+28>>2]=c[n+28>>2];h=h+1|0}while((h|0)!=(g|0))}g=c[d+160>>2]|0;if(g|0){if(a[d+164>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[d+160>>2]=0}a[d+164>>0]=1;c[d+160>>2]=e;c[d+156>>2]=1;i=(c[d+152>>2]|0)+1|0;g=e;h=d+160|0}else{i=1;g=c[d+160>>2]|0;h=d+160|0}c[d+152>>2]=i;c[g>>2]=c[z+96>>2];c[g+4>>2]=c[z+96+4>>2];c[g+8>>2]=c[z+96+8>>2];c[g+12>>2]=c[z+96+12>>2];c[g+16>>2]=c[z+96+16>>2];c[g+20>>2]=c[z+96+20>>2];c[g+24>>2]=c[z+96+24>>2];c[g+28>>2]=c[z+96+28>>2];p=c[h>>2]|0;n=c[d+136>>2]|0;b[p>>1]=b[n>>1]|0;b[p+2>>1]=b[n+2>>1]|0;b[p+4>>1]=b[n+4>>1]|0;b[p+6>>1]=b[n+6>>1]|0;b[p+8>>1]=b[n+8>>1]|0;b[p+10>>1]=b[n+10>>1]|0;c[p+12>>2]=0;n=c[n+12>>2]|0;c[p+16>>2]=(n|0)>-1?1:0-n|0}c[d+168>>2]=c[d+152>>2];g=c[d+116>>2]|0;if(g|0){if(a[d+120>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[d+116>>2]=0}a[d+120>>0]=1;c[d+116>>2]=0;c[d+108>>2]=0;c[d+112>>2]=0;g=c[d+76>>2]|0;if(!g){a[d+80>>0]=1;c[d+76>>2]=0;c[d+68>>2]=0;d=d+72|0;c[d>>2]=0;ea=z;return}if(a[d+80>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[d+76>>2]=0;a[d+80>>0]=1;c[d+76>>2]=0;c[d+68>>2]=0;d=d+72|0;c[d>>2]=0;ea=z;return}function dc(b,d,e,g,h,i){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,t=0.0,u=0,v=0.0,w=0.0,x=0.0,y=0,z=0,A=0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0.0,Y=0.0,Z=0.0,_=0.0,$=0.0,aa=0,ba=0.0,ca=0.0,da=0.0,fa=0,ga=0.0;fa=ea;ea=ea+32|0;J=c[b+4>>2]|0;a[J+312>>0]=0;c[J>>2]=0;a[J+356>>0]=1;c[J+292>>2]=1566444395;c[J+296>>2]=1566444395;c[J+300>>2]=1566444395;f[J+304>>2]=0.0;c[J+336>>2]=0;c[J+336+4>>2]=0;c[J+336+8>>2]=0;c[J+336+12>>2]=0;a[J+336+16>>0]=0;a[J+332>>0]=a[J+332>>0]&-16;k=+f[d+48>>2];o=+f[d+52>>2];p=+f[d+56>>2];q=+f[g+48>>2];r=+f[g+52>>2];t=+f[g+56>>2];K=+f[d>>2];Q=+f[d+4>>2];R=+f[d+8>>2];S=+f[d+16>>2];L=+f[d+20>>2];M=+f[d+24>>2];N=+f[d+32>>2];O=+f[d+36>>2];P=+f[d+40>>2];T=+f[g>>2];Z=+f[g+4>>2];_=+f[g+8>>2];$=+f[g+16>>2];U=+f[g+20>>2];V=+f[g+24>>2];W=+f[g+32>>2];X=+f[g+36>>2];Y=+f[g+40>>2];ba=+f[e+48>>2]-k-(+f[h+48>>2]-q);da=+f[e+52>>2]-o-(+f[h+52>>2]-r);ca=+f[e+56>>2]-p-(+f[h+56>>2]-t);J=c[b+8>>2]|0;A=c[(c[J>>2]|0)+64>>2]|0;f[fa>>2]=K*-ba+S*-da+N*-ca;f[fa+4>>2]=Q*-ba+L*-da+O*-ca;f[fa+8>>2]=R*-ba+M*-da+P*-ca;f[fa+12>>2]=0.0;Ma[A&127](fa+16|0,J,fa);H=+f[fa+16>>2];I=+f[fa+16+4>>2];G=+f[fa+16+8>>2];v=H*+f[d>>2]+I*+f[d+4>>2]+G*+f[d+8>>2]+ +f[d+48>>2];x=H*+f[d+16>>2]+I*+f[d+20>>2]+G*+f[d+24>>2]+ +f[d+52>>2];G=H*+f[d+32>>2]+I*+f[d+36>>2]+G*+f[d+40>>2]+ +f[d+56>>2];J=c[b+12>>2]|0;A=c[(c[J>>2]|0)+64>>2]|0;I=ba*+f[g+4>>2]+da*+f[g+20>>2]+ca*+f[g+36>>2];H=ba*+f[g+8>>2]+da*+f[g+24>>2]+ca*+f[g+40>>2];f[fa>>2]=ba*+f[g>>2]+da*+f[g+16>>2]+ca*+f[g+32>>2];f[fa+4>>2]=I;f[fa+8>>2]=H;f[fa+12>>2]=0.0;Ma[A&127](fa+16|0,J,fa);H=+f[fa+16>>2];I=+f[fa+16+4>>2];w=+f[fa+16+8>>2];v=v-(H*+f[g>>2]+I*+f[g+4>>2]+w*+f[g+8>>2]+ +f[g+48>>2]);x=x-(H*+f[g+16>>2]+I*+f[g+20>>2]+w*+f[g+24>>2]+ +f[g+52>>2]);w=G-(H*+f[g+32>>2]+I*+f[g+36>>2]+w*+f[g+40>>2]+ +f[g+56>>2]);a:do if(v*v+x*x+w*w>9.999999747378752e-05){m=0.0;l=0.0;n=0.0;I=k;k=0.0;J=32;j=0;u=0;B=x;while(1){if(!J)break a;J=J+-1|0;A=c[b+8>>2]|0;z=c[(c[A>>2]|0)+64>>2]|0;F=-v;ga=-B;x=-w;f[fa>>2]=K*F+S*ga+N*x;f[fa+4>>2]=Q*F+L*ga+O*x;f[fa+8>>2]=R*F+M*ga+P*x;f[fa+12>>2]=0.0;Ma[z&127](fa+16|0,A,fa);x=+f[fa+16>>2];ga=+f[fa+16+4>>2];F=+f[fa+16+8>>2];D=I+(K*x+Q*ga+R*F);H=o+(S*x+L*ga+M*F);F=p+(N*x+O*ga+P*F);A=c[b+12>>2]|0;z=c[(c[A>>2]|0)+64>>2]|0;f[fa>>2]=T*v+$*B+W*w;f[fa+4>>2]=Z*v+U*B+X*w;f[fa+8>>2]=_*v+V*B+Y*w;f[fa+12>>2]=0.0;Ma[z&127](fa+16|0,A,fa);ga=+f[fa+16>>2];x=+f[fa+16+4>>2];E=+f[fa+16+8>>2];C=q+(T*ga+Z*x+_*E);G=r+($*ga+U*x+V*E);E=t+(W*ga+X*x+Y*E);x=(D-C)*v+(H-G)*B+(F-E)*w;if(k>1.0){j=0;aa=24;break}if(x>0.0){l=ba*v+da*B+ca*w;if(l>=-1.4210854715202004e-14){j=0;aa=24;break}k=k-x/l;l=v;m=B;n=w;x=(1.0-k)*+f[d+48>>2]+k*+f[e+48>>2];o=(1.0-k)*+f[d+52>>2]+k*+f[e+52>>2];p=(1.0-k)*+f[d+56>>2]+k*+f[e+56>>2];q=(1.0-k)*+f[g+48>>2]+k*+f[h+48>>2];r=(1.0-k)*+f[g+52>>2]+k*+f[h+52>>2];t=(1.0-k)*+f[g+56>>2]+k*+f[h+56>>2];j=u}else x=I;z=c[b+4>>2]|0;A=c[z>>2]|0;if((A|0)>0){v=+f[z+308>>2];u=0;y=0;do{B=D-C-+f[z+4+(y<<4)>>2];I=H-G-+f[z+4+(y<<4)+4>>2];ga=F-E-+f[z+4+(y<<4)+8>>2];u=u|B*B+I*I+ga*ga<=v;y=y+1|0}while((y|0)!=(A|0))}else u=0;if((+f[z+304>>2]==0.0?F-E==+f[z+300>>2]:0)?H-G==+f[z+296>>2]:0){if(!(D-C==+f[z+292>>2]|u))aa=16}else if(!u)aa=16;if((aa|0)==16){aa=0;f[z+292>>2]=D-C;f[z+296>>2]=H-G;f[z+300>>2]=F-E;f[z+304>>2]=0.0;a[z+356>>0]=1;f[z+4+(A<<4)>>2]=D-C;f[z+4+(A<<4)+4>>2]=H-G;f[z+4+(A<<4)+8>>2]=F-E;f[z+4+(A<<4)+12>>2]=0.0;A=c[z>>2]|0;f[z+84+(A<<4)>>2]=D;f[z+84+(A<<4)+4>>2]=H;f[z+84+(A<<4)+8>>2]=F;f[z+84+(A<<4)+12>>2]=0.0;A=c[z>>2]|0;f[z+164+(A<<4)>>2]=C;f[z+164+(A<<4)+4>>2]=G;f[z+164+(A<<4)+8>>2]=E;f[z+164+(A<<4)+12>>2]=0.0;c[z>>2]=(c[z>>2]|0)+1;z=c[b+4>>2]|0}A=nb(z)|0;v=+f[z+276>>2];B=+f[z+280>>2];w=+f[z+284>>2];if(!A)break a;if(!(v*v+B*B+w*w>9.999999747378752e-05))break a;else{I=x;u=c[z+288>>2]|0}}if((aa|0)==24){ea=fa;return j|0}}else{n=0.0;m=0.0;l=0.0;k=0.0;j=0}while(0);f[i+164>>2]=k;k=l*l+m*m+n*n;if(!(k>=1.4210854715202004e-14)){c[i+132>>2]=0;c[i+132+4>>2]=0;c[i+132+8>>2]=0;c[i+132+12>>2]=0;k=0.0;l=0.0;m=0.0}else{ga=1.0/+s(+k);k=l*ga;l=m*ga;m=n*ga;f[i+132>>2]=k;f[i+136>>2]=l;f[i+140>>2]=m;c[i+144>>2]=j}if(ba*k+da*l+ca*m>=-+f[i+172>>2]){b=0;ea=fa;return b|0}b=c[b+4>>2]|0;nb(b)|0;mp(i+148|0,b+260|0,16)|0;b=1;ea=fa;return b|0}function ec(b,d,e,g,i,j,k,l,m,n,o){b=b|0;d=d|0;e=e|0;g=g|0;i=i|0;j=j|0;k=k|0;l=l|0;m=+m;n=+n;o=+o;var p=0,q=0,r=0.0,s=0,t=0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0,N=0,O=0.0,P=0.0,Q=0.0;N=c[b+68>>2]|0;if((N|0)==(c[b+72>>2]|0)?(t=(N|0)==0?1:N<<1,(N|0)<(t|0)):0){if(!t){q=N;s=0}else{c[6747]=(c[6747]|0)+1;p=kb((t*152|3)+16|0)|0;if(!p)p=0;else{c[(p+4+15&-16)+-4>>2]=p;p=p+4+15&-16}q=c[b+68>>2]|0;s=p}if((q|0)>0){p=0;do{vh(s+(p*152|0)|0,(c[b+76>>2]|0)+(p*152|0)|0,152)|0;p=p+1|0}while((p|0)!=(q|0))}p=c[b+76>>2]|0;if(p|0){if(a[b+80>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[p+-4>>2]|0)}c[b+76>>2]=0}a[b+80>>0]=1;c[b+76>>2]=s;c[b+72>>2]=t;p=c[b+68>>2]|0}else p=N;c[b+68>>2]=p+1;M=c[b+76>>2]|0;c[M+(N*152|0)+140>>2]=i;s=c[b+16>>2]|0;p=c[s+(e*244|0)+240>>2]|0;t=c[s+(g*244|0)+240>>2]|0;c[M+(N*152|0)+144>>2]=e;c[M+(N*152|0)+148>>2]=g;q=c[j+84>>2]|0;c[M+(N*152|0)+104>>2]=q;c[M+(N*152|0)+132>>2]=0;f[M+(N*152|0)+100>>2]=0.0;f[M+(N*152|0)+96>>2]=0.0;I=(c[h>>2]=q,+f[h>>2]);if(p|0){c[M+(N*152|0)+16>>2]=c[d>>2];c[M+(N*152|0)+16+4>>2]=c[d+4>>2];c[M+(N*152|0)+16+8>>2]=c[d+8>>2];c[M+(N*152|0)+16+12>>2]=c[d+12>>2];L=+f[k+4>>2];D=+f[M+(N*152|0)+24>>2];H=+f[k+8>>2];J=+f[M+(N*152|0)+20>>2];E=+f[M+(N*152|0)+16>>2];K=+f[k>>2];f[M+(N*152|0)>>2]=L*D-H*J;f[M+(N*152|0)+4>>2]=H*E-D*K;f[M+(N*152|0)+8>>2]=J*K-L*E;f[M+(N*152|0)+12>>2]=0.0;v=((L*D-H*J)*+f[p+264>>2]+(H*E-D*K)*+f[p+268>>2]+(J*K-L*E)*+f[p+272>>2])*+f[p+544>>2];r=((L*D-H*J)*+f[p+280>>2]+(H*E-D*K)*+f[p+284>>2]+(J*K-L*E)*+f[p+288>>2])*+f[p+548>>2];u=((L*D-H*J)*+f[p+296>>2]+(H*E-D*K)*+f[p+300>>2]+(J*K-L*E)*+f[p+304>>2])*+f[p+552>>2];f[M+(N*152|0)+64>>2]=v;f[M+(N*152|0)+68>>2]=r;f[M+(N*152|0)+72>>2]=u;f[M+(N*152|0)+76>>2]=0.0;z=E;A=J;B=D;C=L*D-H*J;D=H*E-D*K;E=J*K-L*E}else{c[M+(N*152|0)+64>>2]=0;c[M+(N*152|0)+64+4>>2]=0;c[M+(N*152|0)+64+8>>2]=0;c[M+(N*152|0)+64+12>>2]=0;c[M+(N*152|0)>>2]=0;c[M+(N*152|0)+4>>2]=0;c[M+(N*152|0)+8>>2]=0;c[M+(N*152|0)+12>>2]=0;c[M+(N*152|0)+16>>2]=0;c[M+(N*152|0)+20>>2]=0;c[M+(N*152|0)+24>>2]=0;c[M+(N*152|0)+28>>2]=0;r=0.0;u=0.0;v=0.0;z=0.0;A=0.0;B=0.0;C=0.0;D=0.0;E=0.0}if(t|0){J=-+f[d>>2];K=-+f[d+4>>2];L=-+f[d+8>>2];f[M+(N*152|0)+48>>2]=J;f[M+(N*152|0)+52>>2]=K;f[M+(N*152|0)+56>>2]=L;f[M+(N*152|0)+60>>2]=0.0;H=+f[l+4>>2];G=+f[l+8>>2];O=+f[l>>2];f[M+(N*152|0)+32>>2]=H*L-G*K;f[M+(N*152|0)+36>>2]=G*J-O*L;f[M+(N*152|0)+40>>2]=O*K-H*J;f[M+(N*152|0)+44>>2]=0.0;w=((H*L-G*K)*+f[t+264>>2]+(G*J-O*L)*+f[t+268>>2]+(O*K-H*J)*+f[t+272>>2])*+f[t+544>>2];x=((H*L-G*K)*+f[t+280>>2]+(G*J-O*L)*+f[t+284>>2]+(O*K-H*J)*+f[t+288>>2])*+f[t+548>>2];y=((H*L-G*K)*+f[t+296>>2]+(G*J-O*L)*+f[t+300>>2]+(O*K-H*J)*+f[t+304>>2])*+f[t+552>>2];f[M+(N*152|0)+80>>2]=w;f[M+(N*152|0)+84>>2]=x;f[M+(N*152|0)+88>>2]=y;f[M+(N*152|0)+92>>2]=0.0;F=H*L-G*K;G=G*J-O*L;H=O*K-H*J}else{c[M+(N*152|0)+80>>2]=0;c[M+(N*152|0)+80+4>>2]=0;c[M+(N*152|0)+80+8>>2]=0;c[M+(N*152|0)+80+12>>2]=0;c[M+(N*152|0)+32>>2]=0;c[M+(N*152|0)+32+4>>2]=0;c[M+(N*152|0)+32+8>>2]=0;c[M+(N*152|0)+32+12>>2]=0;c[M+(N*152|0)+32+16>>2]=0;c[M+(N*152|0)+32+20>>2]=0;c[M+(N*152|0)+32+24>>2]=0;c[M+(N*152|0)+32+28>>2]=0;F=0.0;G=0.0;H=0.0;w=0.0;x=0.0;y=0.0;J=0.0;K=0.0;L=0.0}if(p|0){Q=+f[k+8>>2];P=+f[k+4>>2];O=+f[k>>2];u=+f[p+344>>2]+((r*Q-u*P)*+f[d>>2]+(u*O-Q*v)*+f[d+4>>2]+(P*v-r*O)*+f[d+8>>2])}else u=0.0;if(t|0){P=-w;r=-x;x=-y;y=+f[l+8>>2];O=+f[l+4>>2];Q=+f[l>>2];r=+f[t+344>>2]+((y*r-O*x)*+f[d>>2]+(Q*x-y*P)*+f[d+4>>2]+(O*P-Q*r)*+f[d+8>>2])}else r=0.0;x=m/(u+r);f[M+(N*152|0)+108>>2]=x;if(p|0){u=+f[s+(e*244|0)+192>>2];v=+f[s+(e*244|0)+196>>2];w=+f[s+(e*244|0)+200>>2];r=(+f[s+(e*244|0)+176>>2]+ +f[s+(e*244|0)+208>>2])*z+(+f[s+(e*244|0)+180>>2]+ +f[s+(e*244|0)+212>>2])*A+(+f[s+(e*244|0)+184>>2]+ +f[s+(e*244|0)+216>>2])*B}else{u=0.0;v=0.0;w=0.0;r=z*0.0+A*0.0+B*0.0}r=r+(u*C+v*D+w*E);if(t|0){m=+f[s+(g*244|0)+192>>2];O=+f[s+(g*244|0)+196>>2];Q=+f[s+(g*244|0)+200>>2];P=(+f[s+(g*244|0)+176>>2]+ +f[s+(g*244|0)+208>>2])*J+(+f[s+(g*244|0)+180>>2]+ +f[s+(g*244|0)+212>>2])*K+(+f[s+(g*244|0)+184>>2]+ +f[s+(g*244|0)+216>>2])*L;m=m*F;O=O*G;O=m+O;Q=Q*H;Q=O+Q;Q=P+Q;Q=r+Q;Q=n-Q;Q=x*Q;g=M+(N*152|0)+112|0;f[g>>2]=Q;g=M+(N*152|0)+116|0;f[g>>2]=o;Q=-I;g=M+(N*152|0)+120|0;f[g>>2]=Q;g=M+(N*152|0)+124|0;c[g>>2]=q;return}else{m=0.0;O=0.0;Q=0.0;P=J*0.0+K*0.0+L*0.0;m=m*F;O=O*G;O=m+O;Q=Q*H;Q=O+Q;Q=P+Q;Q=r+Q;Q=n-Q;Q=x*Q;g=M+(N*152|0)+112|0;f[g>>2]=Q;g=M+(N*152|0)+116|0;f[g>>2]=o;Q=-I;g=M+(N*152|0)+120|0;f[g>>2]=Q;g=M+(N*152|0)+124|0;c[g>>2]=q;return}}function fc(b,d,e,g,h,i,j,k,l,m,n){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0.0,r=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0,y=0,A=0,B=0,C=0,D=0.0,E=0,F=0;if((j|0)<2|(k|0)<2){n=0;return n|0}x=z(k,j)|0;c[6747]=(c[6747]|0)+1;b=kb(x>>>0>268435455?18:(x<<4|3)+16|0)|0;if(!b)A=0;else{c[(b+4+15&-16)+-4>>2]=b;A=b+4+15&-16}y=GJ(x>>>0>1073741823?-1:x<<2)|0;o=0;do{D=+(o|0)/+(k+-1|0);q=+f[e>>2];q=q+D*(+f[h>>2]-q);r=+f[e+4>>2];r=r+D*(+f[h+4>>2]-r);t=+f[e+8>>2];t=t+D*(+f[h+8>>2]-t);u=+f[g>>2];v=+f[g+4>>2];w=+f[g+8>>2];u=u+D*(+f[i>>2]-u)-q;v=v+D*(+f[i+4>>2]-v)-r;w=w+D*(+f[i+8>>2]-w)-t;p=z(o,j)|0;b=0;do{D=+(b|0)/+(j+-1|0);C=b+p|0;f[A+(C<<4)>>2]=q+u*D;f[A+(C<<4)+4>>2]=r+v*D;f[A+(C<<4)+8>>2]=t+w*D;f[A+(C<<4)+12>>2]=0.0;f[y+(C<<2)>>2]=1.0;b=b+1|0}while((b|0)!=(j|0));o=o+1|0}while((o|0)!=(k|0));c[6747]=(c[6747]|0)+1;b=kb(1271)|0;if(!b)b=0;else{c[(b+4+15&-16)+-4>>2]=b;b=b+4+15&-16}ub(b,d,x,A,y);if(l&1|0){f[(c[b+720>>2]|0)+88>>2]=0.0;a[b+924>>0]=1}if(l&2|0){f[(c[b+720>>2]|0)+((j+-1|0)*104|0)+88>>2]=0.0;a[b+924>>0]=1}if(l&4|0){C=z(k+-1|0,j)|0;f[(c[b+720>>2]|0)+(C*104|0)+88>>2]=0.0;a[b+924>>0]=1}if(l&8|0){C=j+-1+(z(k+-1|0,j)|0)|0;f[(c[b+720>>2]|0)+(C*104|0)+88>>2]=0.0;a[b+924>>0]=1}if(l&16|0){f[(c[b+720>>2]|0)+(((j+-1|0)/2|0)*104|0)+88>>2]=0.0;a[b+924>>0]=1}if(l&32|0){C=z((k+-1|0)/2|0,j)|0;f[(c[b+720>>2]|0)+(C*104|0)+88>>2]=0.0;a[b+924>>0]=1}if(l&64|0){C=j+-1+(z((k+-1|0)/2|0,j)|0)|0;f[(c[b+720>>2]|0)+(C*104|0)+88>>2]=0.0;a[b+924>>0]=1}if(l&128|0){C=(z(k+-1|0,j)|0)+((j+-1|0)/2|0)|0;f[(c[b+720>>2]|0)+(C*104|0)+88>>2]=0.0;a[b+924>>0]=1}if(!(l&256)){B=b+924|0;C=b+720|0}else{B=(z((k+-1|0)/2|0,j)|0)+((j+-1|0)/2|0)|0;C=b+720|0;f[(c[C>>2]|0)+(B*104|0)+88>>2]=0.0;B=b+924|0;a[B>>0]=1}c[6748]=(c[6748]|0)+1;uc(c[A+-4>>2]|0);HJ(y);d=b+732|0;A=b+740|0;l=0;o=0;do{p=l;l=l+1|0;a:do if((j|0)>0){y=z(p,j)|0;x=z(l,j)|0;r=1.0/+(k+-1|0)*+(k+-1-p|0);q=1.0/+(k+-1|0)*+(k+-2-p|0);if((l|0)>=(k|0)){p=0;while(1){e=p;p=p+1|0;if((p|0)<(j|0)){g=p+y|0;h=c[C>>2]|0;mh(b,0);x=(c[d>>2]|0)+-1|0;i=c[A>>2]|0;c[i+(x*52|0)+8>>2]=h+((e+y|0)*104|0);c[i+(x*52|0)+12>>2]=h+(g*104|0);v=+f[h+((e+y|0)*104|0)+8>>2]-+f[h+(g*104|0)+8>>2];w=+f[h+((e+y|0)*104|0)+12>>2]-+f[h+(g*104|0)+12>>2];D=+f[h+((e+y|0)*104|0)+16>>2]-+f[h+(g*104|0)+16>>2];f[i+(x*52|0)+16>>2]=+s(+(v*v+w*w+D*D));a[B>>0]=1}if((p|0)==(j|0))break a}}i=0;do{g=i;i=i+1|0;e=i+y|0;h=i+x|0;p=c[C>>2]|0;if((i|0)<(j|0)){mh(b,0);F=(c[d>>2]|0)+-1|0;E=c[A>>2]|0;c[E+(F*52|0)+8>>2]=p+((g+y|0)*104|0);c[E+(F*52|0)+12>>2]=p+(e*104|0);D=+f[p+((g+y|0)*104|0)+8>>2]-+f[p+(e*104|0)+8>>2];w=+f[p+((g+y|0)*104|0)+12>>2]-+f[p+(e*104|0)+12>>2];v=+f[p+((g+y|0)*104|0)+16>>2]-+f[p+(e*104|0)+16>>2];f[E+(F*52|0)+16>>2]=+s(+(D*D+w*w+v*v));a[B>>0]=1;F=c[C>>2]|0;mh(b,0);p=(c[d>>2]|0)+-1|0;E=c[A>>2]|0;c[E+(p*52|0)+8>>2]=F+((g+y|0)*104|0);c[E+(p*52|0)+12>>2]=F+((g+x|0)*104|0);v=+f[F+((g+y|0)*104|0)+8>>2]-+f[F+((g+x|0)*104|0)+8>>2];w=+f[F+((g+y|0)*104|0)+12>>2]-+f[F+((g+x|0)*104|0)+12>>2];D=+f[F+((g+y|0)*104|0)+16>>2]-+f[F+((g+x|0)*104|0)+16>>2];f[E+(p*52|0)+16>>2]=+s(+(v*v+w*w+D*D));a[B>>0]=1;af(b,g+y|0,g+x|0,h,0);if(!n)af(b,h,e,g+y|0,0);else{D=1.0/+(j+-1|0)*+(g|0);f[n+(o<<2)>>2]=D;f[n+(o+1<<2)>>2]=r;f[n+(o+2<<2)>>2]=D;f[n+(o+3<<2)>>2]=q;w=1.0/+(j+-1|0)*+(i|0);f[n+(o+4<<2)>>2]=w;f[n+(o+5<<2)>>2]=q;af(b,h,e,g+y|0,0);f[n+(o+6<<2)>>2]=w;f[n+(o+7<<2)>>2]=q;f[n+(o+8<<2)>>2]=w;f[n+(o+9<<2)>>2]=r;f[n+(o+10<<2)>>2]=D;f[n+(o+11<<2)>>2]=r}if(m){e=c[C>>2]|0;mh(b,0);F=(c[d>>2]|0)+-1|0;E=c[A>>2]|0;c[E+(F*52|0)+8>>2]=e+((g+y|0)*104|0);c[E+(F*52|0)+12>>2]=e+(h*104|0);v=+f[e+((g+y|0)*104|0)+8>>2]-+f[e+(h*104|0)+8>>2];w=+f[e+((g+y|0)*104|0)+12>>2]-+f[e+(h*104|0)+12>>2];D=+f[e+((g+y|0)*104|0)+16>>2]-+f[e+(h*104|0)+16>>2];f[E+(F*52|0)+16>>2]=+s(+(v*v+w*w+D*D));a[B>>0]=1}o=o+12|0}else{mh(b,0);F=(c[d>>2]|0)+-1|0;E=c[A>>2]|0;c[E+(F*52|0)+8>>2]=p+((g+y|0)*104|0);c[E+(F*52|0)+12>>2]=p+((g+x|0)*104|0);v=+f[p+((g+y|0)*104|0)+8>>2]-+f[p+((g+x|0)*104|0)+8>>2];w=+f[p+((g+y|0)*104|0)+12>>2]-+f[p+((g+x|0)*104|0)+12>>2];D=+f[p+((g+y|0)*104|0)+16>>2]-+f[p+((g+x|0)*104|0)+16>>2];f[E+(F*52|0)+16>>2]=+s(+(v*v+w*w+D*D));a[B>>0]=1}}while((i|0)!=(j|0))}while(0)}while((l|0)!=(k|0));return b|0}function gc(b,d,e){b=b|0;d=d|0;e=e|0;var g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,t=0.0,u=0.0,v=0.0,w=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0;D=+f[b+48>>2];h=+f[d>>2];E=+f[b+64>>2];j=+f[d+4>>2];J=+f[b+80>>2];p=+f[d+8>>2];t=+f[b+52>>2];r=+f[b+68>>2];q=+f[b+84>>2];z=+f[b+56>>2];I=+f[b+72>>2];A=+f[b+88>>2];w=+f[d+16>>2];v=+f[d+20>>2];u=+f[d+24>>2];H=+f[d+32>>2];F=+f[d+36>>2];G=+f[d+40>>2];k=+f[b+96>>2];g=+f[b+100>>2];C=+f[b+104>>2];B=+f[d+48>>2]+(h*k+j*g+p*C);i=w*k+v*g+u*C+ +f[d+52>>2];C=H*k+F*g+G*C+ +f[d+56>>2];f[b+1064>>2]=D*h+E*j+J*p;f[b+1068>>2]=h*t+j*r+p*q;f[b+1072>>2]=h*z+j*I+p*A;f[b+1076>>2]=0.0;f[b+1080>>2]=D*w+E*v+J*u;f[b+1084>>2]=t*w+r*v+q*u;f[b+1088>>2]=z*w+I*v+A*u;f[b+1092>>2]=0.0;f[b+1096>>2]=D*H+E*F+J*G;f[b+1100>>2]=t*H+r*F+q*G;f[b+1104>>2]=z*H+I*F+A*G;f[b+1108>>2]=0.0;f[b+1112>>2]=B;f[b+1116>>2]=i;f[b+1120>>2]=C;f[b+1124>>2]=0.0;C=+f[b+112>>2];i=+f[e>>2];B=+f[b+128>>2];G=+f[e+4>>2];A=+f[b+144>>2];F=+f[e+8>>2];I=+f[b+116>>2];H=+f[b+132>>2];z=+f[b+148>>2];q=+f[b+120>>2];r=+f[b+136>>2];t=+f[b+152>>2];J=+f[e+16>>2];E=+f[e+20>>2];D=+f[e+24>>2];u=+f[e+32>>2];v=+f[e+36>>2];w=+f[e+40>>2];p=+f[b+160>>2];j=+f[b+164>>2];h=+f[b+168>>2];g=+f[e+48>>2]+(i*p+G*j+F*h);k=J*p+E*j+D*h+ +f[e+52>>2];h=u*p+v*j+w*h+ +f[e+56>>2];f[b+1128>>2]=C*i+B*G+A*F;f[b+1132>>2]=i*I+G*H+F*z;f[b+1136>>2]=i*q+G*r+F*t;f[b+1140>>2]=0.0;f[b+1144>>2]=C*J+B*E+A*D;f[b+1148>>2]=I*J+H*E+z*D;f[b+1152>>2]=q*J+r*E+t*D;f[b+1156>>2]=0.0;f[b+1160>>2]=C*u+B*v+A*w;f[b+1164>>2]=I*u+H*v+z*w;f[b+1168>>2]=q*u+r*v+t*w;f[b+1172>>2]=0.0;f[b+1176>>2]=g;f[b+1180>>2]=k;f[b+1184>>2]=h;f[b+1188>>2]=0.0;g=g-+f[b+1112>>2];k=k-+f[b+1116>>2];h=h-+f[b+1120>>2];z=+f[b+1084>>2];H=+f[b+1104>>2];I=+f[b+1088>>2];A=+f[b+1100>>2];B=+f[b+1096>>2];C=+f[b+1080>>2];D=+f[b+1064>>2];E=+f[b+1068>>2];J=+f[b+1072>>2];F=1.0/((z*H-I*A)*D+E*(I*B-H*C)+(A*C-z*B)*J);G=(A*C-z*B)*F;i=h*((I*E-z*J)*F)+(g*((z*H-I*A)*F)+k*((A*J-H*E)*F));j=h*((C*J-I*D)*F)+(g*((I*B-H*C)*F)+k*((H*D-B*J)*F));k=h*((z*D-C*E)*F)+(g*G+k*((B*E-A*D)*F));f[b+1256>>2]=i;f[b+1260>>2]=j;f[b+1264>>2]=k;f[b+1268>>2]=0.0;f[b+840>>2]=i;g=+f[b+680>>2];h=+f[b+696>>2];do if(!(g>h)){if(g>i){c[b+856>>2]=2;g=i-g;break}if(h>2]=1;g=i-h;break}else{c[b+856>>2]=0;g=0.0;break}}else{c[b+856>>2]=0;g=0.0}while(0);f[b+824>>2]=g;f[b+844>>2]=j;g=+f[b+684>>2];h=+f[b+700>>2];do if(!(g>h)){if(g>j){c[b+860>>2]=2;g=j-g;break}if(h>2]=1;g=j-h;break}else{c[b+860>>2]=0;g=0.0;break}}else{c[b+860>>2]=0;g=0.0}while(0);f[b+828>>2]=g;f[b+848>>2]=k;g=+f[b+688>>2];h=+f[b+704>>2];do if(!(g>h)){if(g>k){c[b+864>>2]=2;g=k-g;break}if(h>2]=1;g=k-h;break}else{c[b+864>>2]=0;g=0.0;break}}else{c[b+864>>2]=0;g=0.0}while(0);f[b+832>>2]=g;n=+f[b+1128>>2];o=+f[b+1144>>2];p=+f[b+1160>>2];h=+f[b+1132>>2];i=+f[b+1148>>2];j=+f[b+1164>>2];k=(z*H-I*A)*F*h+(A*J-H*E)*F*i+(I*E-z*J)*F*j;m=h*((I*B-H*C)*F)+(H*D-B*J)*F*i+(C*J-I*D)*F*j;l=p*((z*D-C*E)*F)+(n*G+o*((B*E-A*D)*F));g=G*+f[b+1136>>2]+(B*E-A*D)*F*+f[b+1152>>2]+(z*D-C*E)*F*(q*u+r*v+t*w);do if(l<1.0)if(l>-1.0){f[b+1192>>2]=+y(+-(h*G+(B*E-A*D)*F*i+(z*D-C*E)*F*j),+g);g=l<-1.0?-1.0:l;f[b+1196>>2]=+x(+(g>1.0?1.0:g));g=+y(+-(p*((C*J-I*D)*F)+(n*((I*B-H*C)*F)+o*((H*D-B*J)*F))),+(p*((I*E-z*J)*F)+(n*((z*H-I*A)*F)+o*((A*J-H*E)*F))));break}else{f[b+1192>>2]=-+y(+k,+m);f[b+1196>>2]=-1.5707963705062866;g=0.0;break}else{f[b+1192>>2]=+y(+k,+m);f[b+1196>>2]=1.5707963705062866;g=0.0}while(0);f[b+1200>>2]=g;f[b+1236>>2]=0.0;A=H*(n*H-p*J)-I*(o*J-n*I);B=J*(o*J-n*I)-H*(p*I-o*H);C=I*(p*I-o*H)-J*(n*H-p*J);f[b+1220>>2]=0.0;E=o*(o*J-n*I)-p*(n*H-p*J);F=p*(p*I-o*H)-n*(o*J-n*I);G=n*(n*H-p*J)-o*(p*I-o*H);f[b+1252>>2]=0.0;D=1.0/+s(+(A*A+B*B+C*C));f[b+1208>>2]=A*D;f[b+1212>>2]=B*D;f[b+1216>>2]=C*D;D=1.0/+s(+((o*J-n*I)*(o*J-n*I)+((n*H-p*J)*(n*H-p*J)+(p*I-o*H)*(p*I-o*H))));f[b+1224>>2]=(p*I-o*H)*D;f[b+1228>>2]=(n*H-p*J)*D;f[b+1232>>2]=(o*J-n*I)*D;J=1.0/+s(+(E*E+F*F+G*G));f[b+1240>>2]=E*J;f[b+1244>>2]=F*J;f[b+1248>>2]=G*J;if(!(a[b+1301>>0]|0))return;I=+f[(c[b+28>>2]|0)+344>>2];J=+f[(c[b+32>>2]|0)+344>>2];a[b+1280>>0]=(I<1.1920928955078125e-07|J<1.1920928955078125e-07)&1;J=I+J>0.0?J/(I+J):.5;f[b+1272>>2]=J;f[b+1276>>2]=1.0-J;return}function hc(b,d){b=b|0;d=d|0;var e=0,g=0,h=0.0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;q=ea;ea=ea+32|0;lf(b+4|0,((z(c[b+152>>2]|0,c[b+16>>2]|0)|0)/100|0)+1|0);if(c[b+164>>2]|0){o=((z(c[b+148>>2]|0,c[b+76>>2]|0)|0)/100|0)+1|0;lf(b+64|0,o);o=(c[b+164>>2]|0)-o|0;c[b+164>>2]=(o|0)>0?o:0}e=((c[b+144>>2]|0)+1|0)%2|0;c[b+144>>2]=e;e=c[b+124+(e<<2)>>2]|0;if(e|0){do{j=e+56|0;l=e;e=c[j>>2]|0;i=c[l+52>>2]|0;if(!i)i=b+124+(c[l+60>>2]<<2)|0;else i=i+56|0;c[i>>2]=e;i=c[j>>2]|0;if(i|0)c[i+52>>2]=c[l+52>>2];c[l+52>>2]=0;c[j>>2]=c[b+132>>2];i=c[b+132>>2]|0;if(i|0)c[i+52>>2]=l;c[b+132>>2]=l;i=c[l+48>>2]|0;jg(b+4|0,i)|0;j=c[b+8>>2]|0;if(j|0){c[6748]=(c[6748]|0)+1;uc(c[j+-4>>2]|0)}c[b+8>>2]=i;c[b+16>>2]=(c[b+16>>2]|0)+-1;c[q>>2]=c[l+16>>2];c[q+4>>2]=c[l+16+4>>2];c[q+8>>2]=c[l+16+8>>2];c[q+12>>2]=c[l+16+12>>2];c[q+16>>2]=c[l+32>>2];c[q+16+4>>2]=c[l+32+4>>2];c[q+16+8>>2]=c[l+32+8>>2];c[q+16+12>>2]=c[l+32+12>>2];i=c[b+68>>2]|0;if(!i){c[6747]=(c[6747]|0)+1;i=kb(63)|0;if(!i)i=0;else{c[(i+4+15&-16)+-4>>2]=i;i=i+4+15&-16}j=i;k=j+44|0;do{c[j>>2]=0;j=j+4|0}while((j|0)<(k|0))}else c[b+68>>2]=0;c[i+32>>2]=0;c[i+36>>2]=l;c[i+40>>2]=0;c[i>>2]=c[q>>2];c[i+4>>2]=c[q+4>>2];c[i+8>>2]=c[q+8>>2];c[i+12>>2]=c[q+12>>2];c[i+16>>2]=c[q+16>>2];c[i+20>>2]=c[q+20>>2];c[i+24>>2]=c[q+24>>2];c[i+28>>2]=c[q+28>>2];je(b+64|0,c[b+64>>2]|0,i);j=(c[b+76>>2]|0)+1|0;c[b+76>>2]=j;c[l+48>>2]=i;c[l+60>>2]=2}while((e|0)!=0);c[b+164>>2]=j;a[b+194>>0]=1}c[q>>2]=10216;c[q+4>>2]=b;if(a[b+193>>0]|0?(md(b+4|0,c[b+4>>2]|0,c[b+64>>2]|0,q),a[b+193>>0]|0):0){o=c[b+4>>2]|0;md(b+4|0,o,o,q)}if(a[b+194>>0]|0?(m=c[b+136>>2]|0,m=ra[c[(c[m>>2]|0)+28>>2]&127](m)|0,g=c[m+4>>2]|0,(g|0)>0):0){e=(z(c[b+156>>2]|0,g)|0)/100|0;o=c[b+160>>2]|0;e=(o|0)>(e|0)?o:e;e=(g|0)<(e|0)?g:e;if((e|0)>0){i=0;do{k=((c[b+184>>2]|0)+i|0)%(g|0)|0;n=c[m+12>>2]|0;j=c[n+(k<<4)>>2]|0;k=c[n+(k<<4)+4>>2]|0;n=c[j+48>>2]|0;o=c[k+48>>2]|0;if(!(((((+f[n>>2]<=+f[o+16>>2]?+f[n+16>>2]>=+f[o>>2]:0)?+f[n+4>>2]<=+f[o+20>>2]:0)?+f[n+20>>2]>=+f[o+4>>2]:0)?+f[n+8>>2]<=+f[o+24>>2]:0)?+f[n+24>>2]>=+f[o+8>>2]:0)){g=c[b+136>>2]|0;wa[c[(c[g>>2]|0)+12>>2]&31](g,j,k,d)|0;g=c[m+4>>2]|0;i=i+-1|0;e=e+-1|0}i=i+1|0}while((i|0)<(e|0));if((g|0)>0)p=37;else e=0}else p=37;if((p|0)==37)e=((c[b+184>>2]|0)+e|0)%(g|0)|0;c[b+184>>2]=e}c[b+180>>2]=(c[b+180>>2]|0)+1;c[b+160>>2]=1;a[b+194>>0]=0;g=c[b+168>>2]|0;e=c[b+172>>2]|0;if(!g)h=0.0;else h=+(e>>>0)/+(g>>>0);f[b+176>>2]=h;c[b+172>>2]=1?e>>>1:e;c[b+168>>2]=1?g>>>1:g;o=c[b+136>>2]|0;if(!(ra[c[(c[o>>2]|0)+56>>2]&127](o)|0)){ea=q;return}o=c[b+136>>2]|0;o=ra[c[(c[o>>2]|0)+28>>2]&127](o)|0;e=c[o+4>>2]|0;if((e|0)>1){qd(o,0,e+-1|0);e=c[o+4>>2]|0}if((e|0)>0){m=0;l=0;n=0;i=0;while(1){k=c[o+12>>2]|0;j=k+(m<<4)|0;r=n;n=c[j>>2]|0;k=k+(m<<4)+4|0;g=c[k>>2]|0;if(!((n|0)==(r|0)&(g|0)==(i|0))){i=c[n+48>>2]|0;r=c[g+48>>2]|0;if(((((+f[i>>2]<=+f[r+16>>2]?+f[i+16>>2]>=+f[r>>2]:0)?+f[i+4>>2]<=+f[r+20>>2]:0)?+f[i+20>>2]>=+f[r+4>>2]:0)?+f[i+8>>2]<=+f[r+24>>2]:0)?+f[i+24>>2]>=+f[r+8>>2]:0)i=l;else p=53}else{g=i;p=53}if((p|0)==53){p=0;e=c[b+136>>2]|0;Ma[c[(c[e>>2]|0)+32>>2]&127](e,j,d);c[j>>2]=0;c[k>>2]=0;e=c[o+4>>2]|0;i=l+1|0}m=m+1|0;if((m|0)>=(e|0))break;else{l=i;i=g}}if((e|0)>1){qd(o,0,e+-1|0);e=c[o+4>>2]|0}k=e-i|0;if((i|0)<0){if((c[o+8>>2]|0)<(k|0)){if(!k){i=e;j=0}else{c[6747]=(c[6747]|0)+1;g=kb((k<<4|3)+16|0)|0;if(!g)g=0;else{c[(g+4+15&-16)+-4>>2]=g;g=g+4+15&-16}i=c[o+4>>2]|0;j=g}if((i|0)>0){g=0;do{r=c[o+12>>2]|0;c[j+(g<<4)>>2]=c[r+(g<<4)>>2];c[j+(g<<4)+4>>2]=c[r+(g<<4)+4>>2];c[j+(g<<4)+8>>2]=c[r+(g<<4)+8>>2];c[j+(g<<4)+12>>2]=c[r+(g<<4)+12>>2];g=g+1|0}while((g|0)!=(i|0))}g=c[o+12>>2]|0;if(g|0){if(a[o+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[o+12>>2]=0}a[o+16>>0]=1;c[o+12>>2]=j;c[o+8>>2]=k}do{r=(c[o+12>>2]|0)+(e<<4)|0;e=e+1|0;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;c[r+12>>2]=0}while((e|0)!=(k|0));e=k}else e=k}c[o+4>>2]=e;ea=q;return}function ic(b){b=b|0;var d=0,e=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,t=0.0,u=0.0,v=0,w=0,x=0.0,y=0;v=ea;ea=ea+176|0;if(!(a[b+527>>0]|0)){ea=v;return}f[b+36>>2]=0.0;f[b+520>>2]=0.0;f[b+516>>2]=0.0;c[b+576>>2]=0;c[b+576+4>>2]=0;c[b+576+8>>2]=0;c[b+576+12>>2]=0;if(!(a[b+524>>0]|0)){w=c[b+28>>2]|0;j=+f[b+348>>2];k=+f[b+352>>2];q=+f[b+356>>2];u=j*+f[w+20>>2]+k*+f[w+24>>2]+q*+f[w+28>>2]+ +f[w+56>>2];d=c[b+32>>2]|0;l=+f[b+412>>2];m=+f[b+416>>2];n=+f[b+420>>2];t=l*+f[d+20>>2]+m*+f[d+24>>2]+n*+f[d+28>>2]+ +f[d+56>>2];p=l*+f[d+36>>2]+m*+f[d+40>>2]+n*+f[d+44>>2]+ +f[d+60>>2];o=j*+f[w+4>>2]+k*+f[w+8>>2]+q*+f[w+12>>2]+ +f[w+52>>2];q=j*+f[w+36>>2]+k*+f[w+40>>2]+q*+f[w+44>>2]+ +f[w+60>>2];n=l*+f[d+4>>2]+m*+f[d+8>>2]+n*+f[d+12>>2]+ +f[d+52>>2];if((n-o)*(n-o)+(t-u)*(t-u)+(p-q)*(p-q)>1.1920928955078125e-07){i=1.0/+s(+((n-o)*(n-o)+(t-u)*(t-u)+(p-q)*(p-q)));f[v>>2]=(n-o)*i;f[v+4>>2]=(t-u)*i;f[v+8>>2]=(p-q)*i;c[v+12>>2]=0;h=(p-q)*i;e=(t-u)*i;i=(n-o)*i}else{c[v>>2]=1065353216;c[v+4>>2]=0;c[v+8>>2]=0;f[v+12>>2]=0.0;h=0.0;e=0.0;i=1.0}if(+r(+h)>.7071067690849304){x=h*h+e*e;m=1.0/+s(+x);l=-(h*m);e=e*m;g=e;j=i*l;k=0.0;m=x*m;e=-(i*e)}else{k=i*i+e*e;j=1.0/+s(+k);e=-(e*j);m=i*j;g=0.0;j=k*j;k=e;l=m;m=-(h*m);e=h*e}f[v+16>>2]=k;f[v+20>>2]=l;f[v+24>>2]=g;f[v+32>>2]=m;f[v+36>>2]=e;f[v+40>>2]=j;w=c[b+28>>2]|0;c[v+128>>2]=c[w+4>>2];c[v+128+4>>2]=c[w+20>>2];c[v+128+8>>2]=c[w+36>>2];f[v+128+12>>2]=0.0;c[v+128+16>>2]=c[w+8>>2];c[v+128+20>>2]=c[w+24>>2];c[v+128+24>>2]=c[w+40>>2];f[v+128+28>>2]=0.0;c[v+128+32>>2]=c[w+12>>2];c[v+128+36>>2]=c[w+28>>2];c[v+128+40>>2]=c[w+44>>2];f[v+128+44>>2]=0.0;d=c[b+32>>2]|0;c[v+80>>2]=c[d+4>>2];c[v+80+4>>2]=c[d+20>>2];c[v+80+8>>2]=c[d+36>>2];f[v+80+12>>2]=0.0;c[v+80+16>>2]=c[d+8>>2];c[v+80+20>>2]=c[d+24>>2];c[v+80+24>>2]=c[d+40>>2];f[v+80+28>>2]=0.0;c[v+80+32>>2]=c[d+12>>2];c[v+80+36>>2]=c[d+28>>2];c[v+80+40>>2]=c[d+44>>2];f[v+80+44>>2]=0.0;x=u-+f[w+56>>2];m=q-+f[w+60>>2];f[v+64>>2]=o-+f[w+52>>2];f[v+64+4>>2]=x;f[v+64+8>>2]=m;f[v+64+12>>2]=0.0;m=t-+f[d+56>>2];x=p-+f[d+60>>2];f[v+48>>2]=n-+f[d+52>>2];f[v+48+4>>2]=m;f[v+48+8>>2]=x;f[v+48+12>>2]=0.0;_f(b+48|0,v+128|0,v+80|0,v+64|0,v+48|0,v,w+396|0,+f[w+344>>2],d+396|0,+f[d+344>>2]);d=c[b+28>>2]|0;c[v+128>>2]=c[d+4>>2];c[v+128+4>>2]=c[d+20>>2];c[v+128+8>>2]=c[d+36>>2];f[v+128+12>>2]=0.0;c[v+128+16>>2]=c[d+8>>2];c[v+128+20>>2]=c[d+24>>2];c[v+128+24>>2]=c[d+40>>2];f[v+128+28>>2]=0.0;c[v+128+32>>2]=c[d+12>>2];c[v+128+36>>2]=c[d+28>>2];c[v+128+40>>2]=c[d+44>>2];f[v+128+44>>2]=0.0;w=c[b+32>>2]|0;c[v+80>>2]=c[w+4>>2];c[v+80+4>>2]=c[w+20>>2];c[v+80+8>>2]=c[w+36>>2];f[v+80+12>>2]=0.0;c[v+80+16>>2]=c[w+8>>2];c[v+80+20>>2]=c[w+24>>2];c[v+80+24>>2]=c[w+40>>2];f[v+80+28>>2]=0.0;c[v+80+32>>2]=c[w+12>>2];c[v+80+36>>2]=c[w+28>>2];c[v+80+40>>2]=c[w+44>>2];f[v+80+44>>2]=0.0;x=u-+f[d+56>>2];m=q-+f[d+60>>2];f[v+64>>2]=o-+f[d+52>>2];f[v+64+4>>2]=x;f[v+64+8>>2]=m;f[v+64+12>>2]=0.0;m=t-+f[w+56>>2];x=p-+f[w+60>>2];f[v+48>>2]=n-+f[w+52>>2];f[v+48+4>>2]=m;f[v+48+8>>2]=x;f[v+48+12>>2]=0.0;_f(b+132|0,v+128|0,v+80|0,v+64|0,v+48|0,v+16|0,d+396|0,+f[d+344>>2],w+396|0,+f[w+344>>2]);w=c[b+28>>2]|0;c[v+128>>2]=c[w+4>>2];c[v+128+4>>2]=c[w+20>>2];c[v+128+8>>2]=c[w+36>>2];f[v+128+12>>2]=0.0;c[v+128+16>>2]=c[w+8>>2];c[v+128+20>>2]=c[w+24>>2];c[v+128+24>>2]=c[w+40>>2];f[v+128+28>>2]=0.0;c[v+128+32>>2]=c[w+12>>2];c[v+128+36>>2]=c[w+28>>2];c[v+128+40>>2]=c[w+44>>2];f[v+128+44>>2]=0.0;d=c[b+32>>2]|0;c[v+80>>2]=c[d+4>>2];c[v+80+4>>2]=c[d+20>>2];c[v+80+8>>2]=c[d+36>>2];f[v+80+12>>2]=0.0;c[v+80+16>>2]=c[d+8>>2];c[v+80+20>>2]=c[d+24>>2];c[v+80+24>>2]=c[d+40>>2];f[v+80+28>>2]=0.0;c[v+80+32>>2]=c[d+12>>2];c[v+80+36>>2]=c[d+28>>2];c[v+80+40>>2]=c[d+44>>2];f[v+80+44>>2]=0.0;x=u-+f[w+56>>2];u=q-+f[w+60>>2];f[v+64>>2]=o-+f[w+52>>2];f[v+64+4>>2]=x;f[v+64+8>>2]=u;f[v+64+12>>2]=0.0;u=t-+f[d+56>>2];x=p-+f[d+60>>2];f[v+48>>2]=n-+f[d+52>>2];f[v+48+4>>2]=u;f[v+48+8>>2]=x;f[v+48+12>>2]=0.0;_f(b+216|0,v+128|0,v+80|0,v+64|0,v+48|0,v+32|0,w+396|0,+f[w+344>>2],d+396|0,+f[d+344>>2]);d=b+32|0}else d=b+32|0;y=c[b+28>>2]|0;w=c[d>>2]|0;pb(b,y+4|0,w+4|0,y+264|0,w+264|0);ea=v;return}function jc(a,d,g,h,i,j,k,l,m){a=a|0;d=d|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0.0,s=0,t=0.0,u=0.0,v=0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0,D=0,E=0,F=0,G=0;w=+f[a+8>>2];y=+f[a+12>>2];A=+f[a+16>>2];x=+f[a+40>>2];r=(+f[d>>2]-w)*x;z=+f[a+44>>2];t=(+f[d+4>>2]-y)*z;B=+f[a+48>>2];u=(+f[d+8>>2]-A)*B;if(!(r<=0.0)){v=b[a+6>>1]|0;v=b[a+4>>1]&(!(r>=+(v&65535))?~~r&65535:v)}else v=0;if(!(t<=0.0)){s=b[a+6>>1]|0;s=b[a+4>>1]&(!(t>=+(s&65535))?~~t&65535:s)}else s=0;if(!(u<=0.0)){q=b[a+6>>1]|0;q=b[a+4>>1]&(!(u>=+(q&65535))?~~u&65535:q)}else q=0;u=(+f[g>>2]-w)*x;t=(+f[g+4>>2]-y)*z;r=(+f[g+8>>2]-A)*B;if(!(u<=0.0)){p=b[a+6>>1]|0;p=b[a+4>>1]&(!(u>=+(p&65535))?~~u&65535:p)|1}else p=1;if(!(t<=0.0)){o=b[a+6>>1]|0;o=b[a+4>>1]&(!(t>=+(o&65535))?~~t&65535:o)|1}else o=1;if(!(r<=0.0)){n=b[a+6>>1]|0;n=b[a+4>>1]&(!(r>=+(n&65535))?~~r&65535:n)|1}else n=1;D=b[a+64>>1]|0;C=c[a+60>>2]|0;b[a+64>>1]=b[C+((D&65535)<<6)+48>>1]|0;E=(b[a+56>>1]|0)+1<<16>>16;b[a+56>>1]=E;c[C+((D&65535)<<6)+12>>2]=D&65535;c[C+((D&65535)<<6)>>2]=i;b[C+((D&65535)<<6)+4>>1]=j;b[C+((D&65535)<<6)+6>>1]=k;c[C+((D&65535)<<6)+8>>2]=m;m=(E&65535)<<1&65534;b[C+54>>1]=(e[C+54>>1]|0)+2;F=c[a+68>>2]|0;G=e[F+(m+-1<<2)>>1]|e[F+(m+-1<<2)+2>>1]<<16;b[F+((m|1)<<2)>>1]=G;b[F+((m|1)<<2)+2>>1]=G>>>16;F=c[a+68>>2]|0;b[F+(m+-1<<2)>>1]=v;b[F+(m+-1<<2)+2>>1]=D;b[F+(m<<2)>>1]=p;b[F+(m<<2)+2>>1]=D;b[C+((D&65535)<<6)+48>>1]=m+-1;b[C+((D&65535)<<6)+54>>1]=(E&65535)<<1;p=(c[a+60>>2]|0)+56|0;b[p>>1]=(e[p>>1]|0)+2;p=c[a+72>>2]|0;v=e[p+(m+-1<<2)>>1]|e[p+(m+-1<<2)+2>>1]<<16;b[p+((m|1)<<2)>>1]=v;b[p+((m|1)<<2)+2>>1]=v>>>16;p=c[a+72>>2]|0;b[p+(m+-1<<2)>>1]=s;b[p+(m+-1<<2)+2>>1]=D;b[p+(m<<2)>>1]=o;b[p+(m<<2)+2>>1]=D;b[C+((D&65535)<<6)+50>>1]=m+-1;b[C+((D&65535)<<6)+56>>1]=(E&65535)<<1;p=(c[a+60>>2]|0)+58|0;b[p>>1]=(e[p>>1]|0)+2;p=c[a+76>>2]|0;s=e[p+(m+-1<<2)>>1]|e[p+(m+-1<<2)+2>>1]<<16;b[p+((m|1)<<2)>>1]=s;b[p+((m|1)<<2)+2>>1]=s>>>16;p=c[a+76>>2]|0;b[p+(m+-1<<2)>>1]=q;b[p+(m+-1<<2)+2>>1]=D;b[p+(m<<2)>>1]=n;b[p+(m<<2)+2>>1]=D;b[C+((D&65535)<<6)+52>>1]=m+-1;b[C+((D&65535)<<6)+58>>1]=(E&65535)<<1;p=c[a+68>>2]|0;s=e[C+((D&65535)<<6)+48>>1]|0;o=c[a+60>>2]|0;n=b[p+(s<<2)+-4>>1]|0;if((e[p+(s<<2)>>1]|0)<(n&65535)){v=o+((e[p+(s<<2)+2>>1]|0)<<6)+48|0;q=p+(s<<2)|0;p=p+(s<<2)+-4|0;while(1){G=e[q+-2>>1]|0;n=(n&1)==0?o+(G<<6)+48|0:o+(G<<6)+54|0;b[n>>1]=(b[n>>1]|0)+1<<16>>16;b[v>>1]=(b[v>>1]|0)+-1<<16>>16;n=e[q>>1]|e[q+2>>1]<<16;G=e[p>>1]|e[p+2>>1]<<16;b[q>>1]=G;b[q+2>>1]=G>>>16;b[p>>1]=n;b[p+2>>1]=n>>>16;q=q+-4|0;p=p+-4|0;n=b[p>>1]|0;if((e[q>>1]|0)>=(n&65535))break;o=c[a+60>>2]|0}n=c[a+68>>2]|0}else n=p;o=e[C+((D&65535)<<6)+54>>1]|0;s=n+(o<<2)|0;p=b[s+-4>>1]|0;a:do if((e[s>>1]|0)<(p&65535)){q=c[a+60>>2]|0;v=q+((e[n+(o<<2)+2>>1]|0)<<6)+54|0;n=p;p=s;o=s+-4|0;while(1){G=e[p+-2>>1]|0;n=(n&1)==0?q+(G<<6)+48|0:q+(G<<6)+54|0;b[n>>1]=(b[n>>1]|0)+1<<16>>16;b[v>>1]=(b[v>>1]|0)+-1<<16>>16;n=e[p>>1]|e[p+2>>1]<<16;G=e[o>>1]|e[o+2>>1]<<16;b[p>>1]=G;b[p+2>>1]=G>>>16;b[o>>1]=n;b[o+2>>1]=n>>>16;p=p+-4|0;o=o+-4|0;n=b[o>>1]|0;if((e[p>>1]|0)>=(n&65535))break a;q=c[a+60>>2]|0}}while(0);o=c[a+72>>2]|0;s=e[C+((D&65535)<<6)+50>>1]|0;p=c[a+60>>2]|0;n=b[o+(s<<2)+-4>>1]|0;if((e[o+(s<<2)>>1]|0)<(n&65535)){v=p+((e[o+(s<<2)+2>>1]|0)<<6)+50|0;q=o+(s<<2)|0;o=o+(s<<2)+-4|0;while(1){G=e[q+-2>>1]|0;n=(n&1)==0?p+(G<<6)+50|0:p+(G<<6)+56|0;b[n>>1]=(b[n>>1]|0)+1<<16>>16;b[v>>1]=(b[v>>1]|0)+-1<<16>>16;n=e[q>>1]|e[q+2>>1]<<16;G=e[o>>1]|e[o+2>>1]<<16;b[q>>1]=G;b[q+2>>1]=G>>>16;b[o>>1]=n;b[o+2>>1]=n>>>16;q=q+-4|0;o=o+-4|0;n=b[o>>1]|0;if((e[q>>1]|0)>=(n&65535))break;p=c[a+60>>2]|0}o=c[a+72>>2]|0}p=e[C+((D&65535)<<6)+56>>1]|0;s=o+(p<<2)|0;n=b[s+-4>>1]|0;b:do if((e[s>>1]|0)<(n&65535)){q=c[a+60>>2]|0;v=q+((e[o+(p<<2)+2>>1]|0)<<6)+56|0;p=s;o=s+-4|0;while(1){G=e[p+-2>>1]|0;n=(n&1)==0?q+(G<<6)+50|0:q+(G<<6)+56|0;b[n>>1]=(b[n>>1]|0)+1<<16>>16;b[v>>1]=(b[v>>1]|0)+-1<<16>>16;n=e[p>>1]|e[p+2>>1]<<16;G=e[o>>1]|e[o+2>>1]<<16;b[p>>1]=G;b[p+2>>1]=G>>>16;b[o>>1]=n;b[o+2>>1]=n>>>16;p=p+-4|0;o=o+-4|0;n=b[o>>1]|0;if((e[p>>1]|0)>=(n&65535))break b;q=c[a+60>>2]|0}}while(0);Fg(a,2,b[C+((D&65535)<<6)+52>>1]|0);zg(a,2,b[C+((D&65535)<<6)+58>>1]|0,l);o=c[a+60>>2]|0;n=c[a+108>>2]|0;if(!n){G=o+((D&65535)<<6)|0;return G|0}c[o+((D&65535)<<6)+60>>2]=za[c[(c[n>>2]|0)+8>>2]&3](n,d,g,h,i,j,k,l,0)|0;G=o+((D&65535)<<6)|0;return G|0}function kc(b,d){b=b|0;d=d|0;var e=0.0,g=0,h=0,i=0,j=0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0.0,u=0.0,v=0.0,w=0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0;h=c[b+28>>2]|0;k=c[b+32>>2]|0;pb(b,h+4|0,k+4|0,h+264|0,k+264|0);q=c[d+8>>2]|0;f[q>>2]=1.0;p=c[d+24>>2]|0;f[q+(p+1<<2)>>2]=1.0;f[q+((p<<1)+2<<2)>>2]=1.0;o=+f[b+348>>2];v=+f[b+352>>2];l=+f[b+356>>2];t=+f[h+4>>2]*o+ +f[h+8>>2]*v+ +f[h+12>>2]*l;n=o*+f[h+20>>2]+v*+f[h+24>>2]+l*+f[h+28>>2];l=o*+f[h+36>>2]+v*+f[h+40>>2]+l*+f[h+44>>2];q=c[d+12>>2]|0;c[q>>2]=0;f[q+4>>2]=l;f[q+8>>2]=-n;f[q+12>>2]=0.0;f[q+(p<<2)>>2]=-l;c[q+(p<<2)+4>>2]=0;f[q+(p<<2)+8>>2]=t;f[q+(p<<2)+12>>2]=0.0;f[q+(p<<1<<2)>>2]=n;f[q+(p<<1<<2)+4>>2]=-t;c[q+(p<<1<<2)+8>>2]=0;f[q+(p<<1<<2)+12>>2]=0.0;r=c[d+16>>2]|0;f[r>>2]=-1.0;f[r+(p+1<<2)>>2]=-1.0;f[r+((p<<1)+2<<2)>>2]=-1.0;v=+f[b+412>>2];o=+f[b+416>>2];e=+f[b+420>>2];u=+f[k+4>>2]*v+ +f[k+8>>2]*o+ +f[k+12>>2]*e;m=v*+f[k+20>>2]+o*+f[k+24>>2]+e*+f[k+28>>2];e=v*+f[k+36>>2]+o*+f[k+40>>2]+e*+f[k+44>>2];r=c[d+20>>2]|0;c[r>>2]=0;f[r+4>>2]=-e;f[r+8>>2]=m;f[r+12>>2]=0.0;f[r+(p<<2)>>2]=e;c[r+(p<<2)+4>>2]=0;f[r+(p<<2)+8>>2]=-u;f[r+(p<<2)+12>>2]=0.0;f[r+(p<<1<<2)>>2]=-m;f[r+(p<<1<<2)+4>>2]=u;c[r+(p<<1<<2)+8>>2]=0;f[r+(p<<1<<2)+12>>2]=0.0;s=c[b+592>>2]|0;o=+f[((s&2|0)==0?d+4|0:b+600|0)>>2]*+f[d>>2];i=c[d+28>>2]|0;g=c[d+36>>2]|0;j=c[d+40>>2]|0;f[i>>2]=o*(u+ +f[k+52>>2]-t-+f[h+52>>2]);f[g>>2]=-3402823466385288598117041.0e14;f[j>>2]=3402823466385288598117041.0e14;if(!(s&1)){f[i+(p<<2)>>2]=o*(m+ +f[k+56>>2]-n-+f[h+56>>2]);f[g+(p<<2)>>2]=-3402823466385288598117041.0e14;f[j+(p<<2)>>2]=3402823466385288598117041.0e14;f[i+(p<<1<<2)>>2]=o*(e+ +f[k+60>>2]-l-+f[h+60>>2]);f[g+(p<<1<<2)>>2]=-3402823466385288598117041.0e14;f[j+(p<<1<<2)>>2]=3402823466385288598117041.0e14}else{w=c[d+32>>2]|0;c[w>>2]=c[b+596>>2];f[i+(p<<2)>>2]=o*(m+ +f[k+56>>2]-n-+f[h+56>>2]);f[g+(p<<2)>>2]=-3402823466385288598117041.0e14;f[j+(p<<2)>>2]=3402823466385288598117041.0e14;c[w+(p<<2)>>2]=c[b+596>>2];f[i+(p<<1<<2)>>2]=o*(e+ +f[k+60>>2]-l-+f[h+60>>2]);f[g+(p<<1<<2)>>2]=-3402823466385288598117041.0e14;f[j+(p<<1<<2)>>2]=3402823466385288598117041.0e14;c[w+(p<<1<<2)>>2]=c[b+596>>2]}do if(!(a[b+526>>0]|0))h=p*3|0;else{v=+f[b+456>>2];if(+f[b+444>>2]>2]>2];z=+f[h+8>>2];y=+f[h+12>>2];E=+f[b+304>>2];D=+f[b+320>>2];C=+f[b+336>>2];m=+f[b+308>>2];o=+f[b+324>>2];u=+f[b+340>>2];x=+f[h+20>>2];e=+f[h+24>>2];l=+f[h+28>>2];n=+f[h+36>>2];t=+f[h+40>>2];v=+f[h+44>>2];f[q+(p*3<<2)>>2]=A*E+z*D+y*C;f[q+((p*3|0)+1<<2)>>2]=E*x+D*e+C*l;f[q+((p*3|0)+2<<2)>>2]=E*n+D*t+C*v;f[q+(p<<2<<2)>>2]=A*m+z*o+y*u;f[q+((p<<2|1)<<2)>>2]=m*x+o*e+u*l;f[q+((p<<2|2)<<2)>>2]=m*n+o*t+u*v;f[r+(p*3<<2)>>2]=-(A*E+z*D+y*C);f[r+((p*3|0)+1<<2)>>2]=-(E*x+D*e+C*l);f[r+((p*3|0)+2<<2)>>2]=-(E*n+D*t+C*v);f[r+(p<<2<<2)>>2]=-(A*m+z*o+y*u);f[r+((p<<2|1)<<2)>>2]=-(m*x+o*e+u*l);f[r+((p<<2|2)<<2)>>2]=-(m*n+o*t+u*v);B=+f[d>>2]*+f[b+436>>2];i=c[d+28>>2]|0;f[i+(p*3<<2)>>2]=B*((A*E+z*D+y*C)*+f[b+460>>2]+(E*x+D*e+C*l)*+f[b+464>>2]+(E*n+D*t+C*v)*+f[b+468>>2]);f[i+(p<<2<<2)>>2]=B*((A*m+z*o+y*u)*+f[b+460>>2]+(m*x+o*e+u*l)*+f[b+464>>2]+(m*n+o*t+u*v)*+f[b+468>>2]);g=c[d+36>>2]|0;f[g+(p*3<<2)>>2]=-3402823466385288598117041.0e14;j=c[d+40>>2]|0;f[j+(p*3<<2)>>2]=3402823466385288598117041.0e14;f[g+(p<<2<<2)>>2]=-3402823466385288598117041.0e14;f[j+(p<<2<<2)>>2]=3402823466385288598117041.0e14;h=p*5|0;break}E=+f[b+436>>2];C=E*(+f[b+460>>2]*E);D=E*(E*+f[b+464>>2]);E=E*(E*+f[b+468>>2]);f[q+(p*3<<2)>>2]=C;f[q+((p*3|0)+1<<2)>>2]=D;f[q+((p*3|0)+2<<2)>>2]=E;f[r+(p*3<<2)>>2]=-C;f[r+((p*3|0)+1<<2)>>2]=-D;f[r+((p*3|0)+2<<2)>>2]=-E;f[i+(p*3<<2)>>2]=+f[d>>2]*+f[b+432>>2]*+f[b+504>>2];if(s&4|0)c[(c[d+32>>2]|0)+(p*3<<2)>>2]=c[b+604>>2];f[g+(p*3<<2)>>2]=0.0;f[j+(p*3<<2)>>2]=3402823466385288598117041.0e14;h=p<<2}while(0);if(!(a[b+525>>0]|0))return;E=+f[b+436>>2];C=E*(+f[b+476>>2]*E);D=E*(E*+f[b+480>>2]);E=E*(E*+f[b+484>>2]);f[q+(h<<2)>>2]=C;p=h+1|0;f[q+(p<<2)>>2]=D;w=h+2|0;f[q+(w<<2)>>2]=E;f[r+(h<<2)>>2]=-C;f[r+(p<<2)>>2]=-D;f[r+(w<<2)>>2]=-E;f[i+(h<<2)>>2]=+f[d>>2]*+f[b+432>>2]*+f[b+508>>2];if(s&4|0)c[(c[d+32>>2]|0)+(h<<2)>>2]=c[b+604>>2];do if(+f[b+452>>2]>0.0){g=g+(h<<2)|0;if(+f[b+508>>2]>0.0){f[g>>2]=0.0;e=3402823466385288598117041.0e14;break}else{f[g>>2]=-3402823466385288598117041.0e14;e=0.0;break}}else{f[g+(h<<2)>>2]=-3402823466385288598117041.0e14;e=3402823466385288598117041.0e14}while(0);f[j+(h<<2)>>2]=e;return}function lc(b,d,e,g,h,i,j,k,l,m){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,A=0,B=0,C=0.0,D=0,E=0;if((j|0)<2|(k|0)<2){k=0;return k|0}p=z(k,j)|0;c[6747]=(c[6747]|0)+1;b=kb(p>>>0>268435455?18:(p<<4|3)+16|0)|0;if(!b)r=0;else{c[(b+4+15&-16)+-4>>2]=b;r=b+4+15&-16}q=GJ(p>>>0>1073741823?-1:p<<2)|0;n=0;do{C=+(n|0)/+(k+-1|0);t=+f[e>>2];t=t+C*(+f[h>>2]-t);u=+f[e+4>>2];u=u+C*(+f[h+4>>2]-u);v=+f[e+8>>2];v=v+C*(+f[h+8>>2]-v);w=+f[g>>2];x=+f[g+4>>2];y=+f[g+8>>2];w=w+C*(+f[i>>2]-w)-t;x=x+C*(+f[i+4>>2]-x)-u;y=y+C*(+f[i+8>>2]-y)-v;o=z(n,j)|0;b=0;do{C=+(b|0)/+(j+-1|0);B=b+o|0;f[r+(B<<4)>>2]=t+w*C;f[r+(B<<4)+4>>2]=u+x*C;f[r+(B<<4)+8>>2]=v+y*C;f[r+(B<<4)+12>>2]=0.0;f[q+(B<<2)>>2]=1.0;b=b+1|0}while((b|0)!=(j|0));n=n+1|0}while((n|0)!=(k|0));c[6747]=(c[6747]|0)+1;b=kb(1271)|0;if(!b)b=0;else{c[(b+4+15&-16)+-4>>2]=b;b=b+4+15&-16}ub(b,d,p,r,q);if(l&1|0){f[(c[b+720>>2]|0)+88>>2]=0.0;a[b+924>>0]=1}if(l&2|0){f[(c[b+720>>2]|0)+((j+-1|0)*104|0)+88>>2]=0.0;a[b+924>>0]=1}if(l&4|0){B=z(k+-1|0,j)|0;f[(c[b+720>>2]|0)+(B*104|0)+88>>2]=0.0;a[b+924>>0]=1}if(!(l&8)){A=b+924|0;B=b+720|0}else{A=j+-1+(z(k+-1|0,j)|0)|0;B=b+720|0;f[(c[B>>2]|0)+(A*104|0)+88>>2]=0.0;A=b+924|0;a[A>>0]=1}c[6748]=(c[6748]|0)+1;uc(c[r+-4>>2]|0);HJ(q);d=b+732|0;r=b+740|0;p=0;while(1){a:do if((j|0)>0){l=z(p,j)|0;n=p+1|0;q=z(n,j)|0;if((n|0)>=(k|0)){o=0;while(1){e=o;o=o+1|0;if((o|0)<(j|0)){i=o+l|0;g=c[B>>2]|0;mh(b,0);q=(c[d>>2]|0)+-1|0;p=c[r>>2]|0;c[p+(q*52|0)+8>>2]=g+((e+l|0)*104|0);c[p+(q*52|0)+12>>2]=g+(i*104|0);x=+f[g+((e+l|0)*104|0)+8>>2]-+f[g+(i*104|0)+8>>2];y=+f[g+((e+l|0)*104|0)+12>>2]-+f[g+(i*104|0)+12>>2];C=+f[g+((e+l|0)*104|0)+16>>2]-+f[g+(i*104|0)+16>>2];f[p+(q*52|0)+16>>2]=+s(+(x*x+y*y+C*C));a[A>>0]=1}if((o|0)==(j|0))break a}}g=0;do{o=g+l|0;i=g;g=g+1|0;do if((g|0)<(j|0)){e=g+l|0;D=c[B>>2]|0;mh(b,0);E=(c[d>>2]|0)+-1|0;h=c[r>>2]|0;c[h+(E*52|0)+8>>2]=D+(o*104|0);c[h+(E*52|0)+12>>2]=D+(e*104|0);C=+f[D+(o*104|0)+8>>2]-+f[D+(e*104|0)+8>>2];y=+f[D+(o*104|0)+12>>2]-+f[D+(e*104|0)+12>>2];x=+f[D+(o*104|0)+16>>2]-+f[D+(e*104|0)+16>>2];f[h+(E*52|0)+16>>2]=+s(+(C*C+y*y+x*x));a[A>>0]=1;E=c[B>>2]|0;mh(b,0);h=(c[d>>2]|0)+-1|0;D=c[r>>2]|0;c[D+(h*52|0)+8>>2]=E+(o*104|0);c[D+(h*52|0)+12>>2]=E+((i+q|0)*104|0);x=+f[E+(o*104|0)+8>>2]-+f[E+((i+q|0)*104|0)+8>>2];y=+f[E+(o*104|0)+12>>2]-+f[E+((i+q|0)*104|0)+12>>2];C=+f[E+(o*104|0)+16>>2]-+f[E+((i+q|0)*104|0)+16>>2];f[D+(h*52|0)+16>>2]=+s(+(x*x+y*y+C*C));a[A>>0]=1;if(!(i+p&1)){af(b,i+q|0,o,e,0);af(b,i+q|0,e,g+q|0,0);if(!m)break;h=c[B>>2]|0;mh(b,0);E=(c[d>>2]|0)+-1|0;D=c[r>>2]|0;c[D+(E*52|0)+8>>2]=h+(e*104|0);c[D+(E*52|0)+12>>2]=h+((i+q|0)*104|0);x=+f[h+(e*104|0)+8>>2]-+f[h+((i+q|0)*104|0)+8>>2];y=+f[h+(e*104|0)+12>>2]-+f[h+((i+q|0)*104|0)+12>>2];C=+f[h+(e*104|0)+16>>2]-+f[h+((i+q|0)*104|0)+16>>2];f[D+(E*52|0)+16>>2]=+s(+(x*x+y*y+C*C));a[A>>0]=1;break}else{h=g+q|0;af(b,o,e,h,0);af(b,o,h,i+q|0,0);if(!m)break;i=c[B>>2]|0;mh(b,0);E=(c[d>>2]|0)+-1|0;D=c[r>>2]|0;c[D+(E*52|0)+8>>2]=i+(o*104|0);c[D+(E*52|0)+12>>2]=i+(h*104|0);x=+f[i+(o*104|0)+8>>2]-+f[i+(h*104|0)+8>>2];y=+f[i+(o*104|0)+12>>2]-+f[i+(h*104|0)+12>>2];C=+f[i+(o*104|0)+16>>2]-+f[i+(h*104|0)+16>>2];f[D+(E*52|0)+16>>2]=+s(+(x*x+y*y+C*C));a[A>>0]=1;break}}else{h=c[B>>2]|0;mh(b,0);E=(c[d>>2]|0)+-1|0;D=c[r>>2]|0;c[D+(E*52|0)+8>>2]=h+(o*104|0);c[D+(E*52|0)+12>>2]=h+((i+q|0)*104|0);x=+f[h+(o*104|0)+8>>2]-+f[h+((i+q|0)*104|0)+8>>2];y=+f[h+(o*104|0)+12>>2]-+f[h+((i+q|0)*104|0)+12>>2];C=+f[h+(o*104|0)+16>>2]-+f[h+((i+q|0)*104|0)+16>>2];f[D+(E*52|0)+16>>2]=+s(+(x*x+y*y+C*C));a[A>>0]=1}while(0)}while((g|0)!=(j|0))}else n=p+1|0;while(0);if((n|0)==(k|0))break;else p=n}return b|0}function mc(a,b,d,e,g,h){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=+h;var i=0.0,j=0.0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0,t=0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0;A=ea;ea=ea+272|0;c[A+128>>2]=c[d>>2];c[A+128+4>>2]=c[d+4>>2];c[A+128+8>>2]=c[d+8>>2];c[A+128+12>>2]=c[d+12>>2];c[A+128+16>>2]=c[d+16>>2];c[A+128+16+4>>2]=c[d+16+4>>2];c[A+128+16+8>>2]=c[d+16+8>>2];c[A+128+16+12>>2]=c[d+16+12>>2];c[A+128+32>>2]=c[d+32>>2];c[A+128+32+4>>2]=c[d+32+4>>2];c[A+128+32+8>>2]=c[d+32+8>>2];c[A+128+32+12>>2]=c[d+32+12>>2];c[A+128+48>>2]=c[d+48>>2];c[A+128+48+4>>2]=c[d+48+4>>2];c[A+128+48+8>>2]=c[d+48+8>>2];c[A+128+48+12>>2]=c[d+48+12>>2];c[A+64>>2]=c[e>>2];c[A+64+4>>2]=c[e+4>>2];c[A+64+8>>2]=c[e+8>>2];c[A+64+12>>2]=c[e+12>>2];c[A+64+16>>2]=c[e+16>>2];c[A+64+16+4>>2]=c[e+16+4>>2];c[A+64+16+8>>2]=c[e+16+8>>2];c[A+64+16+12>>2]=c[e+16+12>>2];c[A+64+32>>2]=c[e+32>>2];c[A+64+32+4>>2]=c[e+32+4>>2];c[A+64+32+8>>2]=c[e+32+8>>2];c[A+64+32+12>>2]=c[e+32+12>>2];c[A+64+48>>2]=c[e+48>>2];c[A+64+48+4>>2]=c[e+48+4>>2];c[A+64+48+8>>2]=c[e+48+8>>2];c[A+64+48+12>>2]=c[e+48+12>>2];i=+f[A+64+52>>2]-+f[A+128+52>>2];F=+f[A+64+56>>2]-+f[A+128+56>>2];f[A+16>>2]=+f[A+64+48>>2]-+f[A+128+48>>2];f[A+16+4>>2]=i;f[A+16+8>>2]=F;f[A+16+12>>2]=0.0;Ee(A+128|0,A+64|0,A+208|0,A+192|0);F=+f[A+192>>2];i=F*+f[A+208+4>>2];C=F*+f[A+208+8>>2];f[A>>2]=+f[A+208>>2]*F;f[A+4>>2]=i;f[A+8>>2]=C;f[A+12>>2]=0.0;c[A+208+48>>2]=0;c[A+208+48+4>>2]=0;c[A+208+48+8>>2]=0;c[A+208+48+12>>2]=0;Gg(A+128|0,A+192|0);C=+f[A+192>>2];i=+f[A+192+4>>2];F=+f[A+192+8>>2];D=+f[A+192+12>>2];B=C*(2.0/(C*C+i*i+F*F+D*D));j=i*(2.0/(C*C+i*i+F*F+D*D));E=F*(2.0/(C*C+i*i+F*F+D*D));f[A+208>>2]=1.0-(i*j+F*E);f[A+208+4>>2]=C*j-D*E;f[A+208+8>>2]=C*E+D*j;f[A+208+12>>2]=0.0;f[A+208+16>>2]=C*j+D*E;f[A+208+20>>2]=1.0-(C*B+F*E);f[A+208+24>>2]=i*E-D*B;f[A+208+28>>2]=0.0;f[A+208+32>>2]=C*E-D*j;f[A+208+36>>2]=i*E+D*B;f[A+208+40>>2]=1.0-(C*B+i*j);f[A+208+44>>2]=0.0;sg(b,A+208|0,A+16|0,A,A+48|0,A+32|0);if((c[a+268>>2]|0)<=0){ea=A;return}r=0;do{k=c[(c[a+276>>2]|0)+(r<<2)>>2]|0;if(ta[c[(c[g>>2]|0)+8>>2]&31](g,c[k+188>>2]|0)|0?(t=c[k+192>>2]|0,Pa[c[(c[t>>2]|0)+8>>2]&127](t,k+4|0,A+192|0,A+16|0),l=+f[A+192>>2]+ +f[A+48>>2],p=+f[A+192+4>>2]+ +f[A+48+4>>2],n=+f[A+192+8>>2]+ +f[A+48+8>>2],f[A+192>>2]=l,f[A+192+4>>2]=p,f[A+192+8>>2]=n,f[A+192+12>>2]=0.0,m=+f[A+16>>2]+ +f[A+32>>2],q=+f[A+16+4>>2]+ +f[A+32+4>>2],o=+f[A+16+8>>2]+ +f[A+32+8>>2],f[A+16>>2]=m,f[A+16+4>>2]=q,f[A+16+8>>2]=o,f[A+16+12>>2]=0.0,v=+f[d+48>>2]-(m+l)*.5,y=+f[d+52>>2]-(q+p)*.5,w=+f[d+56>>2]-(o+n)*.5,u=+f[e+48>>2]-(m+l)*.5,z=+f[e+52>>2]-(q+p)*.5,x=+f[e+56>>2]-(o+n)*.5,t=(v>(m-l)*.5?8:0)|v<-((m-l)*.5)|(y<-((q-p)*.5)?2:0)|(y>(q-p)*.5?16:0)|(w<-((o-n)*.5)?4:0)|(w>(o-n)*.5?32:0),s=(u>(m-l)*.5?8:0)|u<-((m-l)*.5)|(z<-((q-p)*.5)?2:0)|(z>(q-p)*.5?16:0)|(x<-((o-n)*.5)?4:0)|(x>(o-n)*.5?32:0),(s&t|0)==0):0){if(v<-((m-l)*.5))if(!((-v-(m-l)*.5)/(u-v)>=0.0)){i=1.0;j=0.0}else{i=1.0;j=(-v-(m-l)*.5)/(u-v)}else if(u<-((m-l)*.5)?(-v-(m-l)*.5)/(u-v)<1.0:0){i=(-v-(m-l)*.5)/(u-v);j=0.0}else{i=1.0;j=0.0}if(y<-((q-p)*.5)){if(j<=(-y-(q-p)*.5)/(z-y))j=(-y-(q-p)*.5)/(z-y)}else if(z<-((q-p)*.5)?(-y-(q-p)*.5)/(z-y)(m-l)*.5){if(j<=((m-l)*.5-v)/(u-v))j=((m-l)*.5-v)/(u-v)}else if(u>(m-l)*.5?((m-l)*.5-v)/(u-v)(q-p)*.5){if(j<=((q-p)*.5-y)/(z-y))j=((q-p)*.5-y)/(z-y)}else if(z>(q-p)*.5?((q-p)*.5-y)/(z-y)>2]|0;c[A+208>>2]=0;c[A+208+4>>2]=G;c[A+208+8>>2]=k;c[A+208+12>>2]=k+4;c[A+208+16>>2]=-1;c[A+208+20>>2]=-1;rb(b,A+128|0,A+64|0,A+208|0,g,h)}}r=r+1|0}while((r|0)<(c[a+268>>2]|0));ea=A;return}function nc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;d=c[a+8>>2]|0;if((d|0)<=0)return;f=0;do{e=c[(c[a+16>>2]|0)+(f<<2)>>2]|0;if((c[e+236>>2]|0)==1){Ia[c[(c[e>>2]|0)+24>>2]&127](e,b);d=c[a+8>>2]|0}f=f+1|0}while((f|0)<(d|0));if((d|0)<=0)return;t=0;l=0;k=d;z=0;m=0;r=0;q=0;g=0;f=0;p=0;w=0;j=0;e=0;y=0;u=0;d=0;while(1){x=c[(c[(c[a+16>>2]|0)+(z<<2)>>2]|0)+192>>2]|0;s=((10?~(x<<15)+x>>10:~(x<<15)+x|0)^~(x<<15)+x)*9|0;s=(6?s>>6:s)^s;s=(16?s+~(s<<11)>>16:s+~(s<<11)|0)^s+~(s<<11);h=s&u+-1;a:do if(h>>>0

>>0?(D=c[f+(h<<2)>>2]|0,(D|0)!=-1):0){h=D;while(1){if((c[g+(h<<3)>>2]|0)==(x|0))break;h=c[e+(h<<2)>>2]|0;if((h|0)==-1){F=14;break a}}if(d+(h<<2)|0){s=k;k=t;i=w;o=y;n=u}else F=14}else F=14;while(0);if((F|0)==14){F=0;n=s&u+-1;b:do if(n>>>0

>>0?(E=c[f+(n<<2)>>2]|0,(E|0)!=-1):0){h=E;while(1){if((c[g+(h<<3)>>2]|0)==(x|0))break;h=c[e+(h<<2)>>2]|0;if((h|0)==-1){F=20;break b}}c[d+(h<<2)>>2]=x;k=t;h=p;i=w;o=y;n=u}else F=20;while(0);if((F|0)==20){F=0;do if((y|0)==(u|0)){i=(u|0)==0?1:u<<1;if((u|0)<(i|0)){if((i|0)!=0?(c[6747]=(c[6747]|0)+1,A=kb((i<<2|3)+16|0)|0,(A|0)!=0):0){c[(A+4+15&-16)+-4>>2]=A;k=A+4+15&-16}else k=0;if((u|0)<=0){if(!d){h=u;v=i;d=k;break}}else{h=0;do{c[k+(h<<2)>>2]=c[d+(h<<2)>>2];h=h+1|0}while((h|0)!=(u|0))}c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0);h=u;v=i;d=k}else{h=u;v=u}}else{h=y;v=u}while(0);c[d+(h<<2)>>2]=x;o=h+1|0;do if((r|0)==(q|0)){h=(r|0)==0?1:r<<1;if((r|0)<(h|0)){if((h|0)!=0?(c[6747]=(c[6747]|0)+1,C=kb((h<<3|3)+16|0)|0,(C|0)!=0):0){c[(C+4+15&-16)+-4>>2]=C;k=C+4+15&-16}else k=0;if((r|0)<=0){if(!g){q=h;g=k;break}}else{i=0;do{H=g+(i<<3)|0;G=c[H+4>>2]|0;q=k+(i<<3)|0;c[q>>2]=c[H>>2];c[q+4>>2]=G;i=i+1|0}while((i|0)!=(r|0))}c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0);q=h;g=k}else q=r}while(0);H=g+(r<<3)|0;c[H>>2]=x;c[H+4>>2]=0;r=r+1|0;if((u|0)<(v|0)){if((p|0)<(v|0)){do if((m|0)<(v|0)){if((v|0)!=0?(c[6747]=(c[6747]|0)+1,B=kb((v<<2|3)+16|0)|0,(B|0)!=0):0){c[(B+4+15&-16)+-4>>2]=B;i=B+4+15&-16}else i=0;if((p|0)<=0){if(!f){n=i;m=v;f=i;break}}else{h=0;do{c[i+(h<<2)>>2]=c[f+(h<<2)>>2];h=h+1|0}while((h|0)!=(p|0))}c[6748]=(c[6748]|0)+1;uc(c[f+-4>>2]|0);n=i;m=v;f=i}else n=l;while(0);l=v<<2;hk(f+(p<<2)|0,0,l-(p<<2)|0)|0;if((w|0)<(v|0)){do if((j|0)<(v|0)){do if(!v)i=0;else{c[6747]=(c[6747]|0)+1;h=kb((l|3)+16|0)|0;if(!h){i=0;break}c[(h+4+15&-16)+-4>>2]=h;i=h+4+15&-16}while(0);if((w|0)<=0){if(!e){h=i;j=v;e=i;break}}else{h=0;do{c[i+(h<<2)>>2]=c[e+(h<<2)>>2];h=h+1|0}while((h|0)!=(w|0))}c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0);h=i;j=v;e=i}else h=t;while(0);hk(e+(w<<2)|0,0,l-(w<<2)|0)|0;k=h}else k=t;if((v|0)>0){hk(n|0,-1,l|0)|0;hk(k|0,-1,l|0)|0}if((p|0)>0){i=v+-1|0;h=0;do{H=c[g+(h<<3)>>2]|0;H=((10?H+~(H<<15)>>10:H+~(H<<15)|0)^H+~(H<<15))*9|0;H=(6?H>>6:H)^H;H=f+((((16?H+~(H<<11)>>16:H+~(H<<11)|0)^H+~(H<<11))&i)<<2)|0;c[e+(h<<2)>>2]=c[H>>2];c[H>>2]=h;h=h+1|0}while((h|0)!=(p|0));l=n;h=v;i=v}else{l=n;h=v;i=v}}else{k=t;h=p;i=w}n=s&v+-1}else{k=t;h=p;i=w}n=f+(n<<2)|0;c[e+(y<<2)>>2]=c[n>>2];c[n>>2]=y;n=v}Ia[c[(c[x>>2]|0)+60>>2]&127](x,b);s=c[a+8>>2]|0;p=h}h=z+1|0;if((h|0)>=(s|0))break;t=k;k=s;z=h;w=i;y=o;u=n}if(g|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}if(d|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}if(e|0){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0)}if(!f)return;c[6748]=(c[6748]|0)+1;uc(c[f+-4>>2]|0);return}function oc(d,e){d=d|0;e=e|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=ea;ea=ea+64|0;f[d+20>>2]=+g[e+32>>3];f[d+24>>2]=+g[e+40>>3];f[d+28>>2]=+g[e+48>>3];f[d+32>>2]=+g[e+56>>3];f[d+4>>2]=+g[e>>3];f[d+8>>2]=+g[e+8>>3];f[d+12>>2]=+g[e+16>>3];f[d+16>>2]=+g[e+24>>3];f[d+36>>2]=+g[e+64>>3];f[d+40>>2]=+g[e+72>>3];f[d+44>>2]=+g[e+80>>3];f[d+48>>2]=+g[e+88>>3];c[d+56>>2]=c[e+96>>2];a[d+60>>0]=(c[e+100>>2]|0)!=0&1;o=c[e+104>>2]|0;k=p;m=k+64|0;do{c[k>>2]=0;k=k+4|0}while((k|0)<(m|0));n=c[d+88>>2]|0;if((n|0)<(o|0)){if((c[d+92>>2]|0)<(o|0)){if(!o){i=n;j=0}else{c[6747]=(c[6747]|0)+1;h=kb(o<<6|19)|0;if(!h)h=0;else{c[(h+4+15&-16)+-4>>2]=h;h=h+4+15&-16}i=c[d+88>>2]|0;j=h}if((i|0)>0){h=0;do{k=j+(h<<6)|0;l=(c[d+96>>2]|0)+(h<<6)|0;m=k+64|0;do{c[k>>2]=c[l>>2];k=k+4|0;l=l+4|0}while((k|0)<(m|0));h=h+1|0}while((h|0)!=(i|0))}h=c[d+96>>2]|0;if(h|0){if(a[d+100>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[h+-4>>2]|0)}c[d+96>>2]=0}a[d+100>>0]=1;c[d+96>>2]=j;c[d+92>>2]=o;i=d+96|0}else i=d+96|0;h=n;do{k=(c[i>>2]|0)+(h<<6)|0;l=p;m=k+64|0;do{c[k>>2]=c[l>>2];k=k+4|0;l=l+4|0}while((k|0)<(m|0));h=h+1|0}while((h|0)!=(o|0))}c[d+88>>2]=o;if((o|0)>0){h=c[d+96>>2]|0;i=0;j=c[e+112>>2]|0;while(1){f[h+(i<<6)+16>>2]=+g[j+32>>3];f[h+(i<<6)+20>>2]=+g[j+40>>3];f[h+(i<<6)+24>>2]=+g[j+48>>3];f[h+(i<<6)+28>>2]=+g[j+56>>3];f[h+(i<<6)>>2]=+g[j>>3];f[h+(i<<6)+4>>2]=+g[j+8>>3];f[h+(i<<6)+8>>2]=+g[j+16>>3];f[h+(i<<6)+12>>2]=+g[j+24>>3];c[h+(i<<6)+32>>2]=c[j+64>>2];c[h+(i<<6)+36>>2]=c[j+68>>2];c[h+(i<<6)+40>>2]=c[j+72>>2];i=i+1|0;if((i|0)==(o|0))break;else j=j+80|0}}l=c[e+108>>2]|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;k=c[d+128>>2]|0;if((k|0)<(l|0)){if((c[d+132>>2]|0)<(l|0)){if(!l){i=k;j=0}else{c[6747]=(c[6747]|0)+1;h=kb((l<<4|3)+16|0)|0;if(!h)h=0;else{c[(h+4+15&-16)+-4>>2]=h;h=h+4+15&-16}i=c[d+128>>2]|0;j=h}if((i|0)>0){h=0;do{o=j+(h<<4)|0;n=(c[d+136>>2]|0)+(h<<4)|0;c[o>>2]=c[n>>2];c[o+4>>2]=c[n+4>>2];c[o+8>>2]=c[n+8>>2];c[o+12>>2]=c[n+12>>2];h=h+1|0}while((h|0)!=(i|0))}h=c[d+136>>2]|0;if(h|0){if(a[d+140>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[h+-4>>2]|0)}c[d+136>>2]=0}a[d+140>>0]=1;c[d+136>>2]=j;c[d+132>>2]=l;i=d+136|0}else i=d+136|0;h=k;do{o=(c[i>>2]|0)+(h<<4)|0;c[o>>2]=c[p>>2];c[o+4>>2]=c[p+4>>2];c[o+8>>2]=c[p+8>>2];c[o+12>>2]=c[p+12>>2];h=h+1|0}while((h|0)!=(l|0))}c[d+128>>2]=l;if((l|0)>0){h=c[d+136>>2]|0;i=0;j=c[e+116>>2]|0;while(1){c[h+(i<<4)+12>>2]=c[j+12>>2];b[h+(i<<4)+6>>1]=b[j+6>>1]|0;b[h+(i<<4)+8>>1]=b[j+8>>1]|0;b[h+(i<<4)+10>>1]=b[j+10>>1]|0;b[h+(i<<4)>>1]=b[j>>1]|0;b[h+(i<<4)+2>>1]=b[j+2>>1]|0;b[h+(i<<4)+4>>1]=b[j+4>>1]|0;i=i+1|0;if((i|0)==(l|0))break;else j=j+16|0}}c[d+144>>2]=c[e+120>>2];l=c[e+124>>2]|0;k=c[d+152>>2]|0;if((k|0)<(l|0)){if((c[d+156>>2]|0)<(l|0)){if(!l){i=k;j=0}else{c[6747]=(c[6747]|0)+1;h=kb(l<<5|19)|0;if(!h)h=0;else{c[(h+4+15&-16)+-4>>2]=h;h=h+4+15&-16}i=c[d+152>>2]|0;j=h}if((i|0)>0){h=0;do{o=j+(h<<5)|0;n=(c[d+160>>2]|0)+(h<<5)|0;c[o>>2]=c[n>>2];c[o+4>>2]=c[n+4>>2];c[o+8>>2]=c[n+8>>2];c[o+12>>2]=c[n+12>>2];c[o+16>>2]=c[n+16>>2];c[o+20>>2]=c[n+20>>2];c[o+24>>2]=c[n+24>>2];c[o+28>>2]=c[n+28>>2];h=h+1|0}while((h|0)!=(i|0))}h=c[d+160>>2]|0;if(h|0){if(a[d+164>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[h+-4>>2]|0)}c[d+160>>2]=0}a[d+164>>0]=1;c[d+160>>2]=j;c[d+156>>2]=l;i=d+160|0}else i=d+160|0;h=k;do{o=(c[i>>2]|0)+(h<<5)|0;c[o>>2]=c[p>>2];c[o+4>>2]=c[p+4>>2];c[o+8>>2]=c[p+8>>2];c[o+12>>2]=c[p+12>>2];c[o+16>>2]=c[p+16>>2];c[o+20>>2]=c[p+20>>2];c[o+24>>2]=c[p+24>>2];c[o+28>>2]=c[p+28>>2];h=h+1|0}while((h|0)!=(l|0))}c[d+152>>2]=l;if((l|0)<=0){ea=p;return}i=c[d+160>>2]|0;j=0;h=c[e+128>>2]|0;while(1){b[i+(j<<5)+6>>1]=b[h+14>>1]|0;b[i+(j<<5)+8>>1]=b[h+16>>1]|0;b[i+(j<<5)+10>>1]=b[h+18>>1]|0;b[i+(j<<5)>>1]=b[h+8>>1]|0;b[i+(j<<5)+2>>1]=b[h+10>>1]|0;b[i+(j<<5)+4>>1]=b[h+12>>1]|0;c[i+(j<<5)+12>>2]=c[h>>2];c[i+(j<<5)+16>>2]=c[h+4>>2];j=j+1|0;if((j|0)==(l|0))break;else h=h+20|0}ea=p;return}function pc(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=c[a+108>>2]|0;if(g|0)Ma[c[(c[g>>2]|0)+12>>2]&127](g,c[d+60>>2]|0,f);o=c[d+12>>2]|0;m=c[a+60>>2]|0;n=c[a+92>>2]|0;if(!(ra[c[(c[n>>2]|0)+56>>2]&127](n)|0)){n=c[a+92>>2]|0;Ma[c[(c[n>>2]|0)+16>>2]&127](n,m+((o&65535)<<6)|0,f)}n=e[a+56>>1]|0;g=c[a+60>>2]|0;b[g+54>>1]=(e[g+54>>1]|0)+65534;b[g+56>>1]=(e[g+56>>1]|0)+65534;b[g+58>>1]=(e[g+58>>1]|0)+65534;l=c[a+68>>2]|0;d=b[a+6>>1]|0;h=e[m+((o&65535)<<6)+54>>1]|0;b[l+(h<<2)>>1]=d;f=b[l+(h<<2)+6>>1]|0;if(!(f<<16>>16)){g=d;d=l}else{j=g+((e[l+(h<<2)+2>>1]|0)<<6)+54|0;h=l+(h<<2)|0;while(1){i=h;h=h+4|0;g=b[h>>1]|0;if((d&65535)<(g&65535))break;d=c[a+60>>2]|0;k=f&65535;g=(g&1)==0?d+(k<<6)+48|0:d+(k<<6)+54|0;b[g>>1]=(b[g>>1]|0)+-1<<16>>16;b[j>>1]=(b[j>>1]|0)+1<<16>>16;g=e[i>>1]|e[i+2>>1]<<16;k=e[h>>1]|e[h+2>>1]<<16;b[i>>1]=k;b[i+2>>1]=k>>>16;b[h>>1]=g;b[h+2>>1]=g>>>16;f=b[i+10>>1]|0;if(!(f<<16>>16))break;else d=g&65535}g=b[a+6>>1]|0;d=c[a+68>>2]|0}f=e[m+((o&65535)<<6)+48>>1]|0;b[l+(f<<2)>>1]=g;j=d+(f<<2)|0;h=b[j+6>>1]|0;if(h<<16>>16){k=(c[a+60>>2]|0)+((e[d+(f<<2)+2>>1]|0)<<6)+48|0;i=b[j>>1]|0;d=j;while(1){f=d;d=d+4|0;g=b[d>>1]|0;if((i&65535)<(g&65535))break;i=c[a+60>>2]|0;j=h&65535;g=(g&1)==0?i+(j<<6)+48|0:i+(j<<6)+54|0;b[g>>1]=(b[g>>1]|0)+-1<<16>>16;b[k>>1]=(b[k>>1]|0)+1<<16>>16;g=e[f>>1]|e[f+2>>1]<<16;j=e[d>>1]|e[d+2>>1]<<16;b[f>>1]=j;b[f+2>>1]=j>>>16;b[d>>1]=g;b[d+2>>1]=g>>>16;h=b[f+10>>1]|0;if(!(h<<16>>16))break;else i=g&65535}g=b[a+6>>1]|0}b[l+((n<<1)+-1<<2)+2>>1]=0;b[l+((n<<1)+-1<<2)>>1]=g;l=c[a+72>>2]|0;f=e[m+((o&65535)<<6)+56>>1]|0;b[l+(f<<2)>>1]=g;d=b[l+(f<<2)+6>>1]|0;if(!(d<<16>>16))d=l;else{j=(c[a+60>>2]|0)+((e[l+(f<<2)+2>>1]|0)<<6)+56|0;h=l+(f<<2)|0;while(1){i=h;h=h+4|0;f=b[h>>1]|0;if((g&65535)<(f&65535))break;k=c[a+60>>2]|0;g=d&65535;g=(f&1)==0?k+(g<<6)+50|0:k+(g<<6)+56|0;b[g>>1]=(b[g>>1]|0)+-1<<16>>16;b[j>>1]=(b[j>>1]|0)+1<<16>>16;g=e[i>>1]|e[i+2>>1]<<16;k=e[h>>1]|e[h+2>>1]<<16;b[i>>1]=k;b[i+2>>1]=k>>>16;b[h>>1]=g;b[h+2>>1]=g>>>16;d=b[i+10>>1]|0;if(!(d<<16>>16))break;else g=g&65535}g=b[a+6>>1]|0;d=c[a+72>>2]|0}f=e[m+((o&65535)<<6)+50>>1]|0;b[l+(f<<2)>>1]=g;j=d+(f<<2)|0;h=b[j+6>>1]|0;if(h<<16>>16){k=(c[a+60>>2]|0)+((e[d+(f<<2)+2>>1]|0)<<6)+50|0;i=b[j>>1]|0;d=j;while(1){f=d;d=d+4|0;g=b[d>>1]|0;if((i&65535)<(g&65535))break;i=c[a+60>>2]|0;j=h&65535;g=(g&1)==0?i+(j<<6)+50|0:i+(j<<6)+56|0;b[g>>1]=(b[g>>1]|0)+-1<<16>>16;b[k>>1]=(b[k>>1]|0)+1<<16>>16;g=e[f>>1]|e[f+2>>1]<<16;j=e[d>>1]|e[d+2>>1]<<16;b[f>>1]=j;b[f+2>>1]=j>>>16;b[d>>1]=g;b[d+2>>1]=g>>>16;h=b[f+10>>1]|0;if(!(h<<16>>16))break;else i=g&65535}g=b[a+6>>1]|0}b[l+((n<<1)+-1<<2)+2>>1]=0;b[l+((n<<1)+-1<<2)>>1]=g;l=c[a+76>>2]|0;f=e[m+((o&65535)<<6)+58>>1]|0;b[l+(f<<2)>>1]=g;d=b[l+(f<<2)+6>>1]|0;if(!(d<<16>>16)){d=g;f=l}else{j=(c[a+60>>2]|0)+((e[l+(f<<2)+2>>1]|0)<<6)+58|0;h=l+(f<<2)|0;while(1){i=h;h=h+4|0;f=b[h>>1]|0;if((g&65535)<(f&65535))break;k=c[a+60>>2]|0;g=d&65535;g=(f&1)==0?k+(g<<6)+52|0:k+(g<<6)+58|0;b[g>>1]=(b[g>>1]|0)+-1<<16>>16;b[j>>1]=(b[j>>1]|0)+1<<16>>16;g=e[i>>1]|e[i+2>>1]<<16;k=e[h>>1]|e[h+2>>1]<<16;b[i>>1]=k;b[i+2>>1]=k>>>16;b[h>>1]=g;b[h+2>>1]=g>>>16;d=b[i+10>>1]|0;if(!(d<<16>>16))break;else g=g&65535}d=b[a+6>>1]|0;f=c[a+76>>2]|0}g=e[m+((o&65535)<<6)+52>>1]|0;b[l+(g<<2)>>1]=d;j=f+(g<<2)|0;h=b[j+6>>1]|0;if(!(h<<16>>16)){k=d;m=l+((n<<1)+-1<<2)+2|0;b[m>>1]=0;m=l+((n<<1)+-1<<2)|0;b[m>>1]=k;m=c[a+60>>2]|0;n=a+64|0;l=b[n>>1]|0;m=m+((o&65535)<<6)+48|0;b[m>>1]=l;b[n>>1]=o;o=b[a+56>>1]|0;o=o+-1<<16>>16;b[a+56>>1]=o;return}k=(c[a+60>>2]|0)+((e[f+(g<<2)+2>>1]|0)<<6)+52|0;i=b[j>>1]|0;d=j;while(1){f=d;d=d+4|0;g=b[d>>1]|0;if((i&65535)<(g&65535))break;j=c[a+60>>2]|0;m=h&65535;g=(g&1)==0?j+(m<<6)+52|0:j+(m<<6)+58|0;b[g>>1]=(b[g>>1]|0)+-1<<16>>16;b[k>>1]=(b[k>>1]|0)+1<<16>>16;g=e[f>>1]|e[f+2>>1]<<16;m=e[d>>1]|e[d+2>>1]<<16;b[f>>1]=m;b[f+2>>1]=m>>>16;b[d>>1]=g;b[d+2>>1]=g>>>16;h=b[f+10>>1]|0;if(!(h<<16>>16))break;else i=g&65535}k=b[a+6>>1]|0;m=l+((n<<1)+-1<<2)+2|0;b[m>>1]=0;m=l+((n<<1)+-1<<2)|0;b[m>>1]=k;m=c[a+60>>2]|0;n=a+64|0;l=b[n>>1]|0;m=m+((o&65535)<<6)+48|0;b[m>>1]=l;b[n>>1]=o;o=b[a+56>>1]|0;o=o+-1<<16>>16;b[a+56>>1]=o;return}function qc(b,d,e){b=b|0;d=d|0;e=e|0;var g=0,h=0.0,i=0,j=0,k=0.0,l=0.0,m=0.0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0,X=0,Y=0;X=c[d+36>>2]|0;W=c[e+36>>2]|0;K=+f[X+8>>2];M=+f[X+12>>2];L=+f[X+16>>2];e=c[W+8>>2]|0;T=+f[e+8>>2];U=+f[e+12>>2];V=+f[e+16>>2];g=c[W+12>>2]|0;P=+f[g+8>>2];N=+f[g+12>>2];O=+f[g+16>>2];d=c[W+16>>2]|0;Q=+f[d+8>>2];R=+f[d+12>>2];S=+f[d+16>>2];x=P-K-(T-K);E=N-M-(U-M);z=O-L-(V-L);w=E*(S-L-(V-L))-z*(R-M-(U-M));D=z*(Q-K-(T-K))-x*(S-L-(V-L));B=x*(R-M-(U-M))-E*(Q-K-(T-K));do if(B*B+(w*w+D*D)>1.1920928955078125e-07?(H=1.0/+s(+(B*B+(w*w+D*D))),F=(V-L)*(B*H)+((T-K)*(w*H)+(U-M)*(D*H)),F*F<3402823466385288598117041.0e14):0){q=T-K-w*H*F;v=U-M-D*H*F;t=V-L-B*H*F;h=P-K-w*H*F;u=N-M-D*H*F;r=O-L-B*H*F;if((B*(u*q-v*h)+(w*(v*r-t*u)+D*(t*h-r*q))>0.0?(y=Q-K-w*H*F,C=R-M-D*H*F,A=S-L-B*H*F,B*(C*h-u*y)+(w*(u*A-r*C)+D*(r*y-A*h))>0.0):0)?B*(v*y-C*q)+(w*(C*t-A*v)+D*(A*q-t*y))>0.0:0){p=F*F;o=w*H*F;m=B*H*F;l=D*H*F;break}if(x*x+E*E+z*z>1.1920928955078125e-07?(G=-((T-K)*x+(U-M)*E+(V-L)*z)/(x*x+E*E+z*z),G=G<0.0?0.0:G>1.0?1.0:G,p=(V-L+z*G)*(V-L+z*G)+((T-K+x*G)*(T-K+x*G)+(U-M+E*G)*(U-M+E*G)),p<3402823466385288598117041.0e14):0){r=T-K+x*G;t=V-L+z*G;q=U-M+E*G}else{p=3402823466385288598117041.0e14;r=0.0;t=0.0;q=0.0}h=(Q-K-(P-K))*(Q-K-(P-K))+(R-M-(N-M))*(R-M-(N-M))+(S-L-(O-L))*(S-L-(O-L));if(h>1.1920928955078125e-07?(m=-((P-K)*(Q-K-(P-K))+(N-M)*(R-M-(N-M))+(O-L)*(S-L-(O-L)))/h,m=m<0.0?0.0:m>1.0?1.0:m,o=P-K+(Q-K-(P-K))*m,k=N-M+(R-M-(N-M))*m,m=O-L+(S-L-(O-L))*m,m*m+(o*o+k*k)1.1920928955078125e-07?(J=-((Q-K)*(T-K-(Q-K))+(R-M)*(U-M-(R-M))+(S-L)*(V-L-(S-L)))/h,J=J<0.0?0.0:J>1.0?1.0:J,I=Q-K+(T-K-(Q-K))*J,l=R-M+(U-M-(R-M))*J,J=S-L+(V-L-(S-L))*J,J*J+(I*I+l*l)>2];J=M-+f[X+28>>2];v=L-+f[X+32>>2];v=+f[b+12>>2]+ +s(+(I*I+J*J+v*v))*2.0;if(!(p>2];V=+f[e+88>>2];h=+f[g+88>>2];U=+f[d+88>>2];h=!(V<=0.0)&!(h<=0.0)&!(U<=0.0)?U*(u*(1.0/(r+(u+t))))+(V*(t*(1.0/(r+(u+t))))+h*(r*(1.0/(r+(u+t))))):0.0;if(!(k+h>0.0))return;V=1.0/-+s(+p);q=o*V;p=V*l;o=V*m;n=c[b+4>>2]|0;d=c[b+8>>2]|0;m=+f[n+316>>2];l=+f[d+316>>2];l=m>l?m:l;m=k/(k+h)*+f[n+332>>2];h=h/(k+h)*+f[d+332>>2];d=c[n+832>>2]|0;if((d|0)==(c[n+836>>2]|0)?(Y=(d|0)==0?1:d<<1,(d|0)<(Y|0)):0){if(!Y)e=0;else{c[6747]=(c[6747]|0)+1;d=kb((Y*56|3)+16|0)|0;if(!d)e=0;else{c[(d+4+15&-16)+-4>>2]=d;e=d+4+15&-16}d=c[n+832>>2]|0}if((d|0)>0){g=0;do{b=e+(g*56|0)|0;i=(c[n+840>>2]|0)+(g*56|0)|0;j=b+56|0;do{c[b>>2]=c[i>>2];b=b+4|0;i=i+4|0}while((b|0)<(j|0));g=g+1|0}while((g|0)!=(d|0))}d=c[n+840>>2]|0;if(d|0){if(a[n+844>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[n+840>>2]=0}a[n+844>>0]=1;c[n+840>>2]=e;c[n+836>>2]=Y;d=c[n+832>>2]|0}Y=c[n+840>>2]|0;c[Y+(d*56|0)>>2]=X;c[Y+(d*56|0)+4>>2]=W;f[Y+(d*56|0)+8>>2]=t*(1.0/(r+(u+t)));f[Y+(d*56|0)+12>>2]=r*(1.0/(r+(u+t)));f[Y+(d*56|0)+16>>2]=u*(1.0/(r+(u+t)));f[Y+(d*56|0)+20>>2]=0.0;f[Y+(d*56|0)+24>>2]=q;f[Y+(d*56|0)+28>>2]=p;f[Y+(d*56|0)+32>>2]=o;f[Y+(d*56|0)+36>>2]=0.0;f[Y+(d*56|0)+40>>2]=v;f[Y+(d*56|0)+44>>2]=l;f[Y+(d*56|0)+48>>2]=m;f[Y+(d*56|0)+52>>2]=h;c[n+832>>2]=(c[n+832>>2]|0)+1;return}function rc(b,d){b=b|0;d=+d;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;q=ea;ea=ea+1136|0;e=c[b+44>>2]|0;e=ra[c[(c[e>>2]|0)+84>>2]&127](e)|0;if((e|0)>0){g=0;h=42;while(1){o=c[b+44>>2]|0;Ma[c[(c[o>>2]|0)+88>>2]&127](o,g,q);Sd();o=22608+(h<<4)|0;c[o>>2]=c[q>>2];c[o+4>>2]=c[q+4>>2];c[o+8>>2]=c[q+8>>2];c[o+12>>2]=c[q+12>>2];g=g+1|0;if((g|0)==(e|0))break;else h=h+1|0}g=e+42|0}else g=42;e=0;do{o=c[b+44>>2]|0;n=c[(c[o>>2]|0)+64>>2]|0;Sd();Ma[n&127](q+1104|0,o,22608+(e<<4)|0);o=q+(e<<4)|0;c[o>>2]=c[q+1104>>2];c[o+4>>2]=c[q+1104+4>>2];c[o+8>>2]=c[q+1104+8>>2];c[o+12>>2]=c[q+1104+12>>2];e=e+1|0}while(e>>>0>>0);f[q+1104+16>>2]=1.0000000474974513e-03;c[q+1104+20>>2]=4096;c[q+1104+24>>2]=4096;c[q+1104>>2]=1;c[q+1104+4>>2]=g;c[q+1104+8>>2]=q;c[q+1104+12>>2]=16;a[q+1064+16>>0]=1;c[q+1064+12>>2]=0;c[q+1064+4>>2]=0;c[q+1064+8>>2]=0;a[q+1064+36>>0]=1;c[q+1064+32>>2]=0;c[q+1064+24>>2]=0;c[q+1064+28>>2]=0;a[q+1008+24>>0]=1;o=q+1008+20|0;c[o>>2]=0;c[q+1008+12>>2]=0;c[q+1008+16>>2]=0;n=q+1008+52|0;a[n>>0]=1;m=q+1008+48|0;c[m>>2]=0;c[q+1008+40>>2]=0;c[q+1008+44>>2]=0;a[q+1008>>0]=1;l=q+1008+4|0;c[l>>2]=0;c[q+1008+28>>2]=0;c[q+1008+32>>2]=0;if((ab(q+1064|0,q+1104|0,q+1008|0)|0)!=1){j=c[l>>2]|0;i=c[b+4>>2]|0;if((i|0)<(j|0)){if((c[b+8>>2]|0)<(j|0)){if(!j){g=i;h=0}else{c[6747]=(c[6747]|0)+1;e=kb((j<<4|3)+16|0)|0;if(!e)e=0;else{c[(e+4+15&-16)+-4>>2]=e;e=e+4+15&-16}g=c[b+4>>2]|0;h=e}if((g|0)>0){e=0;do{k=h+(e<<4)|0;r=(c[b+12>>2]|0)+(e<<4)|0;c[k>>2]=c[r>>2];c[k+4>>2]=c[r+4>>2];c[k+8>>2]=c[r+8>>2];c[k+12>>2]=c[r+12>>2];e=e+1|0}while((e|0)!=(g|0))}e=c[b+12>>2]|0;if(e|0){if(a[b+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0)}c[b+12>>2]=0}a[b+16>>0]=1;c[b+12>>2]=h;c[b+8>>2]=j;g=b+12|0}else g=b+12|0;e=i;do{r=(c[g>>2]|0)+(e<<4)|0;c[r>>2]=c[q+992>>2];c[r+4>>2]=c[q+992+4>>2];c[r+8>>2]=c[q+992+8>>2];c[r+12>>2]=c[q+992+12>>2];e=e+1|0}while((e|0)!=(j|0));e=c[l>>2]|0}else e=j;c[b+4>>2]=j;if((e|0)>0){e=c[o>>2]|0;g=0;do{k=e+(g<<4)|0;r=(c[b+12>>2]|0)+(g<<4)|0;c[r>>2]=c[k>>2];c[r+4>>2]=c[k+4>>2];c[r+8>>2]=c[k+8>>2];c[r+12>>2]=c[k+12>>2];g=g+1|0}while((g|0)<(c[l>>2]|0))}k=c[q+1008+32>>2]|0;c[b+40>>2]=k;j=c[b+24>>2]|0;if((k|0)>(j|0)){do if((c[b+28>>2]|0)<(k|0)){if(!k){i=j;e=0}else{c[6747]=(c[6747]|0)+1;e=kb((k<<2|3)+16|0)|0;if(!e)e=0;else{c[(e+4+15&-16)+-4>>2]=e;e=e+4+15&-16}i=c[b+24>>2]|0}g=c[b+32>>2]|0;if((i|0)<=0){if(!g){a[b+36>>0]=1;c[b+32>>2]=e;c[b+28>>2]=k;break}}else{h=0;do{c[e+(h<<2)>>2]=c[g+(h<<2)>>2];h=h+1|0}while((h|0)!=(i|0))}if(a[b+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}a[b+36>>0]=1;c[b+32>>2]=e;c[b+28>>2]=k}else e=c[b+32>>2]|0;while(0);hk(e+(j<<2)|0,0,k-j<<2|0)|0;e=c[b+40>>2]|0}else e=k;c[b+24>>2]=k;if((e|0)>0){e=c[m>>2]|0;g=c[b+32>>2]|0;h=0;do{c[g+(h<<2)>>2]=c[e+(h<<2)>>2];h=h+1|0}while((h|0)<(c[b+40>>2]|0))}if(c[q+1008+12>>2]|0){c[l>>2]=0;e=c[o>>2]|0;if(e|0){if(a[q+1008+24>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0)}c[o>>2]=0}a[q+1008+24>>0]=1;c[o>>2]=0;c[q+1008+12>>2]=0;c[q+1008+16>>2]=0}if(!(c[q+1008+40>>2]|0)){g=1;p=60}else{c[q+1008+32>>2]=0;e=c[m>>2]|0;if(e|0){if(a[n>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0)}c[m>>2]=0}a[n>>0]=1;c[m>>2]=0;c[q+1008+40>>2]=0;c[q+1008+44>>2]=0;g=1}}else{g=0;p=60}if((p|0)==60){e=c[m>>2]|0;if(e){if(a[n>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0)}c[m>>2]=0}}a[n>>0]=1;c[m>>2]=0;c[q+1008+40>>2]=0;c[q+1008+44>>2]=0;e=c[o>>2]|0;if(e|0){if(a[q+1008+24>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0)}c[o>>2]=0}e=c[q+1064+32>>2]|0;if(e|0){if(a[q+1064+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0)}c[q+1064+32>>2]=0}a[q+1064+36>>0]=1;c[q+1064+32>>2]=0;c[q+1064+24>>2]=0;c[q+1064+28>>2]=0;e=c[q+1064+12>>2]|0;if(!e){ea=q;return g|0}if(a[q+1064+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0)}c[q+1064+12>>2]=0;ea=q;return g|0}function sc(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=ea;ea=ea+64|0;c[d+20>>2]=c[e+16>>2];c[d+24>>2]=c[e+20>>2];c[d+28>>2]=c[e+24>>2];c[d+32>>2]=c[e+28>>2];c[d+4>>2]=c[e>>2];c[d+8>>2]=c[e+4>>2];c[d+12>>2]=c[e+8>>2];c[d+16>>2]=c[e+12>>2];c[d+36>>2]=c[e+32>>2];c[d+40>>2]=c[e+36>>2];c[d+44>>2]=c[e+40>>2];c[d+48>>2]=c[e+44>>2];c[d+56>>2]=c[e+48>>2];a[d+60>>0]=(c[e+52>>2]|0)!=0&1;m=c[e+56>>2]|0;i=n;k=i+64|0;do{c[i>>2]=0;i=i+4|0}while((i|0)<(k|0));l=c[d+88>>2]|0;if((l|0)<(m|0)){if((c[d+92>>2]|0)<(m|0)){if(!m){g=l;h=0}else{c[6747]=(c[6747]|0)+1;f=kb(m<<6|19)|0;if(!f)f=0;else{c[(f+4+15&-16)+-4>>2]=f;f=f+4+15&-16}g=c[d+88>>2]|0;h=f}if((g|0)>0){f=0;do{i=h+(f<<6)|0;j=(c[d+96>>2]|0)+(f<<6)|0;k=i+64|0;do{c[i>>2]=c[j>>2];i=i+4|0;j=j+4|0}while((i|0)<(k|0));f=f+1|0}while((f|0)!=(g|0))}f=c[d+96>>2]|0;if(f|0){if(a[d+100>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[f+-4>>2]|0)}c[d+96>>2]=0}a[d+100>>0]=1;c[d+96>>2]=h;c[d+92>>2]=m;g=d+96|0}else g=d+96|0;f=l;do{i=(c[g>>2]|0)+(f<<6)|0;j=n;k=i+64|0;do{c[i>>2]=c[j>>2];i=i+4|0;j=j+4|0}while((i|0)<(k|0));f=f+1|0}while((f|0)!=(m|0))}c[d+88>>2]=m;if((m|0)>0){f=c[d+96>>2]|0;g=0;h=c[e+64>>2]|0;while(1){c[f+(g<<6)+16>>2]=c[h+16>>2];c[f+(g<<6)+20>>2]=c[h+20>>2];c[f+(g<<6)+24>>2]=c[h+24>>2];c[f+(g<<6)+28>>2]=c[h+28>>2];c[f+(g<<6)>>2]=c[h>>2];c[f+(g<<6)+4>>2]=c[h+4>>2];c[f+(g<<6)+8>>2]=c[h+8>>2];c[f+(g<<6)+12>>2]=c[h+12>>2];c[f+(g<<6)+32>>2]=c[h+32>>2];c[f+(g<<6)+36>>2]=c[h+36>>2];c[f+(g<<6)+40>>2]=c[h+40>>2];g=g+1|0;if((g|0)==(m|0))break;else h=h+48|0}}j=c[e+60>>2]|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;i=c[d+128>>2]|0;if((i|0)<(j|0)){if((c[d+132>>2]|0)<(j|0)){if(!j){g=i;h=0}else{c[6747]=(c[6747]|0)+1;f=kb((j<<4|3)+16|0)|0;if(!f)f=0;else{c[(f+4+15&-16)+-4>>2]=f;f=f+4+15&-16}g=c[d+128>>2]|0;h=f}if((g|0)>0){f=0;do{m=h+(f<<4)|0;l=(c[d+136>>2]|0)+(f<<4)|0;c[m>>2]=c[l>>2];c[m+4>>2]=c[l+4>>2];c[m+8>>2]=c[l+8>>2];c[m+12>>2]=c[l+12>>2];f=f+1|0}while((f|0)!=(g|0))}f=c[d+136>>2]|0;if(f|0){if(a[d+140>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[f+-4>>2]|0)}c[d+136>>2]=0}a[d+140>>0]=1;c[d+136>>2]=h;c[d+132>>2]=j;g=d+136|0}else g=d+136|0;f=i;do{m=(c[g>>2]|0)+(f<<4)|0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];f=f+1|0}while((f|0)!=(j|0))}c[d+128>>2]=j;if((j|0)>0){f=c[d+136>>2]|0;g=0;h=c[e+68>>2]|0;while(1){c[f+(g<<4)+12>>2]=c[h+12>>2];b[f+(g<<4)+6>>1]=b[h+6>>1]|0;b[f+(g<<4)+8>>1]=b[h+8>>1]|0;b[f+(g<<4)+10>>1]=b[h+10>>1]|0;b[f+(g<<4)>>1]=b[h>>1]|0;b[f+(g<<4)+2>>1]=b[h+2>>1]|0;b[f+(g<<4)+4>>1]=b[h+4>>1]|0;g=g+1|0;if((g|0)==(j|0))break;else h=h+16|0}}c[d+144>>2]=c[e+76>>2];j=c[e+80>>2]|0;i=c[d+152>>2]|0;if((i|0)<(j|0)){if((c[d+156>>2]|0)<(j|0)){if(!j){g=i;h=0}else{c[6747]=(c[6747]|0)+1;f=kb(j<<5|19)|0;if(!f)f=0;else{c[(f+4+15&-16)+-4>>2]=f;f=f+4+15&-16}g=c[d+152>>2]|0;h=f}if((g|0)>0){f=0;do{m=h+(f<<5)|0;l=(c[d+160>>2]|0)+(f<<5)|0;c[m>>2]=c[l>>2];c[m+4>>2]=c[l+4>>2];c[m+8>>2]=c[l+8>>2];c[m+12>>2]=c[l+12>>2];c[m+16>>2]=c[l+16>>2];c[m+20>>2]=c[l+20>>2];c[m+24>>2]=c[l+24>>2];c[m+28>>2]=c[l+28>>2];f=f+1|0}while((f|0)!=(g|0))}f=c[d+160>>2]|0;if(f|0){if(a[d+164>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[f+-4>>2]|0)}c[d+160>>2]=0}a[d+164>>0]=1;c[d+160>>2]=h;c[d+156>>2]=j;g=d+160|0}else g=d+160|0;f=i;do{m=(c[g>>2]|0)+(f<<5)|0;c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[m+12>>2]=c[n+12>>2];c[m+16>>2]=c[n+16>>2];c[m+20>>2]=c[n+20>>2];c[m+24>>2]=c[n+24>>2];c[m+28>>2]=c[n+28>>2];f=f+1|0}while((f|0)!=(j|0))}c[d+152>>2]=j;if((j|0)<=0){ea=n;return}g=c[d+160>>2]|0;h=0;f=c[e+72>>2]|0;while(1){b[g+(h<<5)+6>>1]=b[f+14>>1]|0;b[g+(h<<5)+8>>1]=b[f+16>>1]|0;b[g+(h<<5)+10>>1]=b[f+18>>1]|0;b[g+(h<<5)>>1]=b[f+8>>1]|0;b[g+(h<<5)+2>>1]=b[f+10>>1]|0;b[g+(h<<5)+4>>1]=b[f+12>>1]|0;c[g+(h<<5)+12>>2]=c[f>>2];c[g+(h<<5)+16>>2]=c[f+4>>2];h=h+1|0;if((h|0)==(j|0))break;else f=f+20|0}ea=n;return}function tc(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;c[b>>2]=4244;d=c[b+192>>2]|0;if(d|0)Ca[c[(c[d>>2]|0)+4>>2]&511](d);a:do if((c[b+1112>>2]|0)>0)do{h=c[c[b+1120>>2]>>2]|0;d=c[h+348>>2]|0;if(d|0){jg(b+1048|0,d)|0;e=c[b+1052>>2]|0;if(e|0){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0)}c[b+1052>>2]=d;c[b+1060>>2]=(c[b+1060>>2]|0)+-1}d=c[h+52>>2]|0;if(d|0){if(a[h+56>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[h+52>>2]=0}a[h+56>>0]=1;c[h+52>>2]=0;c[h+44>>2]=0;c[h+48>>2]=0;d=c[h+32>>2]|0;if(d|0){if(a[h+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[h+32>>2]=0}a[h+36>>0]=1;c[h+32>>2]=0;c[h+24>>2]=0;c[h+28>>2]=0;d=c[h+12>>2]|0;if(d|0){if(a[h+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[h+12>>2]=0}a[h+16>>0]=1;c[h+12>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[6748]=(c[6748]|0)+1;uc(c[h+-4>>2]|0);d=c[b+1112>>2]|0;if((d|0)<=0)break a;g=c[b+1120>>2]|0;e=0;do{f=g+(e<<2)|0;if((c[f>>2]|0)==(h|0)){i=25;break}e=e+1|0}while((e|0)<(d|0));if((i|0)==25){i=0;if((e|0)<(d|0)){c[f>>2]=c[g+(d+-1<<2)>>2];c[(c[b+1120>>2]|0)+(d+-1<<2)>>2]=h;c[b+1112>>2]=d+-1;d=d+-1|0}}}while((d|0)>0);while(0);d=c[b+872>>2]|0;if((d|0)>0){f=0;do{e=c[(c[b+880>>2]|0)+(f<<2)>>2]|0;if(e){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0);d=c[b+872>>2]|0}f=f+1|0}while((f|0)<(d|0))}d=c[b+852>>2]|0;if((d|0)>0){f=0;do{e=c[(c[b+860>>2]|0)+(f<<2)>>2]|0;if(e){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0);d=c[b+852>>2]|0}f=f+1|0}while((f|0)<(d|0))}d=c[b+1244>>2]|0;if(d|0){if(a[b+1248>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+1244>>2]=0}a[b+1248>>0]=1;c[b+1244>>2]=0;c[b+1236>>2]=0;c[b+1240>>2]=0;d=c[b+1140>>2]|0;if(d|0){if(a[b+1144>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+1140>>2]=0}a[b+1144>>0]=1;c[b+1140>>2]=0;c[b+1132>>2]=0;c[b+1136>>2]=0;d=c[b+1120>>2]|0;if(d|0){if(a[b+1124>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+1120>>2]=0}a[b+1124>>0]=1;c[b+1120>>2]=0;c[b+1112>>2]=0;c[b+1116>>2]=0;th(b+1048|0);th(b+988|0);th(b+928|0);d=c[b+880>>2]|0;if(d|0){if(a[b+884>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+880>>2]=0}a[b+884>>0]=1;c[b+880>>2]=0;c[b+872>>2]=0;c[b+876>>2]=0;d=c[b+860>>2]|0;if(d|0){if(a[b+864>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+860>>2]=0}a[b+864>>0]=1;c[b+860>>2]=0;c[b+852>>2]=0;c[b+856>>2]=0;d=c[b+840>>2]|0;if(d|0){if(a[b+844>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+840>>2]=0}a[b+844>>0]=1;c[b+840>>2]=0;c[b+832>>2]=0;c[b+836>>2]=0;d=c[b+820>>2]|0;if(d|0){if(a[b+824>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+820>>2]=0}a[b+824>>0]=1;c[b+820>>2]=0;c[b+812>>2]=0;c[b+816>>2]=0;d=c[b+800>>2]|0;if(d|0){if(a[b+804>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+800>>2]=0}a[b+804>>0]=1;c[b+800>>2]=0;c[b+792>>2]=0;c[b+796>>2]=0;d=c[b+780>>2]|0;if(d|0){if(a[b+784>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+780>>2]=0}a[b+784>>0]=1;c[b+780>>2]=0;c[b+772>>2]=0;c[b+776>>2]=0;d=c[b+760>>2]|0;if(d|0){if(a[b+764>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+760>>2]=0}a[b+764>>0]=1;c[b+760>>2]=0;c[b+752>>2]=0;c[b+756>>2]=0;d=c[b+740>>2]|0;if(d|0){if(a[b+744>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+740>>2]=0}a[b+744>>0]=1;c[b+740>>2]=0;c[b+732>>2]=0;c[b+736>>2]=0;d=c[b+720>>2]|0;if(d|0){if(a[b+724>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+720>>2]=0}a[b+724>>0]=1;c[b+720>>2]=0;c[b+712>>2]=0;c[b+716>>2]=0;d=c[b+700>>2]|0;if(d|0){if(a[b+704>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+700>>2]=0}a[b+704>>0]=1;c[b+700>>2]=0;c[b+692>>2]=0;c[b+696>>2]=0;d=c[b+512>>2]|0;if(d|0){if(a[b+516>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+512>>2]=0}a[b+516>>0]=1;c[b+512>>2]=0;c[b+504>>2]=0;c[b+508>>2]=0;d=c[b+492>>2]|0;if(d|0){if(a[b+496>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+492>>2]=0}a[b+496>>0]=1;c[b+492>>2]=0;c[b+484>>2]=0;c[b+488>>2]=0;Eu(b+288|0);d=c[b+276>>2]|0;if(!d){a[b+280>>0]=1;c[b+276>>2]=0;c[b+268>>2]=0;i=b+272|0;c[i>>2]=0;c[b>>2]=6120;return}if(a[b+280>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+276>>2]=0;a[b+280>>0]=1;c[b+276>>2]=0;c[b+268>>2]=0;i=b+272|0;c[i>>2]=0;c[b>>2]=6120;return}function uc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if(!a)return;b=c[6769]|0;d=c[a+-4>>2]|0;k=a+-8+(d&-8)|0;do if(!(d&1)){e=c[a+-8>>2]|0;if(!(d&3))return;g=a+-8+(0-e)|0;h=e+(d&-8)|0;if(g>>>0>>0)return;if((c[6770]|0)==(g|0)){a=c[k+4>>2]|0;if((a&3|0)!=3){i=g;j=g;a=h;break}c[6767]=h;c[k+4>>2]=a&-2;c[g+4>>2]=h|1;c[g+h>>2]=h;return}d=3?e>>>3:e;if(e>>>0<256){a=c[g+8>>2]|0;b=c[g+12>>2]|0;if((b|0)==(a|0)){c[6765]=c[6765]&~(1<>2]=b;c[b+8>>2]=a;i=g;j=g;a=h;break}}f=c[g+24>>2]|0;a=c[g+12>>2]|0;do if((a|0)==(g|0)){a=c[g+16+4>>2]|0;if(!a){a=c[g+16>>2]|0;if(!a){a=0;break}else b=g+16|0}else b=g+16+4|0;while(1){e=a+20|0;d=c[e>>2]|0;if(!d){e=a+16|0;d=c[e>>2]|0;if(!d)break;else{a=d;b=e}}else{a=d;b=e}}c[b>>2]=0}else{j=c[g+8>>2]|0;c[j+12>>2]=a;c[a+8>>2]=j}while(0);if(f){b=c[g+28>>2]|0;if((c[27364+(b<<2)>>2]|0)==(g|0)){c[27364+(b<<2)>>2]=a;if(!a){c[6766]=c[6766]&~(1<>2]|0)==(g|0)?f+16|0:f+20|0)>>2]=a;if(!a){i=g;j=g;a=h;break}}c[a+24>>2]=f;b=c[g+16>>2]|0;if(b|0){c[a+16>>2]=b;c[b+24>>2]=a}b=c[g+16+4>>2]|0;if(b){c[a+20>>2]=b;c[b+24>>2]=a;i=g;j=g;a=h}else{i=g;j=g;a=h}}else{i=g;j=g;a=h}}else{i=a+-8|0;j=a+-8|0;a=d&-8}while(0);if(i>>>0>=k>>>0)return;b=c[k+4>>2]|0;if(!(b&1))return;if(!(b&2)){if((c[6771]|0)==(k|0)){k=(c[6768]|0)+a|0;c[6768]=k;c[6771]=j;c[j+4>>2]=k|1;if((j|0)!=(c[6770]|0))return;c[6770]=0;c[6767]=0;return}if((c[6770]|0)==(k|0)){k=(c[6767]|0)+a|0;c[6767]=k;c[6770]=i;c[j+4>>2]=k|1;c[i+k>>2]=k;return}f=(b&-8)+a|0;d=3?b>>>3:b;do if(b>>>0<256){b=c[k+8>>2]|0;a=c[k+12>>2]|0;if((a|0)==(b|0)){c[6765]=c[6765]&~(1<>2]=a;c[a+8>>2]=b;break}}else{g=c[k+24>>2]|0;a=c[k+12>>2]|0;do if((a|0)==(k|0)){a=c[k+16+4>>2]|0;if(!a){a=c[k+16>>2]|0;if(!a){b=0;break}else b=k+16|0}else b=k+16+4|0;while(1){e=a+20|0;d=c[e>>2]|0;if(!d){e=a+16|0;d=c[e>>2]|0;if(!d)break;else{a=d;b=e}}else{a=d;b=e}}c[b>>2]=0;b=a}else{b=c[k+8>>2]|0;c[b+12>>2]=a;c[a+8>>2]=b;b=a}while(0);if(g|0){a=c[k+28>>2]|0;if((c[27364+(a<<2)>>2]|0)==(k|0)){c[27364+(a<<2)>>2]=b;if(!b){c[6766]=c[6766]&~(1<>2]|0)==(k|0)?g+16|0:g+20|0)>>2]=b;if(!b)break}c[b+24>>2]=g;a=c[k+16>>2]|0;if(a|0){c[b+16>>2]=a;c[a+24>>2]=b}a=c[k+16+4>>2]|0;if(a|0){c[b+20>>2]=a;c[a+24>>2]=b}}}while(0);c[j+4>>2]=f|1;c[i+f>>2]=f;if((j|0)==(c[6770]|0)){c[6767]=f;return}}else{c[k+4>>2]=b&-2;c[j+4>>2]=a|1;c[i+a>>2]=a;f=a}d=3?f>>>3:f;if(f>>>0<256){a=c[6765]|0;if(!(a&1<>2]|0}c[a>>2]=j;c[b+12>>2]=j;c[j+8>>2]=b;c[j+12>>2]=27100+(d<<1<<2);return}a=8?f>>>8:f;if(a)if(f>>>0>16777215)e=31;else{i=(16?(a+1048320|0)>>>16:a+1048320|0)&8;k=(16?((a<>>16:(a<>>16:(a<>>15:a<>>(e+7|0):f)&1|e<<1}else e=0;b=27364+(e<<2)|0;c[j+28>>2]=e;c[j+20>>2]=0;c[j+16>>2]=0;a=c[6766]|0;d=1<>2]=j;c[j+24>>2]=b;c[j+12>>2]=j;c[j+8>>2]=j}else{a=c[b>>2]|0;b:do if((c[a+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(1?e>>>1:e)|0);while(1){d=a+16+((31?e>>>31:e)<<2)|0;b=c[d>>2]|0;if(!b)break;if((c[b+4>>2]&-8|0)==(f|0)){a=b;break b}else{e=e<<1;a=b}}c[d>>2]=j;c[j+24>>2]=a;c[j+12>>2]=j;c[j+8>>2]=j;break a}while(0);i=a+8|0;k=c[i>>2]|0;c[k+12>>2]=j;c[i>>2]=j;c[j+8>>2]=k;c[j+12>>2]=a;c[j+24>>2]=0}while(0);k=(c[6773]|0)+-1|0;c[6773]=k;if(k|0)return;a=27516;while(1){a=c[a>>2]|0;if(!a)break;else a=a+8|0}c[6773]=-1;return}function vc(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0;i=c[d+8>>2]|0;if(!i){a=0;return a|0}j=i;E=i;i=0;do{if((c[E+20>>2]|0)>(c[a+100>>2]|0)){y=c[E+12>>2]|0;w=c[y+88>>2]|0;A=w-(c[d+88>>2]|0)|0;x=c[y+92>>2]|0;B=x-(c[d+92>>2]|0)|0;y=c[y+96>>2]|0;C=y-(c[d+96>>2]|0)|0;k=Yr(c[g>>2]|0,c[g+4>>2]|0,A|0,((A|0)<0)<<31>>31|0)|0;n=D()|0;j=Yr(c[g+8>>2]|0,c[g+8+4>>2]|0,B|0,((B|0)<0)<<31>>31|0)|0;n=Lv(j|0,D()|0,k|0,n|0)|0;k=D()|0;j=Yr(c[g+16>>2]|0,c[g+16+4>>2]|0,C|0,((C|0)<0)<<31>>31|0)|0;j=Lv(n|0,k|0,j|0,D()|0)|0;k=D()|0;n=Yr(c[f>>2]|0,c[f+4>>2]|0,A|0,((A|0)<0)<<31>>31|0)|0;v=D()|0;m=Yr(c[f+8>>2]|0,c[f+8+4>>2]|0,B|0,((B|0)<0)<<31>>31|0)|0;v=Lv(m|0,D()|0,n|0,v|0)|0;n=D()|0;m=Yr(c[f+16>>2]|0,c[f+16+4>>2]|0,C|0,((C|0)<0)<<31>>31|0)|0;m=Lv(v|0,n|0,m|0,D()|0)|0;n=D()|0;if((k|0)>0|(k|0)==0&j>>>0>0){u=j;v=k;o=-1;l=1}else{u=tv(0,0,j|0,k|0)|0;v=D()|0;u=(j|0)!=0|(k|0)!=0?u:0;v=(j|0)!=0|(k|0)!=0?v:0;o=((j|0)!=0|(k|0)!=0)&1;l=((j|0)!=0|(k|0)!=0)<<31>>31}if(!((n|0)>0|(n|0)==0&m>>>0>0)){j=tv(0,0,m|0,n|0)|0;k=D()|0;j=(m|0)!=0|(n|0)!=0?j:0;k=(m|0)!=0|(n|0)!=0?k:0;if(!((((m|0)!=0|(n|0)!=0?o:l)|0)==0&((j|0)==0&(k|0)==0))){t=j;l=(m|0)!=0|(n|0)!=0?o:l;p=8}}else{t=m;k=n;p=8}a:do if((p|0)==8){p=0;if(!i){c[h>>2]=u;c[h+4>>2]=v;c[h+8>>2]=t;c[h+8+4>>2]=k;c[h+16>>2]=l;i=E;break}j=c[h+16>>2]|0;if((l|0)==(j|0)){if(l|0){n=c[h+8>>2]|0;q=c[h+8+4>>2]|0;m=Yr(n|0,0,u|0,0)|0;j=D()|0;r=Yr(q|0,0,u|0,0)|0;p=D()|0;n=Yr(n|0,0,v|0,0)|0;o=D()|0;q=Yr(q|0,0,v|0,0)|0;H=D()|0;n=Lv(r|0,0,n|0,0)|0;r=D()|0;H=Lv(p|0,0,q|0,H|0)|0;o=Lv(H|0,D()|0,o|0,0)|0;r=Lv(o|0,D()|0,r|0,0)|0;o=D()|0;j=Lv(0,n|0,m|0,j|0)|0;m=D()|0;n=Lv(r|0,o|0,(m>>>0>>0|(m|0)==(n|0)&j>>>0<0)&1|0,0)|0;o=D()|0;r=c[h>>2]|0;H=c[h+4>>2]|0;q=Yr(r|0,0,t|0,0)|0;p=D()|0;F=Yr(H|0,0,t|0,0)|0;I=D()|0;r=Yr(r|0,0,k|0,0)|0;s=D()|0;H=Yr(H|0,0,k|0,0)|0;G=D()|0;r=Lv(F|0,0,r|0,0)|0;F=D()|0;G=Lv(I|0,0,H|0,G|0)|0;s=Lv(G|0,D()|0,s|0,0)|0;F=Lv(s|0,D()|0,F|0,0)|0;s=D()|0;p=Lv(0,r|0,q|0,p|0)|0;q=D()|0;r=Lv(F|0,s|0,(q>>>0>>0|(q|0)==(r|0)&p>>>0<0)&1|0,0)|0;s=D()|0;if(!(o>>>0>>0|(o|0)==(s|0)&n>>>0>>0))if(o>>>0>s>>>0|(o|0)==(s|0)&n>>>0>r>>>0)j=1;else j=m>>>0>>0|(m|0)==(q|0)&j>>>0

>>0?-1:(m>>>0>q>>>0|(m|0)==(q|0)&j>>>0>p>>>0)&1;else j=-1;j=z(j,l)|0;p=17}}else{j=l-j|0;p=17}do if((p|0)==17){p=0;if((j|0)>=0)if(!j)break;else break a;else{c[h>>2]=u;c[h+4>>2]=v;c[h+8>>2]=t;c[h+8+4>>2]=k;c[h+16>>2]=l;i=E;break a}}while(0);j=(c[i+4>>2]|0)==(E|0);if((c[i>>2]|0)==(E|0))if(j){I=c[e+8>>2]|0;F=z(I,B)|0;u=c[e+4>>2]|0;F=F-(z(u,C)|0)|0;H=c[e>>2]|0;I=(z(H,C)|0)-(z(I,A)|0)|0;H=(z(u,A)|0)-(z(H,B)|0)|0;u=c[i+12>>2]|0;j=c[(c[E+8>>2]|0)+12>>2]|0;C=c[j+88>>2]|0;A=(c[u+88>>2]|0)-C|0;v=c[j+92>>2]|0;B=(c[u+92>>2]|0)-v|0;j=c[j+96>>2]|0;u=(c[u+96>>2]|0)-j|0;G=(z(y-j|0,B)|0)-(z(u,x-v|0)|0)|0;j=(z(u,w-C|0)|0)-(z(y-j|0,A)|0)|0;C=(z(x-v|0,A)|0)-(z(B,w-C|0)|0)|0;F=Yr(G|0,((G|0)<0)<<31>>31|0,F|0,((F|0)<0)<<31>>31|0)|0;G=D()|0;I=Yr(j|0,((j|0)<0)<<31>>31|0,I|0,((I|0)<0)<<31>>31|0)|0;j=D()|0;H=Yr(C|0,((C|0)<0)<<31>>31|0,H|0,((H|0)<0)<<31>>31|0)|0;H=Lv(F|0,G|0,H|0,D()|0)|0;j=Lv(H|0,D()|0,I|0,j|0)|0;I=D()|0;j=(I|0)>0|(I|0)==0&j>>>0>0?2:1}else j=2;else j=j&1;i=(j|0)==2^b?i:E}while(0);j=c[d+8>>2]|0}E=c[E>>2]|0}while((E|0)!=(j|0));return i|0}function wc(b,d,e,g){b=b|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,t=0,u=0.0,v=0.0,w=0.0,x=0;q=ea;ea=ea+176|0;c[q+96>>2]=1;c[q+96+4>>2]=e;c[q+96+8>>2]=d;c[q+96+12>>2]=16;f[q+96+16>>2]=1.0000000474974513e-03;a[q+40+24>>0]=1;p=q+40+20|0;c[p>>2]=0;c[q+40+12>>2]=0;c[q+40+16>>2]=0;o=q+40+52|0;a[o>>0]=1;n=q+40+48|0;c[n>>2]=0;c[q+40+40>>2]=0;c[q+40+44>>2]=0;a[q+40>>0]=1;c[q+40+4>>2]=0;c[q+40+28>>2]=0;c[q+40+32>>2]=0;a[q+16>>0]=1;c[q+12>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;a[q+36>>0]=1;c[q+32>>2]=0;c[q+24>>2]=0;c[q+28>>2]=0;c[q+96+20>>2]=e;ab(q,q+96|0,q+40|0)|0;c[6747]=(c[6747]|0)+1;d=kb(1271)|0;if(!d)m=0;else{c[(d+4+15&-16)+-4>>2]=d;m=d+4+15&-16}ub(m,b,c[q+40+4>>2]|0,c[p>>2]|0,0);if((c[q+40+28>>2]|0)>0){j=m+720|0;l=m+732|0;k=m+740|0;h=m+924|0;i=0;do{b=i*3|0;r=c[n>>2]|0;d=c[r+(b<<2)>>2]|0;e=c[r+(b+1<<2)>>2]|0;b=c[r+(b+2<<2)>>2]|0;if((d|0)<(e|0)){x=c[j>>2]|0;mh(m,0);r=(c[l>>2]|0)+-1|0;t=c[k>>2]|0;c[t+(r*52|0)+8>>2]=x+(d*104|0);c[t+(r*52|0)+12>>2]=x+(e*104|0);w=+f[x+(d*104|0)+8>>2]-+f[x+(e*104|0)+8>>2];v=+f[x+(d*104|0)+12>>2]-+f[x+(e*104|0)+12>>2];u=+f[x+(d*104|0)+16>>2]-+f[x+(e*104|0)+16>>2];f[t+(r*52|0)+16>>2]=+s(+(w*w+v*v+u*u));a[h>>0]=1}if((e|0)<(b|0)){r=c[j>>2]|0;mh(m,0);x=(c[l>>2]|0)+-1|0;t=c[k>>2]|0;c[t+(x*52|0)+8>>2]=r+(e*104|0);c[t+(x*52|0)+12>>2]=r+(b*104|0);u=+f[r+(e*104|0)+8>>2]-+f[r+(b*104|0)+8>>2];v=+f[r+(e*104|0)+12>>2]-+f[r+(b*104|0)+12>>2];w=+f[r+(e*104|0)+16>>2]-+f[r+(b*104|0)+16>>2];f[t+(x*52|0)+16>>2]=+s(+(u*u+v*v+w*w));a[h>>0]=1}if((b|0)<(d|0)){r=c[j>>2]|0;mh(m,0);x=(c[l>>2]|0)+-1|0;t=c[k>>2]|0;c[t+(x*52|0)+8>>2]=r+(b*104|0);c[t+(x*52|0)+12>>2]=r+(d*104|0);u=+f[r+(b*104|0)+8>>2]-+f[r+(d*104|0)+8>>2];v=+f[r+(b*104|0)+12>>2]-+f[r+(d*104|0)+12>>2];w=+f[r+(b*104|0)+16>>2]-+f[r+(d*104|0)+16>>2];f[t+(x*52|0)+16>>2]=+s(+(u*u+v*v+w*w));a[h>>0]=1}af(m,d,e,b,0);i=i+1|0}while((i|0)<(c[q+40+28>>2]|0))}if(c[q+40+12>>2]|0){c[q+40+4>>2]=0;d=c[p>>2]|0;if(d|0){if(a[q+40+24>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[p>>2]=0}a[q+40+24>>0]=1;c[p>>2]=0;c[q+40+12>>2]=0;c[q+40+16>>2]=0}if(c[q+40+40>>2]|0){c[q+40+32>>2]=0;d=c[n>>2]|0;if(d|0){if(a[o>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[n>>2]=0}a[o>>0]=1;c[n>>2]=0;c[q+40+40>>2]=0;c[q+40+44>>2]=0}if(g){e=c[m+732>>2]|0;if((e|0)>0){j=m+740|0;i=0;d=243703;do{b=c[j>>2]|0;h=b+(i*52|0)|0;d=(z(d,1664525)|0)+1013904223|0;k=q+124|0;l=h;g=k+52|0;do{c[k>>2]=c[l>>2];k=k+4|0;l=l+4|0}while((k|0)<(g|0));k=h;l=b+(((d>>>0)%(e>>>0)|0)*52|0)|0;g=k+52|0;do{c[k>>2]=c[l>>2];k=k+4|0;l=l+4|0}while((k|0)<(g|0));k=b+(((d>>>0)%(e>>>0)|0)*52|0)|0;l=q+124|0;g=k+52|0;do{c[k>>2]=c[l>>2];k=k+4|0;l=l+4|0}while((k|0)<(g|0));i=i+1|0}while((i|0)!=(e|0))}else d=243703;h=c[m+752>>2]|0;if((h|0)>0){j=m+760|0;i=0;do{e=c[j>>2]|0;b=e+(i*44|0)|0;d=(z(d,1664525)|0)+1013904223|0;e=e+(((d>>>0)%(h>>>0)|0)*44|0)|0;k=q+124|0;l=b;g=k+44|0;do{c[k>>2]=c[l>>2];k=k+4|0;l=l+4|0}while((k|0)<(g|0));k=b;l=e;g=k+44|0;do{c[k>>2]=c[l>>2];k=k+4|0;l=l+4|0}while((k|0)<(g|0));k=e;l=q+124|0;g=k+44|0;do{c[k>>2]=c[l>>2];k=k+4|0;l=l+4|0}while((k|0)<(g|0));i=i+1|0}while((i|0)!=(h|0))}}d=c[q+32>>2]|0;if(d|0){if(a[q+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[q+32>>2]=0}a[q+36>>0]=1;c[q+32>>2]=0;c[q+24>>2]=0;c[q+28>>2]=0;d=c[q+12>>2]|0;if(d|0){if(a[q+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[q+12>>2]=0}d=c[n>>2]|0;if(d|0){if(a[o>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[n>>2]=0}a[o>>0]=1;c[n>>2]=0;c[q+40+40>>2]=0;c[q+40+44>>2]=0;d=c[p>>2]|0;if(!d){ea=q;return m|0}if(a[q+40+24>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[p>>2]=0;ea=q;return m|0} +function Qh(a,b,d){a=a|0;b=b|0;d=d|0;do if(!((b|0)==32&(d|0)==32)){if((b|0)==32){if((d|0)<20){b=a+96|0;break}if((d+-21|0)>>>0<9){b=a+104|0;break}}else{if((b|0)<20&(d|0)==32){b=a+100|0;break}if((b+-21|0)>>>0<9&(d|0)==32){b=a+108|0;break}if((b|0)==8&(d|0)==8){b=a+60|0;break}if((b|0)==8&(d|0)==1){b=a+76|0;break}if((b|0)==1&(d|0)==8){b=a+80|0;break}}if(!(d|b)){b=a+72|0;break}if((b|0)<20&(d|0)==28){b=a+88|0;break}if((b|0)==28&(d|0)<20){b=a+84|0;break}if((b|0)<20){if((d|0)<20){b=a+32|0;break}if((d+-21|0)>>>0<9){b=a+36|0;break}}else{if((d|0)<20&(b+-21|0)>>>0<9){b=a+40|0;break}if((b|0)==31)if((d|0)==31){b=a+48|0;break}else{b=a+44|0;break}}if((d|0)==31){b=a+52|0;break}else{b=a+56|0;break}}else b=a+92|0;while(0);return c[b>>2]|0}function Rh(b){b=b|0;var d=0;d=js(616)|0;c[d+164>>2]=1065353216;c[d+168>>2]=1065353216;c[d+172>>2]=1065353216;f[d+176>>2]=0.0;c[d+180>>2]=0;f[d+184>>2]=999999984306749440.0;c[d+188>>2]=0;c[d+188+4>>2]=0;c[d+188+8>>2]=0;c[d+188+12>>2]=0;c[d+204>>2]=1;c[d+208>>2]=-1;c[d+212>>2]=-1;c[d+216>>2]=1;f[d+220>>2]=0.0;f[d+224>>2]=.5;f[d+228>>2]=0.0;f[d+232>>2]=0.0;c[d+236>>2]=1;c[d+240>>2]=0;f[d+244>>2]=1.0;c[d+248>>2]=0;c[d+248+4>>2]=0;c[d+248+8>>2]=0;c[d+248+12>>2]=0;c[d+4>>2]=1065353216;c[d+8>>2]=0;c[d+8+4>>2]=0;c[d+8+8>>2]=0;c[d+8+12>>2]=0;c[d+24>>2]=1065353216;c[d+28>>2]=0;c[d+28+4>>2]=0;c[d+28+8>>2]=0;c[d+28+12>>2]=0;c[d+44>>2]=1065353216;c[d+48>>2]=0;c[d+48+4>>2]=0;c[d+48+8>>2]=0;c[d+48+12>>2]=0;c[d+48+16>>2]=0;c[d>>2]=5172;a[d+500>>0]=1;c[d+496>>2]=0;c[d+488>>2]=0;c[d+492>>2]=0;Cc(d,b);return d|0}function Sh(a,b,d,e,g,h,i,j,k){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0;n=ea;ea=ea+16|0;Fi(15456);Ya[c[(c[a>>2]|0)+32>>2]&1](a,b,d,e,g,h,i,j,k);m=c[a+184>>2]|0;l=c[j+20>>2]|0;l=(m|0)>(l|0)?m:l;if((l|0)>0){m=0;do{+qa[c[(c[a>>2]|0)+40>>2]&3](a,m,b,d,e,g,h,i,j,k);m=m+1|0}while((m|0)<(l|0))}l=c[2685]|0;a=(c[l+16>>2]|0)+-1|0;c[l+16>>2]=a;if(a|0){ea=n;return 0.0}do if(c[l+4>>2]|0){Y(n|0,0)|0;a=c[6746]|0;f[l+8>>2]=+f[l+8>>2]+ +(((c[n+4>>2]|0)-(c[a+4>>2]|0)+(((c[n>>2]|0)-(c[a>>2]|0)|0)*1e6|0)-(c[l+12>>2]|0)|0)>>>0)/1.0e3;if(!(c[l+16>>2]|0)){l=c[2685]|0;break}else{ea=n;return 0.0}}while(0);c[2685]=c[l+20>>2];ea=n;return 0.0}function Th(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0,h=0.0,i=0.0,j=0.0,k=0.0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0.0,t=0;if((e|0)<=0)return;g=0;do{f[d+(g<<4)+12>>2]=-999999984306749440.0;g=g+1|0}while((g|0)!=(e|0));r=0;do{i=+f[a+12>>2];n=+f[b+(r<<4)>>2]*i;j=+f[a+16>>2];p=+f[b+(r<<4)+4>>2]*j;k=+f[a+20>>2];o=+f[b+(r<<4)+8>>2]*k;g=c[a+96>>2]|0;if((g|0)>0){l=c[a+104>>2]|0;m=0;h=-3402823466385288598117041.0e14;q=-1;do{s=n*+f[l+(m<<4)>>2]+p*+f[l+(m<<4)+4>>2]+o*+f[l+(m<<4)+8>>2];t=s>h;q=t?m:q;h=t?s:h;m=m+1|0}while((m|0)!=(g|0));p=+f[l+(q<<4)+4>>2]*j;s=+f[l+(q<<4)+8>>2]*k;f[d+(r<<4)>>2]=+f[l+(q<<4)>>2]*i;f[d+(r<<4)+4>>2]=p;f[d+(r<<4)+8>>2]=s}else h=-999999984306749440.0;f[d+(r<<4)+12>>2]=h;r=r+1|0}while((r|0)!=(e|0));return}function Uh(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;a:do if(!(rt(b,c[d+8>>2]|0,g)|0)){if(!(rt(b,c[d>>2]|0,g)|0)){b=c[b+8>>2]|0;Ta[c[(c[b>>2]|0)+24>>2]&31](b,d,e,f,g);break}if((c[d+16>>2]|0)!=(e|0)?(c[d+20>>2]|0)!=(e|0):0){c[d+32>>2]=f;do if((c[d+44>>2]|0)!=4){a[d+52>>0]=0;a[d+53>>0]=0;b=c[b+8>>2]|0;Va[c[(c[b>>2]|0)+20>>2]&7](b,d,e,e,1,g);if(a[d+53>>0]|0){g=(a[d+52>>0]|0)==0;c[d+44>>2]=3;if(g)break;else break a}else{c[d+44>>2]=4;break}}while(0);c[d+20>>2]=e;c[d+40>>2]=(c[d+40>>2]|0)+1;if((c[d+36>>2]|0)!=1)break;if((c[d+24>>2]|0)!=2)break;a[d+54>>0]=1;break}if((f|0)==1)c[d+32>>2]=1}else Jr(d,e,f);while(0);return}function Vh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;f=c[a+232>>2]|0;a:do if((f|0)>0){g=c[a+240>>2]|0;d=0;while(1){e=g+(d<<2)|0;if((c[e>>2]|0)==(b|0))break;d=d+1|0;if((d|0)>=(f|0))break a}if((d|0)<(f|0)){c[e>>2]=c[g+(f+-1<<2)>>2];c[(c[a+240>>2]|0)+(f+-1<<2)>>2]=b;c[a+232>>2]=f+-1}}while(0);d=c[b+188>>2]|0;if(d|0){g=c[a+68>>2]|0;g=ra[c[(c[g>>2]|0)+36>>2]&127](g)|0;Ma[c[(c[g>>2]|0)+40>>2]&127](g,d,c[a+24>>2]|0);g=c[a+68>>2]|0;Ma[c[(c[g>>2]|0)+12>>2]&127](g,d,c[a+24>>2]|0);c[b+188>>2]=0}f=c[a+8>>2]|0;if((f|0)<=0)return;g=c[a+16>>2]|0;d=0;while(1){e=g+(d<<2)|0;if((c[e>>2]|0)==(b|0))break;d=d+1|0;if((d|0)>=(f|0)){h=15;break}}if((h|0)==15)return;if((d|0)>=(f|0))return;c[e>>2]=c[g+(f+-1<<2)>>2];c[(c[a+16>>2]|0)+(f+-1<<2)>>2]=b;c[a+8>>2]=f+-1;return}function Wh(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=c[d>>2]|0;d=c[b+268>>2]|0;a:do if((d|0)>0){f=c[b+276>>2]|0;e=0;while(1){if((c[f+(e<<2)>>2]|0)==(g|0))break;e=e+1|0;if((e|0)>=(d|0))break a}if((e|0)!=(d|0))return}while(0);if((d|0)==(c[b+272>>2]|0)?(h=(d|0)==0?1:d<<1,(d|0)<(h|0)):0){if(!h)e=0;else{c[6747]=(c[6747]|0)+1;d=kb((h<<2|3)+16|0)|0;if(!d)e=0;else{c[(d+4+15&-16)+-4>>2]=d;e=d+4+15&-16}d=c[b+268>>2]|0}if((d|0)>0){f=0;do{c[e+(f<<2)>>2]=c[(c[b+276>>2]|0)+(f<<2)>>2];f=f+1|0}while((f|0)!=(d|0))}f=c[b+276>>2]|0;if(f){if(a[b+280>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[f+-4>>2]|0);d=c[b+268>>2]|0}c[b+276>>2]=0}a[b+280>>0]=1;c[b+276>>2]=e;c[b+272>>2]=h}c[(c[b+276>>2]|0)+(d<<2)>>2]=g;c[b+268>>2]=d+1;return}function Xh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;f=c[a+328>>2]|0;a:do if((f|0)>0){g=c[a+336>>2]|0;d=0;while(1){e=g+(d<<2)|0;if((c[e>>2]|0)==(b|0))break;d=d+1|0;if((d|0)>=(f|0))break a}if((d|0)<(f|0)){c[e>>2]=c[g+(f+-1<<2)>>2];c[(c[a+336>>2]|0)+(f+-1<<2)>>2]=b;c[a+328>>2]=f+-1}}while(0);d=c[b+188>>2]|0;if(d|0){g=c[a+68>>2]|0;g=ra[c[(c[g>>2]|0)+36>>2]&127](g)|0;Ma[c[(c[g>>2]|0)+40>>2]&127](g,d,c[a+24>>2]|0);g=c[a+68>>2]|0;Ma[c[(c[g>>2]|0)+12>>2]&127](g,d,c[a+24>>2]|0);c[b+188>>2]=0}f=c[a+8>>2]|0;if((f|0)<=0)return;g=c[a+16>>2]|0;d=0;while(1){e=g+(d<<2)|0;if((c[e>>2]|0)==(b|0))break;d=d+1|0;if((d|0)>=(f|0)){h=15;break}}if((h|0)==15)return;if((d|0)>=(f|0))return;c[e>>2]=c[g+(f+-1<<2)>>2];c[(c[a+16>>2]|0)+(f+-1<<2)>>2]=b;c[a+8>>2]=f+-1;return}function Yh(b,d){b=b|0;d=d|0;var e=0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0;e=us()|0;c[e+4>>2]=3;c[e>>2]=5660;c[e+8>>2]=-1;c[e+12>>2]=-1;f[e+16>>2]=3402823466385288598117041.0e14;a[e+20>>0]=1;a[e+21>>0]=0;c[e+24>>2]=-1;c[e+28>>2]=b;Jk();c[e+32>>2]=25640;f[e+36>>2]=0.0;f[e+40>>2]=.30000001192092896;c[e+44>>2]=0;c[e>>2]=5608;c[e+300>>2]=c[d>>2];c[e+300+4>>2]=c[d+4>>2];c[e+300+8>>2]=c[d+8>>2];c[e+300+12>>2]=c[d+12>>2];k=+f[d>>2];j=+f[d+4>>2];i=+f[d+8>>2];h=k*+f[b+20>>2]+j*+f[b+24>>2]+i*+f[b+28>>2]+ +f[b+56>>2];g=k*+f[b+36>>2]+j*+f[b+40>>2]+i*+f[b+44>>2]+ +f[b+60>>2];f[e+316>>2]=k*+f[b+4>>2]+j*+f[b+8>>2]+i*+f[b+12>>2]+ +f[b+52>>2];f[e+320>>2]=h;f[e+324>>2]=g;f[e+328>>2]=0.0;c[e+332>>2]=0;a[e+344>>0]=0;f[e+348>>2]=.30000001192092896;f[e+352>>2]=1.0;f[e+356>>2]=0.0;return e|0}function Zh(a){a=a|0;var b=0,d=0.0,e=0.0,g=0.0,h=0.0,i=0.0;b=ct()|0;c[b+8>>2]=0;c[b+12>>2]=1065353216;c[b+16>>2]=1065353216;c[b+20>>2]=1065353216;f[b+24>>2]=0.0;f[b+44>>2]=.03999999910593033;c[b+52>>2]=0;c[b>>2]=9156;c[b+4>>2]=0;g=+f[a>>2];e=+f[a+4>>2];d=+f[a+8>>2];d=+f[a+((g>2]*.10000000149011612;if(d<.03999999910593033){i=+$G(b);h=+$G(b);g=+$G(b);i=i+ +f[b+28>>2];h=h+ +f[b+32>>2];g=g+ +f[b+36>>2];f[b+44>>2]=d;d=+$G(b);e=+$G(b);g=g-+$G(b);f[b+28>>2]=i-d;f[b+32>>2]=h-e;f[b+36>>2]=g;f[b+40>>2]=0.0}g=+$G(b);h=+$G(b);i=+$G(b);h=+f[a+4>>2]-h;i=+f[a+8>>2]-i;f[b+28>>2]=+f[a>>2]-g;f[b+32>>2]=h;f[b+36>>2]=i;f[b+40>>2]=0.0;return b|0}function _h(b){b=b|0;var d=0,e=0;d=c[b+92>>2]|0;if(d|0){if(a[b+96>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+92>>2]=0}a[b+96>>0]=1;c[b+92>>2]=0;c[b+84>>2]=0;c[b+88>>2]=0;d=c[b+64>>2]|0;if(d|0)do{c[b+64>>2]=c[d+8>>2];e=c[d>>2]|0;if(e|0){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0)}c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0);d=c[b+64>>2]|0}while((d|0)!=0);d=c[b+48>>2]|0;if(d|0)do{c[b+48>>2]=c[d+8>>2];e=c[d>>2]|0;if(e|0){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0)}c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0);d=c[b+48>>2]|0}while((d|0)!=0);d=c[b+32>>2]|0;if(!d)return;do{c[b+32>>2]=c[d+8>>2];e=c[d>>2]|0;if(e|0){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0)}c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0);d=c[b+32>>2]|0}while((d|0)!=0);return}function $h(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,g=0.0,h=0.0,i=0.0;c[a+4>>2]=35;c[a+8>>2]=0;c[a+12>>2]=1065353216;c[a+16>>2]=1065353216;c[a+20>>2]=1065353216;f[a+24>>2]=0.0;f[a+44>>2]=.03999999910593033;c[a>>2]=9452;c[a+52>>2]=1;g=+f[b>>2];e=+f[b+4>>2];d=+f[b+8>>2];d=+f[b+((g>2]*.10000000149011612;if(d<.03999999910593033){i=+$G(a);h=+$G(a);g=+$G(a);i=i+ +f[a+28>>2];h=h+ +f[a+32>>2];g=g+ +f[a+36>>2];f[a+44>>2]=d;d=+$G(a);e=+$G(a);g=g-+$G(a);f[a+28>>2]=i-d;f[a+32>>2]=h-e;f[a+36>>2]=g;f[a+40>>2]=0.0}g=+$G(a);h=+$G(a);i=+$G(a);h=+f[b+4>>2]-h;i=+f[b+8>>2]-i;f[a+28>>2]=+f[b>>2]-g;f[a+32>>2]=h;f[a+36>>2]=i;f[a+40>>2]=0.0;c[a+4>>2]=13;return}function ai(a,b,d){a=a|0;b=+b;d=+d;var e=0.0,g=0.0,h=0.0;e=+f[a+692>>2];do if(e>0.0){g=+f[a+688>>2];if(!((b-g)%6.2831854820251465<-3.1415927410125732))if((b-g)%6.2831854820251465>3.1415927410125732)h=(b-g)%6.2831854820251465+-6.2831854820251465;else h=(b-g)%6.2831854820251465;else h=(b-g)%6.2831854820251465+6.2831854820251465;if(!(!(h<-e)&h<=e))if(h>0.0){if((e+g)%6.2831854820251465<-3.1415927410125732){b=(e+g)%6.2831854820251465+6.2831854820251465;break}if(!((e+g)%6.2831854820251465>3.1415927410125732)){b=(e+g)%6.2831854820251465;break}b=(e+g)%6.2831854820251465+-6.2831854820251465;break}else{if((g-e)%6.2831854820251465<-3.1415927410125732){b=(g-e)%6.2831854820251465+6.2831854820251465;break}if(!((g-e)%6.2831854820251465>3.1415927410125732)){b=(g-e)%6.2831854820251465;break}b=(g-e)%6.2831854820251465+-6.2831854820251465;break}}while(0);f[a+680>>2]=(b-+pi(a,(c[a+28>>2]|0)+4|0,(c[a+32>>2]|0)+4|0))/d;return}function bi(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;i=c[d>>2]|0;i=ta[c[(c[i>>2]|0)+56>>2]&31](i,28)|0;j=(a[b+4>>0]|0)==0;h=c[b+8>>2]|0;g=c[b+12>>2]|0;b=c[d>>2]|0;c[i+4>>2]=b;c[i>>2]=6592;a[i+8>>0]=0;c[i+12>>2]=0;if(j){a[i+16>>0]=0;c[i+20>>2]=h;c[i+24>>2]=g;if(!(va[c[(c[b>>2]|0)+24>>2]&63](b,c[e+8>>2]|0,c[f+8>>2]|0)|0))return i|0;j=c[i+4>>2]|0;c[i+12>>2]=va[c[(c[j>>2]|0)+12>>2]&63](j,c[e+8>>2]|0,c[f+8>>2]|0)|0;a[i+8>>0]=1;return i|0}else{a[i+16>>0]=1;c[i+20>>2]=h;c[i+24>>2]=g;if(!(va[c[(c[b>>2]|0)+24>>2]&63](b,c[f+8>>2]|0,c[e+8>>2]|0)|0))return i|0;j=c[i+4>>2]|0;c[i+12>>2]=va[c[(c[j>>2]|0)+12>>2]&63](j,c[f+8>>2]|0,c[e+8>>2]|0)|0;a[i+8>>0]=1;return i|0}return 0}function ci(a,b,d){a=a|0;b=+b;d=d|0;var e=0,g=0.0,h=0.0,i=0.0,j=0.0,k=0;e=ea;ea=ea+96|0;c[e+32>>2]=1065353216;c[e+32+4>>2]=0;c[e+32+4+4>>2]=0;c[e+32+4+8>>2]=0;c[e+32+4+12>>2]=0;c[e+32+20>>2]=1065353216;c[e+32+24>>2]=0;c[e+32+24+4>>2]=0;c[e+32+24+8>>2]=0;c[e+32+24+12>>2]=0;c[e+32+40>>2]=1065353216;k=e+32+44|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[k+16>>2]=0;Pa[c[(c[a>>2]|0)+8>>2]&127](a,e+32|0,e+16|0,e);i=(+f[e>>2]-+f[e+16>>2])*.5;h=(+f[e+4>>2]-+f[e+16+4>>2])*.5;j=(+f[e+8>>2]-+f[e+16+8>>2])*.5;g=+ha[c[(c[a>>2]|0)+48>>2]&15](a);f[d>>2]=b*.0833333283662796*((h+g)*2.0*((h+g)*2.0)+(j+g)*2.0*((j+g)*2.0));f[d+4>>2]=b*.0833333283662796*((i+g)*2.0*((i+g)*2.0)+(j+g)*2.0*((j+g)*2.0));f[d+8>>2]=b*.0833333283662796*((i+g)*2.0*((i+g)*2.0)+(h+g)*2.0*((h+g)*2.0));f[d+12>>2]=0.0;ea=e;return}function di(){var b=0;b=js(284)|0;c[b+164>>2]=1065353216;c[b+168>>2]=1065353216;c[b+172>>2]=1065353216;f[b+176>>2]=0.0;c[b+180>>2]=0;f[b+184>>2]=999999984306749440.0;c[b+188>>2]=0;c[b+188+4>>2]=0;c[b+188+8>>2]=0;c[b+188+12>>2]=0;c[b+204>>2]=1;c[b+208>>2]=-1;c[b+212>>2]=-1;c[b+216>>2]=1;f[b+220>>2]=0.0;f[b+224>>2]=.5;f[b+228>>2]=0.0;f[b+232>>2]=0.0;c[b+240>>2]=0;f[b+244>>2]=1.0;c[b+248>>2]=0;c[b+248+4>>2]=0;c[b+248+8>>2]=0;c[b+248+12>>2]=0;c[b+4>>2]=1065353216;c[b+8>>2]=0;c[b+8+4>>2]=0;c[b+8+8>>2]=0;c[b+8+12>>2]=0;c[b+24>>2]=1065353216;c[b+28>>2]=0;c[b+28+4>>2]=0;c[b+28+8>>2]=0;c[b+28+12>>2]=0;c[b+44>>2]=1065353216;c[b+48>>2]=0;c[b+48+4>>2]=0;c[b+48+8>>2]=0;c[b+48+12>>2]=0;c[b+48+16>>2]=0;c[b>>2]=6156;a[b+280>>0]=1;c[b+276>>2]=0;c[b+268>>2]=0;c[b+272>>2]=0;c[b+236>>2]=4;return b|0}function ei(b,d){b=b|0;d=d|0;var e=0,g=0,h=0,i=0.0,j=0.0,k=0,l=0;g=ea;ea=ea+48|0;if((c[b+136>>2]|0)<=0){ea=g;return}e=0;do{l=c[b+144>>2]|0;c[g+32>>2]=(a[l+(e*284|0)+84>>0]|0)==0?1065353216:0;c[g+32+4>>2]=0;c[g+32+8>>2]=1065353216;f[g+32+12>>2]=0.0;k=l+(e*284|0)+140|0;c[g+16>>2]=c[k>>2];c[g+16+4>>2]=c[k+4>>2];c[g+16+8>>2]=c[k+8>>2];c[g+16+12>>2]=c[k+12>>2];k=c[b+120>>2]|0;h=c[(c[d>>2]|0)+8>>2]|0;j=+f[l+(e*284|0)+108+(k<<2)>>2]+ +f[g+16+4>>2];i=+f[l+(e*284|0)+124+(k<<2)>>2]+ +f[g+16+8>>2];f[g>>2]=+f[l+(e*284|0)+92+(k<<2)>>2]+ +f[g+16>>2];f[g+4>>2]=j;f[g+8>>2]=i;f[g+12>>2]=0.0;Pa[h&127](d,g+16|0,g,g+32|0);Pa[c[(c[d>>2]|0)+8>>2]&127](d,g+16|0,(c[b+144>>2]|0)+(e*284|0)+16|0,g+32|0);e=e+1|0}while((e|0)<(c[b+136>>2]|0));ea=g;return}function fi(a,b,d,e){a=a|0;b=b|0;d=+d;e=e|0;switch(b|0){case 2:{if((e|0)<1){f[a+232>>2]=d;c[a+300>>2]=c[a+300>>2]|512;return}if((e|0)<3){f[a+264>>2]=d;c[a+300>>2]=c[a+300>>2]|32;return}if((e|0)==3){f[a+248>>2]=d;c[a+300>>2]=c[a+300>>2]|2048;return}if((e|0)>=6)return;f[a+280>>2]=d;c[a+300>>2]=c[a+300>>2]|128;return}case 3:{if((e|0)<1){f[a+212>>2]=d;c[a+300>>2]=c[a+300>>2]|1;return}if((e|0)!=3)return;f[a+228>>2]=d;c[a+300>>2]=c[a+300>>2]|4;return}case 4:{if((e|0)<1){f[a+244>>2]=d;c[a+300>>2]=c[a+300>>2]|256;return}if((e|0)<3){f[a+276>>2]=d;c[a+300>>2]=c[a+300>>2]|16;return}if((e|0)==3){f[a+260>>2]=d;c[a+300>>2]=c[a+300>>2]|1024;return}if((e|0)>=6)return;f[a+292>>2]=d;c[a+300>>2]=c[a+300>>2]|64;return}default:return}}function gi(b,d,e,g,h){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0.0;l=c[b+720>>2]|0;a:do if(h?(k=c[b+732>>2]|0,(k|0)>0):0){h=c[b+740>>2]|0;j=0;while(1){i=c[h+(j*52|0)+8>>2]|0;if((i|0)==(l+(d*104|0)|0)?(c[h+(j*52|0)+12>>2]|0)==(l+(e*104|0)|0):0){h=10;break}if((i|0)==(l+(e*104|0)|0)?(c[h+(j*52|0)+12>>2]|0)==(l+(d*104|0)|0):0){h=10;break}j=j+1|0;if((j|0)>=(k|0))break a}if((h|0)==10)return}while(0);mh(b,g);g=(c[b+732>>2]|0)+-1|0;k=c[b+740>>2]|0;c[k+(g*52|0)+8>>2]=l+(d*104|0);c[k+(g*52|0)+12>>2]=l+(e*104|0);o=+f[l+(d*104|0)+8>>2]-+f[l+(e*104|0)+8>>2];n=+f[l+(d*104|0)+12>>2]-+f[l+(e*104|0)+12>>2];m=+f[l+(d*104|0)+16>>2]-+f[l+(e*104|0)+16>>2];f[k+(g*52|0)+16>>2]=+s(+(o*o+n*n+m*m));a[b+924>>0]=1;return}function hi(){var b=0;b=zs()|0;c[b>>2]=1025;c[b+116>>2]=0;a[b+120>>0]=0;c[b+124>>2]=0;c[b+124+4>>2]=0;c[b+124+8>>2]=0;c[b+124+12>>2]=0;c[b+124+16>>2]=0;c[b+124+20>>2]=0;c[b+124+24>>2]=0;c[b+124+28>>2]=0;c[b+300>>2]=0;a[b+304>>0]=0;c[b+308>>2]=0;c[b+308+4>>2]=0;c[b+308+8>>2]=0;c[b+308+12>>2]=0;c[b+308+16>>2]=0;c[b+308+20>>2]=0;c[b+308+24>>2]=0;c[b+308+28>>2]=0;c[b+484>>2]=0;a[b+488>>0]=0;c[b+492>>2]=0;c[b+492+4>>2]=0;c[b+492+8>>2]=0;c[b+492+12>>2]=0;c[b+492+16>>2]=0;c[b+492+20>>2]=0;c[b+492+24>>2]=0;c[b+492+28>>2]=0;c[b+668>>2]=0;a[b+672>>0]=0;c[b+676>>2]=0;c[b+676+4>>2]=0;c[b+676+8>>2]=0;c[b+676+12>>2]=0;c[b+676+16>>2]=0;c[b+676+20>>2]=0;c[b+676+24>>2]=0;c[b+676+28>>2]=0;c[b+740>>2]=0;c[b+744>>2]=0;c[b+748>>2]=0;c[b+768>>2]=0;return b|0}function ii(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c[a>>2]=4916;if((c[a+104>>2]|0)<=0){a=a+60|0;vi(a);wi(a);return}k=0;do{i=c[(c[a+4>>2]|0)+684>>2]|0;j=(c[a+112>>2]|0)+(k<<3)+4|0;b=c[j>>2]|0;d=c[i+60>>2]|0;if((d|0)>0){h=0;do{g=(c[i+68>>2]|0)+(h<<2)|0;e=c[g>>2]|0;if(e){f=0;while(1){d=e;e=c[e+280>>2]|0;if((c[d+276>>2]|0)==(b|0)){c[((f|0)==0?g:f+280|0)>>2]=e;LJ(d);d=f}if(!e)break;else f=d}d=c[i+60>>2]|0}h=h+1|0}while((h|0)<(d|0));b=c[j>>2]|0}if(b|0)Ca[c[(c[b>>2]|0)+4>>2]&511](b);k=k+1|0}while((k|0)<(c[a+104>>2]|0));a=a+60|0;vi(a);wi(a);return}function ji(b,d,e){b=b|0;d=d|0;e=e|0;var g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0;if(!(a[b+84>>0]|0)){c[b+32>>2]=c[b+204>>2];f[b+272>>2]=0.0;o=-+f[b+56>>2];p=-+f[b+60>>2];f[b>>2]=-+f[b+52>>2];f[b+4>>2]=o;f[b+8>>2]=p;f[b+12>>2]=0.0;p=1.0;b=b+268|0;f[b>>2]=p;return}g=+f[b>>2];k=+f[b+4>>2];l=+f[b+8>>2];m=g*+f[b+52>>2]+k*+f[b+56>>2]+l*+f[b+60>>2];n=+f[b+16>>2]-+f[d+52>>2];p=+f[b+20>>2]-+f[d+56>>2];o=+f[b+24>>2]-+f[d+60>>2];h=+f[d+332>>2];i=+f[d+336>>2];j=+f[d+328>>2];if(!(m>=-.10000000149011612)){f[b+272>>2]=-1.0/m*(g*(h*o-p*i+ +f[d+312>>2])+k*(n*i-o*j+ +f[d+316>>2])+l*(p*j-n*h+ +f[d+320>>2]));p=-1.0/m;b=b+268|0;f[b>>2]=p;return}else{f[b+272>>2]=0.0;p=10.0;b=b+268|0;f[b>>2]=p;return}}function ki(b,d){b=b|0;d=d|0;var e=0,f=0;if(a[b+1308>>0]|0){c[d>>2]=0;c[d+4>>2]=0;return}gc(b,(c[b+28>>2]|0)+4|0,(c[b+32>>2]|0)+4|0);c[d>>2]=0;c[d+4>>2]=6;if((c[b+856>>2]|0)==0?(a[b+788>>0]|0)==0:0){e=0;f=6}else{c[d>>2]=1;c[d+4>>2]=5;e=1;f=5}if(!((c[b+860>>2]|0)==0?(a[b+789>>0]|0)==0:0)){e=e+1|0;c[d>>2]=e;f=f+-1|0;c[d+4>>2]=f}if(!((c[b+864>>2]|0)==0?!(a[b+790>>0]|0):0)){c[d>>2]=e+1;c[d+4>>2]=f+-1}if(df(b,0)|0){c[d>>2]=(c[d>>2]|0)+1;c[d+4>>2]=(c[d+4>>2]|0)+-1}if(df(b,1)|0){c[d>>2]=(c[d>>2]|0)+1;c[d+4>>2]=(c[d+4>>2]|0)+-1}if(!(df(b,2)|0))return;c[d>>2]=(c[d>>2]|0)+1;c[d+4>>2]=(c[d+4>>2]|0)+-1;return}function li(a,b,d,e,g,h,i,j,k,l){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0;m=ea;ea=ea+16|0;Fi(15519);+pa[c[(c[a>>2]|0)+44>>2]&3](a,b,d,e,g,h,i,j,k);+pa[c[(c[a>>2]|0)+48>>2]&3](a,b,d,e,g,h,i,j,k);+ma[c[(c[a>>2]|0)+36>>2]&1](a,b,d,j);l=c[2685]|0;a=(c[l+16>>2]|0)+-1|0;c[l+16>>2]=a;if(a|0){ea=m;return 0.0}do if(c[l+4>>2]|0){Y(m|0,0)|0;a=c[6746]|0;f[l+8>>2]=+f[l+8>>2]+ +(((c[m+4>>2]|0)-(c[a+4>>2]|0)+(((c[m>>2]|0)-(c[a>>2]|0)|0)*1e6|0)-(c[l+12>>2]|0)|0)>>>0)/1.0e3;if(!(c[l+16>>2]|0)){l=c[2685]|0;break}else{ea=m;return 0.0}}while(0);c[2685]=c[l+20>>2];ea=m;return 0.0}function mi(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;var e=0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0;e=ea;ea=ea+96|0;j=+f[c>>2];k=+f[c+4>>2];l=+f[c+8>>2];_p(e+80|0,j,k,l,+yy(j,k,l,+f[b>>2],+f[b+4>>2],+f[b+8>>2]));l=+f[e+80>>2];k=+f[e+80+4>>2];j=+f[e+80+8>>2];xp(e+64|0,+f[b>>2],+f[b+4>>2],+f[b+8>>2],l,k,j);Ko(e+48|0,+f[c>>2],+f[c+4>>2],+f[c+8>>2],+f[b>>2],+f[b+4>>2],+f[b+8>>2]);i=+f[e+48>>2];h=+f[e+48+4>>2];g=+f[e+48+8>>2];m=+DJ(d);_p(e+16|0,+f[e+64>>2],+f[e+64+4>>2],+f[e+64+8>>2],m);vp(e+32|0,l,k,j,+f[e+16>>2],+f[e+16+4>>2],+f[e+16+8>>2]);_p(e,i,h,g,+CJ(d));vp(a,+f[e+32>>2],+f[e+32+4>>2],+f[e+32+8>>2],+f[e>>2],+f[e+4>>2],+f[e+8>>2]);ea=e;return}function ni(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=c[b+212>>2]|0;if((f|0)==(c[b+216>>2]|0)?(i=(f|0)==0?1:f<<1,(f|0)<(i|0)):0){if(!i)g=0;else{c[6747]=(c[6747]|0)+1;f=kb((i<<2|3)+16|0)|0;if(!f)g=0;else{c[(f+4+15&-16)+-4>>2]=f;g=f+4+15&-16}f=c[b+212>>2]|0}if((f|0)>0){h=0;do{c[g+(h<<2)>>2]=c[(c[b+220>>2]|0)+(h<<2)>>2];h=h+1|0}while((h|0)!=(f|0))}h=c[b+220>>2]|0;if(h){if(a[b+224>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[h+-4>>2]|0);f=c[b+212>>2]|0}c[b+220>>2]=0}a[b+224>>0]=1;c[b+220>>2]=g;c[b+216>>2]=i}c[(c[b+220>>2]|0)+(f<<2)>>2]=d;c[b+212>>2]=f+1;if(!e)return;Ph(c[d+28>>2]|0,d);Ph(c[d+32>>2]|0,d);return}function oi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0;e=c[a+4>>2]|0;if(e|0)uk(e,b,d);e=c[a>>2]|0;if(!e)return;m=+f[b>>2];k=+f[e+128>>2];l=+f[b+4>>2];j=+f[b+8>>2];g=+f[d+4>>2];o=+f[d+8>>2];n=+f[d>>2];i=+f[e+180>>2]*(j*g-l*o)+ +f[e+184>>2]*(m*o-j*n)+(l*n-m*g)*+f[e+188>>2];h=(j*g-l*o)*+f[e+196>>2]+(m*o-j*n)*+f[e+200>>2]+(l*n-m*g)*+f[e+204>>2];g=(j*g-l*o)*+f[e+212>>2]+(m*o-j*n)*+f[e+216>>2]+(l*n-m*g)*+f[e+220>>2];f[e+276>>2]=m*k+ +f[e+276>>2];f[e+280>>2]=k*l+ +f[e+280>>2];f[e+284>>2]=k*j+ +f[e+284>>2];f[e+292>>2]=i+ +f[e+292>>2];f[e+296>>2]=h+ +f[e+296>>2];f[e+300>>2]=g+ +f[e+300>>2];c[e+312>>2]=(c[e+312>>2]|0)+1;return}function pi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0;v=+f[a+552>>2];u=+f[a+568>>2];t=+f[a+584>>2];s=+f[b>>2];r=+f[b+4>>2];q=+f[b+8>>2];o=+f[b+16>>2];n=+f[b+20>>2];m=+f[b+24>>2];k=+f[b+32>>2];i=+f[b+36>>2];g=+f[b+40>>2];j=+f[a+556>>2];h=+f[a+572>>2];e=+f[a+588>>2];x=+f[a+620>>2];w=+f[a+636>>2];d=+f[a+652>>2];p=x*+f[c>>2]+w*+f[c+4>>2]+d*+f[c+8>>2];l=x*+f[c+16>>2]+w*+f[c+20>>2]+d*+f[c+24>>2];d=x*+f[c+32>>2]+w*+f[c+36>>2]+d*+f[c+40>>2];d=+y(+((v*s+u*r+t*q)*p+(v*o+u*n+t*m)*l+(v*k+u*i+t*g)*d),+((s*j+r*h+q*e)*p+(o*j+n*h+m*e)*l+(k*j+i*h+g*e)*d));return +(d*+f[a+732>>2])}function qi(b){b=b|0;var d=0,e=0,g=0,h=0,i=0;i=ea;ea=ea+16|0;Fi(17615);d=c[b+8>>2]|0;if((d|0)>0){g=0;do{e=c[(c[b+16>>2]|0)+(g<<2)>>2]|0;if(!(a[b+76>>0]|0))switch(c[e+216>>2]|0){case 2:case 5:break;default:h=11}else h=11;if((h|0)==11){h=0;ve(b,e);d=c[b+8>>2]|0}g=g+1|0}while((g|0)<(d|0))}d=c[2685]|0;h=(c[d+16>>2]|0)+-1|0;c[d+16>>2]=h;if(h|0){ea=i;return}do if(c[d+4>>2]|0){Y(i|0,0)|0;h=c[6746]|0;f[d+8>>2]=+f[d+8>>2]+ +(((c[i+4>>2]|0)-(c[h+4>>2]|0)+(((c[i>>2]|0)-(c[h>>2]|0)|0)*1e6|0)-(c[d+12>>2]|0)|0)>>>0)/1.0e3;if(!(c[d+16>>2]|0)){d=c[2685]|0;break}else{ea=i;return}}while(0);c[2685]=c[d+20>>2];ea=i;return}function ri(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=c[a+8>>2]|0;if((d|0)>0){f=0;do{e=c[(c[a+16>>2]|0)+(f<<2)>>2]|0;if(c[e+236>>2]&2){g=ra[c[(c[e>>2]|0)+16>>2]&127](e)|0;g=va[c[(c[b>>2]|0)+16>>2]&63](b,g,1)|0;d=va[c[(c[e>>2]|0)+20>>2]&63](e,c[g+8>>2]|0,b)|0;Ta[c[(c[b>>2]|0)+20>>2]&31](b,g,d,1497645650,e);d=c[a+8>>2]|0}f=f+1|0}while((f|0)<(d|0))}if((c[a+212>>2]|0)<=0)return;d=0;do{g=c[(c[a+220>>2]|0)+(d<<2)>>2]|0;e=ra[c[(c[g>>2]|0)+36>>2]&127](g)|0;e=va[c[(c[b>>2]|0)+16>>2]&63](b,e,1)|0;f=va[c[(c[g>>2]|0)+40>>2]&63](g,c[e+8>>2]|0,b)|0;Ta[c[(c[b>>2]|0)+20>>2]&31](b,e,f,1397641027,g);d=d+1|0}while((d|0)<(c[a+212>>2]|0));return}function si(a){a=a|0;var b=0.0,d=0,e=0,g=0,h=0;e=ea;ea=ea+32|0;c[a+32>>2]=1566444395;c[a+36>>2]=1566444395;c[a+40>>2]=1566444395;f[a+44>>2]=0.0;c[a+48>>2]=-581039253;c[a+52>>2]=-581039253;c[a+56>>2]=-581039253;f[a+60>>2]=0.0;if((c[a+16>>2]|0)<=0){ea=e;return}d=0;do{g=c[a+24>>2]|0;h=c[g+(d*80|0)+64>>2]|0;Pa[c[(c[h>>2]|0)+8>>2]&127](h,g+(d*80|0)|0,e+16|0,e);b=+f[e+16>>2];if(+f[a+32>>2]>b)f[a+32>>2]=b;b=+f[e>>2];if(+f[a+48>>2]>2]=b;b=+f[e+16+4>>2];if(+f[a+36>>2]>b)f[a+36>>2]=b;b=+f[e+4>>2];if(+f[a+52>>2]>2]=b;b=+f[e+16+8>>2];if(+f[a+40>>2]>b)f[a+40>>2]=b;b=+f[e+8>>2];if(+f[a+56>>2]>2]=b;d=d+1|0}while((d|0)<(c[a+16>>2]|0));ea=e;return}function ti(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=c[b+12>>2]|0;if(!e)return;if(!(a[b+8>>0]|0))return;f=c[d+4>>2]|0;if((f|0)==(c[d+8>>2]|0)?(h=(f|0)==0?1:f<<1,(f|0)<(h|0)):0){if(!h){e=f;f=0}else{c[6747]=(c[6747]|0)+1;e=kb((h<<2|3)+16|0)|0;if(!e)f=0;else{c[(e+4+15&-16)+-4>>2]=e;f=e+4+15&-16}e=c[d+4>>2]|0}if((e|0)>0){g=0;do{c[f+(g<<2)>>2]=c[(c[d+12>>2]|0)+(g<<2)>>2];g=g+1|0}while((g|0)!=(e|0))}g=c[d+12>>2]|0;if(g){if(a[d+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0);e=c[d+4>>2]|0}c[d+12>>2]=0}a[d+16>>0]=1;c[d+12>>2]=f;c[d+8>>2]=h;f=e;e=c[b+12>>2]|0}c[(c[d+12>>2]|0)+(f<<2)>>2]=e;c[d+4>>2]=f+1;return}function ui(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=c[b+20>>2]|0;if(!e)return;if(!(a[b+16>>0]|0))return;f=c[d+4>>2]|0;if((f|0)==(c[d+8>>2]|0)?(h=(f|0)==0?1:f<<1,(f|0)<(h|0)):0){if(!h){e=f;f=0}else{c[6747]=(c[6747]|0)+1;e=kb((h<<2|3)+16|0)|0;if(!e)f=0;else{c[(e+4+15&-16)+-4>>2]=e;f=e+4+15&-16}e=c[d+4>>2]|0}if((e|0)>0){g=0;do{c[f+(g<<2)>>2]=c[(c[d+12>>2]|0)+(g<<2)>>2];g=g+1|0}while((g|0)!=(e|0))}g=c[d+12>>2]|0;if(g){if(a[d+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0);e=c[d+4>>2]|0}c[d+12>>2]=0}a[d+16>>0]=1;c[d+12>>2]=f;c[d+8>>2]=h;f=e;e=c[b+20>>2]|0}c[(c[d+12>>2]|0)+(f<<2)>>2]=e;c[d+4>>2]=f+1;return}function vi(b){b=b|0;var d=0;d=c[b+12>>2]|0;if(d|0){if(a[b+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+12>>2]=0}a[b+16>>0]=1;c[b+12>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;d=c[b+32>>2]|0;if(d|0){if(a[b+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+32>>2]=0}a[b+36>>0]=1;c[b+32>>2]=0;c[b+24>>2]=0;c[b+28>>2]=0;d=c[b+52>>2]|0;if(d|0){if(a[b+56>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+52>>2]=0}a[b+56>>0]=1;c[b+52>>2]=0;c[b+44>>2]=0;c[b+48>>2]=0;d=c[b+72>>2]|0;if(!d){a[b+76>>0]=1;c[b+72>>2]=0;c[b+64>>2]=0;b=b+68|0;c[b>>2]=0;return}if(a[b+76>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+72>>2]=0;a[b+76>>0]=1;c[b+72>>2]=0;c[b+64>>2]=0;b=b+68|0;c[b>>2]=0;return}function wi(b){b=b|0;var d=0;d=c[b+72>>2]|0;if(d|0){if(a[b+76>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+72>>2]=0}a[b+76>>0]=1;c[b+72>>2]=0;c[b+64>>2]=0;c[b+68>>2]=0;d=c[b+52>>2]|0;if(d|0){if(a[b+56>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+52>>2]=0}a[b+56>>0]=1;c[b+52>>2]=0;c[b+44>>2]=0;c[b+48>>2]=0;d=c[b+32>>2]|0;if(d|0){if(a[b+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+32>>2]=0}a[b+36>>0]=1;c[b+32>>2]=0;c[b+24>>2]=0;c[b+28>>2]=0;d=c[b+12>>2]|0;if(!d){a[b+16>>0]=1;c[b+12>>2]=0;c[b+4>>2]=0;b=b+8|0;c[b>>2]=0;return}if(a[b+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+12>>2]=0;a[b+16>>0]=1;c[b+12>>2]=0;c[b+4>>2]=0;b=b+8|0;c[b>>2]=0;return}function xi(a,b,d){a=a|0;b=+b;d=d|0;var e=0,g=0.0,h=0.0,i=0.0,j=0;e=ea;ea=ea+96|0;i=+ha[c[(c[a>>2]|0)+48>>2]&15](a);c[e+32>>2]=1065353216;c[e+32+4>>2]=0;c[e+32+4+4>>2]=0;c[e+32+4+8>>2]=0;c[e+32+4+12>>2]=0;c[e+32+20>>2]=1065353216;c[e+32+24>>2]=0;c[e+32+24+4>>2]=0;c[e+32+24+8>>2]=0;c[e+32+24+12>>2]=0;c[e+32+40>>2]=1065353216;j=e+32+44|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;c[j+16>>2]=0;Pa[c[(c[a>>2]|0)+8>>2]&127](a,e+32|0,e+16|0,e);h=(i+(+f[e>>2]-+f[e+16>>2])*.5)*2.0;g=(i+(+f[e+4>>2]-+f[e+16+4>>2])*.5)*2.0;i=(i+(+f[e+8>>2]-+f[e+16+8>>2])*.5)*2.0;f[d>>2]=b*.0833333283662796*(g*g+i*i);f[d+4>>2]=b*.0833333283662796*(h*h+i*i);f[d+8>>2]=b*.0833333283662796*(h*h+g*g);f[d+12>>2]=0.0;ea=e;return}function yi(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=ea;ea=ea+64|0;g=c[d>>2]|0;h=d+(c[g+-8>>2]|0)|0;g=c[g+-4>>2]|0;c[i>>2]=e;c[i+4>>2]=d;c[i+8>>2]=3472;d=i+12|0;f=d+40|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(f|0));b[i+12+40>>1]=0;a[i+12+42>>0]=0;a:do if(rt(g,e,0)|0){c[i+48>>2]=1;Va[c[(c[g>>2]|0)+20>>2]&7](g,i,h,h,1,0);d=(c[i+24>>2]|0)==1?h:0}else{Ta[c[(c[g>>2]|0)+24>>2]&31](g,i,h,1,0);switch(c[i+36>>2]|0){case 0:{d=((c[i+40>>2]|0)==1?(c[i+28>>2]|0)==1:0)&(c[i+32>>2]|0)==1?c[i+20>>2]|0:0;break a}case 1:break;default:{d=0;break a}}if((c[i+24>>2]|0)!=1?!(((c[i+40>>2]|0)==0?(c[i+28>>2]|0)==1:0)&(c[i+32>>2]|0)==1):0){d=0;break}d=c[i+16>>2]|0}while(0);ea=i;return d|0}function zi(a,b){a=a|0;b=+b;var d=0,e=0,g=0,h=0.0,i=0.0,j=0.0,k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0;e=c[a+732>>2]|0;if((e|0)<=0)return;a=c[a+740>>2]|0;d=0;do{n=c[a+(d*52|0)+8>>2]|0;g=c[a+(d*52|0)+12>>2]|0;s=+f[n+40>>2];q=+f[n+44>>2];o=+f[n+48>>2];k=a+(d*52|0)+36|0;r=+f[k>>2];m=a+(d*52|0)+40|0;p=+f[m>>2];l=a+(d*52|0)+44|0;h=+f[l>>2];j=-(+f[a+(d*52|0)+32>>2]*((s-+f[g+40>>2])*r+(q-+f[g+44>>2])*p+(o-+f[g+48>>2])*h)*b);i=+f[n+88>>2]*j;f[n+40>>2]=s+r*i;f[n+44>>2]=q+p*i;f[n+48>>2]=o+h*i;j=+f[g+88>>2]*j;i=j*+f[m>>2];h=j*+f[l>>2];f[g+40>>2]=+f[g+40>>2]-+f[k>>2]*j;f[g+44>>2]=+f[g+44>>2]-i;f[g+48>>2]=+f[g+48>>2]-h;d=d+1|0}while((d|0)!=(e|0));return}function Ai(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;g=c[b+328>>2]|0;if((g|0)==(c[b+332>>2]|0)?(j=(g|0)==0?1:g<<1,(g|0)<(j|0)):0){if(!j)h=0;else{c[6747]=(c[6747]|0)+1;g=kb((j<<2|3)+16|0)|0;if(!g)h=0;else{c[(g+4+15&-16)+-4>>2]=g;h=g+4+15&-16}g=c[b+328>>2]|0}if((g|0)>0){i=0;do{c[h+(i<<2)>>2]=c[(c[b+336>>2]|0)+(i<<2)>>2];i=i+1|0}while((i|0)!=(g|0))}i=c[b+336>>2]|0;if(i){if(a[b+340>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0);g=c[b+328>>2]|0}c[b+336>>2]=0}a[b+340>>0]=1;c[b+336>>2]=h;c[b+332>>2]=j}c[(c[b+336>>2]|0)+(g<<2)>>2]=d;c[b+328>>2]=g+1;c[d+284>>2]=c[b+452>>2];Tf(b,d,e,f);return}function Bi(b){b=b|0;var d=0,e=0,g=0,h=0.0;e=ea;ea=ea+96|0;a[b+88>>0]=1;if((a[24976]|0)==0?DC(24976)|0:0){c[5900]=1065353216;c[5901]=0;c[5902]=0;c[5903]=0;c[5904]=0;c[5905]=1065353216;c[5906]=0;c[5907]=0;c[5908]=0;c[5909]=0;c[5910]=1065353216;f[5911]=0.0;c[5912]=-1082130432;c[5913]=0;c[5914]=0;c[5915]=0;c[5916]=0;c[5917]=-1082130432;c[5918]=0;c[5919]=0;c[5920]=0;c[5921]=0;c[5922]=-1082130432;f[5923]=0.0;PB(24976)}d=e;g=d+96|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(g|0));Pa[c[(c[b>>2]|0)+76>>2]&127](b,23600,e,6);h=+f[b+44>>2];f[b+72>>2]=+f[e>>2]+h;f[b+56>>2]=+f[e+48>>2]-h;f[b+76>>2]=+f[e+20>>2]+h;f[b+60>>2]=+f[e+68>>2]-h;f[b+80>>2]=+f[e+40>>2]+h;f[b+64>>2]=+f[e+88>>2]-h;ea=e;return}function Ci(b){b=b|0;var d=0,e=0,g=0,h=0.0;e=ea;ea=ea+96|0;a[b+84>>0]=1;if((a[24984]|0)==0?DC(24984)|0:0){c[5924]=1065353216;c[5925]=0;c[5926]=0;c[5927]=0;c[5928]=0;c[5929]=1065353216;c[5930]=0;c[5931]=0;c[5932]=0;c[5933]=0;c[5934]=1065353216;f[5935]=0.0;c[5936]=-1082130432;c[5937]=0;c[5938]=0;c[5939]=0;c[5940]=0;c[5941]=-1082130432;c[5942]=0;c[5943]=0;c[5944]=0;c[5945]=0;c[5946]=-1082130432;f[5947]=0.0;PB(24984)}d=e;g=d+96|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(g|0));Pa[c[(c[b>>2]|0)+76>>2]&127](b,23696,e,6);h=+f[b+44>>2];f[b+68>>2]=+f[e>>2]+h;f[b+52>>2]=+f[e+48>>2]-h;f[b+72>>2]=+f[e+20>>2]+h;f[b+56>>2]=+f[e+68>>2]-h;f[b+76>>2]=+f[e+40>>2]+h;f[b+60>>2]=+f[e+88>>2]-h;ea=e;return}function Di(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0.0,h=0.0,i=0.0,j=0.0,k=0.0;i=+f[a+24>>2];j=+f[a+28>>2];k=+f[a+32>>2];h=i*+f[b>>2]+j*+f[b+4>>2]+k*+f[b+8>>2];g=+f[a+20>>2];if(h>g){f[a+20>>2]=h;c[a+4>>2]=c[b>>2];c[a+4+4>>2]=c[b+4>>2];c[a+4+8>>2]=c[b+8>>2];c[a+4+12>>2]=c[b+12>>2];g=h}h=i*+f[b+16>>2]+j*+f[b+20>>2]+k*+f[b+24>>2];if(h>g){f[a+20>>2]=h;c[a+4>>2]=c[b+16>>2];c[a+4+4>>2]=c[b+16+4>>2];c[a+4+8>>2]=c[b+16+8>>2];c[a+4+12>>2]=c[b+16+12>>2]}else h=g;g=i*+f[b+32>>2]+j*+f[b+36>>2]+k*+f[b+40>>2];if(!(g>h))return;f[a+20>>2]=g;c[a+4>>2]=c[b+32>>2];c[a+4+4>>2]=c[b+32+4>>2];c[a+4+8>>2]=c[b+32+8>>2];c[a+4+12>>2]=c[b+32+12>>2];return}function Ei(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=c[b+76>>2]|0;if(!e)return;f=c[d+4>>2]|0;if((f|0)==(c[d+8>>2]|0)?(h=(f|0)==0?1:f<<1,(f|0)<(h|0)):0){if(!h){e=f;f=0}else{c[6747]=(c[6747]|0)+1;e=kb((h<<2|3)+16|0)|0;if(!e)f=0;else{c[(e+4+15&-16)+-4>>2]=e;f=e+4+15&-16}e=c[d+4>>2]|0}if((e|0)>0){g=0;do{c[f+(g<<2)>>2]=c[(c[d+12>>2]|0)+(g<<2)>>2];g=g+1|0}while((g|0)!=(e|0))}g=c[d+12>>2]|0;if(g){if(a[d+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0);e=c[d+4>>2]|0}c[d+12>>2]=0}a[d+16>>0]=1;c[d+12>>2]=f;c[d+8>>2]=h;f=e;e=c[b+76>>2]|0}c[(c[d+12>>2]|0)+(f<<2)>>2]=e;c[d+4>>2]=f+1;return}function Fi(a){a=a|0;var b=0,d=0,e=0,f=0;f=ea;ea=ea+16|0;b=c[2685]|0;if((c[b>>2]|0)!=(a|0)){d=c[b+24>>2]|0;a:do if(!d)e=6;else while(1){if((c[d>>2]|0)==(a|0)){b=d;break a}d=c[d+28>>2]|0;if(!d){e=6;break}}while(0);if((e|0)==6){e=GI(36)|0;c[e>>2]=a;c[e+4>>2]=0;c[e+4+4>>2]=0;c[e+4+8>>2]=0;c[e+4+12>>2]=0;c[e+20>>2]=b;c[e+24>>2]=0;c[e+28>>2]=0;c[e+32>>2]=0;mr(e);c[e+28>>2]=c[b+24>>2];c[b+24>>2]=e;b=e}c[2685]=b}a=b+4|0;c[a>>2]=(c[a>>2]|0)+1;a=b+16|0;e=c[a>>2]|0;c[a>>2]=e+1;if(e|0){ea=f;return}Y(f|0,0)|0;e=c[6746]|0;c[b+12>>2]=(c[f+4>>2]|0)-(c[e+4>>2]|0)+(((c[f>>2]|0)-(c[e>>2]|0)|0)*1e6|0);ea=f;return}function Gi(b){b=b|0;var d=0;d=Ls()|0;c[d+8>>2]=0;c[d>>2]=7404;a[d+28>>0]=1;c[d+24>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;c[d+32>>2]=1566444395;c[d+36>>2]=1566444395;c[d+40>>2]=1566444395;f[d+44>>2]=0.0;c[d+48>>2]=-581039253;c[d+52>>2]=-581039253;c[d+56>>2]=-581039253;f[d+60>>2]=0.0;c[d+64>>2]=0;c[d+68>>2]=1;f[d+72>>2]=0.0;c[d+76>>2]=1065353216;c[d+80>>2]=1065353216;c[d+84>>2]=1065353216;f[d+88>>2]=0.0;c[d+4>>2]=31;if(!b)return d|0;c[6747]=(c[6747]|0)+1;b=kb(79)|0;if(!b)b=0;else{c[(b+4+15&-16)+-4>>2]=b;b=b+4+15&-16}a[b+36>>0]=1;c[b+32>>2]=0;c[b+24>>2]=0;c[b+28>>2]=0;a[b+56>>0]=1;c[b+52>>2]=0;c[b+44>>2]=0;c[b+48>>2]=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=-1;c[b+12>>2]=0;c[b+16>>2]=0;c[d+64>>2]=b;return d|0}function Hi(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,s=0.0,t=0.0,u=0.0,v=0.0;h=+ha[c[(c[a>>2]|0)+48>>2]&15](a);l=h+ +f[a+28>>2];j=h+ +f[a+32>>2];h=h+ +f[a+36>>2];v=+r(+(+f[b>>2]));u=+r(+(+f[b+4>>2]));t=+r(+(+f[b+8>>2]));q=+r(+(+f[b+16>>2]));p=+r(+(+f[b+20>>2]));o=+r(+(+f[b+24>>2]));k=+r(+(+f[b+32>>2]));i=+r(+(+f[b+36>>2]));g=+r(+(+f[b+40>>2]));s=+f[b+48>>2];n=+f[b+52>>2];m=+f[b+56>>2];f[d>>2]=s-(l*v+j*u+h*t);f[d+4>>2]=n-(l*q+j*p+h*o);f[d+8>>2]=m-(l*k+j*i+h*g);f[d+12>>2]=0.0;f[e>>2]=l*v+j*u+h*t+s;f[e+4>>2]=l*q+j*p+h*o+n;f[e+8>>2]=m+(l*k+j*i+h*g);f[e+12>>2]=0.0;return}function Ii(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0.0,h=0.0,i=0.0,j=0.0,k=0.0;i=+f[a+88>>2];j=+f[a+92>>2];k=+f[a+96>>2];h=i*+f[b>>2]+j*+f[b+4>>2]+k*+f[b+8>>2];g=+f[a+84>>2];if(h>g){f[a+84>>2]=h;c[a+4>>2]=c[b>>2];c[a+4+4>>2]=c[b+4>>2];c[a+4+8>>2]=c[b+8>>2];c[a+4+12>>2]=c[b+12>>2];g=h}h=i*+f[b+16>>2]+j*+f[b+20>>2]+k*+f[b+24>>2];if(h>g){f[a+84>>2]=h;c[a+4>>2]=c[b+16>>2];c[a+4+4>>2]=c[b+16+4>>2];c[a+4+8>>2]=c[b+16+8>>2];c[a+4+12>>2]=c[b+16+12>>2]}else h=g;g=i*+f[b+32>>2]+j*+f[b+36>>2]+k*+f[b+40>>2];if(!(g>h))return;f[a+84>>2]=g;c[a+4>>2]=c[b+32>>2];c[a+4+4>>2]=c[b+32+4>>2];c[a+4+8>>2]=c[b+32+8>>2];c[a+4+12>>2]=c[b+32+12>>2];return}function Ji(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;while(1){l=c[a+12>>2]|0;k=c[l+(((b+d|0)/2|0)<<3)>>2]|0;e=b;f=d;while(1){while(1){h=l+(e<<3)|0;i=e+1|0;if((c[h>>2]|0)<(k|0))e=i;else break}j=f;while(1){g=l+(j<<3)|0;f=j+-1|0;if((c[g>>2]|0)>(k|0))j=f;else break}if((e|0)>(j|0))f=j;else{m=c[h>>2]|0;l=c[h+4>>2]|0;e=c[g+4>>2]|0;c[h>>2]=c[g>>2];c[h+4>>2]=e;e=(c[a+12>>2]|0)+(j<<3)|0;c[e>>2]=m;c[e+4>>2]=l;e=i}if((e|0)>(f|0))break;l=c[a+12>>2]|0}if((f|0)>(b|0))Ji(a,b,f);if((e|0)<(d|0))b=e;else break}return}function Ki(b){b=b|0;var d=0;c[b>>2]=9896;if(c[b+108>>2]|0){d=c[b+112>>2]|0;Ca[c[c[d>>2]>>2]&511](d);d=c[b+112>>2]|0;if(d|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}d=c[b+108>>2]|0;Ca[c[c[d>>2]>>2]&511](d);d=c[b+108>>2]|0;if(d|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}}d=c[b+88>>2]|0;if(d|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}d=c[b+84>>2]|0;if(d|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}d=c[b+80>>2]|0;if(d|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}d=c[b+60>>2]|0;if(d|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}if(!(a[b+100>>0]|0))return;d=c[b+92>>2]|0;Ca[c[c[d>>2]>>2]&511](d);d=c[b+92>>2]|0;if(!d)return;c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0);return}function Li(a,b,d){a=a|0;b=+b;d=+d;var e=0,g=0,h=0.0,i=0.0,j=0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0;g=c[a+732>>2]|0;if((g|0)<=0)return;a=c[a+740>>2]|0;e=0;do{d=+f[a+(e*52|0)+24>>2];if(d>0.0?(j=c[a+(e*52|0)+8>>2]|0,k=c[a+(e*52|0)+12>>2]|0,l=+f[j+8>>2],n=+f[k+8>>2]-l,m=+f[j+12>>2],p=+f[k+12>>2]-m,h=+f[j+16>>2],o=+f[k+16>>2]-h,i=+f[a+(e*52|0)+28>>2],i+(n*n+p*p+o*o)>1.1920928955078125e-07):0){d=(i-(n*n+p*p+o*o))/(d*(i+(n*n+p*p+o*o)))*b;q=d*+f[j+88>>2];f[j+8>>2]=l-n*q;f[j+12>>2]=m-p*q;f[j+16>>2]=h-o*q;d=d*+f[k+88>>2];f[k+8>>2]=+f[k+8>>2]+n*d;f[k+12>>2]=p*d+ +f[k+12>>2];f[k+16>>2]=o*d+ +f[k+16>>2]}e=e+1|0}while((e|0)!=(g|0));return}function Mi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0;e=ea;ea=ea+96|0;c[e+32>>2]=1065353216;c[e+32+4>>2]=0;c[e+32+4+4>>2]=0;c[e+32+4+8>>2]=0;c[e+32+4+12>>2]=0;c[e+32+20>>2]=1065353216;c[e+32+24>>2]=0;c[e+32+24+4>>2]=0;c[e+32+24+8>>2]=0;c[e+32+24+12>>2]=0;c[e+32+40>>2]=1065353216;m=e+32+44|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;c[m+16>>2]=0;Pa[c[(c[a>>2]|0)+8>>2]&127](a,e+32|0,e+16|0,e);l=+f[e>>2];k=+f[e+16>>2];j=+f[e+4>>2];i=+f[e+16+4>>2];h=+f[e+8>>2];g=+f[e+16+8>>2];f[d>>2]=+s(+((l-k)*(l-k)+(j-i)*(j-i)+(h-g)*(h-g)))*.5;f[b>>2]=(l+k)*.5;f[b+4>>2]=(j+i)*.5;f[b+8>>2]=(h+g)*.5;f[b+12>>2]=0.0;ea=e;return}function Ni(){var b=0,d=0;d=Ls()|0;c[d+8>>2]=0;c[d>>2]=7404;a[d+28>>0]=1;c[d+24>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;c[d+32>>2]=1566444395;c[d+36>>2]=1566444395;c[d+40>>2]=1566444395;f[d+44>>2]=0.0;c[d+48>>2]=-581039253;c[d+52>>2]=-581039253;c[d+56>>2]=-581039253;f[d+60>>2]=0.0;c[d+64>>2]=0;c[d+68>>2]=1;f[d+72>>2]=0.0;c[d+76>>2]=1065353216;c[d+80>>2]=1065353216;c[d+84>>2]=1065353216;f[d+88>>2]=0.0;c[d+4>>2]=31;c[6747]=(c[6747]|0)+1;b=kb(79)|0;if(!b)b=0;else{c[(b+4+15&-16)+-4>>2]=b;b=b+4+15&-16}a[b+36>>0]=1;c[b+32>>2]=0;c[b+24>>2]=0;c[b+28>>2]=0;a[b+56>>0]=1;c[b+52>>2]=0;c[b+44>>2]=0;c[b+48>>2]=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=-1;c[b+12>>2]=0;c[b+16>>2]=0;c[d+64>>2]=b;return d|0}function Oi(a,d,g,h){a=a|0;d=d|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0;i=c[a+108>>2]|0;if(i|0){Pa[c[(c[i>>2]|0)+28>>2]&127](i,d,g,h);return}i=b[a+56>>1]|0;if(!(i<<16>>16))return;k=1;m=1;do{j=c[a+68>>2]|0;if(b[j+(k<<2)>>1]&1){l=c[a+60>>2]|0;k=e[j+(k<<2)+2>>1]|0;if(!(+f[d>>2]>+f[l+(k<<6)+32>>2])?!(+f[g>>2]<+f[l+(k<<6)+16>>2]):0)j=1;else j=0;if(!(!(+f[d+8>>2]>+f[l+(k<<6)+40>>2])?!(+f[g+8>>2]<+f[l+(k<<6)+24>>2]):0))j=0;if(!(+f[d+4>>2]>+f[l+(k<<6)+36>>2])?!(+f[g+4>>2]<+f[l+(k<<6)+20>>2]|j^1):0){ta[c[(c[h>>2]|0)+8>>2]&31](h,l+(k<<6)|0)|0;i=b[a+56>>1]|0}}m=m+1<<16>>16;k=m&65535}while(((i&65535)<<1|1)>>>0>k>>>0);return}function Pi(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0.0,h=0.0,i=0.0,j=0.0,k=0;g=+f[b>>2];h=+f[b+16>>2];j=g>2];if((j+f[a+24>>2])return;k=g>h?b:b+16|0;if(+f[(+f[k>>2]>i?k:b+32|0)>>2]<+f[a+8>>2])return;i=+f[b+8>>2];g=+f[b+24>>2];j=i>2];if((j+f[a+32>>2])return;k=i>g?b+8|0:b+24|0;if(+f[(+f[k>>2]>h?k:b+40|0)>>2]<+f[a+16>>2])return;g=+f[b+4>>2];h=+f[b+20>>2];j=g>2];if((j+f[a+28>>2])return;k=g>h?b+4|0:b+20|0;if(+f[(+f[k>>2]>i?k:b+36|0)>>2]<+f[a+12>>2])return;k=c[a+4>>2]|0;Pa[c[(c[k>>2]|0)+8>>2]&127](k,b,d,e);return}function Qi(b,d,e,g){b=b|0;d=d|0;e=e|0;g=+g;var h=0,i=0.0,j=0.0,k=0.0;h=ea;ea=ea+16|0;f[b+32>>2]=g;c[b+8>>2]=c[d>>2];c[b+8+4>>2]=c[d+4>>2];c[b+8+8>>2]=c[d+8>>2];c[b+8+12>>2]=c[d+12>>2];i=+f[b+28>>2];k=+f[e+4>>2]-i*+f[d+4>>2];j=+f[e+8>>2]-i*+f[d+8>>2];f[h>>2]=+f[e>>2]-+f[d>>2]*i;f[h+4>>2]=k;f[h+8>>2]=j;f[h+12>>2]=0.0;g=i+ +f[b+24>>2]+g;f[b+32>>2]=g;if(!(g<0.0)){b=b+4|0;b=c[b>>2]|0;e=c[b>>2]|0;e=e+16|0;e=c[e>>2]|0;Na[e&15](b,d,h,g);ea=h;return}a[b+36>>0]=1;b=b+4|0;b=c[b>>2]|0;e=c[b>>2]|0;e=e+16|0;e=c[e>>2]|0;Na[e&15](b,d,h,g);ea=h;return}function Ri(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,g=0,h=0.0;g=ea;ea=ea+16|0;c[a+4>>2]=c[b+24>>2];e=c[b>>2]|0;c[a+8>>2]=e;if(d){c[a+52>>2]=c[b+8>>2];c[a+52+4>>2]=c[b+8+4>>2];c[a+52+8>>2]=c[b+8+8>>2];c[a+52+12>>2]=c[b+8+12>>2];e=a+68|0;d=a+20|0;a=a+36|0;h=+f[b+24>>2];up(e,d,a,h);h=+f[b+24>>2];ea=g;return +h}else{e=NJ(sJ(e)|0)|0;ql(g,e,+f[b+8>>2],+f[b+12>>2],+f[b+16>>2]);c[a+52>>2]=c[g>>2];c[a+52+4>>2]=c[g+4>>2];c[a+52+8>>2]=c[g+8>>2];c[a+52+12>>2]=c[g+12>>2];e=a+68|0;d=a+20|0;a=a+36|0;h=+f[b+24>>2];up(e,d,a,h);h=+f[b+24>>2];ea=g;return +h}return 0.0}function Si(b,d){b=b|0;d=d|0;var e=0,f=0;a:do if((d|0)!=0&(b&3|0)!=0)while(1){if(!(a[b>>0]|0))break a;b=b+1|0;d=d+-1|0;if(!((d|0)!=0&(b&3|0)!=0)){e=d;d=(d|0)!=0;f=5;break}}else{e=d;d=(d|0)!=0;f=5}while(0);b:do if((f|0)==5){do if(d){if(!(a[b>>0]|0))if(!e)break;else break b;c:do if(e>>>0>3)while(1){d=c[b>>2]|0;if((d&-2139062144^-2139062144)&d+-16843009|0)break c;b=b+4|0;e=e+-4|0;if(e>>>0<=3){f=11;break}}else f=11;while(0);if((f|0)==11)if(!e)break;while(1){if(!(a[b>>0]|0))break b;e=e+-1|0;if(!e)break;else b=b+1|0}}while(0);b=0}while(0);return b|0}function Ti(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;c[b>>2]=7340;d=c[b+8>>2]|0;e=c[d+8>>2]|0;if((e|0)>0){g=0;do{f=c[(c[d+16>>2]|0)+(g*12|0)+8>>2]|0;if(f|0){Ca[c[c[f>>2]>>2]&511](f);h=c[b+4>>2]|0;Ia[c[(c[h>>2]|0)+60>>2]&127](h,f)}g=g+1|0}while((g|0)!=(e|0));d=c[b+8>>2]|0}$g(d);d=c[b+8>>2]|0;Ca[c[c[d>>2]>>2]&511](d);d=c[b+8>>2]|0;if(d|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}d=c[b+24>>2]|0;if(!d){a[b+28>>0]=1;c[b+24>>2]=0;c[b+16>>2]=0;h=b+20|0;c[h>>2]=0;return}if(a[b+28>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+24>>2]=0;a[b+28>>0]=1;c[b+24>>2]=0;c[b+16>>2]=0;h=b+20|0;c[h>>2]=0;return}function Ui(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=ea;ea=ea+224|0;f=h+160|0;g=f+40|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));c[h+208>>2]=c[e>>2];if((Sb(0,d,h+208|0,h+80|0,h+160|0)|0)<0)e=-1;else{g=c[b>>2]|0;if((a[b+74>>0]|0)<1)c[b>>2]=g&-33;if(!(c[b+48>>2]|0)){f=c[b+44>>2]|0;c[b+44>>2]=h;c[b+28>>2]=h;c[b+20>>2]=h;c[b+48>>2]=80;c[b+16>>2]=h+80;e=Sb(b,d,h+208|0,h+80|0,h+160|0)|0;if(f){va[c[b+36>>2]&63](b,0,0)|0;e=(c[b+20>>2]|0)==0?-1:e;c[b+44>>2]=f;c[b+48>>2]=0;c[b+16>>2]=0;c[b+28>>2]=0;c[b+20>>2]=0}}else e=Sb(b,d,h+208|0,h+80|0,h+160|0)|0;d=c[b>>2]|0;c[b>>2]=d|g&32;e=(d&32|0)==0?e:-1}ea=h;return e|0}function Vi(b,d){b=b|0;d=d|0;c[b+204>>2]=c[d+48>>2];c[b+208>>2]=c[d+52>>2];c[b+212>>2]=c[d+56>>2];c[b+216>>2]=c[d+60>>2];c[b+220>>2]=c[d+64>>2];c[b+224>>2]=c[d+68>>2];c[b+156>>2]=c[d>>2];c[b+156+4>>2]=c[d+4>>2];c[b+156+8>>2]=c[d+8>>2];c[b+156+12>>2]=c[d+12>>2];c[b+172>>2]=c[d+16>>2];c[b+172+4>>2]=c[d+16+4>>2];c[b+172+8>>2]=c[d+16+8>>2];c[b+172+12>>2]=c[d+16+12>>2];c[b+188>>2]=c[d+32>>2];c[b+188+4>>2]=c[d+32+4>>2];c[b+188+8>>2]=c[d+32+8>>2];c[b+188+12>>2]=c[d+32+12>>2];c[b+228>>2]=c[d+72>>2];f[b+232>>2]=0.0;f[b+252>>2]=0.0;f[b+236>>2]=0.0;f[b+240>>2]=0.0;f[b+256>>2]=0.0;f[b+244>>2]=.10000000149011612;a[b+260>>0]=a[d+80>>0]&1;c[b+248>>2]=c[d+76>>2];return}function Wi(a){a=a|0;var b=0;c[a>>2]=4132;b=c[a+92>>2]|0;Ca[c[c[b>>2]>>2]&511](b);b=c[a+92>>2]|0;if(b|0){c[6748]=(c[6748]|0)+1;uc(c[b+-4>>2]|0)}b=c[a+96>>2]|0;Ca[c[c[b>>2]>>2]&511](b);b=c[a+96>>2]|0;if(b|0){c[6748]=(c[6748]|0)+1;uc(c[b+-4>>2]|0)}b=c[a+100>>2]|0;Ca[c[c[b>>2]>>2]&511](b);b=c[a+100>>2]|0;if(b|0){c[6748]=(c[6748]|0)+1;uc(c[b+-4>>2]|0)}b=c[a+104>>2]|0;Ca[c[c[b>>2]>>2]&511](b);b=c[a+104>>2]|0;if(b|0){c[6748]=(c[6748]|0)+1;uc(c[b+-4>>2]|0)}b=c[a+108>>2]|0;Ca[c[c[b>>2]>>2]&511](b);b=c[a+108>>2]|0;if(!b){ge(a);return}c[6748]=(c[6748]|0)+1;uc(c[b+-4>>2]|0);ge(a);return}function Xi(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;if((c[d+60>>2]|0)==2){f=c[d+48>>2]|0;jg(b+64|0,f)|0;g=c[b+68>>2]|0;if(g|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[b+68>>2]=f;c[b+76>>2]=(c[b+76>>2]|0)+-1}else{f=c[d+48>>2]|0;jg(b+4|0,f)|0;g=c[b+8>>2]|0;if(g|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[b+8>>2]=f;c[b+16>>2]=(c[b+16>>2]|0)+-1}f=c[d+52>>2]|0;if(!f)f=b+124+(c[d+60>>2]<<2)|0;else f=f+56|0;c[f>>2]=c[d+56>>2];f=c[d+56>>2]|0;if(f|0)c[f+52>>2]=c[d+52>>2];g=c[b+136>>2]|0;Ma[c[(c[g>>2]|0)+16>>2]&127](g,d,e);c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0);a[b+194>>0]=1;return}function Yi(a){a=a|0;var b=0.0,c=0.0,d=0.0,e=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0;n=+f[a+4>>2];h=+f[a+396>>2];m=+f[a+8>>2];e=+f[a+400>>2];l=+f[a+12>>2];c=+f[a+404>>2];k=+f[a+20>>2];j=+f[a+24>>2];i=+f[a+28>>2];g=+f[a+36>>2];d=+f[a+40>>2];b=+f[a+44>>2];f[a+264>>2]=n*h*n+m*e*m+l*c*l;f[a+268>>2]=n*h*k+m*e*j+l*c*i;f[a+272>>2]=n*h*g+m*e*d+l*c*b;f[a+276>>2]=0.0;f[a+280>>2]=h*k*n+e*j*m+c*i*l;f[a+284>>2]=h*k*k+e*j*j+c*i*i;f[a+288>>2]=h*k*g+e*j*d+c*i*b;f[a+292>>2]=0.0;f[a+296>>2]=h*g*n+e*d*m+c*b*l;f[a+300>>2]=h*g*k+e*d*j+c*b*i;f[a+304>>2]=h*g*g+e*d*d+c*b*b;f[a+308>>2]=0.0;return}function Zi(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;c[b>>2]=6744;e=c[b+8>>2]|0;d=c[b+16>>2]|0;if((e|0)>0){h=0;do{g=(c[d+(h<<2)>>2]|0)+188|0;f=c[g>>2]|0;if(f){e=c[b+68>>2]|0;e=ra[c[(c[e>>2]|0)+36>>2]&127](e)|0;Ma[c[(c[e>>2]|0)+40>>2]&127](e,f,c[b+24>>2]|0);e=c[b+68>>2]|0;Ma[c[(c[e>>2]|0)+12>>2]&127](e,f,c[b+24>>2]|0);c[g>>2]=0;e=c[b+8>>2]|0;d=c[b+16>>2]|0}h=h+1|0}while((h|0)<(e|0))}if(!d){a[b+20>>0]=1;c[b+16>>2]=0;c[b+8>>2]=0;b=b+12|0;c[b>>2]=0;return}if(a[b+20>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+16>>2]=0;a[b+20>>0]=1;c[b+16>>2]=0;c[b+8>>2]=0;b=b+12|0;c[b>>2]=0;return}function _i(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,g=0.0,h=0,i=0.0,j=0,k=0,l=0.0,m=0.0;j=c[b+52>>2]|0;k=c[j+32>>2]|0;b=c[k>>2]|0;l=+f[d>>2];m=+f[d+4>>2];i=+f[d+8>>2];j=c[j+24>>2]|0;if((j|0)<=1){k=b;k=k+8|0;c[a>>2]=c[k>>2];c[a+4>>2]=c[k+4>>2];c[a+8>>2]=c[k+8>>2];c[a+12>>2]=c[k+12>>2];return}g=l*+f[b+8>>2]+m*+f[b+12>>2]+i*+f[b+16>>2];d=1;h=0;while(1){b=c[k+(d<<2)>>2]|0;e=l*+f[b+8>>2]+m*+f[b+12>>2]+i*+f[b+16>>2];b=e>g;h=b?d:h;d=d+1|0;if((d|0)==(j|0))break;else g=b?e:g}k=c[k+(h<<2)>>2]|0;k=k+8|0;c[a>>2]=c[k>>2];c[a+4>>2]=c[k+4>>2];c[a+8>>2]=c[k+8>>2];c[a+12>>2]=c[k+12>>2];return}function $i(a,b){a=a|0;b=b|0;var d=0,e=0.0,g=0,h=0,i=0.0,j=0.0;c[a+248>>2]=c[b>>2];c[a+248+4>>2]=c[b+4>>2];c[a+248+8>>2]=c[b+8>>2];c[a+248+12>>2]=c[b+12>>2];d=c[a+232>>2]|0;if((d|0)<=0)return;h=0;do{g=c[(c[a+240>>2]|0)+(h<<2)>>2]|0;switch(c[g+216>>2]|0){case 2:case 5:break;default:if(!(c[g+504>>2]&1)){e=+f[g+344>>2];if(e!=0.0){j=1.0/e*+f[b+4>>2];i=1.0/e*+f[b+8>>2];f[g+364>>2]=1.0/e*+f[b>>2];f[g+368>>2]=j;f[g+372>>2]=i;f[g+376>>2]=0.0}c[g+380>>2]=c[b>>2];c[g+380+4>>2]=c[b+4>>2];c[g+380+8>>2]=c[b+8>>2];c[g+380+12>>2]=c[b+12>>2];d=c[a+232>>2]|0}}h=h+1|0}while((h|0)<(d|0));return}function aj(b,d){b=b|0;d=d|0;var e=0.0,g=0.0,h=0;if(a[b+738>>0]|0){c[d>>2]=0;c[d+4>>2]=0;return}c[d>>2]=5;c[d+4>>2]=1;e=+pi(b,(c[b+28>>2]|0)+4|0,(c[b+32>>2]|0)+4|0);f[b+728>>2]=e;f[b+708>>2]=0.0;f[b+712>>2]=0.0;a[b+716>>0]=0;g=+f[b+692>>2];do if(g>=0.0){e=(e-+f[b+688>>2])%6.2831854820251465;if(!(e<-3.1415927410125732)){if(e>3.1415927410125732)e=e+-6.2831854820251465}else e=e+6.2831854820251465;if(e<-g){a[b+716>>0]=1;f[b+708>>2]=-(g+e);f[b+712>>2]=1.0;break}if(e>g){a[b+716>>0]=1;f[b+708>>2]=g-e;f[b+712>>2]=-1.0}else h=12}else h=12;while(0);if((h|0)==12?(a[b+737>>0]|0)==0:0)return;c[d>>2]=6;c[d+4>>2]=0;return}function bj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=ea;ea=ea+96|0;g=c[b+192>>2]|0;c[f+64>>2]=0;c[f+64+4>>2]=g;c[f+64+8>>2]=b;c[f+64+12>>2]=b+4;c[f+64+16>>2]=-1;c[f+64+20>>2]=-1;b=c[d+192>>2]|0;c[f+40>>2]=0;c[f+40+4>>2]=b;c[f+40+8>>2]=d;c[f+40+12>>2]=d+4;c[f+40+16>>2]=-1;c[f+40+20>>2]=-1;b=c[a+24>>2]|0;b=wa[c[(c[b>>2]|0)+8>>2]&31](b,f+64|0,f+40|0,0)|0;if(!b){ea=f;return}c[f+4>>2]=0;c[f+8>>2]=f+64;c[f+12>>2]=f+40;c[f>>2]=7088;c[f+32>>2]=e;Ta[c[(c[b>>2]|0)+8>>2]&31](b,f+64|0,f+40|0,a+28|0,f);Ca[c[c[b>>2]>>2]&511](b);g=c[a+24>>2]|0;Ia[c[(c[g>>2]|0)+60>>2]&127](g,b);ea=f;return}function cj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=c[b+8>>2]|0;if((k|0)<=0)return;i=c[b+16>>2]|0;j=0;b=0;do{g=c[i+(j<<2)>>2]|0;if(!(c[g+204>>2]&3)){h=c[a+16>>2]|0;e=h+(b<<3)|0;d=c[e>>2]|0;if((d|0)!=(b|0)){c[e>>2]=c[h+(d<<3)>>2];d=c[h+(d<<3)>>2]|0;e=c[h+(d<<3)>>2]|0;if((d|0)!=(e|0)){f=h+(d<<3)|0;do{d=h+(e<<3)|0;c[f>>2]=c[d>>2];d=c[d>>2]|0;f=h+(d<<3)|0;e=c[f>>2]|0}while((d|0)!=(e|0))}}else d=b;c[g+208>>2]=d;c[h+(b<<3)+4>>2]=j;c[g+212>>2]=-1;b=b+1|0}else{c[g+208>>2]=-1;c[g+212>>2]=-2}j=j+1|0}while((j|0)!=(k|0));return}function dj(a,b,d){a=a|0;b=+b;d=d|0;var e=0,g=0,i=0.0,j=0.0,k=0.0;e=c[a+204>>2]|0;if(b==0.0){c[a+204>>2]=e|1;i=0.0}else{c[a+204>>2]=e&-2;i=1.0/b}f[a+344>>2]=i;k=+f[a+384>>2]*b;j=+f[a+388>>2]*b;f[a+364>>2]=+f[a+380>>2]*b;f[a+368>>2]=k;f[a+372>>2]=j;f[a+376>>2]=0.0;b=+f[d>>2];g=b!=0.0?(f[h>>2]=1.0/b,c[h>>2]|0):0;b=+f[d+4>>2];e=b!=0.0?(f[h>>2]=1.0/b,c[h>>2]|0):0;b=+f[d+8>>2];d=b!=0.0?(f[h>>2]=1.0/b,c[h>>2]|0):0;c[a+396>>2]=g;c[a+400>>2]=e;c[a+404>>2]=d;f[a+408>>2]=0.0;j=i*+f[a+352>>2];k=i*+f[a+356>>2];f[a+560>>2]=+f[a+348>>2]*i;f[a+564>>2]=j;f[a+568>>2]=k;f[a+572>>2]=0.0;return}function ej(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,g=0.0,h=0,i=0.0,j=0,k=0,l=0.0;l=+f[b+60>>2]*.5;h=c[b+68>>2]|0;e=+f[d>>2];g=+f[d+4>>2];i=+f[d+8>>2];i=+s(+(e*e+g*g+i*i));k=c[b+64>>2]|0;if(+f[d+(h<<2)>>2]>+f[b+52>>2]*i){f[a+(k<<2)>>2]=0.0;f[a+(h<<2)>>2]=l;l=0.0;b=c[b+72>>2]|0;b=a+(b<<2)|0;f[b>>2]=l;return}i=+f[d+(k<<2)>>2];j=c[b+72>>2]|0;e=+f[d+(j<<2)>>2];g=+s(+(i*i+e*e));if(g>1.1920928955078125e-07){g=+f[b+56>>2]/g;f[a+(k<<2)>>2]=i*g;f[a+(h<<2)>>2]=-l;l=e*g;b=j;b=a+(b<<2)|0;f[b>>2]=l;return}else{f[a+(k<<2)>>2]=0.0;f[a+(h<<2)>>2]=-l;l=0.0;b=j;b=a+(b<<2)|0;f[b>>2]=l;return}}function fj(a,b,d){a=a|0;b=+b;d=d|0;var e=0,g=0.0,h=0.0,i=0.0,j=0;e=ea;ea=ea+96|0;c[e+32>>2]=1065353216;c[e+32+4>>2]=0;c[e+32+4+4>>2]=0;c[e+32+4+8>>2]=0;c[e+32+4+12>>2]=0;c[e+32+20>>2]=1065353216;c[e+32+24>>2]=0;c[e+32+24+4>>2]=0;c[e+32+24+8>>2]=0;c[e+32+24+12>>2]=0;c[e+32+40>>2]=1065353216;j=e+32+44|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;c[j+16>>2]=0;Pa[c[(c[a>>2]|0)+8>>2]&127](a,e+32|0,e+16|0,e);h=(+f[e>>2]-+f[e+16>>2])*.5*2.0;g=(+f[e+4>>2]-+f[e+16+4>>2])*.5*2.0;i=(+f[e+8>>2]-+f[e+16+8>>2])*.5*2.0;f[d>>2]=b/12.0*(g*g+i*i);f[d+4>>2]=b/12.0*(h*h+i*i);f[d+8>>2]=b/12.0*(h*h+g*g);ea=e;return}function gj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=c[b+280>>2]|0;if((e|0)==(c[b+284>>2]|0)?(h=(e|0)==0?1:e<<1,(e|0)<(h|0)):0){if(!h)f=0;else{c[6747]=(c[6747]|0)+1;e=kb((h<<2|3)+16|0)|0;if(!e)f=0;else{c[(e+4+15&-16)+-4>>2]=e;f=e+4+15&-16}e=c[b+280>>2]|0}if((e|0)>0){g=0;do{c[f+(g<<2)>>2]=c[(c[b+288>>2]|0)+(g<<2)>>2];g=g+1|0}while((g|0)!=(e|0))}g=c[b+288>>2]|0;if(g){if(a[b+292>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0);e=c[b+280>>2]|0}c[b+288>>2]=0}a[b+292>>0]=1;c[b+288>>2]=f;c[b+284>>2]=h}c[(c[b+288>>2]|0)+(e<<2)>>2]=d;c[b+280>>2]=e+1;return}function hj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0;e=ea;ea=ea+16|0;Ma[c[(c[b>>2]|0)+68>>2]&127](e,b,d);c[a>>2]=c[e>>2];c[a+4>>2]=c[e+4>>2];c[a+8>>2]=c[e+8>>2];c[a+12>>2]=c[e+12>>2];if(!(+ha[c[(c[b>>2]|0)+48>>2]&15](b)!=0.0)){ea=e;return}i=+f[d>>2];g=+f[d+4>>2];h=+f[d+8>>2];k=i*i+g*g+h*h<1.4210854715202004e-14?-1.0:i;j=i*i+g*g+h*h<1.4210854715202004e-14?-1.0:g;h=i*i+g*g+h*h<1.4210854715202004e-14?-1.0:h;g=1.0/+s(+(h*h+(k*k+j*j)));i=+ha[c[(c[b>>2]|0)+48>>2]&15](b);f[a>>2]=+f[a>>2]+i*(k*g);f[a+4>>2]=+f[a+4>>2]+i*(j*g);f[a+8>>2]=+f[a+8>>2]+i*(h*g);ea=e;return}function ij(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,g=0,h=0.0,i=0,j=0.0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0;k=c[b+96>>2]|0;if((k|0)<=0){c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;return}l=+f[b+12>>2];o=+f[d>>2]*l;m=+f[b+16>>2];p=+f[d+4>>2]*m;n=+f[b+20>>2];j=+f[d+8>>2]*n;d=c[b+104>>2]|0;g=0;h=-3402823466385288598117041.0e14;i=-1;while(1){e=o*+f[d+(g<<4)>>2]+p*+f[d+(g<<4)+4>>2]+j*+f[d+(g<<4)+8>>2];b=e>h;i=b?g:i;g=g+1|0;if((g|0)==(k|0))break;else h=b?e:h}o=m*+f[d+(i<<4)+4>>2];p=n*+f[d+(i<<4)+8>>2];f[a>>2]=l*+f[d+(i<<4)>>2];f[a+4>>2]=o;f[a+8>>2]=p;f[a+12>>2]=0.0;return}function jj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0;a:do switch(b|0){case 2:{if((c|0)<1){d=+f[a+232>>2];break a}if((c|0)<3){d=+f[a+264>>2];break a}if((c|0)==3){d=+f[a+248>>2];break a}if((c|0)<6)d=+f[a+280>>2];else d=3402823466385288598117041.0e14;break}case 3:{if((c|0)<1){d=+f[a+212>>2];break a}if((c|0)==3)d=+f[a+228>>2];else d=3402823466385288598117041.0e14;break}case 4:{if((c|0)<1){d=+f[a+244>>2];break a}if((c|0)<3){d=+f[a+276>>2];break a}if((c|0)==3){d=+f[a+260>>2];break a}if((c|0)<6)d=+f[a+292>>2];else d=3402823466385288598117041.0e14;break}default:d=3402823466385288598117041.0e14}while(0);return +d}function kj(a,b,d){a=a|0;b=+b;d=d|0;var e=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0;k=+f[a+28>>2];g=+f[a+32>>2];i=+f[a+36>>2];j=+ha[c[(c[a>>2]|0)+48>>2]&15](a);e=+ha[c[(c[a>>2]|0)+48>>2]&15](a);i=+ha[c[(c[a>>2]|0)+48>>2]&15](a)+i;switch(c[a+52>>2]|0){case 0:{k=b*.25*((e+g)*(e+g))+b/12.0*((j+k)*((j+k)*4.0));h=k;g=b*.5*((e+g)*(e+g));e=k;break}case 2:{h=b*.5*((j+k)*(j+k));g=b*.25*((j+k)*(j+k))+b/12.0*(i*(i*4.0));e=b*.25*((j+k)*(j+k))+b/12.0*(i*(i*4.0));break}default:{g=b*.25*((j+k)*(j+k))+b/12.0*((e+g)*((e+g)*4.0));h=g;e=b*.5*((j+k)*(j+k))}}f[d>>2]=g;f[d+4>>2]=e;f[d+8>>2]=h;f[d+12>>2]=0.0;return}function lj(){var b=0;b=as()|0;c[b>>2]=5872;a[b+20>>0]=1;c[b+16>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;a[b+40>>0]=1;c[b+36>>2]=0;c[b+28>>2]=0;c[b+32>>2]=0;a[b+60>>0]=1;c[b+56>>2]=0;c[b+48>>2]=0;c[b+52>>2]=0;a[b+80>>0]=1;c[b+76>>2]=0;c[b+68>>2]=0;c[b+72>>2]=0;a[b+100>>0]=1;c[b+96>>2]=0;c[b+88>>2]=0;c[b+92>>2]=0;a[b+120>>0]=1;c[b+116>>2]=0;c[b+108>>2]=0;c[b+112>>2]=0;a[b+140>>0]=1;c[b+136>>2]=0;c[b+128>>2]=0;c[b+132>>2]=0;a[b+160>>0]=1;c[b+156>>2]=0;c[b+148>>2]=0;c[b+152>>2]=0;a[b+180>>0]=1;c[b+176>>2]=0;c[b+168>>2]=0;c[b+172>>2]=0;c[b+192>>2]=0;return b|0}function mj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;c[6726]=(c[6726]|0)+1;f=(c[b+12>>2]|0)>(c[d+12>>2]|0);g=c[(f?d:b)+12>>2]|0;f=c[(f?b:d)+12>>2]|0;b=(f<<16|g)+~((f<<16|g)<<15)|0;b=((10?b>>10:b)^b)*9|0;b=(6?b>>6:b)^b;b=((16?b+~(b<<11)>>16:b+~(b<<11)|0)^b+~(b<<11))&(c[a+12>>2]|0)+-1;if((b|0)>=(c[a+36>>2]|0)){a=0;return a|0}b=c[(c[a+44>>2]|0)+(b<<2)>>2]|0;if((b|0)==-1){a=0;return a|0}e=c[a+16>>2]|0;d=b;while(1){b=e+(d<<4)|0;if((c[(c[b>>2]|0)+12>>2]|0)==(g|0)?(c[(c[e+(d<<4)+4>>2]|0)+12>>2]|0)==(f|0):0){d=7;break}d=c[(c[a+64>>2]|0)+(d<<2)>>2]|0;if((d|0)==-1){b=0;d=7;break}}if((d|0)==7)return b|0;return 0}function nj(b){b=b|0;var d=0;c[b>>2]=4936;if(a[b+456>>0]|0?(d=c[b+452>>2]|0,Ca[c[c[d>>2]>>2]&511](d),d=c[b+452>>2]|0,d|0):0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}d=c[b+420>>2]|0;if(d|0){if(a[b+424>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+420>>2]=0}a[b+424>>0]=1;c[b+420>>2]=0;c[b+412>>2]=0;c[b+416>>2]=0;d=c[b+336>>2]|0;if(!d){a[b+340>>0]=1;c[b+336>>2]=0;c[b+328>>2]=0;d=b+332|0;c[d>>2]=0;Vf(b);return}if(a[b+340>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+336>>2]=0;a[b+340>>0]=1;c[b+336>>2]=0;c[b+328>>2]=0;d=b+332|0;c[d>>2]=0;Vf(b);return}function oj(a,b){a=a|0;b=b|0;var d=0,e=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0;d=ea;ea=ea+64|0;c[d+48>>2]=0;c[d+48+4>>2]=0;c[d+48+8>>2]=0;c[d+48+12>>2]=0;i=+f[b>>2];g=+f[b+4>>2];l=+f[b+8>>2];j=+f[b+12>>2];h=i*(2.0/(i*i+g*g+l*l+j*j));e=g*(2.0/(i*i+g*g+l*l+j*j));k=l*(2.0/(i*i+g*g+l*l+j*j));f[d>>2]=1.0-(g*e+l*k);f[d+4>>2]=i*e-j*k;f[d+8>>2]=i*k+j*e;f[d+12>>2]=0.0;f[d+16>>2]=i*e+j*k;f[d+20>>2]=1.0-(i*h+l*k);f[d+24>>2]=g*k-j*h;f[d+28>>2]=0.0;f[d+32>>2]=i*k-j*e;f[d+36>>2]=g*k+j*h;f[d+40>>2]=1.0-(i*h+g*e);f[d+44>>2]=0.0;Ic(a,d);ea=d;return}function pj(a,b){a=a|0;b=+b;var d=0,e=0,g=0;e=ea;ea=ea+16|0;Fi(14544);if((c[a+280>>2]|0)>0){d=0;do{g=c[(c[a+288>>2]|0)+(d<<2)>>2]|0;Ja[c[(c[g>>2]|0)+8>>2]&7](g,a,b);d=d+1|0}while((d|0)<(c[a+280>>2]|0))}d=c[2685]|0;g=(c[d+16>>2]|0)+-1|0;c[d+16>>2]=g;if(g|0){ea=e;return}do if(c[d+4>>2]|0){Y(e|0,0)|0;g=c[6746]|0;f[d+8>>2]=+f[d+8>>2]+ +(((c[e+4>>2]|0)-(c[g+4>>2]|0)+(((c[e>>2]|0)-(c[g>>2]|0)|0)*1e6|0)-(c[d+12>>2]|0)|0)>>>0)/1.0e3;if(!(c[d+16>>2]|0)){d=c[2685]|0;break}else{ea=e;return}}while(0);c[2685]=c[d+20>>2];ea=e;return}function qj(b,d,e,g){b=b|0;d=d|0;e=+e;g=g|0;var h=0;h=fs()|0;c[h>>2]=5988;a[h+144>>0]=1;c[h+140>>2]=0;c[h+132>>2]=0;c[h+136>>2]=0;c[h+176>>2]=g;f[h+56>>2]=.019999999552965164;c[h+60>>2]=0;c[h+60+4>>2]=0;c[h+60+8>>2]=0;c[h+60+12>>2]=0;a[h+170>>0]=1;c[h+8>>2]=b;f[h+52>>2]=e;f[h+48>>2]=0.0;c[h+12>>2]=d;a[h+171>>0]=1;f[h+172>>2]=0.0;f[h+16>>2]=0.0;f[h+20>>2]=0.0;f[h+44>>2]=29.399999618530273;f[h+24>>2]=55.0;f[h+28>>2]=10.0;a[h+168>>0]=0;a[h+169>>0]=0;a[h+180>>0]=1;f[h+36>>2]=.7853981852531433;f[h+40>>2]=.7071067690849304;f[h+108>>2]=0.0;a[h+181>>0]=0;a[h+182>>0]=0;return h|0}function rj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,g=0.0,h=0.0;a=NJ(a)|0;d=+f[a+8>>2];if(+BJ(d)>.7071067690849304){g=+f[a+4>>2];e=1.0/+AJ(g*g+d*d);b=NJ(b)|0;f[b>>2]=0.0;f[b+4>>2]=-(+f[a+8>>2]*e);f[b+8>>2]=+f[a+4>>2]*e;c=NJ(c)|0;f[c>>2]=(g*g+d*d)*e;f[c+4>>2]=-(+f[a>>2]*+f[b+8>>2]);f[c+8>>2]=+f[a>>2]*+f[b+4>>2];return}else{d=+f[a>>2];e=+f[a+4>>2];g=1.0/+AJ(d*d+e*e);b=NJ(b)|0;f[b>>2]=-(e*g);h=+f[a>>2]*g;f[b+4>>2]=h;f[b+8>>2]=0.0;h=-(+f[a+8>>2]*h);c=NJ(c)|0;f[c>>2]=h;f[c+4>>2]=+f[a+8>>2]*+f[b>>2];f[c+8>>2]=(d*d+e*e)*g;return}}function sj(b,d){b=b|0;d=d|0;var e=0,f=0;e=c[b+28>>2]|0;f=c[b+32>>2]|0;if(!(a[b+1301>>0]|0)){pf(b,d,We(b,d,0,e+4|0,f+4|0,e+312|0,f+312|0,e+328|0,f+328|0)|0,e+4|0,f+4|0,e+312|0,f+312|0,e+328|0,f+328|0)|0;return}else{We(b,d,pf(b,d,0,e+4|0,f+4|0,e+312|0,f+312|0,e+328|0,f+328|0)|0,e+4|0,f+4|0,e+312|0,f+312|0,e+328|0,f+328|0)|0;return}}function tj(a,b,d){a=a|0;b=b|0;d=d|0;do if(!((b|0)==8&(d|0)==8)){if((b|0)==8&(d|0)==1){b=a+76|0;break}if((b|0)==1&(d|0)==8){b=a+80|0;break}if(!(d|b)){b=a+72|0;break}if((b|0)<20&(d|0)==28){b=a+88|0;break}if((b|0)==28&(d|0)<20){b=a+84|0;break}if((b|0)<20){if((d|0)<20){b=a+32|0;break}if((d+-21|0)>>>0<9){b=a+36|0;break}}else{if((d|0)<20&(b+-21|0)>>>0<9){b=a+40|0;break}if((b|0)==31)if((d|0)==31){b=a+48|0;break}else{b=a+44|0;break}}if((d|0)==31){b=a+52|0;break}else{b=a+56|0;break}}else b=a+60|0;while(0);return c[b>>2]|0}function uj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,g=0;g=ea;ea=ea+16|0;c[a+4>>2]=c[b+40>>2];e=c[b>>2]|0;c[a+76>>2]=e;if(d){c[a+44>>2]=c[b+8>>2];c[a+44+4>>2]=c[b+8+4>>2];c[a+44+8>>2]=c[b+8+8>>2];c[a+44+12>>2]=c[b+8+12>>2]}else{d=NJ(sJ(e)|0)|0;ql(g,d,+f[b+8>>2],+f[b+12>>2],+f[b+16>>2]);c[a+44>>2]=c[g>>2];c[a+44+4>>2]=c[g+4>>2];c[a+44+8>>2]=c[g+8>>2];c[a+44+12>>2]=c[g+12>>2]}c[a+60>>2]=c[b+24>>2];c[a+60+4>>2]=c[b+24+4>>2];c[a+60+8>>2]=c[b+24+8>>2];c[a+60+12>>2]=c[b+24+12>>2];ea=g;return +(+f[b+40>>2])}function vj(a,b,d,e,g){a=a|0;b=b|0;d=+d;e=e|0;g=g|0;var h=0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0;h=ea;ea=ea+48|0;c[h+32>>2]=e;c[h+32+4>>2]=g;m=+f[b>>2];l=+f[b+4>>2];i=+f[b+8>>2];k=+f[a+56>>2]*m+ +f[a+60>>2]*l+ +f[a+64>>2]*i;j=m*+f[a+72>>2]+l*+f[a+76>>2]+i*+f[a+80>>2];i=m*+f[a+88>>2]+l*+f[a+92>>2]+i*+f[a+96>>2];c[h>>2]=c[a+48>>2];c[h+4>>2]=h+32;f[h+8>>2]=k;f[h+12>>2]=j;f[h+16>>2]=i;f[h+20>>2]=0.0;f[h+24>>2]=d;g=c[a+44>>2]|0;d=+ka[c[(c[g>>2]|0)+12>>2]&15](g,h,1);ea=h;return +d}function wj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0,i=0.0,j=0.0,k=0.0,l=0,m=0;g=ea;ea=ea+48|0;Ma[c[(c[a>>2]|0)+124>>2]&127](a,g+32|0,e);m=c[g+32>>2]|0;l=c[g+32+4>>2]|0;e=c[g+32+8>>2]|0;c[b>>2]=m;c[b+4>>2]=l;c[b+8>>2]=e;f[b+12>>2]=0.0;b=c[(c[a>>2]|0)+64>>2]|0;k=-(c[h>>2]=m,+f[h>>2]);j=-(c[h>>2]=l,+f[h>>2]);i=-(c[h>>2]=e,+f[h>>2]);f[g>>2]=k;f[g+4>>2]=j;f[g+8>>2]=i;f[g+12>>2]=0.0;Ma[b&127](g+16|0,a,g);c[d>>2]=c[g+16>>2];c[d+4>>2]=c[g+16+4>>2];c[d+8>>2]=c[g+16+8>>2];c[d+12>>2]=c[g+16+12>>2];ea=g;return}function xj(a,b,d,e){a=a|0;b=b|0;d=+d;e=e|0;if(e>>>0<3)switch(b|0){case 2:{f[a+756+(e<<2)>>2]=d;c[a+1304>>2]=c[a+1304>>2]|4<>2]=d;c[a+1304>>2]=c[a+1304>>2]|2<>2]=d;c[a+1304>>2]=c[a+1304>>2]|1<>>0>=3)return;switch(b|0){case 2:{f[a+868+(e+-3<<6)+32>>2]=d;c[a+1304>>2]=c[a+1304>>2]|4<>2]=d;c[a+1304>>2]=c[a+1304>>2]|2<>2]=d;c[a+1304>>2]=c[a+1304>>2]|1<>2]=5988;a[g+144>>0]=1;c[g+140>>2]=0;c[g+132>>2]=0;c[g+136>>2]=0;c[g+176>>2]=1;f[g+56>>2]=.019999999552965164;c[g+60>>2]=0;c[g+60+4>>2]=0;c[g+60+8>>2]=0;c[g+60+12>>2]=0;a[g+170>>0]=1;c[g+8>>2]=b;f[g+52>>2]=e;f[g+48>>2]=0.0;c[g+12>>2]=d;a[g+171>>0]=1;f[g+172>>2]=0.0;f[g+16>>2]=0.0;f[g+20>>2]=0.0;f[g+44>>2]=29.399999618530273;f[g+24>>2]=55.0;f[g+28>>2]=10.0;a[g+168>>0]=0;a[g+169>>0]=0;a[g+180>>0]=1;f[g+36>>2]=.7853981852531433;f[g+40>>2]=.7071067690849304;f[g+108>>2]=0.0;a[g+181>>0]=0;a[g+182>>0]=0;return g|0}function zj(a,b){a=a|0;b=b|0;var c=0,d=0.0,e=0.0,g=0.0,h=0.0,i=0.0;c=ea;ea=ea+48|0;d=2.0/+cG(b);g=+f[(NJ(b)|0)>>2];e=+f[(sJ(b)|0)>>2];i=+f[(rJ(b)|0)>>2];h=+f[(qJ(b)|0)>>2];f[c+32>>2]=1.0-(e*(e*d)+i*(i*d));f[c+28>>2]=g*(e*d)-h*(i*d);f[c+24>>2]=g*(i*d)+h*(e*d);f[c+20>>2]=g*(e*d)+h*(i*d);f[c+16>>2]=1.0-(g*(g*d)+i*(i*d));f[c+12>>2]=e*(i*d)-h*(g*d);f[c+8>>2]=g*(i*d)-h*(e*d);f[c+4>>2]=e*(i*d)+h*(g*d);f[c>>2]=1.0-(g*(g*d)+e*(e*d));Oo(a,c+32|0,c+28|0,c+24|0,c+20|0,c+16|0,c+12|0,c+8|0,c+4|0,c);ea=c;return}function Aj(b,d,e,g){b=b|0;d=d|0;e=e|0;g=g|0;var h=0;h=us()|0;c[h+4>>2]=3;c[h+8>>2]=-1;c[h+12>>2]=-1;f[h+16>>2]=3402823466385288598117041.0e14;a[h+20>>0]=1;a[h+21>>0]=0;c[h+24>>2]=-1;c[h+28>>2]=b;c[h+32>>2]=d;f[h+36>>2]=0.0;f[h+40>>2]=.30000001192092896;c[h+44>>2]=0;c[h>>2]=5608;c[h+300>>2]=c[e>>2];c[h+300+4>>2]=c[e+4>>2];c[h+300+8>>2]=c[e+8>>2];c[h+300+12>>2]=c[e+12>>2];c[h+316>>2]=c[g>>2];c[h+316+4>>2]=c[g+4>>2];c[h+316+8>>2]=c[g+8>>2];c[h+316+12>>2]=c[g+12>>2];c[h+332>>2]=0;a[h+344>>0]=0;f[h+348>>2]=.30000001192092896;f[h+352>>2]=1.0;f[h+356>>2]=0.0;return h|0}function Bj(b){b=b|0;var d=0;c[b>>2]=10036;d=c[b+64>>2]|0;if(d|0){if(a[b+68>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+64>>2]=0}a[b+68>>0]=1;c[b+64>>2]=0;c[b+56>>2]=0;c[b+60>>2]=0;d=c[b+44>>2]|0;if(d|0){if(a[b+48>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+44>>2]=0}a[b+48>>0]=1;c[b+44>>2]=0;c[b+36>>2]=0;c[b+40>>2]=0;d=c[b+16>>2]|0;if(!d){a[b+20>>0]=1;c[b+16>>2]=0;c[b+8>>2]=0;b=b+12|0;c[b>>2]=0;return}if(a[b+20>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+16>>2]=0;a[b+20>>0]=1;c[b+16>>2]=0;c[b+8>>2]=0;b=b+12|0;c[b>>2]=0;return}function Cj(b){b=b|0;var d=0;c[b>>2]=5420;d=c[b+80>>2]|0;if(d|0){if(a[b+84>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+80>>2]=0}a[b+84>>0]=1;c[b+80>>2]=0;c[b+72>>2]=0;c[b+76>>2]=0;d=c[b+60>>2]|0;if(d|0){if(a[b+64>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+60>>2]=0}a[b+64>>0]=1;c[b+60>>2]=0;c[b+52>>2]=0;c[b+56>>2]=0;d=c[b+40>>2]|0;if(!d){a[b+44>>0]=1;c[b+40>>2]=0;c[b+32>>2]=0;b=b+36|0;c[b>>2]=0;return}if(a[b+44>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+40>>2]=0;a[b+44>>0]=1;c[b+40>>2]=0;c[b+32>>2]=0;b=b+36|0;c[b>>2]=0;return}function Dj(b){b=b|0;var d=0;c[b>>2]=6568;d=c[b+56>>2]|0;if(d|0){if(a[b+60>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+56>>2]=0}a[b+60>>0]=1;c[b+56>>2]=0;c[b+48>>2]=0;c[b+52>>2]=0;d=c[b+36>>2]|0;if(d|0){if(a[b+40>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+36>>2]=0}a[b+40>>0]=1;c[b+36>>2]=0;c[b+28>>2]=0;c[b+32>>2]=0;d=c[b+16>>2]|0;if(!d){d=b+12|0;a[b+20>>0]=1;c[b+16>>2]=0;c[b+8>>2]=0;c[d>>2]=0;return}if(a[b+20>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+16>>2]=0;d=b+12|0;a[b+20>>0]=1;c[b+16>>2]=0;c[b+8>>2]=0;c[d>>2]=0;return}function Ej(b){b=b|0;var d=0;c[b>>2]=10636;d=c[b+60>>2]|0;if(d|0){if(a[b+64>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+60>>2]=0}a[b+64>>0]=1;c[b+60>>2]=0;c[b+52>>2]=0;c[b+56>>2]=0;d=c[b+40>>2]|0;if(d|0){if(a[b+44>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+40>>2]=0}a[b+44>>0]=1;c[b+40>>2]=0;c[b+32>>2]=0;c[b+36>>2]=0;d=c[b+16>>2]|0;if(!d){a[b+20>>0]=1;c[b+16>>2]=0;c[b+8>>2]=0;b=b+12|0;c[b>>2]=0;return}if(a[b+20>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+16>>2]=0;a[b+20>>0]=1;c[b+16>>2]=0;c[b+8>>2]=0;b=b+12|0;c[b>>2]=0;return}function Fj(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;b=c[d>>2]|0;b=ta[c[(c[b>>2]|0)+56>>2]&31](b,156)|0;d=c[d>>2]|0;c[b+4>>2]=d;c[b>>2]=4704;a[b+8>>0]=1;c[b+12>>2]=4916;c[b+60>>2]=d;c[b+64>>2]=0;a[b+88>>0]=1;c[b+84>>2]=0;c[b+76>>2]=0;c[b+80>>2]=0;a[b+108>>0]=1;c[b+104>>2]=0;c[b+96>>2]=0;c[b+100>>2]=0;a[b+128>>0]=1;c[b+124>>2]=0;c[b+116>>2]=0;c[b+120>>2]=0;a[b+148>>0]=1;c[b+144>>2]=0;c[b+136>>2]=0;c[b+140>>2]=0;c[b+16>>2]=c[f+8>>2];c[b+20>>2]=c[e+8>>2];vi(b+72|0);return b|0}function Gj(a,b,d,e){a=a|0;b=+b;d=d|0;e=e|0;var g=0,h=0;g=ea;ea=ea+64|0;h=MI(d)|0;c[g+48>>2]=c[h>>2];c[g+48+4>>2]=c[h+4>>2];c[g+48+8>>2]=c[h+8>>2];c[g+48+12>>2]=c[h+12>>2];d=NJ(d)|0;ir(g+32|0,d,1);ir(g+16|0,d,0);Ra[c[(c[a>>2]|0)+64>>2]&1](a,g+48|0,g+32|0,g+16|0,b,-1.5707963705062866,1.5707963705062866,-1.5707963705062866,1.5707963705062866,e,30.0,0);d=c[(c[a>>2]|0)+64>>2]|0;Sq(g,+f[g+16>>2],+f[g+16+4>>2],+f[g+16+8>>2]);Ra[d&1](a,g+48|0,g+32|0,g,b,-1.5707963705062866,1.5707963705062866,-1.5707963705062866,1.5707963705062866,e,30.0,0);ea=g;return}function Hj(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;b=c[d>>2]|0;b=ta[c[(c[b>>2]|0)+56>>2]&31](b,156)|0;d=c[d>>2]|0;c[b+4>>2]=d;c[b>>2]=4704;a[b+8>>0]=0;c[b+12>>2]=4916;c[b+60>>2]=d;c[b+64>>2]=0;a[b+88>>0]=1;c[b+84>>2]=0;c[b+76>>2]=0;c[b+80>>2]=0;a[b+108>>0]=1;c[b+104>>2]=0;c[b+96>>2]=0;c[b+100>>2]=0;a[b+128>>0]=1;c[b+124>>2]=0;c[b+116>>2]=0;c[b+120>>2]=0;a[b+148>>0]=1;c[b+144>>2]=0;c[b+136>>2]=0;c[b+140>>2]=0;c[b+16>>2]=c[e+8>>2];c[b+20>>2]=c[f+8>>2];vi(b+72|0);return b|0}function Ij(a,b,d,e,g,h){a=a|0;b=b|0;d=d|0;e=+e;g=g|0;h=h|0;var i=0;i=ea;ea=ea+64|0;c[i+48>>2]=g;c[i+48+4>>2]=h;g=c[a+212>>2]|0;if(!(+f[g+4>>2]>=e)){ea=i;return +e}c[i>>2]=c[a+216>>2];c[i+4>>2]=i+48;c[i+8>>2]=c[b>>2];c[i+8+4>>2]=c[b+4>>2];c[i+8+8>>2]=c[b+8>>2];c[i+8+12>>2]=c[b+12>>2];c[i+24>>2]=c[d>>2];c[i+24+4>>2]=c[d+4>>2];c[i+24+8>>2]=c[d+8>>2];c[i+24+12>>2]=c[d+12>>2];f[i+40>>2]=e;e=+ka[c[(c[g>>2]|0)+12>>2]&15](g,i,0);ea=i;return +e}function Jj(a,b,d,e,g,h){a=a|0;b=b|0;d=d|0;e=+e;g=g|0;h=h|0;var i=0;i=ea;ea=ea+64|0;c[i+48>>2]=g;c[i+48+4>>2]=h;g=c[a+212>>2]|0;if(!(+f[g+4>>2]>=e)){ea=i;return +e}c[i>>2]=c[a+216>>2];c[i+4>>2]=i+48;c[i+8>>2]=c[b>>2];c[i+8+4>>2]=c[b+4>>2];c[i+8+8>>2]=c[b+8>>2];c[i+8+12>>2]=c[b+12>>2];c[i+24>>2]=c[d>>2];c[i+24+4>>2]=c[d+4>>2];c[i+24+8>>2]=c[d+8>>2];c[i+24+12>>2]=c[d+12>>2];f[i+40>>2]=e;e=+ka[c[(c[g>>2]|0)+12>>2]&15](g,i,1);ea=i;return +e}function Kj(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=c[e+16>>2]|0;if(!f){if(!(ho(e)|0)){f=c[e+16>>2]|0;g=5}}else g=5;a:do if((g|0)==5){g=c[e+20>>2]|0;if((f-g|0)>>>0>>0){va[c[e+36>>2]&63](e,b,d)|0;break}b:do if((a[e+75>>0]|0)<0|(d|0)==0)f=d;else{h=d;while(1){f=h+-1|0;if((a[b+f>>0]|0)==10)break;if(!f){f=d;break b}else h=f}if((va[c[e+36>>2]&63](e,b,h)|0)>>>0>>0)break a;g=c[e+20>>2]|0;f=d-h|0;b=b+h|0}while(0);vh(g|0,b|0,f|0)|0;c[e+20>>2]=(c[e+20>>2]|0)+f}while(0);return}function Lj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=ea;ea=ea+32|0;c[a+8>>2]=c[b>>2];On(a+20|0,b);if(d){c[e+16>>2]=c[b+8>>2];c[e+16+4>>2]=c[b+8+4>>2];c[e+16+8>>2]=c[b+8+8>>2];c[e+16+12>>2]=c[b+8+12>>2]}else{d=NJ(sJ(c[a+8>>2]|0)|0)|0;ql(e+16|0,d,+f[b+8>>2],+f[b+12>>2],+f[b+16>>2])}Tl(a+72|0,e+16|0);up(e,a+40|0,a+56|0,+f[b+24>>2]);Tl(a+92|0,e);On(a+112|0,b+24|0);ea=e;return +(+f[a+4>>2])}function Mj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0;e=ea;ea=ea+16|0;Ma[c[(c[b>>2]|0)+68>>2]&127](e,b,d);c[a>>2]=c[e>>2];c[a+4>>2]=c[e+4>>2];c[a+8>>2]=c[e+8>>2];c[a+12>>2]=c[e+12>>2];i=+f[d>>2];g=+f[d+4>>2];h=+f[d+8>>2];k=i*i+g*g+h*h<1.4210854715202004e-14?-1.0:i;j=i*i+g*g+h*h<1.4210854715202004e-14?-1.0:g;h=i*i+g*g+h*h<1.4210854715202004e-14?-1.0:h;g=1.0/+s(+(h*h+(k*k+j*j)));i=+ha[c[(c[b>>2]|0)+48>>2]&15](b);f[a>>2]=+f[a>>2]+i*(k*g);f[a+4>>2]=+f[a+4>>2]+i*(j*g);f[a+8>>2]=+f[a+8>>2]+i*(h*g);ea=e;return}function Nj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=ea;ea=ea+48|0;e=wH(b,0)|0;f[d+32>>2]=+uo(c,e);f[d+28>>2]=+go(c,e);f[d+24>>2]=+fo(c,e);e=wH(b,1)|0;f[d+20>>2]=+uo(c,e);f[d+16>>2]=+go(c,e);f[d+12>>2]=+fo(c,e);b=wH(b,2)|0;f[d+8>>2]=+uo(c,b);f[d+4>>2]=+go(c,b);f[d>>2]=+fo(c,b);bq(a,d+32|0,d+28|0,d+24|0,d+20|0,d+16|0,d+12|0,d+8|0,d+4|0,d);ea=d;return}function Oj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=c[b+188>>2]|0;if(d|0){g=c[a+68>>2]|0;g=ra[c[(c[g>>2]|0)+36>>2]&127](g)|0;Ma[c[(c[g>>2]|0)+40>>2]&127](g,d,c[a+24>>2]|0);g=c[a+68>>2]|0;Ma[c[(c[g>>2]|0)+12>>2]&127](g,d,c[a+24>>2]|0);c[b+188>>2]=0}f=c[a+8>>2]|0;if((f|0)<=0)return;g=c[a+16>>2]|0;d=0;while(1){e=g+(d<<2)|0;if((c[e>>2]|0)==(b|0))break;d=d+1|0;if((d|0)>=(f|0)){h=9;break}}if((h|0)==9)return;if((d|0)>=(f|0))return;c[e>>2]=c[g+(f+-1<<2)>>2];c[(c[a+16>>2]|0)+(f+-1<<2)>>2]=b;c[a+8>>2]=f+-1;return}function Pj(a,b,d,f){a=a|0;b=b|0;d=d|0;f=f|0;var g=0,h=0,i=0;while(1){g=c[a+12>>2]|0;if(!(((e[f>>1]|0)>=(e[a>>1]|0)?(e[d>>1]|0)<=(e[a+6>>1]|0):0)&(e[d+4>>1]|0)<=(e[a+10>>1]|0)&(e[f+4>>1]|0)>=(e[a+4>>1]|0)&(e[d+2>>1]|0)<=(e[a+8>>1]|0)&(e[f+2>>1]|0)>=(e[a+2>>1]|0))){h=6;break}if((g|0)>-1)break;i=a+16|0;Pj(i,b,d,f);g=c[a+28>>2]|0;a=(g|0)>-1?a+32|0:i+(0-g<<4)|0}if((h|0)==6)return;Ma[c[(c[b>>2]|0)+8>>2]&127](b,21?g>>>21:g,g&2097151);return}function Qj(a,b,c,d){a=a|0;b=b|0;c=+c;d=+d;var e=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0;i=+u(+c);h=+v(+c);c=+f[b+444>>2];if(+r(+i)>1.1920928955078125e-07){e=+f[b+448>>2];c=+s(+((h*h/(i*i)+1.0)/(1.0/(e*e)+h*h/(i*i)/(c*c))));e=h*h;g=i*i}else{e=h*h;g=i*i}j=c*.5;g=+v(+j)/+s(+(e+(g+0.0)));j=+u(+j);k=j*d+i*g*0.0-h*g*-0.0;e=j*0.0-h*g*d-g*0.0*0.0;c=j*0.0+g*0.0*0.0-i*g*d;d=-(g*0.0*d)-i*g*0.0-h*g*-0.0;f[a>>2]=h*g*e+(j*k+d*-(g*0.0))-c*-(i*g);f[a+4>>2]=c*-(g*0.0)+(j*e+d*-(i*g))-h*g*k;f[a+8>>2]=k*-(i*g)+(h*g*d+j*c)-e*-(g*0.0);f[a+12>>2]=0.0;return}function Rj(b,d){b=b|0;d=d|0;var e=0,g=0,h=0;f[b+16>>2]=0.0;f[b+20>>2]=0.0;a[b+168>>0]=0;a[b+169>>0]=0;f[b+172>>2]=0.0;c[b+60>>2]=0;c[b+60+4>>2]=0;c[b+60+8>>2]=0;c[b+60+12>>2]=0;b=c[(c[b+8>>2]|0)+284>>2]|0;if((c[(ra[c[(c[b>>2]|0)+28>>2]&127](b)|0)+4>>2]|0)<=0)return;do{g=c[b>>2]|0;h=c[g+12>>2]|0;g=c[c[(ra[c[g+28>>2]&127](b)|0)+12>>2]>>2]|0;e=c[(c[(ra[c[(c[b>>2]|0)+28>>2]&127](b)|0)+12>>2]|0)+4>>2]|0;wa[h&31](b,g,e,c[d+24>>2]|0)|0}while((c[(ra[c[(c[b>>2]|0)+28>>2]&127](b)|0)+4>>2]|0)>0);return}function Sj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;c[6721]=(c[6721]|0)+-1;Ia[c[(c[a>>2]|0)+20>>2]&127](a,b);e=c[b+768>>2]|0;d=(c[a+12>>2]|0)+-1|0;g=c[a+20>>2]|0;f=c[g+(e<<2)>>2]|0;c[g+(e<<2)>>2]=c[g+(d<<2)>>2];c[(c[a+20>>2]|0)+(d<<2)>>2]=f;c[(c[(c[a+20>>2]|0)+(e<<2)>>2]|0)+768>>2]=e;c[a+12>>2]=d;a=c[a+68>>2]|0;if(!b)return;g=c[a+16>>2]|0;if(g>>>0<=b>>>0?(g+(z(c[a>>2]|0,c[a+4>>2]|0)|0)|0)>>>0>b>>>0:0){c[b>>2]=c[a+12>>2];c[a+12>>2]=b;c[a+8>>2]=(c[a+8>>2]|0)+1;return}c[6748]=(c[6748]|0)+1;uc(c[b+-4>>2]|0);return}function Tj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0;if((e|0)<=0)return;g=0;do{n=+f[b+(g<<4)>>2];m=+f[b+(g<<4)+4>>2];j=+f[b+(g<<4)+8>>2];k=n*+f[a+56>>2]+m*+f[a+60>>2]+j*+f[a+64>>2];l=n*+f[a+72>>2]+m*+f[a+76>>2]+j*+f[a+80>>2];j=n*+f[a+88>>2]+m*+f[a+92>>2]+j*+f[a+96>>2];i=a+56+((k>2]=c[i>>2];c[h+4>>2]=c[i+4>>2];c[h+8>>2]=c[i+8>>2];c[h+12>>2]=c[i+12>>2];g=g+1|0}while((g|0)!=(e|0));return}function Uj(a,b){a=a|0;b=+b;var d=0,e=0;d=ea;ea=ea+16|0;he(a,b);Fi(14301);a=c[a+452>>2]|0;Da[c[(c[a>>2]|0)+24>>2]&31](a,b);a=c[2685]|0;e=(c[a+16>>2]|0)+-1|0;c[a+16>>2]=e;if(e|0){ea=d;return}do if(c[a+4>>2]|0){Y(d|0,0)|0;e=c[6746]|0;f[a+8>>2]=+f[a+8>>2]+ +(((c[d+4>>2]|0)-(c[e+4>>2]|0)+(((c[d>>2]|0)-(c[e>>2]|0)|0)*1e6|0)-(c[a+12>>2]|0)|0)>>>0)/1.0e3;if(!(c[a+16>>2]|0)){a=c[2685]|0;break}else{ea=d;return}}while(0);c[2685]=c[a+20>>2];ea=d;return}function Vj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;do switch(b|0){case 0:{b=0;f=1;break}case 1:{b=0;f=2;break}case 2:{b=1;f=3;break}case 3:{b=2;f=3;break}case 4:{b=0;f=4;break}case 5:{b=1;f=5;break}case 6:{b=2;f=6;break}case 7:{b=3;f=7;break}case 8:{b=4;f=5;break}case 9:{b=4;f=6;break}case 10:{b=5;f=7;break}case 11:{b=6;f=7;break}default:{b=0;f=0}}while(0);Ma[c[(c[a>>2]|0)+108>>2]&127](a,b,d);Ma[c[(c[a>>2]|0)+108>>2]&127](a,f,e);return}function Wj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0;h=+f[a+56>>2];k=+f[a+72>>2]-h;j=+f[a+60>>2];i=+f[a+76>>2]-j;l=+f[a+64>>2];m=+f[a+80>>2]-l;h=+f[a+88>>2]-h;j=+f[a+92>>2]-j;l=+f[a+96>>2]-l;f[d+12>>2]=0.0;g=1.0/+s(+((k*j-i*h)*(k*j-i*h)+((i*l-m*j)*(i*l-m*j)+(m*h-k*l)*(m*h-k*l))));f[d>>2]=(i*l-m*j)*g;f[d+4>>2]=(m*h-k*l)*g;f[d+8>>2]=(k*j-i*h)*g;c[e>>2]=c[a+56>>2];c[e+4>>2]=c[a+56+4>>2];c[e+8>>2]=c[a+56+8>>2];c[e+12>>2]=c[a+56+12>>2];return}function Xj(b){b=b|0;var d=0,e=0,f=0;c[b>>2]=7276;d=c[b+12>>2]|0;if((d|0)>0){f=0;do{e=c[(c[b+20>>2]|0)+(f<<2)>>2]|0;if(e|0){Ca[c[c[e>>2]>>2]&511](e);e=c[b+4>>2]|0;Ia[c[(c[e>>2]|0)+60>>2]&127](e,c[(c[b+20>>2]|0)+(f<<2)>>2]|0)}f=f+1|0}while((f|0)!=(d|0))}d=c[b+20>>2]|0;if(!d){a[b+24>>0]=1;c[b+20>>2]=0;c[b+12>>2]=0;b=b+16|0;c[b>>2]=0;return}if(a[b+24>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+20>>2]=0;a[b+24>>0]=1;c[b+20>>2]=0;c[b+12>>2]=0;b=b+16|0;c[b>>2]=0;return}function Yj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0;h=+f[a+56>>2];g=+f[a+72>>2]-h;k=+f[a+60>>2];j=+f[a+76>>2]-k;e=+f[a+64>>2];i=+f[a+80>>2]-e;h=+f[a+88>>2]-h;k=+f[a+92>>2]-k;e=+f[a+96>>2]-e;f[c+12>>2]=0.0;d=1.0/+s(+((g*k-j*h)*(g*k-j*h)+((j*e-i*k)*(j*e-i*k)+(i*h-g*e)*(i*h-g*e))));f[c>>2]=(j*e-i*k)*d;f[c+4>>2]=(i*h-g*e)*d;f[c+8>>2]=(g*k-j*h)*d;if(!b)return;f[c>>2]=-((j*e-i*k)*d);f[c+4>>2]=-((i*h-g*e)*d);f[c+8>>2]=-((g*k-j*h)*d);return}function Zj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;g=c[a+720>>2]|0;h=c[a+752>>2]|0;if((h|0)<=0){e=0;return e|0}a=c[a+760>>2]|0;f=0;while(1){i=c[a+(f*44|0)+8>>2]|0;if(((i|0)==(g+(e*104|0)|0)|((i|0)==(g+(b*104|0)|0)|(i|0)==(g+(d*104|0)|0))?(i=c[a+(f*44|0)+12>>2]|0,(i|0)==(g+(e*104|0)|0)|((i|0)==(g+(b*104|0)|0)|(i|0)==(g+(d*104|0)|0))):0)?(i=c[a+(f*44|0)+16>>2]|0,(i|0)==(g+(e*104|0)|0)|((i|0)==(g+(b*104|0)|0)|(i|0)==(g+(d*104|0)|0))):0){a=1;f=7;break}f=f+1|0;if((f|0)>=(h|0)){a=0;f=7;break}}if((f|0)==7)return a|0;return 0}function _j(b,d){b=b|0;d=d|0;do if(b){if(d>>>0<128){a[b>>0]=d;b=1;break}if(!(c[6759]|0)){if((d&-128|0)!=57216){b=-1;break}a[b>>0]=d;b=1;break}if(d>>>0<2048){a[b>>0]=(6?d>>>6:d)|192;a[b+1>>0]=d&63|128;b=2;break}if(d>>>0<55296|(d&-8192|0)==57344){a[b>>0]=(12?d>>>12:d)|224;a[b+1>>0]=(6?d>>>6:d)&63|128;a[b+2>>0]=d&63|128;b=3;break}if((d+-65536|0)>>>0<1048576){a[b>>0]=(18?d>>>18:d)|240;a[b+1>>0]=(12?d>>>12:d)&63|128;a[b+2>>0]=(6?d>>>6:d)&63|128;a[b+3>>0]=d&63|128;b=4}else b=-1}else b=1;while(0);return b|0}function $j(a,b){a=a|0;b=b|0;var c=0;c=ea;ea=ea+48|0;f[c+32>>2]=+uo(b,a);f[c+28>>2]=+go(b,a);f[c+24>>2]=+fo(b,a);f[c+20>>2]=+uo(b,a+16|0);f[c+16>>2]=+go(b,a+16|0);f[c+12>>2]=+fo(b,a+16|0);f[c+8>>2]=+uo(b,a+32|0);f[c+4>>2]=+go(b,a+32|0);f[c>>2]=+fo(b,a+32|0);Oo(a,c+32|0,c+28|0,c+24|0,c+20|0,c+16|0,c+12|0,c+8|0,c+4|0,c);ea=c;return}function ak(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0.0,h=0.0,i=0,j=0;i=c[a+96>>2]|0;j=c[a+104>>2]|0;g=+f[j+(((b|0)%(i|0)|0)<<4)+4>>2]*+f[a+16>>2];h=+f[j+(((b|0)%(i|0)|0)<<4)+8>>2]*+f[a+20>>2];f[d>>2]=+f[j+(((b|0)%(i|0)|0)<<4)>>2]*+f[a+12>>2];f[d+4>>2]=g;f[d+8>>2]=h;f[d+12>>2]=0.0;d=c[a+104>>2]|0;h=+f[d+(((b+1|0)%(i|0)|0)<<4)+4>>2]*+f[a+16>>2];g=+f[d+(((b+1|0)%(i|0)|0)<<4)+8>>2]*+f[a+20>>2];f[e>>2]=+f[d+(((b+1|0)%(i|0)|0)<<4)>>2]*+f[a+12>>2];f[e+4>>2]=h;f[e+8>>2]=g;f[e+12>>2]=0.0;return}function bk(a,b){a=a|0;b=b|0;var d=0,e=0,g=0.0,h=0,i=0;e=ea;ea=ea+32|0;d=c[a+184>>2]|0;if(+f[d+4>>2]==0.0){a=0;ea=e;return a|0}b=c[b>>2]|0;if(!(ta[c[(c[d>>2]|0)+8>>2]&31](d,c[b+188>>2]|0)|0)){a=1;ea=e;return a|0}h=c[a+192>>2]|0;i=c[b+192>>2]|0;d=c[a+184>>2]|0;g=+f[a+188>>2];c[e>>2]=0;c[e+4>>2]=i;c[e+8>>2]=b;c[e+12>>2]=b+4;c[e+16>>2]=-1;c[e+20>>2]=-1;rb(h,a+36|0,a+100|0,e,d,g);a=1;ea=e;return a|0}function ck(a,b){a=a|0;b=b|0;var d=0;d=ea;ea=ea+16|0;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];a=c[a+8>>2]|0;c[a+260>>2]=(c[a+260>>2]|0)+1;c[a+4>>2]=1065353216;c[a+8>>2]=0;c[a+8+4>>2]=0;c[a+8+8>>2]=0;c[a+8+12>>2]=0;c[a+24>>2]=1065353216;c[a+28>>2]=0;c[a+28+4>>2]=0;c[a+28+8>>2]=0;c[a+28+12>>2]=0;c[a+44>>2]=1065353216;c[a+48>>2]=0;c[a+52>>2]=c[d>>2];c[a+52+4>>2]=c[d+4>>2];c[a+52+8>>2]=c[d+8>>2];c[a+52+12>>2]=c[d+12>>2];ea=d;return}function dk(a){a=a|0;var b=0,d=0;b=ea;ea=ea+16|0;Fi(17589);d=c[a+68>>2]|0;Ia[c[(c[d>>2]|0)+32>>2]&127](d,c[a+24>>2]|0);a=c[2685]|0;d=(c[a+16>>2]|0)+-1|0;c[a+16>>2]=d;if(d|0){ea=b;return}do if(c[a+4>>2]|0){Y(b|0,0)|0;d=c[6746]|0;f[a+8>>2]=+f[a+8>>2]+ +(((c[b+4>>2]|0)-(c[d+4>>2]|0)+(((c[b>>2]|0)-(c[d>>2]|0)|0)*1e6|0)-(c[a+12>>2]|0)|0)>>>0)/1.0e3;if(!(c[a+16>>2]|0)){a=c[2685]|0;break}else{ea=b;return}}while(0);c[2685]=c[a+20>>2];ea=b;return}function ek(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0;h=ea;ea=ea+64|0;if(!(rt(d,e,0)|0))if((e|0)!=0?(g=yi(e,3456)|0,(g|0)!=0):0){c[h>>2]=g;c[h+4>>2]=0;c[h+8>>2]=d;c[h+12>>2]=-1;d=h+16|0;e=d+36|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));b[h+16+36>>1]=0;a[h+16+38>>0]=0;c[h+48>>2]=1;Pa[c[(c[g>>2]|0)+28>>2]&127](g,h,c[f>>2]|0,1);if((c[h+24>>2]|0)==1){c[f>>2]=c[h+16>>2];d=1}else d=0}else d=0;else d=1;ea=h;return d|0}function fk(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0;k=+ha[c[(c[a>>2]|0)+48>>2]&15](a);h=+ha[c[(c[a>>2]|0)+48>>2]&15](a);d=+ha[c[(c[a>>2]|0)+48>>2]&15](a);m=(k+ +f[a+28>>2])/+f[a+12>>2];j=(h+ +f[a+32>>2])/+f[a+16>>2];g=(d+ +f[a+36>>2])/+f[a+20>>2];l=+r(+(+f[b>>2]));i=+r(+(+f[b+4>>2]));e=+r(+(+f[b+8>>2]));f[a+12>>2]=l;f[a+16>>2]=i;f[a+20>>2]=e;f[a+24>>2]=0.0;f[a+28>>2]=m*l-k;f[a+32>>2]=j*i-h;f[a+36>>2]=g*e-d;f[a+40>>2]=0.0;return}function gk(b,d){b=b|0;d=d|0;var e=0,g=0,h=0.0,i=0,j=0;if(a[b+527>>0]|0){c[d>>2]=0;c[d+4>>2]=0;return}c[d>>2]=3;c[d+4>>2]=3;j=c[b+28>>2]|0;i=c[b+32>>2]|0;pb(b,j+4|0,i+4|0,j+264|0,i+264|0);if((a[b+526>>0]|0?(e=c[d>>2]|0,c[d>>2]=e+1,g=c[d+4>>2]|0,c[d+4>>2]=g+-1,h=+f[b+456>>2],+f[b+444>>2]>2]>2]=e+2;c[d+4>>2]=g+-2}if(!(a[b+525>>0]|0))return;c[d>>2]=(c[d>>2]|0)+1;c[d+4>>2]=(c[d+4>>2]|0)+-1;return}function hk(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=b+e|0;d=d&255;if((e|0)>=67){while(b&3){a[b>>0]=d;b=b+1|0}g=d|d<<8|d<<16|d<<24;while((b|0)<=((f&-4)-64|0)){c[b>>2]=g;c[b+4>>2]=g;c[b+8>>2]=g;c[b+12>>2]=g;c[b+16>>2]=g;c[b+20>>2]=g;c[b+24>>2]=g;c[b+28>>2]=g;c[b+32>>2]=g;c[b+36>>2]=g;c[b+40>>2]=g;c[b+44>>2]=g;c[b+48>>2]=g;c[b+52>>2]=g;c[b+56>>2]=g;c[b+60>>2]=g;b=b+64|0}while((b|0)<(f&-4|0)){c[b>>2]=g;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return f-e|0}function ik(a,b,c,d,e,g,h,i,j,k){a=+a;b=+b;c=+c;d=+d;e=+e;g=+g;h=+h;i=+i;j=+j;k=k|0;if(!(((h-d)*b-(i-e)*a)*g+(((i-e)*c-(j-g)*b)*d+((j-g)*a-(h-d)*c)*e)<0.0)){k=0;return k|0}do if(!((h-d)*d+(i-e)*e+(j-g)*g>0.0))if((h-d)*h+(i-e)*i+(j-g)*j<0.0){d=h*h+i*i+j*j;break}else{d=((h*h+i*i+j*j)*(d*d+e*e+g*g)-(h*d+i*e+j*g)*(h*d+i*e+j*g))/((h-d)*(h-d)+(i-e)*(i-e)+(j-g)*(j-g));d=d>0.0?d:0.0;break}else d=d*d+e*e+g*g;while(0);f[k>>2]=+s(+d);k=1;return k|0}function jk(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,g=0,h=0,i=0;b=c[b+36>>2]|0;i=c[b+8>>2]|0;h=c[b+12>>2]|0;g=c[b+16>>2]|0;e=+f[a+52>>2];d=+Pg(a+4|0,+f[a+36>>2],+f[a+40>>2],+f[a+44>>2],+f[i+8>>2],+f[i+12>>2],+f[i+16>>2],+f[h+8>>2],+f[h+12>>2],+f[h+16>>2],+f[g+8>>2],+f[g+12>>2],+f[g+16>>2],e);if(!(d>0.0&d>2]|0;h=h+1|0;c[i>>2]=h;return}f[a+52>>2]=d;c[a+56>>2]=b;i=a+60|0;h=c[i>>2]|0;h=h+1|0;c[i>>2]=h;return}function kk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,g=0.0,h=0.0,i=0.0,j=0.0;Ma[c[(c[b>>2]|0)+68>>2]&127](a,b,d);if(!(+ha[c[(c[b>>2]|0)+48>>2]&15](b)!=0.0))return;h=+f[d>>2];e=+f[d+4>>2];g=+f[d+8>>2];j=h*h+e*e+g*g<1.4210854715202004e-14?-1.0:h;i=h*h+e*e+g*g<1.4210854715202004e-14?-1.0:e;g=h*h+e*e+g*g<1.4210854715202004e-14?-1.0:g;e=1.0/+s(+(g*g+(j*j+i*i)));h=+ha[c[(c[b>>2]|0)+48>>2]&15](b);f[a>>2]=+f[a>>2]+h*(j*e);f[a+4>>2]=+f[a+4>>2]+h*(i*e);f[a+8>>2]=+f[a+8>>2]+h*(g*e);return}function lk(b,d,e){b=b|0;d=d|0;e=+e;var g=0.0,h=0.0,i=0.0,j=0.0,k=0.0;a[b+171>>0]=0;c[b+60>>2]=c[d>>2];c[b+60+4>>2]=c[d+4>>2];c[b+60+8>>2]=c[d+8>>2];c[b+60+12>>2]=c[d+12>>2];g=+f[b+60>>2];h=+f[b+64>>2];j=+f[b+68>>2];i=1.0/+s(+(g*g+h*h+j*j));if(+s(+(j*i*(j*i)+(g*i*(g*i)+h*i*(h*i))))<1.1920928955078125e-07){k=0.0;h=0.0;g=0.0;d=0}else{k=g*i;h=h*i;g=j*i;d=c[b+72>>2]|0}f[b+76>>2]=k;f[b+80>>2]=h;f[b+84>>2]=g;c[b+88>>2]=d;f[b+172>>2]=+f[b+172>>2]+e;return}function mk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0;a:do if(c>>>0>=3)if((c+-3|0)>>>0<3)switch(b|0){case 2:{d=+f[a+868+(c+-3<<6)+32>>2];break a}case 4:{d=+f[a+868+(c+-3<<6)+36>>2];break a}case 3:{d=+f[a+868+(c+-3<<6)+28>>2];break a}default:{d=0.0;break a}}else d=0.0;else switch(b|0){case 2:{d=+f[a+756+(c<<2)>>2];break a}case 4:{d=+f[a+772+(c<<2)>>2];break a}case 3:{d=+f[a+740+(c<<2)>>2];break a}default:{d=0.0;break a}}while(0);return +d}function nk(a){a=a|0;var b=0,d=0,e=0,f=0.0,g=0,h=0,i=0;e=ea;ea=ea+16|0;b=c[a+8>>2]|0;d=c[a+8+4>>2]|0;if((d|0)>-1|(d|0)==-1&b>>>0>4294967295){f=(+(b>>>0)+4294967296.0*+(d>>>0))*18446744073709551616.0+(+((c[a>>2]|0)>>>0)+4294967296.0*+((c[a+4>>2]|0)>>>0));ea=e;return +f}else{i=c[a>>2]|0;a=c[a+4>>2]|0;h=tv(0,0,i|0,a|0)|0;g=D()|0;d=Lv((i|0)==0&(a|0)==0&1|0,0,~b|0,~d|0)|0;a=D()|0;c[e>>2]=h;c[e+4>>2]=g;c[e+8>>2]=d;c[e+8+4>>2]=a;f=-+nk(e);ea=e;return +f}return 0.0}function ok(b,d,e,g,h){b=b|0;d=+d;e=e|0;g=g|0;h=h|0;f[b>>2]=d;c[b+4>>2]=e;c[b+72>>2]=g;c[b+76>>2]=c[h>>2];c[b+76+4>>2]=c[h+4>>2];c[b+76+8>>2]=c[h+8>>2];c[b+76+12>>2]=c[h+12>>2];f[b+92>>2]=0.0;f[b+96>>2]=0.0;f[b+100>>2]=.5;f[b+104>>2]=0.0;f[b+108>>2]=0.0;f[b+112>>2]=.800000011920929;f[b+116>>2]=1.0;a[b+120>>0]=0;f[b+124>>2]=.004999999888241291;f[b+128>>2]=.009999999776482582;f[b+132>>2]=.009999999776482582;f[b+136>>2]=.009999999776482582;yq(b+8|0);return}function pk(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;a:do if(!(rt(b,c[d+8>>2]|0,0)|0)){g=c[b+12>>2]|0;an(b+16|0,d,e,f);if((g|0)>1){h=b+24|0;do{an(h,d,e,f);if(a[d+54>>0]|0)break a;h=h+8|0}while(h>>>0<(b+16+(g<<3)|0)>>>0)}}else qm(d,e,f);while(0);return}function qk(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;do if(!(rt(b,c[d+8>>2]|0,g)|0)){if(rt(b,c[d>>2]|0,g)|0){if((c[d+16>>2]|0)!=(e|0)?(c[d+20>>2]|0)!=(e|0):0){c[d+32>>2]=f;c[d+20>>2]=e;c[d+40>>2]=(c[d+40>>2]|0)+1;if((c[d+36>>2]|0)==1?(c[d+24>>2]|0)==2:0)a[d+54>>0]=1;c[d+44>>2]=4;break}if((f|0)==1)c[d+32>>2]=1}}else Jr(d,e,f);while(0);return}function rk(b,d,e){b=b|0;d=d|0;e=e|0;b=GI(152)|0;c[b>>2]=5932;a[b+20>>0]=1;c[b+16>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;a[b+40>>0]=1;c[b+36>>2]=0;c[b+28>>2]=0;c[b+32>>2]=0;a[b+60>>0]=1;c[b+56>>2]=0;c[b+48>>2]=0;c[b+52>>2]=0;a[b+80>>0]=1;c[b+76>>2]=0;c[b+68>>2]=0;c[b+72>>2]=0;c[b+100>>2]=e;f[b+104>>2]=0.0;a[b+148>>0]=1;c[b+144>>2]=0;c[b+136>>2]=0;c[b+140>>2]=0;c[b+116>>2]=d;c[b+120>>2]=0;c[b+124>>2]=2;c[b+128>>2]=1;f[b+112>>2]=0.0;f[b+108>>2]=0.0;return b|0}function sk(b){b=b|0;var d=0,e=0,f=0;e=GI(5260)|0;c[e>>2]=6244;c[e+4>>2]=2;a[e+24>>0]=1;c[e+20>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+28>>2]=6716;c[e+5256>>2]=b;c[e+60>>2]=81;c[e+64>>2]=ra[c[(c[b>>2]|0)+12>>2]&127](b)|0;c[e+68>>2]=ra[c[(c[b>>2]|0)+8>>2]&127](b)|0;b=0;do{d=0;do{f=c[e+5256>>2]|0;c[e+72+(b*144|0)+(d<<2)>>2]=va[c[(c[f>>2]|0)+16>>2]&63](f,b,d)|0;d=d+1|0}while(d>>>0<36);b=b+1|0}while(b>>>0<36);return e|0}function tk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=ta[c[(c[d>>2]|0)+40>>2]&31](d,a)|0;f=ta[c[(c[d>>2]|0)+28>>2]&31](d,e)|0;c[b>>2]=f;if(f|0)Ia[c[(c[d>>2]|0)+48>>2]&127](d,e);c[b+4>>2]=c[a+4>>2];c[b+28>>2]=c[a+28>>2];c[b+32>>2]=c[a+32>>2];c[b+36>>2]=c[a+36>>2];c[b+40>>2]=c[a+40>>2];c[b+12>>2]=c[a+12>>2];c[b+16>>2]=c[a+16>>2];c[b+20>>2]=c[a+20>>2];c[b+24>>2]=c[a+24>>2];c[b+44>>2]=c[a+44>>2];c[b+52>>2]=c[a+52>>2];return 20610}function uk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=ea;ea=ea+32|0;if(!(+f[a+344>>2]!=0.0)){ea=d;return}Gn(a,+f[b>>2],+f[b+4>>2],+f[b+8>>2]);if(!(NJ(a+544|0)|0)){ea=d;return}wp(d,+f[b>>2],+f[b+4>>2],+f[b+8>>2],+f[a+348>>2],+f[a+352>>2],+f[a+356>>2]);Ko(d+16|0,+f[c>>2],+f[c+4>>2],+f[c+8>>2],+f[d>>2],+f[d+4>>2],+f[d+8>>2]);Hn(a,+f[d+16>>2],+f[d+16+4>>2],+f[d+16+8>>2]);ea=d;return}function vk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=ta[c[(c[d>>2]|0)+40>>2]&31](d,a)|0;f=ta[c[(c[d>>2]|0)+28>>2]&31](d,e)|0;c[b>>2]=f;if(f|0)Ia[c[(c[d>>2]|0)+48>>2]&127](d,e);c[b+4>>2]=c[a+4>>2];c[b+28>>2]=c[a+28>>2];c[b+32>>2]=c[a+32>>2];c[b+36>>2]=c[a+36>>2];c[b+40>>2]=c[a+40>>2];c[b+12>>2]=c[a+12>>2];c[b+16>>2]=c[a+16>>2];c[b+20>>2]=c[a+20>>2];c[b+24>>2]=c[a+24>>2];c[b+44>>2]=c[a+44>>2];c[b+52>>2]=c[a+52>>2];return 20154}function wk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=ta[c[(c[d>>2]|0)+40>>2]&31](d,a)|0;f=ta[c[(c[d>>2]|0)+28>>2]&31](d,e)|0;c[b>>2]=f;if(f|0)Ia[c[(c[d>>2]|0)+48>>2]&127](d,e);c[b+4>>2]=c[a+4>>2];c[b+28>>2]=c[a+28>>2];c[b+32>>2]=c[a+32>>2];c[b+36>>2]=c[a+36>>2];c[b+40>>2]=c[a+40>>2];c[b+12>>2]=c[a+12>>2];c[b+16>>2]=c[a+16>>2];c[b+20>>2]=c[a+20>>2];c[b+24>>2]=c[a+24>>2];c[b+44>>2]=c[a+44>>2];c[b+52>>2]=c[a+68>>2];return 19063}function xk(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;a[b+53>>0]=1;do if((c[b+4>>2]|0)==(e|0)){a[b+52>>0]=1;e=c[b+16>>2]|0;if(!e){c[b+16>>2]=d;c[b+24>>2]=f;c[b+36>>2]=1;if(!((f|0)==1?(c[b+48>>2]|0)==1:0))break;a[b+54>>0]=1;break}if((e|0)!=(d|0)){c[b+36>>2]=(c[b+36>>2]|0)+1;a[b+54>>0]=1;break}e=c[b+24>>2]|0;if((e|0)==2){c[b+24>>2]=f;e=f}if((e|0)==1?(c[b+48>>2]|0)==1:0)a[b+54>>0]=1}while(0);return}function yk(a,b,d){a=a|0;b=+b;d=d|0;var e=0,g=0.0,h=0.0,i=0.0,j=0,k=0;e=ea;ea=ea+16|0;j=c[a+52>>2]|0;k=c[a+28+(((j+2|0)%3|0)<<2)>>2]|0;c[e>>2]=k;c[e+4>>2]=k;c[e+8>>2]=k;f[e+12>>2]=0.0;f[e+(j<<2)>>2]=+f[a+28+(j<<2)>>2]+ +f[e+(j<<2)>>2];h=(+f[e>>2]+.03999999910593033)*2.0;g=(+f[e+4>>2]+.03999999910593033)*2.0;i=(+f[e+8>>2]+.03999999910593033)*2.0;f[d>>2]=b*.0833333283662796*(g*g+i*i);f[d+4>>2]=b*.0833333283662796*(h*h+i*i);f[d+8>>2]=b*.0833333283662796*(h*h+g*g);ea=e;return}function zk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,g=0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0;if((d|0)<=0)return;m=0;do{j=+f[a+32>>2];e=+f[a+28>>2];g=b+(m<<4)|0;h=+f[b+(m<<4)+4>>2];k=+f[b+(m<<4)+8>>2];l=+s(+(h*h+k*k));if(l!=0.0){i=+f[g>>2]<0.0?-e:e;h=h*(j/l);e=k*(j/l)}else{i=+f[g>>2]<0.0?-e:e;h=j;e=0.0}f[c+(m<<4)>>2]=i;f[c+(m<<4)+4>>2]=h;f[c+(m<<4)+8>>2]=e;m=m+1|0}while((m|0)!=(d|0));return}function Ak(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0;if((d|0)<=0)return;l=0;do{h=+f[a+28>>2];e=+f[a+36>>2];g=+f[b+(l<<4)>>2];i=+f[b+(l<<4)+4>>2];j=+s(+(g*g+i*i));if(j!=0.0){k=+f[b+(l<<4)+8>>2]<0.0?-e:e;g=g*(h/j);e=i*(h/j)}else{k=+f[b+(l<<4)+8>>2]<0.0?-e:e;g=h;e=0.0}f[c+(l<<4)>>2]=g;f[c+(l<<4)+4>>2]=e;f[c+(l<<4)+8>>2]=k;l=l+1|0}while((l|0)!=(d|0));return}function Bk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;j=c[b>>2]|0;if(!e)e=c[a+188>>2]|0;h=c[a+268>>2]|0;if((h|0)<=0)return;i=c[a+276>>2]|0;f=0;while(1){g=i+(f<<2)|0;if((c[g>>2]|0)==(j|0))break;f=f+1|0;if((f|0)>=(h|0)){k=9;break}}if((k|0)==9)return;if((f|0)>=(h|0))return;c[g>>2]=c[i+(h+-1<<2)>>2];c[a+268>>2]=h+-1;k=c[a+284>>2]|0;wa[c[(c[k>>2]|0)+12>>2]&31](k,e,b,d)|0;return}function Ck(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0;if((d|0)<=0)return;l=0;do{h=+f[a+28>>2];e=+f[a+32>>2];g=+f[b+(l<<4)>>2];i=+f[b+(l<<4)+8>>2];j=+s(+(g*g+i*i));if(j!=0.0){k=+f[b+(l<<4)+4>>2]<0.0?-e:e;g=g*(h/j);e=i*(h/j)}else{k=+f[b+(l<<4)+4>>2]<0.0?-e:e;g=h;e=0.0}f[c+(l<<4)>>2]=g;f[c+(l<<4)+4>>2]=k;f[c+(l<<4)+8>>2]=e;l=l+1|0}while((l|0)!=(d|0));return}function Dk(b,d){b=b|0;d=d|0;var e=0;e=Gs()|0;c[e+8>>2]=0;c[e+12>>2]=1065353216;c[e+16>>2]=1065353216;c[e+20>>2]=1065353216;f[e+24>>2]=0.0;f[e+44>>2]=.03999999910593033;c[e+52>>2]=0;c[e+56>>2]=1065353216;c[e+60>>2]=1065353216;c[e+64>>2]=1065353216;f[e+68>>2]=0.0;c[e+72>>2]=-1082130432;c[e+76>>2]=-1082130432;c[e+80>>2]=-1082130432;f[e+84>>2]=0.0;a[e+88>>0]=0;c[e>>2]=9004;c[e+92>>2]=b;c[e+4>>2]=3;if(!d)return e|0;Bi(e);return e|0}function Ek(a,b){a=a|0;b=b|0;var d=0,e=0,g=0;e=ea;ea=ea+32|0;d=c[a+216>>2]|0;if(+f[d+4>>2]==0.0){a=0;ea=e;return a|0}b=c[b>>2]|0;if(!(ta[c[(c[d>>2]|0)+8>>2]&31](d,c[b+188>>2]|0)|0)){a=1;ea=e;return a|0}g=c[b+192>>2]|0;d=c[a+216>>2]|0;c[e>>2]=0;c[e+4>>2]=g;c[e+8>>2]=b;c[e+12>>2]=b+4;c[e+16>>2]=-1;c[e+20>>2]=-1;Nb(a+68|0,a+132|0,e,d);a=1;ea=e;return a|0}function Fk(b,d,e,g,h){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0;i=gs()|0;Ed(i,b,d,e,g,h);c[i>>2]=5548;c[i+4>>2]=9;a[i+1309>>0]=0;a[i+1309+1>>0]=0;a[i+1309+2>>0]=0;a[i+1309+3>>0]=0;a[i+1309+4>>0]=0;a[i+1309+5>>0]=0;e=i+1316|0;g=e+48|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(g|0));f[i+1364>>2]=1.0;f[i+1368>>2]=1.0;f[i+1372>>2]=1.0;f[i+1376>>2]=1.0;f[i+1380>>2]=1.0;f[i+1384>>2]=1.0;return i|0}function Gk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=ta[c[(c[d>>2]|0)+40>>2]&31](d,a)|0;f=ta[c[(c[d>>2]|0)+28>>2]&31](d,e)|0;c[b>>2]=f;if(f|0)Ia[c[(c[d>>2]|0)+48>>2]&127](d,e);c[b+4>>2]=c[a+4>>2];c[b+28>>2]=c[a+28>>2];c[b+32>>2]=c[a+32>>2];c[b+36>>2]=c[a+36>>2];c[b+40>>2]=c[a+40>>2];c[b+12>>2]=c[a+12>>2];c[b+16>>2]=c[a+16>>2];c[b+20>>2]=c[a+20>>2];c[b+24>>2]=c[a+24>>2];c[b+44>>2]=c[a+44>>2];return 13704}function Hk(b,d){b=b|0;d=d|0;var e=0.0,g=0.0,h=0.0,i=0.0,j=0.0;a[b+171>>0]=1;c[b+60>>2]=c[d>>2];c[b+60+4>>2]=c[d+4>>2];c[b+60+8>>2]=c[d+8>>2];c[b+60+12>>2]=c[d+12>>2];e=+f[b+60>>2];g=+f[b+64>>2];i=+f[b+68>>2];h=1.0/+s(+(e*e+g*g+i*i));if(+s(+(i*h*(i*h)+(e*h*(e*h)+g*h*(g*h))))<1.1920928955078125e-07){j=0.0;g=0.0;e=0.0;d=0}else{j=e*h;g=g*h;e=i*h;d=c[b+72>>2]|0}f[b+76>>2]=j;f[b+80>>2]=g;f[b+84>>2]=e;c[b+88>>2]=d;return}function Ik(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=ta[c[(c[d>>2]|0)+40>>2]&31](d,a)|0;f=ta[c[(c[d>>2]|0)+28>>2]&31](d,e)|0;c[b>>2]=f;if(f|0)Ia[c[(c[d>>2]|0)+48>>2]&127](d,e);c[b+4>>2]=c[a+4>>2];c[b+12>>2]=c[a+68>>2];c[b+16>>2]=c[a+72>>2];c[b+20>>2]=c[a+76>>2];c[b+24>>2]=c[a+80>>2];c[b+28>>2]=c[a+48>>2];c[b+32>>2]=c[a+52>>2];c[b+36>>2]=c[a+56>>2];c[b+40>>2]=c[a+60>>2];c[b+44>>2]=c[a+64>>2];return 19816}function Jk(){var b=0,d=0.0,e=0.0;b=ea;ea=ea+16|0;if((a[24944]|0)==0?DC(24944)|0:0){c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;sf(25640,0.0,0,0,b);PB(24944)}c[6461]=c[6461]|1;f[6496]=0.0;d=+f[6506]*0.0;e=+f[6507]*0.0;f[6501]=+f[6505]*0.0;f[6502]=d;f[6503]=e;f[6504]=0.0;c[6509]=0;c[6510]=0;c[6511]=0;c[6512]=0;e=+f[6498]*0.0;d=+f[6499]*0.0;f[6550]=+f[6497]*0.0;f[6551]=e;f[6552]=d;f[6553]=0.0;ea=b;return}function Kk(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,g=0.0,h=0,i=0,j=0;j=c[a+68>>2]|0;i=c[a+64>>2]|0;h=c[a+72>>2]|0;e=+f[a+60>>2]*(+f[b+(j<<2)>>2]/+f[a+12+(j<<2)>>2]);f[a+60>>2]=e;g=+f[a+56>>2]*((+f[b+(i<<2)>>2]/+f[a+12+(i<<2)>>2]+ +f[b+(h<<2)>>2]/+f[a+12+(h<<2)>>2])*.5);f[a+56>>2]=g;f[a+52>>2]=g/+s(+(e*e+g*g));g=+r(+(+f[b>>2]));e=+r(+(+f[b+4>>2]));d=+r(+(+f[b+8>>2]));f[a+12>>2]=g;f[a+16>>2]=e;f[a+20>>2]=d;f[a+24>>2]=0.0;return}function Lk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=ea;ea=ea+48|0;c[f+32>>2]=10252;c[f+32+4>>2]=e;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];c[f+16>>2]=c[d>>2];c[f+16+4>>2]=c[d+4>>2];c[f+16+8>>2]=c[d+8>>2];c[f+16+12>>2]=c[d+12>>2];Zd(c[a+4>>2]|0,f,f+32|0);Zd(c[a+64>>2]|0,f,f+32|0);ea=f;return}function Mk(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;var e=0,g=0.0,h=0.0,i=0.0;e=ea;ea=ea+48|0;g=+DJ(b);h=+DJ(c);i=+DJ(d);b=+CJ(b);c=+CJ(c);d=+CJ(d);f[e+32>>2]=h*i;f[e+28>>2]=c*(b*i)-g*d;f[e+24>>2]=c*(g*i)+b*d;f[e+20>>2]=h*d;f[e+16>>2]=c*(b*d)+g*i;f[e+12>>2]=c*(g*d)-b*i;f[e+8>>2]=-c;f[e+4>>2]=h*b;f[e>>2]=h*g;Oo(a,e+32|0,e+28|0,e+24|0,e+20|0,e+16|0,e+12|0,e+8|0,e+4|0,e);ea=e;return}function Nk(b,d){b=b|0;d=+d;var e=0,g=0.0,h=0;d=1.0/+f[(c[b+116>>2]|0)+344>>2];if((c[b+136>>2]|0)<=0)return;h=0;do{e=c[b+144>>2]|0;if(!(a[e+(h*284|0)+84>>0]|0))g=0.0;else{g=+f[e+(h*284|0)+272>>2];g=d*(+f[e+(h*284|0)+216>>2]*(+f[e+(h*284|0)+204>>2]-+f[e+(h*284|0)+32>>2])*+f[e+(h*284|0)+268>>2]-g*+f[(g<0.0?e+(h*284|0)+220|0:e+(h*284|0)+224|0)>>2]);g=g<0.0?0.0:g}f[e+(h*284|0)+276>>2]=g;h=h+1|0}while((h|0)<(c[b+136>>2]|0));return}function Ok(a,d,f,g,h,i){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0;j=c[a+108>>2]|0;if(j|0){Va[c[(c[j>>2]|0)+24>>2]&7](j,d,f,g,h,i);return}j=b[a+56>>1]|0;if(!(j<<16>>16))return;h=1;d=1;do{i=c[a+68>>2]|0;if(b[i+(h<<2)>>1]&1){ta[c[(c[g>>2]|0)+8>>2]&31](g,(c[a+60>>2]|0)+((e[i+(h<<2)+2>>1]|0)<<6)|0)|0;j=b[a+56>>1]|0}d=d+1<<16>>16;h=d&65535}while(((j&65535)<<1|1)>>>0>h>>>0);return}function Pk(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;b=c[d>>2]|0;b=ta[c[(c[b>>2]|0)+56>>2]&31](b,80)|0;d=c[d>>2]|0;c[b+4>>2]=d;c[b>>2]=6620;a[b+8>>0]=1;c[b+12>>2]=6668;c[b+60>>2]=d;c[b+64>>2]=0;c[b+16>>2]=f;c[b+20>>2]=e;d=va[c[(c[d>>2]|0)+12>>2]&63](d,c[f+8>>2]|0,c[e+8>>2]|0)|0;c[b+76>>2]=d;f=c[b+60>>2]|0;Ia[c[(c[f>>2]|0)+20>>2]&127](f,d);return b|0}function Qk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,g=0,h=0.0,i=0.0;e=+f[a+28>>2];i=+f[a+32>>2];h=+f[a+36>>2];switch(d|0){case 0:{a=0;d=0;g=1065353216;break}case 1:{a=0;d=0;g=-1082130432;break}case 2:{a=0;d=1065353216;g=0;e=i;break}case 3:{a=0;d=-1082130432;g=0;e=i;break}case 4:{a=1065353216;d=0;g=0;e=h;break}case 5:{a=-1082130432;d=0;g=0;e=h;break}default:return}c[b>>2]=g;c[b+4>>2]=d;c[b+8>>2]=a;f[b+12>>2]=-e;return}function Rk(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;b=c[d>>2]|0;b=ta[c[(c[b>>2]|0)+56>>2]&31](b,80)|0;d=c[d>>2]|0;c[b+4>>2]=d;c[b>>2]=6620;a[b+8>>0]=0;c[b+12>>2]=6668;c[b+60>>2]=d;c[b+64>>2]=0;c[b+16>>2]=e;c[b+20>>2]=f;d=va[c[(c[d>>2]|0)+12>>2]&63](d,c[e+8>>2]|0,c[f+8>>2]|0)|0;c[b+76>>2]=d;f=c[b+60>>2]|0;Ia[c[(c[f>>2]|0)+20>>2]&127](f,d);return b|0}function Sk(b){b=b|0;var d=0;c[b>>2]=7784;d=c[b+120>>2]|0;if(d|0){if(a[b+124>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+120>>2]=0}a[b+124>>0]=1;c[b+120>>2]=0;c[b+112>>2]=0;c[b+116>>2]=0;d=c[b+100>>2]|0;if(!d){a[b+104>>0]=1;c[b+100>>2]=0;c[b+92>>2]=0;b=b+96|0;c[b>>2]=0;return}if(a[b+104>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+100>>2]=0;a[b+104>>0]=1;c[b+100>>2]=0;c[b+92>>2]=0;b=b+96|0;c[b>>2]=0;return}function Tk(b){b=b|0;var d=0;c[b>>2]=6200;d=c[b+284>>2]|0;Ca[c[c[d>>2]>>2]&511](d);d=c[b+284>>2]|0;if(d|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b>>2]=6156;d=c[b+276>>2]|0;if(!d){a[b+280>>0]=1;c[b+276>>2]=0;c[b+268>>2]=0;d=b+272|0;c[d>>2]=0;c[b>>2]=6120;return}if(a[b+280>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+276>>2]=0;a[b+280>>0]=1;c[b+276>>2]=0;c[b+268>>2]=0;d=b+272|0;c[d>>2]=0;c[b>>2]=6120;return}function Uk(a){a=a|0;var b=0,d=0,e=0,g=0.0,h=0.0;e=c[a+232>>2]|0;if((e|0)<=0)return;a=c[a+240>>2]|0;d=0;do{b=c[a+(d<<2)>>2]|0;switch(c[b+216>>2]|0){case 2:case 5:break;default:if(!(c[b+204>>2]&3)){h=+f[b+368>>2]*+f[b+352>>2];g=+f[b+372>>2]*+f[b+356>>2];f[b+412>>2]=+f[b+364>>2]*+f[b+348>>2]+ +f[b+412>>2];f[b+416>>2]=h+ +f[b+416>>2];f[b+420>>2]=g+ +f[b+420>>2]}}d=d+1|0}while((d|0)!=(e|0));return}function Vk(a,b){a=a|0;b=b|0;var c=0,d=0.0,e=0.0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0;c=ea;ea=ea+16|0;l=+f[a+12>>2];i=+f[(NJ(b)|0)>>2];j=+f[a>>2];k=+f[b+12>>2];h=+f[a+4>>2];d=+f[(rJ(b)|0)>>2];e=+f[a+8>>2];g=+f[(sJ(b)|0)>>2];f[c+12>>2]=l*i+j*k+h*d-e*g;f[c+8>>2]=l*g+h*k+e*i-j*d;f[c+4>>2]=l*d+e*k+j*g-h*i;f[c>>2]=l*k-j*i-h*g-e*d;zr(a,c+12|0,c+8|0,c+4|0,c);ea=c;return a|0}function Wk(b){b=b|0;var d=0;d=Gs()|0;c[d+8>>2]=0;c[d+12>>2]=1065353216;c[d+16>>2]=1065353216;c[d+20>>2]=1065353216;f[d+24>>2]=0.0;f[d+44>>2]=.03999999910593033;c[d+52>>2]=0;c[d+56>>2]=1065353216;c[d+60>>2]=1065353216;c[d+64>>2]=1065353216;f[d+68>>2]=0.0;c[d+72>>2]=-1082130432;c[d+76>>2]=-1082130432;c[d+80>>2]=-1082130432;f[d+84>>2]=0.0;a[d+88>>0]=0;c[d>>2]=9004;c[d+92>>2]=b;c[d+4>>2]=3;Bi(d);return d|0}function Xk(a,b){a=a|0;b=+b;var d=0.0,e=0.0,g=0.0,h=0.0,i=0.0;h=+ha[c[(c[a>>2]|0)+48>>2]&15](a);e=+ha[c[(c[a>>2]|0)+48>>2]&15](a);i=+ha[c[(c[a>>2]|0)+48>>2]&15](a);h=h+ +f[a+28>>2];e=e+ +f[a+32>>2];i=i+ +f[a+36>>2];f[a+44>>2]=b;g=+ha[c[(c[a>>2]|0)+48>>2]&15](a);d=+ha[c[(c[a>>2]|0)+48>>2]&15](a);b=i-+ha[c[(c[a>>2]|0)+48>>2]&15](a);f[a+28>>2]=h-g;f[a+32>>2]=e-d;f[a+36>>2]=b;f[a+40>>2]=0.0;return}function Yk(b,d,e){b=b|0;d=d|0;e=e|0;var g=0;g=gs()|0;gd(g,b,d,e);c[g>>2]=5548;c[g+4>>2]=9;a[g+1309>>0]=0;a[g+1309+1>>0]=0;a[g+1309+2>>0]=0;a[g+1309+3>>0]=0;a[g+1309+4>>0]=0;a[g+1309+5>>0]=0;e=g+1316|0;b=e+48|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(b|0));f[g+1364>>2]=1.0;f[g+1368>>2]=1.0;f[g+1372>>2]=1.0;f[g+1376>>2]=1.0;f[g+1380>>2]=1.0;f[g+1384>>2]=1.0;return g|0}function Zk(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;g=(a[b+16>>0]|0)==0;h=c[(g?d:e)+8>>2]|0;e=g?e:d;g=c[e+8>>2]|0;b=c[h+268>>2]|0;a:do if((b|0)>0){d=c[h+276>>2]|0;f=0;while(1){if((c[d+(f<<2)>>2]|0)==(g|0))break;f=f+1|0;if((f|0)>=(b|0))break a}if((f|0)!=(b|0))return}while(0);d=c[h+284>>2]|0;Ma[c[(c[d>>2]|0)+36>>2]&127](d,h,e);return}function _k(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;b=c[d>>2]|0;b=ta[c[(c[b>>2]|0)+56>>2]&31](b,16)|0;d=c[d>>2]|0;c[b+4>>2]=d;c[b>>2]=6688;a[b+8>>0]=0;c[b+12>>2]=0;if(!(va[c[(c[d>>2]|0)+24>>2]&63](d,c[e+8>>2]|0,c[f+8>>2]|0)|0))return b|0;d=c[b+4>>2]|0;c[b+12>>2]=va[c[(c[d>>2]|0)+12>>2]&63](d,c[e+8>>2]|0,c[f+8>>2]|0)|0;a[b+8>>0]=1;return b|0}function $k(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0.0,h=0.0,i=0.0,j=0.0,k=0.0;i=+ha[c[(c[a>>2]|0)+48>>2]&15](a);h=+ha[c[(c[a>>2]|0)+48>>2]&15](a);g=+ha[c[(c[a>>2]|0)+48>>2]&15](a);k=+f[b+52>>2]-h;j=+f[b+56>>2]-g;f[d>>2]=+f[b+48>>2]-i;f[d+4>>2]=k;f[d+8>>2]=j;f[d+12>>2]=0.0;h=h+ +f[b+52>>2];g=g+ +f[b+56>>2];f[e>>2]=i+ +f[b+48>>2];f[e+4>>2]=h;f[e+8>>2]=g;f[e+12>>2]=0.0;return}function al(b,d){b=b|0;d=d|0;var e=0;a[b+148>>0]=0;a:do if(Zc(b,d)|0){e=0;while(1){a[b+148>>0]=1;if(e>>>0>3)break a;if(Zc(b,d)|0)e=e+1|0;else break}}while(0);e=(c[b+8>>2]|0)+52|0;c[b+92>>2]=c[e>>2];c[b+92+4>>2]=c[e+4>>2];c[b+92+8>>2]=c[e+8>>2];c[b+92+12>>2]=c[e+12>>2];mp(b+112|0,e|0,16)|0;return}function bl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=c[a+720>>2]|0;h=c[a+732>>2]|0;if((h|0)<=0){d=0;return d|0}a=c[a+740>>2]|0;f=0;while(1){e=c[a+(f*52|0)+8>>2]|0;if((e|0)==(g+(b*104|0)|0)?(c[a+(f*52|0)+12>>2]|0)==(g+(d*104|0)|0):0){a=1;e=8;break}if((e|0)==(g+(d*104|0)|0)?(c[a+(f*52|0)+12>>2]|0)==(g+(b*104|0)|0):0){a=1;e=8;break}f=f+1|0;if((f|0)>=(h|0)){a=0;e=8;break}}if((e|0)==8)return a|0;return 0}function cl(a){a=a|0;var b=0,d=0,e=0.0,g=0.0;if((c[a+136>>2]|0)<=0)return;b=0;do{d=c[a+144>>2]|0;c[d+(b*284|0)+32>>2]=c[d+(b*284|0)+204>>2];f[d+(b*284|0)+272>>2]=0.0;g=-+f[d+(b*284|0)+56>>2];e=-+f[d+(b*284|0)+60>>2];f[d+(b*284|0)>>2]=-+f[d+(b*284|0)+52>>2];f[d+(b*284|0)+4>>2]=g;f[d+(b*284|0)+8>>2]=e;f[d+(b*284|0)+12>>2]=0.0;f[d+(b*284|0)+268>>2]=1.0;b=b+1|0}while((b|0)<(c[a+136>>2]|0));return}function dl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,g=0.0,h=0.0,i=0.0,j=0.0;j=+f[d>>2];i=+f[d+4>>2];e=+f[d+8>>2];g=j*+f[b+56>>2]+i*+f[b+60>>2]+e*+f[b+64>>2];h=j*+f[b+72>>2]+i*+f[b+76>>2]+e*+f[b+80>>2];e=j*+f[b+88>>2]+i*+f[b+92>>2]+e*+f[b+96>>2];b=b+56+((g>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];return}function el(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=c[d>>2]|0;g=ta[c[(c[g>>2]|0)+56>>2]&31](g,20)|0;h=c[d+4>>2]|0;b=a[b+4>>0]|0;d=c[d>>2]|0;c[g+4>>2]=d;c[g>>2]=7116;a[g+8>>0]=0;c[g+12>>2]=h;a[g+16>>0]=b;if(h|0)return g|0;c[g+12>>2]=va[c[(c[d>>2]|0)+12>>2]&63](d,c[e+8>>2]|0,c[f+8>>2]|0)|0;a[g+8>>0]=1;return g|0}function fl(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;b=c[d>>2]|0;b=ta[c[(c[b>>2]|0)+56>>2]&31](b,44)|0;c[b+4>>2]=c[d>>2];c[b>>2]=7276;a[b+24>>0]=1;c[b+20>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;a[b+28>>0]=1;c[b+32>>2]=c[d+4>>2];a[b+36>>0]=0;c[b+40>>2]=c[(c[f+4>>2]|0)+68>>2];mg(b,e,f);return b|0}function gl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,g=0,h=0.0,i=0.0,j=0.0,k=0.0;k=+f[a+28>>2];i=+f[a+32>>2];e=+f[a+36>>2];j=+ha[c[(c[a>>2]|0)+48>>2]&15](a);h=+ha[c[(c[a>>2]|0)+48>>2]&15](a);e=e+ +ha[c[(c[a>>2]|0)+48>>2]&15](a);g=(1?b>>>1:b)&1;a=(2?b>>>2:b)&1;f[d>>2]=(k+j)*+(b&1^1|0)-(k+j)*+(b&1|0);f[d+4>>2]=(i+h)*+(g^1|0)-(i+h)*+(g|0);f[d+8>>2]=e*+(a^1|0)-e*+(a|0);f[d+12>>2]=0.0;return}function hl(a,b,d){a=a|0;b=+b;d=d|0;var e=0.0,g=0.0,h=0.0,i=0.0,j=0.0;i=+f[a+28>>2];g=+f[a+32>>2];j=+f[a+36>>2];h=+ha[c[(c[a>>2]|0)+48>>2]&15](a);e=+ha[c[(c[a>>2]|0)+48>>2]&15](a);j=(j+ +ha[c[(c[a>>2]|0)+48>>2]&15](a))*2.0;f[d>>2]=b/12.0*((g+e)*2.0*((g+e)*2.0)+j*j);f[d+4>>2]=b/12.0*((i+h)*2.0*((i+h)*2.0)+j*j);f[d+8>>2]=b/12.0*((i+h)*2.0*((i+h)*2.0)+(g+e)*2.0*((g+e)*2.0));f[d+12>>2]=0.0;return}function il(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;b=c[d>>2]|0;b=ta[c[(c[b>>2]|0)+56>>2]&31](b,44)|0;c[b+4>>2]=c[d>>2];c[b>>2]=7276;a[b+24>>0]=1;c[b+20>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;a[b+28>>0]=0;c[b+32>>2]=c[d+4>>2];a[b+36>>0]=0;c[b+40>>2]=c[(c[e+4>>2]|0)+68>>2];mg(b,e,f);return b|0}function jl(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=ea;ea=ea+48|0;c[f>>2]=8240;c[f+4>>2]=b;c[f+8>>2]=c[d>>2];c[f+8+4>>2]=c[d+4>>2];c[f+8+8>>2]=c[d+8>>2];c[f+8+12>>2]=c[d+12>>2];c[f+24>>2]=c[e>>2];c[f+24+4>>2]=c[e+4>>2];c[f+24+8>>2]=c[e+8>>2];c[f+24+12>>2]=c[e+12>>2];a=c[a+48>>2]|0;Pa[c[(c[a>>2]|0)+8>>2]&127](a,f,d,e);ea=f;return}function kl(a,b,d){a=a|0;b=b|0;d=d|0;ht(a);c[a>>2]=3616;CF(a+20|0);c[a+40>>2]=c[b>>2];c[a+40+4>>2]=c[b+4>>2];c[a+40+8>>2]=c[b+8>>2];c[a+40+12>>2]=c[b+12>>2];c[a+56>>2]=c[d>>2];c[a+56+4>>2]=c[d+4>>2];c[a+56+8>>2]=c[d+8>>2];c[a+56+12>>2]=c[d+12>>2];CF(a+72|0);CF(a+92|0);CF(a+112|0);return}function ll(a,b){a=a|0;b=+b;var d=0,e=0.0,g=0.0,h=0.0,i=0.0;d=Ds()|0;c[d+4>>2]=35;c[d+8>>2]=0;f[d+12>>2]=0.0;c[d>>2]=8260;i=+f[a>>2];h=+f[a+4>>2];g=+f[a+8>>2];a=c[a+12>>2]|0;e=1.0/+s(+(i*i+h*h+g*g));f[d+48>>2]=i*e;f[d+52>>2]=h*e;f[d+56>>2]=g*e;c[d+60>>2]=a;f[d+64>>2]=b;c[d+68>>2]=0;c[d+68+4>>2]=0;c[d+68+8>>2]=0;c[d+68+12>>2]=0;c[d+4>>2]=28;return d|0}function ml(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;f=c[d>>2]|0;f=ta[c[(c[f>>2]|0)+56>>2]&31](f,36)|0;g=c[d+4>>2]|0;i=c[b+12>>2]|0;h=c[b+8>>2]|0;e=c[b+16>>2]|0;b=c[b+20>>2]|0;c[f+4>>2]=c[d>>2];c[f>>2]=7164;c[f+8>>2]=i;c[f+12>>2]=h;a[f+16>>0]=0;c[f+20>>2]=g;a[f+24>>0]=0;c[f+28>>2]=e;c[f+32>>2]=b;return f|0}function nl(b){b=b|0;var d=0;c[b>>2]=7784;d=c[b+120>>2]|0;if(d|0){if(a[b+124>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+120>>2]=0}a[b+124>>0]=1;c[b+120>>2]=0;c[b+112>>2]=0;c[b+116>>2]=0;d=c[b+100>>2]|0;if(d|0){if(a[b+104>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+100>>2]=0}a[b+104>>0]=1;c[b+100>>2]=0;c[b+92>>2]=0;c[b+96>>2]=0;c[6748]=(c[6748]|0)+1;uc(c[b+-4>>2]|0);return}function ol(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=ea;ea=ea+32|0;Gp(a,+f[b>>2],+f[b+4>>2],+f[b+8>>2]);wp(d,+f[b>>2],+f[b+4>>2],+f[b+8>>2],+f[a+348>>2],+f[a+352>>2],+f[a+356>>2]);Ko(d+16|0,+f[c>>2],+f[c+4>>2],+f[c+8>>2],+f[d>>2],+f[d+4>>2],+f[d+8>>2]);Lp(a,+f[d+16>>2],+f[d+16+4>>2],+f[d+16+8>>2]);ea=d;return}function pl(a,b){a=a|0;b=b|0;var d=0;d=ea;ea=ea+64|0;c[d>>2]=1065353216;c[d+4>>2]=0;c[d+4+4>>2]=0;c[d+4+8>>2]=0;c[d+4+12>>2]=0;c[d+20>>2]=1065353216;c[d+24>>2]=0;c[d+24+4>>2]=0;c[d+24+8>>2]=0;c[d+24+12>>2]=0;c[d+40>>2]=1065353216;c[d+44>>2]=0;c[d+48>>2]=c[b>>2];c[d+48+4>>2]=c[b+4>>2];c[d+48+8>>2]=c[b+8>>2];c[d+48+12>>2]=c[b+12>>2];Ic(a,d);ea=d;return}function ql(a,b,c,d,e){a=a|0;b=b|0;c=+c;d=+d;e=+e;var g=0,h=0;g=ea;ea=ea+16|0;h=wH(b,0)|0;f[g+8>>2]=+yy(+f[h>>2],+f[h+4>>2],+f[h+8>>2],c,d,e);h=wH(b,1)|0;f[g+4>>2]=+yy(+f[h>>2],+f[h+4>>2],+f[h+8>>2],c,d,e);b=wH(b,2)|0;f[g>>2]=+yy(+f[b>>2],+f[b+4>>2],+f[b+8>>2],c,d,e);qs(a,g+8|0,g+4|0,g);ea=g;return}function rl(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;if(c>>>0>0|(c|0)==0&b>>>0>4294967295)do{e=b;b=GB(b|0,c|0,10,0)|0;f=c;c=D()|0;g=Yr(b|0,c|0,-10,-1)|0;g=Lv(e|0,f|0,g|0,D()|0)|0;D()|0;d=d+-1|0;a[d>>0]=g&255|48}while(f>>>0>9|(f|0)==9&e>>>0>4294967295);if(b)do{g=b;b=(b>>>0)/10|0;d=d+-1|0;a[d>>0]=g+(z(b,-10)|0)|48}while(g>>>0>=10);return d|0}function sl(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;if((d|0)==0?1:(c[d+236>>2]&2|0)==0){d=1;return d|0}g=c[b+488>>2]|0;if((g|0)<=0){d=1;return d|0}b=c[b+496>>2]|0;f=0;while(1){e=c[b+(f<<2)>>2]|0;if(a[e+20>>0]|0){if((c[e+28>>2]|0)==(d|0)){b=0;e=8;break}if((c[e+32>>2]|0)==(d|0)){b=0;e=8;break}}f=f+1|0;if((f|0)>=(g|0)){b=1;e=8;break}}if((e|0)==8)return b|0;return 0}function tl(a,b,c,d,e){a=a|0;b=b|0;c=+c;d=+d;e=+e;var g=0,h=0,i=0,j=0;g=ea;ea=ea+16|0;j=wH(b,0)|0;i=wH(b,1)|0;h=wH(b,2)|0;fm(g,c,d,e,+f[j>>2],+f[j+4>>2],+f[j+8>>2],+f[i>>2],+f[i+4>>2],+f[i+8>>2],+f[h>>2],+f[h+4>>2],+f[h+8>>2]);vp(a,+f[g>>2],+f[g+4>>2],+f[g+8>>2],+f[b+48>>2],+f[b+52>>2],+f[b+56>>2]);ea=g;return}function ul(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,g=0.0,h=0.0,i=0.0,j=0.0;i=+f[b+28>>2];j=+f[b+32>>2];e=+f[b+36>>2];h=+ha[c[(c[b>>2]|0)+48>>2]&15](b);g=+ha[c[(c[b>>2]|0)+48>>2]&15](b);e=e+ +ha[c[(c[b>>2]|0)+48>>2]&15](b);g=+f[d+4>>2]>=0.0?j+g:-(j+g);e=+f[d+8>>2]>=0.0?e:-e;f[a>>2]=+f[d>>2]>=0.0?i+h:-(i+h);f[a+4>>2]=g;f[a+8>>2]=e;f[a+12>>2]=0.0;return}function vl(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0.0,h=0.0,i=0.0;if((d|0)<=0)return;e=0;do{i=+f[a+28>>2];h=+f[a+32>>2];h=+f[b+(e<<4)+4>>2]>=0.0?h:-h;g=+f[a+36>>2];g=+f[b+(e<<4)+8>>2]>=0.0?g:-g;f[c+(e<<4)>>2]=+f[b+(e<<4)>>2]>=0.0?i:-i;f[c+(e<<4)+4>>2]=h;f[c+(e<<4)+8>>2]=g;f[c+(e<<4)+12>>2]=0.0;e=e+1|0}while((e|0)!=(d|0));return}function wl(b){b=b|0;var d=0,e=0;c[b>>2]=7404;d=c[b+64>>2]|0;if(d|0?(th(d),e=c[b+64>>2]|0,e|0):0){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0)}d=c[b+24>>2]|0;if(!d){a[b+28>>0]=1;c[b+24>>2]=0;c[b+16>>2]=0;b=b+20|0;c[b>>2]=0;return}if(a[b+28>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+24>>2]=0;a[b+28>>0]=1;c[b+24>>2]=0;c[b+16>>2]=0;b=b+20|0;c[b>>2]=0;return}function xl(a,b,d,e,f,g,h,i,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;a=c[a+32>>2]|0;c[d>>2]=c[a+(k<<5)+12>>2];c[b>>2]=c[a+(k<<5)+16>>2];c[e>>2]=c[a+(k<<5)+28>>2];c[f>>2]=c[a+(k<<5)+20>>2];c[i>>2]=c[a+(k<<5)>>2];c[g>>2]=c[a+(k<<5)+4>>2];c[h>>2]=c[a+(k<<5)+8>>2];c[j>>2]=c[a+(k<<5)+24>>2];return}function yl(b){b=b|0;var d=0,e=0;c[b>>2]=8568;d=c[b+104>>2]|0;if(d|0){if(a[b+108>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+104>>2]=0}a[b+108>>0]=1;c[b+104>>2]=0;c[b+96>>2]=0;c[b+100>>2]=0;c[b>>2]=8336;d=c[b+52>>2]|0;if(d|0?(Ca[c[c[d>>2]>>2]&511](d),e=c[b+52>>2]|0,e|0):0){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0)}c[6748]=(c[6748]|0)+1;uc(c[b+-4>>2]|0);return}function zl(a,b){a=+a;b=+b;var d=0;d=_s()|0;c[d+8>>2]=0;c[d>>2]=8468;c[d+12>>2]=1065353216;c[d+16>>2]=1065353216;c[d+20>>2]=1065353216;f[d+24>>2]=0.0;f[d+44>>2]=.03999999910593033;f[d+56>>2]=a;f[d+60>>2]=b;c[d+4>>2]=11;f[d+52>>2]=a/+s(+(a*a+b*b));c[d>>2]=7584;c[d+64>>2]=0;c[d+68>>2]=2;c[d+72>>2]=1;f[d+28>>2]=a;f[d+36>>2]=b;f[d+32>>2]=a;return d|0}function Al(a,b){a=+a;b=+b;var d=0;d=_s()|0;c[d+8>>2]=0;c[d>>2]=8468;c[d+12>>2]=1065353216;c[d+16>>2]=1065353216;c[d+20>>2]=1065353216;f[d+24>>2]=0.0;f[d+44>>2]=.03999999910593033;f[d+56>>2]=a;f[d+60>>2]=b;c[d+4>>2]=11;f[d+52>>2]=a/+s(+(a*a+b*b));c[d>>2]=7684;c[d+64>>2]=1;c[d+68>>2]=0;c[d+72>>2]=2;f[d+32>>2]=a;f[d+28>>2]=b;f[d+36>>2]=a;return d|0}function Bl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;switch(b|0){case 0:{b=0;a=0;e=1065353216;break}case 1:{b=0;a=0;e=-1082130432;break}case 2:{b=0;a=1065353216;e=0;break}case 3:{b=0;a=-1082130432;e=0;break}case 4:{b=1065353216;a=0;e=0;break}case 5:{b=-1082130432;a=0;e=0;break}default:return}c[d>>2]=e;c[d+4>>2]=a;c[d+8>>2]=b;f[d+12>>2]=0.0;return}function Cl(a,b){a=+a;b=b|0;var d=0,e=0,f=0;g[h>>3]=a;d=c[h>>2]|0;e=c[h+4>>2]|0;f=Ft(d|0,e|0,52)|0;D()|0;switch(f&2047){case 0:{if(a!=0.0){a=+Cl(a*18446744073709551616.0,b);d=(c[b>>2]|0)+-64|0}else d=0;c[b>>2]=d;break}case 2047:break;default:{c[b>>2]=(f&2047)+-1022;c[h>>2]=d;c[h+4>>2]=e&-2146435073|1071644672;a=+g[h>>3]}}return +a}function Dl(b,d,e,g){b=b|0;d=d|0;e=e|0;g=+g;c[b+4>>2]=c[d>>2];c[b+4+4>>2]=c[d+4>>2];c[b+4+8>>2]=c[d+8>>2];c[b+4+12>>2]=c[d+12>>2];c[b+20>>2]=c[e>>2];c[b+20+4>>2]=c[e+4>>2];c[b+20+8>>2]=c[e+8>>2];c[b+20+12>>2]=c[e+12>>2];f[b+36>>2]=g;a[b+40>>0]=1;return}function El(a,e,g){a=a|0;e=e|0;g=g|0;var h=0.0;switch(c[a+96>>2]|0){case 0:{h=+f[(c[a+92>>2]|0)+((z(c[a+64>>2]|0,g)|0)+e<<2)>>2];return +h}case 5:{h=+(d[(c[a+92>>2]|0)+((z(c[a+64>>2]|0,g)|0)+e)>>0]|0)*+f[a+88>>2];return +h}case 3:{h=+(b[(c[a+92>>2]|0)+((z(c[a+64>>2]|0,g)|0)+e<<1)>>1]|0)*+f[a+88>>2];return +h}default:{h=0.0;return +h}}return 0.0}function Fl(a,b){a=a|0;b=b|0;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];c[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];c[a+24>>2]=c[b+24>>2];$l(a+28|0,b+28|0);c[a+76>>2]=c[b+76>>2];c[a+76+4>>2]=c[b+76+4>>2];c[a+76+8>>2]=c[b+76+8>>2];c[a+76+12>>2]=c[b+76+12>>2];c[a+76+16>>2]=c[b+76+16>>2];return}function Gl(){var b=0;b=ea;ea=ea+48|0;if(a[24888]|0){ea=b;return}if(!(DC(24888)|0)){ea=b;return}f[b+32>>2]=1.0;f[b+28>>2]=0.0;f[b+24>>2]=0.0;f[b+20>>2]=0.0;f[b+16>>2]=1.0;f[b+12>>2]=0.0;f[b+8>>2]=0.0;f[b+4>>2]=0.0;f[b>>2]=1.0;bq(25392,b+32|0,b+28|0,b+24|0,b+20|0,b+16|0,b+12|0,b+8|0,b+4|0,b);PB(24888);ea=b;return}function Hl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;if((c[a+8>>2]|0)<=0)return;e=0;do{f=c[a+16>>2]|0;g=f+(e<<4)|0;if(ta[c[(c[b>>2]|0)+8>>2]&31](b,g)|0){wa[c[(c[a>>2]|0)+12>>2]&31](a,c[g>>2]|0,c[f+(e<<4)+4>>2]|0,d)|0;c[6723]=(c[6723]|0)+-1}else e=e+1|0}while((e|0)<(c[a+8>>2]|0));return}function Il(a,b){a=a|0;b=b|0;var c=0.0,d=0;d=ea;ea=ea+32|0;c=+f[b+12>>2];if(1.0-c*c<1.1920928955078125e-06){f[d+20>>2]=1.0;f[d+16>>2]=0.0;f[d+12>>2]=0.0;qs(a,d+20|0,d+16|0,d+12|0);ea=d;return}else{c=1.0/+AJ(1.0-c*c);f[d+8>>2]=+f[b>>2]*c;f[d+4>>2]=+f[b+4>>2]*c;f[d>>2]=+f[b+8>>2]*c;qs(a,d+8|0,d+4|0,d);ea=d;return}}function Jl(a,b,d,e,g,h){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;d=ea;ea=ea+16|0;c[d>>2]=10288;c[d+4>>2]=e;rd(a+4|0,c[a+4>>2]|0,b,e+4|0,e+20|0,+f[e+32>>2],g,h,d);rd(a+64|0,c[a+64>>2]|0,b,e+4|0,e+20|0,+f[e+32>>2],g,h,d);ea=d;return}function Kl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=NJ(c[a+4>>2]|0)|0;if((f|0)>(b|0)){e=b;while(1){if((e|0)>=(f|0))break;QH((c[a+12>>2]|0)+(e*36|0)|0);e=e+1|0}c[a+4>>2]=b;return}if((f|0)<(b|0))Gm(a,b);e=f;while(1){if((e|0)>=(b|0))break;Cq((c[a+12>>2]|0)+(e*36|0)|0,d);e=e+1|0}c[a+4>>2]=b;return}function Ll(b){b=b|0;var d=0;c[b>>2]=8568;d=c[b+104>>2]|0;if(d|0){if(a[b+108>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+104>>2]=0}a[b+108>>0]=1;c[b+104>>2]=0;c[b+96>>2]=0;c[b+100>>2]=0;c[b>>2]=8336;d=c[b+52>>2]|0;if(!d)return;Ca[c[c[d>>2]>>2]&511](d);d=c[b+52>>2]|0;if(!d)return;c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0);return}function Ml(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=NJ(c[a+4>>2]|0)|0;if((e|0)>(b|0)){c[a+4>>2]=b;return}if((e|0)<(b|0))Qn(a,b);while(1){if((e|0)>=(b|0))break;f=NJ((c[a+12>>2]|0)+(e<<4)|0)|0;c[f>>2]=c[d>>2];c[f+4>>2]=c[d+4>>2];c[f+8>>2]=c[d+8>>2];c[f+12>>2]=c[d+12>>2];e=e+1|0}c[a+4>>2]=b;return}function Nl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=NJ(c[a+4>>2]|0)|0;if((e|0)>(b|0)){c[a+4>>2]=b;return}if((e|0)<(b|0))un(a,b);while(1){if((e|0)>=(b|0))break;f=(c[a+12>>2]|0)+(e*104|0)|0;g=d;h=f+104|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(h|0));e=e+1|0}c[a+4>>2]=b;return}function Ol(a,b){a=+a;b=+b;var d=0;d=_s()|0;c[d+8>>2]=0;c[d+12>>2]=1065353216;c[d+16>>2]=1065353216;c[d+20>>2]=1065353216;f[d+24>>2]=0.0;f[d+44>>2]=.03999999910593033;c[d>>2]=7484;f[d+56>>2]=a;f[d+60>>2]=b;c[d+4>>2]=11;c[d+64>>2]=0;c[d+68>>2]=1;c[d+72>>2]=2;f[d+28>>2]=a;f[d+32>>2]=b;f[d+36>>2]=a;f[d+52>>2]=a/+s(+(a*a+b*b));return d|0}function Pl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,g=0;e=ea;ea=ea+16|0;c[e>>2]=-1;c[e+4>>2]=c[a+16>>2];if(!(c[b+4>>2]|0))c[b+4>>2]=e;g=c[a+12>>2]|0;f=+ka[c[(c[g>>2]|0)+12>>2]&15](g,b,d);c[a+4>>2]=c[(c[a+12>>2]|0)+4>>2];ea=e;return +f}function Ql(a,b){a=a|0;b=b|0;var d=0;d=ea;ea=ea+16|0;c[a+348>>2]=c[b>>2];c[a+348+4>>2]=c[b+4>>2];c[a+348+8>>2]=c[b+8>>2];c[a+348+12>>2]=c[b+12>>2];_p(d,+f[a+348>>2],+f[a+352>>2],+f[a+356>>2],+f[a+344>>2]);c[a+560>>2]=c[d>>2];c[a+560+4>>2]=c[d+4>>2];c[a+560+8>>2]=c[d+8>>2];c[a+560+12>>2]=c[d+12>>2];ea=d;return}function Rl(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=c[a+268>>2]|0;if((g|0)<=0)return;b=c[b>>2]|0;f=c[a+276>>2]|0;d=0;while(1){e=f+(d<<2)|0;if((c[e>>2]|0)==(b|0))break;d=d+1|0;if((d|0)>=(g|0)){h=7;break}}if((h|0)==7)return;if((d|0)>=(g|0))return;c[e>>2]=c[f+(g+-1<<2)>>2];c[a+268>>2]=g+-1;return}function Sl(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;var e=0,g=0.0,h=0.0,i=0.0;e=ea;ea=ea+16|0;g=+DJ(b*.5);b=+CJ(b*.5);h=+DJ(c*.5);c=+CJ(c*.5);i=+DJ(d*.5);d=+CJ(d*.5);f[e+12>>2]=d*h*g-i*c*b;f[e+8>>2]=i*c*g+d*h*b;f[e+4>>2]=i*h*b-d*c*g;f[e>>2]=i*h*g+d*c*b;zr(a,e+12|0,e+8|0,e+4|0,e);ea=e;return}function Tl(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[a+4>>2]|0;e=NJ(d)|0;if((e|0)==(NJ(c[a+8>>2]|0)|0)){Qn(a,LF(e)|0);d=c[a+4>>2]|0}e=NJ((c[a+12>>2]|0)+(d<<4)|0)|0;c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];c[a+4>>2]=(c[a+4>>2]|0)+1;return}function Ul(a,b,d,e,g,h){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=+h;c[a>>2]=b;c[a+4>>2]=d;c[a+8>>2]=c[e>>2];c[a+8+4>>2]=c[e+4>>2];c[a+8+8>>2]=c[e+8>>2];c[a+8+12>>2]=c[e+12>>2];c[a+24>>2]=c[g>>2];c[a+24+4>>2]=c[g+4>>2];c[a+24+8>>2]=c[g+8>>2];c[a+24+12>>2]=c[g+12>>2];f[a+40>>2]=h;return}function Vl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;f=c[a+280>>2]|0;if((f|0)<=0)return;g=c[a+288>>2]|0;d=0;while(1){e=g+(d<<2)|0;if((c[e>>2]|0)==(b|0))break;d=d+1|0;if((d|0)>=(f|0)){h=7;break}}if((h|0)==7)return;if((d|0)>=(f|0))return;c[e>>2]=c[g+(f+-1<<2)>>2];c[(c[a+288>>2]|0)+(f+-1<<2)>>2]=b;c[a+280>>2]=f+-1;return}function Wl(a){a=a|0;var b=0;b=ea;ea=ea+32|0;f[a>>2]=1.2000000476837158;f[a+4>>2]=0.0;f[a+8>>2]=0.0;f[a+12>>2]=1.0e3;f[b+20>>2]=0.0;f[b+16>>2]=0.0;f[b+12>>2]=0.0;qs(a+16|0,b+20|0,b+16|0,b+12|0);c[a+32>>2]=0;c[a+36>>2]=0;f[b+8>>2]=0.0;f[b+4>>2]=-10.0;f[b>>2]=0.0;qs(a+40|0,b+8|0,b+4|0,b);RH(a+56|0);ea=b;return}function Xl(a,b){a=a|0;b=b|0;var d=0,e=0,g=0;e=c[a+712>>2]|0;if((e|0)<=0)return;a=c[a+720>>2]|0;d=0;do{if(+f[a+(d*104|0)+88>>2]>0.0){g=a+(d*104|0)+56|0;f[g>>2]=+f[b>>2]+ +f[g>>2];g=a+(d*104|0)+60|0;f[g>>2]=+f[b+4>>2]+ +f[g>>2];g=a+(d*104|0)+64|0;f[g>>2]=+f[b+8>>2]+ +f[g>>2]}d=d+1|0}while((d|0)!=(e|0));return}function Yl(a,b,c){a=a|0;b=b|0;c=+c;var d=0,e=0.0;d=ea;ea=ea+16|0;e=+VA(+f[b>>2],+f[b+4>>2],+f[b+8>>2]);e=+CJ(c*.5)/e;f[d+12>>2]=+f[(NJ(b)|0)>>2]*e;f[d+8>>2]=+f[(sJ(b)|0)>>2]*e;f[d+4>>2]=+f[(rJ(b)|0)>>2]*e;f[d>>2]=+DJ(c*.5);zr(a,d+12|0,d+8|0,d+4|0,d);ea=d;return}function Zl(){var b=0,e=0,f=0;f=ea;ea=ea+16|0;a[f>>0]=10;b=c[832]|0;if(!b)if(!(ho(3312)|0)){b=c[832]|0;e=4}else b=-1;else e=4;do if((e|0)==4){e=c[833]|0;if(!(e>>>0>=b>>>0|(a[3387]|0)==10)){c[833]=e+1;a[e>>0]=10;b=10;break}if((va[c[3348>>2]&63](3312,f,1)|0)==1)b=d[f>>0]|0;else b=-1}while(0);ea=f;return b|0}function _l(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,g=0;e=ea;ea=ea+16|0;c[e>>2]=-1;c[e+4>>2]=c[a+24>>2];if(!(c[b+4>>2]|0))c[b+4>>2]=e;g=c[a+20>>2]|0;f=+ka[c[(c[g>>2]|0)+12>>2]&15](g,b,d);c[a+4>>2]=c[(c[a+20>>2]|0)+4>>2];ea=e;return +f}function $l(a,b){a=a|0;b=b|0;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];c[a+16>>2]=c[b+16>>2];c[a+16+4>>2]=c[b+16+4>>2];c[a+16+8>>2]=c[b+16+8>>2];c[a+16+12>>2]=c[b+16+12>>2];c[a+32>>2]=c[b+32>>2];c[a+32+4>>2]=c[b+32+4>>2];c[a+32+8>>2]=c[b+32+8>>2];c[a+32+12>>2]=c[b+32+12>>2];return}function am(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0;a:do switch(b|0){case 2:case 1:{if(c>>>0<3){d=+f[a+600>>2];break a}if((c+-3|0)>>>0<3)d=+f[a+432>>2];else d=0.0;break}case 4:case 3:{if(c>>>0<3){d=+f[a+596>>2];break a}if((c+-3|0)>>>0<3)d=+f[a+604>>2];else d=0.0;break}default:d=0.0}while(0);return +d}function bm(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;b=c[d>>2]|0;b=ta[c[(c[b>>2]|0)+56>>2]&31](b,16)|0;d=c[d>>2]|0;c[b+4>>2]=d;c[b>>2]=10568;a[b+8>>0]=0;c[b+12>>2]=0;c[b+12>>2]=va[c[(c[d>>2]|0)+12>>2]&63](d,c[e+8>>2]|0,c[f+8>>2]|0)|0;a[b+8>>0]=1;return b|0}function cm(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[a+56>>2]|0;if(!d)return;e=ra[c[(c[d>>2]|0)+8>>2]&127](d)|0;e=va[c[(c[b>>2]|0)+16>>2]&63](b,e,1)|0;d=c[a+56>>2]|0;d=va[c[(c[d>>2]|0)+12>>2]&63](d,c[e+8>>2]|0,b)|0;Ta[c[(c[b>>2]|0)+20>>2]&31](b,e,d,1346456916,c[a+56>>2]|0);return}function dm(a,b,d,e){a=a|0;b=b|0;d=+d;e=e|0;switch(b|0){case 2:case 1:if(e>>>0<3){f[a+600>>2]=d;c[a+592>>2]=c[a+592>>2]|2;return}else{f[a+432>>2]=d;return}case 4:case 3:if(e>>>0<3){f[a+596>>2]=d;c[a+592>>2]=c[a+592>>2]|1;return}else{f[a+604>>2]=d;c[a+592>>2]=c[a+592>>2]|4;return}default:return}}function em(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[a+52>>2]|0;if(!d)return;e=ra[c[(c[d>>2]|0)+12>>2]&127](d)|0;e=va[c[(c[b>>2]|0)+16>>2]&63](b,e,1)|0;d=c[a+52>>2]|0;d=va[c[(c[d>>2]|0)+16>>2]&63](d,c[e+8>>2]|0,b)|0;Ta[c[(c[b>>2]|0)+20>>2]&31](b,e,d,1213612625,c[a+52>>2]|0);return}function fm(a,b,c,d,e,g,h,i,j,k,l,m,n){a=a|0;b=+b;c=+c;d=+d;e=+e;g=+g;h=+h;i=+i;j=+j;k=+k;l=+l;m=+m;n=+n;var o=0;o=ea;ea=ea+16|0;f[o+8>>2]=+yy(b,c,d,e,g,h);f[o+4>>2]=+yy(b,c,d,i,j,k);f[o>>2]=+yy(b,c,d,l,m,n);qs(a,o+8|0,o+4|0,o);ea=o;return}function gm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,g=0.0,h=0.0,i=0.0,j=0.0;j=+f[b+28>>2];d=+f[b+36>>2];e=+f[c>>2];h=+f[c+4>>2];i=+s(+(e*e+h*h));if(i!=0.0){g=+f[c+8>>2]<0.0?-d:d;e=e*(j/i);d=h*(j/i)}else{g=+f[c+8>>2]<0.0?-d:d;e=j;d=0.0}f[a>>2]=e;f[a+8>>2]=g;f[a+4>>2]=d;return}function hm(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,g=0.0,h=0.0,i=0.0,j=0.0;j=+f[b+28>>2];d=+f[b+32>>2];e=+f[c>>2];h=+f[c+8>>2];i=+s(+(e*e+h*h));if(i!=0.0){g=+f[c+4>>2]<0.0?-d:d;e=e*(j/i);d=h*(j/i)}else{g=+f[c+4>>2]<0.0?-d:d;e=j;d=0.0}f[a>>2]=e;f[a+4>>2]=g;f[a+8>>2]=d;return}function im(a,b,c){a=a|0;b=b|0;c=+c;var d=0.0,e=0.0,g=0.0,h=0.0;e=+f[a+28>>2];g=+f[a+32>>2];h=+f[a+36>>2];d=+f[b>>2];if(!(d<=e+c)){b=0;return b|0}if(!(d>=-e-c)){b=0;return b|0}d=+f[b+4>>2];if(!(d<=g+c)){b=0;return b|0}if(!(d>=-g-c)){b=0;return b|0}d=+f[b+8>>2];if(!(d<=h+c)){b=0;return b|0}b=d>=-h-c;return b|0}function jm(a,b,d){a=a|0;b=b|0;d=d|0;Uv(a);c[a>>2]=3568;c[a+12>>2]=c[b>>2];c[a+12+4>>2]=c[b+4>>2];c[a+12+8>>2]=c[b+8>>2];c[a+12+12>>2]=c[b+12>>2];c[a+28>>2]=c[d>>2];c[a+28+4>>2]=c[d+4>>2];c[a+28+8>>2]=c[d+8>>2];c[a+28+12>>2]=c[d+12>>2];c[a+76>>2]=0;return}function km(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,g=0.0,h=0.0,i=0.0,j=0.0;j=+f[b+32>>2];d=+f[b+28>>2];e=+f[c+4>>2];h=+f[c+8>>2];i=+s(+(e*e+h*h));if(i!=0.0){g=+f[c>>2]<0.0?-d:d;e=e*(j/i);d=h*(j/i)}else{g=+f[c>>2]<0.0?-d:d;e=j;d=0.0}f[a+4>>2]=e;f[a>>2]=g;f[a+8>>2]=d;return}function lm(b,d,e,g){b=b|0;d=d|0;e=e|0;g=+g;if(!(+f[b+36>>2]>g))return;a[b+40>>0]=1;c[b+4>>2]=c[d>>2];c[b+4+4>>2]=c[d+4>>2];c[b+4+8>>2]=c[d+8>>2];c[b+4+12>>2]=c[d+12>>2];c[b+20>>2]=c[e>>2];c[b+20+4>>2]=c[e+4>>2];c[b+20+8>>2]=c[e+8>>2];c[b+20+12>>2]=c[e+12>>2];f[b+36>>2]=g;return}function mm(a,b){a=a|0;b=+b;var c=0,d=0.0;c=ea;ea=ea+16|0;if(!(+f[a+68>>2]>0.0)){ea=c;return}d=-+f[a+92>>2];b=-+f[a+96>>2];f[c>>2]=-+f[a+88>>2];f[c+4>>2]=d;f[c+8>>2]=b;f[c+12>>2]=0.0;oi(a+4|0,c,a+164|0);oi(a+16|0,a+88|0,a+180|0);ea=c;return}function nm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;a=c[b+748>>2]|0;if((a|0)<=0){c[b+748>>2]=0;return}f=0;do{e=b+4+(f*184|0)+112|0;d=c[e>>2]|0;if((d|0)!=0?(g=c[6719]|0,(g|0)!=0):0){ra[g&127](d)|0;c[e>>2]=0;a=c[b+748>>2]|0}f=f+1|0}while((f|0)<(a|0));c[b+748>>2]=0;return}function om(a){a=a|0;var b=0.0,d=0.0,e=0.0;d=+f[(c[a+28>>2]|0)+344>>2];e=+f[(c[a+32>>2]|0)+344>>2];e=e==0.0?1.0:d/(d+e);d=+f[a+1116>>2]*e+(1.0-e)*+f[a+1180>>2];b=e*+f[a+1120>>2]+(1.0-e)*+f[a+1184>>2];f[a+1284>>2]=+f[a+1112>>2]*e+ +f[a+1176>>2]*(1.0-e);f[a+1288>>2]=d;f[a+1292>>2]=b;f[a+1296>>2]=0.0;return}function pm(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,g=0.0;d=+f[a+344>>2];if(d!=0.0){g=1.0/d*+f[b+4>>2];e=1.0/d*+f[b+8>>2];f[a+364>>2]=1.0/d*+f[b>>2];f[a+368>>2]=g;f[a+372>>2]=e;f[a+376>>2]=0.0}c[a+380>>2]=c[b>>2];c[a+380+4>>2]=c[b+4>>2];c[a+380+8>>2]=c[b+8>>2];c[a+380+12>>2]=c[b+12>>2];return}function qm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;f=c[b+16>>2]|0;do if(f){if((f|0)!=(d|0)){c[b+36>>2]=(c[b+36>>2]|0)+1;c[b+24>>2]=2;a[b+54>>0]=1;break}if((c[b+24>>2]|0)==2)c[b+24>>2]=e}else{c[b+16>>2]=d;c[b+24>>2]=e;c[b+36>>2]=1}while(0);return}function rm(a,d){a=a|0;d=d|0;var e=0,f=0;e=c[d>>2]|0;f=c[a+80>>2]|0;if((e|0)==(f|0)){a=0;return a|0}if(!((b[a+10>>1]&b[d+4>>1])<<16>>16)){a=0;return a|0}if(!((b[d+6>>1]&b[a+8>>1])<<16>>16)){a=0;return a|0}a=c[a+92>>2]|0;a=va[c[(c[a>>2]|0)+28>>2]&63](a,f,e)|0;return a|0}function sm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=c[a+8>>2]|0;a=c[f+8>>2]|0;if((a|0)<=0)return;e=0;do{d=c[(c[f+16>>2]|0)+(e*12|0)+8>>2]|0;if(d){Ia[c[(c[d>>2]|0)+16>>2]&127](d,b);a=c[f+8>>2]|0}e=e+1|0}while((e|0)<(a|0));return}function tm(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=ea;ea=ea+32|0;c[f+8>>2]=c[a+60>>2];c[f+8+4>>2]=d;c[f+8+8>>2]=b;c[f+8+12>>2]=f;c[f+8+16>>2]=e;if((eI(L(140,f+8|0)|0)|0)<0){c[f>>2]=-1;c[f+4>>2]=-1;b=-1;d=-1}else{b=c[f+4>>2]|0;d=c[f>>2]|0}C(b|0);ea=f;return d|0}function um(a,b,d,e){a=a|0;b=b|0;d=+d;e=e|0;switch(e|0){case 5:case -1:break;default:return}switch(b|0){case 2:{f[a+760>>2]=d;c[a+748>>2]=c[a+748>>2]|2;return}case 4:{f[a+756>>2]=d;c[a+748>>2]=c[a+748>>2]|1;return}case 3:{f[a+752>>2]=d;c[a+748>>2]=c[a+748>>2]|4;return}default:return}}function vm(a,b,d){a=a|0;b=b|0;d=d|0;ht(a);c[a>>2]=3788;c[a+20>>2]=c[b>>2];c[a+20+4>>2]=c[b+4>>2];c[a+20+8>>2]=c[b+8>>2];c[a+20+12>>2]=c[b+12>>2];c[a+36>>2]=c[d>>2];c[a+36+4>>2]=c[d+4>>2];c[a+36+8>>2]=c[d+8>>2];c[a+36+12>>2]=c[d+12>>2];return}function wm(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=ea;ea=ea+256|0;if((c|0)>(d|0)&(e&73728|0)==0){hk(f|0,b<<24>>24|0,((c-d|0)>>>0<256?c-d|0:256)|0)|0;if((c-d|0)>>>0>255){b=c-d|0;do{AA(a,f,256);b=b+-256|0}while(b>>>0>255);b=c-d&255}else b=c-d|0;AA(a,f,b)}ea=f;return}function xm(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[d>>2]|0;a=Ux(c[b>>2]|0)|0;f=Ux(f)|0;if(a|0)Pa[c[(c[a>>2]|0)+32>>2]&127](a,d,e,b);if(!f)return 0;Pa[c[(c[f>>2]|0)+32>>2]&127](f,b,e,d);return 0}function ym(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=ea;ea=ea+48|0;f=c[b+192>>2]|0;Pa[c[(c[f>>2]|0)+8>>2]&127](f,b+4|0,e+32|0,e+16|0);c[e>>2]=7068;c[e+4>>2]=b;c[e+8>>2]=a;c[e+12>>2]=d;a=c[a+68>>2]|0;Pa[c[(c[a>>2]|0)+28>>2]&127](a,e+32|0,e+16|0,e);ea=e;return}function zm(){var b=0,d=0,e=0;do if((c[847]|0)>=0?(RJ()|0)!=0:0){if((a[3387]|0)!=10?(d=c[833]|0,d>>>0<(c[832]|0)>>>0):0){c[833]=d+1;a[d>>0]=10;break}Zl()|0}else e=3;while(0);do if((e|0)==3){if((a[3387]|0)!=10?(b=c[833]|0,b>>>0<(c[832]|0)>>>0):0){c[833]=b+1;a[b>>0]=10;break}Zl()|0}while(0);return}function Am(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=ea;ea=ea+112|0;d=NJ(c[b+4>>2]|0)|0;e=f;g=e+104|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(g|0));lH(f);Nl(a,d,f);Tn(b,d,c[a+12>>2]|0);ea=f;return}function Bm(a,b,d){a=a|0;b=b|0;d=d|0;a:do switch(c[b+216>>2]|0){case 2:case 5:{switch(c[d+216>>2]|0){case 2:case 5:{b=0;break}default:break a}return b|0}default:{}}while(0);if(c[b+256>>2]|0?!(ta[c[c[b>>2]>>2]&31](b,d)|0):0){a=0;return a|0}a=1;return a|0}function Cm(a,b,d){a=a|0;b=b|0;d=d|0;ch(a,b,d)|0;c[b+52>>2]=c[a+300>>2];c[b+56>>2]=c[a+304>>2];c[b+60>>2]=c[a+308>>2];c[b+64>>2]=c[a+312>>2];c[b+68>>2]=c[a+316>>2];c[b+72>>2]=c[a+320>>2];c[b+76>>2]=c[a+324>>2];c[b+80>>2]=c[a+328>>2];return 15193}function Dm(a){a=a|0;c[6272]=c[a>>2];c[6273]=c[a+4>>2];c[6274]=c[a+8>>2];c[6275]=c[a+12>>2];c[6276]=c[a+16>>2];c[6277]=c[a+20>>2];c[6278]=c[a+24>>2];$l(25116,a+28|0);c[6291]=c[a+76>>2];c[6292]=c[a+76+4>>2];c[6293]=c[a+76+8>>2];c[6294]=c[a+76+12>>2];c[6295]=c[a+76+16>>2];return}function Em(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0;e=ea;ea=ea+16|0;c=+cG(a);c=+AJ(c*+cG(b));d=+Ho(a,b);if(d<0.0){Un(e,b);d=+jB(+Ho(a,e)/c);d=d*2.0;ea=e;return +d}else{d=+jB(d/c);d=d*2.0;ea=e;return +d}return 0.0}function Fm(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=NJ(b)|0;i=NJ(b+16|0)|0;h=NJ(b+32|0)|0;g=sJ(b)|0;f=sJ(b+16|0)|0;e=sJ(b+32|0)|0;d=rJ(b)|0;c=rJ(b+16|0)|0;bq(a,j,i,h,g,f,e,d,c,rJ(b+32|0)|0);return}function Gm(b,d){b=b|0;d=d|0;var e=0;if((NJ(c[b+8>>2]|0)|0)>=(d|0))return;e=Hu(d)|0;Vq(b,NJ(c[b+4>>2]|0)|0,e);es(b,NJ(c[b+4>>2]|0)|0);Us(b);a[b+16>>0]=1;c[b+12>>2]=e;c[b+8>>2]=d;return}function Hm(a,b){a=a|0;b=b|0;var d=0;if(c[b+40>>2]|0){Hm(a,c[b+36>>2]|0);Hm(a,c[b+40>>2]|0)}if((c[a>>2]|0)==(b|0))c[a>>2]=0;d=c[a+4>>2]|0;if(!d){c[a+4>>2]=b;return}c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0);c[a+4>>2]=b;return}function Im(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=c[a+32>>2]|0;c[g>>2]=(c[g>>2]|0)+1;Jf(a,Lc(a,b,f)|0);Jf(a,Lc(a,d,f)|0);Jf(a,Lc(a,e,f)|0);return}function Jm(a){a=a|0;var b=0;b=ea;ea=ea+48|0;f[b+32>>2]=1.0;f[b+28>>2]=0.0;f[b+24>>2]=0.0;f[b+20>>2]=0.0;f[b+16>>2]=1.0;f[b+12>>2]=0.0;f[b+8>>2]=0.0;f[b+4>>2]=0.0;f[b>>2]=1.0;Oo(a,b+32|0,b+28|0,b+24|0,b+20|0,b+16|0,b+12|0,b+8|0,b+4|0,b);ea=b;return}function Km(a,b){a=a|0;b=b|0;var d=0,e=0;c[a+68>>2]=(c[a+68>>2]|0)+1;d=c[a+16>>2]|0;if((d|0)>0)do{e=d;d=d+-1|0;if((c[(c[a+24>>2]|0)+(d*80|0)+64>>2]|0)==(b|0))od(a,d)}while((e|0)>1);Ca[c[(c[a>>2]|0)+68>>2]&511](a);return}function Lm(a,b){a=+a;b=+b;var d=0;d=ct()|0;c[d+8>>2]=0;c[d+12>>2]=1065353216;c[d+16>>2]=1065353216;c[d+20>>2]=1065353216;f[d+24>>2]=0.0;f[d+44>>2]=.03999999910593033;c[d+4>>2]=10;c[d>>2]=8904;c[d+52>>2]=2;f[d+28>>2]=a;f[d+32>>2]=a;f[d+36>>2]=b*.5;f[d+40>>2]=0.0;return d|0}function Mm(a,b){a=+a;b=+b;var d=0;d=ct()|0;c[d+8>>2]=0;c[d+12>>2]=1065353216;c[d+16>>2]=1065353216;c[d+20>>2]=1065353216;f[d+24>>2]=0.0;f[d+44>>2]=.03999999910593033;c[d+4>>2]=10;c[d>>2]=8804;c[d+52>>2]=0;f[d+28>>2]=b*.5;f[d+32>>2]=a;f[d+36>>2]=a;f[d+40>>2]=0.0;return d|0}function Nm(a,b){a=+a;b=+b;var d=0;d=ct()|0;c[d+8>>2]=0;c[d+12>>2]=1065353216;c[d+16>>2]=1065353216;c[d+20>>2]=1065353216;f[d+24>>2]=0.0;f[d+44>>2]=.03999999910593033;c[d>>2]=8704;c[d+4>>2]=10;c[d+52>>2]=1;f[d+28>>2]=a;f[d+32>>2]=b*.5;f[d+36>>2]=a;f[d+40>>2]=0.0;return d|0}function Om(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0;a:do switch(c|0){case 5:case -1:switch(b|0){case 2:{d=+f[a+760>>2];break a}case 4:{d=+f[a+756>>2];break a}case 3:{d=+f[a+752>>2];break a}default:{d=0.0;break a}}default:d=0.0}while(0);return +d}function Pm(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=ea;ea=ea+16|0;c[f>>2]=a;c[f+4>>2]=e;a=c[a+72+((c[(c[b+4>>2]|0)+4>>2]|0)*144|0)+(c[(c[d+4>>2]|0)+4>>2]<<2)>>2]|0;a=wa[c[(c[a>>2]|0)+8>>2]&31](a,f,b,d)|0;ea=f;return a|0}function Qm(a,b,c){a=a|0;b=+b;c=c|0;var d=0.0,e=0.0,g=0.0;e=(+f[a+68>>2]-+f[a+52>>2])*.5*2.0;d=(+f[a+72>>2]-+f[a+56>>2])*.5*2.0;g=(+f[a+76>>2]-+f[a+60>>2])*.5*2.0;f[c>>2]=b/12.0*(d*d+g*g);f[c+4>>2]=b/12.0*(e*e+g*g);f[c+8>>2]=b/12.0*(e*e+d*d);f[c+12>>2]=0.0;return}function Rm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=NJ(c[a+4>>2]|0)|0;if((e|0)>(b|0)){c[a+4>>2]=b;return}if((e|0)<(b|0))on(a,b);while(1){if((e|0)>=(b|0))break;Fl((c[a+12>>2]|0)+(e*96|0)|0,d);e=e+1|0}c[a+4>>2]=b;return}function Sm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=ea;ea=ea+48|0;d=NJ(c[b+4>>2]|0)|0;e=f;g=e+36|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(g|0));RH(f);Kl(a,d,f);QH(f);Vq(b,d,c[a+12>>2]|0);ea=f;return}function Tm(a,b){a=a|0;b=b|0;var d=0;a=c[a+64>>2]|0;if(!b)return;d=c[a+16>>2]|0;if(d>>>0<=b>>>0?(d+(z(c[a>>2]|0,c[a+4>>2]|0)|0)|0)>>>0>b>>>0:0){c[b>>2]=c[a+12>>2];c[a+12>>2]=b;c[a+8>>2]=(c[a+8>>2]|0)+1;return}c[6748]=(c[6748]|0)+1;uc(c[b+-4>>2]|0);return}function Um(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=ea;ea=ea+96|0;d=NJ(c[b+4>>2]|0)|0;e=f;g=e+96|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(g|0));Rm(a,d,f);hq(b,d,c[a+12>>2]|0);ea=f;return}function Vm(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;if(rt(a,c[b+8>>2]|0,g)|0)xk(b,d,e,f);else{a=c[a+8>>2]|0;Va[c[(c[a>>2]|0)+20>>2]&7](a,b,d,e,f,g)}return}function Wm(a){a=a|0;var b=0,d=0;if((c[a+232>>2]|0)<=0)return;b=0;do{d=(c[(c[a+240>>2]|0)+(b<<2)>>2]|0)+412|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;c[d+24>>2]=0;c[d+28>>2]=0;b=b+1|0}while((b|0)<(c[a+232>>2]|0));return}function Xm(){var b=0;b=ea;ea=ea+32|0;if(a[24880]|0){ea=b;return}if(!(DC(24880)|0)){ea=b;return}Gl();f[b+8>>2]=0.0;f[b+4>>2]=0.0;f[b>>2]=0.0;qs(b+16|0,b+8|0,b+4|0,b);fq(25328,25392,b+16|0);PB(24880);ea=b;return}function Ym(a){a=a|0;gc(a,(c[a+28>>2]|0)+4|0,(c[a+32>>2]|0)+4|0);c[a+1316>>2]=c[a+1256>>2];c[a+1320>>2]=c[a+1260>>2];c[a+1324>>2]=c[a+1264>>2];c[a+1328>>2]=c[a+1192>>2];c[a+1332>>2]=c[a+1196>>2];c[a+1336>>2]=c[a+1200>>2];return}function Zm(a,d){a=a|0;d=d|0;var f=0,g=0;if(b[a+56>>1]|0)return;b[a+64>>1]=1;d=b[a+58>>1]|0;g=c[a+60>>2]|0;if((d&65535)>1){f=1;do{d=f;f=f+1|0;b[g+(d<<6)+48>>1]=f;d=e[a+58>>1]|0}while(f>>>0>>0)}else d=d&65535;b[g+(d+-1<<6)+48>>1]=0;return}function _m(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[a+4>>2]|0;e=NJ(d)|0;if((e|0)==(NJ(c[a+8>>2]|0)|0)){on(a,LF(e)|0);d=c[a+4>>2]|0}Fl((c[a+12>>2]|0)+(d*96|0)|0,b);c[a+4>>2]=(c[a+4>>2]|0)+1;return}function $m(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=c[a+12>>2]|0;if((d|0)<=0)return;f=0;do{e=c[(c[a+20>>2]|0)+(f<<2)>>2]|0;if(e){Ia[c[(c[e>>2]|0)+16>>2]&127](e,b);d=c[a+12>>2]|0}f=f+1|0}while((f|0)<(d|0));return}function an(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=c[a+4>>2]|0;if(d){f=8?g>>8:g;if(g&1)f=c[(c[d>>2]|0)+f>>2]|0}else f=0;a=c[a>>2]|0;Pa[c[(c[a>>2]|0)+28>>2]&127](a,b,d+f|0,(g&2|0)==0?2:e);return}function bn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[a+32>>2]|0;c[f>>2]=(c[f>>2]|0)+1;Jf(a,Lc(a,b,0)|0);Jf(a,Lc(a,d,0)|0);Jf(a,Lc(a,e,0)|0);return}function cn(a,b,d){a=a|0;b=b|0;d=d|0;c[a+52>>2]=c[b>>2];c[a+52+4>>2]=c[b+4>>2];c[a+52+8>>2]=c[b+8>>2];c[a+52+12>>2]=c[b+12>>2];c[a+68>>2]=c[d>>2];c[a+68+4>>2]=c[d+4>>2];c[a+68+8>>2]=c[d+8>>2];c[a+68+12>>2]=c[d+12>>2];c[a+48>>2]=1;return}function dn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[d>>2]|0;a=Ux(c[b>>2]|0)|0;e=Ux(e)|0;if(a|0)Ma[c[(c[a>>2]|0)+28>>2]&127](a,d,b);if(!e)return 0;Ma[c[(c[e>>2]|0)+28>>2]&127](e,b,d);return 0}function en(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a;e=b;f=d+104|0;do{c[d>>2]=c[e>>2];d=d+4|0;e=e+4|0}while((d|0)<(f|0));gx(a+104|0,b+104|0);hx(a+124|0,b+124|0);hx(a+144|0,b+144|0);return}function fn(a,b,c){a=+a;b=b|0;c=c|0;var d=0,e=0;e=ea;ea=ea+32|0;d=GI(140)|0;f[e+8>>2]=0.0;f[e+4>>2]=0.0;f[e>>2]=0.0;qs(e+16|0,e+8|0,e+4|0,e);ok(d,a,b,c,e+16|0);ea=e;return d|0}function gn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[d>>2]=c[b+16>>2];c[d+4>>2]=c[b+16+4>>2];c[d+8>>2]=c[b+16+8>>2];c[d+12>>2]=c[b+16+12>>2];c[e>>2]=c[b+32>>2];c[e+4>>2]=c[b+32+4>>2];c[e+8>>2]=c[b+32+8>>2];c[e+12>>2]=c[b+32+12>>2];return}function hn(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;i=c[a+4>>2]|0;h=8?i>>8:i;if(i&1)h=c[(c[e>>2]|0)+h>>2]|0;a=c[a>>2]|0;Va[c[(c[a>>2]|0)+20>>2]&7](a,b,d,e+h|0,(i&2|0)==0?2:f,g);return}function jn(a,b){a=a|0;b=b|0;var d=0;a=c[a+64>>2]|0;d=c[a+8>>2]|0;if(d|0){b=c[a+12>>2]|0;c[a+12>>2]=c[b>>2];c[a+8>>2]=d+-1;return b|0}c[6747]=(c[6747]|0)+1;a=kb(b+19|0)|0;if(!a){b=0;return b|0}c[(a+4+15&-16)+-4>>2]=a;b=a+4+15&-16;return b|0}function kn(a,b,d){a=a|0;b=b|0;d=d|0;a=c[a+720>>2]|0;if(!(+f[a+(d*104|0)+88>>2]>0.0))return;f[a+(d*104|0)+56>>2]=+f[b>>2]+ +f[a+(d*104|0)+56>>2];f[a+(d*104|0)+60>>2]=+f[b+4>>2]+ +f[a+(d*104|0)+60>>2];f[a+(d*104|0)+64>>2]=+f[b+8>>2]+ +f[a+(d*104|0)+64>>2];return}function ln(a,b,d){a=a|0;b=+b;d=+d;var e=0;e=ea;ea=ea+16|0;f[e+12>>2]=b;f[e+8>>2]=d;f[e+4>>2]=0.0;f[e>>2]=1.0;c[a+444>>2]=c[(b<0.0?e+4|0:b>1.0?e:e+12|0)>>2];f[e+4>>2]=0.0;f[e>>2]=1.0;c[a+448>>2]=c[(d<0.0?e+4|0:d>1.0?e:e+8|0)>>2];ea=e;return}function mn(b){b=b|0;var d=0;d=ea;ea=ea+16|0;if((a[24816]|0)==0?DC(24816)|0:0)PB(24816);to(d,c[b+116>>2]|0,c[b+128>>2]|0);c[6268]=c[d>>2];c[6269]=c[d+4>>2];c[6270]=c[d+8>>2];c[6271]=c[d+12>>2];ea=d;return 25072}function nn(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[(c[b>>2]|0)+16>>2]|0;e=ra[c[(c[a>>2]|0)+16>>2]&127](a)|0;e=va[d&63](b,e,1)|0;d=va[c[(c[a>>2]|0)+20>>2]&63](a,c[e+8>>2]|0,b)|0;Ta[c[(c[b>>2]|0)+20>>2]&31](b,e,d,1497645650,a);return}function on(b,d){b=b|0;d=d|0;var e=0;if((NJ(c[b+8>>2]|0)|0)>=(d|0))return;e=qt(d)|0;hq(b,NJ(c[b+4>>2]|0)|0,e);Us(b);a[b+16>>0]=1;c[b+12>>2]=e;c[b+8>>2]=d;return}function pn(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;var e=0;e=ea;ea=ea+32|0;ql(e,NJ(a+4|0)|0,b,c,d);wp(e+16|0,+f[e>>2],+f[e+4>>2],+f[e+8>>2],+f[a+348>>2],+f[a+352>>2],+f[a+356>>2]);Lr(a+412|0,e+16|0)|0;ea=e;return}function qn(a,b,c,d,e,g){a=a|0;b=+b;c=+c;d=+d;e=+e;g=+g;f[a+692>>2]=(c-b)*.5;c=((c-b)*.5+b)%6.2831854820251465;if(!(c<-3.1415927410125732)){if(c>3.1415927410125732)c=c+-6.2831854820251465}else c=c+6.2831854820251465;f[a+688>>2]=c;f[a+696>>2]=d;f[a+700>>2]=e;f[a+704>>2]=g;return}function rn(a,b,c){a=a|0;b=b|0;c=+c;var d=0;d=ea;ea=ea+16|0;f[d+12>>2]=+f[(NJ(b)|0)>>2]*c;f[d+8>>2]=+f[(sJ(b)|0)>>2]*c;f[d+4>>2]=+f[(rJ(b)|0)>>2]*c;f[d>>2]=+f[b+12>>2]*c;Cv(a,d+12|0,d+8|0,d+4|0,d);ea=d;return}function sn(a,b,d){a=a|0;b=b|0;d=d|0;c[b>>2]=c[a+52>>2];c[b+4>>2]=c[a+52+4>>2];c[b+8>>2]=c[a+52+8>>2];c[b+12>>2]=c[a+52+12>>2];c[d>>2]=c[a+68>>2];c[d+4>>2]=c[a+68+4>>2];c[d+8>>2]=c[a+68+8>>2];c[d+12>>2]=c[a+68+12>>2];return}function tn(a){a=a|0;var b=0,d=0,e=0;b=c[a+24>>2]|0;if((b|0)<=0)return;e=0;do{d=c[(c[a+32>>2]|0)+(e<<2)>>2]|0;switch(c[d+216>>2]|0){case 2:case 5:break;default:{Ef(d);b=c[a+24>>2]|0}}e=e+1|0}while((e|0)<(b|0));return}function un(b,d){b=b|0;d=d|0;var e=0;if((NJ(c[b+8>>2]|0)|0)>=(d|0))return;e=wt(d)|0;Tn(b,NJ(c[b+4>>2]|0)|0,e);Us(b);a[b+16>>0]=1;c[b+12>>2]=e;c[b+8>>2]=d;return}function vn(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;var e=0;e=ea;ea=ea+32|0;ql(e,NJ(a+4|0)|0,b,c,d);wp(e+16|0,+f[e>>2],+f[e+4>>2],+f[e+8>>2],+f[a+544>>2],+f[a+548>>2],+f[a+552>>2]);Lr(a+428|0,e+16|0)|0;ea=e;return}function wn(a,b){a=a|0;b=b|0;var d=0,e=0;e=ra[c[(c[a>>2]|0)+16>>2]&127](a)|0;e=va[c[(c[b>>2]|0)+16>>2]&63](b,e,1)|0;d=va[c[(c[a>>2]|0)+20>>2]&63](a,c[e+8>>2]|0,b)|0;Ta[c[(c[b>>2]|0)+20>>2]&31](b,e,d,1245859651,a);return}function xn(a,b,d){a=a|0;b=b|0;d=d|0;c[b>>2]=c[a+8>>2];c[b+4>>2]=c[a+8+4>>2];c[b+8>>2]=c[a+8+8>>2];c[b+12>>2]=c[a+8+12>>2];c[d>>2]=c[a+24>>2];c[d+4>>2]=c[a+24+4>>2];c[d+8>>2]=c[a+24+8>>2];c[d+12>>2]=c[a+24+12>>2];return}function yn(a,b){a=a|0;b=b|0;var d=0,e=0;e=ra[c[(c[a>>2]|0)+52>>2]&127](a)|0;e=va[c[(c[b>>2]|0)+16>>2]&63](b,e,1)|0;d=va[c[(c[a>>2]|0)+56>>2]&63](a,c[e+8>>2]|0,b)|0;Ta[c[(c[b>>2]|0)+20>>2]&31](b,e,d,1346455635,a);return}function zn(a,b){a=a|0;b=b|0;var c=0;c=ea;ea=ea+80|0;Fm(c+32|0,b);Sq(c,+f[b+48>>2],+f[b+52>>2],+f[b+56>>2]);ql(c+16|0,c+32|0,+f[c>>2],+f[c+4>>2],+f[c+8>>2]);fq(a,c+32|0,c+16|0);ea=c;return}function An(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;h=c[a+4>>2]|0;g=8?h>>8:h;if(h&1)g=c[(c[d>>2]|0)+g>>2]|0;a=c[a>>2]|0;Ta[c[(c[a>>2]|0)+24>>2]&31](a,b,d+g|0,(h&2|0)==0?2:e,f);return}function Bn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=0;while(1){if((e|0)>=(b|0))break;f=NJ(d+(e<<4)|0)|0;g=(c[a+12>>2]|0)+(e<<4)|0;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];c[f+12>>2]=c[g+12>>2];e=e+1|0}return}function Cn(a,b,d){a=a|0;b=b|0;d=d|0;c[a+164>>2]=c[b>>2];c[a+164+4>>2]=c[b+4>>2];c[a+164+8>>2]=c[b+8>>2];c[a+164+12>>2]=c[b+12>>2];b=NJ(b)|0;if((!(+f[b>>2]!=1.0)?!(+f[b+4>>2]!=1.0):0)?!(+f[b+8>>2]!=1.0):0)d=0;c[a+180>>2]=d;return}function Dn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if(rt(a,c[b+8>>2]|0,0)|0)qm(b,d,e);else{a=c[a+8>>2]|0;Pa[c[(c[a>>2]|0)+28>>2]&127](a,b,d,e)}return}function En(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=NJ(c[a+4>>2]|0)|0;if((e|0)>(b|0)){c[a+4>>2]=b;return}if((e|0)<(b|0))co(a,b);while(1){if((e|0)>=(b|0))break;c[(c[a+12>>2]|0)+(e<<2)>>2]=c[d>>2];e=e+1|0}c[a+4>>2]=b;return}function Fn(b){b=b|0;var d=0;c[b>>2]=6156;d=c[b+276>>2]|0;if(d|0){if(a[b+280>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+276>>2]=0}a[b+280>>0]=1;c[b+276>>2]=0;c[b+268>>2]=0;c[b+272>>2]=0;c[b>>2]=6120;c[6748]=(c[6748]|0)+1;uc(c[b+-4>>2]|0);return}function Gn(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;var e=0;e=ea;ea=ea+32|0;wp(e,b,c,d,+f[a+348>>2],+f[a+352>>2],+f[a+356>>2]);_p(e+16|0,+f[e>>2],+f[e+4>>2],+f[e+8>>2],+f[a+344>>2]);Lr(a+312|0,e+16|0)|0;ea=e;return}function Hn(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;var e=0;e=ea;ea=ea+32|0;ql(e,a+264|0,b,c,d);wp(e+16|0,+f[e>>2],+f[e+4>>2],+f[e+8>>2],+f[a+544>>2],+f[a+548>>2],+f[a+552>>2]);Lr(a+328|0,e+16|0)|0;ea=e;return}function In(b){b=b|0;var d=0;c[b>>2]=5172;d=c[b+496>>2]|0;if(d|0){if(a[b+500>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+496>>2]=0}a[b+500>>0]=1;c[b+496>>2]=0;c[b+488>>2]=0;c[b+492>>2]=0;c[b>>2]=6120;c[6748]=(c[6748]|0)+1;uc(c[b+-4>>2]|0);return}function Jn(a,b,d){a=a|0;b=b|0;d=d|0;c[b>>2]=c[a+892>>2];c[b+4>>2]=c[a+892+4>>2];c[b+8>>2]=c[a+892+8>>2];c[b+12>>2]=c[a+892+12>>2];c[d>>2]=c[a+908>>2];c[d+4>>2]=c[a+908+4>>2];c[d+8>>2]=c[a+908+8>>2];c[d+12>>2]=c[a+908+12>>2];return}function Kn(b){b=b|0;var d=0;d=ea;ea=ea+16|0;if((a[24832]|0)==0?DC(24832)|0:0)PB(24832);Ia[c[(c[b>>2]|0)+76>>2]&127](d,b);c[6296]=c[d>>2];c[6297]=c[d+4>>2];c[6298]=c[d+8>>2];c[6299]=c[d+12>>2];ea=d;return 25184}function Ln(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0;a:do if((c|0)==-1)switch(b|0){case 2:case 1:{d=+f[a+336>>2];break a}case 4:case 3:{d=+f[a+340>>2];break a}default:{d=3402823466385288598117041.0e14;break a}}else d=3402823466385288598117041.0e14;while(0);return +d}function Mn(b){b=b|0;var d=0;d=ea;ea=ea+16|0;if((a[24792]|0)==0?DC(24792)|0:0)PB(24792);Ia[c[(c[b>>2]|0)+76>>2]&127](d,b);c[6256]=c[d>>2];c[6257]=c[d+4>>2];c[6258]=c[d+8>>2];c[6259]=c[d+12>>2];ea=d;return 25024}function Nn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,g=0.0;g=+f[b+28>>2];e=+f[b+32>>2];e=+f[c+4>>2]>=0.0?e:-e;d=+f[b+36>>2];d=+f[c+8>>2]>=0.0?d:-d;f[a>>2]=+f[c>>2]>=0.0?g:-g;f[a+4>>2]=e;f[a+8>>2]=d;f[a+12>>2]=0.0;return}function On(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[a+4>>2]|0;e=NJ(d)|0;if((e|0)==(NJ(c[a+8>>2]|0)|0)){co(a,LF(e)|0);d=c[a+4>>2]|0}c[(c[a+12>>2]|0)+(d<<2)>>2]=c[b>>2];c[a+4>>2]=(c[a+4>>2]|0)+1;return}function Pn(b){b=b|0;var d=0;c[b>>2]=5988;d=c[b+140>>2]|0;if(d|0){if(a[b+144>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+140>>2]=0}a[b+144>>0]=1;c[b+140>>2]=0;c[b+132>>2]=0;c[b+136>>2]=0;c[6748]=(c[6748]|0)+1;uc(c[b+-4>>2]|0);return}function Qn(b,d){b=b|0;d=d|0;var e=0;if((NJ(c[b+8>>2]|0)|0)>=(d|0))return;e=uu(d)|0;Bn(b,NJ(c[b+4>>2]|0)|0,e);Us(b);a[b+16>>0]=1;c[b+12>>2]=e;c[b+8>>2]=d;return}function Rn(b){b=b|0;var d=0;c[b>>2]=10680;d=c[b+32>>2]|0;if(d|0){if(a[b+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+32>>2]=0}a[b+36>>0]=1;c[b+32>>2]=0;c[b+24>>2]=0;c[b+28>>2]=0;c[6748]=(c[6748]|0)+1;uc(c[b+-4>>2]|0);return}function Sn(a,b){a=a|0;b=b|0;var d=0;d=c[a+4>>2]|0;if((c[b>>2]|0)!=(d|0)?(c[b+4>>2]|0)!=(d|0):0)return 0;d=c[a+8>>2]|0;Ma[c[(c[d>>2]|0)+32>>2]&127](d,b,c[a+12>>2]|0);return 0}function Tn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=0;while(1){if((e|0)>=(b|0))break;f=d+(e*104|0)|0;g=(c[a+12>>2]|0)+(e*104|0)|0;h=f+104|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(h|0));e=e+1|0}return}function Un(a,b){a=a|0;b=b|0;var c=0;c=ea;ea=ea+16|0;f[c+12>>2]=-+f[(NJ(b)|0)>>2];f[c+8>>2]=-+f[(sJ(b)|0)>>2];f[c+4>>2]=-+f[(rJ(b)|0)>>2];f[c>>2]=-+f[b+12>>2];Cv(a,c+12|0,c+8|0,c+4|0,c);ea=c;return}function Vn(b,d,e){b=b|0;d=d|0;e=+e;var f=0;f=ea;ea=ea+16|0;if((a[24808]|0)==0?DC(24808)|0:0)PB(24808);mi(f,b,d,e);c[6264]=c[f>>2];c[6265]=c[f+4>>2];c[6266]=c[f+8>>2];c[6267]=c[f+12>>2];ea=f;return 25056}function Wn(b,d,e){b=b|0;d=d|0;e=+e;var f=0;f=ea;ea=ea+16|0;if((a[24784]|0)==0?DC(24784)|0:0)PB(24784);mi(f,b,d,e);c[6252]=c[f>>2];c[6253]=c[f+4>>2];c[6254]=c[f+8>>2];c[6255]=c[f+12>>2];ea=f;return 25008}function Xn(a){a=a|0;var b=0.0,d=0.0;if(c[a+204>>2]&3|0)return;d=+f[a+368>>2]*+f[a+352>>2];b=+f[a+372>>2]*+f[a+356>>2];f[a+412>>2]=+f[a+364>>2]*+f[a+348>>2]+ +f[a+412>>2];f[a+416>>2]=d+ +f[a+416>>2];f[a+420>>2]=b+ +f[a+420>>2];return}function Yn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=ta[c[(c[d>>2]|0)+40>>2]&31](d,a)|0;f=ta[c[(c[d>>2]|0)+28>>2]&31](d,e)|0;c[b>>2]=f;if(f|0)Ia[c[(c[d>>2]|0)+48>>2]&127](d,e);c[b+4>>2]=c[a+4>>2];return 19935}function Zn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,g=0.0,h=0;h=c[a+104>>2]|0;g=+f[h+(b<<4)+4>>2]*+f[a+16>>2];e=+f[h+(b<<4)+8>>2]*+f[a+20>>2];f[d>>2]=+f[h+(b<<4)>>2]*+f[a+12>>2];f[d+4>>2]=g;f[d+8>>2]=e;f[d+12>>2]=0.0;return}function _n(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;f=c[d>>2]|0;f=ta[c[(c[f>>2]|0)+56>>2]&31](f,20)|0;b=a[b+4>>0]|0;c[f+4>>2]=c[d>>2];c[f>>2]=4676;a[f+16>>0]=b;return f|0}function $n(a,b){a=a|0;b=b|0;var c=0.0;c=+f[(NJ(b)|0)>>2];f[a>>2]=+f[a>>2]+c;c=+f[(sJ(b)|0)>>2];f[a+4>>2]=+f[a+4>>2]+c;c=+f[(rJ(b)|0)>>2];f[a+8>>2]=+f[a+8>>2]+c;f[a+12>>2]=+f[a+12>>2]+ +f[b+12>>2];return a|0}function ao(a,b){a=a|0;b=b|0;var c=0.0;c=+f[(NJ(b)|0)>>2];f[a>>2]=+f[a>>2]-c;c=+f[(sJ(b)|0)>>2];f[a+4>>2]=+f[a+4>>2]-c;c=+f[(rJ(b)|0)>>2];f[a+8>>2]=+f[a+8>>2]-c;f[a+12>>2]=+f[a+12>>2]-+f[b+12>>2];return a|0}function bo(a){a=a|0;var b=0,d=0;d=V()|0;b=c[i>>2]|0;if((a|0)>0&(b+a|0)<(b|0)|(b+a|0)<0){_(b+a|0)|0;K(12);return -1}if((b+a|0)>(d|0))if(!(X(b+a|0)|0)){K(12);return -1}c[i>>2]=b+a;return b|0}function co(b,d){b=b|0;d=d|0;var e=0;if((NJ(c[b+8>>2]|0)|0)>=(d|0))return;e=kv(d)|0;wr(b,NJ(c[b+4>>2]|0)|0,e);Us(b);a[b+16>>0]=1;c[b+12>>2]=e;c[b+8>>2]=d;return}function eo(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0;e=+r(+(+f[b>>2]));d=+r(+(+f[b+4>>2]));c=+r(+(+f[b+8>>2]));f[a+12>>2]=e;f[a+16>>2]=d;f[a+20>>2]=c;f[a+24>>2]=0.0;Ci(a);return}function fo(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;c=+f[(rJ(a)|0)>>2];c=c*+f[(NJ(b)|0)>>2];d=+f[(rJ(a+16|0)|0)>>2];d=c+d*+f[(sJ(b)|0)>>2];c=+f[(rJ(a+32|0)|0)>>2];return +(d+c*+f[(rJ(b)|0)>>2])}function go(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;c=+f[(sJ(a)|0)>>2];c=c*+f[(NJ(b)|0)>>2];d=+f[(sJ(a+16|0)|0)>>2];d=c+d*+f[(sJ(b)|0)>>2];c=+f[(sJ(a+32|0)|0)>>2];return +(d+c*+f[(rJ(b)|0)>>2])}function ho(b){b=b|0;var d=0;d=a[b+74>>0]|0;a[b+74>>0]=d+255|d;d=c[b>>2]|0;if(!(d&8)){c[b+8>>2]=0;c[b+4>>2]=0;d=c[b+44>>2]|0;c[b+28>>2]=d;c[b+20>>2]=d;c[b+16>>2]=d+(c[b+48>>2]|0);d=0}else{c[b>>2]=d|32;d=-1}return d|0}function io(b){b=b|0;var d=0;d=ea;ea=ea+16|0;if((a[24840]|0)==0?DC(24840)|0:0)PB(24840);GA(d,b);c[6300]=c[d>>2];c[6301]=c[d+4>>2];c[6302]=c[d+8>>2];c[6303]=c[d+12>>2];ea=d;return 25200}function jo(b){b=b|0;var d=0;d=ea;ea=ea+16|0;if((a[24856]|0)==0?DC(24856)|0:0)PB(24856);ez(d,b);c[6320]=c[d>>2];c[6321]=c[d+4>>2];c[6322]=c[d+8>>2];c[6323]=c[d+12>>2];ea=d;return 25280}function ko(a,b,d,e){a=a|0;b=b|0;d=+d;e=e|0;if((e|0)!=-1)return;switch(b|0){case 2:case 1:{f[a+336>>2]=d;c[a+332>>2]=c[a+332>>2]|1;return}case 4:case 3:{f[a+340>>2]=d;c[a+332>>2]=c[a+332>>2]|2;return}default:return}}function lo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if((b|0)==(d|0))return;e=c[(c[a+4>>2]|0)+136>>2]|0;va[c[(c[e>>2]|0)+8>>2]&63](e,c[b+36>>2]|0,c[d+36>>2]|0)|0;a=(c[a+4>>2]|0)+160|0;c[a>>2]=(c[a>>2]|0)+1;return}function mo(b){b=b|0;var d=0;d=ea;ea=ea+16|0;if((a[24872]|0)==0?DC(24872)|0:0)PB(24872);zp(d,b);c[6328]=c[d>>2];c[6329]=c[d+4>>2];c[6330]=c[d+8>>2];c[6331]=c[d+12>>2];ea=d;return 25312}function no(b){b=b|0;var d=0;d=ea;ea=ea+16|0;if((a[24864]|0)==0?DC(24864)|0:0)PB(24864);Il(d,b);c[6324]=c[d>>2];c[6325]=c[d+4>>2];c[6326]=c[d+8>>2];c[6327]=c[d+12>>2];ea=d;return 25296}function oo(a){a=a|0;var b=0.0,d=0,e=0.0,g=0.0;d=ea;ea=ea+32|0;Ma[c[(c[a>>2]|0)+12>>2]&127](a,d+8|0,d);g=+f[d+8>>2];e=+f[d+8+4>>2];b=+f[d+8+8>>2];b=+s(+(g*g+e*e+b*b));ea=d;return +(+f[d>>2]+b)}function po(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=ea;ea=ea+16|0;c[f>>2]=6316;c[f+4>>2]=d;c[f+8>>2]=a;Ma[c[(c[b>>2]|0)+48>>2]&127](b,f,e);ea=f;return}function qo(b,c){b=b|0;c=c|0;var d=0,e=0;d=a[b>>0]|0;e=a[c>>0]|0;if(!(d<<24>>24==0?1:d<<24>>24!=e<<24>>24))do{b=b+1|0;c=c+1|0;d=a[b>>0]|0;e=a[c>>0]|0}while(!(d<<24>>24==0?1:d<<24>>24!=e<<24>>24));return (d&255)-(e&255)|0}function ro(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=+g;Pa[c[(c[a>>2]|0)+8>>2]&127](a,b,d,f);Pa[c[(c[a>>2]|0)+8>>2]&127](a,d,e,f);Pa[c[(c[a>>2]|0)+8>>2]&127](a,e,b,f);return}function so(a,b,d){a=a|0;b=b|0;d=d|0;a=c[b+8>>2]|0;if(!((d|0)!=0&(a|0)!=0))return;Ca[c[c[a>>2]>>2]&511](a);Ia[c[(c[d>>2]|0)+60>>2]&127](d,c[b+8>>2]|0);c[b+8>>2]=0;return}function to(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;b=NJ(b+4|0)|0;e=(NJ(wH(b,0)|0)|0)+(c<<2)|0;d=(NJ(wH(b,1)|0)|0)+(c<<2)|0;qs(a,e,d,(NJ(wH(b,2)|0)|0)+(c<<2)|0);return}function uo(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;c=+f[(NJ(a)|0)>>2];c=c*+f[(NJ(b)|0)>>2];d=+f[(NJ(a+16|0)|0)>>2];d=c+d*+f[(sJ(b)|0)>>2];c=+f[(NJ(a+32|0)|0)>>2];return +(d+c*+f[(rJ(b)|0)>>2])}function vo(b){b=b|0;var d=0;c[b>>2]=6156;d=c[b+276>>2]|0;if(d|0){if(a[b+280>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+276>>2]=0}a[b+280>>0]=1;c[b+276>>2]=0;c[b+268>>2]=0;c[b+272>>2]=0;c[b>>2]=6120;return}function wo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=ea;ea=ea+16|0;c[e>>2]=10112;c[e+4>>2]=b;c[e+8>>2]=a;c[e+12>>2]=d;Ma[c[(c[a>>2]|0)+48>>2]&127](a,e,d);ea=e;return}function xo(b){b=b|0;var d=0;c[b>>2]=7984;if(a[b+61>>0]|0?(d=c[b+52>>2]|0,Ca[c[c[d>>2]>>2]&511](d),d=c[b+52>>2]|0,d|0):0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[6748]=(c[6748]|0)+1;uc(c[b+-4>>2]|0);return}function yo(b){b=b|0;var d=0;c[b>>2]=5172;d=c[b+496>>2]|0;if(d|0){if(a[b+500>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+496>>2]=0}a[b+500>>0]=1;c[b+496>>2]=0;c[b+488>>2]=0;c[b+492>>2]=0;c[b>>2]=6120;return}function zo(b){b=b|0;var d=0,e=0,f=0;e=c[b>>2]|0;d=a[e>>0]|0;if(!(VI(d<<24>>24)|0))d=0;else{f=d;d=0;do{d=(d*10|0)+-48+(f<<24>>24)|0;e=e+1|0;c[b>>2]=e;f=a[e>>0]|0}while((VI(f<<24>>24)|0)!=0)}return d|0}function Ao(a,b,c,d){a=+a;b=+b;c=+c;d=+d;var e=0,g=0;g=ea;ea=ea+16|0;f[g+12>>2]=a;f[g+8>>2]=b;f[g+4>>2]=c;f[g>>2]=d;e=dt()|0;fu(e,g+12|0,g+8|0,g+4|0,g);ea=g;return e|0}function Bo(a,b,c,d){a=+a;b=+b;c=+c;d=+d;var e=0,g=0;g=ea;ea=ea+16|0;f[g+12>>2]=a;f[g+8>>2]=b;f[g+4>>2]=c;f[g>>2]=d;e=GI(16)|0;Cv(e,g+12|0,g+8|0,g+4|0,g);ea=g;return e|0}function Co(a){a=a|0;var b=0.0,d=0,e=0,g=0.0;e=c[a+712>>2]|0;if((e|0)<=0){b=0.0;return +b}a=c[a+720>>2]|0;d=0;b=0.0;do{g=+f[a+(d*104|0)+88>>2];b=b+(g>0.0?1.0/g:0.0);d=d+1|0}while((d|0)!=(e|0));return +b}function Do(a){a=a|0;var b=0;c[a>>2]=6620;c[a+12>>2]=6668;b=c[a+60>>2]|0;Ia[c[(c[b>>2]|0)+20>>2]&127](b,c[a+76>>2]|0);b=c[a+60>>2]|0;Ia[c[(c[b>>2]|0)+16>>2]&127](b,c[a+76>>2]|0);LJ(a);return}function Eo(b){b=b|0;var d=0;c[b>>2]=5988;d=c[b+140>>2]|0;if(d|0){if(a[b+144>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+140>>2]=0}a[b+144>>0]=1;c[b+140>>2]=0;c[b+132>>2]=0;c[b+136>>2]=0;return}function Fo(a,b){a=a|0;b=b|0;var d=0,e=0;d=ea;ea=ea+16|0;_w(a);e=NJ(c[b+4>>2]|0)|0;c[d>>2]=0;En(a,e,d);wr(b,e,c[a+12>>2]|0);ea=d;return}function Go(a,b,d){a=a|0;b=+b;d=d|0;b=b*.4000000059604645*+ha[c[(c[a>>2]|0)+48>>2]&15](a);b=b*+ha[c[(c[a>>2]|0)+48>>2]&15](a);f[d>>2]=b;f[d+4>>2]=b;f[d+8>>2]=b;f[d+12>>2]=0.0;return}function Ho(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;c=+f[a>>2];c=c*+f[(NJ(b)|0)>>2];d=+f[a+4>>2];d=c+d*+f[(sJ(b)|0)>>2];c=+f[a+8>>2];c=d+c*+f[(rJ(b)|0)>>2];return +(c+ +f[a+12>>2]*+f[b+12>>2])}function Io(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;if(rt(a,c[b+8>>2]|0,g)|0)xk(b,d,e,f);return}function Jo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=c[b>>2]|0;a=ta[c[(c[a>>2]|0)+56>>2]&31](a,24)|0;c[a+4>>2]=c[b>>2];c[a>>2]=5144;return a|0}function Ko(a,b,c,d,e,g,h){a=a|0;b=+b;c=+c;d=+d;e=+e;g=+g;h=+h;var i=0;i=ea;ea=ea+16|0;f[i+8>>2]=c*h-d*g;f[i+4>>2]=d*e-b*h;f[i>>2]=b*g-c*e;qs(a,i+8|0,i+4|0,i);ea=i;return}function Lo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[d>>2]=-581039253;c[d+4>>2]=-581039253;c[d+8>>2]=-581039253;f[d+12>>2]=0.0;c[e>>2]=1566444395;c[e+4>>2]=1566444395;c[e+8>>2]=1566444395;f[e+12>>2]=0.0;return}function Mo(b){b=b|0;var d=0;c[b>>2]=10152;if(a[b+192>>0]|0?(d=c[b+136>>2]|0,Ca[c[c[d>>2]>>2]&511](d),d=c[b+136>>2]|0,d|0):0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}th(b+64|0);th(b+4|0);return}function No(b){b=b|0;var d=0;c[b>>2]=10680;d=c[b+32>>2]|0;if(d|0){if(a[b+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+32>>2]=0}a[b+36>>0]=1;c[b+32>>2]=0;c[b+24>>2]=0;c[b+28>>2]=0;return}function Oo(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;qs(a,b,c,d);qs(a+16|0,e,f,g);qs(a+32|0,h,i,j);return}function Po(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=ea;ea=ea+64|0;Nj(d+16|0,b,c);tl(d,b,+f[c+48>>2],+f[c+52>>2],+f[c+56>>2]);fq(a,d+16|0,d);ea=d;return}function Qo(a){a=a|0;var b=0;c[a>>2]=6620;c[a+12>>2]=6668;b=c[a+60>>2]|0;Ia[c[(c[b>>2]|0)+20>>2]&127](b,c[a+76>>2]|0);b=c[a+60>>2]|0;Ia[c[(c[b>>2]|0)+16>>2]&127](b,c[a+76>>2]|0);return}function Ro(b){b=b|0;var d=0;c[b>>2]=4060;d=c[b+32>>2]|0;if(d|0){if(a[b+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+32>>2]=0}a[b+36>>0]=1;c[b+32>>2]=0;c[b+24>>2]=0;c[b+28>>2]=0;return}function So(a){a=a|0;var b=0,d=0;c[a>>2]=8336;b=c[a+52>>2]|0;if(b|0?(Ca[c[c[b>>2]>>2]&511](b),d=c[a+52>>2]|0,d|0):0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[6748]=(c[6748]|0)+1;uc(c[a+-4>>2]|0);return}function To(a,b){a=a|0;b=b|0;var d=0;d=(c[a+92>>2]|0)+4|0;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];Bi(a);return}function Uo(b,d){b=b|0;d=d|0;var e=0;if(a[b+273>>0]|0?(e=c[b+200>>2]|0,e|0):0){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0)}a[b+273>>0]=0;c[b+200>>2]=d;c[(c[b+196>>2]|0)+8>>2]=d;return}function Vo(b){b=b|0;var d=0;c[b>>2]=6244;d=c[b+20>>2]|0;if(d|0){if(a[b+24>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+20>>2]=0}a[b+24>>0]=1;c[b+20>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;return}function Wo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=c[b>>2]|0;a=ta[c[(c[a>>2]|0)+56>>2]&31](a,8)|0;c[a+4>>2]=c[b>>2];c[a>>2]=10540;return a|0}function Xo(a,b){a=a|0;b=+b;c[a+8>>2]=0;c[a+12>>2]=1065353216;c[a+16>>2]=1065353216;c[a+20>>2]=1065353216;f[a+24>>2]=0.0;f[a+44>>2]=.03999999910593033;c[a>>2]=7884;c[a+4>>2]=8;hH(a+28|0,b);f[a+44>>2]=b;return}function Yo(b){b=b|0;var d=0;d=Zs()|0;c[d+44>>2]=b;a[d+16>>0]=1;c[d+12>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;a[d+36>>0]=1;c[d+32>>2]=0;c[d+24>>2]=0;c[d+28>>2]=0;c[d+40>>2]=0;return d|0}function Zo(a,b){a=a|0;b=b|0;var d=0,e=0;d=ea;ea=ea+16|0;e=NJ(c[b+4>>2]|0)|0;Ml(a,e,d);Bn(b,e,c[a+12>>2]|0);ea=d;return}function _o(a,b){a=a|0;b=b|0;gc(a,(c[a+28>>2]|0)+4|0,(c[a+32>>2]|0)+4|0);c[a+1316+(b<<2)>>2]=c[((b|0)<3?a+1256+(b<<2)|0:a+1192+(b+-3<<2)|0)>>2];return}function $o(b){b=b|0;var d=0;c[b>>2]=9960;d=c[b+16>>2]|0;if(d|0){if(a[b+20>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[b+16>>2]=0}a[b+20>>0]=1;c[b+16>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;return}function ap(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;var g=0;g=ea;ea=ea+16|0;f[g+12>>2]=b;f[g+8>>2]=c;f[g+4>>2]=d;f[g>>2]=e;zr(a,g+12|0,g+8|0,g+4|0,g);ea=g;return}function bp(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;a=c[b+8>>2]|0;b=c[a+284>>2]|0;Ma[c[(c[b>>2]|0)+40>>2]&127](b,a,c[d+8>>2]|0);return}function cp(b){b=b|0;var d=0,e=0;c[b>>2]=7116;if(!(a[b+8>>0]|0)){LJ(b);return}d=c[b+12>>2]|0;if(!d){LJ(b);return}e=c[b+4>>2]|0;Ia[c[(c[e>>2]|0)+16>>2]&127](e,d);LJ(b);return}function dp(b){b=b|0;var d=0,e=0;c[b>>2]=10568;if(!(a[b+8>>0]|0)){LJ(b);return}d=c[b+12>>2]|0;if(!d){LJ(b);return}e=c[b+4>>2]|0;Ia[c[(c[e>>2]|0)+16>>2]&127](e,d);LJ(b);return}function ep(b){b=b|0;var d=0,e=0;c[b>>2]=6592;if(!(a[b+8>>0]|0)){LJ(b);return}d=c[b+12>>2]|0;if(!d){LJ(b);return}e=c[b+4>>2]|0;Ia[c[(c[e>>2]|0)+16>>2]&127](e,d);LJ(b);return}function fp(a,b){a=a|0;b=b|0;var d=0,e=0;d=ea;ea=ea+16|0;e=NJ(c[b+4>>2]|0)|0;f[d>>2]=0.0;En(a,e,d);wr(b,e,c[a+12>>2]|0);ea=d;return}function gp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=ea;ea=ea+16|0;c[e>>2]=10132;c[e+4>>2]=b;Ma[c[(c[a>>2]|0)+48>>2]&127](a,e,d);ea=e;return}function hp(b){b=b|0;var d=0;c[b>>2]=7984;if(!(a[b+61>>0]|0))return;d=c[b+52>>2]|0;Ca[c[c[d>>2]>>2]&511](d);b=c[b+52>>2]|0;if(!b)return;c[6748]=(c[6748]|0)+1;uc(c[b+-4>>2]|0);return}function ip(a,b){a=a|0;b=b|0;var d=0,e=0;d=ea;ea=ea+16|0;e=NJ(c[b+4>>2]|0)|0;c[d>>2]=0;En(a,e,d);wr(b,e,c[a+12>>2]|0);ea=d;return}function jp(b,d){b=b|0;d=d|0;if((a[24800]|0)==0?DC(24800)|0:0)PB(24800);d=wH(b,d)|0;c[6260]=c[d>>2];c[6261]=c[d+4>>2];c[6262]=c[d+8>>2];c[6263]=c[d+12>>2];return 25040}function kp(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=z(b&65535,a&65535)|0;e=(c>>>16)+(z(b&65535,a>>>16)|0)|0;d=z(b>>>16,a&65535)|0;return (C((e>>>16)+(z(b>>>16,a>>>16)|0)+(((e&65535)+d|0)>>>16)|0),e+d<<16|c&65535|0)|0}function lp(b){b=b|0;var d=0,e=0;c[b>>2]=6688;if(!(a[b+8>>0]|0)){LJ(b);return}d=c[b+12>>2]|0;if(!d){LJ(b);return}e=c[b+4>>2]|0;Ia[c[(c[e>>2]|0)+16>>2]&127](e,d);LJ(b);return}function mp(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if((c|0)<(b|0)&(b|0)<(c+d|0)){e=b;c=c+d|0;b=b+d|0;while((d|0)>0){b=b-1|0;c=c-1|0;d=d-1|0;a[b>>0]=a[c>>0]|0}b=e}else vh(b,c,d)|0;return b|0}function np(){var a=0,b=0;b=ea;ea=ea+32|0;a=GI(112)|0;lt(b);uf(a,b);ea=b;return a|0}function op(b){b=b|0;var d=0,e=0;c[b>>2]=7164;if(!(a[b+16>>0]|0)){LJ(b);return}d=c[b+20>>2]|0;if(!d){LJ(b);return}e=c[b+4>>2]|0;Ia[c[(c[e>>2]|0)+16>>2]&127](e,d);LJ(b);return}function pp(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0;e=+r(+(+f[b>>2]));d=+r(+(+f[b+4>>2]));c=+r(+(+f[b+8>>2]));f[a+12>>2]=e;f[a+16>>2]=d;f[a+20>>2]=c;f[a+24>>2]=0.0;return}function qp(a,b,d,e){a=a|0;b=b|0;d=+d;e=e|0;var f=0;f=ea;ea=ea+64|0;yq(f);Kr(f,b);Ha[c[(c[a>>2]|0)+16>>2]&1](a,d,f,e);ea=f;return}function rp(a,b){a=a|0;b=b|0;Ve(a,c[b+36>>2]|0);return}function sp(a){a=a|0;var b=0;c[a>>2]=6668;b=c[a+48>>2]|0;Ia[c[(c[b>>2]|0)+20>>2]&127](b,c[a+64>>2]|0);b=c[a+48>>2]|0;Ia[c[(c[b>>2]|0)+16>>2]&127](b,c[a+64>>2]|0);LJ(a);return}function tp(a,b,c,d,e,f,g,h,i,j,k,l,m){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;g=+g;h=+h;i=+i;j=+j;k=k|0;l=+l;m=m|0;Ra[a&1](b|0,c|0,d|0,e|0,+f,+g,+h,+i,+j,k|0,+l,m|0)}function up(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;f[a>>2]=(1.0-d)*+f[b>>2]+ +f[c>>2]*d;f[a+4>>2]=(1.0-d)*+f[b+4>>2]+ +f[c+4>>2]*d;f[a+8>>2]=(1.0-d)*+f[b+8>>2]+ +f[c+8>>2]*d;return}function vp(a,b,c,d,e,g,h){a=a|0;b=+b;c=+c;d=+d;e=+e;g=+g;h=+h;var i=0;i=ea;ea=ea+16|0;f[i+8>>2]=b+e;f[i+4>>2]=c+g;f[i>>2]=d+h;qs(a,i+8|0,i+4|0,i);ea=i;return}function wp(a,b,c,d,e,g,h){a=a|0;b=+b;c=+c;d=+d;e=+e;g=+g;h=+h;var i=0;i=ea;ea=ea+16|0;f[i+8>>2]=b*e;f[i+4>>2]=c*g;f[i>>2]=d*h;qs(a,i+8|0,i+4|0,i);ea=i;return}function xp(a,b,c,d,e,g,h){a=a|0;b=+b;c=+c;d=+d;e=+e;g=+g;h=+h;var i=0;i=ea;ea=ea+16|0;f[i+8>>2]=b-e;f[i+4>>2]=c-g;f[i>>2]=d-h;qs(a,i+8|0,i+4|0,i);ea=i;return}function yp(b,c,e,f){b=b|0;c=c|0;e=e|0;f=f|0;if(!((b|0)==0&(c|0)==0))do{e=e+-1|0;a[e>>0]=d[480+(b&15)>>0]|0|f;b=Ft(b|0,c|0,4)|0;c=D()|0}while(!((b|0)==0&(c|0)==0));return e|0}function zp(a,b){a=a|0;b=b|0;var c=0;c=ea;ea=ea+16|0;f[c+8>>2]=-+f[b>>2];f[c+4>>2]=-+f[b+4>>2];f[c>>2]=-+f[b+8>>2];Cv(a,c+8|0,c+4|0,c,b+12|0);ea=c;return}function Ap(a){a=a|0;var b=0;c[a>>2]=8336;b=c[a+52>>2]|0;if(!b)return;Ca[c[c[b>>2]>>2]&511](b);b=c[a+52>>2]|0;if(!b)return;c[6748]=(c[6748]|0)+1;uc(c[b+-4>>2]|0);return}function Bp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if(rt(a,c[b+8>>2]|0,0)|0)qm(b,d,e);return}function Cp(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;return +(+P(0,a|0,b|0,c|0,d|0,e|0,f|0,g|0,h|0))}function Dp(a,b){a=a|0;b=b|0;if((b|0)==0?1:(c[b+236>>2]&2|0)==0){Oj(a,b);return}else{Ia[c[(c[a>>2]|0)+92>>2]&127](a,b);return}}function Ep(a){a=a|0;var b=0;c[a>>2]=6668;b=c[a+48>>2]|0;Ia[c[(c[b>>2]|0)+20>>2]&127](b,c[a+64>>2]|0);b=c[a+48>>2]|0;Ia[c[(c[b>>2]|0)+16>>2]&127](b,c[a+64>>2]|0);return}function Fp(){var b=0;b=GI(40)|0;f[b+12>>2]=1.0;c[b+8>>2]=0;c[b+4>>2]=5;c[b>>2]=4060;a[b+36>>0]=1;c[b+32>>2]=0;c[b+24>>2]=0;c[b+28>>2]=0;a[b+16>>0]=1;return b|0}function Gp(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;var e=0;e=ea;ea=ea+16|0;wp(e,b,c,d,+f[a+348>>2],+f[a+352>>2],+f[a+356>>2]);Lr(a+412|0,e)|0;ea=e;return}function Hp(a,b,c){a=+a;b=+b;c=+c;var d=0,e=0;e=ea;ea=ea+16|0;f[e+8>>2]=a;f[e+4>>2]=b;f[e>>2]=c;d=dt()|0;qs(d,e+8|0,e+4|0,e);ea=e;return d|0}function Ip(a,b){a=a|0;b=b|0;c[a+12>>2]=c[b>>2];c[a+12+4>>2]=c[b+4>>2];c[a+12+8>>2]=c[b+8>>2];c[a+12+12>>2]=c[b+12>>2];Bi(a);return}function Jp(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;return Aa[a&3](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0)|0}function Kp(a,b){a=a|0;b=b|0;a=c[a+12>>2]|0;return ta[c[(c[a>>2]|0)+8>>2]&31](a,b)|0}function Lp(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;var e=0;e=ea;ea=ea+16|0;wp(e,b,c,d,+f[a+544>>2],+f[a+548>>2],+f[a+552>>2]);Lr(a+428|0,e)|0;ea=e;return}function Mp(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;return +qa[a&3](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0)}function Np(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;h=Hs()|0;yd(h,a,b,c,d,e,f,g);return h|0}function Op(a,b,d){a=a|0;b=b|0;d=d|0;hA(a,b);c[a+48>>2]=c[d>>2];c[a+48+4>>2]=c[d+4>>2];c[a+48+8>>2]=c[d+8>>2];c[a+48+12>>2]=c[d+12>>2];return}function Pp(a,b){a=a|0;b=b|0;var c=0;c=ea;ea=ea+16|0;ql(c,a,+f[b+48>>2],+f[b+52>>2],+f[b+56>>2]);Lr(a+48|0,c)|0;$j(a,b);ea=c;return a|0}function Qp(a,b){a=a|0;b=b|0;c[a+260>>2]=(c[a+260>>2]|0)+1;c[a+328>>2]=c[b>>2];c[a+328+4>>2]=c[b+4>>2];c[a+328+8>>2]=c[b+8>>2];c[a+328+12>>2]=c[b+12>>2];return}function Rp(){var a=0,b=0;b=ea;ea=ea+32|0;a=GI(92)|0;lt(b);Uc(a,b);ea=b;return a|0}function Sp(a,b,d){a=a|0;b=b|0;d=d|0;c[d>>2]=c[a+56+(b<<4)>>2];c[d+4>>2]=c[a+56+(b<<4)+4>>2];c[d+8>>2]=c[a+56+(b<<4)+8>>2];c[d+12>>2]=c[a+56+(b<<4)+12>>2];return}function Tp(a,b){a=a|0;b=b|0;c[a+260>>2]=(c[a+260>>2]|0)+1;c[a+312>>2]=c[b>>2];c[a+312+4>>2]=c[b+4>>2];c[a+312+8>>2]=c[b+8>>2];c[a+312+12>>2]=c[b+12>>2];return}function Up(a,b){a=a|0;b=b|0;c[a+260>>2]=(c[a+260>>2]|0)+1;c[a+544>>2]=c[b>>2];c[a+544+4>>2]=c[b+4>>2];c[a+544+8>>2]=c[b+8>>2];c[a+544+12>>2]=c[b+12>>2];return}function Vp(a,b,c,d,e,f,g,h,i,j,k,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;g=+g;h=+h;i=+i;j=j|0;k=k|0;l=+l;Sa[a&1](b|0,c|0,d|0,e|0,+f,+g,+h,+i,j|0,k|0,+l)}function Wp(a){a=a|0;var b=0.0,d=0.0;d=+f[a+32>>2];+ha[c[(c[a>>2]|0)+48>>2]&15](a);b=+ha[c[(c[a>>2]|0)+48>>2]&15](a);+ha[c[(c[a>>2]|0)+48>>2]&15](a);return +(d+b)}function Xp(a){a=a|0;var b=0.0,d=0.0;d=+f[a+28>>2];b=+ha[c[(c[a>>2]|0)+48>>2]&15](a);+ha[c[(c[a>>2]|0)+48>>2]&15](a);+ha[c[(c[a>>2]|0)+48>>2]&15](a);return +(d+b)}function Yp(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;Za[a&3](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0,k|0)}function Zp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=ea;ea=ea+16|0;c[e>>2]=c[d>>2];a=va[c[(c[a>>2]|0)+16>>2]&63](a,b,e)|0;if(a)c[d>>2]=c[e>>2];ea=e;return a&1|0}function _p(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;var g=0;g=ea;ea=ea+16|0;f[g+8>>2]=b*e;f[g+4>>2]=c*e;f[g>>2]=d*e;qs(a,g+8|0,g+4|0,g);ea=g;return}function $p(a,b){a=a|0;b=b|0;f[a>>2]=+f[a>>2]*+f[b>>2];f[a+4>>2]=+f[a+4>>2]*+f[b>>2];f[a+8>>2]=+f[a+8>>2]*+f[b>>2];f[a+12>>2]=+f[a+12>>2]*+f[b>>2];return a|0}function aq(){var a=0;a=GI(8)|0;c[6746]=a;Y(a|0,0)|0;c[6736]=22157;c[6737]=0;c[6738]=0;c[6739]=0;c[6740]=0;c[6741]=0;c[6742]=0;c[6743]=0;c[6744]=0;mr(26944);return}function bq(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;Oo(a,b,c,d,e,f,g,h,i,j);return}function cq(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=js(324)|0;Yc(d,a,b,c);return d|0}function dq(b){b=b|0;var d=0;c[b>>2]=4060;d=c[b+32>>2]|0;if(!d){LJ(b);return}if(!(a[b+36>>0]|0)){LJ(b);return}c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0);LJ(b);return}function eq(a,b,d){a=a|0;b=b|0;d=d|0;a=c[b+204>>2]|0;if(a&4|0)return 0;b=c[d+204>>2]|0;if(!(b&4))return (a&3|0)==0|(b&3|0)==0|0;else return 0;return 0}function fq(a,b,d){a=a|0;b=b|0;d=d|0;$l(a,b);c[a+48>>2]=c[d>>2];c[a+48+4>>2]=c[d+4>>2];c[a+48+8>>2]=c[d+8>>2];c[a+48+12>>2]=c[d+12>>2];return}function gq(b){b=b|0;var d=0;c[b>>2]=7116;if(!(a[b+8>>0]|0))return;d=c[b+12>>2]|0;if(!d)return;b=c[b+4>>2]|0;Ia[c[(c[b>>2]|0)+16>>2]&127](b,d);return}function hq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=0;while(1){if((e|0)>=(b|0))break;Fl(d+(e*96|0)|0,(c[a+12>>2]|0)+(e*96|0)|0);e=e+1|0}return}function iq(b){b=b|0;var d=0;c[b>>2]=10568;if(!(a[b+8>>0]|0))return;d=c[b+12>>2]|0;if(!d)return;b=c[b+4>>2]|0;Ia[c[(c[b>>2]|0)+16>>2]&127](b,d);return}function jq(b){b=b|0;var d=0;c[b>>2]=6244;d=c[b+20>>2]|0;if(!d){LJ(b);return}if(!(a[b+24>>0]|0)){LJ(b);return}c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0);LJ(b);return}function kq(a,b){a=a|0;b=b|0;var c=0;c=ea;ea=ea+128|0;zn(c,a+68|0);Po(c+64|0,c,a+4|0);Kq(b,c+64|0);ea=c;return}function lq(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0;g=Hs()|0;yd(g,a,b,c,d,e,f,0);return g|0}function mq(b){b=b|0;var d=0;c[b>>2]=6592;if(!(a[b+8>>0]|0))return;d=c[b+12>>2]|0;if(!d)return;b=c[b+4>>2]|0;Ia[c[(c[b>>2]|0)+16>>2]&127](b,d);return}function nq(b){b=b|0;var c=0;c=ea;ea=ea+64|0;if((a[24848]|0)==0?DC(24848)|0:0)PB(24848);zn(c,b);Kq(25216,c);ea=c;return 25216}function oq(a,b){a=a|0;b=b|0;a=c[a+4>>2]|0;return ((c[b>>2]|0)==(a|0)?1:(c[b+4>>2]|0)==(a|0))|0}function pq(b){b=b|0;if(a[24912]|0)return 25552;if(!(DC(24912)|0))return 25552;c[6388]=1065353216;c[6389]=1065353216;c[6390]=1065353216;f[6391]=0.0;PB(24912);return 25552}function qq(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=ss()|0;Ed(f,a,b,c,d,e);return f|0}function rq(a,b){a=a|0;b=b|0;a=c[a+20>>2]|0;return ta[c[(c[a>>2]|0)+8>>2]&31](a,b)|0}function sq(b){b=b|0;var d=0;c[b>>2]=9960;d=c[b+16>>2]|0;if(!d){LJ(b);return}if(!(a[b+20>>0]|0)){LJ(b);return}c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0);LJ(b);return}function tq(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;var e=0;e=ea;ea=ea+16|0;f[e+8>>2]=b;f[e+4>>2]=c;f[e>>2]=d;qs(a,e+8|0,e+4|0,e);ea=e;return}function uq(b){b=b|0;var d=0;c[b>>2]=6688;if(!(a[b+8>>0]|0))return;d=c[b+12>>2]|0;if(!d)return;b=c[b+4>>2]|0;Ia[c[(c[b>>2]|0)+16>>2]&127](b,d);return}function vq(a,b,d,e,f,g,h,i,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=+j;Ua[c[(c[a>>2]|0)+28>>2]&1](a,b,d,e,i,j);return}function wq(a,b,d){a=a|0;b=b|0;d=d|0;sI(a);c[a>>2]=3684;Kq(a+4|0,b);Kq(a+68|0,d);Kq(a+132|0,b);c[a+196>>2]=0;return}function xq(b){b=b|0;var d=0;c[b>>2]=7164;if(!(a[b+16>>0]|0))return;d=c[b+20>>2]|0;if(!d)return;b=c[b+4>>2]|0;Ia[c[(c[b>>2]|0)+16>>2]&127](b,d);return}function yq(a){a=a|0;var b=0;b=ea;ea=ea+16|0;Jm(a);f[b+8>>2]=0.0;f[b+4>>2]=0.0;f[b>>2]=0.0;qs(a+48|0,b+8|0,b+4|0,b);ea=b;return}function zq(b,c,d){b=b|0;c=c|0;d=d|0;if(!((b|0)==0&(c|0)==0))do{d=d+-1|0;a[d>>0]=b&7|48;b=Ft(b|0,c|0,3)|0;c=D()|0}while(!((b|0)==0&(c|0)==0));return d|0}function Aq(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;return za[a&3](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0)|0}function Bq(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;var f=0;f=GI(44)|0;Ul(f,a,b,c,d,e);return f|0}function Cq(a,b){a=a|0;b=b|0;Fo(a,b);c[a+20>>2]=c[b+20>>2];c[a+20+4>>2]=c[b+20+4>>2];c[a+20+8>>2]=c[b+20+8>>2];c[a+20+12>>2]=c[b+20+12>>2];return}function Dq(a,b,c){a=a|0;b=b|0;c=+c;switch(b|0){case 3:{f[a+452>>2]=c;return}case 4:{f[a+448>>2]=c;return}case 5:{f[a+444>>2]=c;return}default:return}}function Eq(a,b){a=a|0;b=b|0;var c=0;c=0;while(1){if((c|0)==3)break;f[a+868+(c<<6)+4>>2]=+Fs(+f[(NJ(b)|0)+(c<<2)>>2]);c=c+1|0}return}function Fq(a,b){a=a|0;b=b|0;b=c[b+36>>2]|0;Pd(a,c[(c[(c[(c[a+4>>2]|0)+4>>2]|0)+24>>2]|0)+(b*80|0)+64>>2]|0,b);return}function Gq(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;return +pa[a&3](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0)}function Hq(a,b){a=a|0;b=b|0;var c=0;c=0;while(1){if((c|0)==3)break;f[a+868+(c<<6)>>2]=+Fs(+f[(NJ(b)|0)+(c<<2)>>2]);c=c+1|0}return}function Iq(a,b,c,d){a=+a;b=b|0;c=c|0;d=d|0;var e=0;e=GI(140)|0;ok(e,a,b,c,d);return e|0}function Jq(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;return +(+oa[c[(c[a>>2]|0)+12>>2]&1](a,b,d,e,f,g,h,i))}function Kq(a,b){a=a|0;b=b|0;$l(a,b);c[a+48>>2]=c[b+48>>2];c[a+48+4>>2]=c[b+48+4>>2];c[a+48+8>>2]=c[b+48+8>>2];c[a+48+12>>2]=c[b+48+12>>2];return}function Lq(b,d){b=b|0;d=d|0;if((a[24824]|0)==0?DC(24824)|0:0)PB(24824);Dm(rC(c[b+12>>2]|0,d)|0);return 25088}function Mq(a,b){a=a|0;b=b|0;qs(a,b,b+16|0,b+32|0);qs(a+16|0,b+4|0,b+20|0,b+36|0);qs(a+32|0,b+8|0,b+24|0,b+40|0);return}function Nq(a,b){a=a|0;b=b|0;Ca[c[(c[b>>2]|0)+32>>2]&511](b);nc(a,b);Ca[c[(c[b>>2]|0)+36>>2]&511](b);return}function Oq(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;Ya[a&1](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,j|0)}function Pq(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;Ma[c[(c[a>>2]|0)+108>>2]&127](a,b,d);Ma[c[(c[a>>2]|0)+108>>2]&127](a,(b+1|0)%3|0,e);return}function Qq(a){a=a|0;var b=0.0,c=0;c=+Ho(a,a)<0.0;b=+f[a+12>>2];if(c){b=+jB(b);b=b*2.0;return +b}else{b=+jB(-b);b=b*2.0;return +b}return 0.0}function Rq(){var a=0,b=0;b=Yr(c[6250]|0,c[6251]|0,1284865837,1481765933)|0;b=Lv(b|0,D()|0,1,0)|0;a=D()|0;c[6250]=b;c[6251]=a;a=Ft(b|0,a|0,33)|0;D()|0;return a|0}function Sq(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;var e=0;e=ea;ea=ea+16|0;f[e+8>>2]=-b;f[e+4>>2]=-c;f[e>>2]=-d;qs(a,e+8|0,e+4|0,e);ea=e;return}function Tq(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=vs()|0;fd(f,a,b,c&65535,d,e);return f|0}function Uq(a){a=a|0;c[6747]=(c[6747]|0)+1;a=kb((a*104|3)+16|0)|0;if(!a){a=0;return a|0}c[(a+4+15&-16)+-4>>2]=a;a=a+4+15&-16;return a|0}function Vq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=0;while(1){if((e|0)>=(b|0))break;Cq(d+(e*36|0)|0,(c[a+12>>2]|0)+(e*36|0)|0);e=e+1|0}return}function Wq(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=+j;Xa[a&1](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0,+j)}function Xq(a,b){a=a|0;b=b|0;c[a+12>>2]=c[b>>2];c[a+12+4>>2]=c[b+4>>2];c[a+12+8>>2]=c[b+8>>2];c[a+12+12>>2]=c[b+12>>2];return}function Yq(a,b){a=a|0;b=b|0;c[a+44>>2]=c[b>>2];c[a+44+4>>2]=c[b+4>>2];c[a+44+8>>2]=c[b+8>>2];c[a+44+12>>2]=c[b+12>>2];return}function Zq(a,c){a=a|0;c=c|0;if(!((b[c+4>>1]&b[a+6>>1])<<16>>16)){a=0;return a|0}a=(b[a+4>>1]&b[c+6>>1])<<16>>16!=0;return a|0}function _q(a,c){a=a|0;c=c|0;if(!((b[c+4>>1]&b[a+10>>1])<<16>>16)){a=0;return a|0}a=(b[a+8>>1]&b[c+6>>1])<<16>>16!=0;return a|0}function $q(a,b){a=a|0;b=b|0;c[a+696>>2]=c[b>>2];c[a+696+4>>2]=c[b+4>>2];c[a+696+8>>2]=c[b+8>>2];c[a+696+12>>2]=c[b+12>>2];return}function ar(a,b){a=a|0;b=b|0;c[a+680>>2]=c[b>>2];c[a+680+4>>2]=c[b+4>>2];c[a+680+8>>2]=c[b+8>>2];c[a+680+12>>2]=c[b+12>>2];return}function br(a,b){a=a|0;b=b|0;c[a+60>>2]=c[b>>2];c[a+60+4>>2]=c[b+4>>2];c[a+60+8>>2]=c[b+8>>2];c[a+60+12>>2]=c[b+12>>2];return}function cr(a,b){a=a|0;b=b|0;c[a+28>>2]=c[b>>2];c[a+28+4>>2]=c[b+4>>2];c[a+28+8>>2]=c[b+8>>2];c[a+28+12>>2]=c[b+12>>2];return}function dr(a){a=a|0;c[a>>2]=3616;uF(a+112|0);uF(a+92|0);uF(a+72|0);uF(a+20|0);return}function er(a,b){a=a|0;b=b|0;c[a+156>>2]=c[b>>2];c[a+156+4>>2]=c[b+4>>2];c[a+156+8>>2]=c[b+8>>2];c[a+156+12>>2]=c[b+12>>2];return}function fr(b,c,d){b=b|0;c=c|0;d=d|0;a[b+1309+c>>0]=d&1;if((c|0)<3){a[b+788+c>>0]=d&1;return}else{a[b+868+(c+-3<<6)+44>>0]=d&1;return}}function gr(a,c){a=a|0;c=c|0;if(!((b[c+4>>1]&b[a+14>>1])<<16>>16)){a=0;return a|0}a=(b[a+12>>1]&b[c+6>>1])<<16>>16!=0;return a|0}function hr(a,b){a=a|0;b=b|0;c[a+108>>2]=c[b>>2];c[a+108+4>>2]=c[b+4>>2];c[a+108+8>>2]=c[b+8>>2];c[a+108+12>>2]=c[b+12>>2];return}function ir(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=(NJ(b)|0)+(c<<2)|0;d=(NJ(b+16|0)|0)+(c<<2)|0;qs(a,e,d,(NJ(b+32|0)|0)+(c<<2)|0);return}function jr(a){a=a|0;c[6747]=(c[6747]|0)+1;a=kb(a*96|19)|0;if(!a){a=0;return a|0}c[(a+4+15&-16)+-4>>2]=a;a=a+4+15&-16;return a|0}function kr(a,b){a=a|0;b=b|0;c[a+20>>2]=c[b>>2];c[a+20+4>>2]=c[b+4>>2];c[a+20+8>>2]=c[b+8>>2];c[a+20+12>>2]=c[b+12>>2];return}function lr(a){a=a|0;c[6747]=(c[6747]|0)+1;a=kb((a<<4|3)+16|0)|0;if(!a){a=0;return a|0}c[(a+4+15&-16)+-4>>2]=a;a=a+4+15&-16;return a|0}function mr(a){a=a|0;var b=0;do{c[a+4>>2]=0;f[a+8>>2]=0.0;b=c[a+24>>2]|0;if(b|0)mr(b);a=c[a+28>>2]|0}while((a|0)!=0);return}function nr(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;Gc(a,b,c,d,e,f);return}function or(a){a=a|0;c[6747]=(c[6747]|0)+1;a=kb((a*36|3)+16|0)|0;if(!a){a=0;return a|0}c[(a+4+15&-16)+-4>>2]=a;a=a+4+15&-16;return a|0}function pr(a,b){a=a|0;b=b|0;c[a+172>>2]=c[b>>2];c[a+172+4>>2]=c[b+4>>2];c[a+172+8>>2]=c[b+8>>2];c[a+172+12>>2]=c[b+12>>2];return}function qr(a,b){a=a|0;b=b|0;c[a+32>>2]=c[b>>2];c[a+32+4>>2]=c[b+4>>2];c[a+32+8>>2]=c[b+8>>2];c[a+32+12>>2]=c[b+12>>2];return}function rr(a){a=a|0;f[a>>2]=5.880000114440918;f[a+4>>2]=.8299999833106995;f[a+8>>2]=.8799999952316284;f[a+12>>2]=500.0;f[a+16>>2]=10.5;f[a+20>>2]=6.0e3;return}function sr(a,b){a=a|0;b=b|0;c[a+316>>2]=c[b>>2];c[a+316+4>>2]=c[b+4>>2];c[a+316+8>>2]=c[b+8>>2];c[a+316+12>>2]=c[b+12>>2];return}function tr(a,b){a=a|0;b=b|0;c[a+300>>2]=c[b>>2];c[a+300+4>>2]=c[b+4>>2];c[a+300+8>>2]=c[b+8>>2];c[a+300+12>>2]=c[b+12>>2];return}function ur(a,b){a=a|0;b=b|0;c[a+64>>2]=c[b>>2];c[a+64+4>>2]=c[b+4>>2];c[a+64+8>>2]=c[b+8>>2];c[a+64+12>>2]=c[b+12>>2];return}function vr(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=vs()|0;fd(e,a,b,c&65535,d,0);return e|0}function wr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=0;while(1){if((e|0)>=(b|0))break;c[d+(e<<2)>>2]=c[(c[a+12>>2]|0)+(e<<2)>>2];e=e+1|0}return}function xr(a,b){a=a|0;b=b|0;c[a+52>>2]=c[b>>2];c[a+52+4>>2]=c[b+4>>2];c[a+52+8>>2]=c[b+8>>2];c[a+52+12>>2]=c[b+12>>2];return}function yr(a,b){a=a|0;b=b|0;c[a+188>>2]=c[b>>2];c[a+188+4>>2]=c[b+4>>2];c[a+188+8>>2]=c[b+8>>2];c[a+188+12>>2]=c[b+12>>2];return}function zr(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;c[a>>2]=c[b>>2];c[a+4>>2]=c[d>>2];c[a+8>>2]=c[e>>2];c[a+12>>2]=c[f>>2];return}function Ar(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;return +oa[a&1](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0)}function Br(a,b){a=a|0;b=b|0;c[a+16>>2]=c[b>>2];c[a+16+4>>2]=c[b+4>>2];c[a+16+8>>2]=c[b+8>>2];c[a+16+12>>2]=c[b+12>>2];return}function Cr(a,b,d){a=a|0;b=b|0;d=+d;Ia[c[(c[a>>2]|0)+32>>2]&127](a,b);Ja[c[(c[a>>2]|0)+36>>2]&7](a,b,d);return}function Dr(a){a=a|0;c[6747]=(c[6747]|0)+1;a=kb((a<<2|3)+16|0)|0;if(!a){a=0;return a|0}c[(a+4+15&-16)+-4>>2]=a;a=a+4+15&-16;return a|0}function Er(a,b){a=a|0;b=b|0;c[a+68>>2]=c[b>>2];c[a+68+4>>2]=c[b+4>>2];c[a+68+8>>2]=c[b+8>>2];c[a+68+12>>2]=c[b+12>>2];return}function Fr(a,b){a=a|0;b=b|0;c[a+36>>2]=c[b>>2];c[a+36+4>>2]=c[b+4>>2];c[a+36+8>>2]=c[b+8>>2];c[a+36+12>>2]=c[b+12>>2];return}function Gr(a,b){a=a|0;b=b|0;c[a>>2]=c[b+248>>2];c[a+4>>2]=c[b+248+4>>2];c[a+8>>2]=c[b+248+8>>2];c[a+12>>2]=c[b+248+12>>2];return}function Hr(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=ss()|0;gd(d,a,b,c);return d|0}function Ir(){var a=0;a=As()|0;Xm();Xm();wq(a,25328,25328);return a|0}function Jr(a,b,d){a=a|0;b=b|0;d=d|0;if((c[a+4>>2]|0)==(b|0)?(c[a+28>>2]|0)!=1:0)c[a+28>>2]=d;return}function Kr(a,b){a=a|0;b=b|0;c[a+48>>2]=c[b>>2];c[a+48+4>>2]=c[b+4>>2];c[a+48+8>>2]=c[b+8>>2];c[a+48+12>>2]=c[b+12>>2];return}function Lr(a,b){a=a|0;b=b|0;f[a>>2]=+f[a>>2]+ +f[b>>2];f[a+4>>2]=+f[a+4>>2]+ +f[b+4>>2];f[a+8>>2]=+f[a+8>>2]+ +f[b+8>>2];return a|0}function Mr(a,b){a=a|0;b=b|0;f[a>>2]=+f[a>>2]-+f[b>>2];f[a+4>>2]=+f[a+4>>2]-+f[b+4>>2];f[a+8>>2]=+f[a+8>>2]-+f[b+8>>2];return a|0}function Nr(a,b){a=a|0;b=b|0;var c=0;c=ea;ea=ea+64|0;Po(c,b,a+68|0);Kq(a+4|0,c);ea=c;return}function Or(a){a=a|0;var b=0;b=GI(112)|0;uf(b,a);return b|0}function Pr(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=vs()|0;fd(d,a,b,c&65535,0,0);return d|0}function Qr(a,b){a=a|0;b=b|0;c[a+76>>2]=c[b>>2];c[a+76+4>>2]=c[b+4>>2];c[a+76+8>>2]=c[b+8>>2];c[a+76+12>>2]=c[b+12>>2];return}function Rr(a,b){a=a|0;b=b|0;c[a+4>>2]=c[b>>2];c[a+4+4>>2]=c[b+4>>2];c[a+4+8>>2]=c[b+8>>2];c[a+4+12>>2]=c[b+12>>2];return}function Sr(a,b){a=a|0;b=b|0;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];return}function Tr(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=js(1252)|0;ub(e,a,b,c,d);return e|0}function Ur(a,b){a=a|0;b=b|0;c[a+40>>2]=c[b>>2];c[a+40+4>>2]=c[b+4>>2];c[a+40+8>>2]=c[b+8>>2];c[a+40+12>>2]=c[b+12>>2];return}function Vr(a,b){a=a|0;b=b|0;c[a+24>>2]=c[b>>2];c[a+24+4>>2]=c[b+4>>2];c[a+24+8>>2]=c[b+8>>2];c[a+24+12>>2]=c[b+12>>2];return}function Wr(a,b){a=a|0;b=b|0;c[a+72>>2]=c[b>>2];c[a+72+4>>2]=c[b+4>>2];c[a+72+8>>2]=c[b+8>>2];c[a+72+12>>2]=c[b+12>>2];return}function Xr(a,b){a=a|0;b=b|0;c[a+56>>2]=c[b>>2];c[a+56+4>>2]=c[b+4>>2];c[a+56+8>>2]=c[b+8>>2];c[a+56+12>>2]=c[b+12>>2];return}function Yr(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=kp(a,c)|0;f=D()|0;return (C((z(b,c)|0)+(z(d,a)|0)+f|f&0|0),e|0|0)|0}function Zr(a,b){a=a|0;b=b|0;f[a>>2]=+f[a>>2]*+f[b>>2];f[a+4>>2]=+f[a+4>>2]*+f[b>>2];f[a+8>>2]=+f[a+8>>2]*+f[b>>2];return a|0}function _r(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;f[a+(c[b+52>>2]<<2)>>2]=1.0;return}function $r(a,b){a=a|0;b=b|0;c[a+8>>2]=c[b>>2];c[a+8+4>>2]=c[b+4>>2];c[a+8+8>>2]=c[b+8>>2];c[a+8+12>>2]=c[b+12>>2];return}function as(){var a=0;c[6747]=(c[6747]|0)+1;a=kb(215)|0;if(!a){a=0;return a|0}c[(a+4+15&-16)+-4>>2]=a;a=a+4+15&-16;return a|0}function bs(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;return ya[a&0](b|0,c|0,d|0,e|0,f|0,g|0,h|0)|0}function cs(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=_s()|0;ae(d,a,b,c);return d|0}function ds(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return wc(b,c,d,e)|0}function es(a,b){a=a|0;b=b|0;var d=0;d=0;while(1){if((d|0)>=(b|0))break;QH((c[a+12>>2]|0)+(d*36|0)|0);d=d+1|0}return}function fs(){var a=0;c[6747]=(c[6747]|0)+1;a=kb(203)|0;if(!a){a=0;return a|0}c[(a+4+15&-16)+-4>>2]=a;a=a+4+15&-16;return a|0}function gs(){var a=0;c[6747]=(c[6747]|0)+1;a=kb(1407)|0;if(!a){a=0;return a|0}c[(a+4+15&-16)+-4>>2]=a;a=a+4+15&-16;return a|0}function hs(a){a=a|0;es(a,NJ(c[a+4>>2]|0)|0);Us(a);_w(a);return}function is(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=+e;f=f|0;g=g|0;Oa[c[(c[a>>2]|0)+32>>2]&1](a,b,d,e,f,g);return}function js(a){a=a|0;c[6747]=(c[6747]|0)+1;a=kb(a+19|0)|0;if(!a){a=0;return a|0}c[(a+4+15&-16)+-4>>2]=a;a=a+4+15&-16;return a|0}function ks(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=+d;e=e|0;f=f|0;T(2,a|0,b|0,c|0,+d,e|0,f|0)|0;return}function ls(a){a=a|0;var b=0;b=As()|0;Xm();wq(b,a,25328);return b|0}function ms(){var a=0;c[6747]=(c[6747]|0)+1;a=kb(191)|0;if(!a){a=0;return a|0}c[(a+4+15&-16)+-4>>2]=a;a=a+4+15&-16;return a|0}function ns(a,b){a=a|0;b=b|0;if(!b?c[a+204>>2]&3|0:0)return;if((c[a+216>>2]&-2|0)!=4)c[a+216>>2]=1;f[a+220>>2]=0.0;return}function os(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;Pa[c[(c[a+-4>>2]|0)+8>>2]&127](a+-4|0,b,d,e);return}function ps(a,b){a=a|0;b=b|0;var c=0.0;c=+cG(a);c=+AJ(c*+cG(b));return +(+jB(+Ho(a,b)/c))}function qs(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a>>2]=c[b>>2];c[a+4>>2]=c[d>>2];c[a+8>>2]=c[e>>2];f[a+12>>2]=0.0;return}function rs(){var a=0;c[6747]=(c[6747]|0)+1;a=kb(143)|0;if(!a){a=0;return a|0}c[(a+4+15&-16)+-4>>2]=a;a=a+4+15&-16;return a|0}function ss(){var a=0;c[6747]=(c[6747]|0)+1;a=kb(1331)|0;if(!a){a=0;return a|0}c[(a+4+15&-16)+-4>>2]=a;a=a+4+15&-16;return a|0}function ts(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;Wa[a&1](b|0,c|0,d|0,e|0,f|0,g|0,h|0)}function us(){var a=0;c[6747]=(c[6747]|0)+1;a=kb(379)|0;if(!a){a=0;return a|0}c[(a+4+15&-16)+-4>>2]=a;a=a+4+15&-16;return a|0}function vs(){var a=0;c[6747]=(c[6747]|0)+1;a=kb(135)|0;if(!a){a=0;return a|0}c[(a+4+15&-16)+-4>>2]=a;a=a+4+15&-16;return a|0}function ws(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;return}function xs(){var a=0;c[6747]=(c[6747]|0)+1;a=kb(627)|0;if(!a){a=0;return a|0}c[(a+4+15&-16)+-4>>2]=a;a=a+4+15&-16;return a|0}function ys(a,b){a=a|0;b=b|0;var c=0;c=vs()|0;fd(c,a,b,16384,0,0);return c|0}function zs(){var a=0;c[6747]=(c[6747]|0)+1;a=kb(791)|0;if(!a){a=0;return a|0}c[(a+4+15&-16)+-4>>2]=a;a=a+4+15&-16;return a|0}function As(){var a=0;c[6747]=(c[6747]|0)+1;a=kb(219)|0;if(!a){a=0;return a|0}c[(a+4+15&-16)+-4>>2]=a;a=a+4+15&-16;return a|0}function Bs(){var a=0;c[6747]=(c[6747]|0)+1;a=kb(1147)|0;if(!a){a=0;return a|0}c[(a+4+15&-16)+-4>>2]=a;a=a+4+15&-16;return a|0}function Cs(a,b){a=a|0;b=b|0;var c=0;c=GI(80)|0;jm(c,a,b);return c|0}function Ds(){var a=0;c[6747]=(c[6747]|0)+1;a=kb(103)|0;if(!a){a=0;return a|0}c[(a+4+15&-16)+-4>>2]=a;a=a+4+15&-16;return a|0}function Es(){var a=0;c[6747]=(c[6747]|0)+1;a=kb(147)|0;if(!a){a=0;return a|0}c[(a+4+15&-16)+-4>>2]=a;a=a+4+15&-16;return a|0}function Fs(a){a=+a;a=+cJ(a);if(a<-3.1415927410125732){a=a+6.2831854820251465;return +a}if(!(a>3.1415927410125732))return +a;a=a+-6.2831854820251465;return +a}function Gs(){var a=0;c[6747]=(c[6747]|0)+1;a=kb(115)|0;if(!a){a=0;return a|0}c[(a+4+15&-16)+-4>>2]=a;a=a+4+15&-16;return a|0}function Hs(){var a=0;c[6747]=(c[6747]|0)+1;a=kb(783)|0;if(!a){a=0;return a|0}c[(a+4+15&-16)+-4>>2]=a;a=a+4+15&-16;return a|0}function Is(){var a=0;c[6747]=(c[6747]|0)+1;a=kb(131)|0;if(!a){a=0;return a|0}c[(a+4+15&-16)+-4>>2]=a;a=a+4+15&-16;return a|0}function Js(a,b){a=a|0;b=b|0;c[a+348>>2]=c[b>>2];c[a+348+4>>2]=c[b+4>>2];c[a+348+8>>2]=c[b+8>>2];return}function Ks(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((d|0)<=0)return;hk(c|0,0,d<<4|0)|0;return}function Ls(){var a=0;c[6747]=(c[6747]|0)+1;a=kb(111)|0;if(!a){a=0;return a|0}c[(a+4+15&-16)+-4>>2]=a;a=a+4+15&-16;return a|0}function Ms(a,b){a=a|0;b=b|0;c[a+480>>2]=b;if(!b)return;Ia[c[(c[b>>2]|0)+8>>2]&127](b,a+4|0);return}function Ns(a,b){a=a|0;b=b|0;var c=0;c=_s()|0;ae(c,a,b,1);return c|0}function Os(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[a+192>>2]|0;Pa[c[(c[e>>2]|0)+8>>2]&127](e,a+4|0,b,d);return}function Ps(a){a=a|0;var b=0;b=GI(92)|0;Uc(b,a);return b|0}function Qs(a,b){a=a|0;b=b|0;c[a>>2]=1065353216;c[a+4>>2]=1065353216;c[a+8>>2]=1065353216;f[a+12>>2]=0.0;return}function Rs(b){b=b|0;if(!(ra[c[(c[b>>2]|0)+40>>2]&127](b)|0))return;c[b+16>>2]=c[b+28>>2];a[b+169>>0]=1;return}function Ss(a){a=a|0;var b=0;b=ea;ea=ea+16|0;c[b>>2]=NJ(c[a+60>>2]|0)|0;a=eI(N(6,b|0)|0)|0;ea=b;return a|0}function Ts(a,b){a=a|0;b=b|0;var d=0;d=c[a+8>>2]|0;Ma[c[d+60>>2]&127](b,d,c[a+4>>2]|0);return 0}function Us(b){b=b|0;var d=0;d=c[b+12>>2]|0;if(!d)return;if(a[b+16>>0]&1)uy(d);c[b+12>>2]=0;return}function Vs(){var a=0;c[6747]=(c[6747]|0)+1;a=kb(71)|0;if(!a){a=0;return a|0}c[(a+4+15&-16)+-4>>2]=a;a=a+4+15&-16;return a|0}function Ws(a,b){a=a|0;b=b|0;var d=0;d=a+92|0;do{c[a>>2]=c[b>>2];a=a+4|0;b=b+4|0}while((a|0)<(d|0));return}function Xs(a,b){a=a|0;b=b|0;var c=0;c=GI(132)|0;kl(c,a,b);return c|0}function Ys(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Tf(a,b,c,d);return}function Zs(){var a=0;c[6747]=(c[6747]|0)+1;a=kb(67)|0;if(!a){a=0;return a|0}c[(a+4+15&-16)+-4>>2]=a;a=a+4+15&-16;return a|0}function _s(){var a=0;c[6747]=(c[6747]|0)+1;a=kb(95)|0;if(!a){a=0;return a|0}c[(a+4+15&-16)+-4>>2]=a;a=a+4+15&-16;return a|0}function $s(a,b){a=a|0;b=b|0;return +(+yy(+f[a>>2],+f[a+4>>2],+f[a+8>>2],+f[b>>2],+f[b+4>>2],+f[b+8>>2]))}function at(a,b){a=a|0;b=b|0;var c=0;c=GI(84)|0;vm(c,a,b);return c|0}function bt(a,b,d){a=a|0;b=b|0;d=d|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;return}function ct(){var a=0;c[6747]=(c[6747]|0)+1;a=kb(75)|0;if(!a){a=0;return a|0}c[(a+4+15&-16)+-4>>2]=a;a=a+4+15&-16;return a|0}function dt(){var a=0;c[6747]=(c[6747]|0)+1;a=kb(35)|0;if(!a){a=0;return a|0}c[(a+4+15&-16)+-4>>2]=a;a=a+4+15&-16;return a|0}function et(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return xa[a&3](b|0,c|0,d|0,e|0,f|0,g|0)|0}function ft(a){a=a|0;qf(a);if(!a)return;c[6748]=(c[6748]|0)+1;uc(c[a+-4>>2]|0);return}function gt(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;Pa[c[(c[a>>2]|0)+8>>2]&127](a,b,d,e);return}function ht(a){a=a|0;c[a>>2]=3640;f[a+4>>2]=1.0;c[a+8>>2]=0;b[a+12>>1]=1;b[a+14>>1]=-1;c[a+16>>2]=0;return}function it(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;Pa[c[(c[a>>2]|0)+8>>2]&127](a,b,d,e);return}function jt(a){a=a|0;var b=0;b=ct()|0;$h(b,a);c[b>>2]=9660;c[b+52>>2]=2;return b|0}function kt(a){a=a|0;var b=0;b=ct()|0;$h(b,a);c[b>>2]=9556;c[b+52>>2]=0;return b|0}function lt(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=4096;c[a+12>>2]=4096;c[a+16>>2]=0;c[a+20>>2]=1;return}function mt(a,b,d){a=a|0;b=b|0;d=d|0;ud(c[a+116>>2]|0,c[a+144>>2]|0,b,d);return}function nt(a,b){a=a|0;b=+b;var c=0;c=ea;ea=ea+16|0;f[c>>2]=b;a=$p(a,c)|0;ea=c;return a|0}function ot(a,b){a=a|0;b=b|0;var c=0;c=As()|0;wq(c,a,b);return c|0}function pt(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C(b<>>32-c|0);return a<>2]|0,c[b+4>>2]|0)|0)==0;else d=(a|0)==(b|0);return d|0}function st(a,b,d){a=a|0;b=b|0;d=d|0;Ma[c[(c[b>>2]|0)+64>>2]&127](a,b,d);return}function tt(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return 0.0}function ut(a,b,d){a=a|0;b=+b;d=d|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;return}function vt(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;Pa[c[(c[a>>2]|0)+80>>2]&127](a,b,d,e);return}function wt(a){a=a|0;if(!a){a=0;return a|0}a=Uq(a)|0;return a|0}function xt(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;f=f|0;g=g|0;return +la[a&3](b|0,c|0,d|0,+e,f|0,g|0)}function yt(a,b){a=a|0;b=+b;var c=0;c=ea;ea=ea+16|0;f[c>>2]=b;a=Zr(a,c)|0;ea=c;return a|0}function zt(a){a=a|0;if(c[a+204>>2]&3|0)return;if((c[a+216>>2]&-2|0)!=4)c[a+216>>2]=1;f[a+220>>2]=0.0;return}function At(a,b){a=a|0;b=b|0;pn(a,+f[b>>2],+f[b+4>>2],+f[b+8>>2]);return}function Bt(){var a=0;a=GI(8)|0;c[a>>2]=0;c[a+4>>2]=0;vz(a);return a|0}function Ct(a,b){a=a|0;b=b|0;a=c[a+4>>2]|0;ta[c[(c[a>>2]|0)+8>>2]&31](a,c[b+36>>2]|0)|0;return}function Dt(a,b){a=a|0;b=b|0;Mq(a,b);qs(a+48|0,b+48|0,b+52|0,b+56|0);return}function Et(a,b,d){a=a|0;b=b|0;d=d|0;Yf(c[a+116>>2]|0,b,d);return}function Ft(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C(b>>>c|0);return a>>>c|(b&(1<>>c-32|0}function Gt(a,b){a=a|0;b=b|0;c[a+260>>2]=(c[a+260>>2]|0)+1;c[a+192>>2]=b;c[a+200>>2]=b;return}function Ht(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Va[a&7](b|0,c|0,d|0,e|0,f|0,g|0)}function It(a,b,c,d,e,f,g,h,i,j,k,l){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;f=+f;g=+g;h=+h;i=+i;j=j|0;k=+k;l=l|0;B(36)}function Jt(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;Pa[c[(c[a>>2]|0)+24>>2]&127](a,b,d,e);return}function Kt(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;Pa[c[(c[a>>2]|0)+88>>2]&127](a,b,d,e);return}function Lt(a,b,d){a=a|0;b=b|0;d=d|0;Ma[c[(c[b>>2]|0)+68>>2]&127](a,b,d);return}function Mt(b,d){b=b|0;d=d|0;b=(a[b+344>>0]|0)==0?3:0;c[d>>2]=b;c[d+4>>2]=b;return}function Nt(a,b){a=a|0;b=+b;var c=0;c=ea;ea=ea+16|0;f[c>>2]=1.0/b;a=$p(a,c)|0;ea=c;return a|0}function Ot(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;Pa[c[(c[a>>2]|0)+36>>2]&127](a,b,d,e);return}function Pt(a,b,d){a=a|0;b=+b;d=d|0;return sa[c[(c[a>>2]|0)+52>>2]&1](a,b,d,.01666666753590107)|0}function Qt(a,b,d){a=a|0;b=+b;d=d|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;return}function Rt(a,b){a=a|0;b=b|0;Gn(a,+f[b>>2],+f[b+4>>2],+f[b+8>>2]);return}function St(a,b,d,e){a=a|0;b=+b;d=d|0;e=+e;return sa[c[(c[a>>2]|0)+52>>2]&1](a,b,d,e)|0}function Tt(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=1065353216;f[a+12>>2]=0.0;return}function Ut(a,b){a=a|0;b=b|0;c[a>>2]=1065353216;c[a+4>>2]=0;c[a+8>>2]=0;f[a+12>>2]=0.0;return}function Vt(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;Pa[c[(c[a>>2]|0)+28>>2]&127](a,b,d,e);return}function Wt(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=1065353216;c[a+8>>2]=0;f[a+12>>2]=0.0;return}function Xt(a,b){a=a|0;b=b|0;Ma[c[(c[a>>2]|0)+8>>2]&127](a,b,c[(c[a+8>>2]|0)+48>>2]|0);return}function Yt(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=+g;Ua[a&1](b|0,c|0,d|0,e|0,f|0,+g)}function Zt(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;f=f|0;g=g|0;Oa[a&1](b|0,c|0,d|0,+e,f|0,g|0)}function _t(a,b){a=a|0;b=b|0;Hn(a,+f[b>>2],+f[b+4>>2],+f[b+8>>2]);return}function $t(b,d,e){b=b|0;d=d|0;e=+e;f[(c[b+720>>2]|0)+(d*104|0)+88>>2]=e>0.0?1.0/e:0.0;a[b+924>>0]=1;return}function au(a,b,d){a=a|0;b=b|0;d=+d;Ja[c[(c[a>>2]|0)+20>>2]&7](a,b,d);return}function bu(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;Pa[c[(c[a>>2]|0)+124>>2]&127](a,e,b,d);return}function cu(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a+120>>2]=b;c[a+124>>2]=d;c[a+128>>2]=e;return}function du(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;wa[c[(c[a>>2]|0)+8>>2]&31](a,b,d,e)|0;return}function eu(a,b){a=a|0;b=b|0;Gp(a,+f[b>>2],+f[b+4>>2],+f[b+8>>2]);return}function fu(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;qs(a,b,d,e);c[a+12>>2]=c[f>>2];return}function gu(b,c,d,e){b=b|0;c=c|0;d=+d;e=+e;a[b+737>>0]=c&1;f[b+680>>2]=d;f[b+684>>2]=e;return}function hu(a,b){a=a|0;b=b|0;var d=0.0,e=0;e=(c[b>>2]|0)+(8-1)&~(8-1);d=+g[e>>3];c[b>>2]=e+8;g[a>>3]=d;return}function iu(a,b){a=a|0;b=b|0;vn(a,+f[b>>2],+f[b+4>>2],+f[b+8>>2]);return}function ju(a,b,c,d,e,f){a=a|0;b=+b;c=+c;d=+d;e=+e;f=+f;qn(a,b,c,d,e,f);return}function ku(a){a=a|0;nj(a);if(!a)return;c[6748]=(c[6748]|0)+1;uc(c[a+-4>>2]|0);return}function lu(a){a=a|0;Tk(a);if(!a)return;c[6748]=(c[6748]|0)+1;uc(c[a+-4>>2]|0);return}function mu(a,b,c,d,e,f,g){a=a|0;b=b|0;c=+c;d=+d;e=e|0;f=f|0;g=g|0;Fa[a&3](b|0,+c,+d,e|0,f|0,g|0)}function nu(a,b,d){a=a|0;b=b|0;d=d|0;Pa[c[(c[a>>2]|0)+36>>2]&127](a,b,d,-3);return}function ou(a,b){a=a|0;b=b|0;var c=0;c=Is()|0;of(c,a,b,16);return c|0}function pu(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return 1.0}function qu(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return}function ru(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;B(19);return 0}function su(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;Pa[c[(c[a>>2]|0)+32>>2]&127](a,b,d,e);return}function tu(a){a=a|0;Vf(a);if(!a)return;c[6748]=(c[6748]|0)+1;uc(c[a+-4>>2]|0);return}function uu(a){a=a|0;if(!a){a=0;return a|0}a=lr(a)|0;return a|0}function vu(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;B(9);return 0.0}function wu(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;gi(a,b,c,d,e);return}function xu(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;af(a,b,c,d,e);return}function yu(a,b,d,e){a=a|0;b=b|0;d=+d;e=e|0;Ka[c[(c[a>>2]|0)+28>>2]&7](a,b,d,e);return}function zu(a,b){a=a|0;b=b|0;Vd(a,b);return}function Au(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;Pa[c[(c[a>>2]|0)+8>>2]&127](a,b,d,e);return}function Bu(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;f=+f;g=+g;h=+h;i=i|0;j=j|0;k=+k;B(37)}function Cu(a,b){a=a|0;b=b|0;Yf(c[a+116>>2]|0,b,1);return}function Du(a,b){a=a|0;b=b|0;c[a+260>>2]=(c[a+260>>2]|0)+1;Kq(a+4|0,b);return}function Eu(a){a=a|0;uF(a+144|0);uF(a+124|0);uF(a+104|0);return}function Fu(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return +na[a&15](b|0,c|0,d|0,e|0,f|0)}function Gu(a,b){a=a|0;b=b|0;var c=0;c=ms()|0;kf(c,a,b);return c|0}function Hu(a){a=a|0;if(!a){a=0;return a|0}a=or(a)|0;return a|0}function Iu(a,b){a=a|0;b=b|0;Lp(a,+f[b>>2],+f[b+4>>2],+f[b+8>>2]);return}function Ju(a,b,d){a=a|0;b=b|0;d=d|0;Pa[c[(c[a>>2]|0)+36>>2]&127](a,b,d,-1);return}function Ku(a,b){a=a|0;b=+b;var c=0;c=ea;ea=ea+16|0;f[c>>2]=1.0/b;Zr(a,c)|0;ea=c;return}function Lu(a,b){a=a|0;b=+b;return sa[c[(c[a>>2]|0)+52>>2]&1](a,b,1,.01666666753590107)|0}function Mu(a){a=a|0;var b=0;b=GI(8)|0;Kv(b,a);return b|0}function Nu(a,b,d){a=a|0;b=b|0;d=d|0;Ma[c[(c[a>>2]|0)+56>>2]&127](a,b,d);return}function Ou(a,b,d){a=a|0;b=b|0;d=+d;Ja[c[(c[a>>2]|0)+36>>2]&7](a,b,d);return}function Pu(a){a=a|0;zh(a);if(!a)return;c[6748]=(c[6748]|0)+1;uc(c[a+-4>>2]|0);return}function Qu(a,b,c,d,e,f,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;B(44)}function Ru(a){a=a|0;Ki(a);if(!a)return;c[6748]=(c[6748]|0)+1;uc(c[a+-4>>2]|0);return}function Su(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;qn(a,b,c,d,e,1.0);return}function Tu(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=+d;e=e|0;f=f|0;return +ja[a&3](b|0,c|0,+d,e|0,f|0)}function Uu(a,b,c,d){a=a|0;b=b|0;c=+c;d=+d;gu(a,b,c,d);return}function Vu(a){a=a|0;c[a>>2]=9372;if(!a)return;c[6748]=(c[6748]|0)+1;uc(c[a+-4>>2]|0);return}function Wu(a,b){a=a|0;b=b|0;return c[(sC(c[a+24>>2]|0,b)|0)+64>>2]|0}function Xu(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;Ta[a&31](b|0,c|0,d|0,e|0,f|0)}function Yu(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;U(1,a|0,b|0,c|0,d|0)|0;return}function Zu(a){a=a|0;if(!(c[a+12>>2]|0)){a=0;return a|0}a=c[a+20>>2]|0;return a|0}function _u(a){a=a|0;wl(a);if(!a)return;c[6748]=(c[6748]|0)+1;uc(c[a+-4>>2]|0);return}function $u(a,b){a=a|0;b=b|0;var c=0;c=GI(64)|0;Op(c,a,b);return c|0}function av(){var a=0;a=GI(24)|0;lt(a);return a|0}function bv(a,b,d){a=a|0;b=b|0;d=+d;Da[c[(c[a>>2]|0)+16>>2]&31](a,d);return}function cv(a,b,c){a=a|0;b=b|0;c=c|0;Cn(a,b,c);return}function dv(a,b){a=a|0;b=b|0;Pa[c[(c[a>>2]|0)+36>>2]&127](a,b,2,-3);return}function ev(a){a=a|0;var b=0;b=Is()|0;of(b,a,0,16);return b|0}function fv(a,b,d){a=a|0;b=+b;d=d|0;Ga[c[(c[a>>2]|0)+32>>2]&15](a,b,d);return}function gv(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;return}function hv(a){a=a|0;Ah(a);if(!a)return;c[6748]=(c[6748]|0)+1;uc(c[a+-4>>2]|0);return}function iv(a){a=a|0;Bh(a);if(!a)return;c[6748]=(c[6748]|0)+1;uc(c[a+-4>>2]|0);return}function jv(a,b,d){a=a|0;b=b|0;d=d|0;return +(+ka[c[(c[a>>2]|0)+32>>2]&15](a,b,d))}function kv(a){a=a|0;if(!a){a=0;return a|0}a=Dr(a)|0;return a|0}function lv(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;Qa[a&1](b|0,c|0,d|0,e|0,+f)}function mv(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=+d;e=e|0;f=f|0;La[a&1](b|0,c|0,+d,e|0,f|0)}function nv(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;B(18);return 0}function ov(a,b){a=a|0;b=b|0;Hx(a+20|0,b);return}function pv(a){a=a|0;if(!(+f[a+16>>2]==0.0)){a=0;return a|0}a=+f[a+20>>2]==0.0;return a|0}function qv(a){a=a|0;c[a>>2]=5660;if(!a)return;c[6748]=(c[6748]|0)+1;uc(c[a+-4>>2]|0);return}function rv(a){a=a|0;c[a>>2]=6120;if(!a)return;c[6748]=(c[6748]|0)+1;uc(c[a+-4>>2]|0);return}function sv(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;B(8);return 0.0}function tv(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=b-d-(c>>>0>a>>>0|0)>>>0;return (C(d|0),a-c>>>0|0)|0}function uv(a,b){a=a|0;b=b|0;Ia[c[(c[a>>2]|0)+16>>2]&127](a,b);return}function vv(a,b){a=a|0;b=b|0;Ia[c[(c[a>>2]|0)+52>>2]&127](a,b);return}function wv(a,b){a=a|0;b=b|0;return ta[c[(c[a>>2]|0)+92>>2]&31](a,b)|0}function xv(a,b,d){a=a|0;b=b|0;d=+d;Ja[c[(c[a>>2]|0)+8>>2]&7](a,b,d);return}function yv(a,b){a=a|0;b=b|0;yA(a,b);return}function zv(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ib(a,b,c,d)|0;return 1}function Av(a){a=a|0;var b=0;b=((c[a+52>>2]|0)+2|0)%3|0;return +(+f[(NJ(a+28|0)|0)+(b<<2)>>2])}function Bv(a,b){a=a|0;b=b|0;Ia[c[(c[a>>2]|0)+68>>2]&127](a,b);return}function Cv(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;zr(a,b,c,d,e);return}function Dv(a,b,d){a=a|0;b=b|0;d=d|0;Ma[c[(c[a>>2]|0)+40>>2]&127](a,b,d);return}function Ev(a,b){a=a|0;b=b|0;var d=0;d=ea;ea=ea+16|0;c[d>>2]=b;xE(3312,a,d)|0;zm();O()}function Fv(a){a=+a;var b=0;g[h>>3]=a;b=c[h>>2]|0;C(c[h+4>>2]|0);return b|0}function Gv(a){a=a|0;var b=0;b=ms()|0;kf(b,a,1);return b|0}function Hv(a,b,d){a=a|0;b=+b;d=d|0;f[(c[a+144>>2]|0)+(d*284|0)+232>>2]=b;return}function Iv(a,b,d){a=a|0;b=+b;d=d|0;f[(c[a+144>>2]|0)+(d*284|0)+252>>2]=b;return}function Jv(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return}function Kv(a,b){a=a|0;b=b|0;$H(a);c[a>>2]=5968;c[a+4>>2]=b;return}function Lv(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return (C(b+d+(a+c>>>0>>>0>>0|0)>>>0|0),a+c>>>0|0)|0}function Mv(a,b){a=a|0;b=b|0;Eq(a,b);return}function Nv(a,b){a=a|0;b=b|0;Hq(a,b);return}function Ov(a,b){a=a|0;b=b|0;Pa[c[(c[a>>2]|0)+36>>2]&127](a,b,1,-1);return}function Pv(a,b,c){a=a|0;b=b|0;c=c|0;kh(b,c);return}function Qv(a,b){a=a|0;b=b|0;Um(a,b);return}function Rv(a){a=a|0;tc(a);if(!a)return;c[6748]=(c[6748]|0)+1;uc(c[a+-4>>2]|0);return}function Sv(a,b){a=a|0;b=b|0;RE(b);return}function Tv(a,b){a=a|0;b=b|0;SE(b);return}function Uv(a){a=a|0;c[a>>2]=3592;f[a+4>>2]=1.0;b[a+8>>1]=1;b[a+10>>1]=-1;return}function Vv(a,b){a=a|0;b=b|0;if((c[a+216>>2]&-2|0)==4)return;c[a+216>>2]=b;return}function Wv(a,b){a=a|0;b=b|0;$q(a,b);return}function Xv(a,b){a=a|0;b=b|0;ar(a,b);return}function Yv(a,b){a=a|0;b=b|0;Ma[c[(c[a>>2]|0)+56>>2]&127](a,b,0);return}function Zv(a,b){a=a|0;b=+b;ey(a,b);return}function _v(a,b,c){a=a|0;b=b|0;c=c|0;return Lc(a,b,c)|0}function $v(a,b){a=a|0;b=b|0;return ta[c[(c[a>>2]|0)+40>>2]&31](a,b)|0}function aw(a,b){a=a|0;b=b|0;Ia[c[(c[a>>2]|0)+60>>2]&127](a,b);return}function bw(a,b,d){a=a|0;b=b|0;d=+d;Ia[c[(c[a>>2]|0)+12>>2]&127](a,b);return}function cw(a,b){a=a|0;b=b|0;Ia[c[(c[a>>2]|0)+92>>2]&127](a,b);return}function dw(a,b,c,d,e){a=a|0;b=b|0;c=+c;d=+d;e=+e;tl(a,b,c,d,e);return}function ew(a,b){a=a|0;b=b|0;Am(a,b);return}function fw(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return wa[a&31](b|0,c|0,d|0,e|0)|0}function gw(a,b){a=a|0;b=b|0;Ia[c[(c[a>>2]|0)+32>>2]&127](a,b);return}function hw(a){a=a|0;var b=0;b=ct()|0;$h(b,a);return b|0}function iw(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;B(43)}function jw(a,b){a=a|0;b=b|0;Ia[c[(c[a>>2]|0)+40>>2]&127](a,b);return}function kw(a,b){a=a|0;b=b|0;return c[(aG(c[a+276>>2]|0,b)|0)>>2]|0}function lw(a,b,c){a=a|0;b=b|0;c=c|0;Jd(a,b,c);return}function mw(a,b,d){a=a|0;b=+b;d=d|0;f[(c[a+144>>2]|0)+(d*284|0)+256>>2]=b;return}function nw(a,b){a=a|0;b=b|0;Ia[c[(c[a>>2]|0)+84>>2]&127](a,b);return}function ow(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;Sl(a,b,c,d);return}function pw(a,b){a=a|0;b=b|0;Ia[c[(c[a>>2]|0)+28>>2]&127](a,b);return}function qw(a,b){a=a|0;b=b|0;Tx(a+72|0,b);return}function rw(a,b){a=a|0;b=+b;c[a+260>>2]=(c[a+260>>2]|0)+1;f[a+232>>2]=b;return}function sw(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return +ma[a&1](b|0,c|0,d|0,e|0)}function tw(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=+i;B(42)}function uw(a,b){a=a|0;b=b|0;Ia[c[(c[a>>2]|0)+72>>2]&127](a,b);return}function vw(a,b){a=a|0;b=b|0;BF(b);return}function ww(){var a=0;a=Is()|0;of(a,0,0,16);return a|0}function xw(a,b){a=a|0;b=b|0;Tx(a+92|0,b);return}function yw(a){a=a|0;var b=0;b=GI(284)|0;Vi(b,a);return b|0}function zw(a){a=a|0;if(!a)return;Ca[c[(c[a>>2]|0)+8>>2]&511](a);return}function Aw(a,b){a=a|0;b=+b;f[a+36>>2]=b;f[a+40>>2]=+u(+b);return}function Bw(a){a=a|0;if(!a)return;Ca[c[(c[a>>2]|0)+4>>2]&511](a);return}function Cw(a,b){a=a|0;b=+b;return +(+ha[c[(c[a>>2]|0)+16>>2]&15](a)*b)}function Dw(a,b){a=a|0;b=b|0;Ia[c[(c[a>>2]|0)+64>>2]&127](a,b);return}function Ew(a){a=a|0;Ku(a,+VA(+f[a>>2],+f[a+4>>2],+f[a+8>>2]));return}function Fw(a,b){a=a|0;b=+b;TB(a,b);return}function Gw(a,b){a=a|0;b=b|0;ox(a+868|0,b);return}function Hw(a,b){a=a|0;b=b|0;Ia[c[(c[a>>2]|0)+12>>2]&127](a,b);return}function Iw(a,b,c){a=a|0;b=b|0;c=+c;f[a+1316+(b<<2)>>2]=c;return}function Jw(a,b){a=a|0;b=+b;c[a+260>>2]=(c[a+260>>2]|0)+1;f[a+228>>2]=b;return}function Kw(a,b){a=a|0;b=b|0;Md(a,b);return}function Lw(a){a=a|0;return +(+(ra[c[(c[a>>2]|0)+36>>2]&127](a)|0))}function Mw(a,b){a=a|0;b=b|0;Ia[c[(c[a>>2]|0)+8>>2]&127](a,b);return}function Nw(a,b){a=a|0;b=b|0;Ia[c[(c[a>>2]|0)+16>>2]&127](a,b);return}function Ow(a,b){a=a|0;b=b|0;Ia[c[(c[a>>2]|0)+36>>2]&127](a,b);return}function Pw(a,b){a=a|0;b=b|0;b=(b|0)<2?b:2;c[a+176>>2]=(b|0)>0?b:0;return}function Qw(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;B(7);return 0.0}function Rw(a,b){a=a|0;b=b|0;return +(+f[(aG(c[a+12>>2]|0,b)|0)>>2])}function Sw(a,b,c){a=a|0;b=b|0;c=c|0;Jh(a,b,c);return}function Tw(a){a=a|0;var b=0;b=((NJ(c[a+236>>2]|0)|0)&2|0)==0;return (b?0:a)|0}function Uw(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;Pa[a&127](b|0,c|0,d|0,e|0)}function Vw(a,b){a=a|0;b=b|0;Ia[c[(c[a>>2]|0)+12>>2]&127](a,b);return}function Ww(a,b,c){a=a|0;b=b|0;c=c|0;uk(a,b,c);return}function Xw(a,b){a=a|0;b=b|0;return lE(c[a+12>>2]|0,b)|0}function Yw(a,b){a=a|0;b=b|0;ve(a,b);return}function Zw(a,b){a=a|0;b=b|0;Ia[c[(c[a>>2]|0)+68>>2]&127](a,b);return}function _w(b){b=b|0;a[b+16>>0]=1;c[b+12>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;return}function $w(a,b){a=a|0;b=+b;c[a+260>>2]=(c[a+260>>2]|0)+1;f[a+224>>2]=b;return}function ax(a,b,c){a=a|0;b=b|0;c=c|0;S(4,a|0,b|0,c|0)|0;return}function bx(){var a=0;a=ms()|0;kf(a,1,1);return a|0}function cx(a){a=a|0;return KF(c[a+204>>2]|0)|0}function dx(a,b,c){a=a|0;b=+b;c=+c;ay(a,b,c);return}function ex(a,b){a=a|0;b=+b;Da[c[(c[a>>2]|0)+20>>2]&31](a,b);return}function fx(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;Mk(a,b,c,d);return}function gx(a,b){a=a|0;b=b|0;ip(a,b);return}function hx(a,b){a=a|0;b=b|0;ip(a,b);return}function ix(a,b){a=a|0;b=b|0;c[b>>2]=6;c[b+4>>2]=6;return}function jx(a,b){a=a|0;b=b|0;Qv(a+788|0,b);return}function kx(a,b){a=a|0;b=+b;Da[c[(c[a>>2]|0)+16>>2]&31](a,b);return}function lx(a,b){a=a|0;b=b|0;return +(+f[(c[a+144>>2]|0)+(b*284|0)+232>>2])}function mx(){var a=0;a=GI(196)|0;_g(a,0);return a|0}function nx(a,b){a=a|0;b=b|0;Ia[c[(c[a>>2]|0)+24>>2]&127](a,b);return}function ox(a,b){a=a|0;b=b|0;ip(a,b);return}function px(a,b,d){a=a|0;b=b|0;d=d|0;c[a+20>>2]=b;c[a+28>>2]=d;return}function qx(a,b,d){a=a|0;b=b|0;d=d|0;c[a+16>>2]=b;c[a+24>>2]=d;return}function rx(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return 0}function sx(a,b,c,d,e){a=a|0;b=b|0;c=+c;d=d|0;e=+e;return sa[a&1](b|0,+c,d|0,+e)|0}function tx(a,b,c){a=a|0;b=b|0;c=+c;Yl(a,b,c);return}function ux(a,b){a=a|0;b=b|0;return c[(aG(c[a+12>>2]|0,b)|0)>>2]|0}function vx(a,b){a=a|0;b=b|0;Ia[c[(c[a>>2]|0)+64>>2]&127](a,b);return}function wx(a,b){a=a|0;b=b|0;Qz(a+112|0,b);return}function xx(a,b){a=a|0;b=b|0;return EC(c[a+12>>2]|0,b)|0}function yx(a,b,c){a=a|0;b=b|0;c=c|0;ol(a,b,c);return}function zx(a,b,c){a=a|0;b=b|0;c=+c;f[a+1340+(b<<2)>>2]=c;return}function Ax(a){a=a|0;if(!a)return;vD(a);LJ(a);return}function Bx(a,b){a=a|0;b=b|0;Ia[c[(c[a>>2]|0)+44>>2]&127](a,b);return}function Cx(a){a=a|0;var b=0;b=NJ(a+28|0)|0;return +(+f[b+(c[a+52>>2]<<2)>>2])}function Dx(a,b,c){a=a|0;b=b|0;c=c|0;return bb(a,b,c)|0}function Ex(a,b){a=a|0;b=b|0;Pw(a,b);return}function Fx(a,b,c){a=a|0;b=b|0;c=+c;Dq(a,b,c);return}function Gx(a){a=a|0;c[a>>2]=4704;ii(a+12|0);LJ(a);return}function Hx(a,b){a=a|0;b=b|0;ip(a,b);return}function Ix(a,b){a=a|0;b=b|0;_m(a,b);return}function Jx(a,b){a=a|0;b=b|0;ew(a+708|0,b);return}function Kx(a){a=a|0;if(!a)return;kH(a);LJ(a);return}function Lx(a,b,c){a=a|0;b=b|0;c=+c;f[a+1364+(b<<2)>>2]=c;return}function Mx(a,b){a=a|0;b=b|0;Tx(a+4|0,b);return}function Nx(a,b){a=a|0;b=b|0;od(a,b);return}function Ox(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;Na[a&15](b|0,c|0,d|0,+e)}function Px(a){a=+a;var b=0;b=Vs()|0;Xo(b,a);return b|0}function Qx(a,b){a=a|0;b=b|0;Du(a,b);return}function Rx(a,b){a=a|0;b=+b;f[a+132>>2]=b;return}function Sx(a,b){a=a|0;b=+b;nz(a,b);return}function Tx(a,b){a=a|0;b=b|0;Zo(a,b);return}function Ux(a){a=a|0;var b=0;b=(NJ(c[a+236>>2]|0)|0)==4;return (b?a:0)|0}function Vx(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=+d;e=e|0;Ka[a&7](b|0,c|0,+d,e|0)}function Wx(a,b,c,d,e){a=a|0;b=b|0;c=+c;d=d|0;e=e|0;Ha[a&1](b|0,+c,d|0,e|0)}function Xx(a,b){a=a|0;b=+b;f[a+128>>2]=b;return}function Yx(a,b){a=a|0;b=b|0;NC(a,b);return}function Zx(a,b){a=a|0;b=b|0;sr(a,b);return}function _x(a,b){a=a|0;b=b|0;tr(a,b);return}function $x(a,b){a=a|0;b=b|0;c[a+24>>2]=b;return}function ay(a,b,c){a=a|0;b=+b;c=+c;f[a+472>>2]=b;f[a+476>>2]=c;return}function by(a,b){a=a|0;b=b|0;return YC(a,b)|0}function cy(a,b){a=a|0;b=b|0;f[a+48>>2]=+(b|0);return}function dy(a){a=a|0;var b=0;b=ea;ea=ea+16|0;Ba[a&3]();Ev(22343,b)}function ey(b,c){b=b|0;c=+c;f[b+572>>2]=c;a[b+553>>0]=1;return}function fy(a,b){a=a|0;b=b|0;return c[(c[a+20>>2]|0)+(b<<2)>>2]|0}function gy(a){a=a|0;var b=0;b=(NJ(c[a+236>>2]|0)|0)==8;return (b?a:0)|0}function hy(a){a=a|0;if(!a)return;uF(a);LJ(a);return}function iy(a){a=a|0;return +(+XI(+f[a+16>>2]))}function jy(a){a=a|0;return ra[c[(c[a>>2]|0)+40>>2]&127](a)|0}function ky(a,b){a=a|0;b=b|0;vy(a+24|0,b);return}function ly(a){a=a|0;Us(a);_w(a);return}function my(a){a=a|0;return +(+VA(+f[a>>2],+f[a+4>>2],+f[a+8>>2]))}function ny(a,b){a=a|0;b=+b;tC(a,b);return}function oy(a,b){a=a|0;b=b|0;$C(a,b);return}function py(a,b){a=a|0;b=b|0;qC(a,b);return}function qy(a,b){a=a|0;b=+b;Da[c[(c[a>>2]|0)+44>>2]&31](a,b);return}function ry(a,b){a=a|0;b=b|0;Qp(a,b);return}function sy(a,b){a=a|0;b=+b;f[a+136>>2]=b;return}function ty(a){a=a|0;return QG(+f[a+4>>2])|0}function uy(a){a=a|0;if(!a)return;c[6748]=(c[6748]|0)+1;uc(c[a+-4>>2]|0);return}function vy(a,b){a=a|0;b=b|0;Sm(a,b);return}function wy(a,b){a=a|0;b=b|0;return (c[a+144>>2]|0)+(b*284|0)+92|0}function xy(a,b){a=a|0;b=b|0;return kw(a,b)|0}function yy(a,b,c,d,e,f){a=+a;b=+b;c=+c;d=+d;e=+e;f=+f;return +(a*d+b*e+c*f)}function zy(a){a=a|0;c[a>>2]=3836;b[a+4>>1]=1;b[a+6>>1]=-1;return}function Ay(){var a=0;a=GI(24)|0;rr(a);return a|0}function By(a,b){a=a|0;b=b|0;Tp(a,b);return}function Cy(a,b){a=a|0;b=+b;pD(a,b);return}function Dy(a,b){a=a|0;b=b|0;return IE(c[a+12>>2]|0,b)|0}function Ey(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return}function Fy(a){a=a|0;f[a>>2]=.30000001192092896;f[a+4>>2]=1.0;f[a+8>>2]=0.0;return}function Gy(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;B(17);return 0}function Hy(a,b){a=a|0;b=+b;HC(a,b);return}function Iy(a){a=a|0;Ca[c[(c[a>>2]|0)+44>>2]&511](a);return}function Jy(a,b){a=a|0;b=b|0;Kq(a+4|0,b);return}function Ky(a){a=a|0;dr(a);LJ(a);return}function Ly(a){a=a|0;return nG(c[a+204>>2]|0)|0}function My(a,b){a=a|0;b=+b;wD(a,b);return}function Ny(a,b){a=a|0;b=+b;aA(a,b);return}function Oy(a,b){a=a|0;b=+b;xD(a,b);return}function Py(a,b){a=a|0;b=+b;bA(a,b);return}function Qy(a,b){a=a|0;b=b|0;Ms(a,b);return}function Ry(a,b){a=a|0;b=b|0;Up(a,b);return}function Sy(a){a=a|0;return +(+XI(+f[a+112>>2]))}function Ty(b,c){b=b|0;c=c|0;a[b+32>>0]=c&1;return}function Uy(a){a=a|0;return ra[c[(c[a>>2]|0)+96>>2]&127](a)|0}function Vy(a){a=a|0;return hG(c[a+8>>2]|0)|0}function Wy(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return va[a&63](b|0,c|0,d|0)|0}function Xy(a,b){a=a|0;b=b|0;return +(+Em(a,b))}function Yy(a,b){a=a|0;b=b|0;Jh(a,b,1);return}function Zy(a,b){a=a|0;b=b|0;SC(a,b);return}function _y(a){a=a|0;if(!a)a=0;else a=(yi(a,3528)|0)!=0&1;return a|0}function $y(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;_p(a,c,d,e,b);return}function az(a){a=a|0;Wi(a);LJ(a);return}function bz(a,b){a=a|0;b=b|0;Ql(a,b);return}function cz(a,b){a=a|0;b=+b;f[a+116>>2]=b;return}function dz(a){a=a|0;return ra[c[(c[a>>2]|0)+20>>2]&127](a)|0}function ez(a,b){a=a|0;b=b|0;wB(a,b,+QE(b));return}function fz(a){a=a|0;c[a>>2]=4704;ii(a+12|0);return}function gz(a,b){a=a|0;b=b|0;oD(a,b);return}function hz(a,b){a=a|0;b=b|0;Dt(a,b);return}function iz(){var a=0;a=GI(100)|0;Wl(a);return a|0}function jz(a,b){a=a|0;b=+b;f[a+112>>2]=b;return}function kz(a,b){a=a|0;b=+b;f[a+124>>2]=b;return}function lz(a,b){a=a|0;b=b|0;ZC(a,b);return}function mz(a,b){a=a|0;b=b|0;return c[(c[a+220>>2]|0)+(b<<2)>>2]|0}function nz(b,c){b=b|0;c=+c;f[b+572>>2]=c;a[b+553>>0]=0;return}function oz(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return +ka[a&15](b|0,c|0,d|0)}function pz(a,b){a=a|0;b=b|0;_C(a,b);return}function qz(a,b){a=a|0;b=b|0;return bb(a,b,8192)|0}function rz(b,c){b=b|0;c=c|0;a[b+120>>0]=c&1;return}function sz(a){a=a|0;Ca[c[(c[a>>2]|0)+24>>2]&511](a);return}function tz(){var a=0;a=GI(12)|0;Fy(a);return a|0}function uz(a){a=a|0;if(!a)return;Eu(a);LJ(a);return}function vz(a){a=a|0;zy(a);c[a>>2]=3812;return}function wz(a){a=a|0;return SG(a)|0}function xz(a,b){a=a|0;b=+b;rw(a,b);return}function yz(a,b){a=a|0;b=b|0;return +(+me(a,b))}function zz(a){a=a|0;return +(+XI(+f[a+120>>2]))}function Az(){var a=0;a=GI(4)|0;hC(a);return a|0}function Bz(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;return}function Cz(a){a=a|0;return MG(c[a+204>>2]|0)|0}function Dz(a,b){a=a|0;b=+b;aE(a,b);return}function Ez(a,b){a=a|0;b=b|0;Gg(a,b);return}function Fz(a){a=a|0;Bi(a);return}function Gz(a,b){a=a|0;b=+b;_D(a,b);return}function Hz(a){a=a|0;return ra[c[(c[a>>2]|0)+28>>2]&127](a)|0}function Iz(a){a=a|0;return oG(a)|0}function Jz(a,b){a=a|0;b=b|0;return Wu(a,b)|0}function Kz(){var a=0;a=GI(4)|0;c[a>>2]=0;OF(a);return a|0}function Lz(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;return ua[a&7](b|0,c|0,+d)|0}function Mz(a){a=a|0;return +(+f[a+132>>2])}function Nz(a){a=a|0;return rA(c[a+68>>2]|0)|0}function Oz(a){a=a|0;return ra[c[(c[a>>2]|0)+48>>2]&127](a)|0}function Pz(a,b){a=a|0;b=b|0;ip(a,b);return}function Qz(a,b){a=a|0;b=b|0;fp(a,b);return}function Rz(b,c){b=b|0;c=c|0;a[b+80>>0]=c&1;return}function Sz(a,b){a=a|0;b=b|0;yD(a,b);return}function Tz(a){a=a|0;return +(+XI(+f[a+232>>2]))}function Uz(a){a=a|0;return +(+XI(+f[a+448>>2]))}function Vz(a){a=a|0;return +(+f[a+128>>2])}function Wz(a,b){a=a|0;b=b|0;return (c[a+144>>2]|0)+(b*284|0)|0}function Xz(a,b){a=a|0;b=b|0;DD(a,b);return}function Yz(a){a=a|0;c[a+4>>2]=(c[a+4>>2]|0)+-1;return}function Zz(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;B(41)}function _z(a){a=a|0;return +(+XI(+f[a+444>>2]))}function $z(a){a=a|0;return nD(a)|0}function aA(a,b){a=a|0;b=+b;f[a+196>>2]=+Fs(b);return}function bA(a,b){a=a|0;b=+b;f[a+192>>2]=+Fs(b);return}function cA(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ma[a&127](b|0,c|0,d|0)}function dA(a,b){a=a|0;b=b|0;Kq(a+92|0,b);return}function eA(a){a=a|0;Ti(a);LJ(a);return}function fA(a,b){a=a|0;b=+b;f[a+268>>2]=b;return}function gA(a){a=a|0;return +(+XI(+f[a+80>>2]))}function hA(a,b){a=a|0;b=b|0;zj(a,b);return}function iA(a,b){a=a|0;b=b|0;return wH(c[a+12>>2]|0,b)|0}function jA(a){a=a|0;return xH(a)|0}function kA(a,b){a=a|0;b=+b;Jw(a,b);return}function lA(a){a=a|0;return +(+XI(+f[a+228>>2]))}function mA(a,b){a=a|0;b=+b;f[a+96>>2]=b;return}function nA(a,b,c){a=a|0;b=b|0;c=+c;f[a+20+(b<<2)>>2]=c;return}function oA(a){a=a|0;return +(+ha[c[(c[a>>2]|0)+48>>2]&15](a))}function pA(a,c){a=a|0;c=c|0;b[a+10>>1]=c;return}function qA(a,c){a=a|0;c=c|0;b[a+8>>1]=c;return}function rA(a){a=a|0;return ra[c[(c[a>>2]|0)+36>>2]&127](a)|0}function sA(a){a=a|0;var b=0;b=ea;ea=ea+a|0;ea=ea+15&-16;return b|0}function tA(a,b){a=a|0;b=b|0;Rr(a,b);return}function uA(a,b){a=a|0;b=b|0;Ic(a,b);return}function vA(a,b){a=a|0;b=b|0;$D(a,b);return}function wA(a){a=a|0;return +(+f[a+136>>2])}function xA(b){b=b|0;return (a[b+32>>0]&1)!=0|0}function yA(b,c){b=b|0;c=c|0;a[b+170>>0]=c&1;return}function zA(a,b){a=a|0;b=b|0;R(3,a|0,b|0)|0;return}function AA(a,b,d){a=a|0;b=b|0;d=d|0;if(!(c[a>>2]&32))Kj(b,d,a);return}function BA(a,b){a=a|0;b=b|0;Kr(a,b);return}function CA(a,b){a=a|0;b=b|0;en(a+288|0,b);return}function DA(a,b){a=a|0;b=b|0;return Tw(b)|0}function EA(a,b){a=a|0;b=+b;f[a+108>>2]=b;return}function FA(a,c){a=a|0;c=c|0;b[a+12>>1]=c;return}function GA(a,b){a=a|0;b=b|0;Gg(b,a);return}function HA(a,b){a=a|0;b=+b;f[a+272>>2]=b;return}function IA(a){a=a|0;return +(+XI(+f[a+224>>2]))}function JA(a){a=a|0;return CH(a)|0}function KA(a){a=a|0;return DH(a)|0}function LA(a){a=a|0;return IH(a)|0}function MA(a){a=a|0;if(!a)return;QH(a);LJ(a);return}function NA(a,c){a=a|0;c=c|0;b[a+4>>1]=c;return}function OA(a,c){a=a|0;c=c|0;b[a+14>>1]=c;return}function PA(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;B(16);return 0}function QA(a){a=a|0;Yz(a);return}function RA(a,b){a=a|0;b=b|0;hA(a,b);return}function SA(a,b){a=a|0;b=b|0;return gy(b)|0}function TA(a,b){a=a|0;b=b|0;c[a+44>>2]=b&1;return}function UA(a,c){a=a|0;c=c|0;b[a+6>>1]=c;return}function VA(a,b,c){a=+a;b=+b;c=+c;return +(+AJ(+iB(a,b,c)))}function WA(a,b,c,d){a=a|0;b=b|0;c=+c;d=d|0;Ga[a&15](b|0,+c,d|0)}function XA(a,b){a=a|0;b=b|0;if(!a)a=0;else a=_j(a,b)|0;return a|0}function YA(a,b){a=a|0;b=+b;f[a+220>>2]=b;return}function ZA(a,b){a=a|0;b=+b;f[a+100>>2]=b;return}function _A(b){b=b|0;return (a[b+120>>0]&1)!=0|0}function $A(a,b){a=a|0;b=b|0;c[a+112>>2]=b;return}function aB(b,c){b=b|0;c=c|0;a[b+24>>0]=c&1;return}function bB(a){a=a|0;return ~~+f[a+48>>2]|0}function cB(b,c){b=b|0;c=c|0;a[b+180>>0]=c&1;return}function dB(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;Ja[a&7](b|0,c|0,+d)}function eB(a,b){a=a|0;b=+b;f[a+224>>2]=b;return}function fB(a,b){a=a|0;b=+b;$w(a,b);return}function gB(a){a=a|0;return oC(c[a+216>>2]|0)|0}function hB(a,b){a=a|0;b=b|0;Pz(a,b);return}function iB(a,b,c){a=+a;b=+b;c=+c;return +(+yy(a,b,c,a,b,c))}function jB(a){a=+a;if(!(a<-1.0)){if(a>1.0)a=1.0}else a=-1.0;return +(+w(+a))}function kB(a){a=a|0;return +(+f[a+116>>2])}function lB(a){a=a|0;return +(+Qq(a))}function mB(b,c){b=b|0;c=c|0;a[b+16>>0]=c&1;return}function nB(a){a=a|0;return oE(a)|0}function oB(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=+d;e=e|0;f=f|0;B(4);return 0.0}function pB(a,b){a=a|0;b=+b;f[a+276>>2]=b;return}function qB(a,b){a=a|0;b=+b;f[a+204>>2]=b;return}function rB(a,b){a=a|0;b=+b;f[a+208>>2]=b;return}function sB(a){a=a|0;return +(+f[a+112>>2])}function tB(a){a=a|0;return +(+f[a+124>>2])}function uB(a,b,c){a=a|0;b=+b;c=c|0;return}function vB(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return}function wB(a,b,c){a=a|0;b=b|0;c=+c;rn(a,b,1.0/c);return}function xB(a){a=a|0;ge(a);LJ(a);return}function yB(a,b){a=a|0;b=b|0;Jf(a,b);return}function zB(a){a=a|0;return NJ(c[a+8>>2]|0)|0}function AB(a,b){a=a|0;b=b|0;R(5,a|0,b|0)|0;return}function BB(a,b){a=a|0;b=+b;f[a+216>>2]=b;return}function CB(b){b=b|0;return (a[b+80>>0]&1)!=0|0}function DB(a){a=a|0;if(!a)return;uy(a);return}function EB(a,b){a=a|0;b=b|0;c[a+36>>2]=b;return}function FB(a,b){a=a|0;b=b|0;c[a+32>>2]=b;return}function GB(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Yd(a,b,c,d,0)|0}function HB(b,c){b=b|0;c=c|0;a[b+260>>0]=c&1;return}function IB(b,c){b=b|0;c=c|0;a[b+25>>0]=c&1;return}function JB(a,b,c){a=a|0;b=+b;c=c|0;return}function KB(a,b){a=a|0;b=b|0;c[a+72>>2]=b;return}function LB(a){a=a|0;Nt(a,+QE(a))|0;return}function MB(a,b,c,d){a=a|0;b=b|0;c=+c;d=+d;Ea[a&7](b|0,+c,+d)}function NB(a){a=a|0;return +(+fI(+f[a+12>>2]))}function OB(a,b){a=a|0;b=b|0;c[a+8>>2]=b;return}function PB(a){a=a|0;c[a>>2]=0;qD(a);return}function QB(a){a=a|0;return YH(a)|0}function RB(a){a=a|0;return NJ(c[a+84>>2]|0)|0}function SB(a,b){a=a|0;b=b|0;return +(+ps(a,b))}function TB(a,b){a=a|0;b=+b;f[a+16>>2]=b;return}function UB(){var a=0;a=ea;ea=ea+16|0;Ev(22214,a)}function VB(a,b){a=a|0;b=b|0;c[a+216>>2]=b;return}function WB(b,c){b=b|0;c=c|0;a[b+26>>0]=c&1;return}function XB(b,c){b=b|0;c=c|0;a[b+84>>0]=c&1;return}function YB(a){a=a|0;Bj(a);LJ(a);return}function ZB(a){a=a|0;Xj(a);LJ(a);return}function _B(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;B(40)}function $B(a){a=a|0;return (a&255)<<24|(a>>8&255)<<16|(a>>16&255)<<8|a>>>24|0}function aC(a){a=a|0;return gI(a)|0}function bC(a){a=a|0;return NJ(c[a+88>>2]|0)|0}function cC(a){a=a|0;return HE(a)|0}function dC(a){a=a|0;return (c[a+116>>2]|0)+4|0}function eC(a){a=a|0;return NJ(c[a+748>>2]|0)|0}function fC(a,b){a=a|0;b=b|0;c[a+4>>2]=b;return}function gC(a,b){a=a|0;b=b|0;$l(a+28|0,b);return}function hC(a){a=a|0;iH(a);c[a>>2]=3732;return}function iC(a,b,c){a=a|0;b=b|0;c=c|0;return ta[a&31](b|0,c|0)|0}function jC(a,b){a=a|0;b=+b;f[a+244>>2]=b;return}function kC(a,b){a=a|0;b=+b;f[a+240>>2]=b;return}function lC(a){a=a|0;return +(+f[a+104>>2])}function mC(a,b){a=a|0;b=b|0;return Vk(a,b)|0}function nC(a){a=a|0;return oI(a)|0}function oC(a){a=a|0;a=NJ(a)|0;return (a|0)!=2&(a|0)!=5|0}function pC(a){a=a|0;Cj(a);LJ(a);return}function qC(b,c){b=b|0;c=c|0;a[b+524>>0]=c&1;return}function rC(a,b){a=a|0;b=b|0;return a+(b*96|0)|0}function sC(a,b){a=a|0;b=b|0;return a+(b*80|0)|0}function tC(a,b){a=a|0;b=+b;f[a+248>>2]=b;return}function uC(a,b){a=a|0;b=+b;f[a+212>>2]=b;return}function vC(a,b){a=a|0;b=+b;f[a+228>>2]=b;return}function wC(a){a=a|0;return +(+f[a+268>>2])}function xC(a){a=a|0;return UE(a)|0}function yC(a){a=a|0;return kI(a)|0}function zC(a,b){a=a|0;b=b|0;return ao(a,b)|0}function AC(a,b){a=a|0;b=b|0;return $n(a,b)|0}function BC(a,b){a=a|0;b=b|0;return +(+Ho(a,b))}function CC(a){a=a|0;return +(+Cx(a))}function DC(a){a=a|0;return ((WE(a)|0)^1)&1|0}function EC(a,b){a=a|0;b=b|0;return a+(b*104|0)|0}function FC(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;B(39)}function GC(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=+d;e=e|0;f=f|0;B(33)}function HC(a,b){a=a|0;b=+b;f[a+252>>2]=b;return}function IC(a){a=a|0;return +(+f[a+96>>2])}function JC(a,b){a=a|0;b=b|0;return +(+f[a+20+(b<<2)>>2])}function KC(a){a=a|0;return xI(a)|0}function LC(a){a=a|0;return (c[a+44>>2]|0)!=0|0}function MC(a){a=a|0;ii(a);LJ(a);return}function NC(a,b){a=a|0;b=b|0;c[a+84>>2]=b;return}function OC(a,b){a=a|0;b=b|0;return Pp(a,b)|0}function PC(a){a=a|0;return nI(a)|0}function QC(a){a=a|0;return NJ(c[a+128>>2]|0)|0}function RC(b){b=b|0;return (a[b+24>>0]&1)!=0|0}function SC(b,c){b=b|0;c=c|0;a[b+552>>0]=c&1;return}function TC(a,b,c){a=a|0;b=b|0;c=c|0;return 0}function UC(a){a=a|0;return xG(a)|0}function VC(a){a=a|0;return NJ(c[a+188>>2]|0)|0}function WC(a){a=a|0;return +(+f[a+108>>2])}function XC(a){a=a|0;Dj(a);LJ(a);return}function YC(a,b){a=a|0;b=b|0;return a+4+(b*184|0)|0}function ZC(b,c){b=b|0;c=c|0;a[b+736>>0]=c&1;return}function _C(a,b){a=a|0;b=b|0;c[a+204>>2]=b;return}function $C(a,b){a=a|0;b=b|0;c[a+88>>2]=b;return}function aD(a,b,c,d,e,f){a=a|0;b=+b;c=+c;d=d|0;e=e|0;f=f|0;B(24)}function bD(a,b){a=a|0;b=+b;f[a+232>>2]=b;return}function cD(a,b){a=a|0;b=+b;f[a+280>>2]=b;return}function dD(a,b){a=a|0;b=+b;f[a+236>>2]=b;return}function eD(a){a=a|0;return +(+f[a+272>>2])}function fD(a){a=a|0;return NJ(c[a+116>>2]|0)|0}function gD(a){a=a|0;return NJ(c[a+120>>2]|0)|0}function hD(a,b){a=a|0;b=+b;return Nt(a,b)|0}function iD(a){a=a|0;return NJ(c[a+744>>2]|0)|0}function jD(a){a=a|0;return NJ(c[a+740>>2]|0)|0}function kD(b){b=b|0;return (a[b+16>>0]&1)!=0|0}function lD(a){a=a|0;return b[a+10>>1]|0}function mD(a){a=a|0;return b[a+8>>1]|0}function nD(a){a=a|0;return NJ(c[a+268>>2]|0)|0}function oD(b,c){b=b|0;c=c|0;a[b+21>>0]=c&1;return}function pD(a,b){a=a|0;b=+b;f[a+684>>2]=b;return}function qD(a){a=a|0;c[a>>2]=c[a>>2]|1;return}function rD(a){a=a|0;return NJ(c[a+192>>2]|0)|0}function sD(a){a=a|0;return NJ(c[a+204>>2]|0)|0}function tD(a){a=a|0;return NJ(c[a+24>>2]|0)|0}function uD(a){a=a|0;return NJ(c[a+68>>2]|0)|0}function vD(a){a=a|0;hs(a);return}function wD(a,b){a=a|0;b=+b;f[a+188>>2]=b;return}function xD(a,b){a=a|0;b=+b;f[a+184>>2]=b;return}function yD(a,b){a=a|0;b=b|0;c[a+240>>2]=b;return}function zD(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;B(6);return 0.0}function AD(a){a=a|0;return +(+f[a+220>>2])}function BD(a){a=a|0;return +(+f[a+100>>2])}function CD(a){a=a|0;return b[a+12>>1]|0}function DD(b,c){b=b|0;c=c|0;a[b+737>>0]=c&1;return}function ED(a,b){a=a|0;b=+b;f[a+256>>2]=b;return}function FD(a){a=a|0;return +(+f[a+224>>2])}function GD(a,b){a=a|0;b=b|0;return Mr(a,b)|0}function HD(a,b){a=a|0;b=b|0;return Lr(a,b)|0}function ID(a){a=a|0;return pg(a)|0}function JD(a){a=a|0;return NJ(c[a+480>>2]|0)|0}function KD(a){a=a|0;return NJ(c[a+124>>2]|0)|0}function LD(a){a=a|0;return b[a+4>>1]|0}function MD(a){a=a|0;return b[a+14>>1]|0}function ND(a,b){a=a|0;b=b|0;c[a+84>>2]=b;return}function OD(a,b){a=a|0;b=b|0;c[a+88>>2]=b;return}function PD(a,b){a=a|0;b=b|0;c[a+92>>2]=b;return}function QD(a,b){a=a|0;b=b|0;c[a+100>>2]=b;return}function RD(a,b){a=a|0;b=b|0;c[a+96>>2]=b;return}function SD(a){a=a|0;return (c[a+48>>2]|0)==1|0}function TD(a){a=a|0;Ej(a);LJ(a);return}function UD(a,b,c,d){a=a|0;b=b|0;c=+c;d=d|0;return}function VD(b){b=b|0;return (a[b+260>>0]&1)!=0|0}function WD(a){a=a|0;return NJ(c[a+240>>2]|0)|0}function XD(b){b=b|0;return (a[b+25>>0]&1)!=0|0}function YD(a){a=a|0;return b[a+6>>1]|0}function ZD(a){a=a|0;return (c[a+92>>2]|0)+4|0}function _D(a,b){a=a|0;b=+b;f[a+440>>2]=b;return}function $D(a,b){a=a|0;b=b|0;c[a+240>>2]=b;return}function aE(a,b){a=a|0;b=+b;f[a+104>>2]=b;return}function bE(a,b,c){a=a|0;b=b|0;c=c|0;Ia[a&127](b|0,c|0)}function cE(a,b,c){a=a|0;b=b|0;c=+c;return +ia[a&1](b|0,+c)}function dE(a,b,c,d,e){a=a|0;b=b|0;c=+c;d=d|0;e=e|0;B(2);return 0.0}function eE(a){a=a|0;return +(+f[a+276>>2])}function fE(a){a=a|0;return +(+f[a+208>>2])}function gE(a){a=a|0;return c[a+112>>2]|0}function hE(a){a=a|0;return +(+Av(a))}function iE(a,b){a=a|0;b=b|0;c[a+16>>2]=b;return}function jE(a,b){a=a|0;b=+b;f[a+64>>2]=b;return}function kE(a,b){a=a|0;b=+b;f[a+68>>2]=b;return}function lE(a,b){a=a|0;b=b|0;return a+(b<<5)|0}function mE(a){a=a|0;return NJ(c[a+52>>2]|0)|0}function nE(a){a=a|0;if(!a)return;LJ(a);return}function oE(a){a=a|0;return NJ(c[a+16>>2]|0)|0}function pE(a){a=a|0;return +(+f[a+216>>2])}function qE(a,b){a=a|0;b=+b;pG(a,b);return}function rE(b){b=b|0;return (a[b+26>>0]&1)!=0|0}function sE(b){b=b|0;return (a[b+84>>0]&1)!=0|0}function tE(a,b){a=a|0;b=+b;f[a+80>>2]=b;return}function uE(a,b){a=a|0;b=+b;f[a+76>>2]=b;return}function vE(a){a=a|0;return +(+f[a+28>>2]*+f[a+12>>2])}function wE(a,b,c){a=a|0;b=b|0;c=c|0;return}function xE(a,b,c){a=a|0;b=b|0;c=c|0;return Ui(a,b,c)|0}function yE(a){a=a|0;return +(+f[a+248>>2])}function zE(a){a=a|0;return zI(a)|0}function AE(a,b){a=a|0;b=+b;f[a+60>>2]=b;return}function BE(a,b){a=a|0;b=+b;f[a+52>>2]=b;return}function CE(a,b){a=a|0;b=+b;f[a+56>>2]=b;return}function DE(a,b){a=a|0;b=b|0;c[a+20>>2]=b;return}function EE(a,b,c){a=a|0;b=b|0;c=+c;return 0}function FE(a){a=a|0;return +(+f[a+204>>2])}function GE(a){a=a|0;yq(a);return}function HE(a){a=a|0;return NJ(c[a+136>>2]|0)|0}function IE(a,b){a=a|0;b=b|0;return a+(b*36|0)|0}function JE(a,b){a=a|0;b=b|0;return}function KE(a,b){a=a|0;b=+b;NG(a,b);return}function LE(a,b){a=a|0;b=+b;OG(a,b);return}function ME(a,b){a=a|0;b=+b;hH(a,b);return}function NE(a){a=a|0;return c[a+36>>2]|0}function OE(a){a=a|0;return c[a+32>>2]|0}function PE(a){a=a|0;return (c[a+48>>2]|0)+4|0}function QE(a){a=a|0;return +(+AJ(+cG(a)))}function RE(a){a=a|0;c[6720]=a;return}function SE(a){a=a|0;c[6719]=a;return}function TE(a){a=a|0;return a+44|0}function UE(a){a=a|0;return NJ(c[a+12>>2]|0)|0}function VE(a){a=a|0;return c[a+68>>2]|0}function WE(b){b=b|0;return (a[b>>0]|0)!=0|0}function XE(a,b,c){a=a|0;b=b|0;c=+c;Da[a&31](b|0,+c)}function YE(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;B(38)}function ZE(a){a=a|0;return +(+f[(rJ(a)|0)>>2])}function _E(a){a=a|0;return +(+f[(sJ(a)|0)>>2])}function $E(a){a=a|0;return +(+f[(qJ(a)|0)>>2])}function aF(a){a=a|0;return MI(a)|0}function bF(a){a=a|0;LB(a);return}function cF(a){a=a|0;return c[a+8>>2]|0}function dF(a,b){a=a|0;b=+b;f[a+92>>2]=b;return}function eF(a,b){a=a|0;b=+b;f[a+40>>2]=b;return}function fF(a,b){a=a|0;b=+b;f[a+36>>2]=b;return}function gF(a,b){a=a|0;b=+b;f[a+48>>2]=b;return}function hF(a){a=a|0;return a+60|0}function iF(a){a=a|0;return c[a+200>>2]|0}function jF(a){a=a|0;return +(+f[a+244>>2])}function kF(a){a=a|0;return +(+f[a+240>>2])}function lF(a){a=a|0;return +(+cG(a))}function mF(a,b){a=a|0;b=+b;f[a+24>>2]=b;return}function nF(a,b){a=a|0;b=+b;f[a+20>>2]=b;return}function oF(a,b){a=a|0;b=+b;f[a+32>>2]=b;return}function pF(a,b){a=a|0;b=+b;f[a+16>>2]=b;return}function qF(a,b){a=a|0;b=+b;f[a+28>>2]=b;return}function rF(a,b){a=a|0;b=b|0;c[a>>2]=b;return}function sF(a){a=a|0;return c[a+212>>2]|0}function tF(a){a=a|0;c[a+192>>2]=0;return}function uF(a){a=a|0;ly(a);return}function vF(a,b,c){a=a|0;b=b|0;c=c|0;return}function wF(a,b){a=a|0;b=+b;f[a+72>>2]=b;return}function xF(a){a=a|0;return +(+f[a+212>>2])}function yF(a){a=a|0;return +(+f[a+228>>2])}function zF(a,b){a=a|0;b=+b;f[a+88>>2]=b;return}function AF(a){a=a|0;return c[a+24>>2]|0}function BF(a){a=a|0;c[6722]=a;return}function CF(a){a=a|0;_w(a);return}function DF(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;B(35)}function EF(a,b,c,d,e){a=a|0;b=b|0;c=+c;d=d|0;e=e|0;B(30)}function FF(a){a=a|0;return +(+f[a+252>>2])}function GF(a){a=a|0;return sJ(a)|0}function HF(a){a=a|0;return +(+QE(a))}function IF(a){a=a|0;return a+112|0}function JF(a,b,c){a=a|0;b=b|0;c=c|0;return 0.0}function KF(a){a=a|0;return (a&3|0)!=0|0}function LF(a){a=a|0;return ((a|0)==0?1:a<<1)|0}function MF(a){a=a|0;return c[a+136>>2]|0}function NF(a,b){a=a|0;b=+b;f[a+44>>2]=b;return}function OF(a){a=a|0;vI(a);c[a>>2]=3860;return}function PF(a){a=a|0;return NJ(c[a+4>>2]|0)|0}function QF(a){a=a|0;return a+156|0}function RF(a){a=a|0;return Q(6,a|0)|0}function SF(a){a=a|0;Dh(a);LJ(a);return}function TF(a){a=a|0;Mo(a);LJ(a);return}function UF(a){a=a|0;Zi(a);LJ(a);return}function VF(a){a=a|0;return +(+f[a+232>>2])}function WF(a){a=a|0;return +(+f[a+280>>2])}function XF(a){a=a|0;return +(+f[a+236>>2])}function YF(a){a=a|0;return 348}function ZF(a){a=a|0;return c[a+12>>2]|0}function _F(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;B(15);return 0}function $F(a){a=a|0;Ew(a);return}function aG(a,b){a=a|0;b=b|0;return a+(b<<2)|0}function bG(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;B(5);return 0.0}function cG(a){a=a|0;return +(+Ho(a,a))}function dG(a){a=a|0;return (a?31-(A(a^a-1)|0)|0:32)|0}function eG(a){a=a|0;return +(+f[a+256>>2])}function fG(a){a=a|0;return +(+f[(NJ(a)|0)>>2])}function gG(a){a=a|0;return +(+f[a>>2])}function hG(a){a=a|0;return (a|0)!=0|0}function iG(a,b){a=a|0;b=b|0;return ra[a&127](b|0)|0}function jG(a){a=a|0;E(a|0)|0;JJ()}function kG(a){a=a|0;return a+64|0}function lG(a){a=a|0;return +(+f[a+64>>2])}function mG(a){a=a|0;return +(+f[a+68>>2])}function nG(a){a=a|0;return (a&2|0)!=0|0}function oG(a){a=a|0;return a+20|0}function pG(a,b){a=a|0;b=+b;f[a+12>>2]=b;return}function qG(a){a=a|0;return a+172|0}function rG(a){a=a|0;return c[a+4>>2]|0}function sG(a){a=a|0;return c[a+84>>2]|0}function tG(a){a=a|0;return c[a+88>>2]|0}function uG(a){a=a|0;return c[a+92>>2]|0}function vG(a){a=a|0;return c[a+100>>2]|0}function wG(a){a=a|0;return 252}function xG(a){a=a|0;return c[a+240>>2]|0}function yG(a,b,c,d){a=a|0;b=+b;c=c|0;d=+d;B(11);return 0}function zG(a){a=a|0;return a+52|0}function AG(a){a=a|0;return +(+f[a+80>>2])}function BG(a){a=a|0;return 28}function CG(a){a=a|0;return c[a+72>>2]|0}function DG(a,b){a=a|0;b=b|0;return +ha[a&15](b|0)}function EG(a){a=a|0;return c[a+16>>2]|0}function FG(a){a=a|0;return +(+f[a+76>>2])}function GG(a){a=a|0;return +(+f[a+60>>2])}function HG(a){a=a|0;return +(+f[a+52>>2])}function IG(a){a=a|0;return +(+f[a+56>>2])}function JG(a){a=a|0;return a+108|0}function KG(a){a=a|0;return 212}function LG(a){a=a|0;return c[a+96>>2]|0}function MG(a){a=a|0;return (a&1|0)!=0|0}function NG(a,b){a=a|0;b=+b;f[a+8>>2]=b;return}function OG(a,b){a=a|0;b=+b;f[a+4>>2]=b;return}function PG(a){a=a|0;return a+16|0}function QG(a){a=+a;return a<1.0|0}function RG(a,b){a=a|0;b=b|0;return 1}function SG(a){a=a|0;return a+324|0}function TG(a,b){a=a|0;b=b|0;ea=a;fa=b}function UG(a){a=a|0;return a+188|0}function VG(a){a=a|0;return c[a+20>>2]|0}function WG(a){a=a|0;return 204}function XG(a,b){a=a|0;b=b|0;return}function YG(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;B(34)}function ZG(a){a=a|0;return a+36|0}function _G(a){a=a|0;return +(+f[a+92>>2])}function $G(a){a=a|0;return +(+f[a+44>>2])}function aH(a){a=a|0;return +(+f[a+40>>2])}function bH(a){a=a|0;return +(+f[a+36>>2])}function cH(a){a=a|0;return +(+f[a+48>>2])}function dH(a){a=a|0;return 64}function eH(a){a=a|0;return 220}function fH(a){a=a|0;return 256} +function _a(d,g){d=d|0;g=g|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,t=0.0,u=0,v=0.0,w=0.0,x=0.0,y=0.0,z=0,A=0,B=0,C=0,D=0.0,E=0.0,F=0,G=0,H=0.0,I=0,J=0.0,K=0.0,L=0.0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0.0,_=0,$=0,aa=0,ba=0,ca=0,da=0,fa=0,ga=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0;ma=ea;ea=ea+192|0;i=c[d+52>>2]|0;if(i|0?(Ca[c[c[i>>2]>>2]&511](i),j=c[d+52>>2]|0,j|0):0){c[6748]=(c[6748]|0)+1;uc(c[j+-4>>2]|0)}c[6747]=(c[6747]|0)+1;i=kb(151)|0;if(!i)i=0;else{c[(i+4+15&-16)+-4>>2]=i;i=i+4+15&-16}c[i>>2]=10664;a[i+20>>0]=1;c[i+16>>2]=0;c[i+8>>2]=0;c[i+12>>2]=0;a[i+40>>0]=1;c[i+36>>2]=0;c[i+28>>2]=0;c[i+32>>2]=0;a[i+60>>0]=1;c[i+56>>2]=0;c[i+48>>2]=0;c[i+52>>2]=0;c[d+52>>2]=i;k=0;o=0;n=0;la=0;I=0;while(1){if((o|0)>=(ra[c[(c[d>>2]|0)+96>>2]&127](d)|0))break;do if((I|0)==(n|0)){j=(n|0)==0?1:n<<1;if((n|0)<(j|0)){if((j|0)!=0?(c[6747]=(c[6747]|0)+1,u=kb((j<<4|3)+16|0)|0,(u|0)!=0):0){c[(u+4+15&-16)+-4>>2]=u;l=u+4+15&-16}else l=0;if((n|0)<=0){if(!la){m=n;k=l;i=l;break}}else{i=0;do{ka=l+(i<<4)|0;ja=la+(i<<4)|0;c[ka>>2]=c[ja>>2];c[ka+4>>2]=c[ja+4>>2];c[ka+8>>2]=c[ja+8>>2];c[ka+12>>2]=c[ja+12>>2];i=i+1|0}while((i|0)!=(n|0))}c[6748]=(c[6748]|0)+1;uc(c[la+-4>>2]|0);m=n;k=l;i=l}else{m=n;j=n;i=la}}else{m=I;j=n;i=la}while(0);n=i+(I<<4)|0;c[n>>2]=c[ma>>2];c[n+4>>2]=c[ma+4>>2];c[n+8>>2]=c[ma+8>>2];c[n+12>>2]=c[ma+12>>2];Ma[c[(c[d>>2]|0)+108>>2]&127](d,o,n);o=o+1|0;n=j;la=i;I=m+1|0}a[ma+124+16>>0]=1;ka=ma+124+12|0;c[ka>>2]=0;c[ma+124+4>>2]=0;c[ma+124+8>>2]=0;a[ma+124+36>>0]=1;ja=ma+124+32|0;c[ja>>2]=0;c[ma+124+24>>2]=0;c[ma+124+28>>2]=0;a[ma+124+56>>0]=1;ia=ma+124+52|0;c[ia>>2]=0;c[ma+124+44>>2]=0;c[ma+124+48>>2]=0;if(g){if((I|0)>0){G=0;j=0;l=0;k=0;while(1){i=G;G=G+1|0;a:do if((G|0)<(I|0)){C=la+(i<<4)|0;F=la+(i<<4)+4|0;B=la+(i<<4)+8|0;m=G;i=k;while(1){A=m+1|0;b:do if((A|0)<(I|0)){g=la+(m<<4)|0;z=la+(m<<4)+4|0;u=la+(m<<4)+8|0;k=A;while(1){p=+f[C>>2];J=+f[g>>2]-p;q=+f[F>>2];L=+f[z>>2]-q;t=+f[B>>2];E=+f[u>>2]-t;H=+f[la+(k<<4)>>2]-p;K=+f[la+(k<<4)+4>>2]-q;D=+f[la+(k<<4)+8>>2]-t;y=(J*K-L*H)*(J*K-L*H)+((L*D-E*K)*(L*D-E*K)+(E*H-J*D)*(E*H-J*D));c:do if(y>9.999999747378752e-05){x=1.0/+s(+y);v=(L*D-E*K)*x;w=(E*H-J*D)*x;x=(J*K-L*H)*x;d:do if((i|0)>0){m=0;while(1){if(v*+f[l+(m<<4)>>2]+w*+f[l+(m<<4)+4>>2]+x*+f[l+(m<<4)+8>>2]>.9990000128746033)break d;m=m+1|0;if((m|0)>=(i|0)){fa=34;break}}}else fa=34;while(0);e:do if((fa|0)==34){fa=0;m=0;do{if(v*+f[la+(m<<4)>>2]+w*+f[la+(m<<4)+4>>2]+x*+f[la+(m<<4)+8>>2]-(v*p+w*q+x*t)+-.009999999776482582>0.0)break e;m=m+1|0}while((m|0)<(I|0));do if((i|0)==(j|0)){n=(j|0)==0?1:j<<1;if((j|0)<(n|0)){do if(!n)o=0;else{c[6747]=(c[6747]|0)+1;m=kb((n<<4|3)+16|0)|0;if(!m){o=0;break}c[(m+4+15&-16)+-4>>2]=m;o=m+4+15&-16}while(0);if((j|0)<=0){if(!l){m=j;j=n;l=o;break}}else{m=0;do{da=o+(m<<4)|0;ca=l+(m<<4)|0;c[da>>2]=c[ca>>2];c[da+4>>2]=c[ca+4>>2];c[da+8>>2]=c[ca+8>>2];c[da+12>>2]=c[ca+12>>2];m=m+1|0}while((m|0)!=(j|0))}c[6748]=(c[6748]|0)+1;uc(c[l+-4>>2]|0);m=j;j=n;l=o}else m=j}else m=i;while(0);f[l+(m<<4)>>2]=v;f[l+(m<<4)+4>>2]=w;f[l+(m<<4)+8>>2]=x;f[l+(m<<4)+12>>2]=-(v*p+w*q+x*t);i=i+1|0}while(0);if(y>9.999999747378752e-05){q=1.0/+s(+y);v=-((L*D-E*K)*q);t=-((E*H-J*D)*q);q=-((J*K-L*H)*q);if((i|0)>0){m=0;do{if(+f[l+(m<<4)>>2]*v+ +f[l+(m<<4)+4>>2]*t+ +f[l+(m<<4)+8>>2]*q>.9990000128746033)break c;m=m+1|0}while((m|0)<(i|0))}p=+f[C>>2]*v+ +f[F>>2]*t+ +f[B>>2]*q;m=0;do{if(+f[la+(m<<4)>>2]*v+ +f[la+(m<<4)+4>>2]*t+ +f[la+(m<<4)+8>>2]*q-p+-.009999999776482582>0.0)break c;m=m+1|0}while((m|0)<(I|0));do if((i|0)==(j|0)){n=(j|0)==0?1:j<<1;if((j|0)>=(n|0)){m=j;break}do if(!n)o=0;else{c[6747]=(c[6747]|0)+1;m=kb((n<<4|3)+16|0)|0;if(!m){o=0;break}c[(m+4+15&-16)+-4>>2]=m;o=m+4+15&-16}while(0);if((j|0)<=0){if(!l){m=j;j=n;l=o;break}}else{m=0;do{da=o+(m<<4)|0;ca=l+(m<<4)|0;c[da>>2]=c[ca>>2];c[da+4>>2]=c[ca+4>>2];c[da+8>>2]=c[ca+8>>2];c[da+12>>2]=c[ca+12>>2];m=m+1|0}while((m|0)!=(j|0))}c[6748]=(c[6748]|0)+1;uc(c[l+-4>>2]|0);m=j;j=n;l=o}else m=i;while(0);f[l+(m<<4)>>2]=v;f[l+(m<<4)+4>>2]=t;f[l+(m<<4)+8>>2]=q;f[l+(m<<4)+12>>2]=-p;i=i+1|0}}while(0);k=k+1|0;if((k|0)==(I|0))break b}}while(0);if((A|0)==(I|0))break a;m=A}}else i=k;while(0);if((G|0)==(I|0))break;else k=i}if((i|0)>0){n=0;o=0;u=0;while(1){da=l+(u<<4)|0;c[ma>>2]=c[da>>2];c[ma+4>>2]=c[da+4>>2];c[ma+8>>2]=c[da+8>>2];p=+f[l+(u<<4)+12>>2];p=p-+ha[c[(c[d>>2]|0)+48>>2]&15](d);do if((u|0)==(n|0)){m=(n|0)==0?1:n<<1;if((n|0)<(m|0)){if((m|0)!=0?(c[6747]=(c[6747]|0)+1,M=kb((m<<4|3)+16|0)|0,(M|0)!=0):0){c[(M+4+15&-16)+-4>>2]=M;k=M+4+15&-16}else k=0;if((n|0)<=0){if(!o){j=n;break}}else{j=0;do{da=k+(j<<4)|0;ca=o+(j<<4)|0;c[da>>2]=c[ca>>2];c[da+4>>2]=c[ca+4>>2];c[da+8>>2]=c[ca+8>>2];c[da+12>>2]=c[ca+12>>2];j=j+1|0}while((j|0)!=(n|0))}c[6748]=(c[6748]|0)+1;uc(c[o+-4>>2]|0);j=n}else{j=n;m=n;k=o}}else{j=u;m=n;k=o}while(0);da=k+(j<<4)|0;c[da>>2]=c[ma>>2];c[da+4>>2]=c[ma+4>>2];c[da+8>>2]=c[ma+8>>2];f[k+(j<<4)+12>>2]=p;u=u+1|0;if((u|0)<(i|0)){n=m;o=k}else break}m=0;N=0;n=0;j=0;i=0;do{M=N;N=N+1|0;f:do if((N|0)<(u|0)){o=N;while(1){I=o+1|0;g:do if((I|0)<(u|0)){C=k+(o<<4)+4|0;G=k+(o<<4)+8|0;F=k+(o<<4)|0;B=k+(o<<4)+12|0;o=I;while(1){v=+f[C>>2];p=+f[k+(o<<4)+8>>2];q=+f[G>>2];w=+f[k+(o<<4)+4>>2];x=+f[k+(o<<4)>>2];y=+f[F>>2];t=+f[k+(M<<4)+8>>2];D=+f[k+(M<<4)+4>>2];E=+f[k+(M<<4)>>2];h:do if((((w*y-v*x)*(w*y-v*x)+((v*p-q*w)*(v*p-q*w)+(q*x-p*y)*(q*x-p*y))>9.999999747378752e-05?(x*D-w*E)*(x*D-w*E)+((w*t-p*D)*(w*t-p*D)+(p*E-x*t)*(p*E-x*t))>9.999999747378752e-05:0)?(v*E-y*D)*(v*E-y*D)+((q*D-v*t)*(q*D-v*t)+(y*t-q*E)*(y*t-q*E))>9.999999747378752e-05:0)?(Y=t*(w*y-v*x)+(D*(q*x-p*y)+(v*p-q*w)*E),+r(+Y)>9.999999974752427e-07):0){K=+f[k+(M<<4)+12>>2];L=+f[B>>2];J=+f[k+(o<<4)+12>>2];H=-1.0/Y*((q*D-v*t)*J+((v*p-q*w)*K+(w*t-p*D)*L));q=-1.0/Y*((y*t-q*E)*J+((q*x-p*y)*K+(p*E-x*t)*L));p=-1.0/Y*((v*E-y*D)*J+((w*y-v*x)*K+(x*D-w*E)*L));g=0;do{if(+f[k+(g<<4)+12>>2]+(H*+f[k+(g<<4)>>2]+q*+f[k+(g<<4)+4>>2]+p*+f[k+(g<<4)+8>>2])+-.009999999776482582>0.0)break h;g=g+1|0}while((g|0)<(u|0));do if((i|0)==(n|0)){A=(n|0)==0?1:n<<1;if((n|0)>=(A|0)){g=n;break}do if(!A)z=0;else{c[6747]=(c[6747]|0)+1;m=kb((A<<4|3)+16|0)|0;if(!m){z=0;break}c[(m+4+15&-16)+-4>>2]=m;z=m+4+15&-16}while(0);if((n|0)<=0){if(!j){m=z;g=n;n=A;j=z;break}}else{m=0;do{da=z+(m<<4)|0;ca=j+(m<<4)|0;c[da>>2]=c[ca>>2];c[da+4>>2]=c[ca+4>>2];c[da+8>>2]=c[ca+8>>2];c[da+12>>2]=c[ca+12>>2];m=m+1|0}while((m|0)!=(n|0))}c[6748]=(c[6748]|0)+1;uc(c[j+-4>>2]|0);m=z;g=n;n=A;j=z}else g=i;while(0);f[j+(g<<4)>>2]=H;f[j+(g<<4)+4>>2]=q;f[j+(g<<4)+8>>2]=p;f[j+(g<<4)+12>>2]=0.0;i=i+1|0}while(0);o=o+1|0;if((o|0)==(u|0))break g}}while(0);if((I|0)==(u|0))break f;o=I}}while(0)}while((N|0)!=(u|0))}else{m=0;k=0;j=0;i=0}}else{m=0;l=0;k=0;j=0;i=0}mb(ma+124|0,m,i);if(j|0){c[6748]=(c[6748]|0)+1;uc(c[j+-4>>2]|0)}if(k|0){c[6748]=(c[6748]|0)+1;uc(c[k+-4>>2]|0)}if(l|0){c[6748]=(c[6748]|0)+1;uc(c[l+-4>>2]|0)}}else mb(ma+124|0,k,I);G=c[ma+124+44>>2]|0;if((G|0)>0){c[6747]=(c[6747]|0)+1;i=kb((G<<4|3)+16|0)|0;if(!i)j=0;else{c[(i+4+15&-16)+-4>>2]=i;j=i+4+15&-16}i=0;do{da=j+(i<<4)|0;c[da>>2]=c[ma>>2];c[da+4>>2]=c[ma+4>>2];c[da+8>>2]=c[ma+8>>2];c[da+12>>2]=c[ma+12>>2];i=i+1|0}while((i|0)!=(G|0));da=j;ba=j}else{da=0;ba=0}a[ma+104+16>>0]=1;ca=ma+104+12|0;c[ca>>2]=0;aa=ma+104+4|0;c[aa>>2]=0;c[ma+104+8>>2]=0;k=ma;m=k+19|0;do{a[k>>0]=0;k=k+1|0}while((k|0)<(m|0));if((G|0)<0)Z();if(G|0){Gm(ma+104|0,G);i=c[ca>>2]|0;j=0;do{a[i+(j*36|0)+16>>0]=1;k=i+(j*36|0)+4|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;k=i+(j*36|0)+20|0;l=ma+3|0;m=k+16|0;do{a[k>>0]=a[l>>0]|0;k=k+1|0;l=l+1|0}while((k|0)<(m|0));j=j+1|0}while((j|0)!=(G|0))}c[aa>>2]=G;n=c[ma+124+4>>2]|0;m=c[d+52>>2]|0;l=c[m+8>>2]|0;if((l|0)<(n|0)){if((c[m+12>>2]|0)<(n|0)){if(!n){j=l;k=0}else{c[6747]=(c[6747]|0)+1;i=kb((n<<4|3)+16|0)|0;if(!i)i=0;else{c[(i+4+15&-16)+-4>>2]=i;i=i+4+15&-16}j=c[m+8>>2]|0;k=i}if((j|0)>0){i=0;do{$=k+(i<<4)|0;_=(c[m+16>>2]|0)+(i<<4)|0;c[$>>2]=c[_>>2];c[$+4>>2]=c[_+4>>2];c[$+8>>2]=c[_+8>>2];c[$+12>>2]=c[_+12>>2];i=i+1|0}while((i|0)!=(j|0))}i=c[m+16>>2]|0;if(i|0){if(a[m+20>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0)}c[m+16>>2]=0}a[m+20>>0]=1;c[m+16>>2]=k;c[m+12>>2]=n;j=m+16|0}else j=m+16|0;i=l;do{$=(c[j>>2]|0)+(i<<4)|0;c[$>>2]=c[ma>>2];c[$+4>>2]=c[ma+4>>2];c[$+8>>2]=c[ma+8>>2];c[$+12>>2]=c[ma+12>>2];i=i+1|0}while((i|0)!=(n|0))}c[m+8>>2]=n;if((n|0)>0){i=0;do{_=(c[ka>>2]|0)+(i<<4)|0;$=(c[(c[d+52>>2]|0)+16>>2]|0)+(i<<4)|0;c[$>>2]=c[_>>2];c[$+4>>2]=c[_+4>>2];c[$+8>>2]=c[_+8>>2];c[$+12>>2]=c[_+12>>2];i=i+1|0}while((i|0)!=(n|0))}if((G|0)>0){F=0;do{A=(c[ja>>2]|0)+((c[(c[ia>>2]|0)+(F<<2)>>2]|0)*12|0)|0;B=A;i=0;do{C=B+4|0;z=c[B+((c[C>>2]|0)*12|0)+8>>2]|0;u=c[ca>>2]|0;g=u+(F*36|0)+4|0;j=c[g>>2]|0;o=u+(F*36|0)+8|0;if((j|0)==(c[o>>2]|0)?(O=(j|0)==0?1:j<<1,(j|0)<(O|0)):0){if(!O)k=0;else{c[6747]=(c[6747]|0)+1;j=kb((O<<2|3)+16|0)|0;if(!j)k=0;else{c[(j+4+15&-16)+-4>>2]=j;k=j+4+15&-16}j=c[g>>2]|0}n=u+(F*36|0)+12|0;m=c[n>>2]|0;if((j|0)<=0)if(!m)l=u+(F*36|0)+16|0;else fa=161;else{l=0;do{c[k+(l<<2)>>2]=c[m+(l<<2)>>2];l=l+1|0}while((l|0)!=(j|0));fa=161}if((fa|0)==161){fa=0;l=u+(F*36|0)+16|0;if(a[l>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[m+-4>>2]|0)}c[n>>2]=0;j=c[g>>2]|0}a[l>>0]=1;c[n>>2]=k;c[o>>2]=O}c[(c[u+(F*36|0)+12>>2]|0)+(j<<2)>>2]=z;c[g>>2]=(c[g>>2]|0)+1;_=c[B+8>>2]|0;$=c[ka>>2]|0;t=+f[$+(_<<4)>>2]-+f[$+(z<<4)>>2];v=+f[$+(_<<4)+4>>2]-+f[$+(z<<4)+4>>2];q=+f[$+(_<<4)+8>>2]-+f[$+(z<<4)+8>>2];p=1.0/+s(+(t*t+v*v+q*q));if((i|0)<2){f[ma+(i<<4)>>2]=t*p;f[ma+(i<<4)+4>>2]=v*p;f[ma+(i<<4)+8>>2]=q*p;f[ma+(i<<4)+12>>2]=0.0;i=i+1|0}$=B+((c[C>>2]|0)*12|0)|0;B=$+((c[$>>2]|0)*12|0)|0}while((B|0)!=(A|0));if((i|0)==2){H=+f[ma+4>>2];J=+f[ma+24>>2];K=+f[ma+8>>2];L=+f[ma+20>>2];E=+f[ma+16>>2];D=+f[ma>>2];_=ba+(F<<4)+4|0;$=ba+(F<<4)+8|0;f[ba+(F<<4)+12>>2]=0.0;Y=1.0/+s(+((L*D-H*E)*(L*D-H*E)+((H*J-K*L)*(H*J-K*L)+(K*E-J*D)*(K*E-J*D))));f[ba+(F<<4)>>2]=(H*J-K*L)*Y;f[_>>2]=(K*E-J*D)*Y;f[$>>2]=(L*D-H*E)*Y;m=c[ca>>2]|0;f[m+(F*36|0)+20>>2]=(H*J-K*L)*Y;c[m+(F*36|0)+24>>2]=c[_>>2];c[m+(F*36|0)+28>>2]=c[$>>2];f[m+(F*36|0)+32>>2]=1000000015047466219876688.0e6}else{m=ba+(F<<4)|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;m=c[ca>>2]|0}j=c[m+(F*36|0)+4>>2]|0;if((j|0)>0){k=c[(c[d+52>>2]|0)+16>>2]|0;q=+f[ba+(F<<4)>>2];t=+f[ba+(F<<4)+4>>2];v=+f[ba+(F<<4)+8>>2];l=c[m+(F*36|0)+12>>2]|0;$=c[l>>2]|0;p=+f[k+($<<4)>>2]*q+ +f[k+($<<4)+4>>2]*t+ +f[k+($<<4)+8>>2]*v;p=p<1000000015047466219876688.0e6?p:1000000015047466219876688.0e6;if((j|0)!=1){i=1;do{$=c[l+(i<<2)>>2]|0;Y=+f[k+($<<4)>>2]*q+ +f[k+($<<4)+4>>2]*t+ +f[k+($<<4)+8>>2]*v;p=p>Y?Y:p;i=i+1|0}while((i|0)<(j|0))}}else p=1000000015047466219876688.0e6;f[m+(F*36|0)+32>>2]=-p;F=F+1|0}while((F|0)!=(G|0))}i:do if((c[aa>>2]|0)>0){m=0;j=0;o=0;i=0;n=0;while(1){do if((o|0)==(i|0)){i=(o|0)==0;k=i?1:o<<1;if((o|0)<(k|0)){if((k|0)!=0?(c[6747]=(c[6747]|0)+1,P=kb((k<<2|3)+16|0)|0,(P|0)!=0):0){c[(P+4+15&-16)+-4>>2]=P;l=P+4+15&-16}else l=0;if(i){if(!n){Q=l;j=l;i=1;n=l;break}}else{i=0;do{c[l+(i<<2)>>2]=c[n+(i<<2)>>2];i=i+1|0}while((i|0)!=(o|0))}if(!m){Q=l;j=l;i=k;n=l}else{c[6748]=(c[6748]|0)+1;uc(c[m+-4>>2]|0);Q=l;j=l;i=k;n=l}}else{Q=j;j=m;i=o}}else{Q=j;j=m}while(0);c[n+(o<<2)>>2]=o;o=o+1|0;if((o|0)>=(c[aa>>2]|0))break;else{m=j;j=Q}}O=ma+84+12|0;P=ma+84+4|0;N=ma+48+12|0;i=o;while(1){m=i+-1|0;k=c[n+(m<<2)>>2]|0;c[6747]=(c[6747]|0)+1;j=kb(23)|0;if(!j)l=0;else{c[(j+4+15&-16)+-4>>2]=j;l=j+4+15&-16}c[l>>2]=k;j=c[ca>>2]|0;q=+f[j+(k*36|0)+20>>2];t=+f[j+(k*36|0)+24>>2];p=+f[j+(k*36|0)+28>>2];do if((i|0)>1){o=j;z=l;k=l;u=1;j=l;B=1;F=i+-2|0;C=m;while(1){A=c[n+(F<<2)>>2]|0;j:do if(q*+f[o+(A*36|0)+20>>2]+t*+f[o+(A*36|0)+24>>2]+p*+f[o+(A*36|0)+28>>2]>.9990000128746033){do if((B|0)==(u|0)){l=(u|0)==0?1:u<<1;if((u|0)>=(l|0)){g=k;break}do if(!l)k=0;else{c[6747]=(c[6747]|0)+1;i=kb((l<<2|3)+16|0)|0;if(!i){k=0;break}c[(i+4+15&-16)+-4>>2]=i;k=i+4+15&-16}while(0);if((u|0)>0){i=0;do{c[k+(i<<2)>>2]=c[j+(i<<2)>>2];i=i+1|0}while((i|0)!=(u|0));if(!z){g=k;z=k;u=l;j=k;break}}else if((j|0)==0|(z|0)==0){g=k;z=k;u=l;j=k;break}c[6748]=(c[6748]|0)+1;uc(c[z+-4>>2]|0);g=k;z=k;u=l;j=k}else g=k;while(0);c[j+(B<<2)>>2]=A;o=B+1|0;if((C|0)>0){m=0;while(1){k=n+(m<<2)|0;if((c[k>>2]|0)==(A|0))break;i=m+1|0;if((i|0)<(C|0))m=i;else{M=g;k=z;l=u;I=o;i=C;break j}}i=C+-1|0;l=n+(i<<2)|0;if((m|0)>=(C|0)){M=g;k=z;l=u;I=o;i=C;break}c[k>>2]=c[l>>2];c[l>>2]=A;M=g;k=z;l=u;I=o}else{M=g;k=z;l=u;I=o;i=C}}else{M=k;k=z;l=u;I=B;i=C}while(0);if((F|0)<=0)break;o=c[ca>>2]|0;z=k;k=M;u=l;B=I;F=F+-1|0;C=i}if((I|0)<=1)if((I|0)==1){k=M;B=1;fa=344;break}else{k=M;break}a[ma+84+16>>0]=1;c[O>>2]=0;c[P>>2]=0;c[ma+84+8>>2]=0;p=0.0;q=0.0;t=0.0;k=0;C=0;do{A=c[j+(C<<2)>>2]|0;B=c[ca>>2]|0;p=+f[B+(A*36|0)+20>>2]+p;q=+f[B+(A*36|0)+24>>2]+q;t=+f[B+(A*36|0)+28>>2]+t;l=c[B+(A*36|0)+4>>2]|0;if((l|0)>0){z=0;do{g=c[(c[B+(A*36|0)+12>>2]|0)+(z<<2)>>2]|0;$=(c[(c[d+52>>2]|0)+16>>2]|0)+(g<<4)|0;c[ma>>2]=c[$>>2];c[ma+4>>2]=c[$+4>>2];c[ma+8>>2]=c[$+8>>2];c[ma+12>>2]=c[$+12>>2];k:do if((k|0)>0){m=c[O>>2]|0;o=0;while(1){if((c[m+(o*24|0)+20>>2]|0)==(g|0))break k;o=o+1|0;if((o|0)>=(k|0)){fa=224;break}}}else fa=224;while(0);if((fa|0)==224){fa=0;c[ma+48>>2]=c[ma>>2];c[ma+48+4>>2]=c[ma+4>>2];c[ma+48+8>>2]=c[ma+8>>2];c[ma+48+12>>2]=c[ma+12>>2];do if((k|0)==(c[ma+84+8>>2]|0)){u=(k|0)==0?1:k<<1;if((k|0)>=(u|0))break;if(!u)l=0;else{c[6747]=(c[6747]|0)+1;k=kb((u*24|3)+16|0)|0;if(!k)l=0;else{c[(k+4+15&-16)+-4>>2]=k;l=k+4+15&-16}k=c[P>>2]|0}o=c[O>>2]|0;if((k|0)<=0){if(o)fa=234}else{m=0;do{fa=l+(m*24|0)|0;$=o+(m*24|0)|0;c[fa>>2]=c[$>>2];c[fa+4>>2]=c[$+4>>2];c[fa+8>>2]=c[$+8>>2];c[fa+12>>2]=c[$+12>>2];c[fa+16>>2]=c[$+16>>2];c[fa+20>>2]=c[$+20>>2];m=m+1|0}while((m|0)!=(k|0));fa=234}if((fa|0)==234){fa=0;if(a[ma+84+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[o+-4>>2]|0);k=c[P>>2]|0}c[O>>2]=0}a[ma+84+16>>0]=1;c[O>>2]=l;c[ma+84+8>>2]=u}while(0);l=c[O>>2]|0;$=l+(k*24|0)|0;c[$>>2]=c[ma+48>>2];c[$+4>>2]=c[ma+48+4>>2];c[$+8>>2]=c[ma+48+8>>2];c[$+12>>2]=c[ma+48+12>>2];c[$+16>>2]=c[ma+48+16>>2];c[l+(k*24|0)+20>>2]=g;k=(c[P>>2]|0)+1|0;c[P>>2]=k;l=c[B+(A*36|0)+4>>2]|0}z=z+1|0}while((z|0)<(l|0))}C=C+1|0}while((C|0)!=(I|0));a[ma+48+16>>0]=1;c[N>>2]=0;c[ma+48+4>>2]=0;c[ma+48+8>>2]=0;$=c[j>>2]|0;_=c[ca>>2]|0;c[ma+48+20>>2]=c[_+($*36|0)+20>>2];c[ma+48+24>>2]=c[_+($*36|0)+24>>2];c[ma+48+28>>2]=c[_+($*36|0)+28>>2];c[ma+48+32>>2]=c[_+($*36|0)+32>>2];y=1.0/+s(+(p*p+q*q+t*t));E=p*y;D=q*y;y=t*y;if(+r(+y)>.7071067690849304){x=1.0/+s(+(y*y+D*D));v=0.0;w=D*x;x=-(y*x)}else{x=1.0/+s(+(E*E+D*D));v=-(D*x);w=0.0;x=E*x}o=c[P>>2]|0;do if((o|0)<2)if((o|0)==1){m=1;l=0;o=0;k=0;do{A=c[O>>2]|0;do if((l|0)==(o|0)){z=(o|0)==0?1:o<<1;if((o|0)>=(z|0)){g=o;break}do if(!z)u=0;else{c[6747]=(c[6747]|0)+1;m=kb((z*24|3)+16|0)|0;if(!m){o=l;u=0;break}c[(m+4+15&-16)+-4>>2]=m;o=l;u=m+4+15&-16}while(0);if((o|0)<=0){if(k|0)fa=255}else{m=0;do{fa=u+(m*24|0)|0;$=k+(m*24|0)|0;c[fa>>2]=c[$>>2];c[fa+4>>2]=c[$+4>>2];c[fa+8>>2]=c[$+8>>2];c[fa+12>>2]=c[$+12>>2];c[fa+16>>2]=c[$+16>>2];c[fa+20>>2]=c[$+20>>2];m=m+1|0}while((m|0)!=(o|0));fa=255}if((fa|0)==255){fa=0;c[6748]=(c[6748]|0)+1;uc(c[k+-4>>2]|0)}g=l;m=c[P>>2]|0;o=z;k=u}else g=l;while(0);$=k+(g*24|0)|0;c[$>>2]=c[A>>2];c[$+4>>2]=c[A+4>>2];c[$+8>>2]=c[A+8>>2];c[$+12>>2]=c[A+12>>2];c[$+16>>2]=c[A+16>>2];c[$+20>>2]=c[A+20>>2];l=l+1|0}while((l|0)<(m|0));fa=289}else{k=0;fa=331}else{m=c[O>>2]|0;l=0;do{k=m+(l*24|0)|0;if(v*+f[k>>2]+x*+f[m+(l*24|0)+4>>2]+w*+f[m+(l*24|0)+8>>2]>2]+x*+f[m+4>>2]+w*+f[m+8>>2]){c[ma>>2]=c[m>>2];c[ma+4>>2]=c[m+4>>2];c[ma+8>>2]=c[m+8>>2];c[ma+12>>2]=c[m+12>>2];c[ma+16>>2]=c[m+16>>2];c[ma+20>>2]=c[m+20>>2];c[m>>2]=c[k>>2];c[m+4>>2]=c[k+4>>2];c[m+8>>2]=c[k+8>>2];c[m+12>>2]=c[k+12>>2];c[m+16>>2]=c[k+16>>2];c[m+20>>2]=c[k+20>>2];fa=m+(l*24|0)|0;c[fa>>2]=c[ma>>2];c[fa+4>>2]=c[ma+4>>2];c[fa+8>>2]=c[ma+8>>2];c[fa+12>>2]=c[ma+12>>2];c[fa+16>>2]=c[ma+16>>2];c[fa+20>>2]=c[ma+20>>2]}l=l+1|0}while((l|0)<(o|0));f[m+16>>2]=-1000000015047466219876688.0e6;if((o|0)>1){p=+f[m>>2];q=+f[m+4>>2];t=+f[m+8>>2];k=1;do{K=+f[m+(k*24|0)>>2]-p;L=+f[m+(k*24|0)+4>>2]-q;Y=+f[m+(k*24|0)+8>>2]-t;f[m+(k*24|0)+16>>2]=((v*L-x*K)*y+(E*(x*Y-w*L)+D*(w*K-v*Y)))/+s(+(K*K+L*L+Y*Y));k=k+1|0}while((k|0)!=(o|0))}c[ma>>2]=c[m>>2];c[ma+4>>2]=c[m+4>>2];c[ma+8>>2]=c[m+8>>2];c[ma+12>>2]=c[m+12>>2];re(ma+84|0,ma,1,o+-1|0);l=c[O>>2]|0;c[6747]=(c[6747]|0)+1;k=kb(43)|0;if(!k)o=0;else{c[(k+4+15&-16)+-4>>2]=k;o=k+4+15&-16}m=c[O>>2]|0;c[o>>2]=c[l>>2];c[o+4>>2]=c[l+4>>2];c[o+8>>2]=c[l+8>>2];c[o+12>>2]=c[l+12>>2];c[o+16>>2]=c[l+16>>2];c[o+20>>2]=c[l+20>>2];c[6747]=(c[6747]|0)+1;k=kb(67)|0;if(!k)k=0;else{c[(k+4+15&-16)+-4>>2]=k;k=k+4+15&-16}c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];c[k+12>>2]=c[o+12>>2];c[k+16>>2]=c[o+16>>2];c[k+20>>2]=c[o+20>>2];if(o|0){c[6748]=(c[6748]|0)+1;uc(c[o+-4>>2]|0)}fa=k+24|0;c[fa>>2]=c[m+24>>2];c[fa+4>>2]=c[m+24+4>>2];c[fa+8>>2]=c[m+24+8>>2];c[fa+12>>2]=c[m+24+12>>2];c[fa+16>>2]=c[m+24+16>>2];c[fa+20>>2]=c[m+24+20>>2];m=c[P>>2]|0;if((m|0)==2){l=2;fa=289;break}u=2;l=2;o=2;A=2;do{l:do if((u|0)>1){fa=c[O>>2]|0;z=fa+(A*24|0)|0;p=+f[z>>2];q=+f[fa+(A*24|0)+4>>2];t=+f[fa+(A*24|0)+8>>2];while(1){fa=u+-2|0;g=u+-1|0;K=+f[k+(fa*24|0)>>2];L=K-+f[k+(g*24|0)>>2];H=+f[k+(fa*24|0)+4>>2];x=H-+f[k+(g*24|0)+4>>2];Y=+f[k+(fa*24|0)+8>>2];J=Y-+f[k+(g*24|0)+8>>2];if((L*(H-q)-x*(K-p))*y+(E*(x*(Y-t)-J*(H-q))+D*(J*(K-p)-L*(Y-t)))>0.0)break;if((u|0)>2){u=g;l=g}else{u=1;l=g;break l}}do if((u|0)==(o|0)){g=o<<1;if((o|0)>=(g|0)){u=o;g=o;break}c[6747]=(c[6747]|0)+1;m=kb((o*48|3)+16|0)|0;if(!m)o=0;else{c[(m+4+15&-16)+-4>>2]=m;o=m+4+15&-16}if((l|0)>0){m=0;do{fa=o+(m*24|0)|0;$=k+(m*24|0)|0;c[fa>>2]=c[$>>2];c[fa+4>>2]=c[$+4>>2];c[fa+8>>2]=c[$+8>>2];c[fa+12>>2]=c[$+12>>2];c[fa+16>>2]=c[$+16>>2];c[fa+20>>2]=c[$+20>>2];m=m+1|0}while((m|0)!=(l|0))}c[6748]=(c[6748]|0)+1;uc(c[k+-4>>2]|0);m=c[P>>2]|0;u=l;k=o}else g=o;while(0);u=k+(u*24|0)|0;c[u>>2]=c[z>>2];c[u+4>>2]=c[z+4>>2];c[u+8>>2]=c[z+8>>2];c[u+12>>2]=c[z+12>>2];c[u+16>>2]=c[z+16>>2];c[u+20>>2]=c[z+20>>2];l=l+1|0;u=l;o=g}while(0);A=A+1|0}while((A|0)!=(m|0));if((l|0)>0)fa=289;else fa=291}while(0);if((fa|0)==289){fa=0;o=c[ma+48+4>>2]|0;m=c[ma+48+8>>2]|0;z=a[ma+48+16>>0]|0;G=0;while(1){F=k+(G*24|0)+20|0;do if((o|0)==(m|0)){B=(m|0)==0?1:m<<1;if((m|0)>=(B|0)){C=z;o=m;B=m;break}do if(!B)g=0;else{c[6747]=(c[6747]|0)+1;o=kb((B<<2|3)+16|0)|0;if(!o){g=0;break}c[(o+4+15&-16)+-4>>2]=o;g=o+4+15&-16}while(0);u=c[N>>2]|0;if((m|0)<=0){if(u)fa=321}else{o=0;do{c[g+(o<<2)>>2]=c[u+(o<<2)>>2];o=o+1|0}while((o|0)!=(m|0));fa=321}if((fa|0)==321){fa=0;if(z<<24>>24){c[6748]=(c[6748]|0)+1;uc(c[u+-4>>2]|0)}c[N>>2]=0;m=c[ma+48+4>>2]|0}c[N>>2]=g;c[ma+48+8>>2]=B;C=1;o=m}else{C=z;B=m}while(0);c[(c[N>>2]|0)+(o<<2)>>2]=c[F>>2];o=o+1|0;c[ma+48+4>>2]=o;m=c[P>>2]|0;m:do if((m|0)>0){A=c[O>>2]|0;u=c[F>>2]|0;g=0;while(1){z=A+(g*24|0)+20|0;g=g+1|0;if((c[z>>2]|0)==(u|0))break;if((g|0)>=(m|0))break m}c[z>>2]=-1}while(0);G=G+1|0;if((G|0)>=(l|0))break;else{m=B;z=C}}a[ma+48+16>>0]=C;fa=291}n:do if((fa|0)==291){fa=0;if((m|0)>0){z=c[O>>2]|0;A=c[aa>>2]|0;B=c[ca>>2]|0;F=(I|0)>0;if((A|0)<=0){fa=331;break}G=0;while(1){C=c[z+(G*24|0)+20>>2]|0;o:do if((C|0)!=-1){if(!F){u=0;while(1){l=c[B+(u*36|0)+4>>2]|0;if((l|0)>0){o=c[B+(u*36|0)+12>>2]|0;g=0;do{if((c[o+(g<<2)>>2]|0)==(C|0)){l=1;break n}g=g+1|0}while((g|0)<(l|0))}u=u+1|0;if((u|0)>=(A|0))break o}}g=0;do{l=0;while(1){if((c[j+(l<<2)>>2]|0)==(g|0))break;l=l+1|0;if((l|0)>=(I|0)){fa=306;break}}do if((fa|0)==306){fa=0;l=c[B+(g*36|0)+4>>2]|0;if((l|0)<=0)break;o=c[B+(g*36|0)+12>>2]|0;u=0;do{if((c[o+(u<<2)>>2]|0)==(C|0)){l=1;break n}u=u+1|0}while((u|0)<(l|0))}while(0);g=g+1|0}while((g|0)<(A|0))}while(0);G=G+1|0;if((G|0)>=(m|0)){fa=331;break}}}else fa=331}while(0);if((fa|0)==331){fa=0;qg((c[d+52>>2]|0)+24|0,ma+48|0);l=0}if(k|0){c[6748]=(c[6748]|0)+1;uc(c[k+-4>>2]|0)}k=c[N>>2]|0;if(k|0){if(a[ma+48+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[k+-4>>2]|0)}c[N>>2]=0}k=c[O>>2]|0;if(k|0){if(a[ma+84+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[k+-4>>2]|0)}c[O>>2]=0}if(l&(I|0)>0){k=M;B=I;fa=344}else k=M}else{k=l;j=l;B=1;i=m;fa=344}while(0);if((fa|0)==344){fa=0;A=0;do{g=c[j+(A<<2)>>2]|0;z=c[ca>>2]|0;a[ma+16>>0]=1;c[ma+12>>2]=0;c[ma+4>>2]=0;c[ma+8>>2]=0;u=c[z+(g*36|0)+4>>2]|0;if((u|0)>0){c[6747]=(c[6747]|0)+1;m=kb((u<<2|3)+16|0)|0;do if(!m){o=0;l=0}else{c[(m+4+15&-16)+-4>>2]=m;l=c[ma+12>>2]|0;if((l|0)==0|(a[ma+16>>0]|0)==0){o=m+4+15&-16;l=m+4+15&-16;break}c[6748]=(c[6748]|0)+1;uc(c[l+-4>>2]|0);o=m+4+15&-16;l=m+4+15&-16}while(0);a[ma+16>>0]=1;c[ma+12>>2]=l;c[ma+8>>2]=u;hk(l|0,0,u<<2|0)|0;c[ma+4>>2]=u;l=c[z+(g*36|0)+12>>2]|0;m=0;do{c[o+(m<<2)>>2]=c[l+(m<<2)>>2];m=m+1|0}while((m|0)!=(u|0));l=c[ma+12>>2]|0}else{c[ma+4>>2]=u;l=0}c[ma+20>>2]=c[z+(g*36|0)+20>>2];c[ma+20+4>>2]=c[z+(g*36|0)+20+4>>2];c[ma+20+8>>2]=c[z+(g*36|0)+20+8>>2];c[ma+20+12>>2]=c[z+(g*36|0)+20+12>>2];qg((c[d+52>>2]|0)+24|0,ma);if(l|0){if(a[ma+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[l+-4>>2]|0)}c[ma+12>>2]=0}A=A+1|0}while((A|0)<(B|0))}if(!((j|0)==0|(k|0)==0)){c[6748]=(c[6748]|0)+1;uc(c[k+-4>>2]|0)}if(!i){$=Q;break i}}}else{$=0;n=0}while(0);_=c[d+52>>2]|0;c[_+64>>2]=0;c[_+64+4>>2]=0;c[_+64+8>>2]=0;c[_+64+12>>2]=0;i=c[_+28>>2]|0;if((i|0)>0){A=0;F=0;z=0;j=0;k=0;I=0;C=0;g=0;l=0;G=0;u=0;m=0;B=0;M=0;X=0;while(1){o=c[_+36>>2]|0;W=c[o+(X*36|0)+4>>2]|0;if((W|0)>0){U=X&65535;V=X|-65536;R=A;P=z;S=C;O=u;i=0;while(1){T=i+1|0;C=c[o+(X*36|0)+12>>2]|0;u=c[C+(i<<2)>>2]&65535;C=c[C+(((T|0)==(W|0)?0:T)<<2)>>2]&65535;Q=C<<16>>16>u<<16>>16?u:C;d=C<<16>>16>u<<16>>16?C:u;o=C<<16>>16>u<<16>>16?u:C;u=C<<16>>16>u<<16>>16?C:u;C=O+-1|0;p:do if((((o&65535)<<16)+(u<<16>>16)&C)>>>0>>0?(ga=c[k+((((o&65535)<<16)+(u<<16>>16)&C)<<2)>>2]|0,(ga|0)!=-1):0){i=ga;while(1){if(u<<16>>16==(b[j+(i<<2)>>1]|0)?o<<16>>16==(b[j+(i<<2)+2>>1]|0):0)break;i=c[l+(i<<2)>>2]|0;if((i|0)==-1){A=0;break p}}A=m+(i<<2)|0}else A=0;while(0);i=c[_+16>>2]|0;x=+f[i+(o<<16>>16<<4)>>2]-+f[i+(u<<16>>16<<4)>>2];y=+f[i+(o<<16>>16<<4)+4>>2]-+f[i+(u<<16>>16<<4)+4>>2];w=+f[i+(o<<16>>16<<4)+8>>2]-+f[i+(u<<16>>16<<4)+8>>2];v=1.0/+s(+(x*x+y*y+w*w));i=c[_+48>>2]|0;q:do if((i|0)>0){o=c[_+56>>2]|0;u=0;while(1){p=+f[o+(u<<4)>>2];q=+f[o+(u<<4)+4>>2];t=+f[o+(u<<4)+8>>2];do if(!(+r(+(p-x*v))>1.0e-06)){if(+r(+(q-y*v))>1.0e-06)break;if(!(+r(+(t-w*v))>1.0e-06))break q}while(0);do if(!(+r(+(x*v+p))>1.0e-06)){if(+r(+(y*v+q))>1.0e-06)break;if(!(+r(+(w*v+t))>1.0e-06))break q}while(0);u=u+1|0;if((u|0)>=(i|0)){fa=387;break}}}else fa=387;while(0);if((fa|0)==387){fa=0;do if((i|0)==(c[_+52>>2]|0)){z=(i|0)==0?1:i<<1;if((i|0)>=(z|0))break;if(!z)o=0;else{c[6747]=(c[6747]|0)+1;i=kb((z<<4|3)+16|0)|0;if(!i)o=0;else{c[(i+4+15&-16)+-4>>2]=i;o=i+4+15&-16}i=c[_+48>>2]|0}if((i|0)>0){u=0;do{N=o+(u<<4)|0;na=(c[_+56>>2]|0)+(u<<4)|0;c[N>>2]=c[na>>2];c[N+4>>2]=c[na+4>>2];c[N+8>>2]=c[na+8>>2];c[N+12>>2]=c[na+12>>2];u=u+1|0}while((u|0)!=(i|0))}i=c[_+56>>2]|0;if(i|0){if(a[_+60>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0)}c[_+56>>2]=0}a[_+60>>0]=1;c[_+56>>2]=o;c[_+52>>2]=z;i=c[_+48>>2]|0}while(0);na=c[_+56>>2]|0;f[na+(i<<4)>>2]=x*v;f[na+(i<<4)+4>>2]=y*v;f[na+(i<<4)+8>>2]=w*v;f[na+(i<<4)+12>>2]=0.0;c[_+48>>2]=(c[_+48>>2]|0)+1}r:do if(!A){i=((Q&65535)<<16)+(d<<16>>16)&C;s:do if(i>>>0>>0){o=c[k+(i<<2)>>2]|0;if((o|0)==-1)break;while(1){if(d<<16>>16==(b[j+(o<<2)>>1]|0)?Q<<16>>16==(b[j+(o<<2)+2>>1]|0):0)break;o=c[l+(o<<2)>>2]|0;if((o|0)==-1)break s}A=m+(o<<2)|0;b[A>>1]=V;b[A+2>>1]=V>>>16;A=R;z=P;C=S;u=O;break r}while(0);do if((G|0)==(O|0)){u=(G|0)==0?1:G<<1;if((G|0)>=(u|0)){u=G;break}do if(!u)z=0;else{c[6747]=(c[6747]|0)+1;o=kb((u<<2|3)+16|0)|0;if(!o){z=0;break}c[(o+4+15&-16)+-4>>2]=o;z=o+4+15&-16}while(0);if((G|0)<=0){if(!m){m=z;break}}else{o=0;do{na=z+(o<<2)|0;N=m+(o<<2)|0;N=e[N>>1]|e[N+2>>1]<<16;b[na>>1]=N;b[na+2>>1]=N>>>16;o=o+1|0}while((o|0)!=(G|0))}c[6748]=(c[6748]|0)+1;uc(c[m+-4>>2]|0);m=z}else u=O;while(0);N=m+(G<<2)|0;b[N>>1]=V;b[N+2>>1]=V>>>16;N=G+1|0;do if((M|0)==(P|0)){z=(M|0)==0?1:M<<1;if((M|0)>=(z|0)){z=M;break}do if(!z)A=0;else{c[6747]=(c[6747]|0)+1;o=kb((z<<2|3)+16|0)|0;if(!o){A=0;break}c[(o+4+15&-16)+-4>>2]=o;A=o+4+15&-16}while(0);if((M|0)<=0){if(!j){j=A;break}}else{o=0;do{na=A+(o<<2)|0;P=j+(o<<2)|0;P=e[P>>1]|e[P+2>>1]<<16;b[na>>1]=P;b[na+2>>1]=P>>>16;o=o+1|0}while((o|0)!=(M|0))}c[6748]=(c[6748]|0)+1;uc(c[j+-4>>2]|0);j=A}else z=P;while(0);na=j+(M<<2)|0;b[na>>1]=(Q&65535)<<16|d&65535;b[na+2>>1]=((Q&65535)<<16|d&65535)>>>16;M=M+1|0;if((O|0)<(u|0)){do if((I|0)<(u|0)){do if((B|0)<(u|0)){do if(!u)o=0;else{c[6747]=(c[6747]|0)+1;i=kb((u<<2|3)+16|0)|0;if(!i){o=0;break}c[(i+4+15&-16)+-4>>2]=i;o=i+4+15&-16}while(0);if((I|0)<=0){if(!k){F=o;k=o;B=u;break}}else{i=0;do{c[o+(i<<2)>>2]=c[k+(i<<2)>>2];i=i+1|0}while((i|0)!=(I|0))}c[6748]=(c[6748]|0)+1;uc(c[k+-4>>2]|0);F=o;k=o;B=u}while(0);C=u<<2;hk(k+(I<<2)|0,0,C-(I<<2)|0)|0;if((S|0)<(u|0)){do if((g|0)<(u|0)){do if(!u)o=0;else{c[6747]=(c[6747]|0)+1;i=kb((C|3)+16|0)|0;if(!i){o=0;break}c[(i+4+15&-16)+-4>>2]=i;o=i+4+15&-16}while(0);if((S|0)<=0){if(!l){i=o;g=u;l=o;break}}else{i=0;do{c[o+(i<<2)>>2]=c[l+(i<<2)>>2];i=i+1|0}while((i|0)!=(S|0))}c[6748]=(c[6748]|0)+1;uc(c[l+-4>>2]|0);i=o;g=u;l=o}else i=R;while(0);hk(l+(S<<2)|0,0,C-(S<<2)|0)|0;A=i}else A=R;if((u|0)>0){hk(F|0,-1,C|0)|0;hk(A|0,-1,C|0)|0}if((I|0)<=0){o=u;C=u;i=B;break}o=u+-1|0;i=0;do{na=k+(((e[j+(i<<2)+2>>1]<<16)+(b[j+(i<<2)>>1]|0)&o)<<2)|0;c[l+(i<<2)>>2]=c[na>>2];c[na>>2]=i;i=i+1|0}while((i|0)!=(I|0));o=u;C=u;i=B}else{A=R;o=I;C=S;i=B}while(0);B=i;i=((Q&65535)<<16)+(d<<16>>16)&u+-1}else{A=R;o=I;C=S}I=k+(i<<2)|0;c[l+(G<<2)>>2]=c[I>>2];c[I>>2]=G;I=o;G=N}else{b[A+2>>1]=U;A=R;z=P;C=S;u=O}while(0);if((T|0)>=(W|0))break;o=c[_+36>>2]|0;R=A;P=z;S=C;O=u;i=T}i=c[_+28>>2]|0;o=M}else o=M;X=X+1|0;if((X|0)>=(i|0))break;else M=o}if((i|0)>0){A=c[_+36>>2]|0;B=c[_+16>>2]|0;p=0.0;C=0;do{u=c[A+(C*36|0)+4>>2]|0;g=c[A+(C*36|0)+12>>2]|0;z=c[g>>2]|0;if((u|0)>=3){q=+f[_+64>>2];t=+f[_+68>>2];v=+f[_+72>>2];o=1;do{ga=c[g+(o<<2)>>2]|0;o=o+1|0;na=c[g+(((o|0)%(u|0)|0)<<2)>>2]|0;w=+f[B+(z<<4)>>2];x=+f[B+(ga<<4)>>2];D=+f[B+(z<<4)+4>>2];E=+f[B+(ga<<4)+4>>2];J=+f[B+(z<<4)+8>>2];K=+f[B+(ga<<4)+8>>2];y=+f[B+(na<<4)>>2];H=+f[B+(na<<4)+4>>2];L=+f[B+(na<<4)+8>>2];Y=+s(+(((w-x)*(D-H)-(D-E)*(w-y))*((w-x)*(D-H)-(D-E)*(w-y))+(((D-E)*(J-L)-(J-K)*(D-H))*((D-E)*(J-L)-(J-K)*(D-H))+((J-K)*(w-y)-(w-x)*(J-L))*((J-K)*(w-y)-(w-x)*(J-L)))))*.5;q=q+(w+x+y)*.3333333432674408*Y;f[_+64>>2]=q;t=t+(D+E+H)*.3333333432674408*Y;f[_+68>>2]=t;v=v+(J+K+L)*.3333333432674408*Y;f[_+72>>2]=v;p=p+Y}while((o|0)!=(u+-1|0))}C=C+1|0}while((C|0)!=(i|0));o=_+64|0;u=1;z=j;g=k}else fa=365}else{j=0;k=0;l=0;m=0;fa=365}if((fa|0)==365){p=0.0;o=_+64|0;u=0;z=j;g=k}v=1.0/p;w=v*+f[o>>2];f[o>>2]=w;t=v*+f[_+68>>2];f[_+68>>2]=t;v=v*+f[_+72>>2];f[_+72>>2]=v;f[_+96>>2]=3402823466385288598117041.0e14;if(u){j=c[_+36>>2]|0;q=3402823466385288598117041.0e14;k=0;while(1){p=+r(+(+f[j+(k*36|0)+32>>2]+(w*+f[j+(k*36|0)+20>>2]+t*+f[j+(k*36|0)+24>>2]+v*+f[j+(k*36|0)+28>>2])));if(p>2]=p;else p=q;k=k+1|0;if((k|0)==(i|0))break;else q=p}}else p=3402823466385288598117041.0e14;i=c[_+8>>2]|0;if((i|0)>0){j=c[_+16>>2]|0;y=-3402823466385288598117041.0e14;x=-3402823466385288598117041.0e14;w=-3402823466385288598117041.0e14;v=3402823466385288598117041.0e14;t=3402823466385288598117041.0e14;q=3402823466385288598117041.0e14;k=0;do{Y=+f[j+(k<<4)>>2];v=Yy?Y:y;Y=+f[j+(k<<4)+4>>2];t=Yx?Y:x;Y=+f[j+(k<<4)+8>>2];q=Yw?Y:w;k=k+1|0}while((k|0)!=(i|0))}else{y=-3402823466385288598117041.0e14;x=-3402823466385288598117041.0e14;w=-3402823466385288598117041.0e14;v=3402823466385288598117041.0e14;t=3402823466385288598117041.0e14;q=3402823466385288598117041.0e14}f[_+100>>2]=v+y;f[_+104>>2]=t+x;f[_+108>>2]=q+w;f[_+112>>2]=0.0;Y=y-v;L=x-t;q=w-q;f[_+116>>2]=Y;f[_+120>>2]=L;f[_+124>>2]=q;f[_+128>>2]=0.0;t=p/1.7320507764816284;o=Y>2]*.5-t)*.0009765625;f[_+88>>2]=t;f[_+84>>2]=t;f[_+80>>2]=t;p=+f[_+116+(o<<2)>>2]*.5;f[_+80+(o<<2)>>2]=p;i=0;while(1){if(ig(_)|0){fa=478;break}p=p-q;f[_+80+(o<<2)>>2]=p;i=i+1|0;if(i>>>0>=1024){fa=477;break}}t:do if((fa|0)==477){f[_+88>>2]=t;f[_+84>>2]=t;f[_+80>>2]=t}else if((fa|0)==478){q=(+f[_+96>>2]-t)*.0009765625;j=c[_+80+((1<<(1<>2]|0;k=0;while(1){i=c[_+80+((1<>2]|0;f[_+80+((1<>2]=q+(c[h>>2]=i,+f[h>>2]);p=q+ +f[_+80+((1<<(1<>2];f[_+80+((1<<(1<>2]=p;k=k+1|0;if(!(ig(_)|0))break;if(k>>>0>=1024)break t;else j=(f[h>>2]=p,c[h>>2]|0)}c[_+80+((1<>2]=i;c[_+80+((1<<(1<>2]=j}while(0);if(z|0){c[6748]=(c[6748]|0)+1;uc(c[z+-4>>2]|0)}if(m|0){c[6748]=(c[6748]|0)+1;uc(c[m+-4>>2]|0)}if(l|0){c[6748]=(c[6748]|0)+1;uc(c[l+-4>>2]|0)}if(g|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}if(!((n|0)==0|($|0)==0)){c[6748]=(c[6748]|0)+1;uc(c[$+-4>>2]|0)}n=c[aa>>2]|0;o=c[ca>>2]|0;if((n|0)<=0){if(o|0)fa=500}else{k=0;do{m=o+(k*36|0)+4|0;l=o+(k*36|0)+12|0;j=c[l>>2]|0;i=o+(k*36|0)+16|0;if(j|0){if(a[i>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[j+-4>>2]|0)}c[l>>2]=0}a[i>>0]=1;c[l>>2]=0;c[m>>2]=0;c[o+(k*36|0)+8>>2]=0;k=k+1|0}while((k|0)!=(n|0));fa=500}if((fa|0)==500){if(a[ma+104+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[o+-4>>2]|0)}c[ca>>2]=0}if(!((ba|0)==0|(da|0)==0)){c[6748]=(c[6748]|0)+1;uc(c[da+-4>>2]|0)}i=c[ia>>2]|0;if(i|0){if(a[ma+124+56>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0)}c[ia>>2]=0}a[ma+124+56>>0]=1;c[ia>>2]=0;c[ma+124+44>>2]=0;c[ma+124+48>>2]=0;i=c[ja>>2]|0;if(i|0){if(a[ma+124+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0)}c[ja>>2]=0}a[ma+124+36>>0]=1;c[ja>>2]=0;c[ma+124+24>>2]=0;c[ma+124+28>>2]=0;i=c[ka>>2]|0;if(i|0){if(a[ma+124+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0)}c[ka>>2]=0}if(!la){ea=ma;return 1}c[6748]=(c[6748]|0)+1;uc(c[la+-4>>2]|0);ea=ma;return 1}function $a(b,d,e,g,h){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,t=0,w=0.0,x=0.0,y=0.0,z=0.0,A=0,B=0.0,C=0.0,D=0.0,E=0.0,F=0,G=0.0,H=0,I=0,J=0,K=0.0,L=0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0.0,R=0.0,S=0,T=0,U=0,V=0.0,W=0.0,X=0.0,Y=0.0,Z=0.0,_=0.0,$=0.0,aa=0.0,ba=0.0,ca=0.0,da=0.0,fa=0.0,ga=0.0,ia=0.0,ja=0.0,ka=0.0,la=0.0,ma=0.0,na=0,oa=0.0,pa=0.0,qa=0.0,ra=0,sa=0.0,ta=0,ua=0,wa=0,xa=0;xa=ea;ea=ea+688|0;i=c[b+20>>2]|0;if(!i){i=c[b+4>>2]|0;i=va[c[(c[i>>2]|0)+12>>2]&63](i,c[d+8>>2]|0,c[e+8>>2]|0)|0;c[b+20>>2]=i;a[b+16>>0]=1}c[h+4>>2]=i;ta=c[d+4>>2]|0;ua=c[e+4>>2]|0;j=c[ta+4>>2]|0;k=c[ua+4>>2]|0;if((j|0)==10&(k|0)==10){R=+f[i+752>>2];ra=c[ta+52>>2]|0;w=+f[ta+28+(ra<<2)>>2];Q=+f[ta+28+(((ra+2|0)%3|0)<<2)>>2];wa=c[ua+52>>2]|0;m=+f[ua+28+(wa<<2)>>2];P=+f[ua+28+(((wa+2|0)%3|0)<<2)>>2];b=c[d+12>>2]|0;d=c[e+12>>2]|0;E=+f[b+(ra<<2)>>2];K=+f[b+16+(ra<<2)>>2];G=+f[b+32+(ra<<2)>>2];o=+f[d+(wa<<2)>>2];p=+f[d+16+(wa<<2)>>2];z=+f[d+32+(wa<<2)>>2];M=+f[d+48>>2];N=+f[d+52>>2];O=+f[d+56>>2];B=M-+f[b+48>>2];C=N-+f[b+52>>2];D=O-+f[b+56>>2];l=1.0-(E*o+K*p+G*z)*(E*o+K*p+G*z);if(!(l==0.0)){l=(E*B+K*C+G*D-(E*o+K*p+G*z)*(o*B+p*C+z*D))/l;if(!(l<-w)){if(l>w)l=w}else l=-w}else l=0.0;n=(E*o+K*p+G*z)*l-(o*B+p*C+z*D);if(n<-m){l=(E*o+K*p+G*z)*-m+(E*B+K*C+G*D);if(!(l<-w))if(l>w){l=w;m=-m}else m=-m;else{l=-w;m=-m}}else if(n>m){l=m*(E*o+K*p+G*z)+(E*B+K*C+G*D);if(!(l<-w)){if(l>w)l=w}else l=-w}else m=n;y=o*m;x=p*m;w=z*m;m=y+(B-E*l);p=x+(C-K*l);l=w+(D-G*l);o=+s(+(l*l+(m*m+p*p)));if(!(o-Q-P>R)){do if(l*l+(m*m+p*p)<=1.4210854715202004e-14)if(+r(+G)>.7071067690849304){l=1.0/+s(+(K*K+G*G));f[xa+280>>2]=0.0;f[xa+280+4>>2]=-(G*l);f[xa+280+8>>2]=K*l;n=0.0;m=-(G*l);l=K*l;break}else{m=1.0/+s(+(E*E+K*K));f[xa+280>>2]=-(K*m);f[xa+280+4>>2]=E*m;f[xa+280+8>>2]=0.0;n=-(K*m);m=E*m;l=0.0;break}else{f[xa+280>>2]=m*-(1.0/o);f[xa+280+4>>2]=p*-(1.0/o);f[xa+280+8>>2]=l*-(1.0/o);f[xa+280+12>>2]=0.0;n=m*-(1.0/o);m=p*-(1.0/o);l=l*-(1.0/o)}while(0);f[xa+264>>2]=M+y+P*n;f[xa+264+4>>2]=N+x+P*m;f[xa+264+8>>2]=O+w+P*l;f[xa+264+12>>2]=0.0}if(o-Q-P>2]|0)+16>>2]&15](h,xa+280|0,xa+264|0,o-Q-P);i=c[h+4>>2]|0;if(!(c[i+748>>2]|0)){ea=xa;return}j=c[i+740>>2]|0;k=c[(c[h+8>>2]|0)+8>>2]|0;if((j|0)==(k|0)){Hd(i,j+4|0,(c[(c[h+12>>2]|0)+8>>2]|0)+4|0);ea=xa;return}else{Hd(i,(c[(c[h+12>>2]|0)+8>>2]|0)+4|0,k+4|0);ea=xa;return}}f[xa+128+128>>2]=999999984306749440.0;i=c[b+8>>2]|0;A=c[b+12>>2]|0;c[xa+48>>2]=10520;c[xa+48+4>>2]=0;c[xa+48+8>>2]=1065353216;c[xa+48+12>>2]=0;f[xa+48+16>>2]=0.0;c[xa+48+20>>2]=A;c[xa+48+24>>2]=i;c[xa+48+28>>2]=ta;c[xa+48+32>>2]=ua;c[xa+48+36>>2]=j;c[xa+48+40>>2]=k;f[xa+48+44>>2]=+ha[c[(c[ta>>2]|0)+48>>2]&15](ta);f[xa+48+48>>2]=+ha[c[(c[ua>>2]|0)+48>>2]&15](ua);a[xa+48+52>>0]=0;c[xa+48+60>>2]=-1;c[xa+48+72>>2]=1;c[xa+48+76>>2]=1;c[xa+48+28>>2]=ta;c[xa+48+32>>2]=ua;qa=+ha[c[(c[ta>>2]|0)+48>>2]&15](ta);sa=+ha[c[(c[ua>>2]|0)+48>>2]&15](ua);sa=qa+sa+ +f[(c[b+20>>2]|0)+752>>2];f[xa+128+128>>2]=sa*sa;i=c[d+12>>2]|0;c[xa+128>>2]=c[i>>2];c[xa+128+4>>2]=c[i+4>>2];c[xa+128+8>>2]=c[i+8>>2];c[xa+128+12>>2]=c[i+12>>2];A=xa+128+16|0;c[A>>2]=c[i+16>>2];c[A+4>>2]=c[i+16+4>>2];c[A+8>>2]=c[i+16+8>>2];c[A+12>>2]=c[i+16+12>>2];k=xa+128+32|0;c[k>>2]=c[i+32>>2];c[k+4>>2]=c[i+32+4>>2];c[k+8>>2]=c[i+32+8>>2];c[k+12>>2]=c[i+32+12>>2];H=xa+128+48|0;c[H>>2]=c[i+48>>2];c[H+4>>2]=c[i+48+4>>2];c[H+8>>2]=c[i+48+8>>2];c[H+12>>2]=c[i+48+12>>2];i=c[e+12>>2]|0;J=xa+128+64|0;c[J>>2]=c[i>>2];c[J+4>>2]=c[i+4>>2];c[J+8>>2]=c[i+8>>2];c[J+12>>2]=c[i+12>>2];F=xa+128+80|0;c[F>>2]=c[i+16>>2];c[F+4>>2]=c[i+16+4>>2];c[F+8>>2]=c[i+16+8>>2];c[F+12>>2]=c[i+16+12>>2];t=xa+128+96|0;c[t>>2]=c[i+32>>2];c[t+4>>2]=c[i+32+4>>2];c[t+8>>2]=c[i+32+8>>2];c[t+12>>2]=c[i+32+12>>2];I=xa+128+112|0;c[I>>2]=c[i+48>>2];c[I+4>>2]=c[i+48+4>>2];c[I+8>>2]=c[i+48+8>>2];c[I+12>>2]=c[i+48+12>>2];i=c[ta+4>>2]|0;if((i|0)<7?(q=c[ua+4>>2]|0,(q|0)<7):0){c[xa+40>>2]=7192;if(!i){i=q;m=0.0}else{m=+ha[c[(c[ta>>2]|0)+48>>2]&15](ta);i=c[ua+4>>2]|0}if(!i)l=0.0;else l=+ha[c[(c[ua>>2]|0)+48>>2]&15](ua);c[xa>>2]=7220;c[xa+4>>2]=h;f[xa+24>>2]=m;f[xa+28>>2]=l;a[xa+36>>0]=0;U=c[ta+52>>2]|0;a:do if(U|0){na=c[ua+52>>2]|0;do if(!na){if((c[ua+4>>2]|0)!=1)break a;F=xa+624+16|0;a[F>>0]=1;A=xa+624+12|0;c[A>>2]=0;t=xa+624+4|0;c[t>>2]=0;q=xa+624+8|0;c[q>>2]=0;i=c[e+12>>2]|0;qa=+f[ua+56>>2];sa=+f[ua+56+4>>2];m=+f[ua+56+8>>2];l=qa*+f[i>>2]+sa*+f[i+4>>2]+m*+f[i+8>>2]+ +f[i+48>>2];n=qa*+f[i+16>>2]+sa*+f[i+20>>2]+m*+f[i+24>>2]+ +f[i+52>>2];m=qa*+f[i+32>>2]+sa*+f[i+36>>2]+m*+f[i+40>>2]+ +f[i+56>>2];c[6747]=(c[6747]|0)+1;i=kb(35)|0;if(!i)j=0;else{c[(i+4+15&-16)+-4>>2]=i;j=i+4+15&-16}i=c[A>>2]|0;if(!i)i=0;else{c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0);i=c[t>>2]|0;c[A>>2]=0}a[F>>0]=1;c[A>>2]=j;c[q>>2]=1;f[j+(i<<4)>>2]=l;f[j+(i<<4)+4>>2]=n;f[j+(i<<4)+8>>2]=m;f[j+(i<<4)+12>>2]=0.0;i=(c[t>>2]|0)+1|0;c[t>>2]=i;wa=c[e+12>>2]|0;qa=+f[ua+56+16>>2];sa=+f[ua+56+20>>2];m=+f[ua+56+24>>2];l=qa*+f[wa>>2]+sa*+f[wa+4>>2]+m*+f[wa+8>>2]+ +f[wa+48>>2];n=qa*+f[wa+16>>2]+sa*+f[wa+20>>2]+m*+f[wa+24>>2]+ +f[wa+52>>2];m=qa*+f[wa+32>>2]+sa*+f[wa+36>>2]+m*+f[wa+40>>2]+ +f[wa+56>>2];if((i|0)==(c[q>>2]|0)?(L=(i|0)==0?1:i<<1,(i|0)<(L|0)):0){if(!L)j=0;else{c[6747]=(c[6747]|0)+1;i=kb((L<<4|3)+16|0)|0;if(!i)j=0;else{c[(i+4+15&-16)+-4>>2]=i;j=i+4+15&-16}i=c[t>>2]|0}if((i|0)>0){k=0;do{wa=j+(k<<4)|0;ra=(c[A>>2]|0)+(k<<4)|0;c[wa>>2]=c[ra>>2];c[wa+4>>2]=c[ra+4>>2];c[wa+8>>2]=c[ra+8>>2];c[wa+12>>2]=c[ra+12>>2];k=k+1|0}while((k|0)!=(i|0))}i=c[A>>2]|0;if(i|0){if(a[F>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0)}c[A>>2]=0}a[F>>0]=1;c[A>>2]=j;c[q>>2]=L;i=c[t>>2]|0}wa=c[A>>2]|0;f[wa+(i<<4)>>2]=l;f[wa+(i<<4)+4>>2]=n;f[wa+(i<<4)+8>>2]=m;f[wa+(i<<4)+12>>2]=0.0;i=(c[t>>2]|0)+1|0;c[t>>2]=i;wa=c[e+12>>2]|0;qa=+f[ua+56+32>>2];sa=+f[ua+56+36>>2];m=+f[ua+56+40>>2];l=qa*+f[wa>>2]+sa*+f[wa+4>>2]+m*+f[wa+8>>2]+ +f[wa+48>>2];n=qa*+f[wa+16>>2]+sa*+f[wa+20>>2]+m*+f[wa+24>>2]+ +f[wa+52>>2];m=qa*+f[wa+32>>2]+sa*+f[wa+36>>2]+m*+f[wa+40>>2]+ +f[wa+56>>2];if((i|0)==(c[q>>2]|0)?(S=(i|0)==0?1:i<<1,(i|0)<(S|0)):0){if(!S)j=0;else{c[6747]=(c[6747]|0)+1;i=kb((S<<4|3)+16|0)|0;if(!i)j=0;else{c[(i+4+15&-16)+-4>>2]=i;j=i+4+15&-16}i=c[t>>2]|0}if((i|0)>0){k=0;do{wa=j+(k<<4)|0;e=(c[A>>2]|0)+(k<<4)|0;c[wa>>2]=c[e>>2];c[wa+4>>2]=c[e+4>>2];c[wa+8>>2]=c[e+8>>2];c[wa+12>>2]=c[e+12>>2];k=k+1|0}while((k|0)!=(i|0))}i=c[A>>2]|0;if(i|0){if(a[F>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0)}c[A>>2]=0}a[F>>0]=1;c[A>>2]=j;c[q>>2]=S;i=c[t>>2]|0}wa=c[A>>2]|0;f[wa+(i<<4)>>2]=l;f[wa+(i<<4)+4>>2]=n;f[wa+(i<<4)+8>>2]=m;f[wa+(i<<4)+12>>2]=0.0;c[t>>2]=(c[t>>2]|0)+1;o=+f[(c[b+20>>2]|0)+752>>2];Hb(xa+48|0,xa+128|0,xa+40|0,c[g+20>>2]|0,0);l=+f[xa+48+4>>2];m=+f[xa+48+8>>2];n=+f[xa+48+12>>2];if(l*l+m*m+n*n>1.1920928955078125e-07){qa=1.0/(l*l+m*m+n*n);f[xa+384>>2]=l*qa;f[xa+384+4>>2]=m*qa;f[xa+384+8>>2]=n*qa;f[xa+384+12>>2]=0.0;qa=+f[xa+48+56>>2];sa=+ha[c[(c[ta>>2]|0)+48>>2]&15](ta);sa=qa-sa-+ha[c[(c[ua>>2]|0)+48>>2]&15](ua);Gb(xa+384|0,c[ta+52>>2]|0,c[d+12>>2]|0,xa+624|0,sa-o,o,h)}do if(a[b+16>>0]|0?(T=c[h+4>>2]|0,c[T+748>>2]|0):0){i=c[T+740>>2]|0;j=c[(c[h+8>>2]|0)+8>>2]|0;if((i|0)==(j|0)){Hd(T,i+4|0,(c[(c[h+12>>2]|0)+8>>2]|0)+4|0);break}else{Hd(T,(c[(c[h+12>>2]|0)+8>>2]|0)+4|0,j+4|0);break}}while(0);i=c[A>>2]|0;if(i|0){if(a[F>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0)}c[A>>2]=0}}else{sa=+f[(c[b+20>>2]|0)+752>>2];b:do if(!(a[g+24>>0]|0)){Hb(xa+48|0,xa+128|0,xa,c[g+20>>2]|0,0);l=+f[xa+32>>2];if(l<0.0&(a[xa+36>>0]|0)!=0){m=+f[xa+8>>2];n=+f[xa+12>>2];o=+f[xa+16>>2];i=c[xa+20>>2]|0;ra=112}}else{F=c[d+12>>2]|0;H=c[e+12>>2]|0;c[6730]=(c[6730]|0)+1;ia=+f[U+64>>2];ja=+f[U+68>>2];l=+f[F+4>>2];ka=+f[U+72>>2];m=+f[F+8>>2];n=+f[F+16>>2];o=+f[F+20>>2];p=+f[F+24>>2];w=+f[F+32>>2];x=+f[F+36>>2];y=+f[F+40>>2];la=+f[na+64>>2];ma=+f[na+68>>2];pa=+f[na+72>>2];oa=ia*+f[F>>2]+ja*l+ka*m+ +f[F+48>>2]-(la*+f[H>>2]+ma*+f[H+4>>2]+pa*+f[H+8>>2]+ +f[H+48>>2]);qa=ia*n+ja*o+ka*p+ +f[F+52>>2]-(la*+f[H+16>>2]+ma*+f[H+20>>2]+pa*+f[H+24>>2]+ +f[H+52>>2]);pa=ia*w+ja*x+ka*y+ +f[F+56>>2]-(la*+f[H+32>>2]+ma*+f[H+36>>2]+pa*+f[H+40>>2]+ +f[H+56>>2]);k=c[U+28>>2]|0;c:do if((k|0)>0){D=m;E=n;C=o;G=0.0;K=3402823466385288598117041.0e14;j=0;m=0.0;n=0.0;o=0.0;while(1){g=c[U+36>>2]|0;ka=+f[g+(j*36|0)+20>>2];la=+f[g+(j*36|0)+24>>2];ma=+f[g+(j*36|0)+28>>2];z=ka*+f[F>>2]+la*l+ma*D;p=ka*E+la*C+ma*p;l=ka*w+la*x+ma*y;f[xa+296>>2]=z;f[xa+296+4>>2]=p;f[xa+296+8>>2]=l;f[xa+296+12>>2]=0.0;if(z*oa+p*qa+l*pa<0.0){f[xa+296>>2]=-z;f[xa+296+4>>2]=-p;f[xa+296+8>>2]=-l;z=-z;B=-p;l=-l}else B=p;c[6728]=(c[6728]|0)+1;if(Nh(F,H,oa,qa,pa,z,B,l,U,na,K)|0){c[6729]=(c[6729]|0)+1;kg(U,F,xa+296|0,xa+624|0,xa+384|0,xa+360|0,xa+344|0);kg(na,H,xa+296|0,xa+380|0,xa+376|0,xa+328|0,xa+312|0);p=+f[xa+384>>2];w=+f[xa+380>>2];do if(p>2];y=+f[xa+624>>2];if(x=(k|0)){l=z;break c}l=+f[F+4>>2];D=+f[F+8>>2];E=+f[F+16>>2];C=+f[F+20>>2];p=+f[F+24>>2];w=+f[F+32>>2];x=+f[F+36>>2];y=+f[F+40>>2];G=B;K=z;j=i}break b}else{l=3402823466385288598117041.0e14;m=0.0;n=0.0;o=0.0}while(0);k=c[na+28>>2]|0;d:do if((k|0)>0){D=0.0;j=0;while(1){g=c[na+36>>2]|0;la=+f[g+(j*36|0)+20>>2];ma=+f[g+(j*36|0)+24>>2];x=+f[g+(j*36|0)+28>>2];p=la*+f[H>>2]+ma*+f[H+4>>2]+x*+f[H+8>>2];w=la*+f[H+16>>2]+ma*+f[H+20>>2]+x*+f[H+24>>2];x=la*+f[H+32>>2]+ma*+f[H+36>>2]+x*+f[H+40>>2];f[xa+296>>2]=p;f[xa+296+4>>2]=w;f[xa+296+8>>2]=x;f[xa+296+12>>2]=0.0;if(p*oa+w*qa+x*pa<0.0){f[xa+296>>2]=-p;f[xa+296+4>>2]=-w;f[xa+296+8>>2]=-x;p=-p;w=-w;x=-x}c[6728]=(c[6728]|0)+1;if(Nh(F,H,oa,qa,pa,p,w,x,U,na,l)|0){c[6729]=(c[6729]|0)+1;kg(U,F,xa+296|0,xa+624|0,xa+384|0,xa+360|0,xa+344|0);kg(na,H,xa+296|0,xa+380|0,xa+376|0,xa+328|0,xa+312|0);y=+f[xa+384>>2];z=+f[xa+380>>2];do if(y>2];C=+f[xa+624>>2];if(B=(k|0))break d;else D=y}break b}while(0);i=c[U+48>>2]|0;e:do if((i|0)>0){k=c[na+48>>2]|0;x=0.0;A=0;j=-1;q=-1;B=0.0;C=0.0;D=0.0;E=0.0;R=0.0;V=0.0;X=0.0;p=0.0;w=0.0;Q=0.0;P=0.0;O=0.0;K=0.0;M=0.0;N=0.0;y=0.0;z=0.0;G=0.0;f:while(1){g=c[U+56>>2]|0;ia=+f[g+(A<<4)>>2];ja=+f[g+(A<<4)+4>>2];ka=+f[g+(A<<4)+8>>2];ma=ia*+f[F>>2]+ja*+f[F+4>>2]+ka*+f[F+8>>2];la=ia*+f[F+16>>2]+ja*+f[F+20>>2]+ka*+f[F+24>>2];ka=ia*+f[F+32>>2]+ja*+f[F+36>>2]+ka*+f[F+40>>2];if((k|0)>0){W=x;t=0;ja=m;ia=n;ga=o;Z=B;$=C;ba=D;while(1){g=c[na+56>>2]|0;da=+f[g+(t<<4)>>2];fa=+f[g+(t<<4)+4>>2];aa=+f[g+(t<<4)+8>>2];Y=da*+f[H>>2]+fa*+f[H+4>>2]+aa*+f[H+8>>2];_=da*+f[H+16>>2]+fa*+f[H+20>>2]+aa*+f[H+24>>2];aa=da*+f[H+32>>2]+fa*+f[H+36>>2]+aa*+f[H+40>>2];f[xa+296>>2]=la*aa-ka*_;f[xa+296+4>>2]=ka*Y-ma*aa;f[xa+296+8>>2]=ma*_-la*Y;f[xa+296+12>>2]=0.0;do if(!(+r(+(la*aa-ka*_))>1.0e-06)){if(+r(+(ka*Y-ma*aa))>1.0e-06){ra=76;break}if(!(+r(+(ma*_-la*Y))>1.0e-06)){m=ja;n=ia;o=ga;ca=E;da=R;fa=V}else ra=76}else ra=76;while(0);do if((ra|0)==76){ra=0;o=1.0/+s(+((ma*_-la*Y)*(ma*_-la*Y)+((la*aa-ka*_)*(la*aa-ka*_)+(ka*Y-ma*aa)*(ka*Y-ma*aa))));m=(la*aa-ka*_)*o;f[xa+296>>2]=m;n=(ka*Y-ma*aa)*o;f[xa+296+4>>2]=n;o=(ma*_-la*Y)*o;f[xa+296+8>>2]=o;if(m*oa+n*qa+pa*o<0.0){f[xa+296>>2]=-m;f[xa+296+4>>2]=-n;f[xa+296+8>>2]=-o;m=-m;n=-n;o=-o}c[6728]=(c[6728]|0)+1;if(!(Nh(F,H,oa,qa,pa,m,n,o,U,na,l)|0)){m=ja;n=ia;o=ga;ca=E;da=R;fa=V;break}c[6729]=(c[6729]|0)+1;kg(U,F,xa+296|0,xa+624|0,xa+384|0,xa+360|0,xa+344|0);kg(na,H,xa+296|0,xa+380|0,xa+376|0,xa+328|0,xa+312|0);x=+f[xa+384>>2];B=+f[xa+380>>2];do if(!(x>2];D=+f[xa+624>>2];if(C>2];C=+f[xa+344+4>>2];D=+f[xa+344+8>>2];E=+f[xa+328>>2];R=+f[xa+328+4>>2];V=+f[xa+328+8>>2];break}else{x=C-D;i=1;B=+f[xa+360>>2];C=+f[xa+360+4>>2];D=+f[xa+360+8>>2];E=+f[xa+312>>2];R=+f[xa+312+4>>2];V=+f[xa+312+8>>2];break}}else{x=W;i=0;B=Z;C=$;D=ba}while(0);if(!i)break f;if(!(x>2]|0;if((t|0)>=(k|0))break;else{ja=m;ia=n;ga=o;E=ca;R=da;V=fa}}i=c[U+48>>2]|0;x=W;B=Z;C=$;D=ba;E=ca;R=da;V=fa;W=X}else W=X;A=A+1|0;if((A|0)>=(i|0)){i=q;l=W;break e}else X=W}break b}else{j=-1;i=-1;l=0.0;p=0.0;w=0.0;Q=0.0;P=0.0;O=0.0;K=0.0;M=0.0;N=0.0;y=0.0;z=0.0;G=0.0}while(0);if((i|j|0)>-1){C=Q-l;E=P-p;D=O-w;p=y*K+z*M+G*N;w=C*K+E*M+D*N;l=C*y+E*z+D*G;do if(1.0-p*p==0.0)x=0.0;else{if((w-l*p)/(1.0-p*p)<-1000000015047466219876688.0e6){x=-1000000015047466219876688.0e6;break}if(!((w-l*p)/(1.0-p*p)>1000000015047466219876688.0e6)){x=(w-l*p)/(1.0-p*p);break}x=1000000015047466219876688.0e6}while(0);l=p*x-l;do if(l<-1000000015047466219876688.0e6){if(w-p*1000000015047466219876688.0e6<-1000000015047466219876688.0e6){p=-1000000015047466219876688.0e6;l=-1000000015047466219876688.0e6;break}if(!(w-p*1000000015047466219876688.0e6>1000000015047466219876688.0e6)){p=w-p*1000000015047466219876688.0e6;l=-1000000015047466219876688.0e6;break}p=1000000015047466219876688.0e6;l=-1000000015047466219876688.0e6}else{if(!(l>1000000015047466219876688.0e6)){p=x;break}if(w+p*1000000015047466219876688.0e6<-1000000015047466219876688.0e6){p=-1000000015047466219876688.0e6;l=1000000015047466219876688.0e6;break}if(!(w+p*1000000015047466219876688.0e6>1000000015047466219876688.0e6)){p=w+p*1000000015047466219876688.0e6;l=1000000015047466219876688.0e6;break}p=1000000015047466219876688.0e6;l=1000000015047466219876688.0e6}while(0);B=y*l;z=z*l;y=G*l;x=B+(C-K*p);w=z+(E-M*p);p=y+(D-N*p);f[xa+624>>2]=x;f[xa+624+4>>2]=w;f[xa+624+8>>2]=p;f[xa+624+12>>2]=0.0;if(p*p+(x*x+w*w)>1.1920928955078125e-07){l=+s(+(p*p+(x*x+w*w)));f[xa+624>>2]=x*(1.0/l);f[xa+624+4>>2]=w*(1.0/l);f[xa+624+8>>2]=p*(1.0/l);if(x*(1.0/l)*oa+w*(1.0/l)*qa+p*(1.0/l)*pa<0.0){f[xa+624>>2]=-(x*(1.0/l));f[xa+624+4>>2]=-(w*(1.0/l));f[xa+624+8>>2]=-(p*(1.0/l))}f[xa+384>>2]=Q+B;f[xa+384+4>>2]=P+z;f[xa+384+8>>2]=O+y;f[xa+384+12>>2]=0.0;Na[c[(c[h>>2]|0)+16>>2]&15](h,xa+624|0,xa+384|0,-l)}}if(oa*m+qa*n+pa*o<0.0){l=-1000000015047466219876688.0e6;m=-m;n=-n;o=-o;i=0;ra=112}else{l=-1000000015047466219876688.0e6;i=0;ra=112}}while(0);if((ra|0)==112){U=c[ta+52>>2]|0;g=c[ua+52>>2]|0;T=c[d+12>>2]|0;S=c[e+12>>2]|0;N=l-sa;G=1.0/+s(+(m*m+n*n+o*o));M=m*G;K=n*G;G=o*G;f[xa+624>>2]=M;f[xa+624+4>>2]=K;f[xa+624+8>>2]=G;c[xa+624+12>>2]=i;j=c[g+28>>2]|0;t=c[g+36>>2]|0;if((j|0)>0){l=+f[S>>2];m=+f[S+4>>2];n=+f[S+8>>2];o=+f[S+16>>2];p=+f[S+20>>2];w=+f[S+24>>2];x=+f[S+32>>2];y=+f[S+36>>2];z=+f[S+40>>2];i=-1;E=-3402823466385288598117041.0e14;q=0;while(1){B=+f[t+(q*36|0)+20>>2];C=+f[t+(q*36|0)+24>>2];D=+f[t+(q*36|0)+28>>2];k=M*(B*l+C*m+D*n)+K*(B*o+C*p+D*w)+G*(B*x+C*y+D*z)>E;i=k?q:i;q=q+1|0;if((q|0)==(j|0)){I=i;break}else E=k?M*(B*l+C*m+D*n)+K*(B*o+C*p+D*w)+G*(B*x+C*y+D*z):E}}else I=-1;a[xa+384+16>>0]=1;L=xa+384+12|0;c[L>>2]=0;J=xa+384+4|0;c[J>>2]=0;c[xa+384+8>>2]=0;H=c[t+(I*36|0)+4>>2]|0;g:do if((H|0)>0){F=t+(I*36|0)+12|0;i=0;k=0;j=0;while(1){d=c[(c[F>>2]|0)+(j<<2)>>2]|0;e=c[g+16>>2]|0;pa=+f[e+(d<<4)>>2];qa=+f[e+(d<<4)+4>>2];m=+f[e+(d<<4)+8>>2];l=pa*+f[S>>2]+qa*+f[S+4>>2]+m*+f[S+8>>2]+ +f[S+48>>2];n=pa*+f[S+16>>2]+qa*+f[S+20>>2]+m*+f[S+24>>2]+ +f[S+52>>2];m=pa*+f[S+32>>2]+qa*+f[S+36>>2]+m*+f[S+40>>2]+ +f[S+56>>2];if((i|0)==(k|0)){A=(k|0)==0?1:k<<1;if((k|0)<(A|0)){if(!A){i=k;k=0}else{c[6747]=(c[6747]|0)+1;i=kb((A<<4|3)+16|0)|0;if(!i)k=0;else{c[(i+4+15&-16)+-4>>2]=i;k=i+4+15&-16}i=c[J>>2]|0}t=c[L>>2]|0;if((i|0)<=0){if(t)ra=128}else{q=0;do{d=k+(q<<4)|0;e=t+(q<<4)|0;c[d>>2]=c[e>>2];c[d+4>>2]=c[e+4>>2];c[d+8>>2]=c[e+8>>2];c[d+12>>2]=c[e+12>>2];q=q+1|0}while((q|0)!=(i|0));ra=128}if((ra|0)==128){ra=0;if(a[xa+384+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[t+-4>>2]|0);i=c[J>>2]|0}c[L>>2]=0}a[xa+384+16>>0]=1;c[L>>2]=k;c[xa+384+8>>2]=A}else i=k}d=c[L>>2]|0;f[d+(i<<4)>>2]=l;f[d+(i<<4)+4>>2]=n;f[d+(i<<4)+8>>2]=m;f[d+(i<<4)+12>>2]=0.0;i=(c[J>>2]|0)+1|0;c[J>>2]=i;j=j+1|0;if((j|0)>=(H|0))break g;k=c[xa+384+8>>2]|0}}while(0);if((I|0)>-1)Gb(xa+624|0,U,T,xa+384|0,N,sa,h);i=c[L>>2]|0;if(i|0){if(a[xa+384+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0)}c[L>>2]=0}}if(a[b+16>>0]|0?(wa=c[h+4>>2]|0,c[wa+748>>2]|0):0){i=c[wa+740>>2]|0;j=c[(c[h+8>>2]|0)+8>>2]|0;if((i|0)==(j|0)){Hd(wa,i+4|0,(c[(c[h+12>>2]|0)+8>>2]|0)+4|0);break}else{Hd(wa,(c[(c[h+12>>2]|0)+8>>2]|0)+4|0,j+4|0);break}}}while(0);ea=xa;return}while(0)}Hb(xa+48|0,xa+128|0,h,c[g+20>>2]|0,0);if((c[b+28>>2]|0?(c[(c[h+4>>2]|0)+748>>2]|0)<(c[b+32>>2]|0):0)?(G=+f[xa+48+4>>2],K=+f[xa+48+8>>2],M=+f[xa+48+12>>2],G*G+K*K+M*M>1.1920928955078125e-07):0){E=1.0/(G*G+K*K+M*M);if(+r(+(M*E))>.7071067690849304){n=1.0/+s(+(M*E*(M*E)+K*E*(K*E)));m=0.0;o=K*E*n;n=-(M*E*n)}else{n=1.0/+s(+(G*E*(G*E)+K*E*(K*E)));m=-(K*E*n);o=0.0;n=G*E*n}D=+ha[c[(c[ta>>2]|0)+16>>2]&15](ta);C=+ha[c[(c[ua>>2]|0)+16>>2]&15](ua);l=.019999999552965164/(D>2]=c[xa+128>>2];c[xa+624+4>>2]=c[xa+128+4>>2];c[xa+624+8>>2]=c[xa+128+8>>2];c[xa+624+12>>2]=c[xa+128+12>>2];c[xa+624+16>>2]=c[A>>2];c[xa+624+16+4>>2]=c[A+4>>2];c[xa+624+16+8>>2]=c[A+8>>2];c[xa+624+16+12>>2]=c[A+12>>2];c[xa+624+32>>2]=c[k>>2];c[xa+624+32+4>>2]=c[k+4>>2];c[xa+624+32+8>>2]=c[k+8>>2];c[xa+624+32+12>>2]=c[k+12>>2];c[xa+624+48>>2]=c[H>>2];c[xa+624+48+4>>2]=c[H+4>>2];c[xa+624+48+8>>2]=c[H+8>>2];c[xa+624+48+12>>2]=c[H+12>>2]}else{c[xa+624>>2]=c[J>>2];c[xa+624+4>>2]=c[J+4>>2];c[xa+624+8>>2]=c[J+8>>2];c[xa+624+12>>2]=c[J+12>>2];c[xa+624+16>>2]=c[F>>2];c[xa+624+16+4>>2]=c[F+4>>2];c[xa+624+16+8>>2]=c[F+8>>2];c[xa+624+16+12>>2]=c[F+12>>2];c[xa+624+32>>2]=c[t>>2];c[xa+624+32+4>>2]=c[t+4>>2];c[xa+624+32+8>>2]=c[t+8>>2];c[xa+624+32+12>>2]=c[t+12>>2];c[xa+624+48>>2]=c[I>>2];c[xa+624+48+4>>2]=c[I+4>>2];c[xa+624+48+8>>2]=c[I+8>>2];c[xa+624+48+12>>2]=c[I+12>>2]}i=c[b+28>>2]|0;if((i|0)>0){B=m*m+n*n+o*o;x=+s(+B);p=(l>.39269909262657166?.39269909262657166:l)*.5;x=+v(+p)/x;z=m*x;y=n*x;x=o*x;p=+u(+p);w=+s(+(M*E*(M*E)+(G*E*(G*E)+K*E*(K*E))));j=0;do{if(B>1.1920928955078125e-07){l=6.2831854820251465/+(i|0)*+(j|0)*.5;m=+v(+l)/w;n=G*E*m;o=K*E*m;m=M*E*m;l=+u(+l);if(D>2]|0;aa=+f[wa>>2];ba=+f[wa+16>>2];ca=+f[wa+32>>2];da=+f[wa+4>>2];fa=+f[wa+20>>2];ga=+f[wa+36>>2];ia=+f[wa+8>>2];la=+f[wa+24>>2];sa=+f[wa+40>>2];f[xa+128>>2]=(1.0-(pa*qa+$*ja))*aa+(ma*qa-ka*ja)*ba+(ma*ja+ka*qa)*ca;f[xa+128+4>>2]=(1.0-(pa*qa+$*ja))*da+(ma*qa-ka*ja)*fa+(ma*ja+ka*qa)*ga;f[xa+128+8>>2]=(1.0-(pa*qa+$*ja))*ia+(ma*qa-ka*ja)*la+(ma*ja+ka*qa)*sa;f[xa+128+12>>2]=0.0;f[xa+128+16>>2]=(ma*qa+ka*ja)*aa+(1.0-(ma*oa+$*ja))*ba+(pa*ja-ka*oa)*ca;f[xa+128+20>>2]=(ma*qa+ka*ja)*da+(1.0-(ma*oa+$*ja))*fa+(pa*ja-ka*oa)*ga;f[xa+128+24>>2]=(ma*qa+ka*ja)*ia+(1.0-(ma*oa+$*ja))*la+(pa*ja-ka*oa)*sa;f[xa+128+28>>2]=0.0;f[xa+128+32>>2]=(ma*ja-ka*qa)*aa+(pa*ja+ka*oa)*ba+(1.0-(ma*oa+pa*qa))*ca;f[xa+128+36>>2]=(ma*ja-ka*qa)*da+(pa*ja+ka*oa)*fa+(1.0-(ma*oa+pa*qa))*ga;f[xa+128+40>>2]=(ma*ja-ka*qa)*ia+(pa*ja+ka*oa)*la+(1.0-(ma*oa+pa*qa))*sa;f[xa+128+44>>2]=0.0;wa=c[e+12>>2]|0;c[J>>2]=c[wa>>2];c[J+4>>2]=c[wa+4>>2];c[J+8>>2]=c[wa+8>>2];c[J+12>>2]=c[wa+12>>2];c[F>>2]=c[wa+16>>2];c[F+4>>2]=c[wa+16+4>>2];c[F+8>>2]=c[wa+16+8>>2];c[F+12>>2]=c[wa+16+12>>2];c[t>>2]=c[wa+32>>2];c[t+4>>2]=c[wa+32+4>>2];c[t+8>>2]=c[wa+32+8>>2];c[t+12>>2]=c[wa+32+12>>2];c[I>>2]=c[wa+48>>2];c[I+4>>2]=c[wa+48+4>>2];c[I+8>>2]=c[wa+48+8>>2];c[I+12>>2]=c[wa+48+12>>2]}else{wa=c[d+12>>2]|0;c[xa+128>>2]=c[wa>>2];c[xa+128+4>>2]=c[wa+4>>2];c[xa+128+8>>2]=c[wa+8>>2];c[xa+128+12>>2]=c[wa+12>>2];c[A>>2]=c[wa+16>>2];c[A+4>>2]=c[wa+16+4>>2];c[A+8>>2]=c[wa+16+8>>2];c[A+12>>2]=c[wa+16+12>>2];c[k>>2]=c[wa+32>>2];c[k+4>>2]=c[wa+32+4>>2];c[k+8>>2]=c[wa+32+8>>2];c[k+12>>2]=c[wa+32+12>>2];c[H>>2]=c[wa+48>>2];c[H+4>>2]=c[wa+48+4>>2];c[H+8>>2]=c[wa+48+8>>2];c[H+12>>2]=c[wa+48+12>>2];ma=m*(z*-m+(y*l+p*-o)-x*-n)+(n*(p*l-z*-n-y*-o-x*-m)+l*(x*-o+(z*l+p*-n)-y*-m))-o*(y*-n+(x*l+p*-m)-z*-o);pa=n*(y*-n+(x*l+p*-m)-z*-o)+(l*(z*-m+(y*l+p*-o)-x*-n)+o*(p*l-z*-n-y*-o-x*-m))-m*(x*-o+(z*l+p*-n)-y*-m);$=o*(x*-o+(z*l+p*-n)-y*-m)+(m*(p*l-z*-n-y*-o-x*-m)+l*(y*-n+(x*l+p*-m)-z*-o))-n*(z*-m+(y*l+p*-o)-x*-n);ka=l*(p*l-z*-n-y*-o-x*-m)-n*(x*-o+(z*l+p*-n)-y*-m)-o*(z*-m+(y*l+p*-o)-x*-n)-m*(y*-n+(x*l+p*-m)-z*-o);oa=ma*(2.0/(ka*ka+($*$+(ma*ma+pa*pa))));qa=pa*(2.0/(ka*ka+($*$+(ma*ma+pa*pa))));ja=$*(2.0/(ka*ka+($*$+(ma*ma+pa*pa))));wa=c[e+12>>2]|0;aa=+f[wa>>2];ba=+f[wa+16>>2];ca=+f[wa+32>>2];da=+f[wa+4>>2];fa=+f[wa+20>>2];ga=+f[wa+36>>2];ia=+f[wa+8>>2];la=+f[wa+24>>2];sa=+f[wa+40>>2];f[xa+128+64>>2]=(1.0-(pa*qa+$*ja))*aa+(ma*qa-ka*ja)*ba+(ma*ja+ka*qa)*ca;f[xa+128+68>>2]=(1.0-(pa*qa+$*ja))*da+(ma*qa-ka*ja)*fa+(ma*ja+ka*qa)*ga;f[xa+128+72>>2]=(1.0-(pa*qa+$*ja))*ia+(ma*qa-ka*ja)*la+(ma*ja+ka*qa)*sa;f[xa+128+76>>2]=0.0;f[xa+128+80>>2]=(ma*qa+ka*ja)*aa+(1.0-(ma*oa+$*ja))*ba+(pa*ja-ka*oa)*ca;f[xa+128+84>>2]=(ma*qa+ka*ja)*da+(1.0-(ma*oa+$*ja))*fa+(pa*ja-ka*oa)*ga;f[xa+128+88>>2]=(ma*qa+ka*ja)*ia+(1.0-(ma*oa+$*ja))*la+(pa*ja-ka*oa)*sa;f[xa+128+92>>2]=0.0;f[xa+128+96>>2]=(ma*ja-ka*qa)*aa+(pa*ja+ka*oa)*ba+(1.0-(ma*oa+pa*qa))*ca;f[xa+128+100>>2]=(ma*ja-ka*qa)*da+(pa*ja+ka*oa)*fa+(1.0-(ma*oa+pa*qa))*ga;f[xa+128+104>>2]=(ma*ja-ka*qa)*ia+(pa*ja+ka*oa)*la+(1.0-(ma*oa+pa*qa))*sa;f[xa+128+108>>2]=0.0}i=c[g+20>>2]|0;c[xa+384>>2]=7248;c[xa+384+32>>2]=h;c[xa+384+36>>2]=c[xa+128>>2];c[xa+384+36+4>>2]=c[xa+128+4>>2];c[xa+384+36+8>>2]=c[xa+128+8>>2];c[xa+384+36+12>>2]=c[xa+128+12>>2];c[xa+384+52>>2]=c[A>>2];c[xa+384+52+4>>2]=c[A+4>>2];c[xa+384+52+8>>2]=c[A+8>>2];c[xa+384+52+12>>2]=c[A+12>>2];c[xa+384+68>>2]=c[k>>2];c[xa+384+68+4>>2]=c[k+4>>2];c[xa+384+68+8>>2]=c[k+8>>2];c[xa+384+68+12>>2]=c[k+12>>2];c[xa+384+84>>2]=c[H>>2];c[xa+384+84+4>>2]=c[H+4>>2];c[xa+384+84+8>>2]=c[H+8>>2];c[xa+384+84+12>>2]=c[H+12>>2];c[xa+384+100>>2]=c[J>>2];c[xa+384+100+4>>2]=c[J+4>>2];c[xa+384+100+8>>2]=c[J+8>>2];c[xa+384+100+12>>2]=c[J+12>>2];c[xa+384+116>>2]=c[F>>2];c[xa+384+116+4>>2]=c[F+4>>2];c[xa+384+116+8>>2]=c[F+8>>2];c[xa+384+116+12>>2]=c[F+12>>2];c[xa+384+132>>2]=c[t>>2];c[xa+384+132+4>>2]=c[t+4>>2];c[xa+384+132+8>>2]=c[t+8>>2];c[xa+384+132+12>>2]=c[t+12>>2];c[xa+384+148>>2]=c[I>>2];c[xa+384+148+4>>2]=c[I+4>>2];c[xa+384+148+8>>2]=c[I+8>>2];c[xa+384+148+12>>2]=c[I+12>>2];c[xa+384+164>>2]=c[xa+624>>2];c[xa+384+164+4>>2]=c[xa+624+4>>2];c[xa+384+164+8>>2]=c[xa+624+8>>2];c[xa+384+164+12>>2]=c[xa+624+12>>2];c[xa+384+180>>2]=c[xa+624+16>>2];c[xa+384+180+4>>2]=c[xa+624+16+4>>2];c[xa+384+180+8>>2]=c[xa+624+16+8>>2];c[xa+384+180+12>>2]=c[xa+624+16+12>>2];c[xa+384+196>>2]=c[xa+624+32>>2];c[xa+384+196+4>>2]=c[xa+624+32+4>>2];c[xa+384+196+8>>2]=c[xa+624+32+8>>2];c[xa+384+196+12>>2]=c[xa+624+32+12>>2];c[xa+384+212>>2]=c[xa+624+48>>2];c[xa+384+212+4>>2]=c[xa+624+48+4>>2];c[xa+384+212+8>>2]=c[xa+624+48+8>>2];c[xa+384+212+12>>2]=c[xa+624+48+12>>2];a[xa+384+228>>0]=D>2]=i;Hb(xa+48|0,xa+128|0,xa+384|0,i,0);i=c[b+28>>2]|0}j=j+1|0}while((j|0)<(i|0))}}if(!(a[b+16>>0]|0)){ea=xa;return}i=c[h+4>>2]|0;if(!(c[i+748>>2]|0)){ea=xa;return}j=c[i+740>>2]|0;k=c[(c[h+8>>2]|0)+8>>2]|0;if((j|0)==(k|0)){Hd(i,j+4|0,(c[(c[h+12>>2]|0)+8>>2]|0)+4|0);ea=xa;return}else{Hd(i,(c[(c[h+12>>2]|0)+8>>2]|0)+4|0,k+4|0);ea=xa;return}}function ab(b,d,e){b=b|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0,q=0.0,t=0.0,u=0,v=0.0,w=0.0,x=0.0,y=0,A=0,B=0.0,C=0.0,D=0,E=0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0;Z=ea;ea=ea+96|0;g=c[d+4>>2]|0;i=g>>>0>8?g:8;if((i|0)>0){c[6747]=(c[6747]|0)+1;g=kb((i<<4|3)+16|0)|0;if(!g)h=0;else{c[(g+4+15&-16)+-4>>2]=g;h=g+4+15&-16}g=0;do{Y=h+(g<<4)|0;c[Y>>2]=c[Z>>2];c[Y+4>>2]=c[Z+4>>2];c[Y+8>>2]=c[Z+8>>2];c[Y+12>>2]=c[Z+12>>2];g=g+1|0}while((g|0)!=(i|0));Y=h;g=c[d+4>>2]|0;X=h}else{Y=0;X=0}j=c[d+8>>2]|0;D=c[d+12>>2]|0;G=+f[d+16>>2];do if(!g){g=0;h=1}else{i=c[b+24>>2]|0;if((i|0)<0){h=c[b+32>>2]|0;if((c[b+28>>2]|0)<0){if(h|0?a[b+36>>0]|0:0){c[6748]=(c[6748]|0)+1;uc(c[h+-4>>2]|0)}a[b+36>>0]=1;c[b+32>>2]=0;c[b+28>>2]=0;h=0}hk(h+(i<<2)|0,0,z(i,-4)|0)|0}c[b+24>>2]=0;q=3402823466385288598117041.0e14;l=-3402823466385288598117041.0e14;t=3402823466385288598117041.0e14;m=-3402823466385288598117041.0e14;v=3402823466385288598117041.0e14;o=-3402823466385288598117041.0e14;h=0;i=j;while(1){L=+f[i>>2];q=Ll?L:l;L=+f[i+4>>2];t=Lm?L:m;L=+f[i+8>>2];v=Lo?L:o;h=h+1|0;if((h|0)==(g|0))break;else i=i+D|0}n=l-q;m=m-t;l=o-v;F=q+n*.5;C=t+m*.5;B=v+l*.5;do if(g>>>0<3|(n<9.999999974752427e-07|m<9.999999974752427e-07|l<9.999999974752427e-07)){o=n>9.999999974752427e-07&n<3402823466385288598117041.0e14?n:3402823466385288598117041.0e14;o=m>9.999999974752427e-07&m9.999999974752427e-07&l>2]=L;f[X+4>>2]=J;f[X+8>>2]=I;f[X+16>>2]=K;f[X+20>>2]=J;f[X+24>>2]=I;f[X+32>>2]=K;f[X+36>>2]=m;f[X+40>>2]=I;f[X+48>>2]=L;f[X+52>>2]=m;f[X+56>>2]=I;f[X+64>>2]=L;f[X+68>>2]=J;f[X+72>>2]=n;f[X+80>>2]=K;f[X+84>>2]=J;f[X+88>>2]=n;f[X+96>>2]=K;f[X+100>>2]=m;f[X+104>>2]=n;f[X+112>>2]=L;f[X+116>>2]=m;f[X+120>>2]=n;U=8;n=1.0;m=1.0;l=1.0;W=57}else{h=0;A=0;u=0;y=j;while(1){v=1.0/n*+f[y>>2];w=1.0/m*+f[y+4>>2];x=1.0/l*+f[y+8>>2];y=y+D|0;if(u){i=0;do{j=X+(i<<4)|0;o=+f[j>>2];k=X+(i<<4)+4|0;q=+f[k>>2];p=X+(i<<4)+8|0;t=+f[p>>2];if(+r(+(o-v))>>0>>0);if((W|0)==28){W=0;if((v-1.0/n*F)*(v-1.0/n*F)+(w-1.0/m*C)*(w-1.0/m*C)+(x-1.0/l*B)*(x-1.0/l*B)>(o-1.0/n*F)*(o-1.0/n*F)+(q-1.0/m*C)*(q-1.0/m*C)+(t-1.0/l*B)*(t-1.0/l*B)){f[j>>2]=v;f[k>>2]=w;f[p>>2]=x}}if((i|0)==(u|0))W=32;else{p=i;M=u}}else{i=0;W=32}if((W|0)==32){W=0;f[X+(i<<4)>>2]=v;f[X+(i<<4)+4>>2]=w;f[X+(i<<4)+8>>2]=x;p=i;M=i+1|0}if((h|0)==(c[b+28>>2]|0)?(E=(h|0)==0?1:h<<1,(h|0)<(E|0)):0){if(!E)i=0;else{c[6747]=(c[6747]|0)+1;h=kb((E<<2|3)+16|0)|0;if(!h)i=0;else{c[(h+4+15&-16)+-4>>2]=h;i=h+4+15&-16}h=c[b+24>>2]|0}k=c[b+32>>2]|0;if((h|0)<=0){if(k)W=43}else{j=0;do{c[i+(j<<2)>>2]=c[k+(j<<2)>>2];j=j+1|0}while((j|0)!=(h|0));W=43}if((W|0)==43){W=0;if(a[b+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[k+-4>>2]|0)}c[b+32>>2]=0;h=c[b+24>>2]|0}a[b+36>>0]=1;c[b+32>>2]=i;c[b+28>>2]=E}c[(c[b+32>>2]|0)+(h<<2)>>2]=p;h=(c[b+24>>2]|0)+1|0;c[b+24>>2]=h;A=A+1|0;if((A|0)==(g|0))break;else u=M}y=(M|0)==0;if(y){g=1;t=-3402823466385288598117041.0e14;x=3402823466385288598117041.0e14;q=-3402823466385288598117041.0e14;w=3402823466385288598117041.0e14;o=-3402823466385288598117041.0e14;v=3402823466385288598117041.0e14}else{C=3402823466385288598117041.0e14;x=3402823466385288598117041.0e14;F=-3402823466385288598117041.0e14;t=-3402823466385288598117041.0e14;H=3402823466385288598117041.0e14;w=3402823466385288598117041.0e14;I=-3402823466385288598117041.0e14;q=-3402823466385288598117041.0e14;K=3402823466385288598117041.0e14;v=3402823466385288598117041.0e14;L=-3402823466385288598117041.0e14;o=-3402823466385288598117041.0e14;u=0;while(1){B=+f[X+(u<<4)>>2];i=BF;t=p?B:t;G=+f[X+(u<<4)+4>>2];g=GI;q=j?G:q;J=+f[X+(u<<4)+8>>2];h=JL;o=k?J:o;u=u+1|0;if((u|0)==(M|0))break;else{C=i?B:C;F=p?B:F;H=g?G:H;I=j?G:I;K=h?J:K;L=k?J:L}}g=M>>>0<3}t=t-x;C=q-w;o=o-v;if(!(g|(t<9.999999974752427e-07|C<9.999999974752427e-07|o<9.999999974752427e-07))){if(!y){U=M;W=57;break}break}B=x+t*.5;x=w+C*.5;w=v+o*.5;v=t>=9.999999974752427e-07&t<3402823466385288598117041.0e14?t:3402823466385288598117041.0e14;v=C>=9.999999974752427e-07&C=9.999999974752427e-07&o>2]=J;f[X+4>>2]=H;f[X+8>>2]=G;f[X+16>>2]=I;f[X+20>>2]=H;f[X+24>>2]=G;f[X+32>>2]=I;f[X+36>>2]=K;f[X+40>>2]=G;f[X+48>>2]=J;f[X+52>>2]=K;f[X+56>>2]=G;f[X+64>>2]=J;f[X+68>>2]=H;f[X+72>>2]=L;f[X+80>>2]=I;f[X+84>>2]=H;f[X+88>>2]=L;f[X+96>>2]=I;f[X+100>>2]=K;f[X+104>>2]=L;f[X+112>>2]=J;f[X+116>>2]=K;f[X+120>>2]=L;U=8;W=57}while(0);if((W|0)==57){g=0;do{V=X+(g<<4)|0;f[V>>2]=n*+f[V>>2];V=X+(g<<4)+4|0;f[V>>2]=m*+f[V>>2];V=X+(g<<4)+8|0;f[V>>2]=l*+f[V>>2];g=g+1|0}while(g>>>0>>0);O=c[d+20>>2]|0;if((U|0)>=4){l=+f[X>>2];o=+f[X+4>>2];m=+f[X+8>>2];V=U<<2;c[6747]=(c[6747]|0)+1;g=kb((V|3)+16|0)|0;if(!g)i=0;else{c[(g+4+15&-16)+-4>>2]=g;i=g+4+15&-16}a[Z+52+16>>0]=1;R=Z+52+12|0;c[R>>2]=0;c[Z+52+4>>2]=0;E=Z+52+8|0;c[E>>2]=0;c[6747]=(c[6747]|0)+1;h=kb((V|3)+16|0)|0;if(h){c[(h+4+15&-16)+-4>>2]=h;g=c[R>>2]|0;if(!g){g=h+4+15&-16;W=63}else{c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0);a[Z+52+16>>0]=1;c[R>>2]=h+4+15&-16;c[E>>2]=U;D=R}}else{g=0;W=63}if((W|0)==63){a[Z+52+16>>0]=1;c[R>>2]=g;c[E>>2]=U;D=R}g=0;A=i;y=i;j=U;v=l;w=m;n=o;q=l;l=m;t=o;k=U;p=i;u=0;while(1){if((g|0)==(j|0)?(T=(g|0)==0?1:g<<1,(g|0)<(T|0)):0){if((T|0)!=0?(c[6747]=(c[6747]|0)+1,N=kb((T<<2|3)+16|0)|0,(N|0)!=0):0){c[(N+4+15&-16)+-4>>2]=N;j=N+4+15&-16}else j=0;i=c[R>>2]|0;if((g|0)<=0){if(i)W=75}else{h=0;do{c[j+(h<<2)>>2]=c[i+(h<<2)>>2];h=h+1|0}while((h|0)!=(g|0));W=75}if((W|0)==75){W=0;c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0);c[R>>2]=0;g=c[Z+52+4>>2]|0}c[D>>2]=j;c[E>>2]=T}c[(c[R>>2]|0)+(g<<2)>>2]=1;c[Z+52+4>>2]=g+1;do if((u|0)==(k|0)){g=(u|0)==0;h=g?1:u<<1;if((u|0)<(h|0)){if((h|0)!=0?(c[6747]=(c[6747]|0)+1,S=kb((h<<2|3)+16|0)|0,(S|0)!=0):0){c[(S+4+15&-16)+-4>>2]=S;i=S+4+15&-16}else i=0;if(g){if(!p){Q=i;j=i;h=1;P=i;break}}else{g=0;do{c[i+(g<<2)>>2]=c[p+(g<<2)>>2];g=g+1|0}while((g|0)!=(u|0))}if(!A){Q=i;j=i;P=i}else{c[6748]=(c[6748]|0)+1;uc(c[A+-4>>2]|0);Q=i;j=i;P=i}}else{Q=y;j=A;h=u;P=p}}else{Q=y;j=A;h=k;P=p}while(0);c[P+(u<<2)>>2]=0;i=u+1|0;m=+f[X+(u<<4)>>2];q=m>2];t=K>2];o=L=(U|0))break;g=c[Z+52+4>>2]|0;A=j;y=Q;j=c[E>>2]|0;v=m;w=l;l=o;k=h;p=P;u=i}a[Z+52+16>>0]=1;F=+s(+((m-q)*(m-q)+(n-t)*(n-t)+(l-o)*(l-o)))*1.0000000474974513e-03;c[Z>>2]=1008981770;c[Z+4>>2]=1017370378;c[Z+8>>2]=1065353216;f[Z+12>>2]=0.0;M=Od(X,U,Z,Z+52|0)|0;f[Z+72>>2]=-.009999999776482582;f[Z+72+4>>2]=-.019999999552965164;f[Z+72+8>>2]=-1.0;f[Z+72+12>>2]=0.0;N=Od(X,U,Z+72|0,Z+52|0)|0;p=X+(M<<4)|0;A=X+(N<<4)|0;q=+f[p>>2]-+f[A>>2];D=X+(M<<4)+4|0;E=X+(N<<4)+4|0;v=+f[D>>2]-+f[E>>2];u=X+(M<<4)+8|0;y=X+(N<<4)+8|0;t=+f[u>>2]-+f[y>>2];f[Z>>2]=q;f[Z+4>>2]=v;f[Z+8>>2]=t;f[Z+12>>2]=0.0;a:do if((M|0)!=(N|0)?!(t==0.0&v==0.0&q==0.0):0){l=t*.019999999552965164-v*0.0;f[Z+16>>2]=l;f[Z+20>>2]=q*0.0-t;f[Z+24>>2]=v-q*.019999999552965164;f[Z+28>>2]=0.0;f[Z+32>>2]=t-v*0.0;f[Z+36>>2]=t*.019999999552965164+q*0.0;f[Z+40>>2]=v*-.019999999552965164-q;f[Z+44>>2]=0.0;m=+s(+(l*l+(q*0.0-t)*(q*0.0-t)+(v-q*.019999999552965164)*(v-q*.019999999552965164)));if(m>+s(+((t-v*0.0)*(t-v*0.0)+(t*.019999999552965164+q*0.0)*(t*.019999999552965164+q*0.0)+(v*-.019999999552965164-q)*(v*-.019999999552965164-q)))){f[Z+16>>2]=l*(1.0/m);f[Z+20>>2]=(q*0.0-t)*(1.0/m);o=(v-q*.019999999552965164)*(1.0/m);n=l*(1.0/m);l=(q*0.0-t)*(1.0/m)}else{c[Z+16>>2]=c[Z+32>>2];c[Z+16+4>>2]=c[Z+32+4>>2];c[Z+16+8>>2]=c[Z+32+8>>2];c[Z+16+12>>2]=c[Z+32+12>>2];n=+f[Z+16>>2];L=+f[Z+20>>2];o=+f[Z+24>>2];l=1.0/+s(+(n*n+L*L+o*o));f[Z+16>>2]=n*l;f[Z+20>>2]=L*l;o=o*l;n=n*l;l=L*l}f[Z+24>>2]=o;g=Od(X,U,Z+16|0,Z+52|0)|0;if((g|0)==(M|0)|(g|0)==(N|0)){f[Z+72>>2]=-n;f[Z+72+4>>2]=-l;f[Z+72+8>>2]=-o;f[Z+72+12>>2]=0.0;k=Od(X,U,Z+72|0,Z+52|0)|0}else k=g;if(!((k|0)==(M|0)|(k|0)==(N|0))){h=X+(k<<4)|0;m=+f[h>>2]-+f[p>>2];j=X+(k<<4)+4|0;o=+f[j>>2]-+f[D>>2];i=X+(k<<4)+8|0;n=+f[i>>2]-+f[u>>2];f[Z+16>>2]=m;f[Z+20>>2]=o;f[Z+24>>2]=n;f[Z+28>>2]=0.0;l=1.0/+s(+((v*m-o*q)*(v*m-o*q)+((o*t-n*v)*(o*t-n*v)+(n*q-t*m)*(n*q-t*m))));f[Z+32>>2]=(o*t-n*v)*l;f[Z+36>>2]=(n*q-t*m)*l;f[Z+40>>2]=(v*m-o*q)*l;c[Z+44>>2]=0;g=Od(X,U,Z+32|0,Z+52|0)|0;if((g|0)==(k|0)|((g|0)==(M|0)|(g|0)==(N|0))){f[Z+72>>2]=-((o*t-n*v)*l);f[Z+72+4>>2]=-((n*q-t*m)*l);f[Z+72+8>>2]=-((v*m-o*q)*l);f[Z+72+12>>2]=0.0;g=Od(X,U,Z+72|0,Z+52|0)|0}if(!((g|0)==(k|0)|((g|0)==(M|0)|(g|0)==(N|0)))){B=+f[p>>2];H=+f[D>>2];x=+f[u>>2];K=+f[A>>2]-B;C=+f[E>>2]-H;I=+f[y>>2]-x;J=+f[h>>2]-B;G=+f[j>>2]-H;L=+f[i>>2]-x;T=(+f[X+(g<<4)+8>>2]-x)*(K*G-C*J)+((+f[X+(g<<4)>>2]-B)*(C*L-I*G)+(+f[X+(g<<4)+4>>2]-H)*(I*J-K*L))<0.0;h=T?k:g;g=T?g:k;if((M|0)!=-1){x=(+f[X+(M<<4)>>2]+ +f[X+(N<<4)>>2]+ +f[X+(g<<4)>>2]+ +f[X+(h<<4)>>2])*.25;B=(+f[X+(M<<4)+4>>2]+ +f[X+(N<<4)+4>>2]+ +f[X+(g<<4)+4>>2]+ +f[X+(h<<4)+4>>2])*.25;C=(+f[X+(M<<4)+8>>2]+ +f[X+(N<<4)+8>>2]+ +f[X+(g<<4)+8>>2]+ +f[X+(h<<4)+8>>2])*.25;T=Vg(b,g,h,N)|0;c[T+12>>2]=2;c[T+16>>2]=3;c[T+20>>2]=1;T=Vg(b,h,g,M)|0;c[T+12>>2]=3;c[T+16>>2]=2;c[T+20>>2]=0;T=Vg(b,M,N,h)|0;c[T+12>>2]=0;c[T+16>>2]=1;c[T+20>>2]=3;T=Vg(b,N,M,g)|0;c[T+12>>2]=1;c[T+16>>2]=0;c[T+20>>2]=2;c[P+(h<<2)>>2]=1;c[P+(g<<2)>>2]=1;c[P+(N<<2)>>2]=1;c[P+(M<<2)>>2]=1;g=c[b+4>>2]|0;if((g|0)>0){h=0;do{g=c[(c[b+12>>2]|0)+(h<<2)>>2]|0;S=c[g>>2]|0;N=c[g+4>>2]|0;T=c[g+8>>2]|0;q=+f[X+(N<<4)>>2];o=q-+f[X+(S<<4)>>2];v=+f[X+(N<<4)+4>>2];t=v-+f[X+(S<<4)+4>>2];m=+f[X+(N<<4)+8>>2];l=m-+f[X+(S<<4)+8>>2];q=+f[X+(T<<4)>>2]-q;v=+f[X+(T<<4)+4>>2]-v;m=+f[X+(T<<4)+8>>2]-m;n=+s(+((o*v-t*q)*(o*v-t*q)+((t*m-l*v)*(t*m-l*v)+(l*q-o*m)*(l*q-o*m))));if(n==0.0){c[Z>>2]=1065353216;c[Z+4>>2]=0;c[Z+8>>2]=0;w=1.0;m=0.0;l=0.0}else{f[Z>>2]=(t*m-l*v)*(1.0/n);f[Z+4>>2]=(l*q-o*m)*(1.0/n);f[Z+8>>2]=(o*v-t*q)*(1.0/n);w=(t*m-l*v)*(1.0/n);m=(l*q-o*m)*(1.0/n);l=(o*v-t*q)*(1.0/n)}f[Z+12>>2]=0.0;S=Od(X,U,Z,Z+52|0)|0;c[g+28>>2]=S;T=c[g>>2]|0;f[g+32>>2]=(+f[X+(S<<4)>>2]-+f[X+(T<<4)>>2])*w+(+f[X+(S<<4)+4>>2]-+f[X+(T<<4)+4>>2])*m+(+f[X+(S<<4)+8>>2]-+f[X+(T<<4)+8>>2])*l;h=h+1|0;g=c[b+4>>2]|0}while((h|0)<(g|0))}h=(O|0)==0?999999996:O+-4|0;if((h|0)>0)while(1){y=c[b+12>>2]|0;k=0;j=0;while(1){i=c[y+(k<<2)>>2]|0;do if(j){if(!i){i=j;break}if(!(+f[j+32>>2]<+f[i+32>>2]))i=j;else W=115}else W=115;while(0);if((W|0)==115)W=0;k=k+1|0;if((k|0)>=(g|0))break;else j=i}if((i|0)==0?1:!(+f[i+32>>2]>F)){h=1;break a}A=c[i+28>>2]|0;c[P+(A<<2)>>2]=1;g=c[b+4>>2]|0;b:do if(g|0){k=X+(A<<4)|0;u=X+(A<<4)+4|0;p=X+(A<<4)+8|0;j=y;while(1){i=g+-1|0;g=c[j+(i<<2)>>2]|0;do if(g|0){S=c[g>>2]|0;O=c[g+4>>2]|0;T=c[g+8>>2]|0;I=+f[X+(O<<4)>>2];J=+f[X+(S<<4)>>2];q=+f[X+(O<<4)+4>>2];v=+f[X+(S<<4)+4>>2];w=+f[X+(O<<4)+8>>2];G=+f[X+(S<<4)+8>>2];H=+f[X+(T<<4)>>2]-I;t=+f[X+(T<<4)+4>>2]-q;K=+f[X+(T<<4)+8>>2]-w;L=+s(+(((I-J)*t-(q-v)*H)*((I-J)*t-(q-v)*H)+(((q-v)*K-(w-G)*t)*((q-v)*K-(w-G)*t)+((w-G)*H-(I-J)*K)*((w-G)*H-(I-J)*K))));if(!((+f[p>>2]-G)*(L==0.0?0.0:((I-J)*t-(q-v)*H)*(1.0/L))+((+f[k>>2]-J)*(L==0.0?1.0:((q-v)*K-(w-G)*t)*(1.0/L))+(+f[u>>2]-v)*(L==0.0?0.0:((w-G)*H-(I-J)*K)*(1.0/L)))>F*.009999999776482582))break;dd(b,g,A)}while(0);if(!i)break;j=c[b+12>>2]|0;g=i}i=c[b+4>>2]|0;if(!i)break;g=i;c:do{i=i+-1|0;k=c[b+12>>2]|0;p=c[k+(i<<2)>>2]|0;do if(p){u=c[p>>2]|0;do if((u|0)!=(A|0)){j=c[p+4>>2]|0;if((j|0)==(A|0)){j=A;break}if((c[p+8>>2]|0)!=(A|0))break c}else j=c[p+4>>2]|0;while(0);T=c[p+8>>2]|0;I=+f[X+(j<<4)>>2];J=+f[X+(u<<4)>>2];q=+f[X+(j<<4)+4>>2];v=+f[X+(u<<4)+4>>2];w=+f[X+(j<<4)+8>>2];G=+f[X+(u<<4)+8>>2];H=+f[X+(T<<4)>>2]-I;t=+f[X+(T<<4)+4>>2]-q;K=+f[X+(T<<4)+8>>2]-w;L=+s(+(((I-J)*t-(q-v)*H)*((I-J)*t-(q-v)*H)+(((q-v)*K-(w-G)*t)*((q-v)*K-(w-G)*t)+((w-G)*H-(I-J)*K)*((w-G)*H-(I-J)*K))));if(!(LF*.009999999776482582))break;dd(b,c[k+(c[p+12>>2]<<2)>>2]|0,A);i=c[b+4>>2]|0;g=i}while(0)}while((i|0)!=0);if(!g)break;do{g=g+-1|0;j=c[(c[b+12>>2]|0)+(g<<2)>>2]|0;if(j|0){if((c[j+28>>2]|0)>-1)break b;S=c[j>>2]|0;O=c[j+4>>2]|0;T=c[j+8>>2]|0;q=+f[X+(O<<4)>>2];o=q-+f[X+(S<<4)>>2];v=+f[X+(O<<4)+4>>2];t=v-+f[X+(S<<4)+4>>2];m=+f[X+(O<<4)+8>>2];l=m-+f[X+(S<<4)+8>>2];q=+f[X+(T<<4)>>2]-q;v=+f[X+(T<<4)+4>>2]-v;m=+f[X+(T<<4)+8>>2]-m;n=+s(+((o*v-t*q)*(o*v-t*q)+((t*m-l*v)*(t*m-l*v)+(l*q-o*m)*(l*q-o*m))));if(n==0.0){c[Z>>2]=1065353216;c[Z+4>>2]=0;c[Z+8>>2]=0;w=1.0;m=0.0;l=0.0}else{f[Z>>2]=(t*m-l*v)*(1.0/n);f[Z+4>>2]=(l*q-o*m)*(1.0/n);f[Z+8>>2]=(o*v-t*q)*(1.0/n);w=(t*m-l*v)*(1.0/n);m=(l*q-o*m)*(1.0/n);l=(o*v-t*q)*(1.0/n)}f[Z+12>>2]=0.0;i=Od(X,U,Z,Z+52|0)|0;c[j+28>>2]=i;if(!(c[P+(i<<2)>>2]|0)){T=c[j>>2]|0;f[j+32>>2]=(+f[X+(i<<4)>>2]-+f[X+(T<<4)>>2])*w+(+f[X+(i<<4)+4>>2]-+f[X+(T<<4)+4>>2])*m+(+f[X+(i<<4)+8>>2]-+f[X+(T<<4)+8>>2])*l}else c[j+28>>2]=-1}}while((g|0)!=0)}while(0);if((h|0)<=1){h=1;break a}g=c[b+4>>2]|0;h=h+-1|0}else h=1}else h=0}else W=101}else W=101}else W=101;while(0);if((W|0)==101)h=0;g=c[R>>2]|0;if(g|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0);c[R>>2]=0}if(!((P|0)==0|(Q|0)==0)){c[6748]=(c[6748]|0)+1;uc(c[Q+-4>>2]|0)}if(h){g=c[b+4>>2]|0;if((g|0)>0){h=0;k=0;E=0;y=0;j=0;D=0;while(1){u=c[(c[b+12>>2]|0)+(E<<2)>>2]|0;if(!u){p=y;i=D}else{do if((D|0)==(y|0)){p=(y|0)==0?1:y<<1;if((y|0)>=(p|0)){p=y;break}do if(!p)i=0;else{c[6747]=(c[6747]|0)+1;g=kb((p<<2|3)+16|0)|0;if(!g){i=0;break}c[(g+4+15&-16)+-4>>2]=g;i=g+4+15&-16}while(0);if((y|0)>0){g=0;do{c[i+(g<<2)>>2]=c[j+(g<<2)>>2];g=g+1|0}while((g|0)!=(y|0));if(!h){h=i;k=i;j=i;break}}else if((j|0)==0|(h|0)==0){h=i;k=i;j=i;break}c[6748]=(c[6748]|0)+1;uc(c[h+-4>>2]|0);h=i;k=i;j=i}else p=y;while(0);c[j+(D<<2)>>2]=c[u>>2];A=D+1|0;y=(c[(c[b+12>>2]|0)+(E<<2)>>2]|0)+4|0;do if((A|0)==(p|0)){u=(p|0)==0?1:p<<1;if((p|0)>=(u|0))break;do if(!u)i=0;else{c[6747]=(c[6747]|0)+1;g=kb((u<<2|3)+16|0)|0;if(!g){i=0;break}c[(g+4+15&-16)+-4>>2]=g;i=g+4+15&-16}while(0);if((p|0)>0){g=0;do{c[i+(g<<2)>>2]=c[j+(g<<2)>>2];g=g+1|0}while((g|0)!=(p|0));if(!h){h=i;k=i;p=u;j=i;break}}else if((j|0)==0|(h|0)==0){h=i;k=i;p=u;j=i;break}c[6748]=(c[6748]|0)+1;uc(c[h+-4>>2]|0);h=i;k=i;p=u;j=i}while(0);c[j+(A<<2)>>2]=c[y>>2];A=D+2|0;y=(c[(c[b+12>>2]|0)+(E<<2)>>2]|0)+8|0;do if((A|0)==(p|0)){u=(p|0)==0?1:p<<1;if((p|0)>=(u|0))break;do if(!u)i=0;else{c[6747]=(c[6747]|0)+1;g=kb((u<<2|3)+16|0)|0;if(!g){i=0;break}c[(g+4+15&-16)+-4>>2]=g;i=g+4+15&-16}while(0);if((p|0)>0){g=0;do{c[i+(g<<2)>>2]=c[j+(g<<2)>>2];g=g+1|0}while((g|0)!=(p|0));if(!h){k=i;h=i;p=u;j=i;break}}else if((j|0)==0|(h|0)==0){k=i;h=i;p=u;j=i;break}c[6748]=(c[6748]|0)+1;uc(c[h+-4>>2]|0);k=i;h=i;p=u;j=i}while(0);c[j+(A<<2)>>2]=c[y>>2];T=c[b+12>>2]|0;g=c[T+(E<<2)>>2]|0;c[T+(c[g+24>>2]<<2)>>2]=0;if(g|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}g=c[b+4>>2]|0;i=D+3|0}E=E+1|0;if((E|0)>=(g|0)){p=i;break}else{y=p;D=i}}c[Z+48>>2]=(p|0)/3|0;if((p|0)>0){c[6747]=(c[6747]|0)+1;g=kb((p<<2|3)+16|0)|0;if(!g)h=0;else{c[(g+4+15&-16)+-4>>2]=g;h=g+4+15&-16}hk(h|0,0,p<<2|0)|0;g=0;do{c[h+(g<<2)>>2]=c[j+(g<<2)>>2];g=g+1|0}while((g|0)!=(p|0));i=h;g=h}else{i=0;g=0}h=c[b+4>>2]|0;M=i;Q=p}else{c[Z+48>>2]=0;k=0;h=g;M=0;g=0;j=0;Q=0}if((h|0)<0){if((c[b+8>>2]|0)<0){i=c[b+12>>2]|0;if(i|0){if(a[b+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0)}c[b+12>>2]=0}a[b+16>>0]=1;c[b+12>>2]=0;c[b+8>>2]=0}do{c[(c[b+12>>2]|0)+(h<<2)>>2]=0;h=h+1|0}while((h|0)!=0)}c[b+4>>2]=0;if(!((j|0)==0|(k|0)==0)){c[6748]=(c[6748]|0)+1;uc(c[k+-4>>2]|0)}P=c[Z+48>>2]|0;k=(U|0)>0;if(k){c[6747]=(c[6747]|0)+1;h=kb((U<<4|3)+16|0)|0;if(!h)i=0;else{c[(h+4+15&-16)+-4>>2]=h;i=h+4+15&-16}h=0;do{T=i+(h<<4)|0;c[T>>2]=c[Z>>2];c[T+4>>2]=c[Z+4>>2];c[T+8>>2]=c[Z+8>>2];c[T+12>>2]=c[Z+12>>2];h=h+1|0}while((h|0)!=(U|0));O=i;N=i}else{O=0;N=0}i=c[b+24>>2]|0;do if((i|0)>0){c[6747]=(c[6747]|0)+1;h=kb((i<<2|3)+16|0)|0;if(!h)j=0;else{c[(h+4+15&-16)+-4>>2]=h;j=h+4+15&-16}hk(j|0,0,i<<2|0)|0;if((c[b+24>>2]|0)<=0){E=j;D=j;break}h=c[b+32>>2]|0;i=0;do{c[j+(i<<2)>>2]=c[h+(i<<2)>>2];i=i+1|0}while((i|0)<(c[b+24>>2]|0));E=j;D=j}else{E=0;D=0}while(0);if(k){c[6747]=(c[6747]|0)+1;h=kb((V|3)+16|0)|0;if(!h)h=0;else{c[(h+4+15&-16)+-4>>2]=h;h=h+4+15&-16}hk(h|0,0,V|0)|0;A=h;y=h}else{A=0;y=0}hk(A|0,0,V|0)|0;if((P|0)<=0)if(!y)u=0;else{h=0;W=241}else{u=0;h=0;do{j=g+(u<<2)|0;k=c[j>>2]|0;p=y+(k<<2)|0;i=c[p>>2]|0;if(!i){c[j>>2]=h;c[N+(h<<4)>>2]=c[Y+(k<<4)>>2];c[N+(h<<4)+4>>2]=c[Y+(k<<4)+4>>2];c[N+(h<<4)+8>>2]=c[Y+(k<<4)+8>>2];i=c[b+24>>2]|0;if((i|0)>0){j=0;do{if((c[D+(j<<2)>>2]|0)==(k|0)){c[(c[b+32>>2]|0)+(j<<2)>>2]=h;i=c[b+24>>2]|0}j=j+1|0}while((j|0)<(i|0))}h=h+1|0;c[p>>2]=h}else c[j>>2]=i+-1;u=u+1|0}while((u|0)!=(P*3|0));W=241}do if((W|0)==241){if(!A){u=h;break}c[6748]=(c[6748]|0)+1;uc(c[A+-4>>2]|0);u=h}while(0);if(!((D|0)==0|(E|0)==0)){c[6748]=(c[6748]|0)+1;uc(c[E+-4>>2]|0)}do if(!(c[d>>2]&1)){a[e>>0]=1;c[e+4>>2]=u;k=c[e+12>>2]|0;if((k|0)<(u|0)){if((c[e+16>>2]|0)<(u|0)){if(!u){i=k;j=0}else{c[6747]=(c[6747]|0)+1;h=kb((u<<4|3)+16|0)|0;if(!h)h=0;else{c[(h+4+15&-16)+-4>>2]=h;h=h+4+15&-16}i=c[e+12>>2]|0;j=h}if((i|0)>0){h=0;do{b=j+(h<<4)|0;W=(c[e+20>>2]|0)+(h<<4)|0;c[b>>2]=c[W>>2];c[b+4>>2]=c[W+4>>2];c[b+8>>2]=c[W+8>>2];c[b+12>>2]=c[W+12>>2];h=h+1|0}while((h|0)!=(i|0))}h=c[e+20>>2]|0;if(h|0){if(a[e+24>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[h+-4>>2]|0)}c[e+20>>2]=0}a[e+24>>0]=1;c[e+20>>2]=j;c[e+16>>2]=u;i=e+20|0}else i=e+20|0;h=k;do{b=(c[i>>2]|0)+(h<<4)|0;c[b>>2]=c[Z>>2];c[b+4>>2]=c[Z+4>>2];c[b+8>>2]=c[Z+8>>2];c[b+12>>2]=c[Z+12>>2];h=h+1|0}while((h|0)!=(u|0))}c[e+12>>2]=u;c[e+28>>2]=P;c[e+32>>2]=P<<2;p=c[e+40>>2]|0;if((P<<2|0)>(p|0)){d:do if((c[e+44>>2]|0)<(P<<2|0)){if(!(P<<2)){k=p;h=0}else{c[6747]=(c[6747]|0)+1;h=kb((P<<4|3)+16|0)|0;if(!h)h=0;else{c[(h+4+15&-16)+-4>>2]=h;h=h+4+15&-16}k=c[e+40>>2]|0}i=c[e+48>>2]|0;do if((k|0)>0){j=0;do{c[h+(j<<2)>>2]=c[i+(j<<2)>>2];j=j+1|0}while((j|0)!=(k|0))}else{if(i|0)break;a[e+52>>0]=1;c[e+48>>2]=h;c[e+44>>2]=P<<2;break d}while(0);if(a[e+52>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0)}a[e+52>>0]=1;c[e+48>>2]=h;c[e+44>>2]=P<<2}else h=c[e+48>>2]|0;while(0);hk(h+(p<<2)|0,0,(P<<2)-p<<2|0)|0}c[e+40>>2]=P<<2;vh(c[e+20>>2]|0,O|0,u<<4|0)|0;if(!P)break;i=c[e+48>>2]|0;j=0;k=g;while(1){c[i>>2]=3;if(!(c[d>>2]&2)){c[i+4>>2]=c[k>>2];h=k+8|0}else{c[i+4>>2]=c[k+8>>2];h=k}c[i+8>>2]=c[k+4>>2];c[i+12>>2]=c[h>>2];j=j+1|0;if((j|0)==(P|0))break;else{i=i+16|0;k=k+12|0}}}else{a[e>>0]=0;c[e+4>>2]=u;k=c[e+12>>2]|0;if((k|0)<(u|0)){if((c[e+16>>2]|0)<(u|0)){if(!u){i=k;j=0}else{c[6747]=(c[6747]|0)+1;h=kb((u<<4|3)+16|0)|0;if(!h)h=0;else{c[(h+4+15&-16)+-4>>2]=h;h=h+4+15&-16}i=c[e+12>>2]|0;j=h}if((i|0)>0){h=0;do{b=j+(h<<4)|0;W=(c[e+20>>2]|0)+(h<<4)|0;c[b>>2]=c[W>>2];c[b+4>>2]=c[W+4>>2];c[b+8>>2]=c[W+8>>2];c[b+12>>2]=c[W+12>>2];h=h+1|0}while((h|0)!=(i|0))}h=c[e+20>>2]|0;if(h|0){if(a[e+24>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[h+-4>>2]|0)}c[e+20>>2]=0}a[e+24>>0]=1;c[e+20>>2]=j;c[e+16>>2]=u;i=e+20|0}else i=e+20|0;h=k;do{b=(c[i>>2]|0)+(h<<4)|0;c[b>>2]=c[Z>>2];c[b+4>>2]=c[Z+4>>2];c[b+8>>2]=c[Z+8>>2];c[b+12>>2]=c[Z+12>>2];h=h+1|0}while((h|0)!=(u|0))}c[e+12>>2]=u;c[e+28>>2]=P;c[e+32>>2]=P*3;p=c[e+40>>2]|0;if((p|0)<(P*3|0)){e:do if((c[e+44>>2]|0)<(P*3|0)){if(!P){k=p;h=0}else{c[6747]=(c[6747]|0)+1;h=kb((P*12|3)+16|0)|0;if(!h)h=0;else{c[(h+4+15&-16)+-4>>2]=h;h=h+4+15&-16}k=c[e+40>>2]|0}i=c[e+48>>2]|0;do if((k|0)>0){j=0;do{c[h+(j<<2)>>2]=c[i+(j<<2)>>2];j=j+1|0}while((j|0)!=(k|0))}else{if(i|0)break;a[e+52>>0]=1;c[e+48>>2]=h;c[e+44>>2]=P*3;break e}while(0);if(a[e+52>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0)}a[e+52>>0]=1;c[e+48>>2]=h;c[e+44>>2]=P*3}else h=c[e+48>>2]|0;while(0);hk(h+(p<<2)|0,0,(P*12|0)-(p<<2)|0)|0}c[e+40>>2]=P*3;vh(c[e+20>>2]|0,O|0,u<<4|0)|0;if(!(c[d>>2]&2)){vh(c[e+48>>2]|0,M|0,P*12|0)|0;break}if(!P)break;h=c[e+48>>2]|0;i=0;j=g;while(1){c[h>>2]=c[j+8>>2];c[h+4>>2]=c[j+4>>2];c[h+8>>2]=c[j>>2];i=i+1|0;if((i|0)==(P|0))break;else{h=h+12|0;j=j+12|0}}}while(0);do if(Q){if(!g){g=0;break}c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0);g=0}while(0);if((N|0)==0|(O|0)==0){h=0;break}c[6748]=(c[6748]|0)+1;uc(c[O+-4>>2]|0);h=0;break}}}g=0;h=1}while(0);if(!((X|0)==0|(Y|0)==0)){c[6748]=(c[6748]|0)+1;uc(c[Y+-4>>2]|0)}if(!g){ea=Z;return h|0}c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0);ea=Z;return h|0}function bb(b,d,e){b=b|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0.0,l=0,m=0.0,n=0.0,o=0.0,p=0,q=0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0.0,A=0.0,B=0.0,C=0.0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0.0,O=0.0,P=0.0,Q=0.0;M=ea;ea=ea+16|0;g=c[b+1112>>2]|0;a:do if((g|0)>0)while(1){l=c[c[b+1120>>2]>>2]|0;g=c[l+348>>2]|0;if(g|0){jg(b+1048|0,g)|0;h=c[b+1052>>2]|0;if(h|0){c[6748]=(c[6748]|0)+1;uc(c[h+-4>>2]|0)}c[b+1052>>2]=g;c[b+1060>>2]=(c[b+1060>>2]|0)+-1}g=c[l+52>>2]|0;if(g|0){if(a[l+56>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[l+52>>2]=0}a[l+56>>0]=1;c[l+52>>2]=0;c[l+44>>2]=0;c[l+48>>2]=0;g=c[l+32>>2]|0;if(g|0){if(a[l+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[l+32>>2]=0}a[l+36>>0]=1;c[l+32>>2]=0;c[l+24>>2]=0;c[l+28>>2]=0;g=c[l+12>>2]|0;if(g|0){if(a[l+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[l+12>>2]=0}a[l+16>>0]=1;c[l+12>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[6748]=(c[6748]|0)+1;uc(c[l+-4>>2]|0);g=c[b+1112>>2]|0;if((g|0)<=0){l=g;break a}j=c[b+1120>>2]|0;h=0;do{i=j+(h<<2)|0;if((c[i>>2]|0)==(l|0)){L=23;break}h=h+1|0}while((h|0)<(g|0));if((L|0)==23){L=0;if((h|0)<(g|0)){c[i>>2]=c[j+(g+-1<<2)>>2];c[(c[b+1120>>2]|0)+(g+-1<<2)>>2]=l;c[b+1112>>2]=g+-1;g=g+-1|0}}if((g|0)<=0){l=g;break}}else l=g;while(0);g=c[b+712>>2]|0;g=(g|0)>(d|0)?d:g;if((l|0)<(g|0)){if((c[b+1116>>2]|0)<(g|0)){if(g){c[6747]=(c[6747]|0)+1;h=kb((g<<2|3)+16|0)|0;if(!h)j=0;else{c[(h+4+15&-16)+-4>>2]=h;j=h+4+15&-16}h=c[b+1112>>2]|0;if((h|0)>0){i=0;do{c[j+(i<<2)>>2]=c[(c[b+1120>>2]|0)+(i<<2)>>2];i=i+1|0}while((i|0)!=(h|0));i=b+1120|0}else i=b+1120|0}else{i=b+1120|0;j=0}h=c[i>>2]|0;if(h|0){if(a[b+1124>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[h+-4>>2]|0)}c[i>>2]=0}a[b+1124>>0]=1;c[i>>2]=j;c[b+1116>>2]=g}else i=b+1120|0;h=l;do{c[(c[i>>2]|0)+(h<<2)>>2]=0;h=h+1|0}while((h|0)!=(g|0))}c[b+1112>>2]=g;if((g|0)>0){h=0;do{c[6747]=(c[6747]|0)+1;g=kb(403)|0;if(!g)g=0;else{c[(g+4+15&-16)+-4>>2]=g;g=g+4+15&-16}a[g+16>>0]=1;c[g+12>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;a[g+36>>0]=1;c[g+32>>2]=0;c[g+24>>2]=0;c[g+28>>2]=0;a[g+56>>0]=1;c[g+52>>2]=0;c[g+44>>2]=0;c[g+48>>2]=0;i=g+348|0;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;c[i+12>>2]=0;c[i+16>>2]=0;f[g+368>>2]=100.0;f[g+372>>2]=.009999999776482582;a[g+376>>0]=0;c[(c[b+1120>>2]|0)+(h<<2)>>2]=g;i=c[b+1120>>2]|0;a[(c[i+(h<<2)>>2]|0)+377>>0]=1;h=h+1|0;g=c[b+1112>>2]|0}while((h|0)<(g|0));if((g|0)>0){h=c[b+712>>2]|0;if((h|0)>0){m=0.0;n=0.0;k=0.0;l=g;p=0;while(1){d=c[b+720>>2]|0;m=m+ +f[d+(p*104|0)+8>>2];n=n+ +f[d+(p*104|0)+12>>2];o=k+ +f[d+(p*104|0)+16>>2];l=c[i+(((p*29873|0)%(l|0)|0)<<2)>>2]|0;d=d+(p*104|0)|0;i=c[l+24>>2]|0;if((i|0)==(c[l+28>>2]|0)?(q=(i|0)==0?1:i<<1,(i|0)<(q|0)):0){if(!q){h=i;i=0}else{c[6747]=(c[6747]|0)+1;h=kb((q<<2|3)+16|0)|0;if(!h)i=0;else{c[(h+4+15&-16)+-4>>2]=h;i=h+4+15&-16}h=c[l+24>>2]|0}if((h|0)>0){j=0;do{c[i+(j<<2)>>2]=c[(c[l+32>>2]|0)+(j<<2)>>2];j=j+1|0}while((j|0)!=(h|0))}j=c[l+32>>2]|0;if(j){if(a[l+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[j+-4>>2]|0);h=c[l+24>>2]|0}c[l+32>>2]=0}a[l+36>>0]=1;c[l+32>>2]=i;c[l+28>>2]=q;i=h;h=c[b+712>>2]|0}c[(c[l+32>>2]|0)+(i<<2)>>2]=d;c[l+24>>2]=i+1;j=p+1|0;if((j|0)>=(h|0))break;k=o;l=c[b+1112>>2]|0;i=c[b+1120>>2]|0;p=j}k=1.0/+(h|0);if((g|0)>=0)if(!g){m=m*k;n=n*k;k=o*k;i=0;L=72}else{m=m*k;n=n*k;k=o*k;L=70}else{H=0;G=0;D=b+720|0}}else{m=1.0/+(h|0)*0.0;n=1.0/+(h|0)*0.0;k=1.0/+(h|0)*0.0;L=70}if((L|0)==70){c[6747]=(c[6747]|0)+1;h=kb((g<<4|3)+16|0)|0;if(!h){i=0;L=72}else{c[(h+4+15&-16)+-4>>2]=h;i=h+4+15&-16;L=72}}if((L|0)==72){h=0;do{f[i+(h<<4)>>2]=m;f[i+(h<<4)+4>>2]=n;f[i+(h<<4)+8>>2]=k;f[i+(h<<4)+12>>2]=0.0;h=h+1|0}while((h|0)!=(g|0));H=i;G=i;D=b+720|0}t=G+4|0;u=G+8|0;v=0;do{A=+(v|0)*.0625;A=2.0-(A>1.0?1.0:A);l=0;d=0;while(1){h=c[(c[b+1120>>2]|0)+(d<<2)>>2]|0;j=c[h+24>>2]|0;if((j|0)>0){i=c[h+32>>2]|0;L=c[i>>2]|0;n=+f[L+8>>2]+0.0;m=+f[L+12>>2]+0.0;k=+f[L+16>>2]+0.0;if((j|0)==1)L=82;else{h=1;do{L=c[i+(h<<2)>>2]|0;n=n+ +f[L+8>>2];m=m+ +f[L+12>>2];k=k+ +f[L+16>>2];h=h+1|0}while((h|0)<(j|0));L=80}}else{k=0.0;m=0.0;n=0.0;L=80}if((L|0)==80){L=0;if(!j)s=l;else L=82}if((L|0)==82){L=0;s=G+(d<<4)|0;x=+f[s>>2];w=G+(d<<4)+4|0;y=+f[w>>2];h=G+(d<<4)+8|0;o=+f[h>>2];n=x+A*(n*(1.0/+(j|0))-x);m=y+A*(m*(1.0/+(j|0))-y);k=o+A*(k*(1.0/+(j|0))-o);f[s>>2]=n;f[w>>2]=m;f[h>>2]=k;f[G+(d<<4)+12>>2]=0.0;j=c[(c[b+1120>>2]|0)+(d<<2)>>2]|0;h=c[j+24>>2]|0;if((h|0)<0){if((c[j+28>>2]|0)<0){i=c[j+32>>2]|0;if(i|0){if(a[j+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0)}c[j+32>>2]=0}a[j+36>>0]=1;c[j+32>>2]=0;c[j+28>>2]=0}do{c[(c[j+32>>2]|0)+(h<<2)>>2]=0;h=h+1|0}while((h|0)!=0)}c[j+24>>2]=0;s=l|(n-x)*(n-x)+(m-y)*(m-y)+(k-o)*(k-o)>1.1920928955078125e-07}d=d+1|0;if((d|0)>=(g|0))break;else l=s}v=v+1|0;h=c[b+712>>2]|0;b:do if((h|0)>0){if((g|0)<=1){p=0;while(1){l=c[c[b+1120>>2]>>2]|0;d=(c[D>>2]|0)+(p*104|0)|0;i=c[l+24>>2]|0;if((i|0)==(c[l+28>>2]|0)?(E=(i|0)==0?1:i<<1,(i|0)<(E|0)):0){if(!E){h=i;i=0}else{c[6747]=(c[6747]|0)+1;h=kb((E<<2|3)+16|0)|0;if(!h)i=0;else{c[(h+4+15&-16)+-4>>2]=h;i=h+4+15&-16}h=c[l+24>>2]|0}if((h|0)>0){j=0;do{c[i+(j<<2)>>2]=c[(c[l+32>>2]|0)+(j<<2)>>2];j=j+1|0}while((j|0)!=(h|0))}j=c[l+32>>2]|0;if(j){if(a[l+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[j+-4>>2]|0);h=c[l+24>>2]|0}c[l+32>>2]=0}a[l+36>>0]=1;c[l+32>>2]=i;c[l+28>>2]=E;i=h;h=c[b+712>>2]|0}c[(c[l+32>>2]|0)+(i<<2)>>2]=d;c[l+24>>2]=i+1;p=p+1|0;if((p|0)>=(h|0))break b}}q=0;do{d=c[D>>2]|0;n=+f[d+(q*104|0)+8>>2];o=+f[d+(q*104|0)+12>>2];x=+f[d+(q*104|0)+16>>2];j=1;l=0;m=+r(+(+f[G>>2]-n))+ +r(+(+f[t>>2]-o))+ +r(+(+f[u>>2]-x));while(1){k=+r(+(+f[G+(j<<4)>>2]-n))+ +r(+(+f[G+(j<<4)+4>>2]-o))+ +r(+(+f[G+(j<<4)+8>>2]-x));i=k>2]|0)+(l<<2)>>2]|0;l=d+(q*104|0)|0;i=c[p+24>>2]|0;if((i|0)==(c[p+28>>2]|0)?(F=(i|0)==0?1:i<<1,(i|0)<(F|0)):0){if(!F){h=i;i=0}else{c[6747]=(c[6747]|0)+1;h=kb((F<<2|3)+16|0)|0;if(!h)i=0;else{c[(h+4+15&-16)+-4>>2]=h;i=h+4+15&-16}h=c[p+24>>2]|0}if((h|0)>0){j=0;do{c[i+(j<<2)>>2]=c[(c[p+32>>2]|0)+(j<<2)>>2];j=j+1|0}while((j|0)!=(h|0))}j=c[p+32>>2]|0;if(j){if(a[p+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[j+-4>>2]|0);h=c[p+24>>2]|0}c[p+32>>2]=0}a[p+36>>0]=1;c[p+32>>2]=i;c[p+28>>2]=F;i=h;h=c[b+712>>2]|0}c[(c[p+32>>2]|0)+(i<<2)>>2]=l;c[p+24>>2]=i+1;q=q+1|0}while((q|0)<(h|0))}while(0)}while((v|0)<(e|0)&s);if((h|0)>0){h=h<<2;c[6747]=(c[6747]|0)+1;g=kb((h|3)+16|0)|0;if(!g)g=0;else{c[(g+4+15&-16)+-4>>2]=g;g=g+4+15&-16}hk(g|0,-1,h|0)|0;w=g;v=g}else{w=0;v=0}g=c[b+1112>>2]|0;if((g|0)>0){d=c[b+1120>>2]|0;l=0;do{j=c[d+(l<<2)>>2]|0;if((c[j+24>>2]|0)>0){g=c[D>>2]|0;h=c[j+32>>2]|0;c[v+((((c[h>>2]|0)-g|0)/104|0)<<2)>>2]=l;if((c[j+24>>2]|0)>1){i=1;do{c[v+((((c[h+(i<<2)>>2]|0)-g|0)/104|0)<<2)>>2]=l;i=i+1|0}while((i|0)<(c[j+24>>2]|0))}g=c[b+1112>>2]|0}l=l+1|0}while((l|0)<(g|0))}if((c[b+752>>2]|0)>0){s=0;do{e=c[b+760>>2]|0;p=c[D>>2]|0;g=((c[e+(s*44|0)+8>>2]|0)-p|0)/104|0;c[M>>2]=g;c[M+4>>2]=((c[e+(s*44|0)+12>>2]|0)-p|0)/104|0;c[M+8>>2]=((c[e+(s*44|0)+16>>2]|0)-p|0)/104|0;p=0;while(1){d=c[v+(g<<2)>>2]|0;q=p+1|0;g=c[M+(((q|0)==3?0:q)<<2)>>2]|0;c:do if((c[v+(g<<2)>>2]|0)!=(d|0)){l=c[(c[b+1120>>2]|0)+(d<<2)>>2]|0;j=(c[D>>2]|0)+(g*104|0)|0;g=c[l+24>>2]|0;d:do if((g|0)>0){i=c[l+32>>2]|0;h=0;while(1){if((c[i+(h<<2)>>2]|0)==(j|0))break;h=h+1|0;if((h|0)>=(g|0))break d}if((h|0)!=(g|0))break c}while(0);if((g|0)==(c[l+28>>2]|0)?(I=(g|0)==0?1:g<<1,(g|0)<(I|0)):0){if(!I)h=0;else{c[6747]=(c[6747]|0)+1;g=kb((I<<2|3)+16|0)|0;if(!g)h=0;else{c[(g+4+15&-16)+-4>>2]=g;h=g+4+15&-16}g=c[l+24>>2]|0}if((g|0)>0){i=0;do{c[h+(i<<2)>>2]=c[(c[l+32>>2]|0)+(i<<2)>>2];i=i+1|0}while((i|0)!=(g|0))}i=c[l+32>>2]|0;if(i){if(a[l+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0);g=c[l+24>>2]|0}c[l+32>>2]=0}a[l+36>>0]=1;c[l+32>>2]=h;c[l+28>>2]=I}c[(c[l+32>>2]|0)+(g<<2)>>2]=j;c[l+24>>2]=g+1}while(0);g=c[M+((((p+2|0)>>>0)%3|0)<<2)>>2]|0;e:do if((c[v+(g<<2)>>2]|0)!=(d|0)){l=c[(c[b+1120>>2]|0)+(d<<2)>>2]|0;j=(c[D>>2]|0)+(g*104|0)|0;g=c[l+24>>2]|0;f:do if((g|0)>0){i=c[l+32>>2]|0;h=0;while(1){if((c[i+(h<<2)>>2]|0)==(j|0))break;h=h+1|0;if((h|0)>=(g|0))break f}if((h|0)!=(g|0))break e}while(0);if((g|0)==(c[l+28>>2]|0)?(J=(g|0)==0?1:g<<1,(g|0)<(J|0)):0){if(!J)h=0;else{c[6747]=(c[6747]|0)+1;g=kb((J<<2|3)+16|0)|0;if(!g)h=0;else{c[(g+4+15&-16)+-4>>2]=g;h=g+4+15&-16}g=c[l+24>>2]|0}if((g|0)>0){i=0;do{c[h+(i<<2)>>2]=c[(c[l+32>>2]|0)+(i<<2)>>2];i=i+1|0}while((i|0)!=(g|0))}i=c[l+32>>2]|0;if(i){if(a[l+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0);g=c[l+24>>2]|0}c[l+32>>2]=0}a[l+36>>0]=1;c[l+32>>2]=h;c[l+28>>2]=J}c[(c[l+32>>2]|0)+(g<<2)>>2]=j;c[l+24>>2]=g+1}while(0);if(q>>>0>=3)break;g=c[M+(q<<2)>>2]|0;p=q}s=s+1|0}while((s|0)<(c[b+752>>2]|0));g=c[b+1112>>2]|0}if((g|0)>1){c[6747]=(c[6747]|0)+1;g=kb(403)|0;if(!g)g=0;else{c[(g+4+15&-16)+-4>>2]=g;g=g+4+15&-16}a[g+16>>0]=1;c[g+12>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;p=g+36|0;a[p>>0]=1;s=g+32|0;c[s>>2]=0;t=g+24|0;c[t>>2]=0;q=g+28|0;c[q>>2]=0;a[g+56>>0]=1;c[g+52>>2]=0;c[g+44>>2]=0;c[g+48>>2]=0;u=g+348|0;c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u+12>>2]=0;c[u+16>>2]=0;f[g+368>>2]=100.0;f[g+372>>2]=.009999999776482582;a[g+376>>0]=0;u=g;a[g+377>>0]=0;j=c[b+712>>2]|0;if((j|0)>0){c[6747]=(c[6747]|0)+1;g=kb((j<<2|3)+16|0)|0;if(!g)i=0;else{c[(g+4+15&-16)+-4>>2]=g;i=g+4+15&-16}g=c[t>>2]|0;if((g|0)>0){h=0;do{c[i+(h<<2)>>2]=c[(c[s>>2]|0)+(h<<2)>>2];h=h+1|0}while((h|0)!=(g|0))}g=c[s>>2]|0;if(g|0){if(a[p>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[s>>2]=0}a[p>>0]=1;c[s>>2]=i;c[q>>2]=j;g=c[b+712>>2]|0;if((g|0)>0){i=c[t>>2]|0;h=j;d=0;do{l=(c[D>>2]|0)+(d*104|0)|0;do if((i|0)==(h|0)){j=(h|0)==0?1:h<<1;if((h|0)>=(j|0)){i=h;break}if(!j){g=h;h=0}else{c[6747]=(c[6747]|0)+1;g=kb((j<<2|3)+16|0)|0;if(!g)h=0;else{c[(g+4+15&-16)+-4>>2]=g;h=g+4+15&-16}g=c[t>>2]|0}if((g|0)>0){i=0;do{c[h+(i<<2)>>2]=c[(c[s>>2]|0)+(i<<2)>>2];i=i+1|0}while((i|0)!=(g|0))}i=c[s>>2]|0;if(i){if(a[p>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0);g=c[t>>2]|0}c[s>>2]=0}a[p>>0]=1;c[s>>2]=h;c[q>>2]=j;i=g;g=c[b+712>>2]|0;h=j}while(0);c[(c[s>>2]|0)+(i<<2)>>2]=l;i=i+1|0;c[t>>2]=i;d=d+1|0}while((d|0)<(g|0))}}g=c[b+1112>>2]|0;if((g|0)==(c[b+1116>>2]|0)?(K=(g|0)==0?1:g<<1,(g|0)<(K|0)):0){if(!K)h=0;else{c[6747]=(c[6747]|0)+1;g=kb((K<<2|3)+16|0)|0;if(!g)h=0;else{c[(g+4+15&-16)+-4>>2]=g;h=g+4+15&-16}g=c[b+1112>>2]|0}if((g|0)>0){i=0;do{c[h+(i<<2)>>2]=c[(c[b+1120>>2]|0)+(i<<2)>>2];i=i+1|0}while((i|0)!=(g|0))}i=c[b+1120>>2]|0;if(i){if(a[b+1124>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0);g=c[b+1112>>2]|0}c[b+1120>>2]=0}a[b+1124>>0]=1;c[b+1120>>2]=h;c[b+1116>>2]=K}c[(c[b+1120>>2]|0)+(g<<2)>>2]=u;K=g+1|0;c[b+1112>>2]=K;I=c[b+1120>>2]|0;g=I+(g<<2)|0;J=c[I>>2]|0;c[I>>2]=c[g>>2];c[g>>2]=J;g=K}if((g|0)>0){h=0;do{d=c[(c[b+1120>>2]|0)+(h<<2)>>2]|0;g:do if(!(c[d+24>>2]|0)){h=h+-1|0;g=c[d+348>>2]|0;if(g|0){jg(b+1048|0,g)|0;i=c[b+1052>>2]|0;if(i|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0)}c[b+1052>>2]=g;c[b+1060>>2]=(c[b+1060>>2]|0)+-1}g=c[d+52>>2]|0;if(g|0){if(a[d+56>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[d+52>>2]=0}a[d+56>>0]=1;c[d+52>>2]=0;c[d+44>>2]=0;c[d+48>>2]=0;g=c[d+32>>2]|0;if(g|0){if(a[d+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[d+32>>2]=0}a[d+36>>0]=1;c[d+32>>2]=0;c[d+24>>2]=0;c[d+28>>2]=0;g=c[d+12>>2]|0;if(g|0){if(a[d+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[d+12>>2]=0}a[d+16>>0]=1;c[d+12>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0);g=c[b+1112>>2]|0;if((g|0)>0){l=c[b+1120>>2]|0;i=0;while(1){j=l+(i<<2)|0;if((c[j>>2]|0)==(d|0))break;i=i+1|0;if((i|0)>=(g|0))break g}if((i|0)>=(g|0))break;c[j>>2]=c[l+(g+-1<<2)>>2];c[(c[b+1120>>2]|0)+(g+-1<<2)>>2]=d;c[b+1112>>2]=g+-1;g=g+-1|0}}while(0);h=h+1|0}while((h|0)<(g|0))}if(!((v|0)==0|(w|0)==0)){c[6748]=(c[6748]|0)+1;uc(c[w+-4>>2]|0)}if(!((G|0)==0|(H|0)==0)){c[6748]=(c[6748]|0)+1;uc(c[H+-4>>2]|0)}}else L=244}else L=244;h:do if((L|0)==244){l=c[b+772>>2]|0;if(!l){d=c[b+752>>2]|0;if((g|0)<(d|0)){if((c[b+1116>>2]|0)<(d|0)){if(d){c[6747]=(c[6747]|0)+1;h=kb((d<<2|3)+16|0)|0;if(!h)l=0;else{c[(h+4+15&-16)+-4>>2]=h;l=h+4+15&-16}h=c[b+1112>>2]|0;if((h|0)>0){i=0;do{c[l+(i<<2)>>2]=c[(c[b+1120>>2]|0)+(i<<2)>>2];i=i+1|0}while((i|0)!=(h|0));j=b+1120|0;i=l}else{j=b+1120|0;i=l}}else{j=b+1120|0;i=0}h=c[j>>2]|0;if(h|0){if(a[b+1124>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[h+-4>>2]|0)}c[j>>2]=0}a[b+1124>>0]=1;c[j>>2]=i;c[b+1116>>2]=d}do{c[(c[b+1120>>2]|0)+(g<<2)>>2]=0;g=g+1|0}while((g|0)!=(d|0))}c[b+1112>>2]=d;if((d|0)>0){h=0;do{c[6747]=(c[6747]|0)+1;g=kb(403)|0;if(!g)g=0;else{c[(g+4+15&-16)+-4>>2]=g;g=g+4+15&-16}a[g+16>>0]=1;c[g+12>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;a[g+36>>0]=1;c[g+32>>2]=0;c[g+24>>2]=0;c[g+28>>2]=0;a[g+56>>0]=1;c[g+52>>2]=0;c[g+44>>2]=0;c[g+48>>2]=0;L=g+348|0;c[L>>2]=0;c[L+4>>2]=0;c[L+8>>2]=0;c[L+12>>2]=0;c[L+16>>2]=0;f[g+368>>2]=100.0;f[g+372>>2]=.009999999776482582;a[g+376>>0]=0;c[(c[b+1120>>2]|0)+(h<<2)>>2]=g;a[(c[(c[b+1120>>2]|0)+(h<<2)>>2]|0)+377>>0]=1;h=h+1|0}while((h|0)<(c[b+1112>>2]|0))}if((c[b+752>>2]|0)<=0)break;d=0;while(1){j=c[(c[b+1120>>2]|0)+(d<<2)>>2]|0;l=(c[b+760>>2]|0)+(d*44|0)+8|0;g=c[j+24>>2]|0;if((g|0)==(c[j+28>>2]|0)?(p=(g|0)==0?1:g<<1,(g|0)<(p|0)):0){if(!p)h=0;else{c[6747]=(c[6747]|0)+1;g=kb((p<<2|3)+16|0)|0;if(!g)h=0;else{c[(g+4+15&-16)+-4>>2]=g;h=g+4+15&-16}g=c[j+24>>2]|0}if((g|0)>0){i=0;do{c[h+(i<<2)>>2]=c[(c[j+32>>2]|0)+(i<<2)>>2];i=i+1|0}while((i|0)!=(g|0))}i=c[j+32>>2]|0;if(i){if(a[j+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0);g=c[j+24>>2]|0}c[j+32>>2]=0}a[j+36>>0]=1;c[j+32>>2]=h;c[j+28>>2]=p}c[(c[j+32>>2]|0)+(g<<2)>>2]=c[l>>2];c[j+24>>2]=g+1;j=c[(c[b+1120>>2]|0)+(d<<2)>>2]|0;l=(c[b+760>>2]|0)+(d*44|0)+12|0;g=c[j+24>>2]|0;if((g|0)==(c[j+28>>2]|0)?(s=(g|0)==0?1:g<<1,(g|0)<(s|0)):0){if(!s)h=0;else{c[6747]=(c[6747]|0)+1;g=kb((s<<2|3)+16|0)|0;if(!g)h=0;else{c[(g+4+15&-16)+-4>>2]=g;h=g+4+15&-16}g=c[j+24>>2]|0}if((g|0)>0){i=0;do{c[h+(i<<2)>>2]=c[(c[j+32>>2]|0)+(i<<2)>>2];i=i+1|0}while((i|0)!=(g|0))}i=c[j+32>>2]|0;if(i){if(a[j+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0);g=c[j+24>>2]|0}c[j+32>>2]=0}a[j+36>>0]=1;c[j+32>>2]=h;c[j+28>>2]=s}c[(c[j+32>>2]|0)+(g<<2)>>2]=c[l>>2];c[j+24>>2]=g+1;j=c[(c[b+1120>>2]|0)+(d<<2)>>2]|0;l=(c[b+760>>2]|0)+(d*44|0)+16|0;g=c[j+24>>2]|0;if((g|0)==(c[j+28>>2]|0)?(t=(g|0)==0?1:g<<1,(g|0)<(t|0)):0){if(!t)h=0;else{c[6747]=(c[6747]|0)+1;g=kb((t<<2|3)+16|0)|0;if(!g)h=0;else{c[(g+4+15&-16)+-4>>2]=g;h=g+4+15&-16}g=c[j+24>>2]|0}if((g|0)>0){i=0;do{c[h+(i<<2)>>2]=c[(c[j+32>>2]|0)+(i<<2)>>2];i=i+1|0}while((i|0)!=(g|0))}i=c[j+32>>2]|0;if(i){if(a[j+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0);g=c[j+24>>2]|0}c[j+32>>2]=0}a[j+36>>0]=1;c[j+32>>2]=h;c[j+28>>2]=t}c[(c[j+32>>2]|0)+(g<<2)>>2]=c[l>>2];c[j+24>>2]=g+1;d=d+1|0;if((d|0)>=(c[b+752>>2]|0))break h}}if((g|0)<(l|0)){if((c[b+1116>>2]|0)<(l|0)){c[6747]=(c[6747]|0)+1;h=kb((l<<2|3)+16|0)|0;if(!h)j=0;else{c[(h+4+15&-16)+-4>>2]=h;j=h+4+15&-16}h=c[b+1112>>2]|0;if((h|0)>0){i=0;do{c[j+(i<<2)>>2]=c[(c[b+1120>>2]|0)+(i<<2)>>2];i=i+1|0}while((i|0)!=(h|0))}h=c[b+1120>>2]|0;if(h|0){if(a[b+1124>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[h+-4>>2]|0)}c[b+1120>>2]=0}a[b+1124>>0]=1;c[b+1120>>2]=j;c[b+1116>>2]=l;h=b+1120|0}else h=b+1120|0;do{c[(c[h>>2]|0)+(g<<2)>>2]=0;g=g+1|0}while((g|0)!=(l|0))}c[b+1112>>2]=l;if((l|0)>0){h=0;do{c[6747]=(c[6747]|0)+1;g=kb(403)|0;if(!g)g=0;else{c[(g+4+15&-16)+-4>>2]=g;g=g+4+15&-16}a[g+16>>0]=1;c[g+12>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;a[g+36>>0]=1;c[g+32>>2]=0;c[g+24>>2]=0;c[g+28>>2]=0;a[g+56>>0]=1;c[g+52>>2]=0;c[g+44>>2]=0;c[g+48>>2]=0;L=g+348|0;c[L>>2]=0;c[L+4>>2]=0;c[L+8>>2]=0;c[L+12>>2]=0;c[L+16>>2]=0;f[g+368>>2]=100.0;f[g+372>>2]=.009999999776482582;a[g+376>>0]=0;c[(c[b+1120>>2]|0)+(h<<2)>>2]=g;a[(c[(c[b+1120>>2]|0)+(h<<2)>>2]|0)+377>>0]=1;h=h+1|0}while((h|0)<(c[b+1112>>2]|0))}if((c[b+772>>2]|0)>0){d=0;do{j=c[(c[b+1120>>2]|0)+(d<<2)>>2]|0;l=(c[b+780>>2]|0)+(d*104|0)+8|0;g=c[j+24>>2]|0;if((g|0)==(c[j+28>>2]|0)?(u=(g|0)==0?1:g<<1,(g|0)<(u|0)):0){if(!u)h=0;else{c[6747]=(c[6747]|0)+1;g=kb((u<<2|3)+16|0)|0;if(!g)h=0;else{c[(g+4+15&-16)+-4>>2]=g;h=g+4+15&-16}g=c[j+24>>2]|0}if((g|0)>0){i=0;do{c[h+(i<<2)>>2]=c[(c[j+32>>2]|0)+(i<<2)>>2];i=i+1|0}while((i|0)!=(g|0))}i=c[j+32>>2]|0;if(i){if(a[j+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0);g=c[j+24>>2]|0}c[j+32>>2]=0}a[j+36>>0]=1;c[j+32>>2]=h;c[j+28>>2]=u}c[(c[j+32>>2]|0)+(g<<2)>>2]=c[l>>2];c[j+24>>2]=g+1;j=c[(c[b+1120>>2]|0)+(d<<2)>>2]|0;l=(c[b+780>>2]|0)+(d*104|0)+12|0;g=c[j+24>>2]|0;if((g|0)==(c[j+28>>2]|0)?(v=(g|0)==0?1:g<<1,(g|0)<(v|0)):0){if(!v)h=0;else{c[6747]=(c[6747]|0)+1;g=kb((v<<2|3)+16|0)|0;if(!g)h=0;else{c[(g+4+15&-16)+-4>>2]=g;h=g+4+15&-16}g=c[j+24>>2]|0}if((g|0)>0){i=0;do{c[h+(i<<2)>>2]=c[(c[j+32>>2]|0)+(i<<2)>>2];i=i+1|0}while((i|0)!=(g|0))}i=c[j+32>>2]|0;if(i){if(a[j+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0);g=c[j+24>>2]|0}c[j+32>>2]=0}a[j+36>>0]=1;c[j+32>>2]=h;c[j+28>>2]=v}c[(c[j+32>>2]|0)+(g<<2)>>2]=c[l>>2];c[j+24>>2]=g+1;j=c[(c[b+1120>>2]|0)+(d<<2)>>2]|0;l=(c[b+780>>2]|0)+(d*104|0)+16|0;g=c[j+24>>2]|0;if((g|0)==(c[j+28>>2]|0)?(w=(g|0)==0?1:g<<1,(g|0)<(w|0)):0){if(!w)h=0;else{c[6747]=(c[6747]|0)+1;g=kb((w<<2|3)+16|0)|0;if(!g)h=0;else{c[(g+4+15&-16)+-4>>2]=g;h=g+4+15&-16}g=c[j+24>>2]|0}if((g|0)>0){i=0;do{c[h+(i<<2)>>2]=c[(c[j+32>>2]|0)+(i<<2)>>2];i=i+1|0}while((i|0)!=(g|0))}i=c[j+32>>2]|0;if(i){if(a[j+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0);g=c[j+24>>2]|0}c[j+32>>2]=0}a[j+36>>0]=1;c[j+32>>2]=h;c[j+28>>2]=w}c[(c[j+32>>2]|0)+(g<<2)>>2]=c[l>>2];c[j+24>>2]=g+1;j=c[(c[b+1120>>2]|0)+(d<<2)>>2]|0;l=(c[b+780>>2]|0)+(d*104|0)+20|0;g=c[j+24>>2]|0;if((g|0)==(c[j+28>>2]|0)?(D=(g|0)==0?1:g<<1,(g|0)<(D|0)):0){if(!D)h=0;else{c[6747]=(c[6747]|0)+1;g=kb((D<<2|3)+16|0)|0;if(!g)h=0;else{c[(g+4+15&-16)+-4>>2]=g;h=g+4+15&-16}g=c[j+24>>2]|0}if((g|0)>0){i=0;do{c[h+(i<<2)>>2]=c[(c[j+32>>2]|0)+(i<<2)>>2];i=i+1|0}while((i|0)!=(g|0))}i=c[j+32>>2]|0;if(i){if(a[j+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0);g=c[j+24>>2]|0}c[j+32>>2]=0}a[j+36>>0]=1;c[j+32>>2]=h;c[j+28>>2]=D}c[(c[j+32>>2]|0)+(g<<2)>>2]=c[l>>2];c[j+24>>2]=g+1;d=d+1|0}while((d|0)<(c[b+772>>2]|0))}}while(0);g=c[b+1112>>2]|0;if(!g){b=0;ea=M;return b|0}if((g|0)>0){s=0;do{q=c[(c[b+1120>>2]|0)+(s<<2)>>2]|0;f[q+128>>2]=0.0;d=c[q+24>>2]|0;l=c[q+4>>2]|0;if((d|0)>(l|0)){do if((c[q+8>>2]|0)<(d|0)){if(!d){j=l;g=0}else{c[6747]=(c[6747]|0)+1;g=kb((d<<2|3)+16|0)|0;if(!g)g=0;else{c[(g+4+15&-16)+-4>>2]=g;g=g+4+15&-16}j=c[q+4>>2]|0}h=c[q+12>>2]|0;if((j|0)<=0){if(!h){a[q+16>>0]=1;c[q+12>>2]=g;c[q+8>>2]=d;break}}else{i=0;do{c[g+(i<<2)>>2]=c[h+(i<<2)>>2];i=i+1|0}while((i|0)!=(j|0))}if(a[q+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[h+-4>>2]|0)}a[q+16>>0]=1;c[q+12>>2]=g;c[q+8>>2]=d}else g=c[q+12>>2]|0;while(0);hk(g+(l<<2)|0,0,d-l<<2|0)|0;p=c[q+24>>2]|0}else p=d;c[q+4>>2]=d;l=(p|0)>0;if(l){h=c[q+32>>2]|0;i=c[q+12>>2]|0;g=0;do{k=+f[(c[h+(g<<2)>>2]|0)+88>>2];if(k==0.0){a[q+376>>0]=1;k=999999984306749440.0}else k=1.0/k;f[i+(g<<2)>>2]=k;m=k+ +f[q+128>>2];f[q+128>>2]=m;g=g+1|0}while((g|0)!=(p|0));f[q+128>>2]=1.0/m;k=0.0;n=0.0;o=0.0;g=0;do{L=c[h+(g<<2)>>2]|0;C=+f[i+(g<<2)>>2];k=k+ +f[L+8>>2]*C;n=n+C*+f[L+12>>2];o=o+C*+f[L+16>>2];g=g+1|0}while((g|0)!=(p|0));m=1.0/m}else{m=1.0/+f[q+128>>2];f[q+128>>2]=m;o=0.0;n=0.0;k=0.0}C=m*k;B=m*n;A=m*o;f[q+228>>2]=C;f[q+232>>2]=B;f[q+236>>2]=A;f[q+240>>2]=0.0;g=q+316|0;h=g+36|0;do{c[g>>2]=0;g=g+4|0}while((g|0)<(h|0));g=q+132|0;h=g+48|0;do{c[g>>2]=0;g=g+4|0}while((g|0)<(h|0));if(l){g=c[q+32>>2]|0;h=c[q+12>>2]|0;k=0.0;n=0.0;m=0.0;o=0.0;x=0.0;y=0.0;i=0;do{L=c[g+(i<<2)>>2]|0;Q=+f[L+8>>2]-C;O=+f[L+12>>2]-B;P=+f[L+16>>2]-A;N=+f[h+(i<<2)>>2];k=k+N*(O*O+P*P);f[q+132>>2]=k;n=N*(Q*Q+P*P)+n;f[q+152>>2]=n;m=(Q*Q+O*O)*N+m;f[q+172>>2]=m;o=o-O*(Q*N);f[q+136>>2]=o;x=x-P*(Q*N);f[q+140>>2]=x;y=y-P*(O*N);f[q+156>>2]=y;i=i+1|0}while((i|0)!=(p|0));g=q+136|0;h=q+140|0;i=q+156|0;j=q+152|0}else{y=0.0;x=0.0;o=0.0;n=0.0;m=0.0;k=0.0;g=q+136|0;h=q+140|0;i=q+156|0;j=q+152|0}C=n*m-y*y;N=y*x-m*o;O=y*o-n*x;Q=1.0/(C*k+o*N+O*x);P=(o*x-y*k)*Q;f[q+132>>2]=C*Q;f[g>>2]=N*Q;f[h>>2]=O*Q;f[q+144>>2]=0.0;f[q+148>>2]=N*Q;f[j>>2]=(m*k-x*x)*Q;f[i>>2]=P;f[q+160>>2]=0.0;f[q+164>>2]=O*Q;f[q+168>>2]=P;f[q+172>>2]=(n*k-o*o)*Q;f[q+176>>2]=0.0;c[q+60>>2]=1065353216;c[q+64>>2]=0;c[q+64+4>>2]=0;c[q+64+8>>2]=0;c[q+64+12>>2]=0;c[q+80>>2]=1065353216;c[q+84>>2]=0;c[q+84+4>>2]=0;c[q+84+8>>2]=0;c[q+84+12>>2]=0;c[q+100>>2]=1065353216;c[q+104>>2]=0;c[q+108>>2]=c[q+228>>2];c[q+108+4>>2]=c[q+228+4>>2];c[q+108+8>>2]=c[q+228+8>>2];c[q+108+12>>2]=c[q+228+12>>2];j=c[q+44>>2]|0;if((j|0)<(p|0)){if((c[q+48>>2]|0)<(p|0)){if(!p){h=j;i=0}else{c[6747]=(c[6747]|0)+1;g=kb((p<<4|3)+16|0)|0;if(!g)g=0;else{c[(g+4+15&-16)+-4>>2]=g;g=g+4+15&-16}h=c[q+44>>2]|0;i=g}if((h|0)>0){g=0;do{L=i+(g<<4)|0;K=(c[q+52>>2]|0)+(g<<4)|0;c[L>>2]=c[K>>2];c[L+4>>2]=c[K+4>>2];c[L+8>>2]=c[K+8>>2];c[L+12>>2]=c[K+12>>2];g=g+1|0}while((g|0)!=(h|0))}g=c[q+52>>2]|0;if(g|0){if(a[q+56>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[q+52>>2]=0}a[q+56>>0]=1;c[q+52>>2]=i;c[q+48>>2]=p;h=q+52|0}else h=q+52|0;g=j;do{L=(c[h>>2]|0)+(g<<4)|0;c[L>>2]=c[M>>2];c[L+4>>2]=c[M+4>>2];c[L+8>>2]=c[M+8>>2];c[L+12>>2]=c[M+12>>2];g=g+1|0}while((g|0)!=(p|0))}c[q+44>>2]=p;if(l){g=0;do{K=c[(c[q+32>>2]|0)+(g<<2)>>2]|0;P=+f[K+12>>2]-+f[q+232>>2];Q=+f[K+16>>2]-+f[q+236>>2];L=c[q+52>>2]|0;f[L+(g<<4)>>2]=+f[K+8>>2]-+f[q+228>>2];f[L+(g<<4)+4>>2]=P;f[L+(g<<4)+8>>2]=Q;f[L+(g<<4)+12>>2]=0.0;g=g+1|0}while((g|0)<(c[q+44>>2]|0))}s=s+1|0}while((s|0)<(c[b+1112>>2]|0))}Kb(b);g=c[b+1112>>2]|0;d=z(g,g)|0;l=c[b+1132>>2]|0;if((d|0)>(l|0)){do if((c[b+1136>>2]|0)<(d|0)){if(!d){j=l;g=0}else{c[6747]=(c[6747]|0)+1;g=kb(d+19|0)|0;if(!g)g=0;else{c[(g+4+15&-16)+-4>>2]=g;g=g+4+15&-16}j=c[b+1132>>2]|0}h=c[b+1140>>2]|0;if((j|0)<=0){if(!h){a[b+1144>>0]=1;c[b+1140>>2]=g;c[b+1136>>2]=d;break}}else{i=0;do{a[g+i>>0]=a[h+i>>0]|0;i=i+1|0}while((i|0)!=(j|0))}if(a[b+1144>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[h+-4>>2]|0)}a[b+1144>>0]=1;c[b+1140>>2]=g;c[b+1136>>2]=d}else g=c[b+1140>>2]|0;while(0);hk(g+l|0,0,d-l|0)|0;g=c[b+1112>>2]|0}c[b+1132>>2]=d;if((g|0)<=0){b=g;ea=M;return b|0}w=c[b+1120>>2]|0;q=c[b+1140>>2]|0;u=0;do{s=c[w+(u<<2)>>2]|0;c[s+380>>2]=u;t=c[s+24>>2]|0;v=0;do{d=c[w+(v<<2)>>2]|0;p=0;while(1){if((p|0)>=(t|0)){h=0;break}h=c[d+24>>2]|0;i:do if((h|0)>0){i=c[(c[s+32>>2]|0)+(p<<2)>>2]|0;j=c[d+32>>2]|0;l=0;while(1){if((i|0)==(c[j+(l<<2)>>2]|0)){h=1;break i}l=l+1|0;if((l|0)>=(h|0)){h=0;break}}}else h=0;while(0);if(h){h=1;break}else p=p+1|0}a[q+((z(v,g)|0)+u)>>0]=h;v=v+1|0}while((v|0)!=(g|0));u=u+1|0}while((u|0)!=(g|0));ea=M;return g|0}function cb(b){b=b|0;var d=0,e=0,g=0,h=0.0,i=0.0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0.0,W=0.0,X=0.0,Y=0.0,Z=0.0,_=0.0,$=0.0,aa=0.0,ba=0.0,ca=0.0,da=0.0,fa=0.0;U=ea;ea=ea+176|0;eb(b);if(!(ra[c[(c[b>>2]|0)+20>>2]&127](b)|0)){ea=U;return}if((c[b+328>>2]|0)<=0){ea=U;return}S=U+96+32|0;T=U+96+52|0;R=0;do{P=c[(c[b+336>>2]|0)+(R<<2)>>2]|0;if(ra[c[(c[b>>2]|0)+20>>2]&127](b)|0?(K=ra[c[(c[b>>2]|0)+20>>2]&127](b)|0,(ra[c[(c[K>>2]|0)+48>>2]&127](K)|0)&1|0):0){d=c[b+72>>2]|0;if(!(a[P+473>>0]|0))K=d;else{c[U+80>>2]=c[P+520>>2];c[U+80+4>>2]=c[P+520+4>>2];c[U+80+8>>2]=c[P+520+8>>2];c[U+80+12>>2]=c[P+520+12>>2];h=+f[P+584>>2];i=+f[P+536>>2];j=+f[P+600>>2];q=+f[P+540>>2];r=+f[P+616>>2];t=+f[P+544>>2];u=+f[P+588>>2];v=+f[P+604>>2];w=+f[P+620>>2];x=+f[P+592>>2];y=+f[P+608>>2];z=+f[P+624>>2];A=+f[P+552>>2];B=+f[P+556>>2];C=+f[P+560>>2];D=+f[P+568>>2];E=+f[P+572>>2];F=+f[P+576>>2];fa=h*i+j*q+r*t+(i*u+q*v+t*w)*0.0+(i*x+q*y+t*z)*0.0;ca=(x*A+y*B+z*C)*0.0+(h*A+j*B+r*C+(u*A+v*B+w*C)*0.0);ba=(x*D+y*E+z*F)*0.0+(h*D+j*E+r*F+(u*D+v*E+w*F)*0.0);da=1.0/+s(+(fa*fa+ca*ca+ba*ba));aa=(h*i+j*q+r*t)*0.0+(i*u+q*v+t*w)+(i*x+q*y+t*z)*0.0;_=(x*A+y*B+z*C)*0.0+(u*A+v*B+w*C+(h*A+j*B+r*C)*0.0);Z=(x*D+y*E+z*F)*0.0+(u*D+v*E+w*F+(h*D+j*E+r*F)*0.0);$=1.0/+s(+(aa*aa+_*_+Z*Z));Y=(h*i+j*q+r*t)*0.0+(i*u+q*v+t*w)*0.0+(i*x+q*y+t*z);W=x*A+y*B+z*C+((h*A+j*B+r*C)*0.0+(u*A+v*B+w*C)*0.0);V=x*D+y*E+z*F+((h*D+j*E+r*F)*0.0+(u*D+v*E+w*F)*0.0);X=1.0/+s(+(Y*Y+W*W+V*V));K=c[(c[d>>2]|0)+8>>2]|0;ca=+f[U+80+4>>2]+ca*da*10.0;ba=+f[U+80+8>>2]+ba*da*10.0;f[U+160>>2]=+f[U+80>>2]+fa*da*10.0;f[U+160+4>>2]=ca;f[U+160+8>>2]=ba;f[U+160+12>>2]=0.0;c[U+96>>2]=1065353216;c[U+96+4>>2]=0;c[U+96+8>>2]=0;f[U+96+12>>2]=0.0;Pa[K&127](d,U+80|0,U+160|0,U+96|0);K=c[(c[d>>2]|0)+8>>2]|0;_=_*$*10.0+ +f[U+80+4>>2];Z=Z*$*10.0+ +f[U+80+8>>2];f[U+160>>2]=aa*$*10.0+ +f[U+80>>2];f[U+160+4>>2]=_;f[U+160+8>>2]=Z;f[U+160+12>>2]=0.0;c[U+96>>2]=0;c[U+96+4>>2]=1065353216;c[U+96+8>>2]=0;f[U+96+12>>2]=0.0;Pa[K&127](d,U+80|0,U+160|0,U+96|0);K=c[(c[d>>2]|0)+8>>2]|0;W=W*X*10.0+ +f[U+80+4>>2];V=V*X*10.0+ +f[U+80+8>>2];f[U+160>>2]=Y*X*10.0+ +f[U+80>>2];f[U+160+4>>2]=W;f[U+160+8>>2]=V;f[U+160+12>>2]=0.0;c[U+96>>2]=0;c[U+96+4>>2]=0;c[U+96+8>>2]=1065353216;f[U+96+12>>2]=0.0;Pa[K&127](d,U+80|0,U+160|0,U+96|0);if((c[P+484>>2]|0)>0){e=0;do{K=c[P+492>>2]|0;aa=+f[K+(e<<4)>>2];ba=+f[K+(e<<4)+4>>2];fa=+f[K+(e<<4)+8>>2];ca=+f[U+80>>2]+((h*i+j*q+r*t)*aa+(i*u+q*v+t*w)*ba+(i*x+q*y+t*z)*fa);da=+f[U+80+4>>2]+((h*A+j*B+r*C)*aa+(u*A+v*B+w*C)*ba+(x*A+y*B+z*C)*fa);fa=(h*D+j*E+r*F)*aa+(u*D+v*E+w*F)*ba+(x*D+y*E+z*F)*fa+ +f[U+80+8>>2];c[U+64>>2]=1065353216;c[U+64+4>>2]=0;c[U+64+8>>2]=1065353216;f[U+64+12>>2]=0.0;K=c[(c[d>>2]|0)+8>>2]|0;f[U+160>>2]=ca+-.10000000149011612;f[U+160+4>>2]=da;f[U+160+8>>2]=fa;f[U+160+12>>2]=0.0;f[U+96>>2]=ca+.10000000149011612;f[U+96+4>>2]=da+0.0;f[U+96+8>>2]=fa+0.0;f[U+96+12>>2]=0.0;Pa[K&127](d,U+160|0,U+96|0,U+64|0);K=c[(c[d>>2]|0)+8>>2]|0;f[U+160>>2]=ca;f[U+160+4>>2]=da+-.10000000149011612;f[U+160+8>>2]=fa;f[U+160+12>>2]=0.0;f[U+96>>2]=ca+0.0;f[U+96+4>>2]=da+.10000000149011612;f[U+96+8>>2]=fa+0.0;f[U+96+12>>2]=0.0;Pa[K&127](d,U+160|0,U+96|0,U+64|0);K=c[(c[d>>2]|0)+8>>2]|0;f[U+160>>2]=ca;f[U+160+4>>2]=da;f[U+160+8>>2]=fa+-.10000000149011612;f[U+160+12>>2]=0.0;f[U+96>>2]=ca+0.0;f[U+96+4>>2]=da+0.0;f[U+96+8>>2]=fa+.10000000149011612;f[U+96+12>>2]=0.0;Pa[K&127](d,U+160|0,U+96|0,U+64|0);e=e+1|0}while((e|0)<(c[P+484>>2]|0))}K=c[b+72>>2]|0}J=c[b+344>>2]|0;c[U+80>>2]=0;c[U+80+4>>2]=0;c[U+80+8>>2]=0;c[U+80+12>>2]=0;c[U+64>>2]=1065353216;c[U+64+4>>2]=1065353216;c[U+64+8>>2]=1065353216;f[U+64+12>>2]=0.0;c[U+48>>2]=1065353216;c[U+48+4>>2]=0;c[U+48+8>>2]=0;f[U+48+12>>2]=0.0;if(!(J&256)){if(J&1|0?(Q=c[P+712>>2]|0,(Q|0)>0):0){d=Q;g=0;do{e=c[P+720>>2]|0;if(c[(c[e+(g*104|0)+4>>2]|0)+16>>2]&1){d=c[(c[K>>2]|0)+8>>2]|0;I=e+(g*104|0)+8|0;G=e+(g*104|0)+12|0;o=c[G>>2]|0;H=e+(g*104|0)+16|0;p=c[H>>2]|0;f[U+160>>2]=+f[I>>2]+-.10000000149011612;c[U+160+4>>2]=o;c[U+160+8>>2]=p;f[U+160+12>>2]=0.0;da=+f[G>>2]+0.0;fa=+f[H>>2]+0.0;f[U+96>>2]=+f[I>>2]+.10000000149011612;f[U+96+4>>2]=da;f[U+96+8>>2]=fa;f[U+96+12>>2]=0.0;c[U+32>>2]=1065353216;c[U+32+4>>2]=0;c[U+32+8>>2]=0;f[U+32+12>>2]=0.0;Pa[d&127](K,U+160|0,U+96|0,U+32|0);d=c[(c[K>>2]|0)+8>>2]|0;fa=+f[G>>2]+-.10000000149011612;p=c[H>>2]|0;c[U+160>>2]=c[I>>2];f[U+160+4>>2]=fa;c[U+160+8>>2]=p;f[U+160+12>>2]=0.0;fa=+f[G>>2]+.10000000149011612;da=+f[H>>2]+0.0;f[U+96>>2]=+f[I>>2]+0.0;f[U+96+4>>2]=fa;f[U+96+8>>2]=da;f[U+96+12>>2]=0.0;c[U+32>>2]=0;c[U+32+4>>2]=1065353216;c[U+32+8>>2]=0;f[U+32+12>>2]=0.0;Pa[d&127](K,U+160|0,U+96|0,U+32|0);d=c[(c[K>>2]|0)+8>>2]|0;p=c[G>>2]|0;da=+f[H>>2]+-.10000000149011612;c[U+160>>2]=c[I>>2];c[U+160+4>>2]=p;f[U+160+8>>2]=da;f[U+160+12>>2]=0.0;da=+f[G>>2]+0.0;fa=+f[H>>2]+.10000000149011612;f[U+96>>2]=+f[I>>2]+0.0;f[U+96+4>>2]=da;f[U+96+8>>2]=fa;f[U+96+12>>2]=0.0;c[U+32>>2]=0;c[U+32+4>>2]=0;c[U+32+8>>2]=1065353216;f[U+32+12>>2]=0.0;Pa[d&127](K,U+160|0,U+96|0,U+32|0);d=c[P+712>>2]|0}g=g+1|0}while((g|0)<(d|0))}if(J&2|0?(L=c[P+732>>2]|0,(L|0)>0):0){d=L;g=0;do{e=c[P+740>>2]|0;if(c[(c[e+(g*52|0)+4>>2]|0)+16>>2]&1){Pa[c[(c[K>>2]|0)+8>>2]&127](K,(c[e+(g*52|0)+8>>2]|0)+8|0,(c[e+(g*52|0)+12>>2]|0)+8|0,U+80|0);d=c[P+732>>2]|0}g=g+1|0}while((g|0)<(d|0))}if(J&16|0?(M=c[P+712>>2]|0,(M|0)>0):0){d=M;g=0;do{e=c[P+720>>2]|0;if(c[(c[e+(g*104|0)+4>>2]|0)+16>>2]&1){ca=+f[e+(g*104|0)+72>>2]*.5;fa=+f[e+(g*104|0)+76>>2]*.5;da=+f[e+(g*104|0)+80>>2]*.5;I=c[(c[K>>2]|0)+8>>2]|0;d=e+(g*104|0)+8|0;G=e+(g*104|0)+12|0;aa=fa+ +f[G>>2];H=e+(g*104|0)+16|0;ba=da+ +f[H>>2];f[U+160>>2]=ca+ +f[d>>2];f[U+160+4>>2]=aa;f[U+160+8>>2]=ba;f[U+160+12>>2]=0.0;Pa[I&127](K,d,U+160|0,U+64|0);I=c[(c[K>>2]|0)+8>>2]|0;fa=+f[G>>2]-fa;da=+f[H>>2]-da;f[U+160>>2]=+f[d>>2]-ca;f[U+160+4>>2]=fa;f[U+160+8>>2]=da;f[U+160+12>>2]=0.0;da=+f[U+64+4>>2]*.5;fa=+f[U+64+8>>2]*.5;f[U+96>>2]=+f[U+64>>2]*.5;f[U+96+4>>2]=da;f[U+96+8>>2]=fa;f[U+96+12>>2]=0.0;Pa[I&127](K,d,U+160|0,U+96|0);d=c[P+712>>2]|0}g=g+1|0}while((g|0)<(d|0))}if(J&32|0){if((a[24936]|0)==0?DC(24936)|0:0){c[5628]=1065353216;c[5629]=0;c[5630]=0;c[5631]=0;c[5632]=0;c[5633]=1065353216;c[5634]=0;c[5635]=0;c[5636]=0;c[5637]=0;c[5638]=1065353216;f[5639]=0.0;PB(24936)}if((c[P+812>>2]|0)>0){d=0;do{I=c[P+820>>2]|0;G=c[I+(d*104|0)+24>>2]|0;A=+f[G+8>>2];H=I+(d*104|0)+4|0;B=+f[H>>2];C=+f[G+12>>2];p=I+(d*104|0)+8|0;D=+f[p>>2];V=+f[G+16>>2];G=I+(d*104|0)+12|0;W=+f[G>>2];X=+f[I+(d*104|0)+20>>2]+(A*B+C*D+V*W);f[U+160>>2]=A-B*X;f[U+160+4>>2]=C-D*X;f[U+160+8>>2]=V-W*X;f[U+160+12>>2]=0.0;Y=+f[H>>2];da=+f[p>>2];E=+f[G>>2];I=Y>2];Z=+f[22512+(I<<4)+4>>2];ba=+f[22512+(I<<4)>>2];$=1.0/+s(+((Y*Z-da*ba)*(Y*Z-da*ba)+((da*F-E*Z)*(da*F-E*Z)+(E*ba-Y*F)*(E*ba-Y*F))));_=E*((E*ba-Y*F)*$)-da*((Y*Z-da*ba)*$);aa=Y*((Y*Z-da*ba)*$)-E*((da*F-E*Z)*$);ca=da*((da*F-E*Z)*$)-Y*((E*ba-Y*F)*$);fa=1.0/+s(+(ca*ca+(_*_+aa*aa)));I=c[(c[K>>2]|0)+8>>2]|0;f[U+96>>2]=A-B*X-(da*F-E*Z)*$*.5;f[U+96+4>>2]=C-D*X-(E*ba-Y*F)*$*.5;f[U+96+8>>2]=V-W*X-(Y*Z-da*ba)*$*.5;f[U+96+12>>2]=0.0;f[U+32>>2]=A-B*X+(da*F-E*Z)*$*.5;f[U+32+4>>2]=C-D*X+(E*ba-Y*F)*$*.5;f[U+32+8>>2]=V-W*X+(Y*Z-da*ba)*$*.5;f[U+32+12>>2]=0.0;Pa[I&127](K,U+96|0,U+32|0,U+48|0);I=c[(c[K>>2]|0)+8>>2]|0;$=+f[U+160>>2];ba=+f[U+160+4>>2];da=+f[U+160+8>>2];f[U+96>>2]=$-_*fa*.5;f[U+96+4>>2]=ba-aa*fa*.5;f[U+96+8>>2]=da-ca*fa*.5;f[U+96+12>>2]=0.0;f[U+32>>2]=_*fa*.5+$;f[U+32+4>>2]=aa*fa*.5+ba;f[U+32+8>>2]=ca*fa*.5+da;f[U+32+12>>2]=0.0;Pa[I&127](K,U+96|0,U+32|0,U+48|0);I=c[(c[K>>2]|0)+8>>2]|0;da=+f[p>>2]*.5*3.0+ +f[U+160+4>>2];fa=+f[G>>2]*.5*3.0+ +f[U+160+8>>2];f[U+96>>2]=+f[H>>2]*.5*3.0+ +f[U+160>>2];f[U+96+4>>2]=da;f[U+96+8>>2]=fa;f[U+96+12>>2]=0.0;c[U+32>>2]=1065353216;c[U+32+4>>2]=1065353216;c[U+32+8>>2]=0;f[U+32+12>>2]=0.0;Pa[I&127](K,U+160|0,U+96|0,U+32|0);d=d+1|0}while((d|0)<(c[P+812>>2]|0))}}if(J&4|0?(c[U+160>>2]=0,c[U+160+4>>2]=1060320051,c[U+160+8>>2]=0,f[U+160+12>>2]=0.0,N=c[P+752>>2]|0,(N|0)>0):0){d=N;g=0;do{e=c[P+760>>2]|0;if(c[(c[e+(g*44|0)+4>>2]|0)+16>>2]&1){d=c[e+(g*44|0)+8>>2]|0;Y=+f[d+8>>2];$=+f[d+12>>2];ca=+f[d+16>>2];d=c[e+(g*44|0)+12>>2]|0;Z=+f[d+8>>2];aa=+f[d+12>>2];da=+f[d+16>>2];d=c[e+(g*44|0)+16>>2]|0;_=+f[d+8>>2];ba=+f[d+12>>2];fa=+f[d+16>>2];d=c[(c[K>>2]|0)+28>>2]|0;f[U+96>>2]=(Y+Z+_)*.3333333432674408+(Y-(Y+Z+_)*.3333333432674408)*.800000011920929;f[U+96+4>>2]=($+aa+ba)*.3333333432674408+($-($+aa+ba)*.3333333432674408)*.800000011920929;f[U+96+8>>2]=(ca+da+fa)*.3333333432674408+(ca-(ca+da+fa)*.3333333432674408)*.800000011920929;f[U+96+12>>2]=0.0;f[U+32>>2]=(Y+Z+_)*.3333333432674408+(Z-(Y+Z+_)*.3333333432674408)*.800000011920929;f[U+32+4>>2]=($+aa+ba)*.3333333432674408+(aa-($+aa+ba)*.3333333432674408)*.800000011920929;f[U+32+8>>2]=(ca+da+fa)*.3333333432674408+(da-(ca+da+fa)*.3333333432674408)*.800000011920929;f[U+32+12>>2]=0.0;f[U+16>>2]=(Y+Z+_)*.3333333432674408+(_-(Y+Z+_)*.3333333432674408)*.800000011920929;f[U+16+4>>2]=($+aa+ba)*.3333333432674408+(ba-($+aa+ba)*.3333333432674408)*.800000011920929;f[U+16+8>>2]=(ca+da+fa)*.3333333432674408+(fa-(ca+da+fa)*.3333333432674408)*.800000011920929;f[U+16+12>>2]=0.0;Ua[d&1](K,U+96|0,U+32|0,U+16|0,U+160|0,1.0);d=c[P+752>>2]|0}g=g+1|0}while((g|0)<(d|0))}if(J&8|0?(c[U+160>>2]=1050253722,c[U+160+4>>2]=1050253722,c[U+160+8>>2]=1060320051,f[U+160+12>>2]=0.0,O=c[P+772>>2]|0,(O|0)>0):0){d=O;g=0;do{e=c[P+780>>2]|0;if(c[(c[e+(g*104|0)+4>>2]|0)+16>>2]&1){d=c[e+(g*104|0)+8>>2]|0;x=+f[d+8>>2];A=+f[d+12>>2];D=+f[d+16>>2];d=c[e+(g*104|0)+12>>2]|0;y=+f[d+8>>2];B=+f[d+12>>2];E=+f[d+16>>2];d=c[e+(g*104|0)+16>>2]|0;z=+f[d+8>>2];C=+f[d+12>>2];F=+f[d+16>>2];d=c[e+(g*104|0)+20>>2]|0;ca=+f[d+8>>2];da=+f[d+12>>2];fa=+f[d+16>>2];d=c[(c[K>>2]|0)+28>>2]|0;$=(x+y+z+ca)*.25+(x-(x+y+z+ca)*.25)*.800000011920929;aa=(A+B+C+da)*.25+(A-(A+B+C+da)*.25)*.800000011920929;ba=(D+E+F+fa)*.25+(D-(D+E+F+fa)*.25)*.800000011920929;f[U+96>>2]=$;f[U+96+4>>2]=aa;f[U+96+8>>2]=ba;f[U+96+12>>2]=0.0;V=(x+y+z+ca)*.25+(y-(x+y+z+ca)*.25)*.800000011920929;W=(A+B+C+da)*.25+(B-(A+B+C+da)*.25)*.800000011920929;X=(D+E+F+fa)*.25+(E-(D+E+F+fa)*.25)*.800000011920929;f[U+32>>2]=V;f[U+32+4>>2]=W;f[U+32+8>>2]=X;f[U+32+12>>2]=0.0;Y=(x+y+z+ca)*.25+(z-(x+y+z+ca)*.25)*.800000011920929;Z=(A+B+C+da)*.25+(C-(A+B+C+da)*.25)*.800000011920929;_=(D+E+F+fa)*.25+(F-(D+E+F+fa)*.25)*.800000011920929;f[U+16>>2]=Y;f[U+16+4>>2]=Z;f[U+16+8>>2]=_;f[U+16+12>>2]=0.0;Ua[d&1](K,U+96|0,U+32|0,U+16|0,U+160|0,1.0);d=c[(c[K>>2]|0)+28>>2]|0;f[U+96>>2]=$;f[U+96+4>>2]=aa;f[U+96+8>>2]=ba;f[U+96+12>>2]=0.0;f[U+32>>2]=V;f[U+32+4>>2]=W;f[U+32+8>>2]=X;f[U+32+12>>2]=0.0;ca=(x+y+z+ca)*.25+(ca-(x+y+z+ca)*.25)*.800000011920929;da=(A+B+C+da)*.25+(da-(A+B+C+da)*.25)*.800000011920929;fa=(D+E+F+fa)*.25+(fa-(D+E+F+fa)*.25)*.800000011920929;f[U+16>>2]=ca;f[U+16+4>>2]=da;f[U+16+8>>2]=fa;f[U+16+12>>2]=0.0;Ua[d&1](K,U+96|0,U+32|0,U+16|0,U+160|0,1.0);d=c[(c[K>>2]|0)+28>>2]|0;f[U+96>>2]=V;f[U+96+4>>2]=W;f[U+96+8>>2]=X;f[U+96+12>>2]=0.0;f[U+32>>2]=Y;f[U+32+4>>2]=Z;f[U+32+8>>2]=_;f[U+32+12>>2]=0.0;f[U+16>>2]=ca;f[U+16+4>>2]=da;f[U+16+8>>2]=fa;f[U+16+12>>2]=0.0;Ua[d&1](K,U+96|0,U+32|0,U+16|0,U+160|0,1.0);d=c[(c[K>>2]|0)+28>>2]|0;f[U+96>>2]=Y;f[U+96+4>>2]=Z;f[U+96+8>>2]=_;f[U+96+12>>2]=0.0;f[U+32>>2]=$;f[U+32+4>>2]=aa;f[U+32+8>>2]=ba;f[U+32+12>>2]=0.0;f[U+16>>2]=ca;f[U+16+4>>2]=da;f[U+16+8>>2]=fa;f[U+16+12>>2]=0.0;Ua[d&1](K,U+96|0,U+32|0,U+16|0,U+160|0,1.0);d=c[P+772>>2]|0}g=g+1|0}while((g|0)<(d|0))}}else{pJ();d=c[P+1112>>2]|0;if((d|0)>0){I=0;do{if(a[(c[(c[P+1120>>2]|0)+(I<<2)>>2]|0)+377>>0]|0){ba=+(Rq()|0)*4.656612873077393e-10;ca=+(Rq()|0)*4.656612873077393e-10;da=+(Rq()|0)*4.656612873077393e-10;fa=1.0/+s(+(da*da+(ba*ba+ca*ca)));f[U+160>>2]=ba*fa*.75;f[U+160+4>>2]=ca*fa*.75;f[U+160+8>>2]=da*fa*.75;f[U+160+12>>2]=0.0;g=c[(c[(c[P+1120>>2]|0)+(I<<2)>>2]|0)+24>>2]|0;if((g|0)>0){c[6747]=(c[6747]|0)+1;d=kb((g<<4|3)+16|0)|0;if(!d)e=0;else{c[(d+4+15&-16)+-4>>2]=d;e=d+4+15&-16}d=0;do{H=e+(d<<4)|0;c[H>>2]=c[U+96>>2];c[H+4>>2]=c[U+96+4>>2];c[H+8>>2]=c[U+96+8>>2];c[H+12>>2]=c[U+96+12>>2];d=d+1|0}while((d|0)!=(g|0));d=0;do{G=(c[(c[(c[(c[P+1120>>2]|0)+(I<<2)>>2]|0)+32>>2]|0)+(d<<2)>>2]|0)+8|0;H=e+(d<<4)|0;c[H>>2]=c[G>>2];c[H+4>>2]=c[G+4>>2];c[H+8>>2]=c[G+8>>2];c[H+12>>2]=c[G+12>>2];d=d+1|0}while((d|0)!=(g|0));H=e;G=e}else{H=0;G=0}a[U+96+16>>0]=1;c[U+96+12>>2]=0;c[U+96+4>>2]=0;c[U+96+8>>2]=0;a[U+96+36>>0]=1;c[S>>2]=0;c[U+96+24>>2]=0;c[U+96+28>>2]=0;a[U+96+56>>0]=1;c[T>>2]=0;c[U+96+44>>2]=0;c[U+96+48>>2]=0;mb(U+96|0,H,g);n=c[U+96+44>>2]|0;if((n|0)>0){l=c[S>>2]|0;p=0;do{o=c[(c[T>>2]|0)+(p<<2)>>2]|0;e=c[l+(o*12|0)+4>>2]|0;d=l+(o*12|0)+(e*12|0)+((c[l+(o*12|0)+(e*12|0)>>2]|0)*12|0)|0;if((d|0)!=(l+(o*12|0)|0)){m=c[U+96+12>>2]|0;g=c[l+(o*12|0)+(e*12|0)+8>>2]|0;k=c[l+(o*12|0)+8>>2]|0;while(1){e=c[d+8>>2]|0;Ua[c[(c[K>>2]|0)+28>>2]&1](K,m+(g<<4)|0,m+(k<<4)|0,m+(e<<4)|0,U+160|0,1.0);g=d+((c[d+4>>2]|0)*12|0)|0;d=g+((c[g>>2]|0)*12|0)|0;if((d|0)==(l+(o*12|0)|0))break;else{g=k;k=e}}}p=p+1|0}while((p|0)<(n|0))}d=c[T>>2]|0;if(d|0){if(a[U+96+56>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[T>>2]=0}a[U+96+56>>0]=1;c[T>>2]=0;c[U+96+44>>2]=0;c[U+96+48>>2]=0;d=c[S>>2]|0;if(d|0){if(a[U+96+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[S>>2]=0}a[U+96+36>>0]=1;c[S>>2]=0;c[U+96+24>>2]=0;c[U+96+28>>2]=0;d=c[U+96+12>>2]|0;if(d|0){if(a[U+96+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[d+-4>>2]|0)}c[U+96+12>>2]=0}if(!((G|0)==0|(H|0)==0)){c[6748]=(c[6748]|0)+1;uc(c[H+-4>>2]|0)}d=c[P+1112>>2]|0}I=I+1|0}while((I|0)<(d|0))}}if(J&64|0){if((c[P+792>>2]|0)>0){d=0;do{I=c[P+800>>2]|0;G=c[I+(d*96|0)+20>>2]|0;aa=+f[I+(d*96|0)+4>>2];ba=+f[I+(d*96|0)+8>>2];ca=+f[I+(d*96|0)+12>>2];da=aa*+f[G+20>>2]+ba*+f[G+24>>2]+ca*+f[G+28>>2]+ +f[G+56>>2];fa=aa*+f[G+36>>2]+ba*+f[G+40>>2]+ca*+f[G+44>>2]+ +f[G+60>>2];f[U+32>>2]=aa*+f[G+4>>2]+ba*+f[G+8>>2]+ca*+f[G+12>>2]+ +f[G+52>>2];f[U+32+4>>2]=da;f[U+32+8>>2]=fa;f[U+32+12>>2]=0.0;I=I+(d*96|0)|0;G=c[I>>2]|0;c[U+16>>2]=1065353216;c[U+16+4>>2]=0;c[U+16+8>>2]=0;f[U+16+12>>2]=0.0;H=c[(c[K>>2]|0)+8>>2]|0;fa=+f[G+8>>2];da=+f[G+12>>2];ca=+f[G+16>>2];f[U+160>>2]=fa+-.25;f[U+160+4>>2]=da;f[U+160+8>>2]=ca;f[U+160+12>>2]=0.0;f[U+96>>2]=fa+.25;f[U+96+4>>2]=da+0.0;f[U+96+8>>2]=ca+0.0;f[U+96+12>>2]=0.0;Pa[H&127](K,U+160|0,U+96|0,U+16|0);H=c[(c[K>>2]|0)+8>>2]|0;ca=+f[G+8>>2];da=+f[G+12>>2];fa=+f[G+16>>2];f[U+160>>2]=ca;f[U+160+4>>2]=da+-.25;f[U+160+8>>2]=fa;f[U+160+12>>2]=0.0;f[U+96>>2]=ca+0.0;f[U+96+4>>2]=da+.25;f[U+96+8>>2]=fa+0.0;f[U+96+12>>2]=0.0;Pa[H&127](K,U+160|0,U+96|0,U+16|0);H=c[(c[K>>2]|0)+8>>2]|0;fa=+f[G+8>>2];da=+f[G+12>>2];ca=+f[G+16>>2];f[U+160>>2]=fa;f[U+160+4>>2]=da;f[U+160+8>>2]=ca+-.25;f[U+160+12>>2]=0.0;f[U+96>>2]=fa+0.0;f[U+96+4>>2]=da+0.0;f[U+96+8>>2]=ca+.25;f[U+96+12>>2]=0.0;Pa[H&127](K,U+160|0,U+96|0,U+16|0);c[U+16>>2]=0;c[U+16+4>>2]=1065353216;c[U+16+8>>2]=0;f[U+16+12>>2]=0.0;H=c[(c[K>>2]|0)+8>>2]|0;ca=+f[U+32>>2];da=+f[U+32+4>>2];fa=+f[U+32+8>>2];f[U+160>>2]=ca+-.25;f[U+160+4>>2]=da;f[U+160+8>>2]=fa;f[U+160+12>>2]=0.0;f[U+96>>2]=ca+.25;f[U+96+4>>2]=da+0.0;f[U+96+8>>2]=fa+0.0;f[U+96+12>>2]=0.0;Pa[H&127](K,U+160|0,U+96|0,U+16|0);H=c[(c[K>>2]|0)+8>>2]|0;fa=+f[U+32>>2];da=+f[U+32+4>>2];ca=+f[U+32+8>>2];f[U+160>>2]=fa;f[U+160+4>>2]=da+-.25;f[U+160+8>>2]=ca;f[U+160+12>>2]=0.0;f[U+96>>2]=fa+0.0;f[U+96+4>>2]=da+.25;f[U+96+8>>2]=ca+0.0;f[U+96+12>>2]=0.0;Pa[H&127](K,U+160|0,U+96|0,U+16|0);H=c[(c[K>>2]|0)+8>>2]|0;ca=+f[U+32>>2];da=+f[U+32+4>>2];fa=+f[U+32+8>>2];f[U+160>>2]=ca;f[U+160+4>>2]=da;f[U+160+8>>2]=fa+-.25;f[U+160+12>>2]=0.0;f[U+96>>2]=ca+0.0;f[U+96+4>>2]=da+0.0;f[U+96+8>>2]=fa+.25;f[U+96+12>>2]=0.0;Pa[H&127](K,U+160|0,U+96|0,U+16|0);H=c[(c[K>>2]|0)+8>>2]|0;I=(c[I>>2]|0)+8|0;c[U+160>>2]=1065353216;c[U+160+4>>2]=1065353216;c[U+160+8>>2]=1065353216;f[U+160+12>>2]=0.0;Pa[H&127](K,I,U+32|0,U+160|0);d=d+1|0}while((d|0)<(c[P+792>>2]|0))}d=c[P+712>>2]|0;if((d|0)>0){g=0;do{e=c[P+720>>2]|0;if((c[(c[e+(g*104|0)+4>>2]|0)+16>>2]&1|0)!=0?+f[e+(g*104|0)+88>>2]<=0.0:0){c[U+32>>2]=1065353216;c[U+32+4>>2]=0;c[U+32+8>>2]=0;f[U+32+12>>2]=0.0;d=c[(c[K>>2]|0)+8>>2]|0;G=e+(g*104|0)+8|0;ca=+f[G>>2];H=e+(g*104|0)+12|0;da=+f[H>>2];I=e+(g*104|0)+16|0;fa=+f[I>>2];f[U+160>>2]=ca+-.25;f[U+160+4>>2]=da;f[U+160+8>>2]=fa;f[U+160+12>>2]=0.0;f[U+96>>2]=ca+.25;f[U+96+4>>2]=da+0.0;f[U+96+8>>2]=fa+0.0;f[U+96+12>>2]=0.0;Pa[d&127](K,U+160|0,U+96|0,U+32|0);d=c[(c[K>>2]|0)+8>>2]|0;fa=+f[G>>2];da=+f[H>>2];ca=+f[I>>2];f[U+160>>2]=fa;f[U+160+4>>2]=da+-.25;f[U+160+8>>2]=ca;f[U+160+12>>2]=0.0;f[U+96>>2]=fa+0.0;f[U+96+4>>2]=da+.25;f[U+96+8>>2]=ca+0.0;f[U+96+12>>2]=0.0;Pa[d&127](K,U+160|0,U+96|0,U+32|0);d=c[(c[K>>2]|0)+8>>2]|0;ca=+f[G>>2];da=+f[H>>2];fa=+f[I>>2];f[U+160>>2]=ca;f[U+160+4>>2]=da;f[U+160+8>>2]=fa+-.25;f[U+160+12>>2]=0.0;f[U+96>>2]=ca+0.0;f[U+96+4>>2]=da+0.0;f[U+96+8>>2]=fa+.25;f[U+96+12>>2]=0.0;Pa[d&127](K,U+160|0,U+96|0,U+32|0);d=c[P+712>>2]|0}g=g+1|0}while((g|0)<(d|0))}}if(J&128|0?(c[P+692>>2]|0)>0:0){g=0;do{d=c[P+700>>2]|0;e=d+(g*60|0)+8|0;c[U+160>>2]=c[e>>2];c[U+160+4>>2]=c[e+4>>2];c[U+160+8>>2]=c[e+8>>2];c[U+160+12>>2]=c[e+12>>2];e=c[d+(g*60|0)+24>>2]|0;if((e|0)>0){h=+f[U+160+8>>2];i=+f[U+160>>2];j=+f[U+160+4>>2];k=0;do{I=c[d+(g*60|0)+28+(k<<2)>>2]|0;fa=+f[d+(g*60|0)+44+(k<<2)>>2];i=+f[I+8>>2]*fa+i;j=fa*+f[I+12>>2]+j;h=fa*+f[I+16>>2]+h;f[U+160+8>>2]=h;k=k+1|0}while((k|0)!=(e|0));f[U+160>>2]=i;f[U+160+4>>2]=j}Ma[c[(c[K>>2]|0)+40>>2]&127](K,U+160|0,c[d+(g*60|0)+4>>2]|0);g=g+1|0}while((g|0)<(c[P+692>>2]|0))}if(J&512|0){I=c[P+928>>2]|0;c[U+160>>2]=1065353216;c[U+160+4>>2]=0;c[U+160+8>>2]=1065353216;f[U+160+12>>2]=0.0;c[U+96>>2]=1065353216;c[U+96+4>>2]=1065353216;c[U+96+8>>2]=1065353216;f[U+96+12>>2]=0.0;Ne(K,I,0,U+160|0,U+96|0)}if(J&1024|0){I=c[P+988>>2]|0;c[U+160>>2]=0;c[U+160+4>>2]=1065353216;c[U+160+8>>2]=0;f[U+160+12>>2]=0.0;c[U+96>>2]=1065353216;c[U+96+4>>2]=0;c[U+96+8>>2]=0;f[U+96+12>>2]=0.0;Ne(K,I,0,U+160|0,U+96|0)}if(J&2048|0){I=c[P+1048>>2]|0;c[U+160>>2]=0;c[U+160+4>>2]=1065353216;c[U+160+8>>2]=1065353216;f[U+160+12>>2]=0.0;c[U+96>>2]=1065353216;c[U+96+4>>2]=0;c[U+96+8>>2]=0;f[U+96+12>>2]=0.0;Ne(K,I,0,U+160|0,U+96|0)}a:do if(J&4096|0?(c[P+852>>2]|0)>0:0){e=0;while(1){d=c[(c[P+860>>2]|0)+(e<<2)>>2]|0;switch(ra[c[(c[d>>2]|0)+20>>2]&127](d)|0){case 0:{J=wh(d+4|0)|0;fa=+f[d+28>>2];da=+f[d+32>>2];ca=+f[d+36>>2];ba=fa*+f[J+16>>2]+da*+f[J+20>>2]+ca*+f[J+24>>2]+ +f[J+52>>2];aa=fa*+f[J+32>>2]+da*+f[J+36>>2]+ca*+f[J+40>>2]+ +f[J+56>>2];f[U+32>>2]=fa*+f[J>>2]+da*+f[J+4>>2]+ca*+f[J+8>>2]+ +f[J+48>>2];f[U+32+4>>2]=ba;f[U+32+8>>2]=aa;f[U+32+12>>2]=0.0;J=wh(d+16|0)|0;aa=+f[d+44>>2];ba=+f[d+48>>2];ca=+f[d+52>>2];da=aa*+f[J+16>>2]+ba*+f[J+20>>2]+ca*+f[J+24>>2]+ +f[J+52>>2];fa=aa*+f[J+32>>2]+ba*+f[J+36>>2]+ca*+f[J+40>>2]+ +f[J+56>>2];f[U+16>>2]=aa*+f[J>>2]+ba*+f[J+4>>2]+ca*+f[J+8>>2]+ +f[J+48>>2];f[U+16+4>>2]=da;f[U+16+8>>2]=fa;f[U+16+12>>2]=0.0;J=c[(c[K>>2]|0)+8>>2]|0;I=(wh(d+4|0)|0)+48|0;c[U+160>>2]=1065353216;c[U+160+4>>2]=1065353216;c[U+160+8>>2]=0;f[U+160+12>>2]=0.0;Pa[J&127](K,I,U+32|0,U+160|0);I=c[(c[K>>2]|0)+8>>2]|0;J=(wh(d+16|0)|0)+48|0;c[U+160>>2]=0;c[U+160+4>>2]=1065353216;c[U+160+8>>2]=1065353216;f[U+160+12>>2]=0.0;Pa[I&127](K,J,U+16|0,U+160|0);c[U>>2]=1065353216;c[U+4>>2]=1065353216;c[U+8>>2]=0;f[U+12>>2]=0.0;J=c[(c[K>>2]|0)+8>>2]|0;fa=+f[U+32>>2];da=+f[U+32+4>>2];ca=+f[U+32+8>>2];f[U+160>>2]=fa+-.25;f[U+160+4>>2]=da;f[U+160+8>>2]=ca;f[U+160+12>>2]=0.0;f[U+96>>2]=fa+.25;f[U+96+4>>2]=da+0.0;f[U+96+8>>2]=ca+0.0;f[U+96+12>>2]=0.0;Pa[J&127](K,U+160|0,U+96|0,U);J=c[(c[K>>2]|0)+8>>2]|0;ca=+f[U+32>>2];da=+f[U+32+4>>2];fa=+f[U+32+8>>2];f[U+160>>2]=ca;f[U+160+4>>2]=da+-.25;f[U+160+8>>2]=fa;f[U+160+12>>2]=0.0;f[U+96>>2]=ca+0.0;f[U+96+4>>2]=da+.25;f[U+96+8>>2]=fa+0.0;f[U+96+12>>2]=0.0;Pa[J&127](K,U+160|0,U+96|0,U);J=c[(c[K>>2]|0)+8>>2]|0;fa=+f[U+32>>2];da=+f[U+32+4>>2];ca=+f[U+32+8>>2];f[U+160>>2]=fa;f[U+160+4>>2]=da;f[U+160+8>>2]=ca+-.25;f[U+160+12>>2]=0.0;f[U+96>>2]=fa+0.0;f[U+96+4>>2]=da+0.0;f[U+96+8>>2]=ca+.25;f[U+96+12>>2]=0.0;Pa[J&127](K,U+160|0,U+96|0,U);c[U>>2]=0;c[U+4>>2]=1065353216;c[U+8>>2]=1065353216;f[U+12>>2]=0.0;J=c[(c[K>>2]|0)+8>>2]|0;ca=+f[U+16>>2];da=+f[U+16+4>>2];fa=+f[U+16+8>>2];f[U+160>>2]=ca+-.25;f[U+160+4>>2]=da;f[U+160+8>>2]=fa;f[U+160+12>>2]=0.0;f[U+96>>2]=ca+.25;f[U+96+4>>2]=da+0.0;f[U+96+8>>2]=fa+0.0;f[U+96+12>>2]=0.0;Pa[J&127](K,U+160|0,U+96|0,U);J=c[(c[K>>2]|0)+8>>2]|0;fa=+f[U+16>>2];da=+f[U+16+4>>2];ca=+f[U+16+8>>2];f[U+160>>2]=fa;f[U+160+4>>2]=da+-.25;f[U+160+8>>2]=ca;f[U+160+12>>2]=0.0;f[U+96>>2]=fa+0.0;f[U+96+4>>2]=da+.25;f[U+96+8>>2]=ca+0.0;f[U+96+12>>2]=0.0;Pa[J&127](K,U+160|0,U+96|0,U);J=c[(c[K>>2]|0)+8>>2]|0;ca=+f[U+16>>2];da=+f[U+16+4>>2];fa=+f[U+16+8>>2];f[U+160>>2]=ca;f[U+160+4>>2]=da;f[U+160+8>>2]=fa+-.25;f[U+160+12>>2]=0.0;f[U+96>>2]=ca+0.0;f[U+96+4>>2]=da+0.0;f[U+96+8>>2]=fa+.25;f[U+96+12>>2]=0.0;Pa[J&127](K,U+160|0,U+96|0,U);break}case 1:{J=(wh(d+4|0)|0)+48|0;c[U+160>>2]=c[J>>2];c[U+160+4>>2]=c[J+4>>2];c[U+160+8>>2]=c[J+8>>2];c[U+160+12>>2]=c[J+12>>2];J=(wh(d+16|0)|0)+48|0;c[U+96>>2]=c[J>>2];c[U+96+4>>2]=c[J+4>>2];c[U+96+8>>2]=c[J+8>>2];c[U+96+12>>2]=c[J+12>>2];J=wh(d+4|0)|0;_=+f[d+28>>2];Z=+f[d+32>>2];ba=+f[d+36>>2];$=+f[J>>2]*_+ +f[J+4>>2]*Z+ +f[J+8>>2]*ba;aa=_*+f[J+16>>2]+Z*+f[J+20>>2]+ba*+f[J+24>>2];ba=_*+f[J+32>>2]+Z*+f[J+36>>2]+ba*+f[J+40>>2];J=wh(d+16|0)|0;Z=+f[d+44>>2];_=+f[d+48>>2];fa=+f[d+52>>2];ca=+f[J>>2]*Z+ +f[J+4>>2]*_+ +f[J+8>>2]*fa;da=Z*+f[J+16>>2]+_*+f[J+20>>2]+fa*+f[J+24>>2];fa=Z*+f[J+32>>2]+_*+f[J+36>>2]+fa*+f[J+40>>2];J=c[(c[K>>2]|0)+8>>2]|0;_=aa*10.0+ +f[U+160+4>>2];Z=ba*10.0+ +f[U+160+8>>2];f[U+32>>2]=$*10.0+ +f[U+160>>2];f[U+32+4>>2]=_;f[U+32+8>>2]=Z;f[U+32+12>>2]=0.0;c[U+16>>2]=1065353216;c[U+16+4>>2]=1065353216;c[U+16+8>>2]=0;f[U+16+12>>2]=0.0;Pa[J&127](K,U+160|0,U+32|0,U+16|0);J=c[(c[K>>2]|0)+8>>2]|0;Z=da*10.0+ +f[U+160+4>>2];_=fa*10.0+ +f[U+160+8>>2];f[U+32>>2]=ca*10.0+ +f[U+160>>2];f[U+32+4>>2]=Z;f[U+32+8>>2]=_;f[U+32+12>>2]=0.0;c[U+16>>2]=1065353216;c[U+16+4>>2]=1065353216;c[U+16+8>>2]=0;f[U+16+12>>2]=0.0;Pa[J&127](K,U+160|0,U+32|0,U+16|0);J=c[(c[K>>2]|0)+8>>2]|0;aa=aa*10.0+ +f[U+96+4>>2];ba=ba*10.0+ +f[U+96+8>>2];f[U+32>>2]=$*10.0+ +f[U+96>>2];f[U+32+4>>2]=aa;f[U+32+8>>2]=ba;f[U+32+12>>2]=0.0;c[U+16>>2]=0;c[U+16+4>>2]=1065353216;c[U+16+8>>2]=1065353216;f[U+16+12>>2]=0.0;Pa[J&127](K,U+96|0,U+32|0,U+16|0);J=c[(c[K>>2]|0)+8>>2]|0;da=da*10.0+ +f[U+96+4>>2];fa=fa*10.0+ +f[U+96+8>>2];f[U+32>>2]=ca*10.0+ +f[U+96>>2];f[U+32+4>>2]=da;f[U+32+8>>2]=fa;f[U+32+12>>2]=0.0;c[U+16>>2]=0;c[U+16+4>>2]=1065353216;c[U+16+8>>2]=1065353216;f[U+16+12>>2]=0.0;Pa[J&127](K,U+96|0,U+32|0,U+16|0);break}default:{}}e=e+1|0;if((e|0)>=(c[P+852>>2]|0))break a}}while(0)}d=c[b+72>>2]|0;if(d|0?(ra[c[(c[d>>2]|0)+48>>2]&127](d)|0)&2|0:0){if(a[b+348>>0]|0){J=c[b+72>>2]|0;K=c[P+928>>2]|0;c[U+160>>2]=1065353216;c[U+160+4>>2]=0;c[U+160+8>>2]=1065353216;f[U+160+12>>2]=0.0;c[U+96>>2]=1065353216;c[U+96+4>>2]=1065353216;c[U+96+8>>2]=1065353216;f[U+96+12>>2]=0.0;Ne(J,K,0,U+160|0,U+96|0)}if(a[b+349>>0]|0){J=c[b+72>>2]|0;K=c[P+988>>2]|0;c[U+160>>2]=0;c[U+160+4>>2]=1065353216;c[U+160+8>>2]=0;f[U+160+12>>2]=0.0;c[U+96>>2]=1065353216;c[U+96+4>>2]=0;c[U+96+8>>2]=0;f[U+96+12>>2]=0.0;Ne(J,K,0,U+160|0,U+96|0)}if(a[b+350>>0]|0){K=c[b+72>>2]|0;P=c[P+1048>>2]|0;c[U+160>>2]=0;c[U+160+4>>2]=1065353216;c[U+160+8>>2]=1065353216;f[U+160+12>>2]=0.0;c[U+96>>2]=1065353216;c[U+96+4>>2]=0;c[U+96+8>>2]=0;f[U+96+12>>2]=0.0;Ne(K,P,0,U+160|0,U+96|0)}}R=R+1|0}while((R|0)<(c[b+328>>2]|0));ea=U;return}function db(b,d,e,g){b=b|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0.0;ca=ea;ea=ea+80|0;if((e|0)<=0){ea=ca;return}$=0;do{T=c[d+($<<2)>>2]|0;V=c[T+740>>2]|0;W=c[T+744>>2]|0;Y=Kc(b,V,+f[g+12>>2])|0;Z=Kc(b,W,+f[g+12>>2])|0;X=c[b+16>>2]|0;if(!(((((+f[X+(Y*244|0)+128>>2]==0.0?+f[X+(Y*244|0)+132>>2]==0.0:0)?+f[X+(Y*244|0)+136>>2]==0.0:0)?+f[X+(Z*244|0)+128>>2]==0.0:0)?+f[X+(Z*244|0)+132>>2]==0.0:0)?+f[X+(Z*244|0)+136>>2]==0.0:0))ba=9;if((ba|0)==9?(ba=0,U=c[T+748>>2]|0,(U|0)>0):0){i=U;aa=0;h=1;do{R=T+4+(aa*184|0)|0;m=T+4+(aa*184|0)+80|0;if(+f[m>>2]<=+f[T+756>>2]){S=c[b+28>>2]|0;if((S|0)==(c[b+32>>2]|0)?(_=(S|0)==0?1:S<<1,(S|0)<(_|0)):0){if(!_){k=S;l=0}else{c[6747]=(c[6747]|0)+1;i=kb((_*152|3)+16|0)|0;if(!i)i=0;else{c[(i+4+15&-16)+-4>>2]=i;i=i+4+15&-16}k=c[b+28>>2]|0;l=i}if((k|0)>0){i=0;do{vh(l+(i*152|0)|0,(c[b+36>>2]|0)+(i*152|0)|0,152)|0;i=i+1|0}while((i|0)!=(k|0))}i=c[b+36>>2]|0;if(i|0){if(a[b+40>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0)}c[b+36>>2]=0}a[b+40>>0]=1;c[b+36>>2]=l;c[b+32>>2]=_;i=c[b+28>>2]|0}else i=S;c[b+28>>2]=i+1;Q=c[b+36>>2]|0;n=(c[V+236>>2]&2|0)==0?0:V;o=(c[W+236>>2]&2|0)==0?0:W;c[Q+(S*152|0)+144>>2]=Y;c[Q+(S*152|0)+148>>2]=Z;c[Q+(S*152|0)+132>>2]=R;A=+f[T+4+(aa*184|0)+48>>2]-+f[V+52>>2];B=+f[T+4+(aa*184|0)+52>>2]-+f[V+56>>2];z=+f[T+4+(aa*184|0)+56>>2]-+f[V+60>>2];f[ca+64>>2]=A;f[ca+64+4>>2]=B;f[ca+64+8>>2]=z;f[ca+64+12>>2]=0.0;E=+f[T+4+(aa*184|0)+32>>2]-+f[W+52>>2];F=+f[T+4+(aa*184|0)+36>>2]-+f[W+56>>2];D=+f[T+4+(aa*184|0)+40>>2]-+f[W+60>>2];f[ca+48>>2]=E;f[ca+48+4>>2]=F;f[ca+48+8>>2]=D;f[ca+48+12>>2]=0.0;if(!(c[X+(Y*244|0)+240>>2]|0)){j=0.0;q=0.0;u=0.0}else{M=+f[X+(Y*244|0)+192>>2]+ +f[X+(Y*244|0)+224>>2];u=+f[X+(Y*244|0)+196>>2]+ +f[X+(Y*244|0)+228>>2];q=+f[X+(Y*244|0)+200>>2]+ +f[X+(Y*244|0)+232>>2];j=+f[X+(Y*244|0)+176>>2]+ +f[X+(Y*244|0)+208>>2]+(z*u-B*q);q=+f[X+(Y*244|0)+180>>2]+ +f[X+(Y*244|0)+212>>2]+(A*q-z*M);u=+f[X+(Y*244|0)+184>>2]+ +f[X+(Y*244|0)+216>>2]+(B*M-A*u)}if(!(c[X+(Z*244|0)+240>>2]|0)){p=0.0;t=0.0;v=0.0}else{M=+f[X+(Z*244|0)+192>>2]+ +f[X+(Z*244|0)+224>>2];v=+f[X+(Z*244|0)+196>>2]+ +f[X+(Z*244|0)+228>>2];t=+f[X+(Z*244|0)+200>>2]+ +f[X+(Z*244|0)+232>>2];p=+f[X+(Z*244|0)+176>>2]+ +f[X+(Z*244|0)+208>>2]+(D*v-F*t);t=+f[X+(Z*244|0)+180>>2]+ +f[X+(Z*244|0)+212>>2]+(E*t-D*M);v=+f[X+(Z*244|0)+184>>2]+ +f[X+(Z*244|0)+216>>2]+(F*M-E*v)}M=j-p;L=q-t;K=u-v;P=T+4+(aa*184|0)+64|0;H=+f[P>>2];O=T+4+(aa*184|0)+68|0;I=+f[O>>2];N=T+4+(aa*184|0)+72|0;J=+f[N>>2];l=c[b+16>>2]|0;i=c[l+(Y*244|0)+240>>2]|0;k=c[l+(Z*244|0)+240>>2]|0;if(i|0){j=((B*J-z*I)*+f[i+264>>2]+(z*H-J*A)*+f[i+268>>2]+(I*A-B*H)*+f[i+272>>2])*+f[i+544>>2];p=((B*J-z*I)*+f[i+280>>2]+(z*H-J*A)*+f[i+284>>2]+(I*A-B*H)*+f[i+288>>2])*+f[i+548>>2];q=((B*J-z*I)*+f[i+296>>2]+(z*H-J*A)*+f[i+300>>2]+(I*A-B*H)*+f[i+304>>2])*+f[i+552>>2]}else{j=0.0;p=0.0;q=0.0}f[Q+(S*152|0)+64>>2]=j;f[Q+(S*152|0)+68>>2]=p;f[Q+(S*152|0)+72>>2]=q;f[Q+(S*152|0)+76>>2]=0.0;w=+f[N>>2];x=+f[O>>2];y=+f[P>>2];if(k|0){t=(+f[k+264>>2]*-(F*w-D*x)+ +f[k+268>>2]*-(D*y-w*E)+ +f[k+272>>2]*-(x*E-F*y))*+f[k+544>>2];u=(+f[k+280>>2]*-(F*w-D*x)+ +f[k+284>>2]*-(D*y-w*E)+ +f[k+288>>2]*-(x*E-F*y))*+f[k+548>>2];v=(+f[k+296>>2]*-(F*w-D*x)+ +f[k+300>>2]*-(D*y-w*E)+ +f[k+304>>2]*-(x*E-F*y))*+f[k+552>>2]}else{t=0.0;u=0.0;v=0.0}f[Q+(S*152|0)+80>>2]=t;f[Q+(S*152|0)+84>>2]=u;f[Q+(S*152|0)+88>>2]=v;f[Q+(S*152|0)+92>>2]=0.0;if(i|0)p=+f[i+344>>2]+((p*z-q*B)*+f[P>>2]+(q*A-z*j)*+f[O>>2]+(B*j-p*A)*+f[N>>2]);else p=0.0;if(k|0){G=-t;j=-u;v=-v;j=+f[k+344>>2]+((D*j-F*v)*+f[P>>2]+(E*v-D*G)*+f[O>>2]+(F*G-E*j)*+f[N>>2])}else j=0.0;f[Q+(S*152|0)+108>>2]=1.0/(p+j);if(i|0){c[Q+(S*152|0)+16>>2]=c[P>>2];c[Q+(S*152|0)+16+4>>2]=c[P+4>>2];c[Q+(S*152|0)+16+8>>2]=c[P+8>>2];c[Q+(S*152|0)+16+12>>2]=c[P+12>>2];f[Q+(S*152|0)>>2]=B*J-z*I;f[Q+(S*152|0)+4>>2]=z*H-J*A;f[Q+(S*152|0)+8>>2]=I*A-B*H;f[Q+(S*152|0)+12>>2]=0.0}else{c[Q+(S*152|0)>>2]=0;c[Q+(S*152|0)+4>>2]=0;c[Q+(S*152|0)+8>>2]=0;c[Q+(S*152|0)+12>>2]=0;c[Q+(S*152|0)+16>>2]=0;c[Q+(S*152|0)+20>>2]=0;c[Q+(S*152|0)+24>>2]=0;c[Q+(S*152|0)+28>>2]=0}if(k|0){v=-+f[O>>2];G=-+f[N>>2];f[Q+(S*152|0)+48>>2]=-+f[P>>2];f[Q+(S*152|0)+52>>2]=v;f[Q+(S*152|0)+56>>2]=G;f[Q+(S*152|0)+60>>2]=0.0;f[Q+(S*152|0)+32>>2]=-(F*w-D*x);f[Q+(S*152|0)+36>>2]=-(D*y-w*E);f[Q+(S*152|0)+40>>2]=-(x*E-F*y);f[Q+(S*152|0)+44>>2]=0.0}else{c[Q+(S*152|0)+32>>2]=0;c[Q+(S*152|0)+32+4>>2]=0;c[Q+(S*152|0)+32+8>>2]=0;c[Q+(S*152|0)+32+12>>2]=0;c[Q+(S*152|0)+32+16>>2]=0;c[Q+(S*152|0)+32+20>>2]=0;c[Q+(S*152|0)+32+24>>2]=0;c[Q+(S*152|0)+32+28>>2]=0}G=+f[m>>2]+ +f[g+56>>2];if(i|0){t=+f[i+332>>2];u=+f[i+336>>2];y=+f[i+328>>2];v=t*z-u*B+ +f[i+312>>2];u=+f[i+316>>2]+(u*A-z*y);t=B*y-t*A+ +f[i+320>>2]}else{v=0.0;u=0.0;t=0.0}if(k|0){j=+f[k+332>>2];p=+f[k+336>>2];B=+f[k+328>>2];q=j*D-p*F+ +f[k+312>>2];p=+f[k+316>>2]+(p*E-D*B);j=F*B-j*E+ +f[k+320>>2]}else{q=0.0;p=0.0;j=0.0}D=(v-q)*+f[P>>2]+(u-p)*+f[O>>2]+(t-j)*+f[N>>2];c[Q+(S*152|0)+104>>2]=c[T+4+(aa*184|0)+84>>2];D=D*+f[T+4+(aa*184|0)+92>>2];D=D>=-0.0?0.0:-D;do if(!(c[g+64>>2]&4))f[Q+(S*152|0)+100>>2]=0.0;else{j=+f[T+4+(aa*184|0)+120>>2]*+f[g+60>>2];f[Q+(S*152|0)+100>>2]=j;do if(i|0){if(!(c[l+(Y*244|0)+240>>2]|0))break;F=j*(+f[Q+(S*152|0)+20>>2]*+f[l+(Y*244|0)+132>>2]*+f[i+352>>2])*+f[l+(Y*244|0)+116>>2];E=j*(+f[Q+(S*152|0)+24>>2]*+f[l+(Y*244|0)+136>>2]*+f[i+356>>2])*+f[l+(Y*244|0)+120>>2];f[l+(Y*244|0)+64>>2]=+f[l+(Y*244|0)+112>>2]*(j*(+f[Q+(S*152|0)+16>>2]*+f[l+(Y*244|0)+128>>2]*+f[i+348>>2]))+ +f[l+(Y*244|0)+64>>2];f[l+(Y*244|0)+68>>2]=F+ +f[l+(Y*244|0)+68>>2];f[l+(Y*244|0)+72>>2]=E+ +f[l+(Y*244|0)+72>>2];E=j*+f[l+(Y*244|0)+100>>2]*+f[Q+(S*152|0)+68>>2];F=j*+f[l+(Y*244|0)+104>>2]*+f[Q+(S*152|0)+72>>2];f[l+(Y*244|0)+80>>2]=j*+f[l+(Y*244|0)+96>>2]*+f[Q+(S*152|0)+64>>2]+ +f[l+(Y*244|0)+80>>2];f[l+(Y*244|0)+84>>2]=E+ +f[l+(Y*244|0)+84>>2];f[l+(Y*244|0)+88>>2]=F+ +f[l+(Y*244|0)+88>>2]}while(0);if(!k)break;j=+f[Q+(S*152|0)+100>>2];if(!(c[l+(Z*244|0)+240>>2]|0))break;F=+f[Q+(S*152|0)+88>>2];E=+f[Q+(S*152|0)+84>>2];B=+f[Q+(S*152|0)+80>>2];z=j*(+f[Q+(S*152|0)+52>>2]*+f[l+(Z*244|0)+132>>2]*+f[k+352>>2])*+f[l+(Z*244|0)+116>>2];A=j*(+f[Q+(S*152|0)+56>>2]*+f[l+(Z*244|0)+136>>2]*+f[k+356>>2])*+f[l+(Z*244|0)+120>>2];f[l+(Z*244|0)+64>>2]=+f[l+(Z*244|0)+112>>2]*(j*(+f[Q+(S*152|0)+48>>2]*+f[l+(Z*244|0)+128>>2]*+f[k+348>>2]))+ +f[l+(Z*244|0)+64>>2];f[l+(Z*244|0)+68>>2]=z+ +f[l+(Z*244|0)+68>>2];f[l+(Z*244|0)+72>>2]=A+ +f[l+(Z*244|0)+72>>2];E=E*(+f[l+(Z*244|0)+100>>2]*-j);F=F*(+f[l+(Z*244|0)+104>>2]*-j);f[l+(Z*244|0)+80>>2]=+f[l+(Z*244|0)+80>>2]-B*(+f[l+(Z*244|0)+96>>2]*-j);f[l+(Z*244|0)+84>>2]=+f[l+(Z*244|0)+84>>2]-E;f[l+(Z*244|0)+88>>2]=+f[l+(Z*244|0)+88>>2]-F}while(0);f[Q+(S*152|0)+96>>2]=0.0;if(!(c[l+(Y*244|0)+240>>2]|0)){j=0.0;p=0.0;q=0.0;t=0.0;u=0.0;v=0.0}else{j=+f[l+(Y*244|0)+208>>2];p=+f[l+(Y*244|0)+212>>2];q=+f[l+(Y*244|0)+216>>2];t=+f[l+(Y*244|0)+224>>2];u=+f[l+(Y*244|0)+228>>2];v=+f[l+(Y*244|0)+232>>2]}if(!(c[l+(Z*244|0)+240>>2]|0)){w=0.0;x=0.0;y=0.0;z=0.0;A=0.0;B=0.0}else{w=+f[l+(Z*244|0)+208>>2];x=+f[l+(Z*244|0)+212>>2];y=+f[l+(Z*244|0)+216>>2];z=+f[l+(Z*244|0)+224>>2];A=+f[l+(Z*244|0)+228>>2];B=+f[l+(Z*244|0)+232>>2]}j=D-((j+ +f[l+(Y*244|0)+176>>2])*+f[Q+(S*152|0)+16>>2]+(p+ +f[l+(Y*244|0)+180>>2])*+f[Q+(S*152|0)+20>>2]+(q+ +f[l+(Y*244|0)+184>>2])*+f[Q+(S*152|0)+24>>2]+((t+ +f[l+(Y*244|0)+192>>2])*+f[Q+(S*152|0)>>2]+(u+ +f[l+(Y*244|0)+196>>2])*+f[Q+(S*152|0)+4>>2]+(v+ +f[l+(Y*244|0)+200>>2])*+f[Q+(S*152|0)+8>>2])+((w+ +f[l+(Z*244|0)+176>>2])*+f[Q+(S*152|0)+48>>2]+(x+ +f[l+(Z*244|0)+180>>2])*+f[Q+(S*152|0)+52>>2]+(y+ +f[l+(Z*244|0)+184>>2])*+f[Q+(S*152|0)+56>>2]+((z+ +f[l+(Z*244|0)+192>>2])*+f[Q+(S*152|0)+32>>2]+(A+ +f[l+(Z*244|0)+196>>2])*+f[Q+(S*152|0)+36>>2]+(B+ +f[l+(Z*244|0)+200>>2])*+f[Q+(S*152|0)+40>>2])));i=(c[g+44>>2]|0)==0;if(G>0.0){p=0.0;j=j-G/+f[g+12>>2]}else p=-(G*(i|G>+f[g+48>>2]?+f[g+32>>2]:+f[g+36>>2]))/+f[g+12>>2];E=+f[Q+(S*152|0)+108>>2];F=p*E;E=j*E;C=i|G>+f[g+48>>2];f[Q+(S*152|0)+112>>2]=C?F+E:E;f[Q+(S*152|0)+128>>2]=C?0.0:F;f[Q+(S*152|0)+116>>2]=0.0;f[Q+(S*152|0)+120>>2]=0.0;f[Q+(S*152|0)+124>>2]=1.0e10;c[Q+(S*152|0)+140>>2]=c[b+68>>2];if(!n){p=0.0;u=0.0;v=0.0}else{p=+f[n+328>>2];u=+f[n+332>>2];v=+f[n+336>>2]}if(!o){j=0.0;q=0.0;t=0.0}else{j=+f[o+328>>2];q=+f[o+332>>2];t=+f[o+336>>2]}w=j-p;p=q-u;t=t-v;f[ca+32>>2]=w;f[ca+32+4>>2]=p;f[ca+32+8>>2]=t;f[ca+32+12>>2]=0.0;do if((h|0)>0?+f[T+4+(aa*184|0)+88>>2]>0.0:0){h=h+-1|0;j=+s(+(w*w+p*p+t*t));if(j>+f[g+80>>2]){f[ca+32>>2]=w*(1.0/j);f[ca+32+4>>2]=p*(1.0/j);f[ca+32+8>>2]=t*(1.0/j);if(!(c[V+180>>2]&2)){q=w*(1.0/j);p=p*(1.0/j);j=t*(1.0/j)}else{v=+f[V+4>>2];y=+f[V+20>>2];B=+f[V+36>>2];x=+f[V+8>>2];z=+f[V+24>>2];E=+f[V+40>>2];q=+f[V+12>>2];A=+f[V+28>>2];G=+f[V+44>>2];D=(w*(1.0/j)*v+p*(1.0/j)*y+t*(1.0/j)*B)*+f[V+164>>2];F=(w*(1.0/j)*x+p*(1.0/j)*z+t*(1.0/j)*E)*+f[V+168>>2];j=(w*(1.0/j)*q+p*(1.0/j)*A+t*(1.0/j)*G)*+f[V+172>>2];f[ca+32>>2]=v*D+x*F+q*j;f[ca+32+4>>2]=y*D+z*F+A*j;f[ca+32+8>>2]=B*D+E*F+G*j;f[ca+32+12>>2]=0.0;q=v*D+x*F+q*j;p=y*D+z*F+A*j;j=B*D+E*F+G*j}if(c[W+180>>2]&2){v=+f[W+4>>2];y=+f[W+20>>2];B=+f[W+36>>2];w=+f[W+8>>2];z=+f[W+24>>2];E=+f[W+40>>2];x=+f[W+12>>2];A=+f[W+28>>2];G=+f[W+44>>2];D=(v*q+y*p+B*j)*+f[W+164>>2];F=(q*w+p*z+j*E)*+f[W+168>>2];j=(q*x+p*A+j*G)*+f[W+172>>2];f[ca+32>>2]=v*D+w*F+x*j;f[ca+32+4>>2]=y*D+z*F+A*j;f[ca+32+8>>2]=B*D+E*F+G*j;f[ca+32+12>>2]=0.0;q=v*D+w*F+x*j;p=y*D+z*F+A*j;j=B*D+E*F+G*j}if(!(+s(+(q*q+p*p+j*j))>.001))break;Bc(b,ca+32|0,Y,Z,S,R);break}Bc(b,P,Y,Z,S,R);j=+f[N>>2];if(+r(+j)>.7071067690849304){p=+f[O>>2];G=1.0/+s(+(j*j+p*p));f[ca+16>>2]=0.0;f[ca+16+4>>2]=-(j*G);f[ca+16+8>>2]=p*G;f[ca>>2]=(j*j+p*p)*G;F=+f[P>>2];f[ca+4>>2]=-(F*(p*G));q=0.0;u=-(j*G);v=p*G;t=(j*j+p*p)*G;p=-(F*(p*G));j=F*-(j*G)}else{E=+f[P>>2];F=+f[O>>2];G=1.0/+s(+(E*E+F*F));f[ca+16>>2]=-(F*G);f[ca+16+4>>2]=E*G;f[ca+16+8>>2]=0.0;f[ca>>2]=-(j*(E*G));f[ca+4>>2]=j*-(F*G);q=-(F*G);u=E*G;v=0.0;t=-(j*(E*G));p=j*-(F*G);j=(E*E+F*F)*G}f[ca+8>>2]=j;k=(c[V+180>>2]&2|0)==0;if(!k){da=+f[V+4>>2];y=+f[V+20>>2];B=+f[V+36>>2];w=+f[V+8>>2];z=+f[V+24>>2];E=+f[V+40>>2];x=+f[V+12>>2];A=+f[V+28>>2];G=+f[V+44>>2];D=(da*q+y*u+B*v)*+f[V+164>>2];F=(q*w+u*z+v*E)*+f[V+168>>2];v=(q*x+u*A+v*G)*+f[V+172>>2];f[ca+16>>2]=da*D+w*F+x*v;f[ca+16+4>>2]=y*D+z*F+A*v;f[ca+16+8>>2]=B*D+E*F+G*v;f[ca+16+12>>2]=0.0;q=da*D+w*F+x*v;u=y*D+z*F+A*v;v=B*D+E*F+G*v}i=(c[W+180>>2]&2|0)==0;if(!i){w=+f[W+4>>2];z=+f[W+20>>2];D=+f[W+36>>2];x=+f[W+8>>2];A=+f[W+24>>2];F=+f[W+40>>2];y=+f[W+12>>2];B=+f[W+28>>2];da=+f[W+44>>2];E=(w*q+z*u+D*v)*+f[W+164>>2];G=(q*x+u*A+v*F)*+f[W+168>>2];v=(q*y+u*B+v*da)*+f[W+172>>2];f[ca+16>>2]=w*E+x*G+y*v;f[ca+16+4>>2]=z*E+A*G+B*v;f[ca+16+8>>2]=D*E+F*G+da*v;f[ca+16+12>>2]=0.0;q=w*E+x*G+y*v;u=z*E+A*G+B*v;v=D*E+F*G+da*v}if(!k){w=+f[V+4>>2];z=+f[V+20>>2];D=+f[V+36>>2];x=+f[V+8>>2];A=+f[V+24>>2];F=+f[V+40>>2];y=+f[V+12>>2];B=+f[V+28>>2];da=+f[V+44>>2];E=(w*t+z*p+j*D)*+f[V+164>>2];G=(t*x+p*A+j*F)*+f[V+168>>2];j=(t*y+p*B+j*da)*+f[V+172>>2];f[ca>>2]=w*E+x*G+y*j;f[ca+4>>2]=z*E+A*G+B*j;f[ca+8>>2]=D*E+F*G+da*j;f[ca+12>>2]=0.0;t=w*E+x*G+y*j;p=z*E+A*G+B*j;j=D*E+F*G+da*j}if(!i){w=+f[W+4>>2];z=+f[W+20>>2];D=+f[W+36>>2];x=+f[W+8>>2];A=+f[W+24>>2];F=+f[W+40>>2];y=+f[W+12>>2];B=+f[W+28>>2];da=+f[W+44>>2];E=(w*t+z*p+D*j)*+f[W+164>>2];G=(t*x+p*A+j*F)*+f[W+168>>2];j=(t*y+p*B+j*da)*+f[W+172>>2];f[ca>>2]=w*E+x*G+y*j;f[ca+4>>2]=z*E+A*G+B*j;f[ca+8>>2]=D*E+F*G+da*j;f[ca+12>>2]=0.0;t=w*E+x*G+y*j;p=z*E+A*G+B*j;j=D*E+F*G+da*j}if(+s(+(q*q+u*u+v*v))>.001)Bc(b,ca+16|0,Y,Z,S,R);if(+s(+(t*t+p*p+j*j))>.001)Bc(b,ca,Y,Z,S,R)}while(0);do if(!(c[g+64>>2]&32))ba=93;else{if(!(a[T+4+(aa*184|0)+116>>0]|0)){ba=93;break}ec(b,T+4+(aa*184|0)+152|0,Y,Z,S,R,ca+64|0,ca+48|0,1.0,+f[T+4+(aa*184|0)+132>>2],+f[T+4+(aa*184|0)+140>>2]);if(!(c[g+64>>2]&16))break;ec(b,T+4+(aa*184|0)+168|0,Y,Z,S,R,ca+64|0,ca+48|0,1.0,+f[T+4+(aa*184|0)+136>>2],+f[T+4+(aa*184|0)+144>>2])}while(0);do if((ba|0)==93){ba=0;w=+f[P>>2];x=+f[O>>2];y=+f[N>>2];p=M-(M*H+L*I+K*J)*w;u=L-(M*H+L*I+K*J)*x;t=K-(M*H+L*I+K*J)*y;i=T+4+(aa*184|0)+152|0;f[T+4+(aa*184|0)+152>>2]=p;n=T+4+(aa*184|0)+156|0;f[n>>2]=u;o=T+4+(aa*184|0)+160|0;f[o>>2]=t;C=T+4+(aa*184|0)+164|0;f[C>>2]=0.0;if((c[g+64>>2]&64|0)==0?p*p+u*u+t*t>1.1920928955078125e-07:0){j=1.0/+s(+(p*p+u*u+t*t));f[i>>2]=p*j;f[n>>2]=u*j;f[o>>2]=t*j;if(!(c[V+180>>2]&1)){q=p*j;p=u*j;j=t*j}else{E=+f[V+4>>2];G=+f[V+20>>2];J=+f[V+36>>2];F=+f[V+8>>2];H=+f[V+24>>2];L=+f[V+40>>2];q=+f[V+12>>2];I=+f[V+28>>2];da=+f[V+44>>2];K=(p*j*E+u*j*G+t*j*J)*+f[V+164>>2];M=(p*j*F+u*j*H+t*j*L)*+f[V+168>>2];j=(p*j*q+u*j*I+t*j*da)*+f[V+172>>2];f[i>>2]=E*K+F*M+q*j;f[n>>2]=G*K+H*M+I*j;f[o>>2]=J*K+L*M+da*j;f[C>>2]=0.0;q=E*K+F*M+q*j;p=G*K+H*M+I*j;j=J*K+L*M+da*j}if(c[W+180>>2]&1|0){B=+f[W+4>>2];F=+f[W+20>>2];I=+f[W+36>>2];D=+f[W+8>>2];G=+f[W+24>>2];K=+f[W+40>>2];E=+f[W+12>>2];H=+f[W+28>>2];M=+f[W+44>>2];J=(B*q+F*p+I*j)*+f[W+164>>2];L=(q*D+p*G+j*K)*+f[W+168>>2];da=(q*E+p*H+j*M)*+f[W+172>>2];f[i>>2]=B*J+D*L+E*da;f[n>>2]=F*J+G*L+H*da;f[o>>2]=I*J+K*L+M*da;f[C>>2]=0.0}ec(b,i,Y,Z,S,R,ca+64|0,ca+48|0,1.0,0.0,0.0);if(!(c[g+64>>2]&16))break;M=+f[n>>2];q=+f[N>>2];J=+f[o>>2];K=+f[O>>2];da=+f[P>>2];L=+f[i>>2];i=T+4+(aa*184|0)+168|0;f[T+4+(aa*184|0)+168>>2]=M*q-J*K;k=T+4+(aa*184|0)+172|0;l=T+4+(aa*184|0)+176|0;m=T+4+(aa*184|0)+180|0;f[m>>2]=0.0;j=1.0/+s(+((M*q-J*K)*(M*q-J*K)+(J*da-q*L)*(J*da-q*L)+(K*L-M*da)*(K*L-M*da)));p=(M*q-J*K)*j;f[i>>2]=p;q=(J*da-q*L)*j;f[k>>2]=q;j=(K*L-M*da)*j;f[l>>2]=j;if(c[V+180>>2]&1){D=+f[V+4>>2];G=+f[V+20>>2];J=+f[V+36>>2];E=+f[V+8>>2];H=+f[V+24>>2];L=+f[V+40>>2];F=+f[V+12>>2];I=+f[V+28>>2];da=+f[V+44>>2];K=(p*D+q*G+j*J)*+f[V+164>>2];M=(p*E+q*H+j*L)*+f[V+168>>2];j=(p*F+q*I+j*da)*+f[V+172>>2];f[i>>2]=D*K+E*M+F*j;f[k>>2]=G*K+H*M+I*j;f[l>>2]=J*K+L*M+da*j;f[m>>2]=0.0;p=D*K+E*M+F*j;q=G*K+H*M+I*j;j=J*K+L*M+da*j}if(c[W+180>>2]&1|0){B=+f[W+4>>2];F=+f[W+20>>2];I=+f[W+36>>2];D=+f[W+8>>2];G=+f[W+24>>2];K=+f[W+40>>2];E=+f[W+12>>2];H=+f[W+28>>2];M=+f[W+44>>2];J=(B*p+F*q+I*j)*+f[W+164>>2];L=(p*D+q*G+j*K)*+f[W+168>>2];da=(p*E+q*H+j*M)*+f[W+172>>2];f[i>>2]=B*J+D*L+E*da;f[k>>2]=F*J+G*L+H*da;f[l>>2]=I*J+K*L+M*da;f[m>>2]=0.0}ec(b,i,Y,Z,S,R,ca+64|0,ca+48|0,1.0,0.0,0.0);break}m=T+4+(aa*184|0)+168|0;if(+r(+y)>.7071067690849304){t=1.0/+s(+(x*x+y*y));f[i>>2]=0.0;f[n>>2]=-(y*t);f[o>>2]=x*t;q=0.0;p=-(y*t);j=x*t;u=(x*x+y*y)*t;v=-(w*(x*t));t=w*-(y*t)}else{t=1.0/+s(+(w*w+x*x));f[i>>2]=-(x*t);f[n>>2]=w*t;f[o>>2]=0.0;q=-(x*t);p=w*t;j=0.0;u=-(y*(w*t));v=y*-(x*t);t=(w*w+x*x)*t}f[m>>2]=u;l=T+4+(aa*184|0)+172|0;f[l>>2]=v;k=T+4+(aa*184|0)+176|0;f[k>>2]=t;if(c[V+180>>2]&1){D=+f[V+4>>2];G=+f[V+20>>2];J=+f[V+36>>2];E=+f[V+8>>2];H=+f[V+24>>2];L=+f[V+40>>2];F=+f[V+12>>2];I=+f[V+28>>2];da=+f[V+44>>2];K=(D*q+G*p+J*j)*+f[V+164>>2];M=(q*E+p*H+j*L)*+f[V+168>>2];j=(q*F+p*I+j*da)*+f[V+172>>2];f[i>>2]=D*K+E*M+F*j;f[n>>2]=G*K+H*M+I*j;f[o>>2]=J*K+L*M+da*j;f[C>>2]=0.0;q=D*K+E*M+F*j;p=G*K+H*M+I*j;j=J*K+L*M+da*j}if(c[W+180>>2]&1|0){B=+f[W+4>>2];F=+f[W+20>>2];I=+f[W+36>>2];D=+f[W+8>>2];G=+f[W+24>>2];K=+f[W+40>>2];E=+f[W+12>>2];H=+f[W+28>>2];M=+f[W+44>>2];J=(B*q+F*p+I*j)*+f[W+164>>2];L=(q*D+p*G+j*K)*+f[W+168>>2];da=(q*E+p*H+j*M)*+f[W+172>>2];f[i>>2]=B*J+D*L+E*da;f[n>>2]=F*J+G*L+H*da;f[o>>2]=I*J+K*L+M*da;f[C>>2]=0.0}ec(b,i,Y,Z,S,R,ca+64|0,ca+48|0,1.0,0.0,0.0);i=c[g+64>>2]|0;if(i&16){if(c[V+180>>2]&1|0){B=+f[V+4>>2];z=+f[m>>2];F=+f[V+20>>2];A=+f[l>>2];I=+f[V+36>>2];da=+f[k>>2];D=+f[V+8>>2];G=+f[V+24>>2];K=+f[V+40>>2];E=+f[V+12>>2];H=+f[V+28>>2];M=+f[V+44>>2];J=(B*z+F*A+I*da)*+f[V+164>>2];L=(z*D+A*G+da*K)*+f[V+168>>2];da=(z*E+A*H+da*M)*+f[V+172>>2];f[m>>2]=B*J+D*L+E*da;f[l>>2]=F*J+G*L+H*da;f[k>>2]=I*J+K*L+M*da;f[T+4+(aa*184|0)+180>>2]=0.0}if(c[W+180>>2]&1|0){B=+f[W+4>>2];z=+f[m>>2];F=+f[W+20>>2];A=+f[l>>2];I=+f[W+36>>2];da=+f[k>>2];D=+f[W+8>>2];G=+f[W+24>>2];K=+f[W+40>>2];E=+f[W+12>>2];H=+f[W+28>>2];M=+f[W+44>>2];J=(B*z+F*A+I*da)*+f[W+164>>2];L=(z*D+A*G+da*K)*+f[W+168>>2];da=(z*E+A*H+da*M)*+f[W+172>>2];f[m>>2]=B*J+D*L+E*da;f[l>>2]=F*J+G*L+H*da;f[k>>2]=I*J+K*L+M*da;f[T+4+(aa*184|0)+180>>2]=0.0}ec(b,m,Y,Z,S,R,ca+64|0,ca+48|0,1.0,0.0,0.0);i=c[g+64>>2]|0}if((i&80|0)!=80)break;a[T+4+(aa*184|0)+116>>0]=1}while(0);m=c[b+16>>2]|0;n=c[m+(Y*244|0)+240>>2]|0;o=c[m+(Z*244|0)+240>>2]|0;k=c[Q+(S*152|0)+140>>2]|0;l=c[b+76>>2]|0;i=c[g+64>>2]|0;do if(!(i&4))f[l+(k*152|0)+100>>2]=0.0;else{j=+f[T+4+(aa*184|0)+124>>2]*+f[g+60>>2];f[l+(k*152|0)+100>>2]=j;if(n|0){L=+f[n+344>>2];da=j*(L*+f[l+(k*152|0)+20>>2]*+f[n+352>>2])*+f[m+(Y*244|0)+116>>2];M=j*(L*+f[l+(k*152|0)+24>>2]*+f[n+356>>2])*+f[m+(Y*244|0)+120>>2];f[m+(Y*244|0)+64>>2]=j*(L*+f[l+(k*152|0)+16>>2]*+f[n+348>>2])*+f[m+(Y*244|0)+112>>2]+ +f[m+(Y*244|0)+64>>2];f[m+(Y*244|0)+68>>2]=da+ +f[m+(Y*244|0)+68>>2];f[m+(Y*244|0)+72>>2]=M+ +f[m+(Y*244|0)+72>>2];M=j*+f[m+(Y*244|0)+100>>2]*+f[l+(k*152|0)+68>>2];da=j*+f[m+(Y*244|0)+104>>2]*+f[l+(k*152|0)+72>>2];f[m+(Y*244|0)+80>>2]=j*+f[m+(Y*244|0)+96>>2]*+f[l+(k*152|0)+64>>2]+ +f[m+(Y*244|0)+80>>2];f[m+(Y*244|0)+84>>2]=M+ +f[m+(Y*244|0)+84>>2];f[m+(Y*244|0)+88>>2]=da+ +f[m+(Y*244|0)+88>>2]}if(!o)break;H=+f[o+344>>2];K=+f[l+(k*152|0)+80>>2];M=+f[l+(k*152|0)+84>>2];da=+f[l+(k*152|0)+88>>2];L=+f[l+(k*152|0)+100>>2];I=+f[l+(k*152|0)+52>>2]*H*+f[o+352>>2]*L*+f[m+(Z*244|0)+116>>2];J=+f[l+(k*152|0)+56>>2]*H*+f[o+356>>2]*L*+f[m+(Z*244|0)+120>>2];f[m+(Z*244|0)+64>>2]=+f[l+(k*152|0)+48>>2]*H*+f[o+348>>2]*L*+f[m+(Z*244|0)+112>>2]+ +f[m+(Z*244|0)+64>>2];f[m+(Z*244|0)+68>>2]=I+ +f[m+(Z*244|0)+68>>2];f[m+(Z*244|0)+72>>2]=J+ +f[m+(Z*244|0)+72>>2];M=M*(+f[m+(Z*244|0)+100>>2]*-L);da=da*(+f[m+(Z*244|0)+104>>2]*-L);f[m+(Z*244|0)+80>>2]=+f[m+(Z*244|0)+80>>2]-K*(+f[m+(Z*244|0)+96>>2]*-L);f[m+(Z*244|0)+84>>2]=+f[m+(Z*244|0)+84>>2]-M;f[m+(Z*244|0)+88>>2]=+f[m+(Z*244|0)+88>>2]-da}while(0);do if(i&16|0){if(!(i&4)){f[l+((k+1|0)*152|0)+100>>2]=0.0;break}j=+f[T+4+(aa*184|0)+128>>2]*+f[g+60>>2];f[l+((k+1|0)*152|0)+100>>2]=j;if(n|0){L=+f[n+344>>2];da=j*(L*+f[l+((k+1|0)*152|0)+20>>2])*+f[m+(Y*244|0)+116>>2];M=j*(L*+f[l+((k+1|0)*152|0)+24>>2])*+f[m+(Y*244|0)+120>>2];f[m+(Y*244|0)+64>>2]=j*(L*+f[l+((k+1|0)*152|0)+16>>2])*+f[m+(Y*244|0)+112>>2]+ +f[m+(Y*244|0)+64>>2];f[m+(Y*244|0)+68>>2]=da+ +f[m+(Y*244|0)+68>>2];f[m+(Y*244|0)+72>>2]=M+ +f[m+(Y*244|0)+72>>2];M=j*+f[m+(Y*244|0)+100>>2]*+f[l+((k+1|0)*152|0)+68>>2];da=j*+f[m+(Y*244|0)+104>>2]*+f[l+((k+1|0)*152|0)+72>>2];f[m+(Y*244|0)+80>>2]=j*+f[m+(Y*244|0)+96>>2]*+f[l+((k+1|0)*152|0)+64>>2]+ +f[m+(Y*244|0)+80>>2];f[m+(Y*244|0)+84>>2]=M+ +f[m+(Y*244|0)+84>>2];f[m+(Y*244|0)+88>>2]=da+ +f[m+(Y*244|0)+88>>2]}if(!o)break;H=+f[o+344>>2];K=+f[l+((k+1|0)*152|0)+80>>2];M=+f[l+((k+1|0)*152|0)+84>>2];da=+f[l+((k+1|0)*152|0)+88>>2];L=+f[l+((k+1|0)*152|0)+100>>2];I=+f[l+((k+1|0)*152|0)+52>>2]*H*L*+f[m+(Z*244|0)+116>>2];J=+f[l+((k+1|0)*152|0)+56>>2]*H*L*+f[m+(Z*244|0)+120>>2];f[m+(Z*244|0)+64>>2]=+f[l+((k+1|0)*152|0)+48>>2]*H*L*+f[m+(Z*244|0)+112>>2]+ +f[m+(Z*244|0)+64>>2];f[m+(Z*244|0)+68>>2]=I+ +f[m+(Z*244|0)+68>>2];f[m+(Z*244|0)+72>>2]=J+ +f[m+(Z*244|0)+72>>2];M=M*(+f[m+(Z*244|0)+100>>2]*-L);da=da*(+f[m+(Z*244|0)+104>>2]*-L);f[m+(Z*244|0)+80>>2]=+f[m+(Z*244|0)+80>>2]-K*(+f[m+(Z*244|0)+96>>2]*-L);f[m+(Z*244|0)+84>>2]=+f[m+(Z*244|0)+84>>2]-M;f[m+(Z*244|0)+88>>2]=+f[m+(Z*244|0)+88>>2]-da}while(0);i=c[T+748>>2]|0}aa=aa+1|0}while((aa|0)<(i|0))}$=$+1|0}while(($|0)!=(e|0));ea=ca;return}function eb(b){b=b|0;var d=0,e=0,g=0.0,i=0.0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Z=0,_=0,$=0.0,aa=0.0,ba=0.0,ca=0.0,da=0.0,fa=0.0,ga=0.0,ha=0.0,ia=0.0,ja=0.0,ka=0.0,la=0,ma=0,na=0;_=ea;ea=ea+176|0;Fi(14918);cd(b);if((ra[c[(c[b>>2]|0)+20>>2]&127](b)|0?(Z=ra[c[(c[b>>2]|0)+20>>2]&127](b)|0,(ra[c[(c[Z>>2]|0)+48>>2]&127](Z)|0)&6144|0):0)?(d=ra[c[(c[b>>2]|0)+104>>2]&127](b)|0,(d|0)>0):0){H=_+112+44|0;S=_+112+4|0;T=_+112+8|0;U=_+112+16|0;V=_+112+20|0;O=_+112+24|0;P=_+112+32|0;Q=_+112+36|0;R=_+112+40|0;W=_+112+48|0;X=_+112+52|0;Z=_+112+56|0;J=_+112+16|0;G=_+112+32|0;M=_+112+48|0;I=_+112+16|0;F=_+112+32|0;L=_+112+48|0;N=_+112+48|0;do{E=d;d=d+-1|0;o=ta[c[(c[b>>2]|0)+108>>2]&31](b,d)|0;e=ra[c[(c[b>>2]|0)+20>>2]&127](b)|0;e=((ra[c[(c[e>>2]|0)+48>>2]&127](e)|0)&2048|0)!=0;n=ra[c[(c[b>>2]|0)+20>>2]&127](b)|0;n=((ra[c[(c[n>>2]|0)+48>>2]&127](n)|0)&4096|0)!=0;D=+f[o+40>>2];a:do if(!(D<=0.0))switch(c[o+4>>2]|0){case 3:{c[_+112>>2]=1065353216;c[_+112+4>>2]=0;c[_+112+4+4>>2]=0;c[_+112+4+8>>2]=0;c[_+112+4+12>>2]=0;c[_+112+20>>2]=1065353216;c[_+112+24>>2]=0;c[_+112+24+4>>2]=0;c[_+112+24+8>>2]=0;c[_+112+24+12>>2]=0;c[_+112+40>>2]=1065353216;c[H>>2]=0;c[H+4>>2]=0;c[H+8>>2]=0;c[H+12>>2]=0;c[H+16>>2]=0;C=+f[o+300>>2];B=+f[o+304>>2];A=+f[o+308>>2];n=c[o+28>>2]|0;z=C*+f[n+20>>2]+B*+f[n+24>>2]+A*+f[n+28>>2]+ +f[n+56>>2];y=C*+f[n+36>>2]+B*+f[n+40>>2]+A*+f[n+44>>2]+ +f[n+60>>2];f[_+112+48>>2]=C*+f[n+4>>2]+B*+f[n+8>>2]+A*+f[n+12>>2]+ +f[n+52>>2];f[_+112+52>>2]=z;f[_+112+56>>2]=y;f[_+112+60>>2]=0.0;n=ra[c[(c[b>>2]|0)+20>>2]&127](b)|0;Ja[c[(c[n>>2]|0)+56>>2]&7](n,_+112|0,D);y=+f[o+316>>2];z=+f[o+320>>2];A=+f[o+324>>2];o=c[o+32>>2]|0;B=y*+f[o+20>>2]+z*+f[o+24>>2]+A*+f[o+28>>2]+ +f[o+56>>2];C=y*+f[o+36>>2]+z*+f[o+40>>2]+A*+f[o+44>>2]+ +f[o+60>>2];f[_+112+48>>2]=y*+f[o+4>>2]+z*+f[o+8>>2]+A*+f[o+12>>2]+ +f[o+52>>2];f[_+112+52>>2]=B;f[_+112+56>>2]=C;f[_+112+60>>2]=0.0;if(e){o=ra[c[(c[b>>2]|0)+20>>2]&127](b)|0;Ja[c[(c[o>>2]|0)+56>>2]&7](o,_+112|0,D)}break a}case 4:{m=c[o+28>>2]|0;g=+f[o+552>>2];fa=+f[m+4>>2];i=+f[o+552+16>>2];da=+f[m+8>>2];j=+f[o+552+32>>2];ca=+f[m+12>>2];p=+f[o+552+4>>2];q=+f[o+552+20>>2];r=+f[o+552+36>>2];s=+f[o+552+8>>2];w=+f[o+552+24>>2];y=+f[o+552+40>>2];ba=+f[m+20>>2];aa=+f[m+24>>2];$=+f[m+28>>2];t=+f[m+36>>2];x=+f[m+40>>2];z=+f[m+44>>2];ha=+f[o+552+48>>2];ga=+f[o+552+52>>2];C=+f[o+552+56>>2];A=+f[m+52>>2]+(fa*ha+da*ga+ca*C);B=ba*ha+aa*ga+$*C+ +f[m+56>>2];C=t*ha+x*ga+z*C+ +f[m+60>>2];f[_+112>>2]=g*fa+i*da+j*ca;f[_+112+4>>2]=fa*p+da*q+ca*r;f[_+112+8>>2]=fa*s+da*w+ca*y;f[_+112+12>>2]=0.0;f[_+112+16>>2]=g*ba+i*aa+j*$;f[_+112+20>>2]=p*ba+q*aa+r*$;f[_+112+24>>2]=s*ba+w*aa+y*$;f[_+112+28>>2]=0.0;f[_+112+32>>2]=g*t+i*x+j*z;f[_+112+36>>2]=p*t+q*x+r*z;f[_+112+40>>2]=s*t+w*x+y*z;f[_+112+44>>2]=0.0;f[_+112+48>>2]=A;f[_+112+52>>2]=B;f[_+112+56>>2]=C;f[_+112+60>>2]=0.0;if(e){m=ra[c[(c[b>>2]|0)+20>>2]&127](b)|0;Ja[c[(c[m>>2]|0)+56>>2]&7](m,_+112|0,D);m=c[o+32>>2]|0;w=+f[o+616>>2];j=+f[m+4>>2];x=+f[o+616+16>>2];p=+f[m+8>>2];y=+f[o+616+32>>2];q=+f[m+12>>2];z=+f[o+616+4>>2];A=+f[o+616+20>>2];B=+f[o+616+36>>2];C=+f[o+616+8>>2];aa=+f[o+616+24>>2];ca=+f[o+616+40>>2];r=+f[m+20>>2];s=+f[m+24>>2];t=+f[m+28>>2];$=+f[m+36>>2];ba=+f[m+40>>2];da=+f[m+44>>2];g=+f[o+616+48>>2];i=+f[o+616+52>>2];ha=+f[o+616+56>>2];fa=+f[m+52>>2]+(j*g+p*i+q*ha);ga=r*g+s*i+t*ha+ +f[m+56>>2];ha=$*g+ba*i+da*ha+ +f[m+60>>2];f[_+112>>2]=w*j+x*p+y*q;f[_+112+4>>2]=j*z+p*A+q*B;f[_+112+8>>2]=j*C+p*aa+q*ca;f[_+112+12>>2]=0.0;f[_+112+16>>2]=w*r+x*s+y*t;f[_+112+20>>2]=z*r+A*s+B*t;f[_+112+24>>2]=C*r+aa*s+ca*t;f[_+112+28>>2]=0.0;f[_+112+32>>2]=w*$+x*ba+y*da;f[_+112+36>>2]=z*$+A*ba+B*da;f[_+112+40>>2]=C*$+aa*ba+ca*da;f[_+112+44>>2]=0.0;f[_+112+48>>2]=fa;f[_+112+52>>2]=ga;f[_+112+56>>2]=ha;f[_+112+60>>2]=0.0;m=ra[c[(c[b>>2]|0)+20>>2]&127](b)|0;Ja[c[(c[m>>2]|0)+56>>2]&7](m,_+112|0,D)}else{m=c[o+32>>2]|0;w=+f[o+616>>2];j=+f[m+4>>2];x=+f[o+616+16>>2];p=+f[m+8>>2];y=+f[o+616+32>>2];q=+f[m+12>>2];z=+f[o+616+4>>2];A=+f[o+616+20>>2];B=+f[o+616+36>>2];C=+f[o+616+8>>2];aa=+f[o+616+24>>2];ca=+f[o+616+40>>2];r=+f[m+20>>2];s=+f[m+24>>2];t=+f[m+28>>2];$=+f[m+36>>2];ba=+f[m+40>>2];da=+f[m+44>>2];g=+f[o+616+48>>2];i=+f[o+616+52>>2];ha=+f[o+616+56>>2];fa=+f[m+52>>2]+(j*g+p*i+q*ha);ga=r*g+s*i+t*ha+ +f[m+56>>2];ha=$*g+ba*i+da*ha+ +f[m+60>>2];f[_+112>>2]=w*j+x*p+y*q;f[_+112+4>>2]=j*z+p*A+q*B;f[_+112+8>>2]=j*C+p*aa+q*ca;f[_+112+12>>2]=0.0;f[_+112+16>>2]=w*r+x*s+y*t;f[_+112+20>>2]=z*r+A*s+B*t;f[_+112+24>>2]=C*r+aa*s+ca*t;f[_+112+28>>2]=0.0;f[_+112+32>>2]=w*$+x*ba+y*da;f[_+112+36>>2]=z*$+A*ba+B*da;f[_+112+40>>2]=C*$+aa*ba+ca*da;f[_+112+44>>2]=0.0;f[_+112+48>>2]=fa;f[_+112+52>>2]=ga;f[_+112+56>>2]=ha;f[_+112+60>>2]=0.0}i=+f[o+688>>2];g=+f[o+688+4>>2];if(!((i-g)%6.2831854820251465<-3.1415927410125732))if((i-g)%6.2831854820251465>3.1415927410125732)j=(i-g)%6.2831854820251465+-6.2831854820251465;else j=(i-g)%6.2831854820251465;else j=(i-g)%6.2831854820251465+6.2831854820251465;if(!((i+g)%6.2831854820251465<-3.1415927410125732))if((i+g)%6.2831854820251465>3.1415927410125732)g=(i+g)%6.2831854820251465+-6.2831854820251465;else g=(i+g)%6.2831854820251465;else g=(i+g)%6.2831854820251465+6.2831854820251465;if(!(j==g)?(K=j>g,n):0){c[_+96>>2]=c[_+112+8>>2];c[_+96+4>>2]=c[_+112+24>>2];c[_+96+8>>2]=c[_+112+40>>2];f[_+96+12>>2]=0.0;c[_+80>>2]=c[_+112>>2];c[_+80+4>>2]=c[_+112+16>>2];c[_+80+8>>2]=c[_+112+32>>2];f[_+80+12>>2]=0.0;o=ra[c[(c[b>>2]|0)+20>>2]&127](b)|0;n=c[(c[o>>2]|0)+60>>2]|0;c[_+64>>2]=0;c[_+64+4>>2]=0;c[_+64+8>>2]=0;c[_+64+12>>2]=0;Sa[n&1](o,_+112+48|0,_+96|0,_+80|0,D,D,K?0.0:j,K?6.2831854820251465:g,_+64|0,K^1,10.0)}break a}case 5:{m=c[o+28>>2]|0;w=+f[o+300>>2];j=+f[m+4>>2];x=+f[o+300+16>>2];p=+f[m+8>>2];y=+f[o+300+32>>2];q=+f[m+12>>2];z=+f[o+300+4>>2];A=+f[o+300+20>>2];B=+f[o+300+36>>2];C=+f[o+300+8>>2];aa=+f[o+300+24>>2];ca=+f[o+300+40>>2];r=+f[m+20>>2];s=+f[m+24>>2];t=+f[m+28>>2];$=+f[m+36>>2];ba=+f[m+40>>2];da=+f[m+44>>2];g=+f[o+300+48>>2];i=+f[o+300+52>>2];ha=+f[o+300+56>>2];fa=+f[m+52>>2]+(j*g+p*i+q*ha);ga=r*g+s*i+t*ha+ +f[m+56>>2];ha=$*g+ba*i+da*ha+ +f[m+60>>2];f[_+112>>2]=w*j+x*p+y*q;f[S>>2]=j*z+p*A+q*B;f[T>>2]=j*C+p*aa+q*ca;f[_+112+12>>2]=0.0;f[U>>2]=w*r+x*s+y*t;f[V>>2]=z*r+A*s+B*t;f[O>>2]=C*r+aa*s+ca*t;f[_+112+28>>2]=0.0;f[P>>2]=w*$+x*ba+y*da;f[Q>>2]=z*$+A*ba+B*da;f[R>>2]=C*$+aa*ba+ca*da;f[_+112+44>>2]=0.0;f[W>>2]=fa;f[X>>2]=ga;f[Z>>2]=ha;f[_+112+60>>2]=0.0;if(e){m=ra[c[(c[b>>2]|0)+20>>2]&127](b)|0;Ja[c[(c[m>>2]|0)+56>>2]&7](m,_+112|0,D);m=c[o+32>>2]|0;w=+f[o+364>>2];j=+f[m+4>>2];x=+f[o+364+16>>2];p=+f[m+8>>2];y=+f[o+364+32>>2];q=+f[m+12>>2];z=+f[o+364+4>>2];A=+f[o+364+20>>2];B=+f[o+364+36>>2];C=+f[o+364+8>>2];aa=+f[o+364+24>>2];ca=+f[o+364+40>>2];r=+f[m+20>>2];s=+f[m+24>>2];t=+f[m+28>>2];$=+f[m+36>>2];ba=+f[m+40>>2];da=+f[m+44>>2];g=+f[o+364+48>>2];i=+f[o+364+52>>2];ha=+f[o+364+56>>2];fa=+f[m+52>>2]+(j*g+p*i+q*ha);ga=r*g+s*i+t*ha+ +f[m+56>>2];ha=$*g+ba*i+da*ha+ +f[m+60>>2];f[_+112>>2]=w*j+x*p+y*q;f[S>>2]=j*z+p*A+q*B;f[T>>2]=j*C+p*aa+q*ca;f[_+112+12>>2]=0.0;f[U>>2]=w*r+x*s+y*t;f[V>>2]=z*r+A*s+B*t;f[O>>2]=C*r+aa*s+ca*t;f[_+112+28>>2]=0.0;f[P>>2]=w*$+x*ba+y*da;f[Q>>2]=z*$+A*ba+B*da;f[R>>2]=C*$+aa*ba+ca*da;f[_+112+44>>2]=0.0;f[W>>2]=fa;f[X>>2]=ga;f[Z>>2]=ha;f[_+112+60>>2]=0.0;m=ra[c[(c[b>>2]|0)+20>>2]&127](b)|0;Ja[c[(c[m>>2]|0)+56>>2]&7](m,_+112|0,D)}else{m=c[o+32>>2]|0;w=+f[o+364>>2];j=+f[m+4>>2];x=+f[o+364+16>>2];p=+f[m+8>>2];y=+f[o+364+32>>2];q=+f[m+12>>2];z=+f[o+364+4>>2];A=+f[o+364+20>>2];B=+f[o+364+36>>2];C=+f[o+364+8>>2];aa=+f[o+364+24>>2];ca=+f[o+364+40>>2];r=+f[m+20>>2];s=+f[m+24>>2];t=+f[m+28>>2];$=+f[m+36>>2];ba=+f[m+40>>2];da=+f[m+44>>2];g=+f[o+364+48>>2];i=+f[o+364+52>>2];ha=+f[o+364+56>>2];fa=+f[m+52>>2]+(j*g+p*i+q*ha);ga=r*g+s*i+t*ha+ +f[m+56>>2];ha=$*g+ba*i+da*ha+ +f[m+60>>2];f[_+112>>2]=w*j+x*p+y*q;f[S>>2]=j*z+p*A+q*B;f[T>>2]=j*C+p*aa+q*ca;f[_+112+12>>2]=0.0;f[U>>2]=w*r+x*s+y*t;f[V>>2]=z*r+A*s+B*t;f[O>>2]=C*r+aa*s+ca*t;f[_+112+28>>2]=0.0;f[P>>2]=w*$+x*ba+y*da;f[Q>>2]=z*$+A*ba+B*da;f[R>>2]=C*$+aa*ba+ca*da;f[_+112+44>>2]=0.0;f[W>>2]=fa;f[X>>2]=ga;f[Z>>2]=ha;f[_+112+60>>2]=0.0}if(n){Qj(_+96|0,o,6.0868353843688965,D);ca=+f[_+96>>2];da=+f[_+96+4>>2];fa=+f[_+96+8>>2];ga=ca*+f[U>>2]+da*+f[V>>2]+fa*+f[O>>2]+ +f[X>>2];ha=ca*+f[P>>2]+da*+f[Q>>2]+fa*+f[R>>2]+ +f[Z>>2];f[_+96>>2]=ca*+f[_+112>>2]+da*+f[S>>2]+fa*+f[T>>2]+ +f[W>>2];f[_+96+4>>2]=ga;f[_+96+8>>2]=ha;f[_+96+12>>2]=0.0;e=0;do{Qj(_+80|0,o,+(e|0)*6.283185005187988*.03125,D);ca=+f[_+80>>2];da=+f[_+80+4>>2];fa=+f[_+80+8>>2];ga=ca*+f[U>>2]+da*+f[V>>2]+fa*+f[O>>2]+ +f[X>>2];ha=ca*+f[P>>2]+da*+f[Q>>2]+fa*+f[R>>2]+ +f[Z>>2];f[_+80>>2]=ca*+f[_+112>>2]+da*+f[S>>2]+fa*+f[T>>2]+ +f[W>>2];f[_+80+4>>2]=ga;f[_+80+8>>2]=ha;f[_+80+12>>2]=0.0;n=ra[c[(c[b>>2]|0)+20>>2]&127](b)|0;m=c[(c[n>>2]|0)+8>>2]|0;c[_+64>>2]=0;c[_+64+4>>2]=0;c[_+64+8>>2]=0;c[_+64+12>>2]=0;Pa[m&127](n,_+96|0,_+80|0,_+64|0);if(!(e&3)){n=ra[c[(c[b>>2]|0)+20>>2]&127](b)|0;m=c[(c[n>>2]|0)+8>>2]|0;c[_+64>>2]=0;c[_+64+4>>2]=0;c[_+64+8>>2]=0;c[_+64+12>>2]=0;Pa[m&127](n,N,_+80|0,_+64|0)}c[_+96>>2]=c[_+80>>2];c[_+96+4>>2]=c[_+80+4>>2];c[_+96+8>>2]=c[_+80+8>>2];c[_+96+12>>2]=c[_+80+12>>2];e=e+1|0}while((e|0)!=32);B=+f[o+452>>2];C=+f[o+512>>2];e=c[o+32>>2]|0;if(+f[e+344>>2]>0.0){ca=+f[o+364>>2];da=+f[e+4>>2];fa=+f[o+364+16>>2];ga=+f[e+8>>2];ha=+f[o+364+32>>2];A=+f[e+12>>2];aa=+f[o+364+4>>2];ba=+f[o+364+20>>2];z=+f[o+364+36>>2];ia=+f[o+364+8>>2];$=+f[o+364+24>>2];y=+f[o+364+40>>2];ka=+f[e+20>>2];ja=+f[e+24>>2];x=+f[e+28>>2];w=+f[e+36>>2];t=+f[e+40>>2];s=+f[e+44>>2];q=+f[o+364+48>>2];j=+f[o+364+52>>2];p=+f[o+364+56>>2];g=w*q+t*j;i=da*q+ga*j+A*p;j=ka*q+ja*j+x*p;p=s*p;q=ia*w+$*t+y*s;r=aa*w+ba*t+z*s;s=ca*w+fa*t+ha*s;t=ia*ka+$*ja+y*x;w=aa*ka+ba*ja+z*x;x=ca*ka+fa*ja+ha*x;y=da*ia+ga*$+A*y;z=da*aa+ga*ba+A*z;A=ca*da+fa*ga+ha*A}else{e=c[o+28>>2]|0;ga=+f[o+300>>2];ha=+f[e+4>>2];ia=+f[o+300+16>>2];ja=+f[e+8>>2];ka=+f[o+300+32>>2];A=+f[e+12>>2];da=+f[o+300+4>>2];fa=+f[o+300+20>>2];z=+f[o+300+36>>2];ba=+f[o+300+8>>2];ca=+f[o+300+24>>2];y=+f[o+300+40>>2];$=+f[e+20>>2];aa=+f[e+24>>2];x=+f[e+28>>2];w=+f[e+36>>2];t=+f[e+40>>2];s=+f[e+44>>2];q=+f[o+300+48>>2];j=+f[o+300+52>>2];p=+f[o+300+56>>2];g=w*q+t*j;i=ha*q+ja*j+A*p;j=$*q+aa*j+x*p;p=s*p;q=ba*w+ca*t+y*s;r=da*w+fa*t+z*s;s=ga*w+ia*t+ka*s;t=ba*$+ca*aa+y*x;w=da*$+fa*aa+z*x;x=ga*$+ia*aa+ka*x;y=ha*ba+ja*ca+A*y;z=ha*da+ja*fa+A*z;A=ga*ha+ia*ja+ka*A}ia=+f[e+52>>2]+i;ja=j+ +f[e+56>>2];ka=g+p+ +f[e+60>>2];f[_+112>>2]=A;f[S>>2]=z;f[T>>2]=y;f[_+112+12>>2]=0.0;f[U>>2]=x;f[V>>2]=w;f[O>>2]=t;f[_+112+28>>2]=0.0;f[P>>2]=s;f[Q>>2]=r;f[R>>2]=q;f[_+112+44>>2]=0.0;f[W>>2]=ia;f[X>>2]=ja;f[Z>>2]=ka;f[_+112+60>>2]=0.0;c[_+80>>2]=c[N>>2];c[_+80+4>>2]=c[N+4>>2];c[_+80+8>>2]=c[N+8>>2];c[_+80+12>>2]=c[N+12>>2];f[_+64>>2]=A;f[_+64+4>>2]=x;f[_+64+8>>2]=s;f[_+64+12>>2]=0.0;f[_+48>>2]=z;f[_+48+4>>2]=w;f[_+48+8>>2]=r;f[_+48+12>>2]=0.0;o=ra[c[(c[b>>2]|0)+20>>2]&127](b)|0;n=c[(c[o>>2]|0)+60>>2]|0;c[_+32>>2]=0;c[_+32+4>>2]=0;c[_+32+8>>2]=0;c[_+32+12>>2]=0;Sa[n&1](o,_+80|0,_+64|0,_+48|0,D,D,-C-B,B-C,_+32|0,1,10.0)}break a}case 6:case 9:{c[_+112>>2]=c[o+1064>>2];c[_+112+4>>2]=c[o+1064+4>>2];c[_+112+8>>2]=c[o+1064+8>>2];c[_+112+12>>2]=c[o+1064+12>>2];l=o+1064+16|0;c[J>>2]=c[l>>2];c[J+4>>2]=c[l+4>>2];c[J+8>>2]=c[l+8>>2];c[J+12>>2]=c[l+12>>2];k=o+1064+32|0;c[G>>2]=c[k>>2];c[G+4>>2]=c[k+4>>2];c[G+8>>2]=c[k+8>>2];c[G+12>>2]=c[k+12>>2];m=o+1064+48|0;c[M>>2]=c[m>>2];c[M+4>>2]=c[m+4>>2];c[M+8>>2]=c[m+8>>2];c[M+12>>2]=c[m+12>>2];if(e){e=ra[c[(c[b>>2]|0)+20>>2]&127](b)|0;Ja[c[(c[e>>2]|0)+56>>2]&7](e,_+112|0,D);c[_+112>>2]=c[o+1128>>2];c[_+112+4>>2]=c[o+1128+4>>2];c[_+112+8>>2]=c[o+1128+8>>2];c[_+112+12>>2]=c[o+1128+12>>2];c[J>>2]=c[o+1128+16>>2];c[J+4>>2]=c[o+1128+16+4>>2];c[J+8>>2]=c[o+1128+16+8>>2];c[J+12>>2]=c[o+1128+16+12>>2];c[G>>2]=c[o+1128+32>>2];c[G+4>>2]=c[o+1128+32+4>>2];c[G+8>>2]=c[o+1128+32+8>>2];c[G+12>>2]=c[o+1128+32+12>>2];c[M>>2]=c[o+1128+48>>2];c[M+4>>2]=c[o+1128+48+4>>2];c[M+8>>2]=c[o+1128+48+8>>2];c[M+12>>2]=c[o+1128+48+12>>2];e=ra[c[(c[b>>2]|0)+20>>2]&127](b)|0;Ja[c[(c[e>>2]|0)+56>>2]&7](e,_+112|0,D)}else{c[_+112>>2]=c[o+1128>>2];c[_+112+4>>2]=c[o+1128+4>>2];c[_+112+8>>2]=c[o+1128+8>>2];c[_+112+12>>2]=c[o+1128+12>>2];c[J>>2]=c[o+1128+16>>2];c[J+4>>2]=c[o+1128+16+4>>2];c[J+8>>2]=c[o+1128+16+8>>2];c[J+12>>2]=c[o+1128+16+12>>2];c[G>>2]=c[o+1128+32>>2];c[G+4>>2]=c[o+1128+32+4>>2];c[G+8>>2]=c[o+1128+32+8>>2];c[G+12>>2]=c[o+1128+32+12>>2];c[M>>2]=c[o+1128+48>>2];c[M+4>>2]=c[o+1128+48+4>>2];c[M+8>>2]=c[o+1128+48+8>>2];c[M+12>>2]=c[o+1128+48+12>>2]}if(n){c[_+112>>2]=c[o+1064>>2];c[_+112+4>>2]=c[o+1064+4>>2];c[_+112+8>>2]=c[o+1064+8>>2];c[_+112+12>>2]=c[o+1064+12>>2];c[J>>2]=c[l>>2];c[J+4>>2]=c[l+4>>2];c[J+8>>2]=c[l+8>>2];c[J+12>>2]=c[l+12>>2];c[G>>2]=c[k>>2];c[G+4>>2]=c[k+4>>2];c[G+8>>2]=c[k+8>>2];c[G+12>>2]=c[k+12>>2];c[M>>2]=c[m>>2];c[M+4>>2]=c[m+4>>2];c[M+8>>2]=c[m+8>>2];c[M+12>>2]=c[m+12>>2];e=o+1128+48|0;c[_+96>>2]=c[_+112+8>>2];c[_+96+4>>2]=c[_+112+24>>2];c[_+96+8>>2]=c[_+112+40>>2];f[_+96+12>>2]=0.0;c[_+80>>2]=c[_+112>>2];c[_+80+4>>2]=c[_+112+16>>2];c[_+80+8>>2]=c[_+112+32>>2];f[_+80+12>>2]=0.0;ga=+f[o+932>>2];g=+f[o+932+4>>2];ja=+f[o+996>>2];ia=+f[o+996+4>>2];la=ra[c[(c[b>>2]|0)+20>>2]&127](b)|0;n=c[(c[la>>2]|0)+64>>2]|0;c[_+64>>2]=0;c[_+64+4>>2]=0;c[_+64+8>>2]=0;c[_+64+12>>2]=0;Ra[n&1](la,e,_+96|0,_+80|0,D*.8999999761581421,ga,g,ja,ia,_+64|0,10.0,1);la=c[_+112+20>>2]|0;n=c[_+112+36>>2]|0;c[_+80>>2]=c[_+112+4>>2];c[_+80+4>>2]=la;c[_+80+8>>2]=n;f[_+80+12>>2]=0.0;ia=+f[o+1196>>2];ja=+f[o+1200>>2];g=+u(+ia);ia=+v(+ia);ga=+u(+ja);ja=+v(+ja);ha=+f[_+80>>2];ka=+f[_+80+4>>2];i=+f[_+80+8>>2];f[_+64>>2]=g*ga*ha+g*ja*ka-ia*i;f[_+64+4>>2]=ga*ka-ja*ha;f[_+64+8>>2]=ia*ga*ha+ia*ja*ka+g*i;c[_+112>>2]=c[o+1128>>2];c[_+112+4>>2]=c[o+1128+4>>2];c[_+112+8>>2]=c[o+1128+8>>2];c[_+112+12>>2]=c[o+1128+12>>2];c[J>>2]=c[o+1128+16>>2];c[J+4>>2]=c[o+1128+16+4>>2];c[J+8>>2]=c[o+1128+16+8>>2];c[J+12>>2]=c[o+1128+16+12>>2];c[G>>2]=c[o+1128+32>>2];c[G+4>>2]=c[o+1128+32+4>>2];c[G+8>>2]=c[o+1128+32+8>>2];c[G+12>>2]=c[o+1128+32+12>>2];c[M>>2]=c[e>>2];c[M+4>>2]=c[e+4>>2];c[M+8>>2]=c[e+8>>2];c[M+12>>2]=c[e+12>>2];i=-+f[_+112+16>>2];g=-+f[_+112+32>>2];f[_+48>>2]=-+f[_+112>>2];f[_+48+4>>2]=i;f[_+48+8>>2]=g;f[_+48+12>>2]=0.0;g=+f[o+868>>2];i=+f[o+868+4>>2];if(!(g>i)){if(g>2]|0)+20>>2]&127](b)|0;n=c[(c[la>>2]|0)+60>>2]|0;c[_+32>>2]=0;c[_+32+4>>2]=0;c[_+32+8>>2]=0;c[_+32+12>>2]=0;Sa[n&1](la,e,_+48|0,_+64|0,D,D,g,i,_+32|0,1,10.0)}}else{la=ra[c[(c[b>>2]|0)+20>>2]&127](b)|0;n=c[(c[la>>2]|0)+60>>2]|0;c[_+32>>2]=0;c[_+32+4>>2]=0;c[_+32+8>>2]=0;c[_+32+12>>2]=0;Sa[n&1](la,e,_+48|0,_+64|0,D,D,-3.1415927410125732,3.1415927410125732,_+32|0,0,10.0)}c[_+112>>2]=c[o+1064>>2];c[_+112+4>>2]=c[o+1064+4>>2];c[_+112+8>>2]=c[o+1064+8>>2];c[_+112+12>>2]=c[o+1064+12>>2];c[J>>2]=c[l>>2];c[J+4>>2]=c[l+4>>2];c[J+8>>2]=c[l+8>>2];c[J+12>>2]=c[l+12>>2];c[G>>2]=c[k>>2];c[G+4>>2]=c[k+4>>2];c[G+8>>2]=c[k+8>>2];c[G+12>>2]=c[k+12>>2];c[M>>2]=c[m>>2];c[M+4>>2]=c[m+4>>2];c[M+8>>2]=c[m+8>>2];c[M+12>>2]=c[m+12>>2];c[_+32>>2]=c[o+680>>2];c[_+32+4>>2]=c[o+680+4>>2];c[_+32+8>>2]=c[o+680+8>>2];c[_+32+12>>2]=c[o+680+12>>2];c[_+16>>2]=c[o+680+16>>2];c[_+16+4>>2]=c[o+680+16+4>>2];c[_+16+8>>2]=c[o+680+16+8>>2];c[_+16+12>>2]=c[o+680+16+12>>2];la=ra[c[(c[b>>2]|0)+20>>2]&127](b)|0;o=c[(c[la>>2]|0)+72>>2]|0;c[_>>2]=0;c[_+4>>2]=0;c[_+8>>2]=0;c[_+12>>2]=0;Ta[o&31](la,_+32|0,_+16|0,_+112|0,_)}break a}case 7:{c[_+112>>2]=c[o+824>>2];c[_+112+4>>2]=c[o+824+4>>2];c[_+112+8>>2]=c[o+824+8>>2];c[_+112+12>>2]=c[o+824+12>>2];c[I>>2]=c[o+824+16>>2];c[I+4>>2]=c[o+824+16+4>>2];c[I+8>>2]=c[o+824+16+8>>2];c[I+12>>2]=c[o+824+16+12>>2];c[F>>2]=c[o+824+32>>2];c[F+4>>2]=c[o+824+32+4>>2];c[F+8>>2]=c[o+824+32+8>>2];c[F+12>>2]=c[o+824+32+12>>2];c[L>>2]=c[o+824+48>>2];c[L+4>>2]=c[o+824+48+4>>2];c[L+8>>2]=c[o+824+48+8>>2];c[L+12>>2]=c[o+824+48+12>>2];if(e){la=ra[c[(c[b>>2]|0)+20>>2]&127](b)|0;Ja[c[(c[la>>2]|0)+56>>2]&7](la,_+112|0,D);c[_+112>>2]=c[o+888>>2];c[_+112+4>>2]=c[o+888+4>>2];c[_+112+8>>2]=c[o+888+8>>2];c[_+112+12>>2]=c[o+888+12>>2];c[I>>2]=c[o+888+16>>2];c[I+4>>2]=c[o+888+16+4>>2];c[I+8>>2]=c[o+888+16+8>>2];c[I+12>>2]=c[o+888+16+12>>2];c[F>>2]=c[o+888+32>>2];c[F+4>>2]=c[o+888+32+4>>2];c[F+8>>2]=c[o+888+32+8>>2];c[F+12>>2]=c[o+888+32+12>>2];c[L>>2]=c[o+888+48>>2];c[L+4>>2]=c[o+888+48+4>>2];c[L+8>>2]=c[o+888+48+8>>2];c[L+12>>2]=c[o+888+48+12>>2];la=ra[c[(c[b>>2]|0)+20>>2]&127](b)|0;Ja[c[(c[la>>2]|0)+56>>2]&7](la,_+112|0,D)}else{c[_+112>>2]=c[o+888>>2];c[_+112+4>>2]=c[o+888+4>>2];c[_+112+8>>2]=c[o+888+8>>2];c[_+112+12>>2]=c[o+888+12>>2];c[I>>2]=c[o+888+16>>2];c[I+4>>2]=c[o+888+16+4>>2];c[I+8>>2]=c[o+888+16+8>>2];c[I+12>>2]=c[o+888+16+12>>2];c[F>>2]=c[o+888+32>>2];c[F+4>>2]=c[o+888+32+4>>2];c[F+8>>2]=c[o+888+32+8>>2];c[F+12>>2]=c[o+888+32+12>>2];c[L>>2]=c[o+888+48>>2];c[L+4>>2]=c[o+888+48+4>>2];c[L+8>>2]=c[o+888+48+8>>2];c[L+12>>2]=c[o+888+48+12>>2]}if(n){ma=(a[o+180>>0]|0)==0?o+888|0:o+824|0;e=c[ma>>2]|0;m=c[ma+4>>2]|0;k=c[ma+16>>2]|0;n=c[ma+20>>2]|0;l=c[ma+32>>2]|0;la=c[ma+36>>2]|0;B=+f[ma+48>>2];ba=+f[ma+52>>2];ga=+f[ma+56>>2];ka=+f[o+184>>2];aa=(c[h>>2]=e,+f[h>>2]);$=(c[h>>2]=m,+f[h>>2])*0.0;C=+f[ma+8>>2]*0.0;fa=(c[h>>2]=k,+f[h>>2]);da=(c[h>>2]=n,+f[h>>2])*0.0;ca=+f[ma+24>>2]*0.0;ja=(c[h>>2]=l,+f[h>>2]);ia=(c[h>>2]=la,+f[h>>2])*0.0;ha=+f[ma+40>>2]*0.0;f[_+96>>2]=B+(C+($+ka*aa));f[_+96+4>>2]=ba+(ca+(da+ka*fa));f[_+96+8>>2]=ga+(ha+(ia+ka*ja));f[_+96+12>>2]=0.0;ka=+f[o+188>>2];f[_+80>>2]=B+(C+($+ka*aa));f[_+80+4>>2]=ba+(ca+(da+ka*fa));f[_+80+8>>2]=ga+(ha+(ia+ka*ja));f[_+80+12>>2]=0.0;ma=ra[c[(c[b>>2]|0)+20>>2]&127](b)|0;na=c[(c[ma>>2]|0)+8>>2]|0;c[_+64>>2]=0;c[_+64+4>>2]=0;c[_+64+8>>2]=0;c[_+64+12>>2]=0;Pa[na&127](ma,_+96|0,_+80|0,_+64|0);c[_+64>>2]=e;c[_+64+4>>2]=k;c[_+64+8>>2]=l;f[_+64+12>>2]=0.0;c[_+48>>2]=m;c[_+48+4>>2]=n;c[_+48+8>>2]=la;f[_+48+12>>2]=0.0;ja=+f[o+192>>2];ka=+f[o+196>>2];la=ra[c[(c[b>>2]|0)+20>>2]&127](b)|0;n=c[(c[la>>2]|0)+60>>2]|0;c[_+32>>2]=0;c[_+32+4>>2]=0;c[_+32+8>>2]=0;c[_+32+12>>2]=0;Sa[n&1](la,o+888+48|0,_+64|0,_+48|0,D,D,ja,ka,_+32|0,1,10.0)}break a}default:break a}while(0)}while((E|0)>1)}if((((ra[c[(c[b>>2]|0)+20>>2]&127](b)|0?(na=ra[c[(c[b>>2]|0)+20>>2]&127](b)|0,(ra[c[(c[na>>2]|0)+48>>2]&127](na)|0)&16387|0):0)?ra[c[(c[b>>2]|0)+20>>2]&127](b)|0:0)?(na=ra[c[(c[b>>2]|0)+20>>2]&127](b)|0,ra[c[(c[na>>2]|0)+48>>2]&127](na)|0):0)?(c[b+280>>2]|0)>0:0){d=0;do{na=c[(c[b+288>>2]|0)+(d<<2)>>2]|0;Ia[c[(c[na>>2]|0)+12>>2]&127](na,c[b+72>>2]|0);d=d+1|0}while((d|0)<(c[b+280>>2]|0))}d=c[2685]|0;na=(c[d+16>>2]|0)+-1|0;c[d+16>>2]=na;if(na|0){ea=_;return}do if(c[d+4>>2]|0){Y(_+112|0,0)|0;na=c[6746]|0;f[d+8>>2]=+f[d+8>>2]+ +(((c[_+112+4>>2]|0)-(c[na+4>>2]|0)+(((c[_+112>>2]|0)-(c[na>>2]|0)|0)*1e6|0)-(c[d+12>>2]|0)|0)>>>0)/1.0e3;if(!(c[d+16>>2]|0)){d=c[2685]|0;break}else{ea=_;return}}while(0);c[2685]=c[d+20>>2];ea=_;return}function fb(b,d){b=b|0;d=+d;var e=0,g=0,i=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,t=0.0,u=0.0,v=0,w=0.0,x=0.0,y=0,z=0,A=0,B=0.0,C=0.0,D=0.0,E=0.0,F=0,G=0,H=0,I=0,J=0,K=0,L=0.0,M=0.0,N=0.0,O=0,P=0,Q=0.0,R=0,S=0,T=0,U=0.0,V=0.0,W=0.0,X=0,Z=0.0,_=0.0,$=0.0,aa=0.0,ba=0.0,ca=0.0,da=0.0,fa=0.0,ga=0.0,ia=0.0,ja=0.0,ka=0.0,la=0.0;X=ea;ea=ea+240|0;e=c[b+24>>2]|0;if((e|0)<=0){ea=X;return}T=X+128+76|0;R=X+80+16|0;S=X+80+32|0;G=0;do{F=c[(c[b+32>>2]|0)+(G<<2)>>2]|0;switch(c[F+216>>2]|0){case 2:case 5:break;default:{if(a[F+924>>0]|0){a[F+924>>0]=0;g=c[F+732>>2]|0;if((g|0)>0){i=c[F+740>>2]|0;e=0;do{z=c[i+(e*52|0)+8>>2]|0;A=c[i+(e*52|0)+12>>2]|0;C=+f[z+8>>2]-+f[A+8>>2];D=+f[z+12>>2]-+f[A+12>>2];E=+f[z+16>>2]-+f[A+16>>2];E=+s(+(C*C+D*D+E*E));f[i+(e*52|0)+16>>2]=E;f[i+(e*52|0)+28>>2]=E*E;e=e+1|0}while((e|0)!=(g|0));e=0;do{f[i+(e*52|0)+24>>2]=(+f[(c[i+(e*52|0)+8>>2]|0)+88>>2]+ +f[(c[i+(e*52|0)+12>>2]|0)+88>>2])/+f[(c[i+(e*52|0)+4>>2]|0)+4>>2];e=e+1|0}while((e|0)!=(g|0))}Ze(F);e=c[F+988>>2]|0;if(e|0)Hm(F+988|0,e);e=c[F+992>>2]|0;if(e|0){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0)}c[F+992>>2]=0;c[F+996>>2]=-1;e=c[F+1020>>2]|0;if(e|0){if(a[F+1024>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0)}c[F+1020>>2]=0}a[F+1024>>0]=1;c[F+1020>>2]=0;c[F+1012>>2]=0;c[F+1016>>2]=0;c[F+1004>>2]=0;if(c[F+388>>2]&16|0){e=c[F+988>>2]|0;if(e|0)Hm(F+988|0,e);e=c[F+992>>2]|0;if(e|0){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0)}c[F+992>>2]=0;c[F+996>>2]=-1;e=c[F+1020>>2]|0;if(e|0){if(a[F+1024>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[e+-4>>2]|0)}c[F+1020>>2]=0}a[F+1024>>0]=1;c[F+1020>>2]=0;c[F+1012>>2]=0;c[F+1016>>2]=0;c[F+1004>>2]=0;if((c[F+752>>2]|0)>0){v=0;do{g=c[F+760>>2]|0;i=g+(v*44|0)|0;z=c[g+(v*44|0)+8>>2]|0;A=c[g+(v*44|0)+12>>2]|0;e=c[g+(v*44|0)+16>>2]|0;j=+f[z+8>>2];l=+f[z+12>>2];k=+f[z+16>>2];p=+f[z+20>>2];B=+f[A+8>>2];m=B>2];q=E>2];n=D>2];o=C>2];m=C>2];q=D>2];n=E>2];o=B>2]|0;if(!e){c[6747]=(c[6747]|0)+1;e=kb(63)|0;if(!e)e=0;else{c[(e+4+15&-16)+-4>>2]=e;e=e+4+15&-16}y=e;z=y+44|0;do{c[y>>2]=0;y=y+4|0}while((y|0)<(z|0))}else c[F+992>>2]=0;c[e+32>>2]=0;c[e+36>>2]=i;c[e+40>>2]=0;f[e>>2]=m;f[e+4>>2]=q;f[e+8>>2]=n;f[e+12>>2]=o;f[e+16>>2]=j;f[e+20>>2]=l;f[e+24>>2]=k;f[e+28>>2]=p;je(F+988|0,c[F+988>>2]|0,e);c[F+1e3>>2]=(c[F+1e3>>2]|0)+1;c[g+(v*44|0)+40>>2]=e;v=v+1|0}while((v|0)<(c[F+752>>2]|0))}}}l=+f[F+368>>2]*d;f[F+452>>2]=l;f[F+456>>2]=1.0/l;f[F+460>>2]=l*3.0;e=c[F+192>>2]|0;l=+ha[c[(c[e>>2]|0)+48>>2]&15](e);f[F+464>>2]=l;f[F+468>>2]=l*.25;e=c[F+684>>2]|0;l=+f[F+452>>2];j=+f[e+40>>2]*l;k=l*+f[e+44>>2];l=l*+f[e+48>>2];e=c[F+712>>2]|0;if((e|0)>0){g=c[F+720>>2]|0;i=0;do{if(+f[g+(i*104|0)+88>>2]>0.0){A=g+(i*104|0)+40|0;f[A>>2]=j+ +f[A>>2];A=g+(i*104|0)+44|0;f[A>>2]=k+ +f[A>>2];A=g+(i*104|0)+48|0;f[A>>2]=l+ +f[A>>2]}i=i+1|0}while((i|0)!=(e|0))}Fi(13669);n=+f[F+308>>2];o=+f[F+312>>2];v=+f[F+304>>2]>0.0?1:+f[F+300>>2]>0.0;y=c[F+712>>2]|0;if(n!=0.0|o>0.0){if((y|0)>0){e=c[F+720>>2]|0;k=+f[e+8>>2];l=+f[e+12>>2];m=+f[e+16>>2];e=c[F+752>>2]|0;if((e|0)>0){g=c[F+760>>2]|0;i=0;j=0.0;do{A=c[g+(i*44|0)+8>>2]|0;z=c[g+(i*44|0)+12>>2]|0;D=+f[z+8>>2]-k;w=+f[z+12>>2]-l;B=+f[z+16>>2]-m;z=c[g+(i*44|0)+16>>2]|0;C=+f[z+8>>2]-k;x=+f[z+12>>2]-l;E=+f[z+16>>2]-m;j=j+((+f[A+16>>2]-m)*(D*x-w*C)+((+f[A+8>>2]-k)*(w*E-B*x)+(+f[A+12>>2]-l)*(B*C-D*E)));i=i+1|0}while((i|0)!=(e|0))}else j=0.0;j=j/6.0}else j=0.0;k=n*(1.0/+r(+j));j=o*(+f[F+476>>2]-j)}else{j=0.0;k=0.0}if((y|0)>0)if(v){g=0;do{e=c[F+720>>2]|0;if(+f[e+(g*104|0)+88>>2]>0.0){Jd(F,F+1212|0,g);if(n!=0.0){C=k*+f[e+(g*104|0)+92>>2];D=C*+f[e+(g*104|0)+76>>2];E=C*+f[e+(g*104|0)+80>>2];A=e+(g*104|0)+56|0;f[A>>2]=+f[e+(g*104|0)+72>>2]*C+ +f[A>>2];A=e+(g*104|0)+60|0;f[A>>2]=D+ +f[A>>2];A=e+(g*104|0)+64|0;f[A>>2]=E+ +f[A>>2]}if(o>0.0){C=j*+f[e+(g*104|0)+92>>2];D=C*+f[e+(g*104|0)+76>>2];E=C*+f[e+(g*104|0)+80>>2];A=e+(g*104|0)+56|0;f[A>>2]=+f[e+(g*104|0)+72>>2]*C+ +f[A>>2];A=e+(g*104|0)+60|0;f[A>>2]=D+ +f[A>>2];A=e+(g*104|0)+64|0;f[A>>2]=E+ +f[A>>2]}}g=g+1|0}while((g|0)!=(y|0))}else{e=c[F+720>>2]|0;g=0;do{if(+f[e+(g*104|0)+88>>2]>0.0){if(n!=0.0){C=k*+f[e+(g*104|0)+92>>2];D=C*+f[e+(g*104|0)+76>>2];E=C*+f[e+(g*104|0)+80>>2];A=e+(g*104|0)+56|0;f[A>>2]=+f[e+(g*104|0)+72>>2]*C+ +f[A>>2];A=e+(g*104|0)+60|0;f[A>>2]=D+ +f[A>>2];A=e+(g*104|0)+64|0;f[A>>2]=E+ +f[A>>2]}if(o>0.0){C=j*+f[e+(g*104|0)+92>>2];D=C*+f[e+(g*104|0)+76>>2];E=C*+f[e+(g*104|0)+80>>2];A=e+(g*104|0)+56|0;f[A>>2]=+f[e+(g*104|0)+72>>2]*C+ +f[A>>2];A=e+(g*104|0)+60|0;f[A>>2]=D+ +f[A>>2];A=e+(g*104|0)+64|0;f[A>>2]=E+ +f[A>>2]}}g=g+1|0}while((g|0)!=(y|0))}e=c[F+752>>2]|0;if((e|0)>0){g=0;do{B=+f[F+452>>2];o=+f[F+304>>2];m=+f[F+300>>2];a:do if((o>0.0|m>0.0?(H=c[F+288>>2]|0,(H|0)>3):0)?(I=c[F+760>>2]|0,J=c[I+(g*44|0)+8>>2]|0,K=c[I+(g*44|0)+12>>2]|0,L=+f[J+40>>2],M=+f[J+44>>2],N=+f[J+48>>2],O=c[I+(g*44|0)+16>>2]|0,P=c[c[F+684>>2]>>2]|0,U=(L+ +f[K+40>>2]+ +f[O+40>>2])*.3333333432674408-+f[F+1212>>2],W=(M+ +f[K+44>>2]+ +f[O+44>>2])*.3333333432674408-+f[F+1216>>2],V=(N+ +f[K+48>>2]+ +f[O+48>>2])*.3333333432674408-+f[F+1220>>2],Q=+s(+(U*U+W*W+V*V)),U*U+W*W+V*V>1.1920928955078125e-07):0){u=U*(1.0/Q);w=W*(1.0/Q);x=V*(1.0/Q);p=+f[I+(g*44|0)+20>>2];q=+f[I+(g*44|0)+24>>2];t=+f[I+(g*44|0)+28>>2];switch(H|0){case 5:break;case 4:case 6:{j=U*p+W*q+V*t<0.0?-1.0:1.0;if(!(V*(t*j)+(U*(p*j)+W*(q*j))>0.0))break a;n=-((U*U+W*W+V*V)*((V*(t*j)+(U*(p*j)+W*(q*j)))*+f[I+(g*44|0)+36>>2])*(c[h>>2]=P,+f[h>>2]));u=(u*(m*n)+(p*j*(o*n)+0.0))*.3333333432674408;p=(w*(m*n)+(q*j*(o*n)+0.0))*.3333333432674408;o=(x*(m*n)+(t*j*(o*n)+0.0))*.3333333432674408;n=1.0/+s(+(o*o+(u*u+p*p)));j=B*+f[J+88>>2];if(o*j*(o*j)+(u*j*(u*j)+p*j*(p*j))>L*L+M*M+N*N){f[J+56>>2]=+f[J+56>>2]-1.0/j*(u*n*(u*n*L+p*n*M+o*n*N));f[J+60>>2]=+f[J+60>>2]-1.0/j*(p*n*(u*n*L+p*n*M+o*n*N));f[J+64>>2]=+f[J+64>>2]-1.0/j*(o*n*(u*n*L+p*n*M+o*n*N))}else{f[J+56>>2]=u+ +f[J+56>>2];f[J+60>>2]=p+ +f[J+60>>2];f[J+64>>2]=o+ +f[J+64>>2]}m=B*+f[K+88>>2];j=+f[K+40>>2];k=+f[K+44>>2];l=+f[K+48>>2];if(o*m*(o*m)+(u*m*(u*m)+p*m*(p*m))>j*j+k*k+l*l){f[K+56>>2]=+f[K+56>>2]-1.0/m*(u*n*(u*n*j+p*n*k+o*n*l));f[K+60>>2]=+f[K+60>>2]-1.0/m*(p*n*(u*n*j+p*n*k+o*n*l));f[K+64>>2]=+f[K+64>>2]-1.0/m*(o*n*(u*n*j+p*n*k+o*n*l))}else{f[K+56>>2]=u+ +f[K+56>>2];f[K+60>>2]=p+ +f[K+60>>2];f[K+64>>2]=o+ +f[K+64>>2]}m=B*+f[O+88>>2];j=+f[O+40>>2];k=+f[O+44>>2];l=+f[O+48>>2];if(o*m*(o*m)+(u*m*(u*m)+p*m*(p*m))>j*j+k*k+l*l){f[O+56>>2]=+f[O+56>>2]-1.0/m*(u*n*(u*n*j+p*n*k+o*n*l));f[O+60>>2]=+f[O+60>>2]-1.0/m*(p*n*(u*n*j+p*n*k+o*n*l));f[O+64>>2]=+f[O+64>>2]-1.0/m*(o*n*(u*n*j+p*n*k+o*n*l));break a}else{f[O+56>>2]=u+ +f[O+56>>2];f[O+60>>2]=p+ +f[O+60>>2];f[O+64>>2]=o+ +f[O+64>>2];break a}}default:break a}n=U*p+W*q+V*t<0.0?-1.0:1.0;k=x*(t*n)+(u*(p*n)+w*(q*n));l=+f[I+(g*44|0)+36>>2]*.5;j=(c[h>>2]=P,+f[h>>2]);m=k*((U*U+W*W+V*V)*(m*.5*j)*l);if(k>0.0&k<.9847999811172485){C=+s(+(1.0-k*k))*(o*.5*j*Q*l);D=(x*(u*(t*n)-x*(p*n))-w*(w*(p*n)-u*(q*n)))*C*.3333333432674408;E=(u*(w*(p*n)-u*(q*n))-x*(x*(q*n)-w*(t*n)))*C*.3333333432674408;C=(w*(x*(q*n)-w*(t*n))-u*(u*(t*n)-x*(p*n)))*C*.3333333432674408}else{D=0.0;E=0.0;C=0.0}j=+f[J+88>>2];if(j>0.0){j=x*m*-.3333333432674408*j*B*(x*m*-.3333333432674408*j*B)+(u*m*-.3333333432674408*j*B*(u*m*-.3333333432674408*j*B)+w*m*-.3333333432674408*j*B*(w*m*-.3333333432674408*j*B));if(j>0.0?j>=L*L+M*M+N*N:0){j=+s(+(L*L+M*M+N*N))/+s(+j)*.800000011920929;l=u*m*-.3333333432674408*j;k=w*m*-.3333333432674408*j;j=x*m*-.3333333432674408*j}else{l=u*m*-.3333333432674408;k=w*m*-.3333333432674408;j=x*m*-.3333333432674408}x=k+ +f[J+60>>2];B=j+ +f[J+64>>2];f[J+56>>2]=D+(l+ +f[J+56>>2]);f[J+60>>2]=E+x;f[J+64>>2]=C+B}else{l=u*m*-.3333333432674408;k=w*m*-.3333333432674408;j=x*m*-.3333333432674408}m=+f[K+88>>2];if(m>0.0){p=+f[F+452>>2];q=l*m*p;t=k*m*p;p=j*m*p;m=+f[K+40>>2];n=+f[K+44>>2];o=+f[K+48>>2];if(p*p+(q*q+t*t)>0.0?p*p+(q*q+t*t)>=m*m+n*n+o*o:0){B=+s(+(m*m+n*n+o*o))/+s(+(p*p+(q*q+t*t)))*.800000011920929;l=l*B;k=k*B;j=j*B}x=k+ +f[K+60>>2];B=j+ +f[K+64>>2];f[K+56>>2]=D+(l+ +f[K+56>>2]);f[K+60>>2]=E+x;f[K+64>>2]=C+B}m=+f[O+88>>2];if(m>0.0){p=+f[F+452>>2];q=l*m*p;t=k*m*p;p=j*m*p;m=+f[O+40>>2];n=+f[O+44>>2];o=+f[O+48>>2];if(p*p+(q*q+t*t)>0.0?p*p+(q*q+t*t)>=m*m+n*n+o*o:0){B=+s(+(m*m+n*n+o*o))/+s(+(p*p+(q*q+t*t)))*.800000011920929;l=l*B;k=k*B;j=j*B}x=k+ +f[O+60>>2];B=j+ +f[O+64>>2];f[O+56>>2]=D+(l+ +f[O+56>>2]);f[O+60>>2]=E+x;f[O+64>>2]=C+B}}while(0);g=g+1|0}while((g|0)!=(e|0))}e=c[2685]|0;A=(c[e+16>>2]|0)+-1|0;c[e+16>>2]=A;do if(!A){if(c[e+4>>2]|0){Y(X+128|0,0)|0;A=c[6746]|0;f[e+8>>2]=+f[e+8>>2]+ +(((c[X+128+4>>2]|0)-(c[A+4>>2]|0)+(((c[X+128>>2]|0)-(c[A>>2]|0)|0)*1e6|0)-(c[e+12>>2]|0)|0)>>>0)/1.0e3;if(c[e+16>>2]|0)break;e=c[2685]|0}c[2685]=c[e+20>>2]}while(0);e=c[F+712>>2]|0;if((e|0)>0){g=0;do{z=c[F+720>>2]|0;y=z+(g*104|0)+8|0;A=z+(g*104|0)+24|0;c[A>>2]=c[y>>2];c[A+4>>2]=c[y+4>>2];c[A+8>>2]=c[y+8>>2];c[A+12>>2]=c[y+12>>2];A=z+(g*104|0)+56|0;D=+f[z+(g*104|0)+88>>2];E=+f[F+452>>2];B=+f[A>>2]*D*E;C=D*+f[z+(g*104|0)+60>>2]*E;D=E*(D*+f[z+(g*104|0)+64>>2]);E=+f[(c[F+684>>2]|0)+12>>2]/E;B=B>E?E:B;C=C>E?E:C;D=D>E?E:D;v=z+(g*104|0)+40|0;B=(B<-E?-E:B)+ +f[v>>2];f[v>>2]=B;v=z+(g*104|0)+44|0;C=(C<-E?-E:C)+ +f[v>>2];f[v>>2]=C;v=z+(g*104|0)+48|0;D=(D<-E?-E:D)+ +f[v>>2];f[v>>2]=D;E=+f[F+452>>2];f[y>>2]=B*E+ +f[y>>2];y=z+(g*104|0)+12|0;f[y>>2]=C*E+ +f[y>>2];z=z+(g*104|0)+16|0;f[z>>2]=D*E+ +f[z>>2];c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;c[A+12>>2]=0;g=g+1|0}while((g|0)!=(e|0))}Kb(F);e=c[F+928>>2]|0;if(e){A=c[F+192>>2]|0;C=+ha[c[(c[A>>2]|0)+48>>2]&15](A);E=+f[e+4>>2]-C;D=+f[e+8>>2]-C;f[F+892>>2]=+f[e>>2]-C;f[F+896>>2]=E;f[F+900>>2]=D;f[F+904>>2]=0.0;D=C+ +f[e+20>>2];E=C+ +f[e+24>>2];f[F+908>>2]=C+ +f[e+16>>2];f[F+912>>2]=D;f[F+916>>2]=E;f[F+920>>2]=0.0;e=c[F+188>>2]|0;if(e|0){A=c[F+684>>2]|0;z=c[A+32>>2]|0;Ta[c[(c[z>>2]|0)+16>>2]&31](z,e,F+892|0,F+908|0,c[A+36>>2]|0)}}else{c[F+892>>2]=0;c[F+892+4>>2]=0;c[F+892+8>>2]=0;c[F+892+12>>2]=0;c[F+892+16>>2]=0;c[F+892+20>>2]=0;c[F+892+24>>2]=0;c[F+892+28>>2]=0}e=c[F+712>>2]|0;if((e|0)>0){g=0;do{z=c[F+720>>2]|0;D=+f[F+464>>2];B=+f[z+(g*104|0)+8>>2];E=+f[z+(g*104|0)+12>>2];C=+f[z+(g*104|0)+16>>2];f[X>>2]=B-D;f[X+4>>2]=E-D;f[X+8>>2]=C-D;f[X+12>>2]=0.0;f[X+16>>2]=D+B;f[X+20>>2]=D+E;f[X+24>>2]=D+C;f[X+28>>2]=0.0;A=c[z+(g*104|0)+96>>2]|0;C=+f[F+460>>2];D=C*+f[z+(g*104|0)+44>>2];E=C*+f[z+(g*104|0)+48>>2];f[X+128>>2]=+f[z+(g*104|0)+40>>2]*C;f[X+128+4>>2]=D;f[X+128+8>>2]=E;f[X+128+12>>2]=0.0;rg(F+928|0,A,X,X+128|0,+f[F+468>>2])|0;g=g+1|0}while((g|0)!=(e|0))}if(c[F+988>>2]|0?(c[F+752>>2]|0)>0:0){e=0;do{A=c[F+760>>2]|0;v=c[A+(e*44|0)+8>>2]|0;y=c[A+(e*44|0)+12>>2]|0;z=c[A+(e*44|0)+16>>2]|0;B=(+f[v+40>>2]+ +f[y+40>>2]+ +f[z+40>>2])*.3333333432674408;C=(+f[v+44>>2]+ +f[y+44>>2]+ +f[z+44>>2])*.3333333432674408;D=(+f[v+48>>2]+ +f[y+48>>2]+ +f[z+48>>2])*.3333333432674408;t=+f[F+464>>2];o=+f[v+8>>2];q=+f[v+12>>2];w=+f[v+16>>2];E=+f[v+20>>2];x=+f[y+8>>2];j=x>2];k=u>2];l=p>2];m=n>2];p=+f[z+12>>2];u=+f[z+16>>2];x=+f[z+20>>2];f[X>>2]=(n>2]=(p>2]=(u>2]=x>2]=t+(o>2]=t+(q>2]=t+(w>2]=E>2]|0;E=+f[F+460>>2];f[X+128>>2]=B*E;f[X+128+4>>2]=C*E;f[X+128+8>>2]=D*E;f[X+128+12>>2]=0.0;rg(F+988|0,A,X,X+128|0,+f[F+468>>2])|0;e=e+1|0}while((e|0)<(c[F+752>>2]|0))}do if(a[F+473>>0]|0){A=c[F+712>>2]|0;if((A|0)>0){e=c[F+720>>2]|0;g=c[F+512>>2]|0;k=0.0;l=0.0;j=0.0;i=0;do{E=+f[g+(i<<2)>>2];j=j+ +f[e+(i*104|0)+8>>2]*E;k=k+E*+f[e+(i*104|0)+12>>2];l=l+E*+f[e+(i*104|0)+16>>2];i=i+1|0}while((i|0)!=(A|0))}else{j=0.0;k=0.0;l=0.0}f[F+520>>2]=j;f[F+524>>2]=k;f[F+528>>2]=l;f[F+532>>2]=0.0;y=X+128+4|0;z=y+44|0;do{c[y>>2]=0;y=y+4|0}while((y|0)<(z|0));f[X+128>>2]=1.1920928955078125e-07;f[X+128+20>>2]=2.384185791015625e-07;f[X+128+40>>2]=3.5762786865234375e-07;if((A|0)>0){e=c[F+512>>2]|0;g=c[F+720>>2]|0;i=c[F+492>>2]|0;m=1.1920928955078125e-07;n=0.0;o=0.0;p=0.0;q=2.384185791015625e-07;t=0.0;u=0.0;w=0.0;x=3.5762786865234375e-07;v=0;do{D=+f[e+(v<<2)>>2];_=(+f[g+(v*104|0)+8>>2]-j)*D;Z=(+f[g+(v*104|0)+12>>2]-k)*D;D=D*(+f[g+(v*104|0)+16>>2]-l);B=+f[i+(v<<4)>>2];C=+f[i+(v<<4)+4>>2];E=+f[i+(v<<4)+8>>2];m=_*B+m;n=_*C+n;o=_*E+o;p=Z*B+p;q=Z*C+q;t=Z*E+t;u=D*B+u;w=D*C+w;x=D*E+x;v=v+1|0}while((v|0)!=(A|0));f[X+128>>2]=m;f[X+128+4>>2]=n;f[X+128+8>>2]=o;f[X+128+16>>2]=p;f[X+128+20>>2]=q;f[X+128+24>>2]=t;f[X+128+32>>2]=u;f[X+128+36>>2]=w;f[X+128+40>>2]=x}if((a[24920]|0)==0?DC(24920)|0:0){f[6392]=9.999999747378752e-05;c[6393]=16;PB(24920)}bc(X+128|0,X+80|0,X+32|0);c[F+536>>2]=c[X+80>>2];c[F+536+4>>2]=c[X+80+4>>2];c[F+536+8>>2]=c[X+80+8>>2];c[F+536+12>>2]=c[X+80+12>>2];c[F+552>>2]=c[R>>2];c[F+552+4>>2]=c[R+4>>2];c[F+552+8>>2]=c[R+8>>2];c[F+552+12>>2]=c[R+12>>2];c[F+568>>2]=c[S>>2];c[F+568+4>>2]=c[S+4>>2];c[F+568+8>>2]=c[S+8>>2];c[F+568+12>>2]=c[S+12>>2];da=+f[X+80>>2];$=+f[R>>2];C=+f[S>>2];ca=+f[X+80+4>>2];w=+f[X+80+20>>2];E=+f[X+80+36>>2];ba=+f[X+80+8>>2];x=+f[X+80+24>>2];_=+f[X+80+40>>2];q=+f[F+632>>2];t=+f[F+636>>2];u=+f[F+640>>2];la=+f[F+648>>2];ka=+f[F+652>>2];p=+f[F+656>>2];D=+f[F+664>>2];Z=+f[F+668>>2];j=+f[F+672>>2];ja=+f[X+128>>2];ia=+f[X+128+16>>2];o=+f[X+128+32>>2];m=(da*q+ca*t+ba*u)*ja+($*q+w*t+x*u)*ia+(C*q+E*t+_*u)*o;ga=+f[X+128+4>>2];fa=+f[X+128+20>>2];n=+f[X+128+36>>2];l=(da*q+ca*t+ba*u)*ga+($*q+w*t+x*u)*fa+(C*q+E*t+_*u)*n;aa=+f[X+128+8>>2];B=+f[X+128+24>>2];k=+f[X+128+40>>2];u=(da*q+ca*t+ba*u)*aa+($*q+w*t+x*u)*B+(C*q+E*t+_*u)*k;t=(da*la+ca*ka+ba*p)*ja+($*la+w*ka+x*p)*ia+(C*la+E*ka+_*p)*o;q=(da*la+ca*ka+ba*p)*ga+($*la+w*ka+x*p)*fa+(C*la+E*ka+_*p)*n;p=(da*la+ca*ka+ba*p)*aa+($*la+w*ka+x*p)*B+(C*la+E*ka+_*p)*k;o=ja*(da*D+ca*Z+ba*j)+ia*($*D+w*Z+x*j)+(C*D+E*Z+_*j)*o;n=(da*D+ca*Z+ba*j)*ga+($*D+w*Z+x*j)*fa+(C*D+E*Z+_*j)*n;k=(da*D+ca*Z+ba*j)*aa+($*D+w*Z+x*j)*B+(C*D+E*Z+_*j)*k;f[F+584>>2]=m;f[F+588>>2]=l;f[F+592>>2]=u;f[F+596>>2]=0.0;f[F+600>>2]=t;f[F+604>>2]=q;f[F+608>>2]=p;f[F+612>>2]=0.0;f[F+616>>2]=o;f[F+620>>2]=n;f[F+624>>2]=k;f[F+628>>2]=0.0;j=+f[F+364>>2];if(j>1.0){la=1.0/(u*(n*t-q*o)+(m*(q*k-p*n)+l*(p*o-k*t)))<1.0?1.0:j<1.0/(u*(n*t-q*o)+(m*(q*k-p*n)+l*(p*o-k*t)))?j:1.0/(u*(n*t-q*o)+(m*(q*k-p*n)+l*(p*o-k*t)));f[F+584>>2]=m*la;f[F+588>>2]=l*la;f[F+592>>2]=u*la;f[F+596>>2]=0.0;f[F+600>>2]=t*la;f[F+604>>2]=q*la;f[F+608>>2]=p*la;f[F+612>>2]=0.0;f[F+616>>2]=o*la;f[F+620>>2]=n*la;f[F+624>>2]=k*la;f[F+628>>2]=0.0}if(a[F+473>>0]|0){if(!(+f[F+320>>2]>0.0))break;j=+f[F+536>>2];n=+f[F+540>>2];o=+f[F+544>>2];p=+f[F+552>>2];q=+f[F+556>>2];t=+f[F+560>>2];k=+f[F+568>>2];l=+f[F+572>>2];m=+f[F+576>>2];e=c[F+712>>2]|0;if((e|0)<=0)break;i=0;do{g=c[F+720>>2]|0;if(+f[g+(i*104|0)+88>>2]>0.0){y=c[F+492>>2]|0;fa=+f[y+(i<<4)>>2];ga=+f[y+(i<<4)+4>>2];ia=+f[y+(i<<4)+8>>2];da=+f[F+320>>2];y=g+(i*104|0)+8|0;ja=+f[y>>2];z=g+(i*104|0)+12|0;ka=+f[z>>2];A=g+(i*104|0)+16|0;la=+f[A>>2];ka=ka+da*(p*fa+q*ga+t*ia+ +f[F+524>>2]-ka);la=la+da*(k*fa+l*ga+m*ia+ +f[F+528>>2]-la);f[y>>2]=ja+da*(+f[F+520>>2]+(j*fa+n*ga+o*ia)-ja);f[z>>2]=ka;f[A>>2]=la;f[g+(i*104|0)+20>>2]=0.0}i=i+1|0}while((i|0)!=(e|0))}}while(0);y=X+128|0;z=y+104|0;do{c[y>>2]=0;y=y+4|0}while((y|0)<(z|0));e=c[F+812>>2]|0;if((e|0)<0){if((c[F+816>>2]|0)<0){g=c[F+820>>2]|0;if(g|0){if(a[F+824>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[F+820>>2]=0}a[F+824>>0]=1;c[F+820>>2]=0;c[F+816>>2]=0}do{A=c[F+820>>2]|0;z=A+(e*104|0)|0;c[z>>2]=c[X+128>>2];c[z+4>>2]=c[X+128+4>>2];c[z+8>>2]=c[X+128+8>>2];c[z+12>>2]=c[X+128+12>>2];c[z+16>>2]=c[X+128+16>>2];c[z+20>>2]=c[X+128+20>>2];c[z+24>>2]=c[X+128+24>>2];z=A+(e*104|0)+28|0;c[z>>2]=c[X+128+28>>2];c[z+4>>2]=c[X+128+28+4>>2];c[z+8>>2]=c[X+128+28+8>>2];c[z+12>>2]=c[X+128+28+12>>2];z=A+(e*104|0)+44|0;c[z>>2]=c[X+128+44>>2];c[z+4>>2]=c[X+128+44+4>>2];c[z+8>>2]=c[X+128+44+8>>2];c[z+12>>2]=c[X+128+44+12>>2];z=A+(e*104|0)+60|0;c[z>>2]=c[X+128+60>>2];c[z+4>>2]=c[X+128+60+4>>2];c[z+8>>2]=c[X+128+60+8>>2];c[z+12>>2]=c[X+128+60+12>>2];A=A+(e*104|0)+76|0;c[A>>2]=c[T>>2];c[A+4>>2]=c[T+4>>2];c[A+8>>2]=c[T+8>>2];c[A+12>>2]=c[T+12>>2];c[A+16>>2]=c[T+16>>2];c[A+20>>2]=c[T+20>>2];c[A+24>>2]=c[T+24>>2];e=e+1|0}while((e|0)!=0)}c[F+812>>2]=0;y=X+128|0;z=y+56|0;do{c[y>>2]=0;y=y+4|0}while((y|0)<(z|0));e=c[F+832>>2]|0;if((e|0)<0){if((c[F+836>>2]|0)<0){g=c[F+840>>2]|0;if(g|0){if(a[F+844>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[F+840>>2]=0}a[F+844>>0]=1;c[F+840>>2]=0;c[F+836>>2]=0}do{y=(c[F+840>>2]|0)+(e*56|0)|0;g=X+128|0;z=y+56|0;do{c[y>>2]=c[g>>2];y=y+4|0;g=g+4|0}while((y|0)<(z|0));e=e+1|0}while((e|0)!=0)}c[F+832>>2]=0;lf(F+928|0,1);lf(F+988|0,1);lf(F+1048|0,1);e=c[b+24>>2]|0}}G=G+1|0}while((G|0)<(e|0));ea=X;return}function gb(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;ie(b,e,f)|0;F=c[b+872>>2]|0;c[e+292>>2]=F;if(F){F=ta[c[(c[f>>2]|0)+28>>2]&31](f,b+868|0)|0;c[e+260>>2]=F;if(F|0){h=c[e+292>>2]|0;m=va[c[(c[f>>2]|0)+16>>2]&63](f,4,h)|0;if((h|0)>0){k=0;l=c[m+8>>2]|0;while(1){i=c[(c[b+880>>2]|0)+(k<<2)>>2]|0;if(!i){g=0;j=0}else{g=i;j=ta[c[(c[f>>2]|0)+28>>2]&31](f,i)|0}c[l>>2]=j;if(!(ta[c[(c[f>>2]|0)+24>>2]&31](f,g)|0)){F=va[c[(c[f>>2]|0)+16>>2]&63](f,16,1)|0;E=c[F+8>>2]|0;c[E+12>>2]=c[i+16>>2];c[E+4>>2]=c[i+8>>2];c[E>>2]=c[i+4>>2];c[E+8>>2]=c[i+12>>2];Ta[c[(c[f>>2]|0)+20>>2]&31](f,F,13324,1414349395,g)}k=k+1|0;if((k|0)>=(h|0)){g=f;break}else l=l+4|0}}else g=f;Ta[c[(c[g>>2]|0)+20>>2]&31](f,m,13324,1497453121,b+868|0)}}else c[e+260>>2]=0;F=c[b+712>>2]|0;c[e+296>>2]=F;if(F){F=ta[c[(c[f>>2]|0)+28>>2]&31](f,b+708|0)|0;c[e+264>>2]=F;if(!F){x=0;h=0;i=0;j=0;k=0}else{C=c[e+296>>2]|0;F=va[c[(c[f>>2]|0)+16>>2]&63](f,100,C)|0;if((C|0)>0){n=0;u=0;D=0;p=0;t=0;s=0;g=0;h=0;A=0;y=0;x=0;i=0;B=0;j=0;k=0;E=c[F+8>>2]|0;while(1){l=c[b+720>>2]|0;c[E+52>>2]=c[l+(D*104|0)+56>>2];c[E+56>>2]=c[l+(D*104|0)+60>>2];c[E+60>>2]=c[l+(D*104|0)+64>>2];c[E+64>>2]=c[l+(D*104|0)+68>>2];c[E+88>>2]=c[l+(D*104|0)+92>>2];m=a[l+(D*104|0)+100>>0]<<7&255;c[E+92>>2]=(7?m<<24>>24>>7:m<<24>>24)<<24>>24;c[E+84>>2]=c[l+(D*104|0)+88>>2];m=c[l+(D*104|0)+4>>2]|0;if(!m)m=0;else{m=ta[c[(c[f>>2]|0)+28>>2]&31](f,m)|0;l=c[b+720>>2]|0}c[E>>2]=m;r=l+(D*104|0)|0;c[E+68>>2]=c[l+(D*104|0)+72>>2];c[E+72>>2]=c[l+(D*104|0)+76>>2];c[E+76>>2]=c[l+(D*104|0)+80>>2];c[E+80>>2]=c[l+(D*104|0)+84>>2];c[E+4>>2]=c[l+(D*104|0)+8>>2];c[E+8>>2]=c[l+(D*104|0)+12>>2];c[E+12>>2]=c[l+(D*104|0)+16>>2];c[E+16>>2]=c[l+(D*104|0)+20>>2];c[E+20>>2]=c[l+(D*104|0)+24>>2];c[E+24>>2]=c[l+(D*104|0)+28>>2];c[E+28>>2]=c[l+(D*104|0)+32>>2];c[E+32>>2]=c[l+(D*104|0)+36>>2];c[E+36>>2]=c[l+(D*104|0)+40>>2];c[E+40>>2]=c[l+(D*104|0)+44>>2];c[E+44>>2]=c[l+(D*104|0)+48>>2];c[E+48>>2]=c[l+(D*104|0)+52>>2];v=((10?r+~(r<<15)>>10:r+~(r<<15)|0)^r+~(r<<15))*9|0;v=(6?v>>6:v)^v;v=(16?v+~(v<<11)>>16:v+~(v<<11)|0)^v+~(v<<11);q=v&j+-1;a:do if(q>>>0>>0?(I=c[h+(q<<2)>>2]|0,(I|0)!=-1):0){l=I;while(1){if((c[g+(l<<3)>>2]|0)==(r|0))break;l=c[i+(l<<2)>>2]|0;if((l|0)==-1){J=27;break a}}c[k+(l<<2)>>2]=D;o=u;r=A;l=y;m=x;q=B}else J=27;while(0);if((J|0)==27){J=0;do if((B|0)==(j|0)){m=(j|0)==0?1:j<<1;if((j|0)<(m|0)){if((m|0)!=0?(c[6747]=(c[6747]|0)+1,G=kb((m<<2|3)+16|0)|0,(G|0)!=0):0){c[(G+4+15&-16)+-4>>2]=G;o=G+4+15&-16}else o=0;if((j|0)<=0){if(!k){l=j;z=m;k=o;break}}else{l=0;do{c[o+(l<<2)>>2]=c[k+(l<<2)>>2];l=l+1|0}while((l|0)!=(j|0))}c[6748]=(c[6748]|0)+1;uc(c[k+-4>>2]|0);l=j;z=m;k=o}else{l=j;z=j}}else{l=B;z=j}while(0);c[k+(l<<2)>>2]=D;w=B+1|0;do if((t|0)==(s|0)){l=(t|0)==0?1:t<<1;if((t|0)<(l|0)){if((l|0)!=0?(c[6747]=(c[6747]|0)+1,H=kb((l<<3|3)+16|0)|0,(H|0)!=0):0){c[(H+4+15&-16)+-4>>2]=H;o=H+4+15&-16}else o=0;if((t|0)<=0){if(!g){s=l;g=o;break}}else{m=0;do{L=g+(m<<3)|0;K=c[L+4>>2]|0;s=o+(m<<3)|0;c[s>>2]=c[L>>2];c[s+4>>2]=K;m=m+1|0}while((m|0)!=(t|0))}c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0);s=l;g=o}else s=t}while(0);c[g+(t<<3)>>2]=r;t=t+1|0;if((j|0)<(z|0)){if((A|0)<(z|0)){do if((p|0)<(z|0)){do if(!z)l=0;else{c[6747]=(c[6747]|0)+1;j=kb((z<<2|3)+16|0)|0;if(!j){l=0;break}c[(j+4+15&-16)+-4>>2]=j;l=j+4+15&-16}while(0);if((A|0)<=0){if(!h){q=l;p=z;h=l;break}}else{j=0;do{c[l+(j<<2)>>2]=c[h+(j<<2)>>2];j=j+1|0}while((j|0)!=(A|0))}c[6748]=(c[6748]|0)+1;uc(c[h+-4>>2]|0);q=l;p=z;h=l}else q=u;while(0);o=z<<2;hk(h+(A<<2)|0,0,o-(A<<2)|0)|0;if((y|0)<(z|0)){do if((x|0)<(z|0)){do if(!z)l=0;else{c[6747]=(c[6747]|0)+1;j=kb((o|3)+16|0)|0;if(!j){l=0;break}c[(j+4+15&-16)+-4>>2]=j;l=j+4+15&-16}while(0);if((y|0)<=0){if(!i){j=l;m=z;i=l;break}}else{j=0;do{c[l+(j<<2)>>2]=c[i+(j<<2)>>2];j=j+1|0}while((j|0)!=(y|0))}c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0);j=l;m=z;i=l}else{j=n;m=x}while(0);hk(i+(y<<2)|0,0,o-(y<<2)|0)|0;n=j}else m=x;if((z|0)>0){hk(q|0,-1,o|0)|0;hk(n|0,-1,o|0)|0}if((A|0)>0){l=z+-1|0;j=0;do{L=c[g+(j<<3)>>2]|0;L=((10?L+~(L<<15)>>10:L+~(L<<15)|0)^L+~(L<<15))*9|0;L=(6?L>>6:L)^L;L=h+((((16?L+~(L<<11)>>16:L+~(L<<11)|0)^L+~(L<<11))&l)<<2)|0;c[i+(j<<2)>>2]=c[L>>2];c[L>>2]=j;j=j+1|0}while((j|0)!=(A|0));o=q;j=z;l=z}else{o=q;j=z;l=z}}else{o=u;j=A;l=y;m=x}q=v&z+-1}else{o=u;j=A;l=y;m=x}r=h+(q<<2)|0;c[i+(B<<2)>>2]=c[r>>2];c[r>>2]=B;r=j;q=w;j=z}D=D+1|0;if((D|0)>=(C|0))break;else{u=o;A=r;y=l;x=m;B=q;E=E+100|0}}}else{g=0;h=0;i=0;j=0;k=0}Ta[c[(c[f>>2]|0)+20>>2]&31](f,F,13345,1145979475,b+708|0);x=g}}else{c[e+264>>2]=0;x=0;h=0;i=0;j=0;k=0}L=c[b+732>>2]|0;c[e+300>>2]=L;if(L){L=ta[c[(c[f>>2]|0)+28>>2]&31](f,c[b+740>>2]|0)|0;c[e+268>>2]=L;if(L|0){n=c[e+300>>2]|0;q=va[c[(c[f>>2]|0)+16>>2]&63](f,20,n)|0;if((n|0)>0){g=c[b+740>>2]|0;m=g;o=0;p=c[q+8>>2]|0;while(1){l=a[m+(o*52|0)+20>>0]<<7&255;c[p+16>>2]=(7?l<<24>>24>>7:l<<24>>24)<<24>>24;l=c[m+(o*52|0)+4>>2]|0;if(!l)l=0;else{l=ta[c[(c[f>>2]|0)+28>>2]&31](f,l)|0;g=c[b+740>>2]|0;m=g}c[p>>2]=l;l=c[m+(o*52|0)+8>>2]|0;if(!l)l=-1;else l=(l-(c[b+720>>2]|0)|0)/104|0;c[p+4>>2]=l;l=c[m+(o*52|0)+12>>2]|0;if(!l)l=-1;else l=(l-(c[b+720>>2]|0)|0)/104|0;c[p+8>>2]=l;c[p+12>>2]=c[m+(o*52|0)+16>>2];o=o+1|0;if((o|0)>=(n|0))break;else p=p+20|0}}else g=c[b+740>>2]|0;Ta[c[(c[f>>2]|0)+20>>2]&31](f,q,13362,1497453121,g)}}else c[e+268>>2]=0;L=c[b+752>>2]|0;c[e+304>>2]=L;if(L){L=ta[c[(c[f>>2]|0)+28>>2]&31](f,c[b+760>>2]|0)|0;c[e+272>>2]=L;if(L|0){n=c[e+304>>2]|0;q=va[c[(c[f>>2]|0)+16>>2]&63](f,36,n)|0;if((n|0)>0){g=c[b+760>>2]|0;m=g;o=0;p=c[q+8>>2]|0;while(1){l=c[m+(o*44|0)+4>>2]|0;if(!l)l=0;else{l=ta[c[(c[f>>2]|0)+28>>2]&31](f,l)|0;g=c[b+760>>2]|0;m=g}c[p+16>>2]=l;c[p>>2]=c[m+(o*44|0)+20>>2];c[p+4>>2]=c[m+(o*44|0)+24>>2];c[p+8>>2]=c[m+(o*44|0)+28>>2];c[p+12>>2]=c[m+(o*44|0)+32>>2];l=c[m+(o*44|0)+8>>2]|0;if(!l)l=-1;else l=(l-(c[b+720>>2]|0)|0)/104|0;c[p+20>>2]=l;l=c[m+(o*44|0)+12>>2]|0;if(!l)l=-1;else l=(l-(c[b+720>>2]|0)|0)/104|0;c[p+24>>2]=l;l=c[m+(o*44|0)+16>>2]|0;if(!l)l=-1;else l=(l-(c[b+720>>2]|0)|0)/104|0;c[p+28>>2]=l;c[p+32>>2]=c[m+(o*44|0)+36>>2];o=o+1|0;if((o|0)>=(n|0))break;else p=p+36|0}}else g=c[b+760>>2]|0;Ta[c[(c[f>>2]|0)+20>>2]&31](f,q,13379,1497453121,g)}}else c[e+272>>2]=0;L=c[b+772>>2]|0;c[e+308>>2]=L;if(L){L=ta[c[(c[f>>2]|0)+28>>2]&31](f,c[b+780>>2]|0)|0;c[e+276>>2]=L;if(L|0){n=c[e+308>>2]|0;q=va[c[(c[f>>2]|0)+16>>2]&63](f,100,n)|0;if((n|0)>0){g=c[b+780>>2]|0;m=g;o=0;p=c[q+8>>2]|0;while(1){c[p>>2]=c[m+(o*104|0)+32>>2];c[p+4>>2]=c[m+(o*104|0)+36>>2];c[p+8>>2]=c[m+(o*104|0)+40>>2];c[p+12>>2]=c[m+(o*104|0)+44>>2];l=c[m+8>>2]|0;if(!l)l=-1;else l=(l-(c[b+720>>2]|0)|0)/104|0;c[p+68>>2]=l;c[p+16>>2]=c[m+(o*104|0)+48>>2];c[p+20>>2]=c[m+(o*104|0)+52>>2];c[p+24>>2]=c[m+(o*104|0)+56>>2];c[p+28>>2]=c[m+(o*104|0)+60>>2];l=c[m+116>>2]|0;if(!l)l=-1;else l=(l-(c[b+720>>2]|0)|0)/104|0;c[p+72>>2]=l;c[p+32>>2]=c[m+(o*104|0)+64>>2];c[p+36>>2]=c[m+(o*104|0)+68>>2];c[p+40>>2]=c[m+(o*104|0)+72>>2];c[p+44>>2]=c[m+(o*104|0)+76>>2];l=c[m+224>>2]|0;if(!l)l=-1;else l=(l-(c[b+720>>2]|0)|0)/104|0;c[p+76>>2]=l;c[p+48>>2]=c[m+(o*104|0)+80>>2];c[p+52>>2]=c[m+(o*104|0)+84>>2];c[p+56>>2]=c[m+(o*104|0)+88>>2];c[p+60>>2]=c[m+(o*104|0)+92>>2];l=c[m+332>>2]|0;if(!l)l=-1;else l=(l-(c[b+720>>2]|0)|0)/104|0;c[p+80>>2]=l;c[p+88>>2]=c[m+(o*104|0)+96>>2];c[p+92>>2]=c[m+(o*104|0)+100>>2];l=c[m+(o*104|0)+4>>2]|0;if(!l)l=0;else{l=ta[c[(c[f>>2]|0)+28>>2]&31](f,l)|0;g=c[b+780>>2]|0;m=g}c[p+64>>2]=l;c[p+84>>2]=c[m+(o*104|0)+24>>2];o=o+1|0;if((o|0)>=(n|0))break;else p=p+100|0}}else g=c[b+780>>2]|0;Ta[c[(c[f>>2]|0)+20>>2]&31](f,q,13396,1497453121,g)}}else c[e+276>>2]=0;L=c[b+792>>2]|0;c[e+312>>2]=L;if(L){L=ta[c[(c[f>>2]|0)+28>>2]&31](f,c[b+800>>2]|0)|0;c[e+280>>2]=L;if(!L)w=f;else{m=c[e+312>>2]|0;n=va[c[(c[f>>2]|0)+16>>2]&63](f,92,m)|0;if((m|0)>0){o=0;p=c[n+8>>2]|0;while(1){l=c[b+800>>2]|0;c[p>>2]=c[l+(o*96|0)+28>>2];c[p+4>>2]=c[l+(o*96|0)+32>>2];c[p+8>>2]=c[l+(o*96|0)+36>>2];c[p+12>>2]=c[l+(o*96|0)+40>>2];c[p+16>>2]=c[l+(o*96|0)+44>>2];c[p+20>>2]=c[l+(o*96|0)+48>>2];c[p+24>>2]=c[l+(o*96|0)+52>>2];c[p+28>>2]=c[l+(o*96|0)+56>>2];c[p+32>>2]=c[l+(o*96|0)+60>>2];c[p+36>>2]=c[l+(o*96|0)+64>>2];c[p+40>>2]=c[l+(o*96|0)+68>>2];c[p+44>>2]=c[l+(o*96|0)+72>>2];c[p+48>>2]=c[l+(o*96|0)+76>>2];c[p+52>>2]=c[l+(o*96|0)+80>>2];c[p+56>>2]=c[l+(o*96|0)+84>>2];c[p+60>>2]=c[l+(o*96|0)+88>>2];c[p+88>>2]=c[l+(o*96|0)+92>>2];c[p+64>>2]=c[l+(o*96|0)+4>>2];c[p+68>>2]=c[l+(o*96|0)+8>>2];c[p+72>>2]=c[l+(o*96|0)+12>>2];c[p+76>>2]=c[l+(o*96|0)+16>>2];g=c[l+(o*96|0)>>2]|0;if(!g)g=-1;else g=(g-(c[b+720>>2]|0)|0)/104|0;c[p+84>>2]=g;g=c[l+(o*96|0)+20>>2]|0;if(!g)g=0;else g=ta[c[(c[f>>2]|0)+28>>2]&31](f,g)|0;c[p+80>>2]=g;o=o+1|0;if((o|0)>=(m|0))break;else p=p+92|0}}Ta[c[(c[f>>2]|0)+20>>2]&31](f,n,13414,1497453121,c[b+800>>2]|0);w=f}}else{c[e+280>>2]=0;w=f}c[e+352>>2]=c[b+316>>2];c[e+328>>2]=c[b+292>>2];c[e+344>>2]=c[b+308>>2];c[e+324>>2]=c[b+288>>2];c[e+340>>2]=c[b+304>>2];c[e+336>>2]=c[b+300>>2];c[e+412>>2]=c[b+376>>2];c[e+416>>2]=c[b+380>>2];c[e+420>>2]=c[b+384>>2];c[e+408>>2]=c[b+372>>2];q=c[b+364>>2]|0;c[e+332>>2]=c[b+296>>2];c[e+356>>2]=c[b+320>>2];c[e+424>>2]=c[b+388>>2];c[e+348>>2]=c[b+312>>2];c[e+360>>2]=c[b+324>>2];c[e+364>>2]=c[b+328>>2];c[e+368>>2]=c[b+332>>2];c[e+372>>2]=c[b+336>>2];c[e+404>>2]=c[b+368>>2];c[e+400>>2]=q;c[e+376>>2]=c[b+340>>2];c[e+380>>2]=c[b+344>>2];c[e+384>>2]=c[b+348>>2];c[e+388>>2]=c[b+352>>2];c[e+392>>2]=c[b+356>>2];c[e+396>>2]=c[b+360>>2];c[e+256>>2]=ta[c[(c[w>>2]|0)+28>>2]&31](f,b+472|0)|0;q=va[c[(c[f>>2]|0)+16>>2]&63](f,192,1)|0;p=c[q+8>>2]|0;c[p+96>>2]=c[b+632>>2];c[p+100>>2]=c[b+636>>2];c[p+104>>2]=c[b+640>>2];c[p+108>>2]=c[b+644>>2];c[p+112>>2]=c[b+648>>2];c[p+116>>2]=c[b+652>>2];c[p+120>>2]=c[b+656>>2];c[p+124>>2]=c[b+660>>2];c[p+128>>2]=c[b+664>>2];c[p+132>>2]=c[b+668>>2];c[p+136>>2]=c[b+672>>2];c[p+140>>2]=c[b+676>>2];c[p+180>>2]=d[b+473>>0];c[p+176>>2]=d[b+472>>0];c[p+144>>2]=c[b+520>>2];c[p+148>>2]=c[b+524>>2];c[p+152>>2]=c[b+528>>2];c[p+156>>2]=c[b+532>>2];L=c[b+484>>2]|0;c[p+168>>2]=L;if(L){L=ta[c[(c[w>>2]|0)+28>>2]&31](f,c[b+492>>2]|0)|0;l=c[p+168>>2]|0;c[p+160>>2]=L;if(l|0){o=va[c[(c[f>>2]|0)+16>>2]&63](f,16,l)|0;if((l|0)>0){g=c[b+492>>2]|0;m=0;n=c[o+8>>2]|0;while(1){c[n>>2]=c[g+(m<<4)>>2];c[n+4>>2]=c[g+(m<<4)+4>>2];c[n+8>>2]=c[g+(m<<4)+8>>2];c[n+12>>2]=c[g+(m<<4)+12>>2];m=m+1|0;if((m|0)==(l|0))break;else n=n+16|0}}else g=c[b+492>>2]|0;Ta[c[(c[f>>2]|0)+20>>2]&31](f,o,22049,1497453121,g)}}else c[p+160>>2]=0;c[p+184>>2]=c[b+476>>2];c[p>>2]=c[b+536>>2];c[p+4>>2]=c[b+540>>2];c[p+8>>2]=c[b+544>>2];c[p+12>>2]=c[b+548>>2];c[p+16>>2]=c[b+552>>2];c[p+20>>2]=c[b+556>>2];c[p+24>>2]=c[b+560>>2];c[p+28>>2]=c[b+564>>2];c[p+32>>2]=c[b+568>>2];c[p+36>>2]=c[b+572>>2];c[p+40>>2]=c[b+576>>2];c[p+44>>2]=c[b+580>>2];c[p+48>>2]=c[b+584>>2];c[p+52>>2]=c[b+588>>2];c[p+56>>2]=c[b+592>>2];c[p+60>>2]=c[b+596>>2];c[p+64>>2]=c[b+600>>2];c[p+68>>2]=c[b+604>>2];c[p+72>>2]=c[b+608>>2];c[p+76>>2]=c[b+612>>2];c[p+80>>2]=c[b+616>>2];c[p+84>>2]=c[b+620>>2];c[p+88>>2]=c[b+624>>2];c[p+92>>2]=c[b+628>>2];L=c[b+504>>2]|0;c[p+172>>2]=L;if(L){L=ta[c[(c[w>>2]|0)+28>>2]&31](f,c[b+512>>2]|0)|0;n=c[p+172>>2]|0;c[p+164>>2]=L;if(n|0){o=va[c[(c[f>>2]|0)+16>>2]&63](f,4,n)|0;if((n|0)>0){g=c[b+512>>2]|0;l=0;m=c[o+8>>2]|0;while(1){c[m>>2]=c[g+(l<<2)>>2];l=l+1|0;if((l|0)==(n|0))break;else m=m+4|0}}else g=c[b+512>>2]|0;Ta[c[(c[f>>2]|0)+20>>2]&31](f,o,22387,1497453121,g)}}else c[p+164>>2]=0;Ta[c[(c[f>>2]|0)+20>>2]&31](f,q,13434,1497453121,b+472|0);L=c[b+1112>>2]|0;c[e+316>>2]=L;if(L){L=ta[c[(c[w>>2]|0)+28>>2]&31](f,c[c[b+1120>>2]>>2]|0)|0;u=c[e+316>>2]|0;c[e+284>>2]=L;if(u|0){v=va[c[(c[f>>2]|0)+16>>2]&63](f,348,u)|0;if((u|0)>0){t=j+-1|0;r=0;s=c[v+8>>2]|0;while(1){g=c[(c[b+1120>>2]|0)+(r<<2)>>2]|0;L=s+320|0;c[L>>2]=c[g+360>>2];c[s+256>>2]=c[g+332>>2];c[s+260>>2]=c[g+336>>2];c[s+264>>2]=c[g+340>>2];c[s+268>>2]=c[g+344>>2];c[s+344>>2]=c[g+380>>2];c[s+340>>2]=d[g+377>>0];c[s+160>>2]=c[g+228>>2];c[s+164>>2]=c[g+232>>2];c[s+168>>2]=c[g+236>>2];c[s+172>>2]=c[g+240>>2];c[s+336>>2]=d[g+376>>0];c[s+208>>2]=c[g+276>>2];c[s+212>>2]=c[g+280>>2];c[s+216>>2]=c[g+284>>2];c[s+220>>2]=c[g+288>>2];c[s+224>>2]=c[g+292>>2];c[s+228>>2]=c[g+296>>2];c[s+232>>2]=c[g+300>>2];c[s+236>>2]=c[g+304>>2];c[s>>2]=c[g+60>>2];c[s+4>>2]=c[g+64>>2];c[s+8>>2]=c[g+68>>2];c[s+12>>2]=c[g+72>>2];c[s+16>>2]=c[g+76>>2];c[s+20>>2]=c[g+80>>2];c[s+24>>2]=c[g+84>>2];c[s+28>>2]=c[g+88>>2];c[s+32>>2]=c[g+92>>2];c[s+36>>2]=c[g+96>>2];c[s+40>>2]=c[g+100>>2];c[s+44>>2]=c[g+104>>2];c[s+48>>2]=c[g+108>>2];c[s+52>>2]=c[g+112>>2];c[s+56>>2]=c[g+116>>2];c[s+60>>2]=c[g+120>>2];c[s+296>>2]=c[g+124>>2];c[s+300>>2]=c[g+128>>2];c[s+112>>2]=c[g+180>>2];c[s+116>>2]=c[g+184>>2];c[s+120>>2]=c[g+188>>2];c[s+124>>2]=c[g+192>>2];c[s+128>>2]=c[g+196>>2];c[s+132>>2]=c[g+200>>2];c[s+136>>2]=c[g+204>>2];c[s+140>>2]=c[g+208>>2];c[s+144>>2]=c[g+212>>2];c[s+148>>2]=c[g+216>>2];c[s+152>>2]=c[g+220>>2];c[s+156>>2]=c[g+224>>2];j=s+316|0;c[j>>2]=c[g+356>>2];c[s+64>>2]=c[g+132>>2];c[s+68>>2]=c[g+136>>2];c[s+72>>2]=c[g+140>>2];c[s+76>>2]=c[g+144>>2];c[s+80>>2]=c[g+148>>2];c[s+84>>2]=c[g+152>>2];c[s+88>>2]=c[g+156>>2];c[s+92>>2]=c[g+160>>2];c[s+96>>2]=c[g+164>>2];c[s+100>>2]=c[g+168>>2];c[s+104>>2]=c[g+172>>2];c[s+108>>2]=c[g+176>>2];c[s+240>>2]=c[g+316>>2];c[s+244>>2]=c[g+320>>2];c[s+248>>2]=c[g+324>>2];c[s+252>>2]=c[g+328>>2];c[s+324>>2]=c[g+364>>2];c[s+328>>2]=c[g+368>>2];c[s+312>>2]=c[g+352>>2];c[j>>2]=c[g+356>>2];c[L>>2]=c[g+360>>2];c[s+332>>2]=c[g+372>>2];L=c[g+44>>2]|0;j=s+284|0;c[j>>2]=L;p=s+292|0;c[p>>2]=c[g+4>>2];q=s+288|0;c[q>>2]=c[g+24>>2];c[s+304>>2]=c[g+308>>2];c[s+176>>2]=c[g+244>>2];c[s+180>>2]=c[g+248>>2];c[s+184>>2]=c[g+252>>2];c[s+188>>2]=c[g+256>>2];c[s+192>>2]=c[g+260>>2];c[s+196>>2]=c[g+264>>2];c[s+200>>2]=c[g+268>>2];c[s+204>>2]=c[g+272>>2];c[s+308>>2]=c[g+312>>2];if(L){L=ta[c[(c[w>>2]|0)+28>>2]&31](f,c[g+52>>2]|0)|0;c[s+272>>2]=L;if(L|0){j=c[j>>2]|0;o=va[c[(c[f>>2]|0)+16>>2]&63](f,16,j)|0;if((j|0)>0){g=(c[(c[b+1120>>2]|0)+(r<<2)>>2]|0)+52|0;l=c[g>>2]|0;m=0;n=c[o+8>>2]|0;while(1){c[n>>2]=c[l+(m<<4)>>2];c[n+4>>2]=c[l+(m<<4)+4>>2];c[n+8>>2]=c[l+(m<<4)+8>>2];c[n+12>>2]=c[l+(m<<4)+12>>2];m=m+1|0;if((m|0)==(j|0))break;else n=n+16|0}}else g=(c[(c[b+1120>>2]|0)+(r<<2)>>2]|0)+52|0;Ta[c[(c[f>>2]|0)+20>>2]&31](f,o,22049,1497453121,c[g>>2]|0)}}else c[s+272>>2]=0;if(c[p>>2]|0){L=ta[c[(c[w>>2]|0)+28>>2]&31](f,c[(c[(c[b+1120>>2]|0)+(r<<2)>>2]|0)+12>>2]|0)|0;c[s+280>>2]=L;if(L|0){j=c[p>>2]|0;o=va[c[(c[f>>2]|0)+16>>2]&63](f,4,j)|0;if((j|0)>0){g=(c[(c[b+1120>>2]|0)+(r<<2)>>2]|0)+12|0;l=c[g>>2]|0;m=0;n=c[o+8>>2]|0;while(1){c[n>>2]=c[l+(m<<2)>>2];m=m+1|0;if((m|0)==(j|0))break;else n=n+4|0}}else g=(c[(c[b+1120>>2]|0)+(r<<2)>>2]|0)+12|0;Ta[c[(c[f>>2]|0)+20>>2]&31](f,o,22387,1497453121,c[g>>2]|0)}}else c[s+280>>2]=0;if(c[q>>2]|0){L=ta[c[(c[w>>2]|0)+28>>2]&31](f,(c[(c[b+1120>>2]|0)+(r<<2)>>2]|0)+20|0)|0;c[s+276>>2]=L;if(L|0){n=c[p>>2]|0;q=va[c[(c[f>>2]|0)+16>>2]&63](f,4,n)|0;if((n|0)>0){g=c[(c[b+1120>>2]|0)+(r<<2)>>2]|0;m=c[g+32>>2]|0;o=0;p=c[q+8>>2]|0;while(1){l=c[m+(o<<2)>>2]|0;j=((10?~(l<<15)+l>>10:~(l<<15)+l|0)^~(l<<15)+l)*9|0;j=(6?j>>6:j)^j;j=c[h+((((16?j+~(j<<11)>>16:j+~(j<<11)|0)^j+~(j<<11))&t)<<2)>>2]|0;if((c[x+(j<<3)>>2]|0)!=(l|0))do j=c[i+(j<<2)>>2]|0;while((c[x+(j<<3)>>2]|0)!=(l|0));c[p>>2]=c[k+(j<<2)>>2];o=o+1|0;if((o|0)==(n|0))break;else p=p+4|0}}else g=c[(c[b+1120>>2]|0)+(r<<2)>>2]|0;Ta[c[(c[f>>2]|0)+20>>2]&31](f,q,22383,1497453121,g+20|0)}}else c[s+276>>2]=0;r=r+1|0;if((r|0)>=(u|0))break;else s=s+348|0}}Ta[c[(c[f>>2]|0)+20>>2]&31](f,v,13451,1497453121,c[c[b+1120>>2]>>2]|0)}}else c[e+284>>2]=0;L=c[b+852>>2]|0;c[e+320>>2]=L;if(L){L=ta[c[(c[w>>2]|0)+28>>2]&31](f,c[b+860>>2]|0)|0;c[e+288>>2]=L;if(L|0){l=c[b+852>>2]|0;m=va[c[(c[f>>2]|0)+16>>2]&63](f,104,l)|0;if((l|0)>0){n=0;p=c[m+8>>2]|0;while(1){g=c[(c[b+860>>2]|0)+(n<<2)>>2]|0;c[p+96>>2]=ra[c[(c[g>>2]|0)+20>>2]&127](g)|0;g=(c[b+860>>2]|0)+(n<<2)|0;L=c[g>>2]|0;c[p+8>>2]=c[L+28>>2];c[p+12>>2]=c[L+32>>2];c[p+16>>2]=c[L+36>>2];c[p+20>>2]=c[L+40>>2];c[p+24>>2]=c[L+44>>2];c[p+28>>2]=c[L+48>>2];c[p+32>>2]=c[L+52>>2];c[p+36>>2]=c[L+56>>2];c[p+40>>2]=c[L+60>>2];c[p+44>>2]=c[L+64>>2];c[p+48>>2]=c[L+68>>2];c[p+52>>2]=d[L+152>>0];L=p+56|0;c[p>>2]=0;o=p+4|0;c[o>>2]=0;c[L>>2]=0;c[L+4>>2]=0;c[L+8>>2]=0;c[L+12>>2]=0;c[L+16>>2]=0;c[L+20>>2]=0;c[L+24>>2]=0;c[L+28>>2]=0;g=c[(c[g>>2]|0)+4>>2]|0;if(g|0){c[p+88>>2]=1;c[p>>2]=ta[c[(c[w>>2]|0)+28>>2]&31](f,g)|0}g=c[(c[b+860>>2]|0)+(n<<2)>>2]|0;j=c[g+12>>2]|0;if(j){c[p+88>>2]=3;c[p>>2]=ta[c[(c[w>>2]|0)+28>>2]&31](f,j)|0;g=c[(c[b+860>>2]|0)+(n<<2)>>2]|0}j=c[g+8>>2]|0;if(j){c[p+88>>2]=2;c[p>>2]=ta[c[(c[w>>2]|0)+28>>2]&31](f,j)|0;g=c[(c[b+860>>2]|0)+(n<<2)>>2]|0}j=c[g+16>>2]|0;if(j){c[p+92>>2]=1;c[o>>2]=ta[c[(c[w>>2]|0)+28>>2]&31](f,j)|0;g=c[(c[b+860>>2]|0)+(n<<2)>>2]|0}j=c[g+24>>2]|0;if(j){c[p+92>>2]=3;c[o>>2]=ta[c[(c[w>>2]|0)+28>>2]&31](f,j)|0;g=c[(c[b+860>>2]|0)+(n<<2)>>2]|0}g=c[g+20>>2]|0;if(g|0){c[p+92>>2]=2;c[o>>2]=ta[c[(c[w>>2]|0)+28>>2]&31](f,g)|0}n=n+1|0;if((n|0)>=(l|0))break;else p=p+104|0}}Ta[c[(c[f>>2]|0)+20>>2]&31](f,m,13471,1497453121,c[b+860>>2]|0)}}else c[e+288>>2]=0;if(x|0){c[6748]=(c[6748]|0)+1;uc(c[x+-4>>2]|0)}if(k|0){c[6748]=(c[6748]|0)+1;uc(c[k+-4>>2]|0)}if(i|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0)}if(!h)return 13491;c[6748]=(c[6748]|0)+1;uc(c[h+-4>>2]|0);return 13491}function hb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0;L=ea;ea=ea+144|0;a:do switch(d-b|0){case 0:{c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;ea=L;return}case 2:{f=c[(c[a+92>>2]|0)+(b<<2)>>2]|0;i=c[f+88>>2]|0;j=c[f+200>>2]|0;h=c[f+92>>2]|0;g=c[f+204>>2]|0;if((i|0)==(j|0)&(h|0)==(g|0))if((c[f+96>>2]|0)==(c[f+208>>2]|0))break a;else g=h;g=h-g|0;do if(g|i-j){c[f>>2]=f+112;c[f+4>>2]=f+112;c[f+112>>2]=f;c[f+116>>2]=f;K=(i-j|0)<0|(i-j|0)==0&(g|0)<0;c[e>>2]=K?f:f+112|0;c[e+4>>2]=K?f+112|0:f;if((g|0)<0|(i-j|0)<0&(g|0)==0){c[e+8>>2]=f;g=f+112|0;h=f;f=f+112|0;break}else{c[e+8>>2]=f+112;g=f;h=f;f=f+112|0;break}}else{K=(c[f+96>>2]|0)>(c[f+208>>2]|0);h=K?f+112|0:f;c[h>>2]=h;c[h+4>>2]=h;c[e>>2]=h;c[e+4>>2]=h;c[e+8>>2]=h;g=h;f=K?f:f+112|0}while(0);c[e+12>>2]=g;a=Ue(a,h,f)|0;c[a>>2]=a;c[a+4>>2]=a;c[h+8>>2]=a;a=c[a+8>>2]|0;c[a>>2]=a;c[a+4>>2]=a;c[f+8>>2]=a;ea=L;return}case 1:{f=c[(c[a+92>>2]|0)+(b<<2)>>2]|0;break}default:{m=((d-b|0)/2|0)+b|0;h=c[a+92>>2]|0;l=c[h+(m+-1<<2)>>2]|0;i=c[l+88>>2]|0;k=c[l+92>>2]|0;l=c[l+96>>2]|0;b:do if((m|0)<(d|0)){f=m;do{g=c[h+(f<<2)>>2]|0;if((c[g+88>>2]|0)!=(i|0))break b;if((c[g+92>>2]|0)!=(k|0))break b;if((c[g+96>>2]|0)!=(l|0))break b;f=f+1|0}while((f|0)<(d|0))}else f=m;while(0);hb(a,b,m,e);c[L+96>>2]=0;c[L+96+4>>2]=0;c[L+96+8>>2]=0;c[L+96+12>>2]=0;hb(a,f,d,L+96|0);k=c[L+96+4>>2]|0;c:do if(k|0){B=c[e+4>>2]|0;if(!B){c[e>>2]=c[L+96>>2];c[e+4>>2]=c[L+96+4>>2];c[e+8>>2]=c[L+96+8>>2];c[e+12>>2]=c[L+96+12>>2];break}c[a+100>>2]=(c[a+100>>2]|0)+-1;h=c[e+12>>2]|0;m=c[L+96+8>>2]|0;i=c[h+88>>2]|0;d:do if((i|0)==(c[m+88>>2]|0)?(j=c[h+92>>2]|0,(j|0)==(c[m+92>>2]|0)):0){l=c[m+4>>2]|0;if((l|0)==(m|0)){f=c[m+8>>2]|0;if(!f)f=m;else{f=c[f+12>>2]|0;i=c[f+88>>2]|0;j=c[f+92>>2]|0}g=h;l=f;m=f;b=i+1|0;d=c[f+96>>2]|0;break}h=c[m>>2]|0;c[l>>2]=h;c[h+4>>2]=l;if((m|0)==(c[L+96>>2]|0)){f=c[h+88>>2]|0;g=c[l+88>>2]|0;do if((f|0)<(g|0))f=h;else{if((f|0)==(g|0)?(c[h+92>>2]|0)<(c[l+92>>2]|0):0){f=h;break}f=l}while(0);c[L+96>>2]=f}if((m|0)==(k|0)){f=c[h+88>>2]|0;g=c[l+88>>2]|0;do if((f|0)<=(g|0)){if((f|0)==(g|0)?(c[h+92>>2]|0)>(c[l+92>>2]|0):0)break;c[L+96+4>>2]=l;h=l;I=39;break d}while(0);c[L+96+4>>2]=h;I=39}else{h=k;I=39}}else{h=k;I=39}while(0);if((I|0)==39){w=c[e>>2]|0;x=c[L+96>>2]|0;y=0;A=1;b=B;g=0;n=h;l=0;while(1){f=c[n+88>>2]|0;d=c[b+88>>2]|0;k=z(f-d|0,A)|0;e:do if((k|0)<=0){if((k|0)<0){v=(y|0)!=0;m=c[b+92>>2]|0;d=f;u=c[n+92>>2]|0;j=b;f=n;while(1){s=c[(v?f+4|0:f)>>2]|0;r=(s|0)==(f|0);t=f+88|0;while(1){i=j+88|0;q=u-m|0;if(!r?(C=c[s+88>>2]|0,F=z(C-d|0,A)|0,E=c[s+92>>2]|0,G=E-u|0,(G|0)>-1):0){if(!F)break;if((F|0)<0?(z(G,k)|0)<=(z(F,q)|0):0)break}p=c[(v?j+4|0:j)>>2]|0;if((p|0)==(j|0))break e;o=c[p+88>>2]|0;n=z(o-(c[i>>2]|0)|0,A)|0;b=c[p+92>>2]|0;i=b-m|0;d=c[t>>2]|0;o=z(d-o|0,A)|0;if(!((i|0)>0&(o|0)<0))break e;if(n|0){if((n|0)>=0)break e;if((z(i,k)|0)>=(z(n,q)|0))break e}m=b;k=o;j=p}d=C;u=E;k=z(C-(c[i>>2]|0)|0,A)|0;f=s}}j=c[b+92>>2]|0;m=(y|0)!=0;f=c[(m?b:b+4|0)>>2]|0;f:do if((f|0)!=(b|0))if(m){i=b;while(1){if((c[f+88>>2]|0)!=(d|0)){k=i;break f}H=j;j=c[f+92>>2]|0;if((j|0)>(H|0)){k=i;break f}i=c[f>>2]|0;if((i|0)==(b|0)){k=f;break}else{H=f;f=i;i=H}}}else{i=b;while(1){if((c[f+88>>2]|0)!=(d|0)){k=i;break f}H=j;j=c[f+92>>2]|0;if((j|0)>(H|0)){k=i;break f}i=c[f+4>>2]|0;if((i|0)==(b|0)){k=f;break}else{H=f;f=i;i=H}}}else k=b;while(0);j=c[n+92>>2]|0;f=c[(m?n+4|0:n)>>2]|0;if((f|0)!=(n|0))if(m){i=n;while(1){if((c[f+88>>2]|0)!=(d|0)){j=k;f=i;break e}H=j;j=c[f+92>>2]|0;if((j|0)<(H|0)){j=k;f=i;break e}i=c[f+4>>2]|0;if((i|0)==(n|0)){j=k;break}else{H=f;f=i;i=H}}}else{i=n;while(1){if((c[f+88>>2]|0)!=(d|0)){j=k;f=i;break e}H=j;j=c[f+92>>2]|0;if((j|0)<(H|0)){j=k;f=i;break e}i=c[f>>2]|0;if((i|0)==(n|0)){j=k;break}else{H=f;f=i;i=H}}}else{j=k;f=n}}else{s=(y|0)!=0;r=c[n+92>>2]|0;i=b;f=n;while(1){o=f+88|0;n=c[i+92>>2]|0;q=k;j=i;while(1){p=r-n|0;d=c[(s?j:j+4|0)>>2]|0;if((d|0)==(j|0))break;k=c[d+88>>2]|0;b=z(k-(c[j+88>>2]|0)|0,A)|0;m=c[d+92>>2]|0;i=m-n|0;if((i|0)>=1)break;if(b|0){if((b|0)>=0)break;if((z(i,q)|0)>(z(b,p)|0))break}n=m;q=z((c[o>>2]|0)-k|0,A)|0;j=d}b=c[(s?f:f+4|0)>>2]|0;if((b|0)==(f|0))break e;d=c[b+88>>2]|0;m=z(d-(c[o>>2]|0)|0,A)|0;k=c[b+92>>2]|0;i=k-r|0;d=z(d-(c[j+88>>2]|0)|0,A)|0;if(!((i|0)<0&(d|0)>0))break e;if(m|0){if((m|0)>=0)break e;if((z(i,q)|0)>=(z(m,p)|0))break e}r=k;k=d;i=j;f=b}}while(0);i=(y|0)==0;l=i?f:l;g=i?j:g;n=i?x:f;b=i?w:j;y=y+1|0;if((y|0)==2)break;else A=i?-1:A}c[b+4>>2]=n;c[n>>2]=b;c[g>>2]=l;c[l+4>>2]=g;if((c[x+88>>2]|0)<(c[w+88>>2]|0))c[e>>2]=x;if((c[h+88>>2]|0)>=(c[B+88>>2]|0))c[e+4>>2]=h;c[e+12>>2]=c[L+96+12>>2];h=g;H=l;i=l+88|0;B=c[i>>2]|0;r=c[g+88>>2]|0;k=l+92|0;C=c[k>>2]|0;E=c[g+92>>2]|0;j=l+96|0;F=c[j>>2]|0;s=c[g+96>>2]|0;G=((C-E|0)<0)<<31>>31;e=0-(B-r)|0;u=tv(0,0,e|0,((e|0)<0)<<31>>31|0)|0;u=Yr(u|0,D()|0,F-s|0,((F-s|0)<0)<<31>>31|0)|0;v=D()|0;w=Yr(F-s|0,((F-s|0)<0)<<31>>31|0,C-E|0,G|0)|0;x=D()|0;o=Yr(e|0,((e|0)<0)<<31>>31|0,B-r|0,((B-r|0)<0)<<31>>31|0)|0;A=D()|0;y=Yr(C-E|0,G|0,C-E|0,G|0)|0;y=tv(o|0,A|0,y|0,D()|0)|0;A=D()|0;o=c[g+8>>2]|0;c[L+120>>2]=0;if(!o)r=0;else{p=tv(0,0,C-E|0,G|0)|0;q=D()|0;t=o;f=0;do{b=c[t+12>>2]|0;m=c[b+88>>2]|0;d=c[b+92>>2]|0;b=c[b+96>>2]|0;N=Yr(d-E|0,((d-E|0)<0)<<31>>31|0,e|0,((e|0)<0)<<31>>31|0)|0;n=D()|0;M=Yr(p|0,q|0,m-r|0,((m-r|0)<0)<<31>>31|0)|0;g:do if((N|0)==(M|0)&(n|0)==(D()|0)?(M=Yr(u|0,v|0,m-r|0,((m-r|0)<0)<<31>>31|0)|0,n=D()|0,N=Yr(w|0,x|0,d-E|0,((d-E|0)<0)<<31>>31|0)|0,n=Lv(N|0,D()|0,M|0,n|0)|0,M=D()|0,N=Yr(y|0,A|0,b-s|0,((b-s|0)<0)<<31>>31|0)|0,N=Lv(n|0,M|0,N|0,D()|0)|0,M=D()|0,(M|0)>0|(M|0)==0&N>>>0>0):0){do if(f|0){n=(c[f+4>>2]|0)==(t|0);if((c[f>>2]|0)!=(t|0))if(n)break;else break g;if(!n)break g;M=c[f+12>>2]|0;O=c[(c[t+8>>2]|0)+12>>2]|0;N=c[O+88>>2]|0;n=c[O+92>>2]|0;O=c[O+96>>2]|0;P=(c[M+96>>2]|0)-O|0;n=(z(b-O|0,(c[M+92>>2]|0)-n|0)|0)-(z(P,d-n|0)|0)|0;N=(z(P,m-N|0)|0)-(z(b-O|0,(c[M+88>>2]|0)-N|0)|0)|0;n=Yr(n|0,((n|0)<0)<<31>>31|0,C-E|0,G|0)|0;M=D()|0;N=Yr(N|0,((N|0)<0)<<31>>31|0,e|0,((e|0)<0)<<31>>31|0)|0;N=Lv(n|0,M|0,N|0,D()|0)|0;M=D()|0;if((M|0)>0|(M|0)==0&N>>>0>0)break g}while(0);f=t}while(0);t=c[t>>2]|0}while((t|0)!=(o|0));c[L+120>>2]=f;r=f}n=c[l+8>>2]|0;c[L+72>>2]=0;if(!n)f=0;else{o=tv(0,0,C-E|0,G|0)|0;p=D()|0;q=n;f=0;do{b=c[q+12>>2]|0;m=c[b+88>>2]|0;d=c[b+92>>2]|0;b=c[b+96>>2]|0;N=Yr(d-C|0,((d-C|0)<0)<<31>>31|0,e|0,((e|0)<0)<<31>>31|0)|0;P=D()|0;O=Yr(o|0,p|0,m-B|0,((m-B|0)<0)<<31>>31|0)|0;do if((N|0)==(O|0)&(P|0)==(D()|0)?(O=Yr(u|0,v|0,m-B|0,((m-B|0)<0)<<31>>31|0)|0,N=D()|0,P=Yr(w|0,x|0,d-C|0,((d-C|0)<0)<<31>>31|0)|0,N=Lv(P|0,D()|0,O|0,N|0)|0,O=D()|0,P=Yr(y|0,A|0,b-F|0,((b-F|0)<0)<<31>>31|0)|0,P=Lv(N|0,O|0,P|0,D()|0)|0,O=D()|0,(O|0)>0|(O|0)==0&P>>>0>0):0){if(f|0){if((c[f>>2]|0)!=(q|0))break;if((c[f+4>>2]|0)==(q|0)?(O=c[f+12>>2]|0,M=c[(c[q+8>>2]|0)+12>>2]|0,P=c[M+88>>2]|0,N=c[M+92>>2]|0,M=c[M+96>>2]|0,t=(c[O+96>>2]|0)-M|0,N=(z(b-M|0,(c[O+92>>2]|0)-N|0)|0)-(z(t,d-N|0)|0)|0,P=(z(t,m-P|0)|0)-(z(b-M|0,(c[O+88>>2]|0)-P|0)|0)|0,N=Yr(N|0,((N|0)<0)<<31>>31|0,C-E|0,G|0)|0,O=D()|0,P=Yr(P|0,((P|0)<0)<<31>>31|0,e|0,((e|0)<0)<<31>>31|0)|0,P=Lv(N|0,O|0,P|0,D()|0)|0,O=D()|0,!((O|0)>0|(O|0)==0&P>>>0>0)):0)break}f=q}while(0);q=c[q>>2]|0}while((q|0)!=(n|0));c[L+72>>2]=f}if((r|0)!=0|(f|0)!=0){lb(a,g,l,L+120|0,L+72|0);f=c[L+120>>2]|0;if(f){h=c[f+12>>2]|0;g=h}f=c[L+72>>2]|0;if(!f)f=H;else{k=c[f+12>>2]|0;l=k;f=k;i=k+88|0;j=k+96|0;k=k+92|0}}else f=H;m=f;b=c[i>>2]|0;d=(c[j>>2]|0)+1|0;j=c[k>>2]|0}w=l;y=g;f=0;E=0;e=1;i=0;k=0;A=0;B=0;C=d;x=0;G=0;while(1){P=c[y+88>>2]|0;H=(c[w+88>>2]|0)-P|0;O=c[y+92>>2]|0;v=(c[w+92>>2]|0)-O|0;F=c[y+96>>2]|0;t=(c[w+96>>2]|0)-F|0;c[L+120>>2]=H;c[L+120+4>>2]=v;c[L+120+8>>2]=t;c[L+120+12>>2]=-1;P=b-P|0;O=j-O|0;F=C-F|0;u=(z(O,t)|0)-(z(F,v)|0)|0;F=(z(F,H)|0)-(z(P,t)|0)|0;O=(z(P,v)|0)-(z(O,H)|0)|0;c[L+72>>2]=u;c[L+72+4>>2]=((u|0)<0)<<31>>31;c[L+72+8>>2]=F;c[L+72+8+4>>2]=((F|0)<0)<<31>>31;c[L+72+16>>2]=O;c[L+72+16+4>>2]=((O|0)<0)<<31>>31;P=Yr(O|0,((O|0)<0)<<31>>31|0,v|0,((v|0)<0)<<31>>31|0)|0;N=D()|0;M=Yr(F|0,((F|0)<0)<<31>>31|0,t|0,((t|0)<0)<<31>>31|0)|0;M=tv(P|0,N|0,M|0,D()|0)|0;N=D()|0;t=Yr(u|0,((u|0)<0)<<31>>31|0,t|0,((t|0)<0)<<31>>31|0)|0;P=D()|0;O=Yr(O|0,((O|0)<0)<<31>>31|0,H|0,((H|0)<0)<<31>>31|0)|0;O=tv(t|0,P|0,O|0,D()|0)|0;P=D()|0;H=Yr(F|0,((F|0)<0)<<31>>31|0,H|0,((H|0)<0)<<31>>31|0)|0;F=D()|0;v=Yr(u|0,((u|0)<0)<<31>>31|0,v|0,((v|0)<0)<<31>>31|0)|0;v=tv(H|0,F|0,v|0,D()|0)|0;F=D()|0;c[L+48>>2]=M;c[L+48+4>>2]=N;c[L+48+8>>2]=O;c[L+48+8+4>>2]=P;c[L+48+16>>2]=v;c[L+48+16+4>>2]=F;c[L+24>>2]=0;c[L+24+4>>2]=0;c[L+24+8>>2]=0;c[L+24+12>>2]=0;c[L+24+16>>2]=0;F=vc(a,0,y,L+120|0,L+72|0,L+48|0,L+24|0)|0;c[L>>2]=0;c[L+4>>2]=0;c[L+8>>2]=0;c[L+12>>2]=0;c[L+16>>2]=0;v=vc(a,1,w,L+120|0,L+72|0,L+48|0,L)|0;do if((F|0)!=0|(v|0)!=0){d=F|0?-1:1;do if((F|0)!=0&(v|0)!=0){u=c[L+24+16>>2]|0;d=c[L+16>>2]|0;if((u|0)!=(d|0)){q=u-d|0;break}if(!u)q=0;else{P=c[L+24>>2]|0;s=c[L+24+4>>2]|0;o=c[L+8>>2]|0;N=c[L+8+4>>2]|0;n=Yr(o|0,0,P|0,0)|0;d=D()|0;P=Yr(N|0,0,P|0,0)|0;O=D()|0;o=Yr(o|0,0,s|0,0)|0;p=D()|0;s=Yr(N|0,0,s|0,0)|0;N=D()|0;o=Lv(P|0,0,o|0,0)|0;P=D()|0;N=Lv(O|0,0,s|0,N|0)|0;p=Lv(N|0,D()|0,p|0,0)|0;P=Lv(p|0,D()|0,P|0,0)|0;p=D()|0;d=Lv(0,o|0,n|0,d|0)|0;n=D()|0;o=Lv(P|0,p|0,(n>>>0>>0|(n|0)==(o|0)&d>>>0<0)&1|0,0)|0;p=D()|0;P=c[L+24+8>>2]|0;N=c[L+24+8+4>>2]|0;s=c[L>>2]|0;O=c[L+4>>2]|0;r=Yr(s|0,0,P|0,0)|0;q=D()|0;P=Yr(O|0,0,P|0,0)|0;M=D()|0;s=Yr(s|0,0,N|0,0)|0;t=D()|0;N=Yr(O|0,0,N|0,0)|0;O=D()|0;s=Lv(P|0,0,s|0,0)|0;P=D()|0;O=Lv(M|0,0,N|0,O|0)|0;t=Lv(O|0,D()|0,t|0,0)|0;P=Lv(t|0,D()|0,P|0,0)|0;t=D()|0;q=Lv(0,s|0,r|0,q|0)|0;r=D()|0;s=Lv(P|0,t|0,(r>>>0>>0|(r|0)==(s|0)&q>>>0<0)&1|0,0)|0;t=D()|0;if(p>>>0>>0|(p|0)==(t|0)&o>>>0>>0)d=-1;else d=p>>>0>t>>>0|(p|0)==(t|0)&o>>>0>s>>>0?1:n>>>0>>0|(n|0)==(r|0)&d>>>0>>0?-1:(n>>>0>r>>>0|(n|0)==(r|0)&d>>>0>q>>>0)&1;q=z(d,u)|0}}else q=d;while(0);do if(!e)if((q|0)>-1)if((c[L+16>>2]|0)<0&((c[L+8>>2]|0)==0?(c[L+8+4>>2]|0)==0:0)){u=A;p=B;break}else{I=139;break}else if((c[L+24+16>>2]|0)<0&((c[L+24+8>>2]|0)==0?(c[L+24+8+4>>2]|0)==0:0)){u=A;p=B;break}else{I=139;break}else I=139;while(0);if((I|0)==139){I=0;n=Ue(a,y,w)|0;if(!A)i=n;else c[A+4>>2]=n;c[n>>2]=A;d=c[n+8>>2]|0;if(!B)k=d;else c[B>>2]=d;c[d+4>>2]=B;u=n;p=d}c[L+116>>2]=F;c[L+112>>2]=v;if(!q){lb(a,h,m,L+116|0,L+112|0);d=c[L+112>>2]|0}else d=v;if((q|0)>-1&(d|0)!=0){o=(G|0)!=0;if(o?(J=c[G>>2]|0,(J|0)!=(v|0)):0){b=J;do{n=b;b=c[b>>2]|0;d=c[n+8>>2]|0;if((b|0)==(n|0))j=0;else{c[b+4>>2]=c[n+4>>2];c[c[n+4>>2]>>2]=b;j=b}c[(c[d+12>>2]|0)+8>>2]=j;j=c[d>>2]|0;if((j|0)==(d|0)){c[(c[n+12>>2]|0)+8>>2]=0;j=d+4|0}else{c[j+4>>2]=c[d+4>>2];c[c[d+4>>2]>>2]=j;c[(c[n+12>>2]|0)+8>>2]=j;j=d+4|0}c[n+4>>2]=0;c[n+4+4>>2]=0;c[n+4+8>>2]=0;c[n+4+12>>2]=0;c[n>>2]=c[a+56>>2];c[a+56>>2]=n;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;c[d>>2]=c[a+56>>2];c[a+56>>2]=d;c[a+116>>2]=(c[a+116>>2]|0)+-1}while((b|0)!=(v|0))}do if(p)if(o){c[G>>2]=k;c[k+4>>2]=G;c[p>>2]=v;c[v+4>>2]=p;j=E;k=0;break}else{j=c[v+4>>2]|0;c[j>>2]=k;c[k+4>>2]=j;c[p>>2]=v;c[v+4>>2]=p;j=k;k=0;break}else j=o?E:v;while(0);P=m;A=c[L+112>>2]|0;m=c[A+12>>2]|0;s=j;y=0;b=c[P+88>>2]|0;d=c[P+96>>2]|0;j=c[P+92>>2]|0;A=c[A+8>>2]|0}else{s=E;y=p;d=C;A=G}if((q|0)<1&(c[L+116>>2]|0)!=0){p=(x|0)!=0;if(p?(K=c[x+4>>2]|0,(K|0)!=(F|0)):0){b=K;do{o=b+4|0;n=b;b=c[o>>2]|0;j=c[n>>2]|0;d=c[n+8>>2]|0;if((j|0)==(n|0))j=0;else{c[j+4>>2]=b;c[c[o>>2]>>2]=j}c[(c[d+12>>2]|0)+8>>2]=j;j=c[d>>2]|0;if((j|0)==(d|0)){c[(c[n+12>>2]|0)+8>>2]=0;j=d+4|0}else{c[j+4>>2]=c[d+4>>2];c[c[d+4>>2]>>2]=j;c[(c[n+12>>2]|0)+8>>2]=j;j=d+4|0}c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;c[n>>2]=c[a+56>>2];c[a+56>>2]=n;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;c[d>>2]=c[a+56>>2];c[a+56>>2]=d;c[a+116>>2]=(c[a+116>>2]|0)+-1}while((b|0)!=(F|0))}do if(u)if(p){c[i>>2]=x;c[x+4>>2]=i;c[F>>2]=u;c[u+4>>2]=F;i=0;break}else{f=c[F>>2]|0;c[i>>2]=f;c[f+4>>2]=i;c[F>>2]=u;c[u+4>>2]=F;f=i;i=0;break}else f=p?f:F;while(0);j=h;x=c[L+116>>2]|0;h=c[x+12>>2]|0;u=0;v=c[j+88>>2]|0;w=c[j+96>>2]|0;j=c[j+92>>2]|0;x=c[x+8>>2]|0}else{v=b;w=d}if((g|0)==(h|0)&(l|0)==(m|0)){if(x){q=x+4|0;d=c[q>>2]|0;if((d|0)!=(f|0))do{p=d+4|0;o=d;d=c[p>>2]|0;b=c[o>>2]|0;n=c[o+8>>2]|0;if((b|0)==(o|0))b=0;else{c[b+4>>2]=d;c[c[p>>2]>>2]=b}c[(c[n+12>>2]|0)+8>>2]=b;b=c[n>>2]|0;if((b|0)==(n|0)){c[(c[o+12>>2]|0)+8>>2]=0;b=n+4|0}else{c[b+4>>2]=c[n+4>>2];c[c[n+4>>2]>>2]=b;c[(c[o+12>>2]|0)+8>>2]=b;b=n+4|0}c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;c[o>>2]=c[a+56>>2];c[a+56>>2]=o;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[n>>2]=c[a+56>>2];c[a+56>>2]=n;c[a+116>>2]=(c[a+116>>2]|0)+-1}while((d|0)!=(f|0));if(u|0){c[i>>2]=x;c[q>>2]=i;c[f>>2]=u;c[u+4>>2]=f}}else{c[i>>2]=u;c[u+4>>2]=i;c[h+8>>2]=u}if(!A){c[y>>2]=k;c[k+4>>2]=y;c[l+8>>2]=y;r=0;t=e;q=u;p=y;b=v;o=w;n=x;d=0;break}d=c[A>>2]|0;if((d|0)!=(s|0))do{o=d;d=c[d>>2]|0;n=c[o+8>>2]|0;if((d|0)==(o|0))b=0;else{c[d+4>>2]=c[o+4>>2];c[c[o+4>>2]>>2]=d;b=d}c[(c[n+12>>2]|0)+8>>2]=b;b=c[n>>2]|0;if((b|0)==(n|0)){c[(c[o+12>>2]|0)+8>>2]=0;b=n+4|0}else{c[b+4>>2]=c[n+4>>2];c[c[n+4>>2]>>2]=b;c[(c[o+12>>2]|0)+8>>2]=b;b=n+4|0}c[o+4>>2]=0;c[o+4+4>>2]=0;c[o+4+8>>2]=0;c[o+4+12>>2]=0;c[o>>2]=c[a+56>>2];c[a+56>>2]=o;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[n>>2]=c[a+56>>2];c[a+56>>2]=n;c[a+116>>2]=(c[a+116>>2]|0)+-1}while((d|0)!=(s|0));if(!y){r=0;t=e;q=u;p=0;b=v;o=w;n=x;d=A}else{c[A>>2]=k;c[k+4>>2]=A;c[y>>2]=s;c[s+4>>2]=y;r=0;t=e;q=u;p=y;b=v;o=w;n=x;d=A}}else{r=1;t=0;q=u;p=y;b=v;o=w;n=x;d=A}}else{r=Ue(a,y,w)|0;c[r>>2]=r;c[r+4>>2]=r;c[y+8>>2]=r;r=c[r+8>>2]|0;c[r>>2]=r;c[r+4>>2]=r;c[w+8>>2]=r;r=0;s=E;t=e;q=A;p=B;o=C;n=x;d=G}while(0);if(!r)break c;w=m;y=h;E=s;e=t;A=q;B=p;C=o;x=n;G=d}}while(0);ea=L;return}}while(0);c[f+8>>2]=0;c[f>>2]=f;c[f+4>>2]=f;c[e>>2]=f;c[e+4>>2]=f;c[e+8>>2]=f;c[e+12>>2]=f;ea=L;return} +function gH(a){a=a|0;return +(+f[a+72>>2])}function hH(a,b){a=a|0;b=+b;f[a>>2]=b;return}function iH(a){a=a|0;c[a>>2]=3760;return}function jH(a){a=a|0;c[a>>2]=9372;return}function kH(a){a=a|0;QH(a+56|0);return}function lH(a){a=a|0;aI(a);return}function mH(a){a=a|0;return +(+f[a+24>>2])}function nH(a){a=a|0;return +(+f[a+4>>2])}function oH(a){a=a|0;return +(+f[a+20>>2])}function pH(a){a=a|0;return +(+f[a+32>>2])}function qH(a){a=a|0;return +(+f[a+16>>2])}function rH(a){a=a|0;return +(+f[a+12>>2])}function sH(a){a=a|0;return +(+f[a+28>>2])}function tH(a){a=a|0;return 52}function uH(a){a=a|0;return 68}function vH(a){a=a|0;return 84}function wH(a,b){a=a|0;b=b|0;return a+(b<<4)|0}function xH(a){a=a|0;return a+352|0}function yH(a){a=a|0;return NJ(a)|0}function zH(a){a=a|0;return a+868|0}function AH(a){a=a|0;return +(+f[a+88>>2])}function BH(a){a=a|0;return +(+f[a+8>>2])}function CH(a){a=a|0;return a+316|0}function DH(a){a=a|0;return a+300|0}function EH(a,b){a=a|0;b=b|0;Ca[a&511](b|0)}function FH(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;B(32)}function GH(a,b,c,d){a=a|0;b=b|0;c=+c;d=d|0;B(29)}function HH(a,b,c,d){a=a|0;b=+b;c=c|0;d=d|0;B(26)}function IH(a){a=a|0;return a+32|0}function JH(a){a=a|0;return 24}function KH(a,b){a=a|0;b=+b;return}function LH(a){a=a|0;return a+788|0}function MH(a){a=a|0;return c[a>>2]|0}function NH(a){a=a|0;return a+68|0}function OH(a){a=a|0;uy(a);return}function PH(a){a=a|0;LJ(a+-4|0);return}function QH(a){a=a|0;uF(a);return}function RH(a){a=a|0;CF(a);return}function SH(a){a=a|0;Bh(a);return}function TH(a){a=a|0;return a+708|0}function UH(){return (AI()|0)>0|0}function VH(a){a=a|0;return 488}function WH(a,b,c){a=a|0;b=b|0;c=c|0;B(14);return 0}function XH(a){a=a|0;return 32}function YH(a){a=a|0;return a+328|0}function ZH(a){a=a|0;return 60}function _H(a){a=a|0;return 428}function $H(a){a=a|0;c[a>>2]=3664;return}function aI(a){a=a|0;NI(a);return}function bI(a,b,c){a=a|0;b=b|0;c=c|0;B(3);return 0.0}function cI(a){a=a|0;return a+288|0}function dI(){return GI(1)|0}function eI(a){a=a|0;return (a>>>0>4294963200?-1:a)|0}function fI(a){a=+a;return +(+jB(a)*2.0)}function gI(a){a=a|0;return a+312|0}function hI(a){a=a|0;c[a>>2]=5660;return}function iI(a){a=a|0;c[a>>2]=6120;return}function jI(a){a=a|0;return (a&255)<<8|a>>8&255|0}function kI(a){a=a|0;return a+544|0}function lI(a,b,c){a=a|0;b=b|0;c=+c;B(13);return 0}function mI(a){a=a|0;return 13730}function nI(a){a=a|0;return a+348|0}function oI(a){a=a|0;return a+92|0}function pI(a){a=a|0;return 4}function qI(a){a=a|0;return 20570}function rI(a){a=a|0;return 20286}function sI(a){a=a|0;c[a>>2]=3708;return}function tI(){return dt()|0}function uI(a){a=a|0;return 13618}function vI(a){a=a|0;c[a>>2]=3960;return}function wI(a){a=a|0;return a+76|0}function xI(a){a=a|0;return a+28|0}function yI(a){a=a|0;return 19397}function zI(a){a=a|0;return a+380|0}function AI(){return G()|0}function BI(a){a=a|0;return a+40|0}function CI(a){a=a|0;return a+24|0}function DI(a){a=a|0;return a+72|0}function EI(a){a=a|0;return a+56|0}function FI(a,b,c){a=a|0;b=b|0;c=c|0;B(31)}function GI(a){a=a|0;return kb((a|0)==0?1:a)|0}function HI(a){a=a|0;return 19781}function II(a){a=a|0;return 0}function JI(){return GI(64)|0}function KI(a){a=a|0;return 19839}function LI(a){a=a|0;return 19183}function MI(a){a=a|0;return a+48|0}function NI(a){a=a|0;c[a>>2]=0;return}function OI(a){a=a|0;return 20072}function PI(a){a=a|0;return 1}function QI(a,b,c){a=a|0;b=b|0;c=+c;B(28)}function RI(a,b,c){a=a|0;b=+b;c=c|0;B(25)}function SI(a){a=a|0;return 20687}function TI(a){a=a|0;return 20658}function UI(a){a=a|0;return 3}function VI(a){a=a|0;return (a+-48|0)>>>0<10|0}function WI(a){a=a|0;return 13997}function XI(a){a=+a;return +a}function YI(a){a=a|0;return 20630}function ZI(a){a=a|0;return 19036}function _I(a){a=a|0;return 20230}function $I(a){a=a|0;return 20203}function aJ(a){a=a|0;return 20173}function bJ(a){a=a|0;return 8}function cJ(a){a=+a;return +(a%6.2831854820251465)}function dJ(a,b,c){a=a|0;b=+b;c=+c;B(23)}function eJ(a){a=a|0;return 19216}function fJ(a,b){a=a|0;b=b|0;B(12);return 0}function gJ(a){a=a|0;return 19098}function hJ(a){a=a|0;return 19119}function iJ(a){a=a|0;return 6}function jJ(a){a=a|0;return 12}function kJ(){return 4}function lJ(a){a=a|0;return 19079}function mJ(a){a=a|0;return 2}function nJ(a){a=a|0;return 20345}function oJ(a,b){a=a|0;b=+b;B(1);return 0.0}function pJ(){c[6250]=1805;c[6251]=0;return}function qJ(a){a=a|0;return a+12|0}function rJ(a){a=a|0;return a+8|0}function sJ(a){a=a|0;return a+4|0}function tJ(a){a=a|0;Ba[a&3]()}function uJ(){return 2}function vJ(a){a=a|0;Z()}function wJ(){return 5}function xJ(){return 3}function yJ(){return 0}function zJ(){F()}function AJ(a){a=+a;return +(+s(+a))}function BJ(a){a=+a;return +(+r(+a))}function CJ(a){a=+a;return +(+v(+a))}function DJ(a){a=+a;return +(+u(+a))}function EJ(a,b){a=a|0;b=b|0;B(27)}function FJ(a,b){a=a|0;b=+b;B(22)}function GJ(a){a=a|0;return GI(a)|0}function HJ(a){a=a|0;LJ(a);return}function IJ(a){a=a|0;return}function JJ(){dy(2)}function KJ(a){a=a|0;ea=a}function LJ(a){a=a|0;uc(a);return}function MJ(a){a=a|0;B(10);return 0}function NJ(a){a=a|0;return a|0}function OJ(a){a=a|0;B(0);return 0.0}function PJ(){return ea|0}function QJ(a){a=a|0;B(21)}function RJ(){return 1}function SJ(){B(20)} + +// EMSCRIPTEN_END_FUNCS +var ha=[OJ,oo,rH,oA,$G,gH,vE,Xp,Wp,Xp,OJ,OJ,OJ,OJ,OJ,OJ];var ia=[oJ,Cw];var ja=[dE,vj,vj,dE];var ka=[bI,uj,Lj,Ri,Fh,JF,mk,Ln,jj,am,Om,Qg,_l,Pl,El,bI];var la=[oB,Jj,Ij,oB];var ma=[bG,Qb];var na=[zD,pu,hd,pu,pu,id,pu,pu,Te,te,tt,pu,pu,zD,zD,zD];var oa=[Qw,Cp];var pa=[sv,ob,Sh,sv];var qa=[vu,li,Ob,vu];var ra=[MJ,RF,II,PI,rG,cF,cF,EG,AF,_H,mJ,pq,uI,jJ,qJ,mI,tH,II,XH,WI,mJ,UI,UI,PI,CG,iF,sF,pI,VH,mJ,tH,wG,YF,vH,WG,KG,eH,PI,Oz,pv,fH,ZF,Zu,VE,VE,wI,ZI,JH,lJ,ZH,gJ,hJ,LI,dH,eJ,PE,yI,ZH,HI,NH,KI,tH,OI,uH,LG,LG,II,aJ,ZH,$I,_I,ZD,rI,II,II,II,nJ,iJ,bJ,jJ,iJ,vH,JG,qI,YI,ZH,TI,SI,AF,SD,BG,uG,uG,EG,EG,sJ,II,PI,EG,EG,sJ,cF,II,MF,MF,EG,Ss,MJ,MJ,MJ,MJ,MJ,MJ,MJ,MJ,MJ,MJ,MJ,MJ,MJ,MJ,MJ,MJ,MJ,MJ,MJ,MJ,MJ];var sa=[yG,Cf];var ta=[fJ,_q,gr,Zq,RG,RG,RG,_a,mz,mz,Wb,sl,rm,fy,jn,Ts,Ek,rq,Kp,bk,Lh,Sn,oq,fJ,fJ,fJ,fJ,fJ,fJ,fJ,fJ,fJ];var ua=[lI,Ce,EE,EE,im,lI,lI,lI];var va=[WH,dn,Qh,gb,Yn,Gk,rf,ch,ng,Be,Cm,ah,Ug,we,ie,ze,Bm,eq,tj,Ke,wk,fh,Nf,Ik,ph,vk,Gd,tk,Hc,TC,TC,qe,mj,wf,Lf,Gh,ek,WH,WH,WH,WH,WH,WH,WH,WH,WH,WH,WH,WH,WH,WH,WH,WH,WH,WH,WH,WH,WH,WH,WH,WH,WH,WH,WH];var wa=[_F,xm,Jo,_n,Hj,Fj,hh,Pm,Rk,Pk,il,vf,fl,Wo,bm,el,_k,bi,ml,Ib,zv,rx,ue,tm,_F,_F,_F,_F,_F,_F,_F,_F];var xa=[PA,dc,yc,Rc];var ya=[Gy];var za=[nv,jc,Qe,nv];var Aa=[ru,Jb,wg,ru];var Ba=[SJ,zJ,UB,SJ];var Ca=[QJ,IJ,HJ,IJ,vJ,dr,Ky,IJ,vJ,IJ,vJ,IJ,OH,IJ,vJ,IJ,HJ,IJ,vJ,IJ,HJ,IJ,HJ,IJ,vJ,IJ,HJ,IJ,vJ,Ro,dq,tn,Wi,az,IJ,HJ,HJ,HJ,HJ,tc,Rv,IJ,HJ,IJ,HJ,IJ,uy,HJ,HJ,IJ,uy,HJ,HJ,IJ,HJ,fz,Gx,IJ,HJ,IJ,HJ,Ap,So,ii,MC,nj,ku,qi,dk,cb,Zg,mf,Wm,zd,Uk,IJ,HJ,IJ,HJ,yo,In,Vf,tu,eb,HJ,Cj,pC,hI,qv,IJ,hI,qv,pe,om,qv,qv,Nd,vJ,qv,qv,ic,qv,Cb,qf,ft,tF,Dh,SF,HJ,Eo,Pn,Rs,HJ,IJ,HJ,iI,rv,vo,Fn,Tk,lu,Vo,jq,IJ,HJ,ge,xB,HJ,HJ,HJ,HJ,HJ,HJ,HJ,HJ,HJ,HJ,Dj,XC,mq,ep,Qo,Do,HJ,Ep,sp,uq,lp,IJ,HJ,Zi,UF,cd,HJ,HJ,HJ,HJ,HJ,IJ,HJ,IJ,PH,HJ,HJ,HJ,HJ,HJ,HJ,gq,cp,IJ,HJ,xq,op,HJ,HJ,HJ,Xj,ZB,HJ,Ti,eA,HJ,wl,_u,si,uy,uy,uy,Sk,nl,uy,hp,xo,IJ,HJ,HJ,HJ,IJ,uy,HJ,IJ,HJ,IJ,uy,vJ,vJ,Ll,yl,uy,uy,uy,So,HJ,So,SH,iv,HJ,HJ,jH,Vu,uy,uy,uy,Ah,hv,Ki,Ru,IJ,Ru,$o,sq,Bj,YB,HJ,HJ,Mo,TF,IJ,HJ,HJ,HJ,Bh,iv,vJ,IJ,HJ,HJ,HJ,HJ,HJ,HJ,IJ,HJ,IJ,HJ,iq,dp,HJ,HJ,Ej,TD,zh,Pu,No,Rn,IJ,HJ,IJ,IJ,HJ,HJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ,QJ];var Da=[FJ,fb,Tb,mm,pG,NF,KH,NF,Uj,Vb,ff,bh,yf,pj,he,Lb,wd,Ab,wF,NF,Xk,Xk,Xk,zi,FJ,FJ,FJ,FJ,FJ,FJ,FJ,FJ];var Ea=[dJ,_c,Kf,Li,hf,Re,dJ,dJ];var Fa=[aD,_d,Wd,Dc];var Ga=[RI,bg,JB,uB,Qt,fj,ci,Qm,Go,Qt,Qt,xi,yk,hl,ut,kj];var Ha=[HH,Gj];var Ia=[EJ,kq,Nr,zA,AB,XG,fC,OB,XG,wn,jk,XG,Qs,yn,zb,ld,pp,XG,XG,XG,JE,KB,Bf,xf,Hg,gj,Vl,$i,Gr,ug,Vh,Uo,Dw,Bv,vx,Zw,Eb,XG,ti,Gt,nn,Dp,ih,ix,Mc,ki,sj,Jg,Mt,se,ke,tb,gk,kc,aj,qb,ei,XG,Hk,Rj,ck,al,cB,Sj,nm,Tm,cj,ti,Ei,ti,Oj,Nq,rp,ti,ui,$m,Fq,sm,ed,Km,Kk,Wt,Tt,Ut,eo,Ig,em,cm,dg,Er,Ip,fk,_r,To,fk,sc,oc,hr,fk,_r,XG,XG,Rg,Tg,nd,Zm,XG,XG,XG,$x,KB,ye,hc,jh,Xt,Ct,Ct,XG,ti,XG,XG,EJ,EJ,EJ,EJ,EJ,EJ,EJ];var Ja=[QI,Df,bw,bv,Cr,lk,sb,QI];var Ka=[GH,qp,UD,xj,ko,fi,dm,um];var La=[EF,vg];var Ma=[FI,vF,ax,Kh,Fd,Pv,yh,Jn,vF,Mi,_i,st,vF,Nc,qc,vF,kk,dl,Yj,Sp,ni,ne,qh,vF,vF,Wh,xh,$d,qx,px,wE,wE,wE,wE,zc,oh,ej,fg,Mj,bt,Kg,Lt,fe,td,td,yg,kk,ij,Zn,Lg,kk,nh,vF,ul,Nn,Bl,gl,Qk,hj,hm,km,gm,cn,sn,pc,xn,vF,vF,vF,vF,gp,so,wo,Hl,Xi,rh,lo,wE,wE,wE,wE,Mh,Ac,lh,FI,FI,FI,FI,FI,FI,FI,FI,FI,FI,FI,FI,FI,FI,FI,FI,FI,FI,FI,FI,FI,FI,FI,FI,FI,FI,FI,FI,FI,FI,FI,FI,FI,FI,FI,FI,FI,FI,FI,FI,FI,FI,FI,FI];var Na=[FH,Bz,jb,Pc,Ad,ws,Qi,xd,Dl,lm,FH,FH,FH,FH,FH,FH];var Oa=[GC,ks];var Pa=[YG,Yu,jf,Je,le,vB,Ey,Jv,Xe,Pe,vt,Tj,Pq,bu,Wj,Fb,xb,ee,Ys,Bg,Le,db,cu,Rl,Bk,po,Pe,ce,Tf,$e,Bd,gt,os,Hf,Eg,vt,Ch,Xg,Of,$k,Ks,Dg,Wc,jl,Ii,Pi,Lo,tf,$f,Wg,Th,ak,vB,dh,Uf,Hh,vB,vB,Di,Hi,vl,Vj,wj,kd,vd,Eh,yb,Hi,Ck,zk,Ak,ac,gn,Oi,gn,Lk,Bp,Dn,pk,YG,YG,YG,YG,YG,YG,YG,YG,YG,YG,YG,YG,YG,YG,YG,YG,YG,YG,YG,YG,YG,YG,YG,YG,YG,YG,YG,YG,YG,YG,YG,YG,YG,YG,YG,YG,YG,YG,YG,YG,YG,YG,YG,YG,YG,YG,YG,YG,YG];var Qa=[DF,gv];var Ra=[It,sd];var Sa=[Bu,cf];var Ta=[YE,it,Tc,eg,Zk,nf,bp,Mb,be,Ye,Se,$a,$b,wb,Id,ad,Hb,qu,Af,ib,Sc,qk,Uh,oe,YE,YE,YE,YE,YE,YE,YE,YE];var Ua=[FC,ro];var Va=[_B,Xc,Ok,Jl,Io,Vm,eh,_B];var Wa=[Zz,cg];var Xa=[tw,vq];var Ya=[iw,Sg];var Za=[Qu,xl,xl,Qu];return{__GLOBAL__sub_I_btQuickprof_cpp:aq,__ZSt18uncaught_exceptionv:UH,___cxa_can_catch:Zp,___cxa_is_pointer_type:_y,___muldi3:Yr,___udivdi3:GB,_bitshift64Lshr:Ft,_bitshift64Shl:pt,_emscripten_bind_AllHitsRayResultCallback_AllHitsRayResultCallback_2:Xs,_emscripten_bind_AllHitsRayResultCallback___destroy___0:Bw,_emscripten_bind_AllHitsRayResultCallback_get_m_closestHitFraction_0:nH,_emscripten_bind_AllHitsRayResultCallback_get_m_collisionFilterGroup_0:CD,_emscripten_bind_AllHitsRayResultCallback_get_m_collisionFilterMask_0:MD,_emscripten_bind_AllHitsRayResultCallback_get_m_collisionObject_0:cF,_emscripten_bind_AllHitsRayResultCallback_get_m_collisionObjects_0:oG,_emscripten_bind_AllHitsRayResultCallback_get_m_hitFractions_0:IF,_emscripten_bind_AllHitsRayResultCallback_get_m_hitNormalWorld_0:DI,_emscripten_bind_AllHitsRayResultCallback_get_m_hitPointWorld_0:oI,_emscripten_bind_AllHitsRayResultCallback_get_m_rayFromWorld_0:BI,_emscripten_bind_AllHitsRayResultCallback_get_m_rayToWorld_0:EI,_emscripten_bind_AllHitsRayResultCallback_hasHit_0:Vy,_emscripten_bind_AllHitsRayResultCallback_set_m_closestHitFraction_1:OG,_emscripten_bind_AllHitsRayResultCallback_set_m_collisionFilterGroup_1:FA,_emscripten_bind_AllHitsRayResultCallback_set_m_collisionFilterMask_1:OA,_emscripten_bind_AllHitsRayResultCallback_set_m_collisionObject_1:OB,_emscripten_bind_AllHitsRayResultCallback_set_m_collisionObjects_1:ov,_emscripten_bind_AllHitsRayResultCallback_set_m_hitFractions_1:wx,_emscripten_bind_AllHitsRayResultCallback_set_m_hitNormalWorld_1:qw,_emscripten_bind_AllHitsRayResultCallback_set_m_hitPointWorld_1:xw,_emscripten_bind_AllHitsRayResultCallback_set_m_rayFromWorld_1:Ur,_emscripten_bind_AllHitsRayResultCallback_set_m_rayToWorld_1:Xr,_emscripten_bind_Anchor___destroy___0:nE,_emscripten_bind_Anchor_get_m_body_0:VG,_emscripten_bind_Anchor_get_m_c0_0:xI,_emscripten_bind_Anchor_get_m_c1_0:wI,_emscripten_bind_Anchor_get_m_c2_0:_G,_emscripten_bind_Anchor_get_m_influence_0:mH,_emscripten_bind_Anchor_get_m_local_0:sJ,_emscripten_bind_Anchor_get_m_node_0:MH,_emscripten_bind_Anchor_set_m_body_1:DE,_emscripten_bind_Anchor_set_m_c0_1:gC,_emscripten_bind_Anchor_set_m_c1_1:Qr,_emscripten_bind_Anchor_set_m_c2_1:dF,_emscripten_bind_Anchor_set_m_influence_1:mF,_emscripten_bind_Anchor_set_m_local_1:Rr,_emscripten_bind_Anchor_set_m_node_1:rF,_emscripten_bind_ClosestConvexResultCallback_ClosestConvexResultCallback_2:Cs,_emscripten_bind_ClosestConvexResultCallback___destroy___0:Bw,_emscripten_bind_ClosestConvexResultCallback_get_m_closestHitFraction_0:nH,_emscripten_bind_ClosestConvexResultCallback_get_m_collisionFilterGroup_0:mD,_emscripten_bind_ClosestConvexResultCallback_get_m_collisionFilterMask_0:lD,_emscripten_bind_ClosestConvexResultCallback_get_m_convexFromWorld_0:qJ,_emscripten_bind_ClosestConvexResultCallback_get_m_convexToWorld_0:xI,_emscripten_bind_ClosestConvexResultCallback_get_m_hitNormalWorld_0:TE,_emscripten_bind_ClosestConvexResultCallback_get_m_hitPointWorld_0:hF,_emscripten_bind_ClosestConvexResultCallback_hasHit_0:ty,_emscripten_bind_ClosestConvexResultCallback_set_m_closestHitFraction_1:OG,_emscripten_bind_ClosestConvexResultCallback_set_m_collisionFilterGroup_1:qA,_emscripten_bind_ClosestConvexResultCallback_set_m_collisionFilterMask_1:pA,_emscripten_bind_ClosestConvexResultCallback_set_m_convexFromWorld_1:Xq,_emscripten_bind_ClosestConvexResultCallback_set_m_convexToWorld_1:cr,_emscripten_bind_ClosestConvexResultCallback_set_m_hitNormalWorld_1:Yq,_emscripten_bind_ClosestConvexResultCallback_set_m_hitPointWorld_1:br,_emscripten_bind_ClosestRayResultCallback_ClosestRayResultCallback_2:at,_emscripten_bind_ClosestRayResultCallback___destroy___0:Bw,_emscripten_bind_ClosestRayResultCallback_get_m_closestHitFraction_0:nH,_emscripten_bind_ClosestRayResultCallback_get_m_collisionFilterGroup_0:CD,_emscripten_bind_ClosestRayResultCallback_get_m_collisionFilterMask_0:MD,_emscripten_bind_ClosestRayResultCallback_get_m_collisionObject_0:cF,_emscripten_bind_ClosestRayResultCallback_get_m_hitNormalWorld_0:zG,_emscripten_bind_ClosestRayResultCallback_get_m_hitPointWorld_0:NH,_emscripten_bind_ClosestRayResultCallback_get_m_rayFromWorld_0:oG,_emscripten_bind_ClosestRayResultCallback_get_m_rayToWorld_0:ZG,_emscripten_bind_ClosestRayResultCallback_hasHit_0:Vy,_emscripten_bind_ClosestRayResultCallback_set_m_closestHitFraction_1:OG,_emscripten_bind_ClosestRayResultCallback_set_m_collisionFilterGroup_1:FA,_emscripten_bind_ClosestRayResultCallback_set_m_collisionFilterMask_1:OA,_emscripten_bind_ClosestRayResultCallback_set_m_collisionObject_1:OB,_emscripten_bind_ClosestRayResultCallback_set_m_hitNormalWorld_1:xr,_emscripten_bind_ClosestRayResultCallback_set_m_hitPointWorld_1:Er,_emscripten_bind_ClosestRayResultCallback_set_m_rayFromWorld_1:kr,_emscripten_bind_ClosestRayResultCallback_set_m_rayToWorld_1:Fr,_emscripten_bind_ConcreteContactResultCallback_ConcreteContactResultCallback_0:Bt,_emscripten_bind_ConcreteContactResultCallback___destroy___0:Bw,_emscripten_bind_ConcreteContactResultCallback_addSingleResult_7:Jq,_emscripten_bind_Config___destroy___0:uz,_emscripten_bind_Config_get_citerations_0:LG,_emscripten_bind_Config_get_collisions_0:vG,_emscripten_bind_Config_get_diterations_0:uG,_emscripten_bind_Config_get_kAHR_0:cH,_emscripten_bind_Config_get_kCHR_0:bH,_emscripten_bind_Config_get_kDF_0:sH,_emscripten_bind_Config_get_kDG_0:rH,_emscripten_bind_Config_get_kDP_0:BH,_emscripten_bind_Config_get_kKHR_0:aH,_emscripten_bind_Config_get_kLF_0:qH,_emscripten_bind_Config_get_kMT_0:pH,_emscripten_bind_Config_get_kPR_0:oH,_emscripten_bind_Config_get_kSHR_0:$G,_emscripten_bind_Config_get_kSKHR_CL_0:IG,_emscripten_bind_Config_get_kSK_SPLT_CL_0:mG,_emscripten_bind_Config_get_kSRHR_CL_0:HG,_emscripten_bind_Config_get_kSR_SPLT_CL_0:lG,_emscripten_bind_Config_get_kSSHR_CL_0:GG,_emscripten_bind_Config_get_kSS_SPLT_CL_0:gH,_emscripten_bind_Config_get_kVCF_0:nH,_emscripten_bind_Config_get_kVC_0:mH,_emscripten_bind_Config_get_maxvolume_0:FG,_emscripten_bind_Config_get_piterations_0:tG,_emscripten_bind_Config_get_timescale_0:AG,_emscripten_bind_Config_get_viterations_0:sG,_emscripten_bind_Config_set_citerations_1:RD,_emscripten_bind_Config_set_collisions_1:QD,_emscripten_bind_Config_set_diterations_1:PD,_emscripten_bind_Config_set_kAHR_1:gF,_emscripten_bind_Config_set_kCHR_1:fF,_emscripten_bind_Config_set_kDF_1:qF,_emscripten_bind_Config_set_kDG_1:pG,_emscripten_bind_Config_set_kDP_1:NG,_emscripten_bind_Config_set_kKHR_1:eF,_emscripten_bind_Config_set_kLF_1:pF,_emscripten_bind_Config_set_kMT_1:oF,_emscripten_bind_Config_set_kPR_1:nF,_emscripten_bind_Config_set_kSHR_1:NF,_emscripten_bind_Config_set_kSKHR_CL_1:CE,_emscripten_bind_Config_set_kSK_SPLT_CL_1:kE,_emscripten_bind_Config_set_kSRHR_CL_1:BE,_emscripten_bind_Config_set_kSR_SPLT_CL_1:jE,_emscripten_bind_Config_set_kSSHR_CL_1:AE,_emscripten_bind_Config_set_kSS_SPLT_CL_1:wF,_emscripten_bind_Config_set_kVCF_1:OG,_emscripten_bind_Config_set_kVC_1:mF,_emscripten_bind_Config_set_maxvolume_1:uE,_emscripten_bind_Config_set_piterations_1:OD,_emscripten_bind_Config_set_timescale_1:tE,_emscripten_bind_Config_set_viterations_1:ND,_emscripten_bind_ContactResultCallback___destroy___0:Bw,_emscripten_bind_ContactResultCallback_addSingleResult_7:Jq,_emscripten_bind_ConvexResultCallback___destroy___0:Bw,_emscripten_bind_ConvexResultCallback_get_m_closestHitFraction_0:nH,_emscripten_bind_ConvexResultCallback_get_m_collisionFilterGroup_0:mD,_emscripten_bind_ConvexResultCallback_get_m_collisionFilterMask_0:lD,_emscripten_bind_ConvexResultCallback_hasHit_0:ty,_emscripten_bind_ConvexResultCallback_set_m_closestHitFraction_1:OG,_emscripten_bind_ConvexResultCallback_set_m_collisionFilterGroup_1:qA,_emscripten_bind_ConvexResultCallback_set_m_collisionFilterMask_1:pA,_emscripten_bind_DebugDrawer_DebugDrawer_0:Kz,_emscripten_bind_DebugDrawer___destroy___0:Bw,_emscripten_bind_DebugDrawer_draw3dText_2:Dv,_emscripten_bind_DebugDrawer_drawContactPoint_5:is,_emscripten_bind_DebugDrawer_drawLine_3:Au,_emscripten_bind_DebugDrawer_getDebugMode_0:Oz,_emscripten_bind_DebugDrawer_reportErrorWarning_1:Ow,_emscripten_bind_DebugDrawer_setDebugMode_1:Bx,_emscripten_bind_LocalConvexResult_LocalConvexResult_5:Bq,_emscripten_bind_LocalConvexResult___destroy___0:nE,_emscripten_bind_LocalConvexResult_get_m_hitCollisionObject_0:MH,_emscripten_bind_LocalConvexResult_get_m_hitFraction_0:aH,_emscripten_bind_LocalConvexResult_get_m_hitNormalLocal_0:rJ,_emscripten_bind_LocalConvexResult_get_m_hitPointLocal_0:CI,_emscripten_bind_LocalConvexResult_get_m_localShapeInfo_0:rG,_emscripten_bind_LocalConvexResult_set_m_hitCollisionObject_1:rF,_emscripten_bind_LocalConvexResult_set_m_hitFraction_1:eF,_emscripten_bind_LocalConvexResult_set_m_hitNormalLocal_1:$r,_emscripten_bind_LocalConvexResult_set_m_hitPointLocal_1:Vr,_emscripten_bind_LocalConvexResult_set_m_localShapeInfo_1:fC,_emscripten_bind_LocalShapeInfo___destroy___0:nE,_emscripten_bind_LocalShapeInfo_get_m_shapePart_0:MH,_emscripten_bind_LocalShapeInfo_get_m_triangleIndex_0:rG,_emscripten_bind_LocalShapeInfo_set_m_shapePart_1:rF,_emscripten_bind_LocalShapeInfo_set_m_triangleIndex_1:fC,_emscripten_bind_Material___destroy___0:nE,_emscripten_bind_Material_get_m_flags_0:EG,_emscripten_bind_Material_get_m_kAST_0:BH,_emscripten_bind_Material_get_m_kLST_0:nH,_emscripten_bind_Material_get_m_kVST_0:rH,_emscripten_bind_Material_set_m_flags_1:iE,_emscripten_bind_Material_set_m_kAST_1:NG,_emscripten_bind_Material_set_m_kLST_1:OG,_emscripten_bind_Material_set_m_kVST_1:pG,_emscripten_bind_Node___destroy___0:nE,_emscripten_bind_Node_get_m_area_0:_G,_emscripten_bind_Node_get_m_f_0:EI,_emscripten_bind_Node_get_m_im_0:AH,_emscripten_bind_Node_get_m_n_0:DI,_emscripten_bind_Node_get_m_q_0:CI,_emscripten_bind_Node_get_m_v_0:BI,_emscripten_bind_Node_get_m_x_0:rJ,_emscripten_bind_Node_set_m_area_1:dF,_emscripten_bind_Node_set_m_f_1:Xr,_emscripten_bind_Node_set_m_im_1:zF,_emscripten_bind_Node_set_m_n_1:Wr,_emscripten_bind_Node_set_m_q_1:Vr,_emscripten_bind_Node_set_m_v_1:Ur,_emscripten_bind_Node_set_m_x_1:$r,_emscripten_bind_RayResultCallback___destroy___0:Bw,_emscripten_bind_RayResultCallback_get_m_closestHitFraction_0:nH,_emscripten_bind_RayResultCallback_get_m_collisionFilterGroup_0:CD,_emscripten_bind_RayResultCallback_get_m_collisionFilterMask_0:MD,_emscripten_bind_RayResultCallback_get_m_collisionObject_0:cF,_emscripten_bind_RayResultCallback_hasHit_0:Vy,_emscripten_bind_RayResultCallback_set_m_closestHitFraction_1:OG,_emscripten_bind_RayResultCallback_set_m_collisionFilterGroup_1:FA,_emscripten_bind_RayResultCallback_set_m_collisionFilterMask_1:OA,_emscripten_bind_RayResultCallback_set_m_collisionObject_1:OB,_emscripten_bind_RaycastInfo___destroy___0:nE,_emscripten_bind_RaycastInfo_get_m_contactNormalWS_0:NJ,_emscripten_bind_RaycastInfo_get_m_contactPointWS_0:PG,_emscripten_bind_RaycastInfo_get_m_groundObject_0:tG,_emscripten_bind_RaycastInfo_get_m_hardPointWS_0:ZG,_emscripten_bind_RaycastInfo_get_m_isInContact_0:sE,_emscripten_bind_RaycastInfo_get_m_suspensionLength_0:pH,_emscripten_bind_RaycastInfo_get_m_wheelAxleWS_0:NH,_emscripten_bind_RaycastInfo_get_m_wheelDirectionWS_0:zG,_emscripten_bind_RaycastInfo_set_m_contactNormalWS_1:Sr,_emscripten_bind_RaycastInfo_set_m_contactPointWS_1:Br,_emscripten_bind_RaycastInfo_set_m_groundObject_1:OD,_emscripten_bind_RaycastInfo_set_m_hardPointWS_1:Fr,_emscripten_bind_RaycastInfo_set_m_isInContact_1:XB,_emscripten_bind_RaycastInfo_set_m_suspensionLength_1:oF,_emscripten_bind_RaycastInfo_set_m_wheelAxleWS_1:Er,_emscripten_bind_RaycastInfo_set_m_wheelDirectionWS_1:xr,_emscripten_bind_VoidPtr___destroy___0:nE,_emscripten_bind_btActionInterface___destroy___0:Bw,_emscripten_bind_btActionInterface_updateAction_2:xv,_emscripten_bind_btAxisSweep3___destroy___0:Bw,_emscripten_bind_btAxisSweep3_btAxisSweep3_2:ys,_emscripten_bind_btAxisSweep3_btAxisSweep3_3:Pr,_emscripten_bind_btAxisSweep3_btAxisSweep3_4:vr,_emscripten_bind_btAxisSweep3_btAxisSweep3_5:Tq,_emscripten_bind_btBoxShape___destroy___0:Bw,_emscripten_bind_btBoxShape_btBoxShape_1:Zh,_emscripten_bind_btBoxShape_calculateLocalInertia_2:fv,_emscripten_bind_btBoxShape_getLocalScaling_0:Hz,_emscripten_bind_btBoxShape_getMargin_0:oA,_emscripten_bind_btBoxShape_setLocalScaling_1:nx,_emscripten_bind_btBoxShape_setMargin_1:qy,_emscripten_bind_btBroadphaseInterface___destroy___0:Bw,_emscripten_bind_btBroadphaseInterface_getOverlappingPairCache_0:rA,_emscripten_bind_btBroadphaseProxy___destroy___0:DB,_emscripten_bind_btBroadphaseProxy_get_m_collisionFilterGroup_0:LD,_emscripten_bind_btBroadphaseProxy_get_m_collisionFilterMask_0:YD,_emscripten_bind_btBroadphaseProxy_set_m_collisionFilterGroup_1:NA,_emscripten_bind_btBroadphaseProxy_set_m_collisionFilterMask_1:UA,_emscripten_bind_btBvhTriangleMeshShape___destroy___0:Bw,_emscripten_bind_btBvhTriangleMeshShape_btBvhTriangleMeshShape_2:Ns,_emscripten_bind_btBvhTriangleMeshShape_btBvhTriangleMeshShape_3:cs,_emscripten_bind_btBvhTriangleMeshShape_calculateLocalInertia_2:fv,_emscripten_bind_btBvhTriangleMeshShape_getLocalScaling_0:Hz,_emscripten_bind_btBvhTriangleMeshShape_setLocalScaling_1:nx,_emscripten_bind_btCapsuleShapeX___destroy___0:Bw,_emscripten_bind_btCapsuleShapeX_btCapsuleShapeX_2:Mm,_emscripten_bind_btCapsuleShapeX_calculateLocalInertia_2:fv,_emscripten_bind_btCapsuleShapeX_getHalfHeight_0:CC,_emscripten_bind_btCapsuleShapeX_getLocalScaling_0:Hz,_emscripten_bind_btCapsuleShapeX_getMargin_0:oA,_emscripten_bind_btCapsuleShapeX_getRadius_0:hE,_emscripten_bind_btCapsuleShapeX_getUpAxis_0:mE,_emscripten_bind_btCapsuleShapeX_setLocalScaling_1:nx,_emscripten_bind_btCapsuleShapeX_setMargin_1:qy,_emscripten_bind_btCapsuleShapeZ___destroy___0:Bw,_emscripten_bind_btCapsuleShapeZ_btCapsuleShapeZ_2:Lm,_emscripten_bind_btCapsuleShapeZ_calculateLocalInertia_2:fv,_emscripten_bind_btCapsuleShapeZ_getHalfHeight_0:CC,_emscripten_bind_btCapsuleShapeZ_getLocalScaling_0:Hz,_emscripten_bind_btCapsuleShapeZ_getMargin_0:oA,_emscripten_bind_btCapsuleShapeZ_getRadius_0:hE,_emscripten_bind_btCapsuleShapeZ_getUpAxis_0:mE,_emscripten_bind_btCapsuleShapeZ_setLocalScaling_1:nx,_emscripten_bind_btCapsuleShapeZ_setMargin_1:qy,_emscripten_bind_btCapsuleShape___destroy___0:Bw,_emscripten_bind_btCapsuleShape_btCapsuleShape_2:Nm,_emscripten_bind_btCapsuleShape_calculateLocalInertia_2:fv,_emscripten_bind_btCapsuleShape_getHalfHeight_0:CC,_emscripten_bind_btCapsuleShape_getLocalScaling_0:Hz,_emscripten_bind_btCapsuleShape_getMargin_0:oA,_emscripten_bind_btCapsuleShape_getRadius_0:hE,_emscripten_bind_btCapsuleShape_getUpAxis_0:mE,_emscripten_bind_btCapsuleShape_setLocalScaling_1:nx,_emscripten_bind_btCapsuleShape_setMargin_1:qy,_emscripten_bind_btCollisionConfiguration___destroy___0:Bw,_emscripten_bind_btCollisionDispatcher___destroy___0:Bw,_emscripten_bind_btCollisionDispatcher_btCollisionDispatcher_1:sk,_emscripten_bind_btCollisionDispatcher_getManifoldByIndexInternal_1:$v,_emscripten_bind_btCollisionDispatcher_getNumManifolds_0:rA,_emscripten_bind_btCollisionObjectWrapper_getCollisionObject_0:zB,_emscripten_bind_btCollisionObjectWrapper_getCollisionShape_0:PF,_emscripten_bind_btCollisionObjectWrapper_getWorldTransform_0:UE,_emscripten_bind_btCollisionObject___destroy___0:zw,_emscripten_bind_btCollisionObject_activate_0:zt,_emscripten_bind_btCollisionObject_activate_1:ns,_emscripten_bind_btCollisionObject_forceActivationState_1:VB,_emscripten_bind_btCollisionObject_getBroadphaseHandle_0:VC,_emscripten_bind_btCollisionObject_getCollisionFlags_0:sD,_emscripten_bind_btCollisionObject_getCollisionShape_0:rD,_emscripten_bind_btCollisionObject_getFriction_0:IA,_emscripten_bind_btCollisionObject_getRestitution_0:lA,_emscripten_bind_btCollisionObject_getRollingFriction_0:Tz,_emscripten_bind_btCollisionObject_getUserIndex_0:UC,_emscripten_bind_btCollisionObject_getUserPointer_0:WD,_emscripten_bind_btCollisionObject_getWorldTransform_0:GF,_emscripten_bind_btCollisionObject_isActive_0:gB,_emscripten_bind_btCollisionObject_isKinematicObject_0:Ly,_emscripten_bind_btCollisionObject_isStaticObject_0:Cz,_emscripten_bind_btCollisionObject_isStaticOrKinematicObject_0:cx,_emscripten_bind_btCollisionObject_setActivationState_1:Vv,_emscripten_bind_btCollisionObject_setAnisotropicFriction_2:cv,_emscripten_bind_btCollisionObject_setCcdMotionThreshold_1:Hy,_emscripten_bind_btCollisionObject_setCcdSweptSphereRadius_1:ny,_emscripten_bind_btCollisionObject_setCollisionFlags_1:pz,_emscripten_bind_btCollisionObject_setCollisionShape_1:Vw,_emscripten_bind_btCollisionObject_setContactProcessingThreshold_1:Oy,_emscripten_bind_btCollisionObject_setFriction_1:fB,_emscripten_bind_btCollisionObject_setRestitution_1:kA,_emscripten_bind_btCollisionObject_setRollingFriction_1:xz,_emscripten_bind_btCollisionObject_setUserIndex_1:vA,_emscripten_bind_btCollisionObject_setUserPointer_1:Sz,_emscripten_bind_btCollisionObject_setWorldTransform_1:Qx,_emscripten_bind_btCollisionShape___destroy___0:Bw,_emscripten_bind_btCollisionShape_calculateLocalInertia_2:fv,_emscripten_bind_btCollisionShape_getLocalScaling_0:Hz,_emscripten_bind_btCollisionShape_getMargin_0:oA,_emscripten_bind_btCollisionShape_setLocalScaling_1:nx,_emscripten_bind_btCollisionShape_setMargin_1:qy,_emscripten_bind_btCollisionWorld___destroy___0:Bw,_emscripten_bind_btCollisionWorld_addCollisionObject_1:Ov,_emscripten_bind_btCollisionWorld_addCollisionObject_2:Ju,_emscripten_bind_btCollisionWorld_addCollisionObject_3:Ot,_emscripten_bind_btCollisionWorld_contactPairTest_3:bj,_emscripten_bind_btCollisionWorld_contactTest_2:ym,_emscripten_bind_btCollisionWorld_convexSweepTest_5:nr,_emscripten_bind_btCollisionWorld_debugDrawObject_3:Vt,_emscripten_bind_btCollisionWorld_debugDrawWorld_0:sz,_emscripten_bind_btCollisionWorld_getBroadphase_0:uD,_emscripten_bind_btCollisionWorld_getDebugDrawer_0:dz,_emscripten_bind_btCollisionWorld_getDispatchInfo_0:KC,_emscripten_bind_btCollisionWorld_getDispatcher_0:tD,_emscripten_bind_btCollisionWorld_getPairCache_0:Nz,_emscripten_bind_btCollisionWorld_rayTest_3:su,_emscripten_bind_btCollisionWorld_removeCollisionObject_1:jw,_emscripten_bind_btCollisionWorld_setDebugDrawer_1:Nw,_emscripten_bind_btCollisionWorld_updateSingleAabb_1:Yw,_emscripten_bind_btCompoundShape___destroy___0:Bw,_emscripten_bind_btCompoundShape_addChildShape_2:Oc,_emscripten_bind_btCompoundShape_btCompoundShape_0:Ni,_emscripten_bind_btCompoundShape_btCompoundShape_1:Gi,_emscripten_bind_btCompoundShape_calculateLocalInertia_2:fv,_emscripten_bind_btCompoundShape_getChildShape_1:Jz,_emscripten_bind_btCompoundShape_getLocalScaling_0:Hz,_emscripten_bind_btCompoundShape_getMargin_0:oA,_emscripten_bind_btCompoundShape_getNumChildShapes_0:nB,_emscripten_bind_btCompoundShape_removeChildShapeByIndex_1:Nx,_emscripten_bind_btCompoundShape_removeChildShape_1:Dw,_emscripten_bind_btCompoundShape_setLocalScaling_1:nx,_emscripten_bind_btCompoundShape_setMargin_1:qy,_emscripten_bind_btCompoundShape_updateChildTransform_2:bf,_emscripten_bind_btCompoundShape_updateChildTransform_3:ef,_emscripten_bind_btConcaveShape___destroy___0:Bw,_emscripten_bind_btConcaveShape_calculateLocalInertia_2:fv,_emscripten_bind_btConcaveShape_getLocalScaling_0:Hz,_emscripten_bind_btConcaveShape_setLocalScaling_1:nx,_emscripten_bind_btConeShapeX___destroy___0:Bw,_emscripten_bind_btConeShapeX_btConeShapeX_2:Al,_emscripten_bind_btConeShapeX_calculateLocalInertia_2:fv,_emscripten_bind_btConeShapeX_getLocalScaling_0:Hz,_emscripten_bind_btConeShapeX_setLocalScaling_1:nx,_emscripten_bind_btConeShapeZ___destroy___0:Bw,_emscripten_bind_btConeShapeZ_btConeShapeZ_2:zl,_emscripten_bind_btConeShapeZ_calculateLocalInertia_2:fv,_emscripten_bind_btConeShapeZ_getLocalScaling_0:Hz,_emscripten_bind_btConeShapeZ_setLocalScaling_1:nx,_emscripten_bind_btConeShape___destroy___0:Bw,_emscripten_bind_btConeShape_btConeShape_2:Ol,_emscripten_bind_btConeShape_calculateLocalInertia_2:fv,_emscripten_bind_btConeShape_getLocalScaling_0:Hz,_emscripten_bind_btConeShape_setLocalScaling_1:nx,_emscripten_bind_btConeTwistConstraint___destroy___0:Bw,_emscripten_bind_btConeTwistConstraint_btConeTwistConstraint_2:zf,_emscripten_bind_btConeTwistConstraint_btConeTwistConstraint_4:Gf,_emscripten_bind_btConeTwistConstraint_enableFeedback_1:gz,_emscripten_bind_btConeTwistConstraint_enableMotor_1:Zy,_emscripten_bind_btConeTwistConstraint_getBreakingImpulseThreshold_0:iy,_emscripten_bind_btConeTwistConstraint_getParam_2:jv,_emscripten_bind_btConeTwistConstraint_setAngularOnly_1:py,_emscripten_bind_btConeTwistConstraint_setBreakingImpulseThreshold_1:Fw,_emscripten_bind_btConeTwistConstraint_setDamping_1:Gz,_emscripten_bind_btConeTwistConstraint_setLimit_2:Fx,_emscripten_bind_btConeTwistConstraint_setMaxMotorImpulseNormalized_1:Zv,_emscripten_bind_btConeTwistConstraint_setMaxMotorImpulse_1:Sx,_emscripten_bind_btConeTwistConstraint_setMotorTargetInConstraintSpace_1:zu,_emscripten_bind_btConeTwistConstraint_setMotorTarget_1:sh,_emscripten_bind_btConeTwistConstraint_setParam_3:yu,_emscripten_bind_btConstCollisionObjectArray___destroy___0:hy,_emscripten_bind_btConstCollisionObjectArray_at_1:ux,_emscripten_bind_btConstCollisionObjectArray_size_0:PF,_emscripten_bind_btConstraintSetting___destroy___0:nE,_emscripten_bind_btConstraintSetting_btConstraintSetting_0:tz,_emscripten_bind_btConstraintSetting_get_m_damping_0:nH,_emscripten_bind_btConstraintSetting_get_m_impulseClamp_0:BH,_emscripten_bind_btConstraintSetting_get_m_tau_0:gG,_emscripten_bind_btConstraintSetting_set_m_damping_1:OG,_emscripten_bind_btConstraintSetting_set_m_impulseClamp_1:NG,_emscripten_bind_btConstraintSetting_set_m_tau_1:hH,_emscripten_bind_btConstraintSolver___destroy___0:Bw,_emscripten_bind_btContactSolverInfo___destroy___0:nE,_emscripten_bind_btContactSolverInfo_get_m_numIterations_0:VG,_emscripten_bind_btContactSolverInfo_get_m_splitImpulsePenetrationThreshold_0:bB,_emscripten_bind_btContactSolverInfo_get_m_splitImpulse_0:LC,_emscripten_bind_btContactSolverInfo_set_m_numIterations_1:DE,_emscripten_bind_btContactSolverInfo_set_m_splitImpulsePenetrationThreshold_1:cy,_emscripten_bind_btContactSolverInfo_set_m_splitImpulse_1:TA,_emscripten_bind_btConvexHullShape___destroy___0:Bw,_emscripten_bind_btConvexHullShape_addPoint_1:Yy,_emscripten_bind_btConvexHullShape_addPoint_2:Sw,_emscripten_bind_btConvexHullShape_btConvexHullShape_0:ww,_emscripten_bind_btConvexHullShape_btConvexHullShape_1:ev,_emscripten_bind_btConvexHullShape_btConvexHullShape_2:ou,_emscripten_bind_btConvexHullShape_calculateLocalInertia_2:fv,_emscripten_bind_btConvexHullShape_getConvexPolyhedron_0:mE,_emscripten_bind_btConvexHullShape_getLocalScaling_0:Hz,_emscripten_bind_btConvexHullShape_getMargin_0:oA,_emscripten_bind_btConvexHullShape_getNumVertices_0:Uy,_emscripten_bind_btConvexHullShape_initializePolyhedralFeatures_1:wv,_emscripten_bind_btConvexHullShape_recalcLocalAabb_0:Fz,_emscripten_bind_btConvexHullShape_setLocalScaling_1:nx,_emscripten_bind_btConvexHullShape_setMargin_1:qy,_emscripten_bind_btConvexPolyhedron___destroy___0:Bw,_emscripten_bind_btConvexPolyhedron_get_m_faces_0:CI,_emscripten_bind_btConvexPolyhedron_get_m_vertices_0:sJ,_emscripten_bind_btConvexPolyhedron_set_m_faces_1:ky,_emscripten_bind_btConvexPolyhedron_set_m_vertices_1:Mx,_emscripten_bind_btConvexShape___destroy___0:Bw,_emscripten_bind_btConvexShape_calculateLocalInertia_2:fv,_emscripten_bind_btConvexShape_getLocalScaling_0:Hz,_emscripten_bind_btConvexShape_getMargin_0:oA,_emscripten_bind_btConvexShape_setLocalScaling_1:nx,_emscripten_bind_btConvexShape_setMargin_1:qy,_emscripten_bind_btConvexTriangleMeshShape___destroy___0:Bw,_emscripten_bind_btConvexTriangleMeshShape_btConvexTriangleMeshShape_1:Wk,_emscripten_bind_btConvexTriangleMeshShape_btConvexTriangleMeshShape_2:Dk,_emscripten_bind_btConvexTriangleMeshShape_calculateLocalInertia_2:fv,_emscripten_bind_btConvexTriangleMeshShape_getLocalScaling_0:Hz,_emscripten_bind_btConvexTriangleMeshShape_getMargin_0:oA,_emscripten_bind_btConvexTriangleMeshShape_setLocalScaling_1:nx,_emscripten_bind_btConvexTriangleMeshShape_setMargin_1:qy,_emscripten_bind_btCylinderShapeX___destroy___0:Bw,_emscripten_bind_btCylinderShapeX_btCylinderShapeX_1:kt,_emscripten_bind_btCylinderShapeX_calculateLocalInertia_2:fv,_emscripten_bind_btCylinderShapeX_getLocalScaling_0:Hz,_emscripten_bind_btCylinderShapeX_getMargin_0:oA,_emscripten_bind_btCylinderShapeX_setLocalScaling_1:nx,_emscripten_bind_btCylinderShapeX_setMargin_1:qy,_emscripten_bind_btCylinderShapeZ___destroy___0:Bw,_emscripten_bind_btCylinderShapeZ_btCylinderShapeZ_1:jt,_emscripten_bind_btCylinderShapeZ_calculateLocalInertia_2:fv,_emscripten_bind_btCylinderShapeZ_getLocalScaling_0:Hz,_emscripten_bind_btCylinderShapeZ_getMargin_0:oA,_emscripten_bind_btCylinderShapeZ_setLocalScaling_1:nx,_emscripten_bind_btCylinderShapeZ_setMargin_1:qy,_emscripten_bind_btCylinderShape___destroy___0:Bw,_emscripten_bind_btCylinderShape_btCylinderShape_1:hw,_emscripten_bind_btCylinderShape_calculateLocalInertia_2:fv,_emscripten_bind_btCylinderShape_getLocalScaling_0:Hz,_emscripten_bind_btCylinderShape_getMargin_0:oA,_emscripten_bind_btCylinderShape_setLocalScaling_1:nx,_emscripten_bind_btCylinderShape_setMargin_1:qy,_emscripten_bind_btDbvtBroadphase___destroy___0:Bw,_emscripten_bind_btDbvtBroadphase_btDbvtBroadphase_0:mx,_emscripten_bind_btDefaultCollisionConfiguration___destroy___0:Bw,_emscripten_bind_btDefaultCollisionConfiguration_btDefaultCollisionConfiguration_0:Rp,_emscripten_bind_btDefaultCollisionConfiguration_btDefaultCollisionConfiguration_1:Ps,_emscripten_bind_btDefaultCollisionConstructionInfo___destroy___0:nE,_emscripten_bind_btDefaultCollisionConstructionInfo_btDefaultCollisionConstructionInfo_0:av,_emscripten_bind_btDefaultMotionState___destroy___0:Bw,_emscripten_bind_btDefaultMotionState_btDefaultMotionState_0:Ir,_emscripten_bind_btDefaultMotionState_btDefaultMotionState_1:ls,_emscripten_bind_btDefaultMotionState_btDefaultMotionState_2:ot,_emscripten_bind_btDefaultMotionState_getWorldTransform_1:Mw,_emscripten_bind_btDefaultMotionState_get_m_graphicsWorldTrans_0:sJ,_emscripten_bind_btDefaultMotionState_setWorldTransform_1:Hw,_emscripten_bind_btDefaultMotionState_set_m_graphicsWorldTrans_1:Jy,_emscripten_bind_btDefaultSoftBodySolver___destroy___0:Bw,_emscripten_bind_btDefaultSoftBodySolver_btDefaultSoftBodySolver_0:Fp,_emscripten_bind_btDefaultVehicleRaycaster___destroy___0:Bw,_emscripten_bind_btDefaultVehicleRaycaster_btDefaultVehicleRaycaster_1:Mu,_emscripten_bind_btDefaultVehicleRaycaster_castRay_3:du,_emscripten_bind_btDiscreteDynamicsWorld___destroy___0:Bw,_emscripten_bind_btDiscreteDynamicsWorld_addAction_1:vx,_emscripten_bind_btDiscreteDynamicsWorld_addCollisionObject_1:dv,_emscripten_bind_btDiscreteDynamicsWorld_addCollisionObject_2:nu,_emscripten_bind_btDiscreteDynamicsWorld_addCollisionObject_3:Ot,_emscripten_bind_btDiscreteDynamicsWorld_addConstraint_1:Yv,_emscripten_bind_btDiscreteDynamicsWorld_addConstraint_2:Nu,_emscripten_bind_btDiscreteDynamicsWorld_addRigidBody_1:nw,_emscripten_bind_btDiscreteDynamicsWorld_addRigidBody_3:Kt,_emscripten_bind_btDiscreteDynamicsWorld_btDiscreteDynamicsWorld_4:cq,_emscripten_bind_btDiscreteDynamicsWorld_contactPairTest_3:bj,_emscripten_bind_btDiscreteDynamicsWorld_contactTest_2:ym,_emscripten_bind_btDiscreteDynamicsWorld_convexSweepTest_5:nr,_emscripten_bind_btDiscreteDynamicsWorld_debugDrawObject_3:Vt,_emscripten_bind_btDiscreteDynamicsWorld_debugDrawWorld_0:sz,_emscripten_bind_btDiscreteDynamicsWorld_getBroadphase_0:uD,_emscripten_bind_btDiscreteDynamicsWorld_getDebugDrawer_0:dz,_emscripten_bind_btDiscreteDynamicsWorld_getDispatchInfo_0:KC,_emscripten_bind_btDiscreteDynamicsWorld_getDispatcher_0:tD,_emscripten_bind_btDiscreteDynamicsWorld_getGravity_0:Mn,_emscripten_bind_btDiscreteDynamicsWorld_getPairCache_0:Nz,_emscripten_bind_btDiscreteDynamicsWorld_getSolverInfo_0:nC,_emscripten_bind_btDiscreteDynamicsWorld_rayTest_3:su,_emscripten_bind_btDiscreteDynamicsWorld_removeAction_1:Zw,_emscripten_bind_btDiscreteDynamicsWorld_removeCollisionObject_1:jw,_emscripten_bind_btDiscreteDynamicsWorld_removeConstraint_1:aw,_emscripten_bind_btDiscreteDynamicsWorld_removeRigidBody_1:cw,_emscripten_bind_btDiscreteDynamicsWorld_setContactAddedCallback_1:vw,_emscripten_bind_btDiscreteDynamicsWorld_setContactDestroyedCallback_1:Tv,_emscripten_bind_btDiscreteDynamicsWorld_setContactProcessedCallback_1:Sv,_emscripten_bind_btDiscreteDynamicsWorld_setDebugDrawer_1:Nw,_emscripten_bind_btDiscreteDynamicsWorld_setGravity_1:uw,_emscripten_bind_btDiscreteDynamicsWorld_stepSimulation_1:Lu,_emscripten_bind_btDiscreteDynamicsWorld_stepSimulation_2:Pt,_emscripten_bind_btDiscreteDynamicsWorld_stepSimulation_3:St,_emscripten_bind_btDiscreteDynamicsWorld_updateSingleAabb_1:Yw,_emscripten_bind_btDispatcherInfo___destroy___0:nE,_emscripten_bind_btDispatcherInfo_get_m_allowedCcdPenetration_0:sH,_emscripten_bind_btDispatcherInfo_get_m_convexConservativeDistanceThreshold_0:bH,_emscripten_bind_btDispatcherInfo_get_m_dispatchFunc_0:cF,_emscripten_bind_btDispatcherInfo_get_m_enableSPU_0:XD,_emscripten_bind_btDispatcherInfo_get_m_enableSatConvex_0:RC,_emscripten_bind_btDispatcherInfo_get_m_stepCount_0:rG,_emscripten_bind_btDispatcherInfo_get_m_timeOfImpact_0:rH,_emscripten_bind_btDispatcherInfo_get_m_timeStep_0:gG,_emscripten_bind_btDispatcherInfo_get_m_useContinuous_0:kD,_emscripten_bind_btDispatcherInfo_get_m_useConvexConservativeDistanceUtil_0:xA,_emscripten_bind_btDispatcherInfo_get_m_useEpa_0:rE,_emscripten_bind_btDispatcherInfo_set_m_allowedCcdPenetration_1:qF,_emscripten_bind_btDispatcherInfo_set_m_convexConservativeDistanceThreshold_1:fF,_emscripten_bind_btDispatcherInfo_set_m_dispatchFunc_1:OB,_emscripten_bind_btDispatcherInfo_set_m_enableSPU_1:IB,_emscripten_bind_btDispatcherInfo_set_m_enableSatConvex_1:aB,_emscripten_bind_btDispatcherInfo_set_m_stepCount_1:fC,_emscripten_bind_btDispatcherInfo_set_m_timeOfImpact_1:pG,_emscripten_bind_btDispatcherInfo_set_m_timeStep_1:hH,_emscripten_bind_btDispatcherInfo_set_m_useContinuous_1:mB,_emscripten_bind_btDispatcherInfo_set_m_useConvexConservativeDistanceUtil_1:Ty,_emscripten_bind_btDispatcherInfo_set_m_useEpa_1:WB,_emscripten_bind_btDispatcher___destroy___0:Bw,_emscripten_bind_btDispatcher_getManifoldByIndexInternal_1:$v,_emscripten_bind_btDispatcher_getNumManifolds_0:rA,_emscripten_bind_btDynamicsWorld___destroy___0:Bw,_emscripten_bind_btDynamicsWorld_addAction_1:vx,_emscripten_bind_btDynamicsWorld_addCollisionObject_1:Ov,_emscripten_bind_btDynamicsWorld_addCollisionObject_2:Ju,_emscripten_bind_btDynamicsWorld_addCollisionObject_3:Ot,_emscripten_bind_btDynamicsWorld_contactPairTest_3:bj,_emscripten_bind_btDynamicsWorld_contactTest_2:ym,_emscripten_bind_btDynamicsWorld_convexSweepTest_5:nr,_emscripten_bind_btDynamicsWorld_debugDrawObject_3:Vt,_emscripten_bind_btDynamicsWorld_debugDrawWorld_0:sz,_emscripten_bind_btDynamicsWorld_getBroadphase_0:uD,_emscripten_bind_btDynamicsWorld_getDebugDrawer_0:dz,_emscripten_bind_btDynamicsWorld_getDispatchInfo_0:KC,_emscripten_bind_btDynamicsWorld_getDispatcher_0:tD,_emscripten_bind_btDynamicsWorld_getPairCache_0:Nz,_emscripten_bind_btDynamicsWorld_getSolverInfo_0:nC,_emscripten_bind_btDynamicsWorld_rayTest_3:su,_emscripten_bind_btDynamicsWorld_removeAction_1:Zw,_emscripten_bind_btDynamicsWorld_removeCollisionObject_1:jw,_emscripten_bind_btDynamicsWorld_setDebugDrawer_1:Nw,_emscripten_bind_btDynamicsWorld_updateSingleAabb_1:Yw,_emscripten_bind_btFaceArray___destroy___0:Ax,_emscripten_bind_btFaceArray_at_1:Dy,_emscripten_bind_btFaceArray_size_0:PF,_emscripten_bind_btFace___destroy___0:MA,_emscripten_bind_btFace_get_m_indices_0:NJ,_emscripten_bind_btFace_get_m_plane_1:JC,_emscripten_bind_btFace_set_m_indices_1:hB,_emscripten_bind_btFace_set_m_plane_2:nA,_emscripten_bind_btFixedConstraint___destroy___0:Bw,_emscripten_bind_btFixedConstraint_btFixedConstraint_4:uh,_emscripten_bind_btFixedConstraint_enableFeedback_1:gz,_emscripten_bind_btFixedConstraint_getBreakingImpulseThreshold_0:iy,_emscripten_bind_btFixedConstraint_getParam_2:jv,_emscripten_bind_btFixedConstraint_setBreakingImpulseThreshold_1:Fw,_emscripten_bind_btFixedConstraint_setParam_3:yu,_emscripten_bind_btGeneric6DofConstraint___destroy___0:Bw,_emscripten_bind_btGeneric6DofConstraint_btGeneric6DofConstraint_3:Hr,_emscripten_bind_btGeneric6DofConstraint_btGeneric6DofConstraint_5:qq,_emscripten_bind_btGeneric6DofConstraint_enableFeedback_1:gz,_emscripten_bind_btGeneric6DofConstraint_getBreakingImpulseThreshold_0:iy,_emscripten_bind_btGeneric6DofConstraint_getFrameOffsetA_0:aF,_emscripten_bind_btGeneric6DofConstraint_getParam_2:jv,_emscripten_bind_btGeneric6DofConstraint_setAngularLowerLimit_1:Nv,_emscripten_bind_btGeneric6DofConstraint_setAngularUpperLimit_1:Mv,_emscripten_bind_btGeneric6DofConstraint_setBreakingImpulseThreshold_1:Fw,_emscripten_bind_btGeneric6DofConstraint_setLinearLowerLimit_1:Xv,_emscripten_bind_btGeneric6DofConstraint_setLinearUpperLimit_1:Wv,_emscripten_bind_btGeneric6DofConstraint_setParam_3:yu,_emscripten_bind_btGeneric6DofSpringConstraint___destroy___0:Bw,_emscripten_bind_btGeneric6DofSpringConstraint_btGeneric6DofSpringConstraint_3:Yk,_emscripten_bind_btGeneric6DofSpringConstraint_btGeneric6DofSpringConstraint_5:Fk,_emscripten_bind_btGeneric6DofSpringConstraint_enableFeedback_1:gz,_emscripten_bind_btGeneric6DofSpringConstraint_enableSpring_2:fr,_emscripten_bind_btGeneric6DofSpringConstraint_getBreakingImpulseThreshold_0:iy,_emscripten_bind_btGeneric6DofSpringConstraint_getFrameOffsetA_0:aF,_emscripten_bind_btGeneric6DofSpringConstraint_getParam_2:jv,_emscripten_bind_btGeneric6DofSpringConstraint_setAngularLowerLimit_1:Nv,_emscripten_bind_btGeneric6DofSpringConstraint_setAngularUpperLimit_1:Mv,_emscripten_bind_btGeneric6DofSpringConstraint_setBreakingImpulseThreshold_1:Fw,_emscripten_bind_btGeneric6DofSpringConstraint_setDamping_2:Lx,_emscripten_bind_btGeneric6DofSpringConstraint_setEquilibriumPoint_0:Ym,_emscripten_bind_btGeneric6DofSpringConstraint_setEquilibriumPoint_1:_o,_emscripten_bind_btGeneric6DofSpringConstraint_setEquilibriumPoint_2:Iw,_emscripten_bind_btGeneric6DofSpringConstraint_setLinearLowerLimit_1:Xv,_emscripten_bind_btGeneric6DofSpringConstraint_setLinearUpperLimit_1:Wv,_emscripten_bind_btGeneric6DofSpringConstraint_setParam_3:yu,_emscripten_bind_btGeneric6DofSpringConstraint_setStiffness_2:zx,_emscripten_bind_btGhostObject___destroy___0:zw,_emscripten_bind_btGhostObject_activate_0:zt,_emscripten_bind_btGhostObject_activate_1:ns,_emscripten_bind_btGhostObject_btGhostObject_0:di,_emscripten_bind_btGhostObject_forceActivationState_1:VB,_emscripten_bind_btGhostObject_getBroadphaseHandle_0:VC,_emscripten_bind_btGhostObject_getCollisionFlags_0:sD,_emscripten_bind_btGhostObject_getCollisionShape_0:rD,_emscripten_bind_btGhostObject_getFriction_0:IA,_emscripten_bind_btGhostObject_getNumOverlappingObjects_0:$z,_emscripten_bind_btGhostObject_getOverlappingObject_1:xy,_emscripten_bind_btGhostObject_getRestitution_0:lA,_emscripten_bind_btGhostObject_getRollingFriction_0:Tz,_emscripten_bind_btGhostObject_getUserIndex_0:UC,_emscripten_bind_btGhostObject_getUserPointer_0:WD,_emscripten_bind_btGhostObject_getWorldTransform_0:GF,_emscripten_bind_btGhostObject_isActive_0:gB,_emscripten_bind_btGhostObject_isKinematicObject_0:Ly,_emscripten_bind_btGhostObject_isStaticObject_0:Cz,_emscripten_bind_btGhostObject_isStaticOrKinematicObject_0:cx,_emscripten_bind_btGhostObject_setActivationState_1:Vv,_emscripten_bind_btGhostObject_setAnisotropicFriction_2:cv,_emscripten_bind_btGhostObject_setCcdMotionThreshold_1:Hy,_emscripten_bind_btGhostObject_setCcdSweptSphereRadius_1:ny,_emscripten_bind_btGhostObject_setCollisionFlags_1:pz,_emscripten_bind_btGhostObject_setCollisionShape_1:Vw,_emscripten_bind_btGhostObject_setContactProcessingThreshold_1:Oy,_emscripten_bind_btGhostObject_setFriction_1:fB,_emscripten_bind_btGhostObject_setRestitution_1:kA,_emscripten_bind_btGhostObject_setRollingFriction_1:xz,_emscripten_bind_btGhostObject_setUserIndex_1:vA,_emscripten_bind_btGhostObject_setUserPointer_1:Sz,_emscripten_bind_btGhostObject_setWorldTransform_1:Qx,_emscripten_bind_btGhostPairCallback___destroy___0:Bw,_emscripten_bind_btGhostPairCallback_btGhostPairCallback_0:Az,_emscripten_bind_btHeightfieldTerrainShape___destroy___0:Bw,_emscripten_bind_btHeightfieldTerrainShape_btHeightfieldTerrainShape_9:Wf,_emscripten_bind_btHeightfieldTerrainShape_calculateLocalInertia_2:fv,_emscripten_bind_btHeightfieldTerrainShape_getLocalScaling_0:Hz,_emscripten_bind_btHeightfieldTerrainShape_getMargin_0:oA,_emscripten_bind_btHeightfieldTerrainShape_setLocalScaling_1:nx,_emscripten_bind_btHeightfieldTerrainShape_setMargin_1:qy,_emscripten_bind_btHingeConstraint___destroy___0:Bw,_emscripten_bind_btHingeConstraint_btHingeConstraint_2:Ie,_emscripten_bind_btHingeConstraint_btHingeConstraint_3:Ge,_emscripten_bind_btHingeConstraint_btHingeConstraint_4:Pf,_emscripten_bind_btHingeConstraint_btHingeConstraint_5:Mf,_emscripten_bind_btHingeConstraint_btHingeConstraint_6:lq,_emscripten_bind_btHingeConstraint_btHingeConstraint_7:Np,_emscripten_bind_btHingeConstraint_enableAngularMotor_3:Uu,_emscripten_bind_btHingeConstraint_enableFeedback_1:gz,_emscripten_bind_btHingeConstraint_enableMotor_1:Xz,_emscripten_bind_btHingeConstraint_getBreakingImpulseThreshold_0:iy,_emscripten_bind_btHingeConstraint_getParam_2:jv,_emscripten_bind_btHingeConstraint_setAngularOnly_1:lz,_emscripten_bind_btHingeConstraint_setBreakingImpulseThreshold_1:Fw,_emscripten_bind_btHingeConstraint_setLimit_4:Su,_emscripten_bind_btHingeConstraint_setLimit_5:ju,_emscripten_bind_btHingeConstraint_setMaxMotorImpulse_1:Cy,_emscripten_bind_btHingeConstraint_setMotorTarget_2:ai,_emscripten_bind_btHingeConstraint_setParam_3:yu,_emscripten_bind_btIDebugDraw___destroy___0:Bw,_emscripten_bind_btIDebugDraw_draw3dText_2:Dv,_emscripten_bind_btIDebugDraw_drawContactPoint_5:is,_emscripten_bind_btIDebugDraw_drawLine_3:Au,_emscripten_bind_btIDebugDraw_getDebugMode_0:Oz,_emscripten_bind_btIDebugDraw_reportErrorWarning_1:Ow,_emscripten_bind_btIDebugDraw_setDebugMode_1:Bx,_emscripten_bind_btIndexedMeshArray___destroy___0:hy,_emscripten_bind_btIndexedMeshArray_at_1:Xw,_emscripten_bind_btIndexedMeshArray_size_0:PF,_emscripten_bind_btIndexedMesh___destroy___0:DB,_emscripten_bind_btIndexedMesh_get_m_numTriangles_0:MH,_emscripten_bind_btIndexedMesh_set_m_numTriangles_1:rF,_emscripten_bind_btIntArray___destroy___0:hy,_emscripten_bind_btIntArray_at_1:ux,_emscripten_bind_btIntArray_size_0:PF,_emscripten_bind_btKinematicCharacterController___destroy___0:Bw,_emscripten_bind_btKinematicCharacterController_btKinematicCharacterController_3:yj,_emscripten_bind_btKinematicCharacterController_btKinematicCharacterController_4:qj,_emscripten_bind_btKinematicCharacterController_canJump_0:jy,_emscripten_bind_btKinematicCharacterController_getGhostObject_0:cF,_emscripten_bind_btKinematicCharacterController_getGravity_0:$G,_emscripten_bind_btKinematicCharacterController_getMaxSlope_0:bH,_emscripten_bind_btKinematicCharacterController_jump_0:Iy,_emscripten_bind_btKinematicCharacterController_onGround_0:Oz,_emscripten_bind_btKinematicCharacterController_playerStep_2:Ou,_emscripten_bind_btKinematicCharacterController_preStep_1:gw,_emscripten_bind_btKinematicCharacterController_setFallSpeed_1:mF,_emscripten_bind_btKinematicCharacterController_setGravity_1:NF,_emscripten_bind_btKinematicCharacterController_setJumpSpeed_1:qF,_emscripten_bind_btKinematicCharacterController_setMaxJumpHeight_1:oF,_emscripten_bind_btKinematicCharacterController_setMaxSlope_1:Aw,_emscripten_bind_btKinematicCharacterController_setUpAxis_1:Ex,_emscripten_bind_btKinematicCharacterController_setUpInterpolate_1:vv,_emscripten_bind_btKinematicCharacterController_setUseGhostSweepTest_1:yv,_emscripten_bind_btKinematicCharacterController_setVelocityForTimeInterval_2:au,_emscripten_bind_btKinematicCharacterController_setWalkDirection_1:uv,_emscripten_bind_btKinematicCharacterController_updateAction_2:xv,_emscripten_bind_btKinematicCharacterController_warp_1:pw,_emscripten_bind_btManifoldPoint___destroy___0:nE,_emscripten_bind_btManifoldPoint_getAppliedImpulse_0:zz,_emscripten_bind_btManifoldPoint_getDistance_0:gA,_emscripten_bind_btManifoldPoint_getPositionWorldOnA_0:aF,_emscripten_bind_btManifoldPoint_getPositionWorldOnB_0:LA,_emscripten_bind_btManifoldPoint_get_m_localPointA_0:NJ,_emscripten_bind_btManifoldPoint_get_m_localPointB_0:PG,_emscripten_bind_btManifoldPoint_get_m_normalWorldOnB_0:kG,_emscripten_bind_btManifoldPoint_get_m_positionWorldOnA_0:MI,_emscripten_bind_btManifoldPoint_get_m_positionWorldOnB_0:IH,_emscripten_bind_btManifoldPoint_get_m_userPersistentData_0:gE,_emscripten_bind_btManifoldPoint_set_m_localPointA_1:Sr,_emscripten_bind_btManifoldPoint_set_m_localPointB_1:Br,_emscripten_bind_btManifoldPoint_set_m_normalWorldOnB_1:ur,_emscripten_bind_btManifoldPoint_set_m_positionWorldOnA_1:Kr,_emscripten_bind_btManifoldPoint_set_m_positionWorldOnB_1:qr,_emscripten_bind_btManifoldPoint_set_m_userPersistentData_1:$A,_emscripten_bind_btMatrix3x3___destroy___0:nE,_emscripten_bind_btMatrix3x3_getRotation_1:Ez,_emscripten_bind_btMatrix3x3_getRow_1:jp,_emscripten_bind_btMatrix3x3_setEulerZYX_3:fx,_emscripten_bind_btMotionState___destroy___0:Bw,_emscripten_bind_btMotionState_getWorldTransform_1:Mw,_emscripten_bind_btMotionState_setWorldTransform_1:Hw,_emscripten_bind_btMultiSphereShape___destroy___0:Bw,_emscripten_bind_btMultiSphereShape_btMultiSphereShape_3:Td,_emscripten_bind_btMultiSphereShape_calculateLocalInertia_2:fv,_emscripten_bind_btMultiSphereShape_getLocalScaling_0:Hz,_emscripten_bind_btMultiSphereShape_setLocalScaling_1:nx,_emscripten_bind_btOverlappingPairCache___destroy___0:Bw,_emscripten_bind_btOverlappingPairCache_getNumOverlappingPairs_0:Lw,_emscripten_bind_btOverlappingPairCache_setInternalGhostPairCallback_1:aw,_emscripten_bind_btOverlappingPairCallback___destroy___0:Bw,_emscripten_bind_btPairCachingGhostObject___destroy___0:zw,_emscripten_bind_btPairCachingGhostObject_activate_0:zt,_emscripten_bind_btPairCachingGhostObject_activate_1:ns,_emscripten_bind_btPairCachingGhostObject_btPairCachingGhostObject_0:gh,_emscripten_bind_btPairCachingGhostObject_forceActivationState_1:VB,_emscripten_bind_btPairCachingGhostObject_getBroadphaseHandle_0:VC,_emscripten_bind_btPairCachingGhostObject_getCollisionFlags_0:sD,_emscripten_bind_btPairCachingGhostObject_getCollisionShape_0:rD,_emscripten_bind_btPairCachingGhostObject_getFriction_0:IA,_emscripten_bind_btPairCachingGhostObject_getNumOverlappingObjects_0:$z,_emscripten_bind_btPairCachingGhostObject_getOverlappingObject_1:xy,_emscripten_bind_btPairCachingGhostObject_getRestitution_0:lA,_emscripten_bind_btPairCachingGhostObject_getRollingFriction_0:Tz,_emscripten_bind_btPairCachingGhostObject_getUserIndex_0:UC,_emscripten_bind_btPairCachingGhostObject_getUserPointer_0:WD,_emscripten_bind_btPairCachingGhostObject_getWorldTransform_0:GF,_emscripten_bind_btPairCachingGhostObject_isActive_0:gB,_emscripten_bind_btPairCachingGhostObject_isKinematicObject_0:Ly,_emscripten_bind_btPairCachingGhostObject_isStaticObject_0:Cz,_emscripten_bind_btPairCachingGhostObject_isStaticOrKinematicObject_0:cx,_emscripten_bind_btPairCachingGhostObject_setActivationState_1:Vv,_emscripten_bind_btPairCachingGhostObject_setAnisotropicFriction_2:cv,_emscripten_bind_btPairCachingGhostObject_setCcdMotionThreshold_1:Hy,_emscripten_bind_btPairCachingGhostObject_setCcdSweptSphereRadius_1:ny,_emscripten_bind_btPairCachingGhostObject_setCollisionFlags_1:pz,_emscripten_bind_btPairCachingGhostObject_setCollisionShape_1:Vw,_emscripten_bind_btPairCachingGhostObject_setContactProcessingThreshold_1:Oy,_emscripten_bind_btPairCachingGhostObject_setFriction_1:fB,_emscripten_bind_btPairCachingGhostObject_setRestitution_1:kA,_emscripten_bind_btPairCachingGhostObject_setRollingFriction_1:xz,_emscripten_bind_btPairCachingGhostObject_setUserIndex_1:vA,_emscripten_bind_btPairCachingGhostObject_setUserPointer_1:Sz,_emscripten_bind_btPairCachingGhostObject_setWorldTransform_1:Qx,_emscripten_bind_btPersistentManifold___destroy___0:DB,_emscripten_bind_btPersistentManifold_btPersistentManifold_0:hi,_emscripten_bind_btPersistentManifold_getBody0_0:jD,_emscripten_bind_btPersistentManifold_getBody1_0:iD,_emscripten_bind_btPersistentManifold_getContactPoint_1:by,_emscripten_bind_btPersistentManifold_getNumContacts_0:eC,_emscripten_bind_btPoint2PointConstraint___destroy___0:Bw,_emscripten_bind_btPoint2PointConstraint_btPoint2PointConstraint_2:Yh,_emscripten_bind_btPoint2PointConstraint_btPoint2PointConstraint_4:Aj,_emscripten_bind_btPoint2PointConstraint_enableFeedback_1:gz,_emscripten_bind_btPoint2PointConstraint_getBreakingImpulseThreshold_0:iy,_emscripten_bind_btPoint2PointConstraint_getParam_2:jv,_emscripten_bind_btPoint2PointConstraint_getPivotInA_0:KA,_emscripten_bind_btPoint2PointConstraint_getPivotInB_0:JA,_emscripten_bind_btPoint2PointConstraint_get_m_setting_0:nI,_emscripten_bind_btPoint2PointConstraint_setBreakingImpulseThreshold_1:Fw,_emscripten_bind_btPoint2PointConstraint_setParam_3:yu,_emscripten_bind_btPoint2PointConstraint_setPivotA_1:_x,_emscripten_bind_btPoint2PointConstraint_setPivotB_1:Zx,_emscripten_bind_btPoint2PointConstraint_set_m_setting_1:Js,_emscripten_bind_btQuadWord___destroy___0:nE,_emscripten_bind_btQuadWord_setW_1:qE,_emscripten_bind_btQuadWord_setX_1:ME,_emscripten_bind_btQuadWord_setY_1:LE,_emscripten_bind_btQuadWord_setZ_1:KE,_emscripten_bind_btQuadWord_w_0:$E,_emscripten_bind_btQuadWord_x_0:fG,_emscripten_bind_btQuadWord_y_0:_E,_emscripten_bind_btQuadWord_z_0:ZE,_emscripten_bind_btQuaternion___destroy___0:nE,_emscripten_bind_btQuaternion_angleShortestPath_1:Xy,_emscripten_bind_btQuaternion_angle_1:SB,_emscripten_bind_btQuaternion_btQuaternion_4:Bo,_emscripten_bind_btQuaternion_dot_1:BC,_emscripten_bind_btQuaternion_getAngleShortestPath_0:lB,_emscripten_bind_btQuaternion_getAngle_0:NB,_emscripten_bind_btQuaternion_getAxis_0:no,_emscripten_bind_btQuaternion_inverse_0:mo,_emscripten_bind_btQuaternion_length2_0:lF,_emscripten_bind_btQuaternion_length_0:HF,_emscripten_bind_btQuaternion_normalize_0:bF,_emscripten_bind_btQuaternion_normalized_0:jo,_emscripten_bind_btQuaternion_op_add_1:AC,_emscripten_bind_btQuaternion_op_div_1:hD,_emscripten_bind_btQuaternion_op_mul_1:nt,_emscripten_bind_btQuaternion_op_mulq_1:mC,_emscripten_bind_btQuaternion_op_sub_1:zC,_emscripten_bind_btQuaternion_setEulerZYX_3:ow,_emscripten_bind_btQuaternion_setRotation_2:tx,_emscripten_bind_btQuaternion_setValue_4:ap,_emscripten_bind_btQuaternion_setW_1:qE,_emscripten_bind_btQuaternion_setX_1:ME,_emscripten_bind_btQuaternion_setY_1:LE,_emscripten_bind_btQuaternion_setZ_1:KE,_emscripten_bind_btQuaternion_w_0:$E,_emscripten_bind_btQuaternion_x_0:fG,_emscripten_bind_btQuaternion_y_0:_E,_emscripten_bind_btQuaternion_z_0:ZE,_emscripten_bind_btRaycastVehicle___destroy___0:Bw,_emscripten_bind_btRaycastVehicle_addWheel_7:Vc,_emscripten_bind_btRaycastVehicle_applyEngineForce_2:Iv,_emscripten_bind_btRaycastVehicle_btRaycastVehicle_3:rk,_emscripten_bind_btRaycastVehicle_getChassisWorldTransform_0:dC,_emscripten_bind_btRaycastVehicle_getCurrentSpeedKmHour_0:Sy,_emscripten_bind_btRaycastVehicle_getForwardAxis_0:QC,_emscripten_bind_btRaycastVehicle_getForwardVector_0:mn,_emscripten_bind_btRaycastVehicle_getNumWheels_0:cC,_emscripten_bind_btRaycastVehicle_getRightAxis_0:gD,_emscripten_bind_btRaycastVehicle_getRigidBody_0:fD,_emscripten_bind_btRaycastVehicle_getSteeringValue_1:lx,_emscripten_bind_btRaycastVehicle_getUpAxis_0:KD,_emscripten_bind_btRaycastVehicle_getUserConstraintId_0:bC,_emscripten_bind_btRaycastVehicle_getUserConstraintType_0:RB,_emscripten_bind_btRaycastVehicle_getWheelInfo_1:Wz,_emscripten_bind_btRaycastVehicle_getWheelTransformWS_1:wy,_emscripten_bind_btRaycastVehicle_rayCast_1:yz,_emscripten_bind_btRaycastVehicle_resetSuspension_0:cl,_emscripten_bind_btRaycastVehicle_setBrake_2:mw,_emscripten_bind_btRaycastVehicle_setCoordinateSystem_3:Jt,_emscripten_bind_btRaycastVehicle_setPitchControl_1:Dz,_emscripten_bind_btRaycastVehicle_setSteeringValue_2:Hv,_emscripten_bind_btRaycastVehicle_setUserConstraintId_1:oy,_emscripten_bind_btRaycastVehicle_setUserConstraintType_1:Yx,_emscripten_bind_btRaycastVehicle_updateAction_2:xv,_emscripten_bind_btRaycastVehicle_updateFriction_1:ex,_emscripten_bind_btRaycastVehicle_updateSuspension_1:Nk,_emscripten_bind_btRaycastVehicle_updateVehicle_1:kx,_emscripten_bind_btRaycastVehicle_updateWheelTransform_2:mt,_emscripten_bind_btRaycastVehicle_updateWheelTransformsWS_1:Cu,_emscripten_bind_btRaycastVehicle_updateWheelTransformsWS_2:Et,_emscripten_bind_btRigidBodyConstructionInfo___destroy___0:nE,_emscripten_bind_btRigidBodyConstructionInfo_btRigidBodyConstructionInfo_3:fn,_emscripten_bind_btRigidBodyConstructionInfo_btRigidBodyConstructionInfo_4:Iq,_emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalAngularDampingFactor_0:wA,_emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalAngularDampingThresholdSqr_0:Mz,_emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalDampingFactor_0:tB,_emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalDamping_0:_A,_emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalLinearDampingThresholdSqr_0:Vz,_emscripten_bind_btRigidBodyConstructionInfo_get_m_angularDamping_0:IC,_emscripten_bind_btRigidBodyConstructionInfo_get_m_angularSleepingThreshold_0:kB,_emscripten_bind_btRigidBodyConstructionInfo_get_m_friction_0:BD,_emscripten_bind_btRigidBodyConstructionInfo_get_m_linearDamping_0:_G,_emscripten_bind_btRigidBodyConstructionInfo_get_m_linearSleepingThreshold_0:sB,_emscripten_bind_btRigidBodyConstructionInfo_get_m_restitution_0:WC,_emscripten_bind_btRigidBodyConstructionInfo_get_m_rollingFriction_0:lC,_emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalAngularDampingFactor_1:sy,_emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalAngularDampingThresholdSqr_1:Rx,_emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalDampingFactor_1:kz,_emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalDamping_1:rz,_emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalLinearDampingThresholdSqr_1:Xx,_emscripten_bind_btRigidBodyConstructionInfo_set_m_angularDamping_1:mA,_emscripten_bind_btRigidBodyConstructionInfo_set_m_angularSleepingThreshold_1:cz,_emscripten_bind_btRigidBodyConstructionInfo_set_m_friction_1:ZA,_emscripten_bind_btRigidBodyConstructionInfo_set_m_linearDamping_1:dF,_emscripten_bind_btRigidBodyConstructionInfo_set_m_linearSleepingThreshold_1:jz,_emscripten_bind_btRigidBodyConstructionInfo_set_m_restitution_1:EA,_emscripten_bind_btRigidBodyConstructionInfo_set_m_rollingFriction_1:aE,_emscripten_bind_btRigidBody___destroy___0:zw,_emscripten_bind_btRigidBody_activate_0:zt,_emscripten_bind_btRigidBody_activate_1:ns,_emscripten_bind_btRigidBody_applyCentralForce_1:eu,_emscripten_bind_btRigidBody_applyCentralImpulse_1:Rt,_emscripten_bind_btRigidBody_applyCentralLocalForce_1:At,_emscripten_bind_btRigidBody_applyForce_2:yx,_emscripten_bind_btRigidBody_applyGravity_0:Xn,_emscripten_bind_btRigidBody_applyImpulse_2:Ww,_emscripten_bind_btRigidBody_applyLocalTorque_1:iu,_emscripten_bind_btRigidBody_applyTorqueImpulse_1:_t,_emscripten_bind_btRigidBody_applyTorque_1:Iu,_emscripten_bind_btRigidBody_btRigidBody_1:Rh,_emscripten_bind_btRigidBody_forceActivationState_1:VB,_emscripten_bind_btRigidBody_getAabb_2:Os,_emscripten_bind_btRigidBody_getAngularDamping_0:Uz,_emscripten_bind_btRigidBody_getAngularFactor_0:yC,_emscripten_bind_btRigidBody_getAngularVelocity_0:QB,_emscripten_bind_btRigidBody_getBroadphaseHandle_0:VC,_emscripten_bind_btRigidBody_getBroadphaseProxy_0:VC,_emscripten_bind_btRigidBody_getCenterOfMassTransform_0:GF,_emscripten_bind_btRigidBody_getCollisionFlags_0:sD,_emscripten_bind_btRigidBody_getCollisionShape_0:rD,_emscripten_bind_btRigidBody_getFriction_0:IA,_emscripten_bind_btRigidBody_getGravity_0:zE,_emscripten_bind_btRigidBody_getLinearDamping_0:_z,_emscripten_bind_btRigidBody_getLinearFactor_0:PC,_emscripten_bind_btRigidBody_getLinearVelocity_0:aC,_emscripten_bind_btRigidBody_getMotionState_0:JD,_emscripten_bind_btRigidBody_getRestitution_0:lA,_emscripten_bind_btRigidBody_getRollingFriction_0:Tz,_emscripten_bind_btRigidBody_getUserIndex_0:UC,_emscripten_bind_btRigidBody_getUserPointer_0:WD,_emscripten_bind_btRigidBody_getWorldTransform_0:GF,_emscripten_bind_btRigidBody_isActive_0:gB,_emscripten_bind_btRigidBody_isKinematicObject_0:Ly,_emscripten_bind_btRigidBody_isStaticObject_0:Cz,_emscripten_bind_btRigidBody_isStaticOrKinematicObject_0:cx,_emscripten_bind_btRigidBody_setActivationState_1:Vv,_emscripten_bind_btRigidBody_setAngularFactor_1:Ry,_emscripten_bind_btRigidBody_setAngularVelocity_1:ry,_emscripten_bind_btRigidBody_setAnisotropicFriction_2:cv,_emscripten_bind_btRigidBody_setCcdMotionThreshold_1:Hy,_emscripten_bind_btRigidBody_setCcdSweptSphereRadius_1:ny,_emscripten_bind_btRigidBody_setCenterOfMassTransform_1:Kw,_emscripten_bind_btRigidBody_setCollisionFlags_1:pz,_emscripten_bind_btRigidBody_setCollisionShape_1:Vw,_emscripten_bind_btRigidBody_setContactProcessingThreshold_1:Oy,_emscripten_bind_btRigidBody_setDamping_2:ln,_emscripten_bind_btRigidBody_setFriction_1:fB,_emscripten_bind_btRigidBody_setGravity_1:pm,_emscripten_bind_btRigidBody_setLinearFactor_1:bz,_emscripten_bind_btRigidBody_setLinearVelocity_1:By,_emscripten_bind_btRigidBody_setMassProps_2:dj,_emscripten_bind_btRigidBody_setMotionState_1:Qy,_emscripten_bind_btRigidBody_setRestitution_1:kA,_emscripten_bind_btRigidBody_setRollingFriction_1:xz,_emscripten_bind_btRigidBody_setSleepingThresholds_2:dx,_emscripten_bind_btRigidBody_setUserIndex_1:vA,_emscripten_bind_btRigidBody_setUserPointer_1:Sz,_emscripten_bind_btRigidBody_setWorldTransform_1:Qx,_emscripten_bind_btRigidBody_upcast_1:DA,_emscripten_bind_btRigidBody_updateInertiaTensor_0:Yi,_emscripten_bind_btScalarArray___destroy___0:hy,_emscripten_bind_btScalarArray_at_1:Rw,_emscripten_bind_btScalarArray_size_0:PF,_emscripten_bind_btSequentialImpulseConstraintSolver___destroy___0:Bw,_emscripten_bind_btSequentialImpulseConstraintSolver_btSequentialImpulseConstraintSolver_0:lj,_emscripten_bind_btShapeHull___destroy___0:Ng,_emscripten_bind_btShapeHull_btShapeHull_1:Yo,_emscripten_bind_btShapeHull_buildHull_1:rc,_emscripten_bind_btShapeHull_getVertexPointer_0:xC,_emscripten_bind_btShapeHull_numVertices_0:rG,_emscripten_bind_btSliderConstraint___destroy___0:Bw,_emscripten_bind_btSliderConstraint_btSliderConstraint_3:Kd,_emscripten_bind_btSliderConstraint_btSliderConstraint_5:xe,_emscripten_bind_btSliderConstraint_enableFeedback_1:gz,_emscripten_bind_btSliderConstraint_getBreakingImpulseThreshold_0:iy,_emscripten_bind_btSliderConstraint_getParam_2:jv,_emscripten_bind_btSliderConstraint_setBreakingImpulseThreshold_1:Fw,_emscripten_bind_btSliderConstraint_setLowerAngLimit_1:Py,_emscripten_bind_btSliderConstraint_setLowerLinLimit_1:Oy,_emscripten_bind_btSliderConstraint_setParam_3:yu,_emscripten_bind_btSliderConstraint_setUpperAngLimit_1:Ny,_emscripten_bind_btSliderConstraint_setUpperLinLimit_1:My,_emscripten_bind_btSoftBodyArray___destroy___0:hy,_emscripten_bind_btSoftBodyArray_at_1:ux,_emscripten_bind_btSoftBodyArray_size_0:PF,_emscripten_bind_btSoftBodyHelpers_CreateEllipsoid_4:lg,_emscripten_bind_btSoftBodyHelpers_CreateFromConvexHull_4:ds,_emscripten_bind_btSoftBodyHelpers_CreateFromTriMesh_5:Jc,_emscripten_bind_btSoftBodyHelpers_CreatePatchUV_10:fc,_emscripten_bind_btSoftBodyHelpers_CreatePatch_9:lc,_emscripten_bind_btSoftBodyHelpers_CreateRope_5:Rf,_emscripten_bind_btSoftBodyHelpers___destroy___0:nE,_emscripten_bind_btSoftBodyHelpers_btSoftBodyHelpers_0:dI,_emscripten_bind_btSoftBodyRigidBodyCollisionConfiguration___destroy___0:Bw,_emscripten_bind_btSoftBodyRigidBodyCollisionConfiguration_btSoftBodyRigidBodyCollisionConfiguration_0:np,_emscripten_bind_btSoftBodyRigidBodyCollisionConfiguration_btSoftBodyRigidBodyCollisionConfiguration_1:Or,_emscripten_bind_btSoftBodySolver___destroy___0:Bw,_emscripten_bind_btSoftBodyWorldInfo___destroy___0:Kx,_emscripten_bind_btSoftBodyWorldInfo_btSoftBodyWorldInfo_0:iz,_emscripten_bind_btSoftBodyWorldInfo_get_air_density_0:gG,_emscripten_bind_btSoftBodyWorldInfo_get_m_broadphase_0:OE,_emscripten_bind_btSoftBodyWorldInfo_get_m_dispatcher_0:NE,_emscripten_bind_btSoftBodyWorldInfo_get_m_gravity_0:BI,_emscripten_bind_btSoftBodyWorldInfo_get_m_maxDisplacement_0:rH,_emscripten_bind_btSoftBodyWorldInfo_get_water_density_0:nH,_emscripten_bind_btSoftBodyWorldInfo_get_water_normal_0:PG,_emscripten_bind_btSoftBodyWorldInfo_get_water_offset_0:BH,_emscripten_bind_btSoftBodyWorldInfo_set_air_density_1:hH,_emscripten_bind_btSoftBodyWorldInfo_set_m_broadphase_1:FB,_emscripten_bind_btSoftBodyWorldInfo_set_m_dispatcher_1:EB,_emscripten_bind_btSoftBodyWorldInfo_set_m_gravity_1:Ur,_emscripten_bind_btSoftBodyWorldInfo_set_m_maxDisplacement_1:pG,_emscripten_bind_btSoftBodyWorldInfo_set_water_density_1:OG,_emscripten_bind_btSoftBodyWorldInfo_set_water_normal_1:Br,_emscripten_bind_btSoftBodyWorldInfo_set_water_offset_1:NG,_emscripten_bind_btSoftBody___destroy___0:zw,_emscripten_bind_btSoftBody_activate_0:zt,_emscripten_bind_btSoftBody_activate_1:ns,_emscripten_bind_btSoftBody_addAeroForceToNode_2:lw,_emscripten_bind_btSoftBody_addForce_1:Xl,_emscripten_bind_btSoftBody_addForce_2:kn,_emscripten_bind_btSoftBody_appendAnchor_4:_e,_emscripten_bind_btSoftBody_appendFace_4:xu,_emscripten_bind_btSoftBody_appendLink_4:wu,_emscripten_bind_btSoftBody_appendMaterial_0:ID,_emscripten_bind_btSoftBody_appendNode_2:Xb,_emscripten_bind_btSoftBody_appendTetra_5:Oe,_emscripten_bind_btSoftBody_btSoftBody_4:Tr,_emscripten_bind_btSoftBody_checkFace_3:Zj,_emscripten_bind_btSoftBody_checkLink_2:bl,_emscripten_bind_btSoftBody_forceActivationState_1:VB,_emscripten_bind_btSoftBody_generateBendingConstraints_2:Ub,_emscripten_bind_btSoftBody_generateClusters_1:qz,_emscripten_bind_btSoftBody_generateClusters_2:Dx,_emscripten_bind_btSoftBody_getBroadphaseHandle_0:VC,_emscripten_bind_btSoftBody_getCollisionFlags_0:sD,_emscripten_bind_btSoftBody_getCollisionShape_0:rD,_emscripten_bind_btSoftBody_getFriction_0:IA,_emscripten_bind_btSoftBody_getRestitution_0:lA,_emscripten_bind_btSoftBody_getRollingFriction_0:Tz,_emscripten_bind_btSoftBody_getTotalMass_0:Co,_emscripten_bind_btSoftBody_getUserIndex_0:UC,_emscripten_bind_btSoftBody_getUserPointer_0:WD,_emscripten_bind_btSoftBody_getWorldTransform_0:GF,_emscripten_bind_btSoftBody_get_m_anchors_0:LH,_emscripten_bind_btSoftBody_get_m_cfg_0:cI,_emscripten_bind_btSoftBody_get_m_materials_0:zH,_emscripten_bind_btSoftBody_get_m_nodes_0:TH,_emscripten_bind_btSoftBody_isActive_0:gB,_emscripten_bind_btSoftBody_isKinematicObject_0:Ly,_emscripten_bind_btSoftBody_isStaticObject_0:Cz,_emscripten_bind_btSoftBody_isStaticOrKinematicObject_0:cx,_emscripten_bind_btSoftBody_rotate_1:oj,_emscripten_bind_btSoftBody_scale_1:Xd,_emscripten_bind_btSoftBody_setActivationState_1:Vv,_emscripten_bind_btSoftBody_setAnisotropicFriction_2:cv,_emscripten_bind_btSoftBody_setCcdMotionThreshold_1:Hy,_emscripten_bind_btSoftBody_setCcdSweptSphereRadius_1:ny,_emscripten_bind_btSoftBody_setCollisionFlags_1:pz,_emscripten_bind_btSoftBody_setCollisionShape_1:Vw,_emscripten_bind_btSoftBody_setContactProcessingThreshold_1:Oy,_emscripten_bind_btSoftBody_setFriction_1:fB,_emscripten_bind_btSoftBody_setMass_2:$t,_emscripten_bind_btSoftBody_setRestitution_1:kA,_emscripten_bind_btSoftBody_setRollingFriction_1:xz,_emscripten_bind_btSoftBody_setTotalMass_2:tg,_emscripten_bind_btSoftBody_setUserIndex_1:vA,_emscripten_bind_btSoftBody_setUserPointer_1:Sz,_emscripten_bind_btSoftBody_setWorldTransform_1:Qx,_emscripten_bind_btSoftBody_set_m_anchors_1:jx,_emscripten_bind_btSoftBody_set_m_cfg_1:CA,_emscripten_bind_btSoftBody_set_m_materials_1:Gw,_emscripten_bind_btSoftBody_set_m_nodes_1:Jx,_emscripten_bind_btSoftBody_transform_1:uA,_emscripten_bind_btSoftBody_translate_1:pl,_emscripten_bind_btSoftBody_upcast_1:SA,_emscripten_bind_btSoftRigidDynamicsWorld___destroy___0:Bw,_emscripten_bind_btSoftRigidDynamicsWorld_addAction_1:vx,_emscripten_bind_btSoftRigidDynamicsWorld_addCollisionObject_1:dv,_emscripten_bind_btSoftRigidDynamicsWorld_addCollisionObject_2:nu,_emscripten_bind_btSoftRigidDynamicsWorld_addCollisionObject_3:Ot,_emscripten_bind_btSoftRigidDynamicsWorld_addConstraint_1:Yv,_emscripten_bind_btSoftRigidDynamicsWorld_addConstraint_2:Nu,_emscripten_bind_btSoftRigidDynamicsWorld_addRigidBody_1:nw,_emscripten_bind_btSoftRigidDynamicsWorld_addRigidBody_3:Kt,_emscripten_bind_btSoftRigidDynamicsWorld_addSoftBody_3:Ai,_emscripten_bind_btSoftRigidDynamicsWorld_btSoftRigidDynamicsWorld_5:Ae,_emscripten_bind_btSoftRigidDynamicsWorld_contactPairTest_3:bj,_emscripten_bind_btSoftRigidDynamicsWorld_contactTest_2:ym,_emscripten_bind_btSoftRigidDynamicsWorld_convexSweepTest_5:nr,_emscripten_bind_btSoftRigidDynamicsWorld_debugDrawObject_3:Vt,_emscripten_bind_btSoftRigidDynamicsWorld_debugDrawWorld_0:sz,_emscripten_bind_btSoftRigidDynamicsWorld_getBroadphase_0:uD,_emscripten_bind_btSoftRigidDynamicsWorld_getDebugDrawer_0:dz,_emscripten_bind_btSoftRigidDynamicsWorld_getDispatchInfo_0:KC,_emscripten_bind_btSoftRigidDynamicsWorld_getDispatcher_0:tD,_emscripten_bind_btSoftRigidDynamicsWorld_getGravity_0:Kn,_emscripten_bind_btSoftRigidDynamicsWorld_getPairCache_0:Nz,_emscripten_bind_btSoftRigidDynamicsWorld_getSoftBodyArray_0:wz,_emscripten_bind_btSoftRigidDynamicsWorld_getSolverInfo_0:nC,_emscripten_bind_btSoftRigidDynamicsWorld_getWorldInfo_0:jA,_emscripten_bind_btSoftRigidDynamicsWorld_rayTest_3:su,_emscripten_bind_btSoftRigidDynamicsWorld_removeAction_1:Zw,_emscripten_bind_btSoftRigidDynamicsWorld_removeCollisionObject_1:jw,_emscripten_bind_btSoftRigidDynamicsWorld_removeConstraint_1:aw,_emscripten_bind_btSoftRigidDynamicsWorld_removeRigidBody_1:cw,_emscripten_bind_btSoftRigidDynamicsWorld_removeSoftBody_1:Xh,_emscripten_bind_btSoftRigidDynamicsWorld_setContactAddedCallback_1:vw,_emscripten_bind_btSoftRigidDynamicsWorld_setContactDestroyedCallback_1:Tv,_emscripten_bind_btSoftRigidDynamicsWorld_setContactProcessedCallback_1:Sv,_emscripten_bind_btSoftRigidDynamicsWorld_setDebugDrawer_1:Nw,_emscripten_bind_btSoftRigidDynamicsWorld_setGravity_1:uw,_emscripten_bind_btSoftRigidDynamicsWorld_stepSimulation_1:Lu,_emscripten_bind_btSoftRigidDynamicsWorld_stepSimulation_2:Pt,_emscripten_bind_btSoftRigidDynamicsWorld_stepSimulation_3:St,_emscripten_bind_btSoftRigidDynamicsWorld_updateSingleAabb_1:Yw,_emscripten_bind_btSphereShape___destroy___0:Bw,_emscripten_bind_btSphereShape_btSphereShape_1:Px,_emscripten_bind_btSphereShape_calculateLocalInertia_2:fv,_emscripten_bind_btSphereShape_getLocalScaling_0:Hz,_emscripten_bind_btSphereShape_getMargin_0:oA,_emscripten_bind_btSphereShape_setLocalScaling_1:nx,_emscripten_bind_btSphereShape_setMargin_1:qy,_emscripten_bind_btStaticPlaneShape___destroy___0:Bw,_emscripten_bind_btStaticPlaneShape_btStaticPlaneShape_2:ll,_emscripten_bind_btStaticPlaneShape_calculateLocalInertia_2:fv,_emscripten_bind_btStaticPlaneShape_getLocalScaling_0:Hz,_emscripten_bind_btStaticPlaneShape_setLocalScaling_1:nx,_emscripten_bind_btStridingMeshInterface___destroy___0:Bw,_emscripten_bind_btStridingMeshInterface_setScaling_1:tA,_emscripten_bind_btTransform___destroy___0:nE,_emscripten_bind_btTransform_btTransform_0:JI,_emscripten_bind_btTransform_btTransform_2:$u,_emscripten_bind_btTransform_getBasis_0:yH,_emscripten_bind_btTransform_getOrigin_0:aF,_emscripten_bind_btTransform_getRotation_0:io,_emscripten_bind_btTransform_inverse_0:nq,_emscripten_bind_btTransform_op_mul_1:OC,_emscripten_bind_btTransform_setFromOpenGLMatrix_1:hz,_emscripten_bind_btTransform_setIdentity_0:GE,_emscripten_bind_btTransform_setOrigin_1:BA,_emscripten_bind_btTransform_setRotation_1:RA,_emscripten_bind_btTriangleMeshShape___destroy___0:Bw,_emscripten_bind_btTriangleMeshShape_calculateLocalInertia_2:fv,_emscripten_bind_btTriangleMeshShape_getLocalScaling_0:Hz,_emscripten_bind_btTriangleMeshShape_setLocalScaling_1:nx,_emscripten_bind_btTriangleMesh___destroy___0:Bw,_emscripten_bind_btTriangleMesh_addIndex_1:yB,_emscripten_bind_btTriangleMesh_addTriangle_3:bn,_emscripten_bind_btTriangleMesh_addTriangle_4:Im,_emscripten_bind_btTriangleMesh_btTriangleMesh_0:bx,_emscripten_bind_btTriangleMesh_btTriangleMesh_1:Gv,_emscripten_bind_btTriangleMesh_btTriangleMesh_2:Gu,_emscripten_bind_btTriangleMesh_findOrAddVertex_2:_v,_emscripten_bind_btTriangleMesh_getIndexedMeshArray_0:Iz,_emscripten_bind_btTriangleMesh_setScaling_1:tA,_emscripten_bind_btTypedConstraint___destroy___0:Bw,_emscripten_bind_btTypedConstraint_enableFeedback_1:gz,_emscripten_bind_btTypedConstraint_getBreakingImpulseThreshold_0:iy,_emscripten_bind_btTypedConstraint_getParam_2:jv,_emscripten_bind_btTypedConstraint_setBreakingImpulseThreshold_1:Fw,_emscripten_bind_btTypedConstraint_setParam_3:yu,_emscripten_bind_btVector3Array___destroy___0:hy,_emscripten_bind_btVector3Array_at_1:iA,_emscripten_bind_btVector3Array_size_0:PF,_emscripten_bind_btVector3___destroy___0:DB,_emscripten_bind_btVector3_btVector3_0:tI,_emscripten_bind_btVector3_btVector3_3:Hp,_emscripten_bind_btVector3_dot_1:$s,_emscripten_bind_btVector3_length_0:my,_emscripten_bind_btVector3_normalize_0:$F,_emscripten_bind_btVector3_op_add_1:HD,_emscripten_bind_btVector3_op_mul_1:yt,_emscripten_bind_btVector3_op_sub_1:GD,_emscripten_bind_btVector3_rotate_2:Wn,_emscripten_bind_btVector3_setValue_3:tq,_emscripten_bind_btVector3_setX_1:ME,_emscripten_bind_btVector3_setY_1:LE,_emscripten_bind_btVector3_setZ_1:KE,_emscripten_bind_btVector3_x_0:fG,_emscripten_bind_btVector3_y_0:_E,_emscripten_bind_btVector3_z_0:ZE,_emscripten_bind_btVector4___destroy___0:DB,_emscripten_bind_btVector4_btVector4_0:tI,_emscripten_bind_btVector4_btVector4_4:Ao,_emscripten_bind_btVector4_dot_1:$s,_emscripten_bind_btVector4_length_0:my,_emscripten_bind_btVector4_normalize_0:$F,_emscripten_bind_btVector4_op_add_1:HD,_emscripten_bind_btVector4_op_mul_1:yt,_emscripten_bind_btVector4_op_sub_1:GD,_emscripten_bind_btVector4_rotate_2:Vn,_emscripten_bind_btVector4_setValue_4:ap,_emscripten_bind_btVector4_setX_1:ME,_emscripten_bind_btVector4_setY_1:LE,_emscripten_bind_btVector4_setZ_1:KE,_emscripten_bind_btVector4_w_0:$E,_emscripten_bind_btVector4_x_0:fG,_emscripten_bind_btVector4_y_0:_E,_emscripten_bind_btVector4_z_0:ZE,_emscripten_bind_btVehicleRaycasterResult___destroy___0:nE,_emscripten_bind_btVehicleRaycasterResult_get_m_distFraction_0:pH,_emscripten_bind_btVehicleRaycasterResult_get_m_hitNormalInWorld_0:PG,_emscripten_bind_btVehicleRaycasterResult_get_m_hitPointInWorld_0:NJ,_emscripten_bind_btVehicleRaycasterResult_set_m_distFraction_1:oF,_emscripten_bind_btVehicleRaycasterResult_set_m_hitNormalInWorld_1:Br,_emscripten_bind_btVehicleRaycasterResult_set_m_hitPointInWorld_1:Sr,_emscripten_bind_btVehicleRaycaster___destroy___0:Bw,_emscripten_bind_btVehicleRaycaster_castRay_3:du,_emscripten_bind_btVehicleTuning_btVehicleTuning_0:Ay,_emscripten_bind_btVehicleTuning_get_m_frictionSlip_0:qH,_emscripten_bind_btVehicleTuning_get_m_maxSuspensionForce_0:oH,_emscripten_bind_btVehicleTuning_get_m_maxSuspensionTravelCm_0:rH,_emscripten_bind_btVehicleTuning_get_m_suspensionCompression_0:nH,_emscripten_bind_btVehicleTuning_get_m_suspensionDamping_0:BH,_emscripten_bind_btVehicleTuning_get_m_suspensionStiffness_0:gG,_emscripten_bind_btVehicleTuning_set_m_frictionSlip_1:pF,_emscripten_bind_btVehicleTuning_set_m_maxSuspensionForce_1:nF,_emscripten_bind_btVehicleTuning_set_m_maxSuspensionTravelCm_1:pG,_emscripten_bind_btVehicleTuning_set_m_suspensionCompression_1:OG,_emscripten_bind_btVehicleTuning_set_m_suspensionDamping_1:NG,_emscripten_bind_btVehicleTuning_set_m_suspensionStiffness_1:hH,_emscripten_bind_btWheelInfoConstructionInfo___destroy___0:nE,_emscripten_bind_btWheelInfoConstructionInfo_get_m_bIsFrontWheel_0:CB,_emscripten_bind_btWheelInfoConstructionInfo_get_m_chassisConnectionCS_0:NJ,_emscripten_bind_btWheelInfoConstructionInfo_get_m_frictionSlip_0:gH,_emscripten_bind_btWheelInfoConstructionInfo_get_m_maxSuspensionForce_0:FG,_emscripten_bind_btWheelInfoConstructionInfo_get_m_maxSuspensionTravelCm_0:HG,_emscripten_bind_btWheelInfoConstructionInfo_get_m_suspensionRestLength_0:cH,_emscripten_bind_btWheelInfoConstructionInfo_get_m_suspensionStiffness_0:GG,_emscripten_bind_btWheelInfoConstructionInfo_get_m_wheelAxleCS_0:IH,_emscripten_bind_btWheelInfoConstructionInfo_get_m_wheelDirectionCS_0:PG,_emscripten_bind_btWheelInfoConstructionInfo_get_m_wheelRadius_0:IG,_emscripten_bind_btWheelInfoConstructionInfo_get_m_wheelsDampingCompression_0:lG,_emscripten_bind_btWheelInfoConstructionInfo_get_m_wheelsDampingRelaxation_0:mG,_emscripten_bind_btWheelInfoConstructionInfo_set_m_bIsFrontWheel_1:Rz,_emscripten_bind_btWheelInfoConstructionInfo_set_m_chassisConnectionCS_1:Sr,_emscripten_bind_btWheelInfoConstructionInfo_set_m_frictionSlip_1:wF,_emscripten_bind_btWheelInfoConstructionInfo_set_m_maxSuspensionForce_1:uE,_emscripten_bind_btWheelInfoConstructionInfo_set_m_maxSuspensionTravelCm_1:BE,_emscripten_bind_btWheelInfoConstructionInfo_set_m_suspensionRestLength_1:gF,_emscripten_bind_btWheelInfoConstructionInfo_set_m_suspensionStiffness_1:AE,_emscripten_bind_btWheelInfoConstructionInfo_set_m_wheelAxleCS_1:qr,_emscripten_bind_btWheelInfoConstructionInfo_set_m_wheelDirectionCS_1:Br,_emscripten_bind_btWheelInfoConstructionInfo_set_m_wheelRadius_1:CE,_emscripten_bind_btWheelInfoConstructionInfo_set_m_wheelsDampingCompression_1:jE,_emscripten_bind_btWheelInfoConstructionInfo_set_m_wheelsDampingRelaxation_1:kE,_emscripten_bind_btWheelInfo___destroy___0:nE,_emscripten_bind_btWheelInfo_btWheelInfo_1:yw,_emscripten_bind_btWheelInfo_getSuspensionRestLength_0:FE,_emscripten_bind_btWheelInfo_get_m_bIsFrontWheel_0:VD,_emscripten_bind_btWheelInfo_get_m_brake_0:eG,_emscripten_bind_btWheelInfo_get_m_chassisConnectionPointCS_0:QF,_emscripten_bind_btWheelInfo_get_m_clippedInvContactDotSuspension_0:wC,_emscripten_bind_btWheelInfo_get_m_deltaRotation_0:kF,_emscripten_bind_btWheelInfo_get_m_engineForce_0:FF,_emscripten_bind_btWheelInfo_get_m_frictionSlip_0:yF,_emscripten_bind_btWheelInfo_get_m_maxSuspensionForce_0:yE,_emscripten_bind_btWheelInfo_get_m_maxSuspensionTravelCm_0:fE,_emscripten_bind_btWheelInfo_get_m_raycastInfo_0:NJ,_emscripten_bind_btWheelInfo_get_m_rollInfluence_0:jF,_emscripten_bind_btWheelInfo_get_m_rotation_0:XF,_emscripten_bind_btWheelInfo_get_m_skidInfo_0:WF,_emscripten_bind_btWheelInfo_get_m_steering_0:VF,_emscripten_bind_btWheelInfo_get_m_suspensionRelativeVelocity_0:eD,_emscripten_bind_btWheelInfo_get_m_suspensionRestLength1_0:FE,_emscripten_bind_btWheelInfo_get_m_suspensionStiffness_0:pE,_emscripten_bind_btWheelInfo_get_m_wheelAxleCS_0:UG,_emscripten_bind_btWheelInfo_get_m_wheelDirectionCS_0:qG,_emscripten_bind_btWheelInfo_get_m_wheelsDampingCompression_0:AD,_emscripten_bind_btWheelInfo_get_m_wheelsDampingRelaxation_0:FD,_emscripten_bind_btWheelInfo_get_m_wheelsRadius_0:xF,_emscripten_bind_btWheelInfo_get_m_wheelsSuspensionForce_0:eE,_emscripten_bind_btWheelInfo_get_m_worldTransform_0:oI,_emscripten_bind_btWheelInfo_set_m_bIsFrontWheel_1:HB,_emscripten_bind_btWheelInfo_set_m_brake_1:ED,_emscripten_bind_btWheelInfo_set_m_chassisConnectionPointCS_1:er,_emscripten_bind_btWheelInfo_set_m_clippedInvContactDotSuspension_1:fA,_emscripten_bind_btWheelInfo_set_m_deltaRotation_1:kC,_emscripten_bind_btWheelInfo_set_m_engineForce_1:HC,_emscripten_bind_btWheelInfo_set_m_frictionSlip_1:vC,_emscripten_bind_btWheelInfo_set_m_maxSuspensionForce_1:tC,_emscripten_bind_btWheelInfo_set_m_maxSuspensionTravelCm_1:rB,_emscripten_bind_btWheelInfo_set_m_raycastInfo_1:Ws,_emscripten_bind_btWheelInfo_set_m_rollInfluence_1:jC,_emscripten_bind_btWheelInfo_set_m_rotation_1:dD,_emscripten_bind_btWheelInfo_set_m_skidInfo_1:cD,_emscripten_bind_btWheelInfo_set_m_steering_1:bD,_emscripten_bind_btWheelInfo_set_m_suspensionRelativeVelocity_1:HA,_emscripten_bind_btWheelInfo_set_m_suspensionRestLength1_1:qB,_emscripten_bind_btWheelInfo_set_m_suspensionStiffness_1:BB,_emscripten_bind_btWheelInfo_set_m_wheelAxleCS_1:yr,_emscripten_bind_btWheelInfo_set_m_wheelDirectionCS_1:pr,_emscripten_bind_btWheelInfo_set_m_wheelsDampingCompression_1:YA,_emscripten_bind_btWheelInfo_set_m_wheelsDampingRelaxation_1:eB,_emscripten_bind_btWheelInfo_set_m_wheelsRadius_1:uC,_emscripten_bind_btWheelInfo_set_m_wheelsSuspensionForce_1:pB,_emscripten_bind_btWheelInfo_set_m_worldTransform_1:dA,_emscripten_bind_btWheelInfo_updateWheel_2:ji,_emscripten_bind_tAnchorArray___destroy___0:hy,_emscripten_bind_tAnchorArray_at_1:Lq,_emscripten_bind_tAnchorArray_clear_0:uF,_emscripten_bind_tAnchorArray_pop_back_0:QA,_emscripten_bind_tAnchorArray_push_back_1:Ix,_emscripten_bind_tAnchorArray_size_0:PF,_emscripten_bind_tMaterialArray___destroy___0:hy,_emscripten_bind_tMaterialArray_at_1:ux,_emscripten_bind_tMaterialArray_size_0:PF,_emscripten_bind_tNodeArray___destroy___0:hy,_emscripten_bind_tNodeArray_at_1:xx,_emscripten_bind_tNodeArray_size_0:PF,_emscripten_enum_PHY_ScalarType_PHY_DOUBLE:RJ,_emscripten_enum_PHY_ScalarType_PHY_FIXEDPOINT88:kJ,_emscripten_enum_PHY_ScalarType_PHY_FLOAT:yJ,_emscripten_enum_PHY_ScalarType_PHY_INTEGER:uJ,_emscripten_enum_PHY_ScalarType_PHY_SHORT:xJ,_emscripten_enum_PHY_ScalarType_PHY_UCHAR:wJ,_emscripten_enum_btConstraintParams_BT_CONSTRAINT_CFM:xJ,_emscripten_enum_btConstraintParams_BT_CONSTRAINT_ERP:RJ,_emscripten_enum_btConstraintParams_BT_CONSTRAINT_STOP_CFM:kJ,_emscripten_enum_btConstraintParams_BT_CONSTRAINT_STOP_ERP:uJ,_free:uc,_i64Add:Lv,_i64Subtract:tv,_llvm_bswap_i16:jI,_llvm_bswap_i32:$B,_malloc:kb,_memcpy:vh,_memmove:mp,_memset:hk,_sbrk:bo,dynCall_di:DG,dynCall_did:cE,dynCall_diidii:Tu,dynCall_diii:oz,dynCall_diiidii:xt,dynCall_diiii:sw,dynCall_diiiii:Fu,dynCall_diiiiiiii:Ar,dynCall_diiiiiiiii:Gq,dynCall_diiiiiiiiii:Mp,dynCall_ii:iG,dynCall_iidid:sx,dynCall_iii:iC,dynCall_iiid:Lz,dynCall_iiii:Wy,dynCall_iiiii:fw,dynCall_iiiiiii:et,dynCall_iiiiiiii:bs,dynCall_iiiiiiiiii:Aq,dynCall_iiiiiiiiiii:Jp,dynCall_v:tJ,dynCall_vi:EH,dynCall_vid:XE,dynCall_vidd:MB,dynCall_viddiii:mu,dynCall_vidi:WA,dynCall_vidii:Wx,dynCall_vii:bE,dynCall_viid:dB,dynCall_viidi:Vx,dynCall_viidii:mv,dynCall_viii:cA,dynCall_viiid:Ox,dynCall_viiidii:Zt,dynCall_viiii:Uw,dynCall_viiiid:lv,dynCall_viiiidddddidi:tp,dynCall_viiiiddddiid:Vp,dynCall_viiiii:Xu,dynCall_viiiiid:Yt,dynCall_viiiiii:Ht,dynCall_viiiiiii:ts,dynCall_viiiiiiiid:Wq,dynCall_viiiiiiiii:Oq,dynCall_viiiiiiiiii:Yp,establishStackSpace:TG,stackAlloc:sA,stackRestore:KJ,stackSave:PJ}}) + + +// EMSCRIPTEN_END_ASM +(gb,ib,buffer),Sa=d.__GLOBAL__sub_I_btQuickprof_cpp=g.__GLOBAL__sub_I_btQuickprof_cpp,hb=d.__ZSt18uncaught_exceptionv=g.__ZSt18uncaught_exceptionv;d.___cxa_can_catch=g.___cxa_can_catch;d.___cxa_is_pointer_type=g.___cxa_is_pointer_type;d.___muldi3=g.___muldi3;d.___udivdi3=g.___udivdi3;d._bitshift64Lshr=g._bitshift64Lshr;d._bitshift64Shl=g._bitshift64Shl; +var jb=d._emscripten_bind_AllHitsRayResultCallback_AllHitsRayResultCallback_2=g._emscripten_bind_AllHitsRayResultCallback_AllHitsRayResultCallback_2,kb=d._emscripten_bind_AllHitsRayResultCallback___destroy___0=g._emscripten_bind_AllHitsRayResultCallback___destroy___0,lb=d._emscripten_bind_AllHitsRayResultCallback_get_m_closestHitFraction_0=g._emscripten_bind_AllHitsRayResultCallback_get_m_closestHitFraction_0,mb=d._emscripten_bind_AllHitsRayResultCallback_get_m_collisionFilterGroup_0=g._emscripten_bind_AllHitsRayResultCallback_get_m_collisionFilterGroup_0, +nb=d._emscripten_bind_AllHitsRayResultCallback_get_m_collisionFilterMask_0=g._emscripten_bind_AllHitsRayResultCallback_get_m_collisionFilterMask_0,ob=d._emscripten_bind_AllHitsRayResultCallback_get_m_collisionObject_0=g._emscripten_bind_AllHitsRayResultCallback_get_m_collisionObject_0,pb=d._emscripten_bind_AllHitsRayResultCallback_get_m_collisionObjects_0=g._emscripten_bind_AllHitsRayResultCallback_get_m_collisionObjects_0,qb=d._emscripten_bind_AllHitsRayResultCallback_get_m_hitFractions_0=g._emscripten_bind_AllHitsRayResultCallback_get_m_hitFractions_0, +rb=d._emscripten_bind_AllHitsRayResultCallback_get_m_hitNormalWorld_0=g._emscripten_bind_AllHitsRayResultCallback_get_m_hitNormalWorld_0,sb=d._emscripten_bind_AllHitsRayResultCallback_get_m_hitPointWorld_0=g._emscripten_bind_AllHitsRayResultCallback_get_m_hitPointWorld_0,tb=d._emscripten_bind_AllHitsRayResultCallback_get_m_rayFromWorld_0=g._emscripten_bind_AllHitsRayResultCallback_get_m_rayFromWorld_0,ub=d._emscripten_bind_AllHitsRayResultCallback_get_m_rayToWorld_0=g._emscripten_bind_AllHitsRayResultCallback_get_m_rayToWorld_0, +vb=d._emscripten_bind_AllHitsRayResultCallback_hasHit_0=g._emscripten_bind_AllHitsRayResultCallback_hasHit_0,wb=d._emscripten_bind_AllHitsRayResultCallback_set_m_closestHitFraction_1=g._emscripten_bind_AllHitsRayResultCallback_set_m_closestHitFraction_1,xb=d._emscripten_bind_AllHitsRayResultCallback_set_m_collisionFilterGroup_1=g._emscripten_bind_AllHitsRayResultCallback_set_m_collisionFilterGroup_1,yb=d._emscripten_bind_AllHitsRayResultCallback_set_m_collisionFilterMask_1=g._emscripten_bind_AllHitsRayResultCallback_set_m_collisionFilterMask_1, +zb=d._emscripten_bind_AllHitsRayResultCallback_set_m_collisionObject_1=g._emscripten_bind_AllHitsRayResultCallback_set_m_collisionObject_1,Ab=d._emscripten_bind_AllHitsRayResultCallback_set_m_collisionObjects_1=g._emscripten_bind_AllHitsRayResultCallback_set_m_collisionObjects_1,Bb=d._emscripten_bind_AllHitsRayResultCallback_set_m_hitFractions_1=g._emscripten_bind_AllHitsRayResultCallback_set_m_hitFractions_1,Cb=d._emscripten_bind_AllHitsRayResultCallback_set_m_hitNormalWorld_1=g._emscripten_bind_AllHitsRayResultCallback_set_m_hitNormalWorld_1, +Db=d._emscripten_bind_AllHitsRayResultCallback_set_m_hitPointWorld_1=g._emscripten_bind_AllHitsRayResultCallback_set_m_hitPointWorld_1,Eb=d._emscripten_bind_AllHitsRayResultCallback_set_m_rayFromWorld_1=g._emscripten_bind_AllHitsRayResultCallback_set_m_rayFromWorld_1,Fb=d._emscripten_bind_AllHitsRayResultCallback_set_m_rayToWorld_1=g._emscripten_bind_AllHitsRayResultCallback_set_m_rayToWorld_1,Gb=d._emscripten_bind_Anchor___destroy___0=g._emscripten_bind_Anchor___destroy___0,Hb=d._emscripten_bind_Anchor_get_m_body_0= +g._emscripten_bind_Anchor_get_m_body_0,Ib=d._emscripten_bind_Anchor_get_m_c0_0=g._emscripten_bind_Anchor_get_m_c0_0,Jb=d._emscripten_bind_Anchor_get_m_c1_0=g._emscripten_bind_Anchor_get_m_c1_0,Kb=d._emscripten_bind_Anchor_get_m_c2_0=g._emscripten_bind_Anchor_get_m_c2_0,Lb=d._emscripten_bind_Anchor_get_m_influence_0=g._emscripten_bind_Anchor_get_m_influence_0,Mb=d._emscripten_bind_Anchor_get_m_local_0=g._emscripten_bind_Anchor_get_m_local_0,Nb=d._emscripten_bind_Anchor_get_m_node_0=g._emscripten_bind_Anchor_get_m_node_0, +Ob=d._emscripten_bind_Anchor_set_m_body_1=g._emscripten_bind_Anchor_set_m_body_1,Pb=d._emscripten_bind_Anchor_set_m_c0_1=g._emscripten_bind_Anchor_set_m_c0_1,Qb=d._emscripten_bind_Anchor_set_m_c1_1=g._emscripten_bind_Anchor_set_m_c1_1,Sb=d._emscripten_bind_Anchor_set_m_c2_1=g._emscripten_bind_Anchor_set_m_c2_1,Tb=d._emscripten_bind_Anchor_set_m_influence_1=g._emscripten_bind_Anchor_set_m_influence_1,Ub=d._emscripten_bind_Anchor_set_m_local_1=g._emscripten_bind_Anchor_set_m_local_1,Vb=d._emscripten_bind_Anchor_set_m_node_1= +g._emscripten_bind_Anchor_set_m_node_1,Wb=d._emscripten_bind_ClosestConvexResultCallback_ClosestConvexResultCallback_2=g._emscripten_bind_ClosestConvexResultCallback_ClosestConvexResultCallback_2,Xb=d._emscripten_bind_ClosestConvexResultCallback___destroy___0=g._emscripten_bind_ClosestConvexResultCallback___destroy___0,Yb=d._emscripten_bind_ClosestConvexResultCallback_get_m_closestHitFraction_0=g._emscripten_bind_ClosestConvexResultCallback_get_m_closestHitFraction_0,Zb=d._emscripten_bind_ClosestConvexResultCallback_get_m_collisionFilterGroup_0= +g._emscripten_bind_ClosestConvexResultCallback_get_m_collisionFilterGroup_0,$b=d._emscripten_bind_ClosestConvexResultCallback_get_m_collisionFilterMask_0=g._emscripten_bind_ClosestConvexResultCallback_get_m_collisionFilterMask_0,ac=d._emscripten_bind_ClosestConvexResultCallback_get_m_convexFromWorld_0=g._emscripten_bind_ClosestConvexResultCallback_get_m_convexFromWorld_0,bc=d._emscripten_bind_ClosestConvexResultCallback_get_m_convexToWorld_0=g._emscripten_bind_ClosestConvexResultCallback_get_m_convexToWorld_0, +cc=d._emscripten_bind_ClosestConvexResultCallback_get_m_hitNormalWorld_0=g._emscripten_bind_ClosestConvexResultCallback_get_m_hitNormalWorld_0,dc=d._emscripten_bind_ClosestConvexResultCallback_get_m_hitPointWorld_0=g._emscripten_bind_ClosestConvexResultCallback_get_m_hitPointWorld_0,ec=d._emscripten_bind_ClosestConvexResultCallback_hasHit_0=g._emscripten_bind_ClosestConvexResultCallback_hasHit_0,fc=d._emscripten_bind_ClosestConvexResultCallback_set_m_closestHitFraction_1=g._emscripten_bind_ClosestConvexResultCallback_set_m_closestHitFraction_1, +hc=d._emscripten_bind_ClosestConvexResultCallback_set_m_collisionFilterGroup_1=g._emscripten_bind_ClosestConvexResultCallback_set_m_collisionFilterGroup_1,ic=d._emscripten_bind_ClosestConvexResultCallback_set_m_collisionFilterMask_1=g._emscripten_bind_ClosestConvexResultCallback_set_m_collisionFilterMask_1,jc=d._emscripten_bind_ClosestConvexResultCallback_set_m_convexFromWorld_1=g._emscripten_bind_ClosestConvexResultCallback_set_m_convexFromWorld_1,kc=d._emscripten_bind_ClosestConvexResultCallback_set_m_convexToWorld_1= +g._emscripten_bind_ClosestConvexResultCallback_set_m_convexToWorld_1,lc=d._emscripten_bind_ClosestConvexResultCallback_set_m_hitNormalWorld_1=g._emscripten_bind_ClosestConvexResultCallback_set_m_hitNormalWorld_1,mc=d._emscripten_bind_ClosestConvexResultCallback_set_m_hitPointWorld_1=g._emscripten_bind_ClosestConvexResultCallback_set_m_hitPointWorld_1,nc=d._emscripten_bind_ClosestRayResultCallback_ClosestRayResultCallback_2=g._emscripten_bind_ClosestRayResultCallback_ClosestRayResultCallback_2,oc= +d._emscripten_bind_ClosestRayResultCallback___destroy___0=g._emscripten_bind_ClosestRayResultCallback___destroy___0,pc=d._emscripten_bind_ClosestRayResultCallback_get_m_closestHitFraction_0=g._emscripten_bind_ClosestRayResultCallback_get_m_closestHitFraction_0,qc=d._emscripten_bind_ClosestRayResultCallback_get_m_collisionFilterGroup_0=g._emscripten_bind_ClosestRayResultCallback_get_m_collisionFilterGroup_0,rc=d._emscripten_bind_ClosestRayResultCallback_get_m_collisionFilterMask_0=g._emscripten_bind_ClosestRayResultCallback_get_m_collisionFilterMask_0, +sc=d._emscripten_bind_ClosestRayResultCallback_get_m_collisionObject_0=g._emscripten_bind_ClosestRayResultCallback_get_m_collisionObject_0,tc=d._emscripten_bind_ClosestRayResultCallback_get_m_hitNormalWorld_0=g._emscripten_bind_ClosestRayResultCallback_get_m_hitNormalWorld_0,uc=d._emscripten_bind_ClosestRayResultCallback_get_m_hitPointWorld_0=g._emscripten_bind_ClosestRayResultCallback_get_m_hitPointWorld_0,vc=d._emscripten_bind_ClosestRayResultCallback_get_m_rayFromWorld_0=g._emscripten_bind_ClosestRayResultCallback_get_m_rayFromWorld_0, +wc=d._emscripten_bind_ClosestRayResultCallback_get_m_rayToWorld_0=g._emscripten_bind_ClosestRayResultCallback_get_m_rayToWorld_0,xc=d._emscripten_bind_ClosestRayResultCallback_hasHit_0=g._emscripten_bind_ClosestRayResultCallback_hasHit_0,yc=d._emscripten_bind_ClosestRayResultCallback_set_m_closestHitFraction_1=g._emscripten_bind_ClosestRayResultCallback_set_m_closestHitFraction_1,zc=d._emscripten_bind_ClosestRayResultCallback_set_m_collisionFilterGroup_1=g._emscripten_bind_ClosestRayResultCallback_set_m_collisionFilterGroup_1, +Ac=d._emscripten_bind_ClosestRayResultCallback_set_m_collisionFilterMask_1=g._emscripten_bind_ClosestRayResultCallback_set_m_collisionFilterMask_1,Bc=d._emscripten_bind_ClosestRayResultCallback_set_m_collisionObject_1=g._emscripten_bind_ClosestRayResultCallback_set_m_collisionObject_1,Cc=d._emscripten_bind_ClosestRayResultCallback_set_m_hitNormalWorld_1=g._emscripten_bind_ClosestRayResultCallback_set_m_hitNormalWorld_1,Dc=d._emscripten_bind_ClosestRayResultCallback_set_m_hitPointWorld_1=g._emscripten_bind_ClosestRayResultCallback_set_m_hitPointWorld_1, +Ec=d._emscripten_bind_ClosestRayResultCallback_set_m_rayFromWorld_1=g._emscripten_bind_ClosestRayResultCallback_set_m_rayFromWorld_1,Fc=d._emscripten_bind_ClosestRayResultCallback_set_m_rayToWorld_1=g._emscripten_bind_ClosestRayResultCallback_set_m_rayToWorld_1,Gc=d._emscripten_bind_ConcreteContactResultCallback_ConcreteContactResultCallback_0=g._emscripten_bind_ConcreteContactResultCallback_ConcreteContactResultCallback_0,Hc=d._emscripten_bind_ConcreteContactResultCallback___destroy___0=g._emscripten_bind_ConcreteContactResultCallback___destroy___0, +Ic=d._emscripten_bind_ConcreteContactResultCallback_addSingleResult_7=g._emscripten_bind_ConcreteContactResultCallback_addSingleResult_7,Jc=d._emscripten_bind_Config___destroy___0=g._emscripten_bind_Config___destroy___0,Kc=d._emscripten_bind_Config_get_citerations_0=g._emscripten_bind_Config_get_citerations_0,Lc=d._emscripten_bind_Config_get_collisions_0=g._emscripten_bind_Config_get_collisions_0,Mc=d._emscripten_bind_Config_get_diterations_0=g._emscripten_bind_Config_get_diterations_0,Nc=d._emscripten_bind_Config_get_kAHR_0= +g._emscripten_bind_Config_get_kAHR_0,Oc=d._emscripten_bind_Config_get_kCHR_0=g._emscripten_bind_Config_get_kCHR_0,Pc=d._emscripten_bind_Config_get_kDF_0=g._emscripten_bind_Config_get_kDF_0,Qc=d._emscripten_bind_Config_get_kDG_0=g._emscripten_bind_Config_get_kDG_0,Rc=d._emscripten_bind_Config_get_kDP_0=g._emscripten_bind_Config_get_kDP_0,Sc=d._emscripten_bind_Config_get_kKHR_0=g._emscripten_bind_Config_get_kKHR_0,Tc=d._emscripten_bind_Config_get_kLF_0=g._emscripten_bind_Config_get_kLF_0,Uc=d._emscripten_bind_Config_get_kMT_0= +g._emscripten_bind_Config_get_kMT_0,Vc=d._emscripten_bind_Config_get_kPR_0=g._emscripten_bind_Config_get_kPR_0,Wc=d._emscripten_bind_Config_get_kSHR_0=g._emscripten_bind_Config_get_kSHR_0,Xc=d._emscripten_bind_Config_get_kSKHR_CL_0=g._emscripten_bind_Config_get_kSKHR_CL_0,Yc=d._emscripten_bind_Config_get_kSK_SPLT_CL_0=g._emscripten_bind_Config_get_kSK_SPLT_CL_0,Zc=d._emscripten_bind_Config_get_kSRHR_CL_0=g._emscripten_bind_Config_get_kSRHR_CL_0,$c=d._emscripten_bind_Config_get_kSR_SPLT_CL_0=g._emscripten_bind_Config_get_kSR_SPLT_CL_0, +ad=d._emscripten_bind_Config_get_kSSHR_CL_0=g._emscripten_bind_Config_get_kSSHR_CL_0,bd=d._emscripten_bind_Config_get_kSS_SPLT_CL_0=g._emscripten_bind_Config_get_kSS_SPLT_CL_0,cd=d._emscripten_bind_Config_get_kVCF_0=g._emscripten_bind_Config_get_kVCF_0,dd=d._emscripten_bind_Config_get_kVC_0=g._emscripten_bind_Config_get_kVC_0,ed=d._emscripten_bind_Config_get_maxvolume_0=g._emscripten_bind_Config_get_maxvolume_0,fd=d._emscripten_bind_Config_get_piterations_0=g._emscripten_bind_Config_get_piterations_0, +gd=d._emscripten_bind_Config_get_timescale_0=g._emscripten_bind_Config_get_timescale_0,hd=d._emscripten_bind_Config_get_viterations_0=g._emscripten_bind_Config_get_viterations_0,id=d._emscripten_bind_Config_set_citerations_1=g._emscripten_bind_Config_set_citerations_1,jd=d._emscripten_bind_Config_set_collisions_1=g._emscripten_bind_Config_set_collisions_1,kd=d._emscripten_bind_Config_set_diterations_1=g._emscripten_bind_Config_set_diterations_1,ld=d._emscripten_bind_Config_set_kAHR_1=g._emscripten_bind_Config_set_kAHR_1, +md=d._emscripten_bind_Config_set_kCHR_1=g._emscripten_bind_Config_set_kCHR_1,nd=d._emscripten_bind_Config_set_kDF_1=g._emscripten_bind_Config_set_kDF_1,od=d._emscripten_bind_Config_set_kDG_1=g._emscripten_bind_Config_set_kDG_1,pd=d._emscripten_bind_Config_set_kDP_1=g._emscripten_bind_Config_set_kDP_1,qd=d._emscripten_bind_Config_set_kKHR_1=g._emscripten_bind_Config_set_kKHR_1,rd=d._emscripten_bind_Config_set_kLF_1=g._emscripten_bind_Config_set_kLF_1,sd=d._emscripten_bind_Config_set_kMT_1=g._emscripten_bind_Config_set_kMT_1, +td=d._emscripten_bind_Config_set_kPR_1=g._emscripten_bind_Config_set_kPR_1,ud=d._emscripten_bind_Config_set_kSHR_1=g._emscripten_bind_Config_set_kSHR_1,vd=d._emscripten_bind_Config_set_kSKHR_CL_1=g._emscripten_bind_Config_set_kSKHR_CL_1,wd=d._emscripten_bind_Config_set_kSK_SPLT_CL_1=g._emscripten_bind_Config_set_kSK_SPLT_CL_1,xd=d._emscripten_bind_Config_set_kSRHR_CL_1=g._emscripten_bind_Config_set_kSRHR_CL_1,yd=d._emscripten_bind_Config_set_kSR_SPLT_CL_1=g._emscripten_bind_Config_set_kSR_SPLT_CL_1, +zd=d._emscripten_bind_Config_set_kSSHR_CL_1=g._emscripten_bind_Config_set_kSSHR_CL_1,Ad=d._emscripten_bind_Config_set_kSS_SPLT_CL_1=g._emscripten_bind_Config_set_kSS_SPLT_CL_1,Bd=d._emscripten_bind_Config_set_kVCF_1=g._emscripten_bind_Config_set_kVCF_1,Cd=d._emscripten_bind_Config_set_kVC_1=g._emscripten_bind_Config_set_kVC_1,Dd=d._emscripten_bind_Config_set_maxvolume_1=g._emscripten_bind_Config_set_maxvolume_1,Ed=d._emscripten_bind_Config_set_piterations_1=g._emscripten_bind_Config_set_piterations_1, +Fd=d._emscripten_bind_Config_set_timescale_1=g._emscripten_bind_Config_set_timescale_1,Gd=d._emscripten_bind_Config_set_viterations_1=g._emscripten_bind_Config_set_viterations_1,Hd=d._emscripten_bind_ContactResultCallback___destroy___0=g._emscripten_bind_ContactResultCallback___destroy___0,Id=d._emscripten_bind_ContactResultCallback_addSingleResult_7=g._emscripten_bind_ContactResultCallback_addSingleResult_7,Jd=d._emscripten_bind_ConvexResultCallback___destroy___0=g._emscripten_bind_ConvexResultCallback___destroy___0, +Kd=d._emscripten_bind_ConvexResultCallback_get_m_closestHitFraction_0=g._emscripten_bind_ConvexResultCallback_get_m_closestHitFraction_0,Ld=d._emscripten_bind_ConvexResultCallback_get_m_collisionFilterGroup_0=g._emscripten_bind_ConvexResultCallback_get_m_collisionFilterGroup_0,Md=d._emscripten_bind_ConvexResultCallback_get_m_collisionFilterMask_0=g._emscripten_bind_ConvexResultCallback_get_m_collisionFilterMask_0,Nd=d._emscripten_bind_ConvexResultCallback_hasHit_0=g._emscripten_bind_ConvexResultCallback_hasHit_0, +Od=d._emscripten_bind_ConvexResultCallback_set_m_closestHitFraction_1=g._emscripten_bind_ConvexResultCallback_set_m_closestHitFraction_1,Pd=d._emscripten_bind_ConvexResultCallback_set_m_collisionFilterGroup_1=g._emscripten_bind_ConvexResultCallback_set_m_collisionFilterGroup_1,Qd=d._emscripten_bind_ConvexResultCallback_set_m_collisionFilterMask_1=g._emscripten_bind_ConvexResultCallback_set_m_collisionFilterMask_1,Rd=d._emscripten_bind_DebugDrawer_DebugDrawer_0=g._emscripten_bind_DebugDrawer_DebugDrawer_0, +Sd=d._emscripten_bind_DebugDrawer___destroy___0=g._emscripten_bind_DebugDrawer___destroy___0,Td=d._emscripten_bind_DebugDrawer_draw3dText_2=g._emscripten_bind_DebugDrawer_draw3dText_2,Ud=d._emscripten_bind_DebugDrawer_drawContactPoint_5=g._emscripten_bind_DebugDrawer_drawContactPoint_5,Vd=d._emscripten_bind_DebugDrawer_drawLine_3=g._emscripten_bind_DebugDrawer_drawLine_3,Wd=d._emscripten_bind_DebugDrawer_getDebugMode_0=g._emscripten_bind_DebugDrawer_getDebugMode_0,Xd=d._emscripten_bind_DebugDrawer_reportErrorWarning_1= +g._emscripten_bind_DebugDrawer_reportErrorWarning_1,Yd=d._emscripten_bind_DebugDrawer_setDebugMode_1=g._emscripten_bind_DebugDrawer_setDebugMode_1,Zd=d._emscripten_bind_LocalConvexResult_LocalConvexResult_5=g._emscripten_bind_LocalConvexResult_LocalConvexResult_5,$d=d._emscripten_bind_LocalConvexResult___destroy___0=g._emscripten_bind_LocalConvexResult___destroy___0,ae=d._emscripten_bind_LocalConvexResult_get_m_hitCollisionObject_0=g._emscripten_bind_LocalConvexResult_get_m_hitCollisionObject_0,be= +d._emscripten_bind_LocalConvexResult_get_m_hitFraction_0=g._emscripten_bind_LocalConvexResult_get_m_hitFraction_0,ce=d._emscripten_bind_LocalConvexResult_get_m_hitNormalLocal_0=g._emscripten_bind_LocalConvexResult_get_m_hitNormalLocal_0,de=d._emscripten_bind_LocalConvexResult_get_m_hitPointLocal_0=g._emscripten_bind_LocalConvexResult_get_m_hitPointLocal_0,ee=d._emscripten_bind_LocalConvexResult_get_m_localShapeInfo_0=g._emscripten_bind_LocalConvexResult_get_m_localShapeInfo_0,fe=d._emscripten_bind_LocalConvexResult_set_m_hitCollisionObject_1= +g._emscripten_bind_LocalConvexResult_set_m_hitCollisionObject_1,ge=d._emscripten_bind_LocalConvexResult_set_m_hitFraction_1=g._emscripten_bind_LocalConvexResult_set_m_hitFraction_1,he=d._emscripten_bind_LocalConvexResult_set_m_hitNormalLocal_1=g._emscripten_bind_LocalConvexResult_set_m_hitNormalLocal_1,ie=d._emscripten_bind_LocalConvexResult_set_m_hitPointLocal_1=g._emscripten_bind_LocalConvexResult_set_m_hitPointLocal_1,je=d._emscripten_bind_LocalConvexResult_set_m_localShapeInfo_1=g._emscripten_bind_LocalConvexResult_set_m_localShapeInfo_1, +ke=d._emscripten_bind_LocalShapeInfo___destroy___0=g._emscripten_bind_LocalShapeInfo___destroy___0,le=d._emscripten_bind_LocalShapeInfo_get_m_shapePart_0=g._emscripten_bind_LocalShapeInfo_get_m_shapePart_0,me=d._emscripten_bind_LocalShapeInfo_get_m_triangleIndex_0=g._emscripten_bind_LocalShapeInfo_get_m_triangleIndex_0,ne=d._emscripten_bind_LocalShapeInfo_set_m_shapePart_1=g._emscripten_bind_LocalShapeInfo_set_m_shapePart_1,oe=d._emscripten_bind_LocalShapeInfo_set_m_triangleIndex_1=g._emscripten_bind_LocalShapeInfo_set_m_triangleIndex_1, +pe=d._emscripten_bind_Material___destroy___0=g._emscripten_bind_Material___destroy___0,qe=d._emscripten_bind_Material_get_m_flags_0=g._emscripten_bind_Material_get_m_flags_0,re=d._emscripten_bind_Material_get_m_kAST_0=g._emscripten_bind_Material_get_m_kAST_0,se=d._emscripten_bind_Material_get_m_kLST_0=g._emscripten_bind_Material_get_m_kLST_0,te=d._emscripten_bind_Material_get_m_kVST_0=g._emscripten_bind_Material_get_m_kVST_0,ue=d._emscripten_bind_Material_set_m_flags_1=g._emscripten_bind_Material_set_m_flags_1, +ve=d._emscripten_bind_Material_set_m_kAST_1=g._emscripten_bind_Material_set_m_kAST_1,we=d._emscripten_bind_Material_set_m_kLST_1=g._emscripten_bind_Material_set_m_kLST_1,xe=d._emscripten_bind_Material_set_m_kVST_1=g._emscripten_bind_Material_set_m_kVST_1,ye=d._emscripten_bind_Node___destroy___0=g._emscripten_bind_Node___destroy___0,ze=d._emscripten_bind_Node_get_m_area_0=g._emscripten_bind_Node_get_m_area_0,Ae=d._emscripten_bind_Node_get_m_f_0=g._emscripten_bind_Node_get_m_f_0,Be=d._emscripten_bind_Node_get_m_im_0= +g._emscripten_bind_Node_get_m_im_0,Ce=d._emscripten_bind_Node_get_m_n_0=g._emscripten_bind_Node_get_m_n_0,De=d._emscripten_bind_Node_get_m_q_0=g._emscripten_bind_Node_get_m_q_0,Ee=d._emscripten_bind_Node_get_m_v_0=g._emscripten_bind_Node_get_m_v_0,Fe=d._emscripten_bind_Node_get_m_x_0=g._emscripten_bind_Node_get_m_x_0,Ge=d._emscripten_bind_Node_set_m_area_1=g._emscripten_bind_Node_set_m_area_1,He=d._emscripten_bind_Node_set_m_f_1=g._emscripten_bind_Node_set_m_f_1,Ie=d._emscripten_bind_Node_set_m_im_1= +g._emscripten_bind_Node_set_m_im_1,Je=d._emscripten_bind_Node_set_m_n_1=g._emscripten_bind_Node_set_m_n_1,Ke=d._emscripten_bind_Node_set_m_q_1=g._emscripten_bind_Node_set_m_q_1,Le=d._emscripten_bind_Node_set_m_v_1=g._emscripten_bind_Node_set_m_v_1,Me=d._emscripten_bind_Node_set_m_x_1=g._emscripten_bind_Node_set_m_x_1,Ne=d._emscripten_bind_RayResultCallback___destroy___0=g._emscripten_bind_RayResultCallback___destroy___0,Oe=d._emscripten_bind_RayResultCallback_get_m_closestHitFraction_0=g._emscripten_bind_RayResultCallback_get_m_closestHitFraction_0, +Pe=d._emscripten_bind_RayResultCallback_get_m_collisionFilterGroup_0=g._emscripten_bind_RayResultCallback_get_m_collisionFilterGroup_0,Qe=d._emscripten_bind_RayResultCallback_get_m_collisionFilterMask_0=g._emscripten_bind_RayResultCallback_get_m_collisionFilterMask_0,Re=d._emscripten_bind_RayResultCallback_get_m_collisionObject_0=g._emscripten_bind_RayResultCallback_get_m_collisionObject_0,Se=d._emscripten_bind_RayResultCallback_hasHit_0=g._emscripten_bind_RayResultCallback_hasHit_0,Te=d._emscripten_bind_RayResultCallback_set_m_closestHitFraction_1= +g._emscripten_bind_RayResultCallback_set_m_closestHitFraction_1,Ue=d._emscripten_bind_RayResultCallback_set_m_collisionFilterGroup_1=g._emscripten_bind_RayResultCallback_set_m_collisionFilterGroup_1,Ve=d._emscripten_bind_RayResultCallback_set_m_collisionFilterMask_1=g._emscripten_bind_RayResultCallback_set_m_collisionFilterMask_1,We=d._emscripten_bind_RayResultCallback_set_m_collisionObject_1=g._emscripten_bind_RayResultCallback_set_m_collisionObject_1,Xe=d._emscripten_bind_RaycastInfo___destroy___0= +g._emscripten_bind_RaycastInfo___destroy___0,Ye=d._emscripten_bind_RaycastInfo_get_m_contactNormalWS_0=g._emscripten_bind_RaycastInfo_get_m_contactNormalWS_0,Ze=d._emscripten_bind_RaycastInfo_get_m_contactPointWS_0=g._emscripten_bind_RaycastInfo_get_m_contactPointWS_0,$e=d._emscripten_bind_RaycastInfo_get_m_groundObject_0=g._emscripten_bind_RaycastInfo_get_m_groundObject_0,af=d._emscripten_bind_RaycastInfo_get_m_hardPointWS_0=g._emscripten_bind_RaycastInfo_get_m_hardPointWS_0,bf=d._emscripten_bind_RaycastInfo_get_m_isInContact_0= +g._emscripten_bind_RaycastInfo_get_m_isInContact_0,cf=d._emscripten_bind_RaycastInfo_get_m_suspensionLength_0=g._emscripten_bind_RaycastInfo_get_m_suspensionLength_0,df=d._emscripten_bind_RaycastInfo_get_m_wheelAxleWS_0=g._emscripten_bind_RaycastInfo_get_m_wheelAxleWS_0,ef=d._emscripten_bind_RaycastInfo_get_m_wheelDirectionWS_0=g._emscripten_bind_RaycastInfo_get_m_wheelDirectionWS_0,ff=d._emscripten_bind_RaycastInfo_set_m_contactNormalWS_1=g._emscripten_bind_RaycastInfo_set_m_contactNormalWS_1,gf= +d._emscripten_bind_RaycastInfo_set_m_contactPointWS_1=g._emscripten_bind_RaycastInfo_set_m_contactPointWS_1,hf=d._emscripten_bind_RaycastInfo_set_m_groundObject_1=g._emscripten_bind_RaycastInfo_set_m_groundObject_1,jf=d._emscripten_bind_RaycastInfo_set_m_hardPointWS_1=g._emscripten_bind_RaycastInfo_set_m_hardPointWS_1,kf=d._emscripten_bind_RaycastInfo_set_m_isInContact_1=g._emscripten_bind_RaycastInfo_set_m_isInContact_1,lf=d._emscripten_bind_RaycastInfo_set_m_suspensionLength_1=g._emscripten_bind_RaycastInfo_set_m_suspensionLength_1, +mf=d._emscripten_bind_RaycastInfo_set_m_wheelAxleWS_1=g._emscripten_bind_RaycastInfo_set_m_wheelAxleWS_1,nf=d._emscripten_bind_RaycastInfo_set_m_wheelDirectionWS_1=g._emscripten_bind_RaycastInfo_set_m_wheelDirectionWS_1,of=d._emscripten_bind_VoidPtr___destroy___0=g._emscripten_bind_VoidPtr___destroy___0,pf=d._emscripten_bind_btActionInterface___destroy___0=g._emscripten_bind_btActionInterface___destroy___0,qf=d._emscripten_bind_btActionInterface_updateAction_2=g._emscripten_bind_btActionInterface_updateAction_2, +rf=d._emscripten_bind_btAxisSweep3___destroy___0=g._emscripten_bind_btAxisSweep3___destroy___0,sf=d._emscripten_bind_btAxisSweep3_btAxisSweep3_2=g._emscripten_bind_btAxisSweep3_btAxisSweep3_2,tf=d._emscripten_bind_btAxisSweep3_btAxisSweep3_3=g._emscripten_bind_btAxisSweep3_btAxisSweep3_3,uf=d._emscripten_bind_btAxisSweep3_btAxisSweep3_4=g._emscripten_bind_btAxisSweep3_btAxisSweep3_4,vf=d._emscripten_bind_btAxisSweep3_btAxisSweep3_5=g._emscripten_bind_btAxisSweep3_btAxisSweep3_5,wf=d._emscripten_bind_btBoxShape___destroy___0= +g._emscripten_bind_btBoxShape___destroy___0,xf=d._emscripten_bind_btBoxShape_btBoxShape_1=g._emscripten_bind_btBoxShape_btBoxShape_1,yf=d._emscripten_bind_btBoxShape_calculateLocalInertia_2=g._emscripten_bind_btBoxShape_calculateLocalInertia_2,zf=d._emscripten_bind_btBoxShape_getLocalScaling_0=g._emscripten_bind_btBoxShape_getLocalScaling_0,Af=d._emscripten_bind_btBoxShape_getMargin_0=g._emscripten_bind_btBoxShape_getMargin_0,Bf=d._emscripten_bind_btBoxShape_setLocalScaling_1=g._emscripten_bind_btBoxShape_setLocalScaling_1, +Cf=d._emscripten_bind_btBoxShape_setMargin_1=g._emscripten_bind_btBoxShape_setMargin_1,Df=d._emscripten_bind_btBroadphaseInterface___destroy___0=g._emscripten_bind_btBroadphaseInterface___destroy___0,Ef=d._emscripten_bind_btBroadphaseInterface_getOverlappingPairCache_0=g._emscripten_bind_btBroadphaseInterface_getOverlappingPairCache_0,Ff=d._emscripten_bind_btBroadphaseProxy___destroy___0=g._emscripten_bind_btBroadphaseProxy___destroy___0,Gf=d._emscripten_bind_btBroadphaseProxy_get_m_collisionFilterGroup_0= +g._emscripten_bind_btBroadphaseProxy_get_m_collisionFilterGroup_0,Hf=d._emscripten_bind_btBroadphaseProxy_get_m_collisionFilterMask_0=g._emscripten_bind_btBroadphaseProxy_get_m_collisionFilterMask_0,If=d._emscripten_bind_btBroadphaseProxy_set_m_collisionFilterGroup_1=g._emscripten_bind_btBroadphaseProxy_set_m_collisionFilterGroup_1,Jf=d._emscripten_bind_btBroadphaseProxy_set_m_collisionFilterMask_1=g._emscripten_bind_btBroadphaseProxy_set_m_collisionFilterMask_1,Kf=d._emscripten_bind_btBvhTriangleMeshShape___destroy___0= +g._emscripten_bind_btBvhTriangleMeshShape___destroy___0,Lf=d._emscripten_bind_btBvhTriangleMeshShape_btBvhTriangleMeshShape_2=g._emscripten_bind_btBvhTriangleMeshShape_btBvhTriangleMeshShape_2,Mf=d._emscripten_bind_btBvhTriangleMeshShape_btBvhTriangleMeshShape_3=g._emscripten_bind_btBvhTriangleMeshShape_btBvhTriangleMeshShape_3,Nf=d._emscripten_bind_btBvhTriangleMeshShape_calculateLocalInertia_2=g._emscripten_bind_btBvhTriangleMeshShape_calculateLocalInertia_2,Of=d._emscripten_bind_btBvhTriangleMeshShape_getLocalScaling_0= +g._emscripten_bind_btBvhTriangleMeshShape_getLocalScaling_0,Pf=d._emscripten_bind_btBvhTriangleMeshShape_setLocalScaling_1=g._emscripten_bind_btBvhTriangleMeshShape_setLocalScaling_1,Qf=d._emscripten_bind_btCapsuleShapeX___destroy___0=g._emscripten_bind_btCapsuleShapeX___destroy___0,Rf=d._emscripten_bind_btCapsuleShapeX_btCapsuleShapeX_2=g._emscripten_bind_btCapsuleShapeX_btCapsuleShapeX_2,Sf=d._emscripten_bind_btCapsuleShapeX_calculateLocalInertia_2=g._emscripten_bind_btCapsuleShapeX_calculateLocalInertia_2, +Tf=d._emscripten_bind_btCapsuleShapeX_getHalfHeight_0=g._emscripten_bind_btCapsuleShapeX_getHalfHeight_0,Uf=d._emscripten_bind_btCapsuleShapeX_getLocalScaling_0=g._emscripten_bind_btCapsuleShapeX_getLocalScaling_0,Vf=d._emscripten_bind_btCapsuleShapeX_getMargin_0=g._emscripten_bind_btCapsuleShapeX_getMargin_0,Wf=d._emscripten_bind_btCapsuleShapeX_getRadius_0=g._emscripten_bind_btCapsuleShapeX_getRadius_0,Xf=d._emscripten_bind_btCapsuleShapeX_getUpAxis_0=g._emscripten_bind_btCapsuleShapeX_getUpAxis_0, +Yf=d._emscripten_bind_btCapsuleShapeX_setLocalScaling_1=g._emscripten_bind_btCapsuleShapeX_setLocalScaling_1,Zf=d._emscripten_bind_btCapsuleShapeX_setMargin_1=g._emscripten_bind_btCapsuleShapeX_setMargin_1,$f=d._emscripten_bind_btCapsuleShapeZ___destroy___0=g._emscripten_bind_btCapsuleShapeZ___destroy___0,ag=d._emscripten_bind_btCapsuleShapeZ_btCapsuleShapeZ_2=g._emscripten_bind_btCapsuleShapeZ_btCapsuleShapeZ_2,bg=d._emscripten_bind_btCapsuleShapeZ_calculateLocalInertia_2=g._emscripten_bind_btCapsuleShapeZ_calculateLocalInertia_2, +cg=d._emscripten_bind_btCapsuleShapeZ_getHalfHeight_0=g._emscripten_bind_btCapsuleShapeZ_getHalfHeight_0,dg=d._emscripten_bind_btCapsuleShapeZ_getLocalScaling_0=g._emscripten_bind_btCapsuleShapeZ_getLocalScaling_0,eg=d._emscripten_bind_btCapsuleShapeZ_getMargin_0=g._emscripten_bind_btCapsuleShapeZ_getMargin_0,fg=d._emscripten_bind_btCapsuleShapeZ_getRadius_0=g._emscripten_bind_btCapsuleShapeZ_getRadius_0,gg=d._emscripten_bind_btCapsuleShapeZ_getUpAxis_0=g._emscripten_bind_btCapsuleShapeZ_getUpAxis_0, +hg=d._emscripten_bind_btCapsuleShapeZ_setLocalScaling_1=g._emscripten_bind_btCapsuleShapeZ_setLocalScaling_1,ig=d._emscripten_bind_btCapsuleShapeZ_setMargin_1=g._emscripten_bind_btCapsuleShapeZ_setMargin_1,jg=d._emscripten_bind_btCapsuleShape___destroy___0=g._emscripten_bind_btCapsuleShape___destroy___0,kg=d._emscripten_bind_btCapsuleShape_btCapsuleShape_2=g._emscripten_bind_btCapsuleShape_btCapsuleShape_2,lg=d._emscripten_bind_btCapsuleShape_calculateLocalInertia_2=g._emscripten_bind_btCapsuleShape_calculateLocalInertia_2, +mg=d._emscripten_bind_btCapsuleShape_getHalfHeight_0=g._emscripten_bind_btCapsuleShape_getHalfHeight_0,ng=d._emscripten_bind_btCapsuleShape_getLocalScaling_0=g._emscripten_bind_btCapsuleShape_getLocalScaling_0,og=d._emscripten_bind_btCapsuleShape_getMargin_0=g._emscripten_bind_btCapsuleShape_getMargin_0,pg=d._emscripten_bind_btCapsuleShape_getRadius_0=g._emscripten_bind_btCapsuleShape_getRadius_0,qg=d._emscripten_bind_btCapsuleShape_getUpAxis_0=g._emscripten_bind_btCapsuleShape_getUpAxis_0,rg=d._emscripten_bind_btCapsuleShape_setLocalScaling_1= +g._emscripten_bind_btCapsuleShape_setLocalScaling_1,sg=d._emscripten_bind_btCapsuleShape_setMargin_1=g._emscripten_bind_btCapsuleShape_setMargin_1,tg=d._emscripten_bind_btCollisionConfiguration___destroy___0=g._emscripten_bind_btCollisionConfiguration___destroy___0,ug=d._emscripten_bind_btCollisionDispatcher___destroy___0=g._emscripten_bind_btCollisionDispatcher___destroy___0,vg=d._emscripten_bind_btCollisionDispatcher_btCollisionDispatcher_1=g._emscripten_bind_btCollisionDispatcher_btCollisionDispatcher_1, +wg=d._emscripten_bind_btCollisionDispatcher_getManifoldByIndexInternal_1=g._emscripten_bind_btCollisionDispatcher_getManifoldByIndexInternal_1,xg=d._emscripten_bind_btCollisionDispatcher_getNumManifolds_0=g._emscripten_bind_btCollisionDispatcher_getNumManifolds_0,yg=d._emscripten_bind_btCollisionObjectWrapper_getCollisionObject_0=g._emscripten_bind_btCollisionObjectWrapper_getCollisionObject_0,zg=d._emscripten_bind_btCollisionObjectWrapper_getCollisionShape_0=g._emscripten_bind_btCollisionObjectWrapper_getCollisionShape_0, +Ag=d._emscripten_bind_btCollisionObjectWrapper_getWorldTransform_0=g._emscripten_bind_btCollisionObjectWrapper_getWorldTransform_0,Bg=d._emscripten_bind_btCollisionObject___destroy___0=g._emscripten_bind_btCollisionObject___destroy___0,Cg=d._emscripten_bind_btCollisionObject_activate_0=g._emscripten_bind_btCollisionObject_activate_0,Dg=d._emscripten_bind_btCollisionObject_activate_1=g._emscripten_bind_btCollisionObject_activate_1,Eg=d._emscripten_bind_btCollisionObject_forceActivationState_1=g._emscripten_bind_btCollisionObject_forceActivationState_1, +Fg=d._emscripten_bind_btCollisionObject_getBroadphaseHandle_0=g._emscripten_bind_btCollisionObject_getBroadphaseHandle_0,Gg=d._emscripten_bind_btCollisionObject_getCollisionFlags_0=g._emscripten_bind_btCollisionObject_getCollisionFlags_0,Hg=d._emscripten_bind_btCollisionObject_getCollisionShape_0=g._emscripten_bind_btCollisionObject_getCollisionShape_0,Ig=d._emscripten_bind_btCollisionObject_getFriction_0=g._emscripten_bind_btCollisionObject_getFriction_0,Jg=d._emscripten_bind_btCollisionObject_getRestitution_0= +g._emscripten_bind_btCollisionObject_getRestitution_0,Kg=d._emscripten_bind_btCollisionObject_getRollingFriction_0=g._emscripten_bind_btCollisionObject_getRollingFriction_0,Lg=d._emscripten_bind_btCollisionObject_getUserIndex_0=g._emscripten_bind_btCollisionObject_getUserIndex_0,Mg=d._emscripten_bind_btCollisionObject_getUserPointer_0=g._emscripten_bind_btCollisionObject_getUserPointer_0,Ng=d._emscripten_bind_btCollisionObject_getWorldTransform_0=g._emscripten_bind_btCollisionObject_getWorldTransform_0, +Og=d._emscripten_bind_btCollisionObject_isActive_0=g._emscripten_bind_btCollisionObject_isActive_0,Pg=d._emscripten_bind_btCollisionObject_isKinematicObject_0=g._emscripten_bind_btCollisionObject_isKinematicObject_0,Qg=d._emscripten_bind_btCollisionObject_isStaticObject_0=g._emscripten_bind_btCollisionObject_isStaticObject_0,Rg=d._emscripten_bind_btCollisionObject_isStaticOrKinematicObject_0=g._emscripten_bind_btCollisionObject_isStaticOrKinematicObject_0,Sg=d._emscripten_bind_btCollisionObject_setActivationState_1= +g._emscripten_bind_btCollisionObject_setActivationState_1,Tg=d._emscripten_bind_btCollisionObject_setAnisotropicFriction_2=g._emscripten_bind_btCollisionObject_setAnisotropicFriction_2,Ug=d._emscripten_bind_btCollisionObject_setCcdMotionThreshold_1=g._emscripten_bind_btCollisionObject_setCcdMotionThreshold_1,Vg=d._emscripten_bind_btCollisionObject_setCcdSweptSphereRadius_1=g._emscripten_bind_btCollisionObject_setCcdSweptSphereRadius_1,Wg=d._emscripten_bind_btCollisionObject_setCollisionFlags_1=g._emscripten_bind_btCollisionObject_setCollisionFlags_1, +Xg=d._emscripten_bind_btCollisionObject_setCollisionShape_1=g._emscripten_bind_btCollisionObject_setCollisionShape_1,Yg=d._emscripten_bind_btCollisionObject_setContactProcessingThreshold_1=g._emscripten_bind_btCollisionObject_setContactProcessingThreshold_1,Zg=d._emscripten_bind_btCollisionObject_setFriction_1=g._emscripten_bind_btCollisionObject_setFriction_1,$g=d._emscripten_bind_btCollisionObject_setRestitution_1=g._emscripten_bind_btCollisionObject_setRestitution_1,ah=d._emscripten_bind_btCollisionObject_setRollingFriction_1= +g._emscripten_bind_btCollisionObject_setRollingFriction_1,bh=d._emscripten_bind_btCollisionObject_setUserIndex_1=g._emscripten_bind_btCollisionObject_setUserIndex_1,ch=d._emscripten_bind_btCollisionObject_setUserPointer_1=g._emscripten_bind_btCollisionObject_setUserPointer_1,dh=d._emscripten_bind_btCollisionObject_setWorldTransform_1=g._emscripten_bind_btCollisionObject_setWorldTransform_1,eh=d._emscripten_bind_btCollisionShape___destroy___0=g._emscripten_bind_btCollisionShape___destroy___0,fh=d._emscripten_bind_btCollisionShape_calculateLocalInertia_2= +g._emscripten_bind_btCollisionShape_calculateLocalInertia_2,gh=d._emscripten_bind_btCollisionShape_getLocalScaling_0=g._emscripten_bind_btCollisionShape_getLocalScaling_0,hh=d._emscripten_bind_btCollisionShape_getMargin_0=g._emscripten_bind_btCollisionShape_getMargin_0,ih=d._emscripten_bind_btCollisionShape_setLocalScaling_1=g._emscripten_bind_btCollisionShape_setLocalScaling_1,jh=d._emscripten_bind_btCollisionShape_setMargin_1=g._emscripten_bind_btCollisionShape_setMargin_1,kh=d._emscripten_bind_btCollisionWorld___destroy___0= +g._emscripten_bind_btCollisionWorld___destroy___0,lh=d._emscripten_bind_btCollisionWorld_addCollisionObject_1=g._emscripten_bind_btCollisionWorld_addCollisionObject_1,mh=d._emscripten_bind_btCollisionWorld_addCollisionObject_2=g._emscripten_bind_btCollisionWorld_addCollisionObject_2,nh=d._emscripten_bind_btCollisionWorld_addCollisionObject_3=g._emscripten_bind_btCollisionWorld_addCollisionObject_3,oh=d._emscripten_bind_btCollisionWorld_contactPairTest_3=g._emscripten_bind_btCollisionWorld_contactPairTest_3, +ph=d._emscripten_bind_btCollisionWorld_contactTest_2=g._emscripten_bind_btCollisionWorld_contactTest_2,qh=d._emscripten_bind_btCollisionWorld_convexSweepTest_5=g._emscripten_bind_btCollisionWorld_convexSweepTest_5,rh=d._emscripten_bind_btCollisionWorld_debugDrawObject_3=g._emscripten_bind_btCollisionWorld_debugDrawObject_3,sh=d._emscripten_bind_btCollisionWorld_debugDrawWorld_0=g._emscripten_bind_btCollisionWorld_debugDrawWorld_0,th=d._emscripten_bind_btCollisionWorld_getBroadphase_0=g._emscripten_bind_btCollisionWorld_getBroadphase_0, +uh=d._emscripten_bind_btCollisionWorld_getDebugDrawer_0=g._emscripten_bind_btCollisionWorld_getDebugDrawer_0,vh=d._emscripten_bind_btCollisionWorld_getDispatchInfo_0=g._emscripten_bind_btCollisionWorld_getDispatchInfo_0,wh=d._emscripten_bind_btCollisionWorld_getDispatcher_0=g._emscripten_bind_btCollisionWorld_getDispatcher_0,xh=d._emscripten_bind_btCollisionWorld_getPairCache_0=g._emscripten_bind_btCollisionWorld_getPairCache_0,yh=d._emscripten_bind_btCollisionWorld_rayTest_3=g._emscripten_bind_btCollisionWorld_rayTest_3, +zh=d._emscripten_bind_btCollisionWorld_removeCollisionObject_1=g._emscripten_bind_btCollisionWorld_removeCollisionObject_1,Ah=d._emscripten_bind_btCollisionWorld_setDebugDrawer_1=g._emscripten_bind_btCollisionWorld_setDebugDrawer_1,Bh=d._emscripten_bind_btCollisionWorld_updateSingleAabb_1=g._emscripten_bind_btCollisionWorld_updateSingleAabb_1,Ch=d._emscripten_bind_btCompoundShape___destroy___0=g._emscripten_bind_btCompoundShape___destroy___0,Dh=d._emscripten_bind_btCompoundShape_addChildShape_2=g._emscripten_bind_btCompoundShape_addChildShape_2, +Eh=d._emscripten_bind_btCompoundShape_btCompoundShape_0=g._emscripten_bind_btCompoundShape_btCompoundShape_0,Fh=d._emscripten_bind_btCompoundShape_btCompoundShape_1=g._emscripten_bind_btCompoundShape_btCompoundShape_1,Gh=d._emscripten_bind_btCompoundShape_calculateLocalInertia_2=g._emscripten_bind_btCompoundShape_calculateLocalInertia_2,Hh=d._emscripten_bind_btCompoundShape_getChildShape_1=g._emscripten_bind_btCompoundShape_getChildShape_1,Ih=d._emscripten_bind_btCompoundShape_getLocalScaling_0=g._emscripten_bind_btCompoundShape_getLocalScaling_0, +Jh=d._emscripten_bind_btCompoundShape_getMargin_0=g._emscripten_bind_btCompoundShape_getMargin_0,Kh=d._emscripten_bind_btCompoundShape_getNumChildShapes_0=g._emscripten_bind_btCompoundShape_getNumChildShapes_0,Lh=d._emscripten_bind_btCompoundShape_removeChildShapeByIndex_1=g._emscripten_bind_btCompoundShape_removeChildShapeByIndex_1,Mh=d._emscripten_bind_btCompoundShape_removeChildShape_1=g._emscripten_bind_btCompoundShape_removeChildShape_1,Nh=d._emscripten_bind_btCompoundShape_setLocalScaling_1= +g._emscripten_bind_btCompoundShape_setLocalScaling_1,Oh=d._emscripten_bind_btCompoundShape_setMargin_1=g._emscripten_bind_btCompoundShape_setMargin_1,Ph=d._emscripten_bind_btCompoundShape_updateChildTransform_2=g._emscripten_bind_btCompoundShape_updateChildTransform_2,Qh=d._emscripten_bind_btCompoundShape_updateChildTransform_3=g._emscripten_bind_btCompoundShape_updateChildTransform_3,Rh=d._emscripten_bind_btConcaveShape___destroy___0=g._emscripten_bind_btConcaveShape___destroy___0,Sh=d._emscripten_bind_btConcaveShape_calculateLocalInertia_2= +g._emscripten_bind_btConcaveShape_calculateLocalInertia_2,Th=d._emscripten_bind_btConcaveShape_getLocalScaling_0=g._emscripten_bind_btConcaveShape_getLocalScaling_0,Uh=d._emscripten_bind_btConcaveShape_setLocalScaling_1=g._emscripten_bind_btConcaveShape_setLocalScaling_1,Vh=d._emscripten_bind_btConeShapeX___destroy___0=g._emscripten_bind_btConeShapeX___destroy___0,Wh=d._emscripten_bind_btConeShapeX_btConeShapeX_2=g._emscripten_bind_btConeShapeX_btConeShapeX_2,Xh=d._emscripten_bind_btConeShapeX_calculateLocalInertia_2= +g._emscripten_bind_btConeShapeX_calculateLocalInertia_2,Yh=d._emscripten_bind_btConeShapeX_getLocalScaling_0=g._emscripten_bind_btConeShapeX_getLocalScaling_0,Zh=d._emscripten_bind_btConeShapeX_setLocalScaling_1=g._emscripten_bind_btConeShapeX_setLocalScaling_1,$h=d._emscripten_bind_btConeShapeZ___destroy___0=g._emscripten_bind_btConeShapeZ___destroy___0,ai=d._emscripten_bind_btConeShapeZ_btConeShapeZ_2=g._emscripten_bind_btConeShapeZ_btConeShapeZ_2,bi=d._emscripten_bind_btConeShapeZ_calculateLocalInertia_2= +g._emscripten_bind_btConeShapeZ_calculateLocalInertia_2,ci=d._emscripten_bind_btConeShapeZ_getLocalScaling_0=g._emscripten_bind_btConeShapeZ_getLocalScaling_0,di=d._emscripten_bind_btConeShapeZ_setLocalScaling_1=g._emscripten_bind_btConeShapeZ_setLocalScaling_1,ei=d._emscripten_bind_btConeShape___destroy___0=g._emscripten_bind_btConeShape___destroy___0,fi=d._emscripten_bind_btConeShape_btConeShape_2=g._emscripten_bind_btConeShape_btConeShape_2,gi=d._emscripten_bind_btConeShape_calculateLocalInertia_2= +g._emscripten_bind_btConeShape_calculateLocalInertia_2,hi=d._emscripten_bind_btConeShape_getLocalScaling_0=g._emscripten_bind_btConeShape_getLocalScaling_0,ii=d._emscripten_bind_btConeShape_setLocalScaling_1=g._emscripten_bind_btConeShape_setLocalScaling_1,ji=d._emscripten_bind_btConeTwistConstraint___destroy___0=g._emscripten_bind_btConeTwistConstraint___destroy___0,ki=d._emscripten_bind_btConeTwistConstraint_btConeTwistConstraint_2=g._emscripten_bind_btConeTwistConstraint_btConeTwistConstraint_2, +li=d._emscripten_bind_btConeTwistConstraint_btConeTwistConstraint_4=g._emscripten_bind_btConeTwistConstraint_btConeTwistConstraint_4,mi=d._emscripten_bind_btConeTwistConstraint_enableFeedback_1=g._emscripten_bind_btConeTwistConstraint_enableFeedback_1,ni=d._emscripten_bind_btConeTwistConstraint_enableMotor_1=g._emscripten_bind_btConeTwistConstraint_enableMotor_1,oi=d._emscripten_bind_btConeTwistConstraint_getBreakingImpulseThreshold_0=g._emscripten_bind_btConeTwistConstraint_getBreakingImpulseThreshold_0, +pi=d._emscripten_bind_btConeTwistConstraint_getParam_2=g._emscripten_bind_btConeTwistConstraint_getParam_2,qi=d._emscripten_bind_btConeTwistConstraint_setAngularOnly_1=g._emscripten_bind_btConeTwistConstraint_setAngularOnly_1,ri=d._emscripten_bind_btConeTwistConstraint_setBreakingImpulseThreshold_1=g._emscripten_bind_btConeTwistConstraint_setBreakingImpulseThreshold_1,si=d._emscripten_bind_btConeTwistConstraint_setDamping_1=g._emscripten_bind_btConeTwistConstraint_setDamping_1,ti=d._emscripten_bind_btConeTwistConstraint_setLimit_2= +g._emscripten_bind_btConeTwistConstraint_setLimit_2,ui=d._emscripten_bind_btConeTwistConstraint_setMaxMotorImpulseNormalized_1=g._emscripten_bind_btConeTwistConstraint_setMaxMotorImpulseNormalized_1,vi=d._emscripten_bind_btConeTwistConstraint_setMaxMotorImpulse_1=g._emscripten_bind_btConeTwistConstraint_setMaxMotorImpulse_1,wi=d._emscripten_bind_btConeTwistConstraint_setMotorTargetInConstraintSpace_1=g._emscripten_bind_btConeTwistConstraint_setMotorTargetInConstraintSpace_1,xi=d._emscripten_bind_btConeTwistConstraint_setMotorTarget_1= +g._emscripten_bind_btConeTwistConstraint_setMotorTarget_1,yi=d._emscripten_bind_btConeTwistConstraint_setParam_3=g._emscripten_bind_btConeTwistConstraint_setParam_3,zi=d._emscripten_bind_btConstCollisionObjectArray___destroy___0=g._emscripten_bind_btConstCollisionObjectArray___destroy___0,Ai=d._emscripten_bind_btConstCollisionObjectArray_at_1=g._emscripten_bind_btConstCollisionObjectArray_at_1,Bi=d._emscripten_bind_btConstCollisionObjectArray_size_0=g._emscripten_bind_btConstCollisionObjectArray_size_0, +Ci=d._emscripten_bind_btConstraintSetting___destroy___0=g._emscripten_bind_btConstraintSetting___destroy___0,Di=d._emscripten_bind_btConstraintSetting_btConstraintSetting_0=g._emscripten_bind_btConstraintSetting_btConstraintSetting_0,Ei=d._emscripten_bind_btConstraintSetting_get_m_damping_0=g._emscripten_bind_btConstraintSetting_get_m_damping_0,Fi=d._emscripten_bind_btConstraintSetting_get_m_impulseClamp_0=g._emscripten_bind_btConstraintSetting_get_m_impulseClamp_0,Gi=d._emscripten_bind_btConstraintSetting_get_m_tau_0= +g._emscripten_bind_btConstraintSetting_get_m_tau_0,Hi=d._emscripten_bind_btConstraintSetting_set_m_damping_1=g._emscripten_bind_btConstraintSetting_set_m_damping_1,Ii=d._emscripten_bind_btConstraintSetting_set_m_impulseClamp_1=g._emscripten_bind_btConstraintSetting_set_m_impulseClamp_1,Ji=d._emscripten_bind_btConstraintSetting_set_m_tau_1=g._emscripten_bind_btConstraintSetting_set_m_tau_1,Ki=d._emscripten_bind_btConstraintSolver___destroy___0=g._emscripten_bind_btConstraintSolver___destroy___0,Li= +d._emscripten_bind_btContactSolverInfo___destroy___0=g._emscripten_bind_btContactSolverInfo___destroy___0,Mi=d._emscripten_bind_btContactSolverInfo_get_m_numIterations_0=g._emscripten_bind_btContactSolverInfo_get_m_numIterations_0,Ni=d._emscripten_bind_btContactSolverInfo_get_m_splitImpulsePenetrationThreshold_0=g._emscripten_bind_btContactSolverInfo_get_m_splitImpulsePenetrationThreshold_0,Oi=d._emscripten_bind_btContactSolverInfo_get_m_splitImpulse_0=g._emscripten_bind_btContactSolverInfo_get_m_splitImpulse_0, +Pi=d._emscripten_bind_btContactSolverInfo_set_m_numIterations_1=g._emscripten_bind_btContactSolverInfo_set_m_numIterations_1,Qi=d._emscripten_bind_btContactSolverInfo_set_m_splitImpulsePenetrationThreshold_1=g._emscripten_bind_btContactSolverInfo_set_m_splitImpulsePenetrationThreshold_1,Ri=d._emscripten_bind_btContactSolverInfo_set_m_splitImpulse_1=g._emscripten_bind_btContactSolverInfo_set_m_splitImpulse_1,Si=d._emscripten_bind_btConvexHullShape___destroy___0=g._emscripten_bind_btConvexHullShape___destroy___0, +Ti=d._emscripten_bind_btConvexHullShape_addPoint_1=g._emscripten_bind_btConvexHullShape_addPoint_1,Ui=d._emscripten_bind_btConvexHullShape_addPoint_2=g._emscripten_bind_btConvexHullShape_addPoint_2,Vi=d._emscripten_bind_btConvexHullShape_btConvexHullShape_0=g._emscripten_bind_btConvexHullShape_btConvexHullShape_0,Wi=d._emscripten_bind_btConvexHullShape_btConvexHullShape_1=g._emscripten_bind_btConvexHullShape_btConvexHullShape_1,Xi=d._emscripten_bind_btConvexHullShape_btConvexHullShape_2=g._emscripten_bind_btConvexHullShape_btConvexHullShape_2, +Yi=d._emscripten_bind_btConvexHullShape_calculateLocalInertia_2=g._emscripten_bind_btConvexHullShape_calculateLocalInertia_2,Zi=d._emscripten_bind_btConvexHullShape_getConvexPolyhedron_0=g._emscripten_bind_btConvexHullShape_getConvexPolyhedron_0,$i=d._emscripten_bind_btConvexHullShape_getLocalScaling_0=g._emscripten_bind_btConvexHullShape_getLocalScaling_0,aj=d._emscripten_bind_btConvexHullShape_getMargin_0=g._emscripten_bind_btConvexHullShape_getMargin_0,bj=d._emscripten_bind_btConvexHullShape_getNumVertices_0= +g._emscripten_bind_btConvexHullShape_getNumVertices_0,cj=d._emscripten_bind_btConvexHullShape_initializePolyhedralFeatures_1=g._emscripten_bind_btConvexHullShape_initializePolyhedralFeatures_1,dj=d._emscripten_bind_btConvexHullShape_recalcLocalAabb_0=g._emscripten_bind_btConvexHullShape_recalcLocalAabb_0,ej=d._emscripten_bind_btConvexHullShape_setLocalScaling_1=g._emscripten_bind_btConvexHullShape_setLocalScaling_1,fj=d._emscripten_bind_btConvexHullShape_setMargin_1=g._emscripten_bind_btConvexHullShape_setMargin_1, +gj=d._emscripten_bind_btConvexPolyhedron___destroy___0=g._emscripten_bind_btConvexPolyhedron___destroy___0,hj=d._emscripten_bind_btConvexPolyhedron_get_m_faces_0=g._emscripten_bind_btConvexPolyhedron_get_m_faces_0,ij=d._emscripten_bind_btConvexPolyhedron_get_m_vertices_0=g._emscripten_bind_btConvexPolyhedron_get_m_vertices_0,jj=d._emscripten_bind_btConvexPolyhedron_set_m_faces_1=g._emscripten_bind_btConvexPolyhedron_set_m_faces_1,kj=d._emscripten_bind_btConvexPolyhedron_set_m_vertices_1=g._emscripten_bind_btConvexPolyhedron_set_m_vertices_1, +lj=d._emscripten_bind_btConvexShape___destroy___0=g._emscripten_bind_btConvexShape___destroy___0,mj=d._emscripten_bind_btConvexShape_calculateLocalInertia_2=g._emscripten_bind_btConvexShape_calculateLocalInertia_2,nj=d._emscripten_bind_btConvexShape_getLocalScaling_0=g._emscripten_bind_btConvexShape_getLocalScaling_0,oj=d._emscripten_bind_btConvexShape_getMargin_0=g._emscripten_bind_btConvexShape_getMargin_0,pj=d._emscripten_bind_btConvexShape_setLocalScaling_1=g._emscripten_bind_btConvexShape_setLocalScaling_1, +qj=d._emscripten_bind_btConvexShape_setMargin_1=g._emscripten_bind_btConvexShape_setMargin_1,rj=d._emscripten_bind_btConvexTriangleMeshShape___destroy___0=g._emscripten_bind_btConvexTriangleMeshShape___destroy___0,sj=d._emscripten_bind_btConvexTriangleMeshShape_btConvexTriangleMeshShape_1=g._emscripten_bind_btConvexTriangleMeshShape_btConvexTriangleMeshShape_1,tj=d._emscripten_bind_btConvexTriangleMeshShape_btConvexTriangleMeshShape_2=g._emscripten_bind_btConvexTriangleMeshShape_btConvexTriangleMeshShape_2, +uj=d._emscripten_bind_btConvexTriangleMeshShape_calculateLocalInertia_2=g._emscripten_bind_btConvexTriangleMeshShape_calculateLocalInertia_2,vj=d._emscripten_bind_btConvexTriangleMeshShape_getLocalScaling_0=g._emscripten_bind_btConvexTriangleMeshShape_getLocalScaling_0,wj=d._emscripten_bind_btConvexTriangleMeshShape_getMargin_0=g._emscripten_bind_btConvexTriangleMeshShape_getMargin_0,xj=d._emscripten_bind_btConvexTriangleMeshShape_setLocalScaling_1=g._emscripten_bind_btConvexTriangleMeshShape_setLocalScaling_1, +yj=d._emscripten_bind_btConvexTriangleMeshShape_setMargin_1=g._emscripten_bind_btConvexTriangleMeshShape_setMargin_1,zj=d._emscripten_bind_btCylinderShapeX___destroy___0=g._emscripten_bind_btCylinderShapeX___destroy___0,Aj=d._emscripten_bind_btCylinderShapeX_btCylinderShapeX_1=g._emscripten_bind_btCylinderShapeX_btCylinderShapeX_1,Bj=d._emscripten_bind_btCylinderShapeX_calculateLocalInertia_2=g._emscripten_bind_btCylinderShapeX_calculateLocalInertia_2,Cj=d._emscripten_bind_btCylinderShapeX_getLocalScaling_0= +g._emscripten_bind_btCylinderShapeX_getLocalScaling_0,Dj=d._emscripten_bind_btCylinderShapeX_getMargin_0=g._emscripten_bind_btCylinderShapeX_getMargin_0,Ej=d._emscripten_bind_btCylinderShapeX_setLocalScaling_1=g._emscripten_bind_btCylinderShapeX_setLocalScaling_1,Fj=d._emscripten_bind_btCylinderShapeX_setMargin_1=g._emscripten_bind_btCylinderShapeX_setMargin_1,Gj=d._emscripten_bind_btCylinderShapeZ___destroy___0=g._emscripten_bind_btCylinderShapeZ___destroy___0,Hj=d._emscripten_bind_btCylinderShapeZ_btCylinderShapeZ_1= +g._emscripten_bind_btCylinderShapeZ_btCylinderShapeZ_1,Ij=d._emscripten_bind_btCylinderShapeZ_calculateLocalInertia_2=g._emscripten_bind_btCylinderShapeZ_calculateLocalInertia_2,Jj=d._emscripten_bind_btCylinderShapeZ_getLocalScaling_0=g._emscripten_bind_btCylinderShapeZ_getLocalScaling_0,Kj=d._emscripten_bind_btCylinderShapeZ_getMargin_0=g._emscripten_bind_btCylinderShapeZ_getMargin_0,Lj=d._emscripten_bind_btCylinderShapeZ_setLocalScaling_1=g._emscripten_bind_btCylinderShapeZ_setLocalScaling_1,Mj= +d._emscripten_bind_btCylinderShapeZ_setMargin_1=g._emscripten_bind_btCylinderShapeZ_setMargin_1,Nj=d._emscripten_bind_btCylinderShape___destroy___0=g._emscripten_bind_btCylinderShape___destroy___0,Oj=d._emscripten_bind_btCylinderShape_btCylinderShape_1=g._emscripten_bind_btCylinderShape_btCylinderShape_1,Pj=d._emscripten_bind_btCylinderShape_calculateLocalInertia_2=g._emscripten_bind_btCylinderShape_calculateLocalInertia_2,Qj=d._emscripten_bind_btCylinderShape_getLocalScaling_0=g._emscripten_bind_btCylinderShape_getLocalScaling_0, +Rj=d._emscripten_bind_btCylinderShape_getMargin_0=g._emscripten_bind_btCylinderShape_getMargin_0,Sj=d._emscripten_bind_btCylinderShape_setLocalScaling_1=g._emscripten_bind_btCylinderShape_setLocalScaling_1,Tj=d._emscripten_bind_btCylinderShape_setMargin_1=g._emscripten_bind_btCylinderShape_setMargin_1,Uj=d._emscripten_bind_btDbvtBroadphase___destroy___0=g._emscripten_bind_btDbvtBroadphase___destroy___0,Vj=d._emscripten_bind_btDbvtBroadphase_btDbvtBroadphase_0=g._emscripten_bind_btDbvtBroadphase_btDbvtBroadphase_0, +Wj=d._emscripten_bind_btDefaultCollisionConfiguration___destroy___0=g._emscripten_bind_btDefaultCollisionConfiguration___destroy___0,Xj=d._emscripten_bind_btDefaultCollisionConfiguration_btDefaultCollisionConfiguration_0=g._emscripten_bind_btDefaultCollisionConfiguration_btDefaultCollisionConfiguration_0,Yj=d._emscripten_bind_btDefaultCollisionConfiguration_btDefaultCollisionConfiguration_1=g._emscripten_bind_btDefaultCollisionConfiguration_btDefaultCollisionConfiguration_1,Zj=d._emscripten_bind_btDefaultCollisionConstructionInfo___destroy___0= +g._emscripten_bind_btDefaultCollisionConstructionInfo___destroy___0,ak=d._emscripten_bind_btDefaultCollisionConstructionInfo_btDefaultCollisionConstructionInfo_0=g._emscripten_bind_btDefaultCollisionConstructionInfo_btDefaultCollisionConstructionInfo_0,bk=d._emscripten_bind_btDefaultMotionState___destroy___0=g._emscripten_bind_btDefaultMotionState___destroy___0,ck=d._emscripten_bind_btDefaultMotionState_btDefaultMotionState_0=g._emscripten_bind_btDefaultMotionState_btDefaultMotionState_0,dk=d._emscripten_bind_btDefaultMotionState_btDefaultMotionState_1= +g._emscripten_bind_btDefaultMotionState_btDefaultMotionState_1,ek=d._emscripten_bind_btDefaultMotionState_btDefaultMotionState_2=g._emscripten_bind_btDefaultMotionState_btDefaultMotionState_2,fk=d._emscripten_bind_btDefaultMotionState_getWorldTransform_1=g._emscripten_bind_btDefaultMotionState_getWorldTransform_1,gk=d._emscripten_bind_btDefaultMotionState_get_m_graphicsWorldTrans_0=g._emscripten_bind_btDefaultMotionState_get_m_graphicsWorldTrans_0,hk=d._emscripten_bind_btDefaultMotionState_setWorldTransform_1= +g._emscripten_bind_btDefaultMotionState_setWorldTransform_1,ik=d._emscripten_bind_btDefaultMotionState_set_m_graphicsWorldTrans_1=g._emscripten_bind_btDefaultMotionState_set_m_graphicsWorldTrans_1,jk=d._emscripten_bind_btDefaultSoftBodySolver___destroy___0=g._emscripten_bind_btDefaultSoftBodySolver___destroy___0,kk=d._emscripten_bind_btDefaultSoftBodySolver_btDefaultSoftBodySolver_0=g._emscripten_bind_btDefaultSoftBodySolver_btDefaultSoftBodySolver_0,lk=d._emscripten_bind_btDefaultVehicleRaycaster___destroy___0= +g._emscripten_bind_btDefaultVehicleRaycaster___destroy___0,mk=d._emscripten_bind_btDefaultVehicleRaycaster_btDefaultVehicleRaycaster_1=g._emscripten_bind_btDefaultVehicleRaycaster_btDefaultVehicleRaycaster_1,nk=d._emscripten_bind_btDefaultVehicleRaycaster_castRay_3=g._emscripten_bind_btDefaultVehicleRaycaster_castRay_3,ok=d._emscripten_bind_btDiscreteDynamicsWorld___destroy___0=g._emscripten_bind_btDiscreteDynamicsWorld___destroy___0,pk=d._emscripten_bind_btDiscreteDynamicsWorld_addAction_1=g._emscripten_bind_btDiscreteDynamicsWorld_addAction_1, +qk=d._emscripten_bind_btDiscreteDynamicsWorld_addCollisionObject_1=g._emscripten_bind_btDiscreteDynamicsWorld_addCollisionObject_1,rk=d._emscripten_bind_btDiscreteDynamicsWorld_addCollisionObject_2=g._emscripten_bind_btDiscreteDynamicsWorld_addCollisionObject_2,sk=d._emscripten_bind_btDiscreteDynamicsWorld_addCollisionObject_3=g._emscripten_bind_btDiscreteDynamicsWorld_addCollisionObject_3,tk=d._emscripten_bind_btDiscreteDynamicsWorld_addConstraint_1=g._emscripten_bind_btDiscreteDynamicsWorld_addConstraint_1, +uk=d._emscripten_bind_btDiscreteDynamicsWorld_addConstraint_2=g._emscripten_bind_btDiscreteDynamicsWorld_addConstraint_2,vk=d._emscripten_bind_btDiscreteDynamicsWorld_addRigidBody_1=g._emscripten_bind_btDiscreteDynamicsWorld_addRigidBody_1,wk=d._emscripten_bind_btDiscreteDynamicsWorld_addRigidBody_3=g._emscripten_bind_btDiscreteDynamicsWorld_addRigidBody_3,xk=d._emscripten_bind_btDiscreteDynamicsWorld_btDiscreteDynamicsWorld_4=g._emscripten_bind_btDiscreteDynamicsWorld_btDiscreteDynamicsWorld_4,yk= +d._emscripten_bind_btDiscreteDynamicsWorld_contactPairTest_3=g._emscripten_bind_btDiscreteDynamicsWorld_contactPairTest_3,zk=d._emscripten_bind_btDiscreteDynamicsWorld_contactTest_2=g._emscripten_bind_btDiscreteDynamicsWorld_contactTest_2,Ak=d._emscripten_bind_btDiscreteDynamicsWorld_convexSweepTest_5=g._emscripten_bind_btDiscreteDynamicsWorld_convexSweepTest_5,Bk=d._emscripten_bind_btDiscreteDynamicsWorld_debugDrawObject_3=g._emscripten_bind_btDiscreteDynamicsWorld_debugDrawObject_3,Ck=d._emscripten_bind_btDiscreteDynamicsWorld_debugDrawWorld_0= +g._emscripten_bind_btDiscreteDynamicsWorld_debugDrawWorld_0,Dk=d._emscripten_bind_btDiscreteDynamicsWorld_getBroadphase_0=g._emscripten_bind_btDiscreteDynamicsWorld_getBroadphase_0,Ek=d._emscripten_bind_btDiscreteDynamicsWorld_getDebugDrawer_0=g._emscripten_bind_btDiscreteDynamicsWorld_getDebugDrawer_0,Fk=d._emscripten_bind_btDiscreteDynamicsWorld_getDispatchInfo_0=g._emscripten_bind_btDiscreteDynamicsWorld_getDispatchInfo_0,Gk=d._emscripten_bind_btDiscreteDynamicsWorld_getDispatcher_0=g._emscripten_bind_btDiscreteDynamicsWorld_getDispatcher_0, +Hk=d._emscripten_bind_btDiscreteDynamicsWorld_getGravity_0=g._emscripten_bind_btDiscreteDynamicsWorld_getGravity_0,Ik=d._emscripten_bind_btDiscreteDynamicsWorld_getPairCache_0=g._emscripten_bind_btDiscreteDynamicsWorld_getPairCache_0,Jk=d._emscripten_bind_btDiscreteDynamicsWorld_getSolverInfo_0=g._emscripten_bind_btDiscreteDynamicsWorld_getSolverInfo_0,Kk=d._emscripten_bind_btDiscreteDynamicsWorld_rayTest_3=g._emscripten_bind_btDiscreteDynamicsWorld_rayTest_3,Lk=d._emscripten_bind_btDiscreteDynamicsWorld_removeAction_1= +g._emscripten_bind_btDiscreteDynamicsWorld_removeAction_1,Mk=d._emscripten_bind_btDiscreteDynamicsWorld_removeCollisionObject_1=g._emscripten_bind_btDiscreteDynamicsWorld_removeCollisionObject_1,Nk=d._emscripten_bind_btDiscreteDynamicsWorld_removeConstraint_1=g._emscripten_bind_btDiscreteDynamicsWorld_removeConstraint_1,Ok=d._emscripten_bind_btDiscreteDynamicsWorld_removeRigidBody_1=g._emscripten_bind_btDiscreteDynamicsWorld_removeRigidBody_1,Pk=d._emscripten_bind_btDiscreteDynamicsWorld_setContactAddedCallback_1= +g._emscripten_bind_btDiscreteDynamicsWorld_setContactAddedCallback_1,Qk=d._emscripten_bind_btDiscreteDynamicsWorld_setContactDestroyedCallback_1=g._emscripten_bind_btDiscreteDynamicsWorld_setContactDestroyedCallback_1,Rk=d._emscripten_bind_btDiscreteDynamicsWorld_setContactProcessedCallback_1=g._emscripten_bind_btDiscreteDynamicsWorld_setContactProcessedCallback_1,Sk=d._emscripten_bind_btDiscreteDynamicsWorld_setDebugDrawer_1=g._emscripten_bind_btDiscreteDynamicsWorld_setDebugDrawer_1,Tk=d._emscripten_bind_btDiscreteDynamicsWorld_setGravity_1= +g._emscripten_bind_btDiscreteDynamicsWorld_setGravity_1,Uk=d._emscripten_bind_btDiscreteDynamicsWorld_stepSimulation_1=g._emscripten_bind_btDiscreteDynamicsWorld_stepSimulation_1,Vk=d._emscripten_bind_btDiscreteDynamicsWorld_stepSimulation_2=g._emscripten_bind_btDiscreteDynamicsWorld_stepSimulation_2,Wk=d._emscripten_bind_btDiscreteDynamicsWorld_stepSimulation_3=g._emscripten_bind_btDiscreteDynamicsWorld_stepSimulation_3,Xk=d._emscripten_bind_btDiscreteDynamicsWorld_updateSingleAabb_1=g._emscripten_bind_btDiscreteDynamicsWorld_updateSingleAabb_1, +Yk=d._emscripten_bind_btDispatcherInfo___destroy___0=g._emscripten_bind_btDispatcherInfo___destroy___0,Zk=d._emscripten_bind_btDispatcherInfo_get_m_allowedCcdPenetration_0=g._emscripten_bind_btDispatcherInfo_get_m_allowedCcdPenetration_0,$k=d._emscripten_bind_btDispatcherInfo_get_m_convexConservativeDistanceThreshold_0=g._emscripten_bind_btDispatcherInfo_get_m_convexConservativeDistanceThreshold_0,al=d._emscripten_bind_btDispatcherInfo_get_m_dispatchFunc_0=g._emscripten_bind_btDispatcherInfo_get_m_dispatchFunc_0, +bl=d._emscripten_bind_btDispatcherInfo_get_m_enableSPU_0=g._emscripten_bind_btDispatcherInfo_get_m_enableSPU_0,cl=d._emscripten_bind_btDispatcherInfo_get_m_enableSatConvex_0=g._emscripten_bind_btDispatcherInfo_get_m_enableSatConvex_0,dl=d._emscripten_bind_btDispatcherInfo_get_m_stepCount_0=g._emscripten_bind_btDispatcherInfo_get_m_stepCount_0,el=d._emscripten_bind_btDispatcherInfo_get_m_timeOfImpact_0=g._emscripten_bind_btDispatcherInfo_get_m_timeOfImpact_0,fl=d._emscripten_bind_btDispatcherInfo_get_m_timeStep_0= +g._emscripten_bind_btDispatcherInfo_get_m_timeStep_0,gl=d._emscripten_bind_btDispatcherInfo_get_m_useContinuous_0=g._emscripten_bind_btDispatcherInfo_get_m_useContinuous_0,hl=d._emscripten_bind_btDispatcherInfo_get_m_useConvexConservativeDistanceUtil_0=g._emscripten_bind_btDispatcherInfo_get_m_useConvexConservativeDistanceUtil_0,il=d._emscripten_bind_btDispatcherInfo_get_m_useEpa_0=g._emscripten_bind_btDispatcherInfo_get_m_useEpa_0,jl=d._emscripten_bind_btDispatcherInfo_set_m_allowedCcdPenetration_1= +g._emscripten_bind_btDispatcherInfo_set_m_allowedCcdPenetration_1,kl=d._emscripten_bind_btDispatcherInfo_set_m_convexConservativeDistanceThreshold_1=g._emscripten_bind_btDispatcherInfo_set_m_convexConservativeDistanceThreshold_1,ll=d._emscripten_bind_btDispatcherInfo_set_m_dispatchFunc_1=g._emscripten_bind_btDispatcherInfo_set_m_dispatchFunc_1,ml=d._emscripten_bind_btDispatcherInfo_set_m_enableSPU_1=g._emscripten_bind_btDispatcherInfo_set_m_enableSPU_1,nl=d._emscripten_bind_btDispatcherInfo_set_m_enableSatConvex_1= +g._emscripten_bind_btDispatcherInfo_set_m_enableSatConvex_1,ol=d._emscripten_bind_btDispatcherInfo_set_m_stepCount_1=g._emscripten_bind_btDispatcherInfo_set_m_stepCount_1,pl=d._emscripten_bind_btDispatcherInfo_set_m_timeOfImpact_1=g._emscripten_bind_btDispatcherInfo_set_m_timeOfImpact_1,ql=d._emscripten_bind_btDispatcherInfo_set_m_timeStep_1=g._emscripten_bind_btDispatcherInfo_set_m_timeStep_1,rl=d._emscripten_bind_btDispatcherInfo_set_m_useContinuous_1=g._emscripten_bind_btDispatcherInfo_set_m_useContinuous_1, +sl=d._emscripten_bind_btDispatcherInfo_set_m_useConvexConservativeDistanceUtil_1=g._emscripten_bind_btDispatcherInfo_set_m_useConvexConservativeDistanceUtil_1,tl=d._emscripten_bind_btDispatcherInfo_set_m_useEpa_1=g._emscripten_bind_btDispatcherInfo_set_m_useEpa_1,ul=d._emscripten_bind_btDispatcher___destroy___0=g._emscripten_bind_btDispatcher___destroy___0,vl=d._emscripten_bind_btDispatcher_getManifoldByIndexInternal_1=g._emscripten_bind_btDispatcher_getManifoldByIndexInternal_1,wl=d._emscripten_bind_btDispatcher_getNumManifolds_0= +g._emscripten_bind_btDispatcher_getNumManifolds_0,xl=d._emscripten_bind_btDynamicsWorld___destroy___0=g._emscripten_bind_btDynamicsWorld___destroy___0,yl=d._emscripten_bind_btDynamicsWorld_addAction_1=g._emscripten_bind_btDynamicsWorld_addAction_1,zl=d._emscripten_bind_btDynamicsWorld_addCollisionObject_1=g._emscripten_bind_btDynamicsWorld_addCollisionObject_1,Al=d._emscripten_bind_btDynamicsWorld_addCollisionObject_2=g._emscripten_bind_btDynamicsWorld_addCollisionObject_2,Bl=d._emscripten_bind_btDynamicsWorld_addCollisionObject_3= +g._emscripten_bind_btDynamicsWorld_addCollisionObject_3,Cl=d._emscripten_bind_btDynamicsWorld_contactPairTest_3=g._emscripten_bind_btDynamicsWorld_contactPairTest_3,Dl=d._emscripten_bind_btDynamicsWorld_contactTest_2=g._emscripten_bind_btDynamicsWorld_contactTest_2,El=d._emscripten_bind_btDynamicsWorld_convexSweepTest_5=g._emscripten_bind_btDynamicsWorld_convexSweepTest_5,Fl=d._emscripten_bind_btDynamicsWorld_debugDrawObject_3=g._emscripten_bind_btDynamicsWorld_debugDrawObject_3,Gl=d._emscripten_bind_btDynamicsWorld_debugDrawWorld_0= +g._emscripten_bind_btDynamicsWorld_debugDrawWorld_0,Hl=d._emscripten_bind_btDynamicsWorld_getBroadphase_0=g._emscripten_bind_btDynamicsWorld_getBroadphase_0,Il=d._emscripten_bind_btDynamicsWorld_getDebugDrawer_0=g._emscripten_bind_btDynamicsWorld_getDebugDrawer_0,Jl=d._emscripten_bind_btDynamicsWorld_getDispatchInfo_0=g._emscripten_bind_btDynamicsWorld_getDispatchInfo_0,Kl=d._emscripten_bind_btDynamicsWorld_getDispatcher_0=g._emscripten_bind_btDynamicsWorld_getDispatcher_0,Ll=d._emscripten_bind_btDynamicsWorld_getPairCache_0= +g._emscripten_bind_btDynamicsWorld_getPairCache_0,Ml=d._emscripten_bind_btDynamicsWorld_getSolverInfo_0=g._emscripten_bind_btDynamicsWorld_getSolverInfo_0,Nl=d._emscripten_bind_btDynamicsWorld_rayTest_3=g._emscripten_bind_btDynamicsWorld_rayTest_3,Ol=d._emscripten_bind_btDynamicsWorld_removeAction_1=g._emscripten_bind_btDynamicsWorld_removeAction_1,Pl=d._emscripten_bind_btDynamicsWorld_removeCollisionObject_1=g._emscripten_bind_btDynamicsWorld_removeCollisionObject_1,Ql=d._emscripten_bind_btDynamicsWorld_setDebugDrawer_1= +g._emscripten_bind_btDynamicsWorld_setDebugDrawer_1,Rl=d._emscripten_bind_btDynamicsWorld_updateSingleAabb_1=g._emscripten_bind_btDynamicsWorld_updateSingleAabb_1,Sl=d._emscripten_bind_btFaceArray___destroy___0=g._emscripten_bind_btFaceArray___destroy___0,Tl=d._emscripten_bind_btFaceArray_at_1=g._emscripten_bind_btFaceArray_at_1,Ul=d._emscripten_bind_btFaceArray_size_0=g._emscripten_bind_btFaceArray_size_0,Vl=d._emscripten_bind_btFace___destroy___0=g._emscripten_bind_btFace___destroy___0,Wl=d._emscripten_bind_btFace_get_m_indices_0= +g._emscripten_bind_btFace_get_m_indices_0,Xl=d._emscripten_bind_btFace_get_m_plane_1=g._emscripten_bind_btFace_get_m_plane_1,Yl=d._emscripten_bind_btFace_set_m_indices_1=g._emscripten_bind_btFace_set_m_indices_1,Zl=d._emscripten_bind_btFace_set_m_plane_2=g._emscripten_bind_btFace_set_m_plane_2,$l=d._emscripten_bind_btFixedConstraint___destroy___0=g._emscripten_bind_btFixedConstraint___destroy___0,am=d._emscripten_bind_btFixedConstraint_btFixedConstraint_4=g._emscripten_bind_btFixedConstraint_btFixedConstraint_4, +bm=d._emscripten_bind_btFixedConstraint_enableFeedback_1=g._emscripten_bind_btFixedConstraint_enableFeedback_1,cm=d._emscripten_bind_btFixedConstraint_getBreakingImpulseThreshold_0=g._emscripten_bind_btFixedConstraint_getBreakingImpulseThreshold_0,dm=d._emscripten_bind_btFixedConstraint_getParam_2=g._emscripten_bind_btFixedConstraint_getParam_2,em=d._emscripten_bind_btFixedConstraint_setBreakingImpulseThreshold_1=g._emscripten_bind_btFixedConstraint_setBreakingImpulseThreshold_1,fm=d._emscripten_bind_btFixedConstraint_setParam_3= +g._emscripten_bind_btFixedConstraint_setParam_3,gm=d._emscripten_bind_btGeneric6DofConstraint___destroy___0=g._emscripten_bind_btGeneric6DofConstraint___destroy___0,hm=d._emscripten_bind_btGeneric6DofConstraint_btGeneric6DofConstraint_3=g._emscripten_bind_btGeneric6DofConstraint_btGeneric6DofConstraint_3,im=d._emscripten_bind_btGeneric6DofConstraint_btGeneric6DofConstraint_5=g._emscripten_bind_btGeneric6DofConstraint_btGeneric6DofConstraint_5,jm=d._emscripten_bind_btGeneric6DofConstraint_enableFeedback_1= +g._emscripten_bind_btGeneric6DofConstraint_enableFeedback_1,km=d._emscripten_bind_btGeneric6DofConstraint_getBreakingImpulseThreshold_0=g._emscripten_bind_btGeneric6DofConstraint_getBreakingImpulseThreshold_0,lm=d._emscripten_bind_btGeneric6DofConstraint_getFrameOffsetA_0=g._emscripten_bind_btGeneric6DofConstraint_getFrameOffsetA_0,mm=d._emscripten_bind_btGeneric6DofConstraint_getParam_2=g._emscripten_bind_btGeneric6DofConstraint_getParam_2,nm=d._emscripten_bind_btGeneric6DofConstraint_setAngularLowerLimit_1= +g._emscripten_bind_btGeneric6DofConstraint_setAngularLowerLimit_1,om=d._emscripten_bind_btGeneric6DofConstraint_setAngularUpperLimit_1=g._emscripten_bind_btGeneric6DofConstraint_setAngularUpperLimit_1,pm=d._emscripten_bind_btGeneric6DofConstraint_setBreakingImpulseThreshold_1=g._emscripten_bind_btGeneric6DofConstraint_setBreakingImpulseThreshold_1,qm=d._emscripten_bind_btGeneric6DofConstraint_setLinearLowerLimit_1=g._emscripten_bind_btGeneric6DofConstraint_setLinearLowerLimit_1,rm=d._emscripten_bind_btGeneric6DofConstraint_setLinearUpperLimit_1= +g._emscripten_bind_btGeneric6DofConstraint_setLinearUpperLimit_1,sm=d._emscripten_bind_btGeneric6DofConstraint_setParam_3=g._emscripten_bind_btGeneric6DofConstraint_setParam_3,tm=d._emscripten_bind_btGeneric6DofSpringConstraint___destroy___0=g._emscripten_bind_btGeneric6DofSpringConstraint___destroy___0,um=d._emscripten_bind_btGeneric6DofSpringConstraint_btGeneric6DofSpringConstraint_3=g._emscripten_bind_btGeneric6DofSpringConstraint_btGeneric6DofSpringConstraint_3,wm=d._emscripten_bind_btGeneric6DofSpringConstraint_btGeneric6DofSpringConstraint_5= +g._emscripten_bind_btGeneric6DofSpringConstraint_btGeneric6DofSpringConstraint_5,xm=d._emscripten_bind_btGeneric6DofSpringConstraint_enableFeedback_1=g._emscripten_bind_btGeneric6DofSpringConstraint_enableFeedback_1,ym=d._emscripten_bind_btGeneric6DofSpringConstraint_enableSpring_2=g._emscripten_bind_btGeneric6DofSpringConstraint_enableSpring_2,zm=d._emscripten_bind_btGeneric6DofSpringConstraint_getBreakingImpulseThreshold_0=g._emscripten_bind_btGeneric6DofSpringConstraint_getBreakingImpulseThreshold_0, +Am=d._emscripten_bind_btGeneric6DofSpringConstraint_getFrameOffsetA_0=g._emscripten_bind_btGeneric6DofSpringConstraint_getFrameOffsetA_0,Bm=d._emscripten_bind_btGeneric6DofSpringConstraint_getParam_2=g._emscripten_bind_btGeneric6DofSpringConstraint_getParam_2,Cm=d._emscripten_bind_btGeneric6DofSpringConstraint_setAngularLowerLimit_1=g._emscripten_bind_btGeneric6DofSpringConstraint_setAngularLowerLimit_1,Dm=d._emscripten_bind_btGeneric6DofSpringConstraint_setAngularUpperLimit_1=g._emscripten_bind_btGeneric6DofSpringConstraint_setAngularUpperLimit_1, +Em=d._emscripten_bind_btGeneric6DofSpringConstraint_setBreakingImpulseThreshold_1=g._emscripten_bind_btGeneric6DofSpringConstraint_setBreakingImpulseThreshold_1,Fm=d._emscripten_bind_btGeneric6DofSpringConstraint_setDamping_2=g._emscripten_bind_btGeneric6DofSpringConstraint_setDamping_2,Gm=d._emscripten_bind_btGeneric6DofSpringConstraint_setEquilibriumPoint_0=g._emscripten_bind_btGeneric6DofSpringConstraint_setEquilibriumPoint_0,Hm=d._emscripten_bind_btGeneric6DofSpringConstraint_setEquilibriumPoint_1= +g._emscripten_bind_btGeneric6DofSpringConstraint_setEquilibriumPoint_1,Im=d._emscripten_bind_btGeneric6DofSpringConstraint_setEquilibriumPoint_2=g._emscripten_bind_btGeneric6DofSpringConstraint_setEquilibriumPoint_2,Jm=d._emscripten_bind_btGeneric6DofSpringConstraint_setLinearLowerLimit_1=g._emscripten_bind_btGeneric6DofSpringConstraint_setLinearLowerLimit_1,Km=d._emscripten_bind_btGeneric6DofSpringConstraint_setLinearUpperLimit_1=g._emscripten_bind_btGeneric6DofSpringConstraint_setLinearUpperLimit_1, +Lm=d._emscripten_bind_btGeneric6DofSpringConstraint_setParam_3=g._emscripten_bind_btGeneric6DofSpringConstraint_setParam_3,Mm=d._emscripten_bind_btGeneric6DofSpringConstraint_setStiffness_2=g._emscripten_bind_btGeneric6DofSpringConstraint_setStiffness_2,Nm=d._emscripten_bind_btGhostObject___destroy___0=g._emscripten_bind_btGhostObject___destroy___0,Om=d._emscripten_bind_btGhostObject_activate_0=g._emscripten_bind_btGhostObject_activate_0,Pm=d._emscripten_bind_btGhostObject_activate_1=g._emscripten_bind_btGhostObject_activate_1, +Qm=d._emscripten_bind_btGhostObject_btGhostObject_0=g._emscripten_bind_btGhostObject_btGhostObject_0,Rm=d._emscripten_bind_btGhostObject_forceActivationState_1=g._emscripten_bind_btGhostObject_forceActivationState_1,Sm=d._emscripten_bind_btGhostObject_getBroadphaseHandle_0=g._emscripten_bind_btGhostObject_getBroadphaseHandle_0,Tm=d._emscripten_bind_btGhostObject_getCollisionFlags_0=g._emscripten_bind_btGhostObject_getCollisionFlags_0,Um=d._emscripten_bind_btGhostObject_getCollisionShape_0=g._emscripten_bind_btGhostObject_getCollisionShape_0, +Vm=d._emscripten_bind_btGhostObject_getFriction_0=g._emscripten_bind_btGhostObject_getFriction_0,Wm=d._emscripten_bind_btGhostObject_getNumOverlappingObjects_0=g._emscripten_bind_btGhostObject_getNumOverlappingObjects_0,Xm=d._emscripten_bind_btGhostObject_getOverlappingObject_1=g._emscripten_bind_btGhostObject_getOverlappingObject_1,Ym=d._emscripten_bind_btGhostObject_getRestitution_0=g._emscripten_bind_btGhostObject_getRestitution_0,Zm=d._emscripten_bind_btGhostObject_getRollingFriction_0=g._emscripten_bind_btGhostObject_getRollingFriction_0, +$m=d._emscripten_bind_btGhostObject_getUserIndex_0=g._emscripten_bind_btGhostObject_getUserIndex_0,an=d._emscripten_bind_btGhostObject_getUserPointer_0=g._emscripten_bind_btGhostObject_getUserPointer_0,bn=d._emscripten_bind_btGhostObject_getWorldTransform_0=g._emscripten_bind_btGhostObject_getWorldTransform_0,cn=d._emscripten_bind_btGhostObject_isActive_0=g._emscripten_bind_btGhostObject_isActive_0,dn=d._emscripten_bind_btGhostObject_isKinematicObject_0=g._emscripten_bind_btGhostObject_isKinematicObject_0, +en=d._emscripten_bind_btGhostObject_isStaticObject_0=g._emscripten_bind_btGhostObject_isStaticObject_0,fn=d._emscripten_bind_btGhostObject_isStaticOrKinematicObject_0=g._emscripten_bind_btGhostObject_isStaticOrKinematicObject_0,gn=d._emscripten_bind_btGhostObject_setActivationState_1=g._emscripten_bind_btGhostObject_setActivationState_1,hn=d._emscripten_bind_btGhostObject_setAnisotropicFriction_2=g._emscripten_bind_btGhostObject_setAnisotropicFriction_2,jn=d._emscripten_bind_btGhostObject_setCcdMotionThreshold_1= +g._emscripten_bind_btGhostObject_setCcdMotionThreshold_1,kn=d._emscripten_bind_btGhostObject_setCcdSweptSphereRadius_1=g._emscripten_bind_btGhostObject_setCcdSweptSphereRadius_1,ln=d._emscripten_bind_btGhostObject_setCollisionFlags_1=g._emscripten_bind_btGhostObject_setCollisionFlags_1,mn=d._emscripten_bind_btGhostObject_setCollisionShape_1=g._emscripten_bind_btGhostObject_setCollisionShape_1,nn=d._emscripten_bind_btGhostObject_setContactProcessingThreshold_1=g._emscripten_bind_btGhostObject_setContactProcessingThreshold_1, +on=d._emscripten_bind_btGhostObject_setFriction_1=g._emscripten_bind_btGhostObject_setFriction_1,pn=d._emscripten_bind_btGhostObject_setRestitution_1=g._emscripten_bind_btGhostObject_setRestitution_1,qn=d._emscripten_bind_btGhostObject_setRollingFriction_1=g._emscripten_bind_btGhostObject_setRollingFriction_1,rn=d._emscripten_bind_btGhostObject_setUserIndex_1=g._emscripten_bind_btGhostObject_setUserIndex_1,sn=d._emscripten_bind_btGhostObject_setUserPointer_1=g._emscripten_bind_btGhostObject_setUserPointer_1, +tn=d._emscripten_bind_btGhostObject_setWorldTransform_1=g._emscripten_bind_btGhostObject_setWorldTransform_1,un=d._emscripten_bind_btGhostPairCallback___destroy___0=g._emscripten_bind_btGhostPairCallback___destroy___0,vn=d._emscripten_bind_btGhostPairCallback_btGhostPairCallback_0=g._emscripten_bind_btGhostPairCallback_btGhostPairCallback_0,wn=d._emscripten_bind_btHeightfieldTerrainShape___destroy___0=g._emscripten_bind_btHeightfieldTerrainShape___destroy___0,xn=d._emscripten_bind_btHeightfieldTerrainShape_btHeightfieldTerrainShape_9= +g._emscripten_bind_btHeightfieldTerrainShape_btHeightfieldTerrainShape_9,yn=d._emscripten_bind_btHeightfieldTerrainShape_calculateLocalInertia_2=g._emscripten_bind_btHeightfieldTerrainShape_calculateLocalInertia_2,zn=d._emscripten_bind_btHeightfieldTerrainShape_getLocalScaling_0=g._emscripten_bind_btHeightfieldTerrainShape_getLocalScaling_0,An=d._emscripten_bind_btHeightfieldTerrainShape_getMargin_0=g._emscripten_bind_btHeightfieldTerrainShape_getMargin_0,Bn=d._emscripten_bind_btHeightfieldTerrainShape_setLocalScaling_1= +g._emscripten_bind_btHeightfieldTerrainShape_setLocalScaling_1,Cn=d._emscripten_bind_btHeightfieldTerrainShape_setMargin_1=g._emscripten_bind_btHeightfieldTerrainShape_setMargin_1,Dn=d._emscripten_bind_btHingeConstraint___destroy___0=g._emscripten_bind_btHingeConstraint___destroy___0,En=d._emscripten_bind_btHingeConstraint_btHingeConstraint_2=g._emscripten_bind_btHingeConstraint_btHingeConstraint_2,Fn=d._emscripten_bind_btHingeConstraint_btHingeConstraint_3=g._emscripten_bind_btHingeConstraint_btHingeConstraint_3, +Gn=d._emscripten_bind_btHingeConstraint_btHingeConstraint_4=g._emscripten_bind_btHingeConstraint_btHingeConstraint_4,Hn=d._emscripten_bind_btHingeConstraint_btHingeConstraint_5=g._emscripten_bind_btHingeConstraint_btHingeConstraint_5,In=d._emscripten_bind_btHingeConstraint_btHingeConstraint_6=g._emscripten_bind_btHingeConstraint_btHingeConstraint_6,Jn=d._emscripten_bind_btHingeConstraint_btHingeConstraint_7=g._emscripten_bind_btHingeConstraint_btHingeConstraint_7,Kn=d._emscripten_bind_btHingeConstraint_enableAngularMotor_3= +g._emscripten_bind_btHingeConstraint_enableAngularMotor_3,Ln=d._emscripten_bind_btHingeConstraint_enableFeedback_1=g._emscripten_bind_btHingeConstraint_enableFeedback_1,Mn=d._emscripten_bind_btHingeConstraint_enableMotor_1=g._emscripten_bind_btHingeConstraint_enableMotor_1,Nn=d._emscripten_bind_btHingeConstraint_getBreakingImpulseThreshold_0=g._emscripten_bind_btHingeConstraint_getBreakingImpulseThreshold_0,On=d._emscripten_bind_btHingeConstraint_getParam_2=g._emscripten_bind_btHingeConstraint_getParam_2, +Pn=d._emscripten_bind_btHingeConstraint_setAngularOnly_1=g._emscripten_bind_btHingeConstraint_setAngularOnly_1,Qn=d._emscripten_bind_btHingeConstraint_setBreakingImpulseThreshold_1=g._emscripten_bind_btHingeConstraint_setBreakingImpulseThreshold_1,Rn=d._emscripten_bind_btHingeConstraint_setLimit_4=g._emscripten_bind_btHingeConstraint_setLimit_4,Sn=d._emscripten_bind_btHingeConstraint_setLimit_5=g._emscripten_bind_btHingeConstraint_setLimit_5,Tn=d._emscripten_bind_btHingeConstraint_setMaxMotorImpulse_1= +g._emscripten_bind_btHingeConstraint_setMaxMotorImpulse_1,Un=d._emscripten_bind_btHingeConstraint_setMotorTarget_2=g._emscripten_bind_btHingeConstraint_setMotorTarget_2,Vn=d._emscripten_bind_btHingeConstraint_setParam_3=g._emscripten_bind_btHingeConstraint_setParam_3,Wn=d._emscripten_bind_btIDebugDraw___destroy___0=g._emscripten_bind_btIDebugDraw___destroy___0,Xn=d._emscripten_bind_btIDebugDraw_draw3dText_2=g._emscripten_bind_btIDebugDraw_draw3dText_2,Yn=d._emscripten_bind_btIDebugDraw_drawContactPoint_5= +g._emscripten_bind_btIDebugDraw_drawContactPoint_5,Zn=d._emscripten_bind_btIDebugDraw_drawLine_3=g._emscripten_bind_btIDebugDraw_drawLine_3,$n=d._emscripten_bind_btIDebugDraw_getDebugMode_0=g._emscripten_bind_btIDebugDraw_getDebugMode_0,ao=d._emscripten_bind_btIDebugDraw_reportErrorWarning_1=g._emscripten_bind_btIDebugDraw_reportErrorWarning_1,bo=d._emscripten_bind_btIDebugDraw_setDebugMode_1=g._emscripten_bind_btIDebugDraw_setDebugMode_1,co=d._emscripten_bind_btIndexedMeshArray___destroy___0=g._emscripten_bind_btIndexedMeshArray___destroy___0, +eo=d._emscripten_bind_btIndexedMeshArray_at_1=g._emscripten_bind_btIndexedMeshArray_at_1,fo=d._emscripten_bind_btIndexedMeshArray_size_0=g._emscripten_bind_btIndexedMeshArray_size_0,go=d._emscripten_bind_btIndexedMesh___destroy___0=g._emscripten_bind_btIndexedMesh___destroy___0,ho=d._emscripten_bind_btIndexedMesh_get_m_numTriangles_0=g._emscripten_bind_btIndexedMesh_get_m_numTriangles_0,io=d._emscripten_bind_btIndexedMesh_set_m_numTriangles_1=g._emscripten_bind_btIndexedMesh_set_m_numTriangles_1, +jo=d._emscripten_bind_btIntArray___destroy___0=g._emscripten_bind_btIntArray___destroy___0,ko=d._emscripten_bind_btIntArray_at_1=g._emscripten_bind_btIntArray_at_1,lo=d._emscripten_bind_btIntArray_size_0=g._emscripten_bind_btIntArray_size_0,mo=d._emscripten_bind_btKinematicCharacterController___destroy___0=g._emscripten_bind_btKinematicCharacterController___destroy___0,no=d._emscripten_bind_btKinematicCharacterController_btKinematicCharacterController_3=g._emscripten_bind_btKinematicCharacterController_btKinematicCharacterController_3, +oo=d._emscripten_bind_btKinematicCharacterController_btKinematicCharacterController_4=g._emscripten_bind_btKinematicCharacterController_btKinematicCharacterController_4,po=d._emscripten_bind_btKinematicCharacterController_canJump_0=g._emscripten_bind_btKinematicCharacterController_canJump_0,qo=d._emscripten_bind_btKinematicCharacterController_getGhostObject_0=g._emscripten_bind_btKinematicCharacterController_getGhostObject_0,ro=d._emscripten_bind_btKinematicCharacterController_getGravity_0=g._emscripten_bind_btKinematicCharacterController_getGravity_0, +so=d._emscripten_bind_btKinematicCharacterController_getMaxSlope_0=g._emscripten_bind_btKinematicCharacterController_getMaxSlope_0,to=d._emscripten_bind_btKinematicCharacterController_jump_0=g._emscripten_bind_btKinematicCharacterController_jump_0,uo=d._emscripten_bind_btKinematicCharacterController_onGround_0=g._emscripten_bind_btKinematicCharacterController_onGround_0,vo=d._emscripten_bind_btKinematicCharacterController_playerStep_2=g._emscripten_bind_btKinematicCharacterController_playerStep_2, +wo=d._emscripten_bind_btKinematicCharacterController_preStep_1=g._emscripten_bind_btKinematicCharacterController_preStep_1,xo=d._emscripten_bind_btKinematicCharacterController_setFallSpeed_1=g._emscripten_bind_btKinematicCharacterController_setFallSpeed_1,yo=d._emscripten_bind_btKinematicCharacterController_setGravity_1=g._emscripten_bind_btKinematicCharacterController_setGravity_1,zo=d._emscripten_bind_btKinematicCharacterController_setJumpSpeed_1=g._emscripten_bind_btKinematicCharacterController_setJumpSpeed_1, +Ao=d._emscripten_bind_btKinematicCharacterController_setMaxJumpHeight_1=g._emscripten_bind_btKinematicCharacterController_setMaxJumpHeight_1,Bo=d._emscripten_bind_btKinematicCharacterController_setMaxSlope_1=g._emscripten_bind_btKinematicCharacterController_setMaxSlope_1,Co=d._emscripten_bind_btKinematicCharacterController_setUpAxis_1=g._emscripten_bind_btKinematicCharacterController_setUpAxis_1,Do=d._emscripten_bind_btKinematicCharacterController_setUpInterpolate_1=g._emscripten_bind_btKinematicCharacterController_setUpInterpolate_1, +Eo=d._emscripten_bind_btKinematicCharacterController_setUseGhostSweepTest_1=g._emscripten_bind_btKinematicCharacterController_setUseGhostSweepTest_1,Fo=d._emscripten_bind_btKinematicCharacterController_setVelocityForTimeInterval_2=g._emscripten_bind_btKinematicCharacterController_setVelocityForTimeInterval_2,Go=d._emscripten_bind_btKinematicCharacterController_setWalkDirection_1=g._emscripten_bind_btKinematicCharacterController_setWalkDirection_1,Ho=d._emscripten_bind_btKinematicCharacterController_updateAction_2= +g._emscripten_bind_btKinematicCharacterController_updateAction_2,Io=d._emscripten_bind_btKinematicCharacterController_warp_1=g._emscripten_bind_btKinematicCharacterController_warp_1,Jo=d._emscripten_bind_btManifoldPoint___destroy___0=g._emscripten_bind_btManifoldPoint___destroy___0,Ko=d._emscripten_bind_btManifoldPoint_getAppliedImpulse_0=g._emscripten_bind_btManifoldPoint_getAppliedImpulse_0,Lo=d._emscripten_bind_btManifoldPoint_getDistance_0=g._emscripten_bind_btManifoldPoint_getDistance_0,Mo=d._emscripten_bind_btManifoldPoint_getPositionWorldOnA_0= +g._emscripten_bind_btManifoldPoint_getPositionWorldOnA_0,No=d._emscripten_bind_btManifoldPoint_getPositionWorldOnB_0=g._emscripten_bind_btManifoldPoint_getPositionWorldOnB_0,Oo=d._emscripten_bind_btManifoldPoint_get_m_localPointA_0=g._emscripten_bind_btManifoldPoint_get_m_localPointA_0,Po=d._emscripten_bind_btManifoldPoint_get_m_localPointB_0=g._emscripten_bind_btManifoldPoint_get_m_localPointB_0,Qo=d._emscripten_bind_btManifoldPoint_get_m_normalWorldOnB_0=g._emscripten_bind_btManifoldPoint_get_m_normalWorldOnB_0, +Ro=d._emscripten_bind_btManifoldPoint_get_m_positionWorldOnA_0=g._emscripten_bind_btManifoldPoint_get_m_positionWorldOnA_0,So=d._emscripten_bind_btManifoldPoint_get_m_positionWorldOnB_0=g._emscripten_bind_btManifoldPoint_get_m_positionWorldOnB_0,To=d._emscripten_bind_btManifoldPoint_get_m_userPersistentData_0=g._emscripten_bind_btManifoldPoint_get_m_userPersistentData_0,Uo=d._emscripten_bind_btManifoldPoint_set_m_localPointA_1=g._emscripten_bind_btManifoldPoint_set_m_localPointA_1,Vo=d._emscripten_bind_btManifoldPoint_set_m_localPointB_1= +g._emscripten_bind_btManifoldPoint_set_m_localPointB_1,Wo=d._emscripten_bind_btManifoldPoint_set_m_normalWorldOnB_1=g._emscripten_bind_btManifoldPoint_set_m_normalWorldOnB_1,Xo=d._emscripten_bind_btManifoldPoint_set_m_positionWorldOnA_1=g._emscripten_bind_btManifoldPoint_set_m_positionWorldOnA_1,Yo=d._emscripten_bind_btManifoldPoint_set_m_positionWorldOnB_1=g._emscripten_bind_btManifoldPoint_set_m_positionWorldOnB_1,Zo=d._emscripten_bind_btManifoldPoint_set_m_userPersistentData_1=g._emscripten_bind_btManifoldPoint_set_m_userPersistentData_1, +$o=d._emscripten_bind_btMatrix3x3___destroy___0=g._emscripten_bind_btMatrix3x3___destroy___0,ap=d._emscripten_bind_btMatrix3x3_getRotation_1=g._emscripten_bind_btMatrix3x3_getRotation_1,bp=d._emscripten_bind_btMatrix3x3_getRow_1=g._emscripten_bind_btMatrix3x3_getRow_1,cp=d._emscripten_bind_btMatrix3x3_setEulerZYX_3=g._emscripten_bind_btMatrix3x3_setEulerZYX_3,dp=d._emscripten_bind_btMotionState___destroy___0=g._emscripten_bind_btMotionState___destroy___0,ep=d._emscripten_bind_btMotionState_getWorldTransform_1= +g._emscripten_bind_btMotionState_getWorldTransform_1,fp=d._emscripten_bind_btMotionState_setWorldTransform_1=g._emscripten_bind_btMotionState_setWorldTransform_1,gp=d._emscripten_bind_btMultiSphereShape___destroy___0=g._emscripten_bind_btMultiSphereShape___destroy___0,hp=d._emscripten_bind_btMultiSphereShape_btMultiSphereShape_3=g._emscripten_bind_btMultiSphereShape_btMultiSphereShape_3,ip=d._emscripten_bind_btMultiSphereShape_calculateLocalInertia_2=g._emscripten_bind_btMultiSphereShape_calculateLocalInertia_2, +jp=d._emscripten_bind_btMultiSphereShape_getLocalScaling_0=g._emscripten_bind_btMultiSphereShape_getLocalScaling_0,kp=d._emscripten_bind_btMultiSphereShape_setLocalScaling_1=g._emscripten_bind_btMultiSphereShape_setLocalScaling_1,lp=d._emscripten_bind_btOverlappingPairCache___destroy___0=g._emscripten_bind_btOverlappingPairCache___destroy___0,mp=d._emscripten_bind_btOverlappingPairCache_getNumOverlappingPairs_0=g._emscripten_bind_btOverlappingPairCache_getNumOverlappingPairs_0,np=d._emscripten_bind_btOverlappingPairCache_setInternalGhostPairCallback_1= +g._emscripten_bind_btOverlappingPairCache_setInternalGhostPairCallback_1,op=d._emscripten_bind_btOverlappingPairCallback___destroy___0=g._emscripten_bind_btOverlappingPairCallback___destroy___0,pp=d._emscripten_bind_btPairCachingGhostObject___destroy___0=g._emscripten_bind_btPairCachingGhostObject___destroy___0,qp=d._emscripten_bind_btPairCachingGhostObject_activate_0=g._emscripten_bind_btPairCachingGhostObject_activate_0,rp=d._emscripten_bind_btPairCachingGhostObject_activate_1=g._emscripten_bind_btPairCachingGhostObject_activate_1, +sp=d._emscripten_bind_btPairCachingGhostObject_btPairCachingGhostObject_0=g._emscripten_bind_btPairCachingGhostObject_btPairCachingGhostObject_0,tp=d._emscripten_bind_btPairCachingGhostObject_forceActivationState_1=g._emscripten_bind_btPairCachingGhostObject_forceActivationState_1,up=d._emscripten_bind_btPairCachingGhostObject_getBroadphaseHandle_0=g._emscripten_bind_btPairCachingGhostObject_getBroadphaseHandle_0,vp=d._emscripten_bind_btPairCachingGhostObject_getCollisionFlags_0=g._emscripten_bind_btPairCachingGhostObject_getCollisionFlags_0, +wp=d._emscripten_bind_btPairCachingGhostObject_getCollisionShape_0=g._emscripten_bind_btPairCachingGhostObject_getCollisionShape_0,xp=d._emscripten_bind_btPairCachingGhostObject_getFriction_0=g._emscripten_bind_btPairCachingGhostObject_getFriction_0,yp=d._emscripten_bind_btPairCachingGhostObject_getNumOverlappingObjects_0=g._emscripten_bind_btPairCachingGhostObject_getNumOverlappingObjects_0,zp=d._emscripten_bind_btPairCachingGhostObject_getOverlappingObject_1=g._emscripten_bind_btPairCachingGhostObject_getOverlappingObject_1, +Ap=d._emscripten_bind_btPairCachingGhostObject_getRestitution_0=g._emscripten_bind_btPairCachingGhostObject_getRestitution_0,Bp=d._emscripten_bind_btPairCachingGhostObject_getRollingFriction_0=g._emscripten_bind_btPairCachingGhostObject_getRollingFriction_0,Cp=d._emscripten_bind_btPairCachingGhostObject_getUserIndex_0=g._emscripten_bind_btPairCachingGhostObject_getUserIndex_0,Dp=d._emscripten_bind_btPairCachingGhostObject_getUserPointer_0=g._emscripten_bind_btPairCachingGhostObject_getUserPointer_0, +Ep=d._emscripten_bind_btPairCachingGhostObject_getWorldTransform_0=g._emscripten_bind_btPairCachingGhostObject_getWorldTransform_0,Fp=d._emscripten_bind_btPairCachingGhostObject_isActive_0=g._emscripten_bind_btPairCachingGhostObject_isActive_0,Gp=d._emscripten_bind_btPairCachingGhostObject_isKinematicObject_0=g._emscripten_bind_btPairCachingGhostObject_isKinematicObject_0,Hp=d._emscripten_bind_btPairCachingGhostObject_isStaticObject_0=g._emscripten_bind_btPairCachingGhostObject_isStaticObject_0,Ip= +d._emscripten_bind_btPairCachingGhostObject_isStaticOrKinematicObject_0=g._emscripten_bind_btPairCachingGhostObject_isStaticOrKinematicObject_0,Jp=d._emscripten_bind_btPairCachingGhostObject_setActivationState_1=g._emscripten_bind_btPairCachingGhostObject_setActivationState_1,Kp=d._emscripten_bind_btPairCachingGhostObject_setAnisotropicFriction_2=g._emscripten_bind_btPairCachingGhostObject_setAnisotropicFriction_2,Lp=d._emscripten_bind_btPairCachingGhostObject_setCcdMotionThreshold_1=g._emscripten_bind_btPairCachingGhostObject_setCcdMotionThreshold_1, +Mp=d._emscripten_bind_btPairCachingGhostObject_setCcdSweptSphereRadius_1=g._emscripten_bind_btPairCachingGhostObject_setCcdSweptSphereRadius_1,Np=d._emscripten_bind_btPairCachingGhostObject_setCollisionFlags_1=g._emscripten_bind_btPairCachingGhostObject_setCollisionFlags_1,Op=d._emscripten_bind_btPairCachingGhostObject_setCollisionShape_1=g._emscripten_bind_btPairCachingGhostObject_setCollisionShape_1,Pp=d._emscripten_bind_btPairCachingGhostObject_setContactProcessingThreshold_1=g._emscripten_bind_btPairCachingGhostObject_setContactProcessingThreshold_1, +Qp=d._emscripten_bind_btPairCachingGhostObject_setFriction_1=g._emscripten_bind_btPairCachingGhostObject_setFriction_1,Rp=d._emscripten_bind_btPairCachingGhostObject_setRestitution_1=g._emscripten_bind_btPairCachingGhostObject_setRestitution_1,Sp=d._emscripten_bind_btPairCachingGhostObject_setRollingFriction_1=g._emscripten_bind_btPairCachingGhostObject_setRollingFriction_1,Tp=d._emscripten_bind_btPairCachingGhostObject_setUserIndex_1=g._emscripten_bind_btPairCachingGhostObject_setUserIndex_1,Up= +d._emscripten_bind_btPairCachingGhostObject_setUserPointer_1=g._emscripten_bind_btPairCachingGhostObject_setUserPointer_1,Vp=d._emscripten_bind_btPairCachingGhostObject_setWorldTransform_1=g._emscripten_bind_btPairCachingGhostObject_setWorldTransform_1,Wp=d._emscripten_bind_btPersistentManifold___destroy___0=g._emscripten_bind_btPersistentManifold___destroy___0,Xp=d._emscripten_bind_btPersistentManifold_btPersistentManifold_0=g._emscripten_bind_btPersistentManifold_btPersistentManifold_0,Yp=d._emscripten_bind_btPersistentManifold_getBody0_0= +g._emscripten_bind_btPersistentManifold_getBody0_0,Zp=d._emscripten_bind_btPersistentManifold_getBody1_0=g._emscripten_bind_btPersistentManifold_getBody1_0,$p=d._emscripten_bind_btPersistentManifold_getContactPoint_1=g._emscripten_bind_btPersistentManifold_getContactPoint_1,aq=d._emscripten_bind_btPersistentManifold_getNumContacts_0=g._emscripten_bind_btPersistentManifold_getNumContacts_0,bq=d._emscripten_bind_btPoint2PointConstraint___destroy___0=g._emscripten_bind_btPoint2PointConstraint___destroy___0, +cq=d._emscripten_bind_btPoint2PointConstraint_btPoint2PointConstraint_2=g._emscripten_bind_btPoint2PointConstraint_btPoint2PointConstraint_2,dq=d._emscripten_bind_btPoint2PointConstraint_btPoint2PointConstraint_4=g._emscripten_bind_btPoint2PointConstraint_btPoint2PointConstraint_4,eq=d._emscripten_bind_btPoint2PointConstraint_enableFeedback_1=g._emscripten_bind_btPoint2PointConstraint_enableFeedback_1,fq=d._emscripten_bind_btPoint2PointConstraint_getBreakingImpulseThreshold_0=g._emscripten_bind_btPoint2PointConstraint_getBreakingImpulseThreshold_0, +gq=d._emscripten_bind_btPoint2PointConstraint_getParam_2=g._emscripten_bind_btPoint2PointConstraint_getParam_2,hq=d._emscripten_bind_btPoint2PointConstraint_getPivotInA_0=g._emscripten_bind_btPoint2PointConstraint_getPivotInA_0,iq=d._emscripten_bind_btPoint2PointConstraint_getPivotInB_0=g._emscripten_bind_btPoint2PointConstraint_getPivotInB_0,jq=d._emscripten_bind_btPoint2PointConstraint_get_m_setting_0=g._emscripten_bind_btPoint2PointConstraint_get_m_setting_0,kq=d._emscripten_bind_btPoint2PointConstraint_setBreakingImpulseThreshold_1= +g._emscripten_bind_btPoint2PointConstraint_setBreakingImpulseThreshold_1,lq=d._emscripten_bind_btPoint2PointConstraint_setParam_3=g._emscripten_bind_btPoint2PointConstraint_setParam_3,mq=d._emscripten_bind_btPoint2PointConstraint_setPivotA_1=g._emscripten_bind_btPoint2PointConstraint_setPivotA_1,nq=d._emscripten_bind_btPoint2PointConstraint_setPivotB_1=g._emscripten_bind_btPoint2PointConstraint_setPivotB_1,oq=d._emscripten_bind_btPoint2PointConstraint_set_m_setting_1=g._emscripten_bind_btPoint2PointConstraint_set_m_setting_1, +pq=d._emscripten_bind_btQuadWord___destroy___0=g._emscripten_bind_btQuadWord___destroy___0,qq=d._emscripten_bind_btQuadWord_setW_1=g._emscripten_bind_btQuadWord_setW_1,rq=d._emscripten_bind_btQuadWord_setX_1=g._emscripten_bind_btQuadWord_setX_1,sq=d._emscripten_bind_btQuadWord_setY_1=g._emscripten_bind_btQuadWord_setY_1,tq=d._emscripten_bind_btQuadWord_setZ_1=g._emscripten_bind_btQuadWord_setZ_1,uq=d._emscripten_bind_btQuadWord_w_0=g._emscripten_bind_btQuadWord_w_0,vq=d._emscripten_bind_btQuadWord_x_0= +g._emscripten_bind_btQuadWord_x_0,wq=d._emscripten_bind_btQuadWord_y_0=g._emscripten_bind_btQuadWord_y_0,xq=d._emscripten_bind_btQuadWord_z_0=g._emscripten_bind_btQuadWord_z_0,yq=d._emscripten_bind_btQuaternion___destroy___0=g._emscripten_bind_btQuaternion___destroy___0,zq=d._emscripten_bind_btQuaternion_angleShortestPath_1=g._emscripten_bind_btQuaternion_angleShortestPath_1,Aq=d._emscripten_bind_btQuaternion_angle_1=g._emscripten_bind_btQuaternion_angle_1,Bq=d._emscripten_bind_btQuaternion_btQuaternion_4= +g._emscripten_bind_btQuaternion_btQuaternion_4,Cq=d._emscripten_bind_btQuaternion_dot_1=g._emscripten_bind_btQuaternion_dot_1,Dq=d._emscripten_bind_btQuaternion_getAngleShortestPath_0=g._emscripten_bind_btQuaternion_getAngleShortestPath_0,Eq=d._emscripten_bind_btQuaternion_getAngle_0=g._emscripten_bind_btQuaternion_getAngle_0,Fq=d._emscripten_bind_btQuaternion_getAxis_0=g._emscripten_bind_btQuaternion_getAxis_0,Gq=d._emscripten_bind_btQuaternion_inverse_0=g._emscripten_bind_btQuaternion_inverse_0, +Hq=d._emscripten_bind_btQuaternion_length2_0=g._emscripten_bind_btQuaternion_length2_0,Iq=d._emscripten_bind_btQuaternion_length_0=g._emscripten_bind_btQuaternion_length_0,Jq=d._emscripten_bind_btQuaternion_normalize_0=g._emscripten_bind_btQuaternion_normalize_0,Kq=d._emscripten_bind_btQuaternion_normalized_0=g._emscripten_bind_btQuaternion_normalized_0,Lq=d._emscripten_bind_btQuaternion_op_add_1=g._emscripten_bind_btQuaternion_op_add_1,Mq=d._emscripten_bind_btQuaternion_op_div_1=g._emscripten_bind_btQuaternion_op_div_1, +Nq=d._emscripten_bind_btQuaternion_op_mul_1=g._emscripten_bind_btQuaternion_op_mul_1,Oq=d._emscripten_bind_btQuaternion_op_mulq_1=g._emscripten_bind_btQuaternion_op_mulq_1,Pq=d._emscripten_bind_btQuaternion_op_sub_1=g._emscripten_bind_btQuaternion_op_sub_1,Qq=d._emscripten_bind_btQuaternion_setEulerZYX_3=g._emscripten_bind_btQuaternion_setEulerZYX_3,Rq=d._emscripten_bind_btQuaternion_setRotation_2=g._emscripten_bind_btQuaternion_setRotation_2,Sq=d._emscripten_bind_btQuaternion_setValue_4=g._emscripten_bind_btQuaternion_setValue_4, +Tq=d._emscripten_bind_btQuaternion_setW_1=g._emscripten_bind_btQuaternion_setW_1,Uq=d._emscripten_bind_btQuaternion_setX_1=g._emscripten_bind_btQuaternion_setX_1,Vq=d._emscripten_bind_btQuaternion_setY_1=g._emscripten_bind_btQuaternion_setY_1,Wq=d._emscripten_bind_btQuaternion_setZ_1=g._emscripten_bind_btQuaternion_setZ_1,Xq=d._emscripten_bind_btQuaternion_w_0=g._emscripten_bind_btQuaternion_w_0,Yq=d._emscripten_bind_btQuaternion_x_0=g._emscripten_bind_btQuaternion_x_0,Zq=d._emscripten_bind_btQuaternion_y_0= +g._emscripten_bind_btQuaternion_y_0,$q=d._emscripten_bind_btQuaternion_z_0=g._emscripten_bind_btQuaternion_z_0,ar=d._emscripten_bind_btRaycastVehicle___destroy___0=g._emscripten_bind_btRaycastVehicle___destroy___0,br=d._emscripten_bind_btRaycastVehicle_addWheel_7=g._emscripten_bind_btRaycastVehicle_addWheel_7,cr=d._emscripten_bind_btRaycastVehicle_applyEngineForce_2=g._emscripten_bind_btRaycastVehicle_applyEngineForce_2,dr=d._emscripten_bind_btRaycastVehicle_btRaycastVehicle_3=g._emscripten_bind_btRaycastVehicle_btRaycastVehicle_3, +er=d._emscripten_bind_btRaycastVehicle_getChassisWorldTransform_0=g._emscripten_bind_btRaycastVehicle_getChassisWorldTransform_0,fr=d._emscripten_bind_btRaycastVehicle_getCurrentSpeedKmHour_0=g._emscripten_bind_btRaycastVehicle_getCurrentSpeedKmHour_0,gr=d._emscripten_bind_btRaycastVehicle_getForwardAxis_0=g._emscripten_bind_btRaycastVehicle_getForwardAxis_0,hr=d._emscripten_bind_btRaycastVehicle_getForwardVector_0=g._emscripten_bind_btRaycastVehicle_getForwardVector_0,ir=d._emscripten_bind_btRaycastVehicle_getNumWheels_0= +g._emscripten_bind_btRaycastVehicle_getNumWheels_0,jr=d._emscripten_bind_btRaycastVehicle_getRightAxis_0=g._emscripten_bind_btRaycastVehicle_getRightAxis_0,kr=d._emscripten_bind_btRaycastVehicle_getRigidBody_0=g._emscripten_bind_btRaycastVehicle_getRigidBody_0,lr=d._emscripten_bind_btRaycastVehicle_getSteeringValue_1=g._emscripten_bind_btRaycastVehicle_getSteeringValue_1,mr=d._emscripten_bind_btRaycastVehicle_getUpAxis_0=g._emscripten_bind_btRaycastVehicle_getUpAxis_0,nr=d._emscripten_bind_btRaycastVehicle_getUserConstraintId_0= +g._emscripten_bind_btRaycastVehicle_getUserConstraintId_0,or=d._emscripten_bind_btRaycastVehicle_getUserConstraintType_0=g._emscripten_bind_btRaycastVehicle_getUserConstraintType_0,pr=d._emscripten_bind_btRaycastVehicle_getWheelInfo_1=g._emscripten_bind_btRaycastVehicle_getWheelInfo_1,qr=d._emscripten_bind_btRaycastVehicle_getWheelTransformWS_1=g._emscripten_bind_btRaycastVehicle_getWheelTransformWS_1,rr=d._emscripten_bind_btRaycastVehicle_rayCast_1=g._emscripten_bind_btRaycastVehicle_rayCast_1,sr= +d._emscripten_bind_btRaycastVehicle_resetSuspension_0=g._emscripten_bind_btRaycastVehicle_resetSuspension_0,tr=d._emscripten_bind_btRaycastVehicle_setBrake_2=g._emscripten_bind_btRaycastVehicle_setBrake_2,ur=d._emscripten_bind_btRaycastVehicle_setCoordinateSystem_3=g._emscripten_bind_btRaycastVehicle_setCoordinateSystem_3,vr=d._emscripten_bind_btRaycastVehicle_setPitchControl_1=g._emscripten_bind_btRaycastVehicle_setPitchControl_1,wr=d._emscripten_bind_btRaycastVehicle_setSteeringValue_2=g._emscripten_bind_btRaycastVehicle_setSteeringValue_2, +xr=d._emscripten_bind_btRaycastVehicle_setUserConstraintId_1=g._emscripten_bind_btRaycastVehicle_setUserConstraintId_1,yr=d._emscripten_bind_btRaycastVehicle_setUserConstraintType_1=g._emscripten_bind_btRaycastVehicle_setUserConstraintType_1,zr=d._emscripten_bind_btRaycastVehicle_updateAction_2=g._emscripten_bind_btRaycastVehicle_updateAction_2,Ar=d._emscripten_bind_btRaycastVehicle_updateFriction_1=g._emscripten_bind_btRaycastVehicle_updateFriction_1,Br=d._emscripten_bind_btRaycastVehicle_updateSuspension_1= +g._emscripten_bind_btRaycastVehicle_updateSuspension_1,Cr=d._emscripten_bind_btRaycastVehicle_updateVehicle_1=g._emscripten_bind_btRaycastVehicle_updateVehicle_1,Dr=d._emscripten_bind_btRaycastVehicle_updateWheelTransform_2=g._emscripten_bind_btRaycastVehicle_updateWheelTransform_2,Er=d._emscripten_bind_btRaycastVehicle_updateWheelTransformsWS_1=g._emscripten_bind_btRaycastVehicle_updateWheelTransformsWS_1,Fr=d._emscripten_bind_btRaycastVehicle_updateWheelTransformsWS_2=g._emscripten_bind_btRaycastVehicle_updateWheelTransformsWS_2, +Gr=d._emscripten_bind_btRigidBodyConstructionInfo___destroy___0=g._emscripten_bind_btRigidBodyConstructionInfo___destroy___0,Hr=d._emscripten_bind_btRigidBodyConstructionInfo_btRigidBodyConstructionInfo_3=g._emscripten_bind_btRigidBodyConstructionInfo_btRigidBodyConstructionInfo_3,Ir=d._emscripten_bind_btRigidBodyConstructionInfo_btRigidBodyConstructionInfo_4=g._emscripten_bind_btRigidBodyConstructionInfo_btRigidBodyConstructionInfo_4,Jr=d._emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalAngularDampingFactor_0= +g._emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalAngularDampingFactor_0,Kr=d._emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalAngularDampingThresholdSqr_0=g._emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalAngularDampingThresholdSqr_0,Lr=d._emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalDampingFactor_0=g._emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalDampingFactor_0,Mr=d._emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalDamping_0= +g._emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalDamping_0,Nr=d._emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalLinearDampingThresholdSqr_0=g._emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalLinearDampingThresholdSqr_0,Or=d._emscripten_bind_btRigidBodyConstructionInfo_get_m_angularDamping_0=g._emscripten_bind_btRigidBodyConstructionInfo_get_m_angularDamping_0,Pr=d._emscripten_bind_btRigidBodyConstructionInfo_get_m_angularSleepingThreshold_0=g._emscripten_bind_btRigidBodyConstructionInfo_get_m_angularSleepingThreshold_0, +Qr=d._emscripten_bind_btRigidBodyConstructionInfo_get_m_friction_0=g._emscripten_bind_btRigidBodyConstructionInfo_get_m_friction_0,Rr=d._emscripten_bind_btRigidBodyConstructionInfo_get_m_linearDamping_0=g._emscripten_bind_btRigidBodyConstructionInfo_get_m_linearDamping_0,Sr=d._emscripten_bind_btRigidBodyConstructionInfo_get_m_linearSleepingThreshold_0=g._emscripten_bind_btRigidBodyConstructionInfo_get_m_linearSleepingThreshold_0,Tr=d._emscripten_bind_btRigidBodyConstructionInfo_get_m_restitution_0= +g._emscripten_bind_btRigidBodyConstructionInfo_get_m_restitution_0,Ur=d._emscripten_bind_btRigidBodyConstructionInfo_get_m_rollingFriction_0=g._emscripten_bind_btRigidBodyConstructionInfo_get_m_rollingFriction_0,Vr=d._emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalAngularDampingFactor_1=g._emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalAngularDampingFactor_1,Wr=d._emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalAngularDampingThresholdSqr_1=g._emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalAngularDampingThresholdSqr_1, +Xr=d._emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalDampingFactor_1=g._emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalDampingFactor_1,Yr=d._emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalDamping_1=g._emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalDamping_1,Zr=d._emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalLinearDampingThresholdSqr_1=g._emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalLinearDampingThresholdSqr_1,$r=d._emscripten_bind_btRigidBodyConstructionInfo_set_m_angularDamping_1= +g._emscripten_bind_btRigidBodyConstructionInfo_set_m_angularDamping_1,as=d._emscripten_bind_btRigidBodyConstructionInfo_set_m_angularSleepingThreshold_1=g._emscripten_bind_btRigidBodyConstructionInfo_set_m_angularSleepingThreshold_1,bs=d._emscripten_bind_btRigidBodyConstructionInfo_set_m_friction_1=g._emscripten_bind_btRigidBodyConstructionInfo_set_m_friction_1,cs=d._emscripten_bind_btRigidBodyConstructionInfo_set_m_linearDamping_1=g._emscripten_bind_btRigidBodyConstructionInfo_set_m_linearDamping_1, +ds=d._emscripten_bind_btRigidBodyConstructionInfo_set_m_linearSleepingThreshold_1=g._emscripten_bind_btRigidBodyConstructionInfo_set_m_linearSleepingThreshold_1,es=d._emscripten_bind_btRigidBodyConstructionInfo_set_m_restitution_1=g._emscripten_bind_btRigidBodyConstructionInfo_set_m_restitution_1,gs=d._emscripten_bind_btRigidBodyConstructionInfo_set_m_rollingFriction_1=g._emscripten_bind_btRigidBodyConstructionInfo_set_m_rollingFriction_1,hs=d._emscripten_bind_btRigidBody___destroy___0=g._emscripten_bind_btRigidBody___destroy___0, +is=d._emscripten_bind_btRigidBody_activate_0=g._emscripten_bind_btRigidBody_activate_0,js=d._emscripten_bind_btRigidBody_activate_1=g._emscripten_bind_btRigidBody_activate_1,ks=d._emscripten_bind_btRigidBody_applyCentralForce_1=g._emscripten_bind_btRigidBody_applyCentralForce_1,ls=d._emscripten_bind_btRigidBody_applyCentralImpulse_1=g._emscripten_bind_btRigidBody_applyCentralImpulse_1,ms=d._emscripten_bind_btRigidBody_applyCentralLocalForce_1=g._emscripten_bind_btRigidBody_applyCentralLocalForce_1, +ns=d._emscripten_bind_btRigidBody_applyForce_2=g._emscripten_bind_btRigidBody_applyForce_2,ps=d._emscripten_bind_btRigidBody_applyGravity_0=g._emscripten_bind_btRigidBody_applyGravity_0,qs=d._emscripten_bind_btRigidBody_applyImpulse_2=g._emscripten_bind_btRigidBody_applyImpulse_2,rs=d._emscripten_bind_btRigidBody_applyLocalTorque_1=g._emscripten_bind_btRigidBody_applyLocalTorque_1,ss=d._emscripten_bind_btRigidBody_applyTorqueImpulse_1=g._emscripten_bind_btRigidBody_applyTorqueImpulse_1,ts=d._emscripten_bind_btRigidBody_applyTorque_1= +g._emscripten_bind_btRigidBody_applyTorque_1,us=d._emscripten_bind_btRigidBody_btRigidBody_1=g._emscripten_bind_btRigidBody_btRigidBody_1,vs=d._emscripten_bind_btRigidBody_forceActivationState_1=g._emscripten_bind_btRigidBody_forceActivationState_1,xs=d._emscripten_bind_btRigidBody_getAabb_2=g._emscripten_bind_btRigidBody_getAabb_2,ys=d._emscripten_bind_btRigidBody_getAngularDamping_0=g._emscripten_bind_btRigidBody_getAngularDamping_0,zs=d._emscripten_bind_btRigidBody_getAngularFactor_0=g._emscripten_bind_btRigidBody_getAngularFactor_0, +As=d._emscripten_bind_btRigidBody_getAngularVelocity_0=g._emscripten_bind_btRigidBody_getAngularVelocity_0,Bs=d._emscripten_bind_btRigidBody_getBroadphaseHandle_0=g._emscripten_bind_btRigidBody_getBroadphaseHandle_0,Cs=d._emscripten_bind_btRigidBody_getBroadphaseProxy_0=g._emscripten_bind_btRigidBody_getBroadphaseProxy_0,Ds=d._emscripten_bind_btRigidBody_getCenterOfMassTransform_0=g._emscripten_bind_btRigidBody_getCenterOfMassTransform_0,Es=d._emscripten_bind_btRigidBody_getCollisionFlags_0=g._emscripten_bind_btRigidBody_getCollisionFlags_0, +Fs=d._emscripten_bind_btRigidBody_getCollisionShape_0=g._emscripten_bind_btRigidBody_getCollisionShape_0,Gs=d._emscripten_bind_btRigidBody_getFriction_0=g._emscripten_bind_btRigidBody_getFriction_0,Hs=d._emscripten_bind_btRigidBody_getGravity_0=g._emscripten_bind_btRigidBody_getGravity_0,Is=d._emscripten_bind_btRigidBody_getLinearDamping_0=g._emscripten_bind_btRigidBody_getLinearDamping_0,Js=d._emscripten_bind_btRigidBody_getLinearFactor_0=g._emscripten_bind_btRigidBody_getLinearFactor_0,Ks=d._emscripten_bind_btRigidBody_getLinearVelocity_0= +g._emscripten_bind_btRigidBody_getLinearVelocity_0,Ls=d._emscripten_bind_btRigidBody_getMotionState_0=g._emscripten_bind_btRigidBody_getMotionState_0,Ms=d._emscripten_bind_btRigidBody_getRestitution_0=g._emscripten_bind_btRigidBody_getRestitution_0,Ns=d._emscripten_bind_btRigidBody_getRollingFriction_0=g._emscripten_bind_btRigidBody_getRollingFriction_0,Os=d._emscripten_bind_btRigidBody_getUserIndex_0=g._emscripten_bind_btRigidBody_getUserIndex_0,Ps=d._emscripten_bind_btRigidBody_getUserPointer_0= +g._emscripten_bind_btRigidBody_getUserPointer_0,Qs=d._emscripten_bind_btRigidBody_getWorldTransform_0=g._emscripten_bind_btRigidBody_getWorldTransform_0,Rs=d._emscripten_bind_btRigidBody_isActive_0=g._emscripten_bind_btRigidBody_isActive_0,Ss=d._emscripten_bind_btRigidBody_isKinematicObject_0=g._emscripten_bind_btRigidBody_isKinematicObject_0,Ts=d._emscripten_bind_btRigidBody_isStaticObject_0=g._emscripten_bind_btRigidBody_isStaticObject_0,Us=d._emscripten_bind_btRigidBody_isStaticOrKinematicObject_0= +g._emscripten_bind_btRigidBody_isStaticOrKinematicObject_0,Vs=d._emscripten_bind_btRigidBody_setActivationState_1=g._emscripten_bind_btRigidBody_setActivationState_1,Ws=d._emscripten_bind_btRigidBody_setAngularFactor_1=g._emscripten_bind_btRigidBody_setAngularFactor_1,Xs=d._emscripten_bind_btRigidBody_setAngularVelocity_1=g._emscripten_bind_btRigidBody_setAngularVelocity_1,Ys=d._emscripten_bind_btRigidBody_setAnisotropicFriction_2=g._emscripten_bind_btRigidBody_setAnisotropicFriction_2,Zs=d._emscripten_bind_btRigidBody_setCcdMotionThreshold_1= +g._emscripten_bind_btRigidBody_setCcdMotionThreshold_1,$s=d._emscripten_bind_btRigidBody_setCcdSweptSphereRadius_1=g._emscripten_bind_btRigidBody_setCcdSweptSphereRadius_1,at=d._emscripten_bind_btRigidBody_setCenterOfMassTransform_1=g._emscripten_bind_btRigidBody_setCenterOfMassTransform_1,bt=d._emscripten_bind_btRigidBody_setCollisionFlags_1=g._emscripten_bind_btRigidBody_setCollisionFlags_1,ct=d._emscripten_bind_btRigidBody_setCollisionShape_1=g._emscripten_bind_btRigidBody_setCollisionShape_1, +dt=d._emscripten_bind_btRigidBody_setContactProcessingThreshold_1=g._emscripten_bind_btRigidBody_setContactProcessingThreshold_1,et=d._emscripten_bind_btRigidBody_setDamping_2=g._emscripten_bind_btRigidBody_setDamping_2,ft=d._emscripten_bind_btRigidBody_setFriction_1=g._emscripten_bind_btRigidBody_setFriction_1,gt=d._emscripten_bind_btRigidBody_setGravity_1=g._emscripten_bind_btRigidBody_setGravity_1,ht=d._emscripten_bind_btRigidBody_setLinearFactor_1=g._emscripten_bind_btRigidBody_setLinearFactor_1, +it=d._emscripten_bind_btRigidBody_setLinearVelocity_1=g._emscripten_bind_btRigidBody_setLinearVelocity_1,jt=d._emscripten_bind_btRigidBody_setMassProps_2=g._emscripten_bind_btRigidBody_setMassProps_2,kt=d._emscripten_bind_btRigidBody_setMotionState_1=g._emscripten_bind_btRigidBody_setMotionState_1,lt=d._emscripten_bind_btRigidBody_setRestitution_1=g._emscripten_bind_btRigidBody_setRestitution_1,mt=d._emscripten_bind_btRigidBody_setRollingFriction_1=g._emscripten_bind_btRigidBody_setRollingFriction_1, +nt=d._emscripten_bind_btRigidBody_setSleepingThresholds_2=g._emscripten_bind_btRigidBody_setSleepingThresholds_2,ot=d._emscripten_bind_btRigidBody_setUserIndex_1=g._emscripten_bind_btRigidBody_setUserIndex_1,pt=d._emscripten_bind_btRigidBody_setUserPointer_1=g._emscripten_bind_btRigidBody_setUserPointer_1,qt=d._emscripten_bind_btRigidBody_setWorldTransform_1=g._emscripten_bind_btRigidBody_setWorldTransform_1,rt=d._emscripten_bind_btRigidBody_upcast_1=g._emscripten_bind_btRigidBody_upcast_1,st=d._emscripten_bind_btRigidBody_updateInertiaTensor_0= +g._emscripten_bind_btRigidBody_updateInertiaTensor_0,tt=d._emscripten_bind_btScalarArray___destroy___0=g._emscripten_bind_btScalarArray___destroy___0,ut=d._emscripten_bind_btScalarArray_at_1=g._emscripten_bind_btScalarArray_at_1,vt=d._emscripten_bind_btScalarArray_size_0=g._emscripten_bind_btScalarArray_size_0,wt=d._emscripten_bind_btSequentialImpulseConstraintSolver___destroy___0=g._emscripten_bind_btSequentialImpulseConstraintSolver___destroy___0,xt=d._emscripten_bind_btSequentialImpulseConstraintSolver_btSequentialImpulseConstraintSolver_0= +g._emscripten_bind_btSequentialImpulseConstraintSolver_btSequentialImpulseConstraintSolver_0,yt=d._emscripten_bind_btShapeHull___destroy___0=g._emscripten_bind_btShapeHull___destroy___0,zt=d._emscripten_bind_btShapeHull_btShapeHull_1=g._emscripten_bind_btShapeHull_btShapeHull_1,At=d._emscripten_bind_btShapeHull_buildHull_1=g._emscripten_bind_btShapeHull_buildHull_1,Bt=d._emscripten_bind_btShapeHull_getVertexPointer_0=g._emscripten_bind_btShapeHull_getVertexPointer_0,Ct=d._emscripten_bind_btShapeHull_numVertices_0= +g._emscripten_bind_btShapeHull_numVertices_0,Dt=d._emscripten_bind_btSliderConstraint___destroy___0=g._emscripten_bind_btSliderConstraint___destroy___0,Et=d._emscripten_bind_btSliderConstraint_btSliderConstraint_3=g._emscripten_bind_btSliderConstraint_btSliderConstraint_3,Ft=d._emscripten_bind_btSliderConstraint_btSliderConstraint_5=g._emscripten_bind_btSliderConstraint_btSliderConstraint_5,Gt=d._emscripten_bind_btSliderConstraint_enableFeedback_1=g._emscripten_bind_btSliderConstraint_enableFeedback_1, +Ht=d._emscripten_bind_btSliderConstraint_getBreakingImpulseThreshold_0=g._emscripten_bind_btSliderConstraint_getBreakingImpulseThreshold_0,It=d._emscripten_bind_btSliderConstraint_getParam_2=g._emscripten_bind_btSliderConstraint_getParam_2,Jt=d._emscripten_bind_btSliderConstraint_setBreakingImpulseThreshold_1=g._emscripten_bind_btSliderConstraint_setBreakingImpulseThreshold_1,Kt=d._emscripten_bind_btSliderConstraint_setLowerAngLimit_1=g._emscripten_bind_btSliderConstraint_setLowerAngLimit_1,Lt=d._emscripten_bind_btSliderConstraint_setLowerLinLimit_1= +g._emscripten_bind_btSliderConstraint_setLowerLinLimit_1,Mt=d._emscripten_bind_btSliderConstraint_setParam_3=g._emscripten_bind_btSliderConstraint_setParam_3,Nt=d._emscripten_bind_btSliderConstraint_setUpperAngLimit_1=g._emscripten_bind_btSliderConstraint_setUpperAngLimit_1,Ot=d._emscripten_bind_btSliderConstraint_setUpperLinLimit_1=g._emscripten_bind_btSliderConstraint_setUpperLinLimit_1,Pt=d._emscripten_bind_btSoftBodyArray___destroy___0=g._emscripten_bind_btSoftBodyArray___destroy___0,Qt=d._emscripten_bind_btSoftBodyArray_at_1= +g._emscripten_bind_btSoftBodyArray_at_1,Rt=d._emscripten_bind_btSoftBodyArray_size_0=g._emscripten_bind_btSoftBodyArray_size_0,St=d._emscripten_bind_btSoftBodyHelpers_CreateEllipsoid_4=g._emscripten_bind_btSoftBodyHelpers_CreateEllipsoid_4,Tt=d._emscripten_bind_btSoftBodyHelpers_CreateFromConvexHull_4=g._emscripten_bind_btSoftBodyHelpers_CreateFromConvexHull_4,Ut=d._emscripten_bind_btSoftBodyHelpers_CreateFromTriMesh_5=g._emscripten_bind_btSoftBodyHelpers_CreateFromTriMesh_5,Vt=d._emscripten_bind_btSoftBodyHelpers_CreatePatchUV_10= +g._emscripten_bind_btSoftBodyHelpers_CreatePatchUV_10,Wt=d._emscripten_bind_btSoftBodyHelpers_CreatePatch_9=g._emscripten_bind_btSoftBodyHelpers_CreatePatch_9,Xt=d._emscripten_bind_btSoftBodyHelpers_CreateRope_5=g._emscripten_bind_btSoftBodyHelpers_CreateRope_5,Yt=d._emscripten_bind_btSoftBodyHelpers___destroy___0=g._emscripten_bind_btSoftBodyHelpers___destroy___0,Zt=d._emscripten_bind_btSoftBodyHelpers_btSoftBodyHelpers_0=g._emscripten_bind_btSoftBodyHelpers_btSoftBodyHelpers_0,$t=d._emscripten_bind_btSoftBodyRigidBodyCollisionConfiguration___destroy___0= +g._emscripten_bind_btSoftBodyRigidBodyCollisionConfiguration___destroy___0,au=d._emscripten_bind_btSoftBodyRigidBodyCollisionConfiguration_btSoftBodyRigidBodyCollisionConfiguration_0=g._emscripten_bind_btSoftBodyRigidBodyCollisionConfiguration_btSoftBodyRigidBodyCollisionConfiguration_0,bu=d._emscripten_bind_btSoftBodyRigidBodyCollisionConfiguration_btSoftBodyRigidBodyCollisionConfiguration_1=g._emscripten_bind_btSoftBodyRigidBodyCollisionConfiguration_btSoftBodyRigidBodyCollisionConfiguration_1, +cu=d._emscripten_bind_btSoftBodySolver___destroy___0=g._emscripten_bind_btSoftBodySolver___destroy___0,du=d._emscripten_bind_btSoftBodyWorldInfo___destroy___0=g._emscripten_bind_btSoftBodyWorldInfo___destroy___0,eu=d._emscripten_bind_btSoftBodyWorldInfo_btSoftBodyWorldInfo_0=g._emscripten_bind_btSoftBodyWorldInfo_btSoftBodyWorldInfo_0,fu=d._emscripten_bind_btSoftBodyWorldInfo_get_air_density_0=g._emscripten_bind_btSoftBodyWorldInfo_get_air_density_0,gu=d._emscripten_bind_btSoftBodyWorldInfo_get_m_broadphase_0= +g._emscripten_bind_btSoftBodyWorldInfo_get_m_broadphase_0,hu=d._emscripten_bind_btSoftBodyWorldInfo_get_m_dispatcher_0=g._emscripten_bind_btSoftBodyWorldInfo_get_m_dispatcher_0,iu=d._emscripten_bind_btSoftBodyWorldInfo_get_m_gravity_0=g._emscripten_bind_btSoftBodyWorldInfo_get_m_gravity_0,ju=d._emscripten_bind_btSoftBodyWorldInfo_get_m_maxDisplacement_0=g._emscripten_bind_btSoftBodyWorldInfo_get_m_maxDisplacement_0,ku=d._emscripten_bind_btSoftBodyWorldInfo_get_water_density_0=g._emscripten_bind_btSoftBodyWorldInfo_get_water_density_0, +lu=d._emscripten_bind_btSoftBodyWorldInfo_get_water_normal_0=g._emscripten_bind_btSoftBodyWorldInfo_get_water_normal_0,mu=d._emscripten_bind_btSoftBodyWorldInfo_get_water_offset_0=g._emscripten_bind_btSoftBodyWorldInfo_get_water_offset_0,nu=d._emscripten_bind_btSoftBodyWorldInfo_set_air_density_1=g._emscripten_bind_btSoftBodyWorldInfo_set_air_density_1,ou=d._emscripten_bind_btSoftBodyWorldInfo_set_m_broadphase_1=g._emscripten_bind_btSoftBodyWorldInfo_set_m_broadphase_1,pu=d._emscripten_bind_btSoftBodyWorldInfo_set_m_dispatcher_1= +g._emscripten_bind_btSoftBodyWorldInfo_set_m_dispatcher_1,qu=d._emscripten_bind_btSoftBodyWorldInfo_set_m_gravity_1=g._emscripten_bind_btSoftBodyWorldInfo_set_m_gravity_1,ru=d._emscripten_bind_btSoftBodyWorldInfo_set_m_maxDisplacement_1=g._emscripten_bind_btSoftBodyWorldInfo_set_m_maxDisplacement_1,su=d._emscripten_bind_btSoftBodyWorldInfo_set_water_density_1=g._emscripten_bind_btSoftBodyWorldInfo_set_water_density_1,tu=d._emscripten_bind_btSoftBodyWorldInfo_set_water_normal_1=g._emscripten_bind_btSoftBodyWorldInfo_set_water_normal_1, +uu=d._emscripten_bind_btSoftBodyWorldInfo_set_water_offset_1=g._emscripten_bind_btSoftBodyWorldInfo_set_water_offset_1,vu=d._emscripten_bind_btSoftBody___destroy___0=g._emscripten_bind_btSoftBody___destroy___0,wu=d._emscripten_bind_btSoftBody_activate_0=g._emscripten_bind_btSoftBody_activate_0,xu=d._emscripten_bind_btSoftBody_activate_1=g._emscripten_bind_btSoftBody_activate_1,yu=d._emscripten_bind_btSoftBody_addAeroForceToNode_2=g._emscripten_bind_btSoftBody_addAeroForceToNode_2,zu=d._emscripten_bind_btSoftBody_addForce_1= +g._emscripten_bind_btSoftBody_addForce_1,Au=d._emscripten_bind_btSoftBody_addForce_2=g._emscripten_bind_btSoftBody_addForce_2,Bu=d._emscripten_bind_btSoftBody_appendAnchor_4=g._emscripten_bind_btSoftBody_appendAnchor_4,Cu=d._emscripten_bind_btSoftBody_appendFace_4=g._emscripten_bind_btSoftBody_appendFace_4,Du=d._emscripten_bind_btSoftBody_appendLink_4=g._emscripten_bind_btSoftBody_appendLink_4,Eu=d._emscripten_bind_btSoftBody_appendMaterial_0=g._emscripten_bind_btSoftBody_appendMaterial_0,Fu=d._emscripten_bind_btSoftBody_appendNode_2= +g._emscripten_bind_btSoftBody_appendNode_2,Gu=d._emscripten_bind_btSoftBody_appendTetra_5=g._emscripten_bind_btSoftBody_appendTetra_5,Hu=d._emscripten_bind_btSoftBody_btSoftBody_4=g._emscripten_bind_btSoftBody_btSoftBody_4,Iu=d._emscripten_bind_btSoftBody_checkFace_3=g._emscripten_bind_btSoftBody_checkFace_3,Ju=d._emscripten_bind_btSoftBody_checkLink_2=g._emscripten_bind_btSoftBody_checkLink_2,Ku=d._emscripten_bind_btSoftBody_forceActivationState_1=g._emscripten_bind_btSoftBody_forceActivationState_1, +Lu=d._emscripten_bind_btSoftBody_generateBendingConstraints_2=g._emscripten_bind_btSoftBody_generateBendingConstraints_2,Mu=d._emscripten_bind_btSoftBody_generateClusters_1=g._emscripten_bind_btSoftBody_generateClusters_1,Nu=d._emscripten_bind_btSoftBody_generateClusters_2=g._emscripten_bind_btSoftBody_generateClusters_2,Ou=d._emscripten_bind_btSoftBody_getBroadphaseHandle_0=g._emscripten_bind_btSoftBody_getBroadphaseHandle_0,Pu=d._emscripten_bind_btSoftBody_getCollisionFlags_0=g._emscripten_bind_btSoftBody_getCollisionFlags_0, +Qu=d._emscripten_bind_btSoftBody_getCollisionShape_0=g._emscripten_bind_btSoftBody_getCollisionShape_0,Ru=d._emscripten_bind_btSoftBody_getFriction_0=g._emscripten_bind_btSoftBody_getFriction_0,Su=d._emscripten_bind_btSoftBody_getRestitution_0=g._emscripten_bind_btSoftBody_getRestitution_0,Tu=d._emscripten_bind_btSoftBody_getRollingFriction_0=g._emscripten_bind_btSoftBody_getRollingFriction_0,Uu=d._emscripten_bind_btSoftBody_getTotalMass_0=g._emscripten_bind_btSoftBody_getTotalMass_0,Vu=d._emscripten_bind_btSoftBody_getUserIndex_0= +g._emscripten_bind_btSoftBody_getUserIndex_0,Wu=d._emscripten_bind_btSoftBody_getUserPointer_0=g._emscripten_bind_btSoftBody_getUserPointer_0,Xu=d._emscripten_bind_btSoftBody_getWorldTransform_0=g._emscripten_bind_btSoftBody_getWorldTransform_0,Yu=d._emscripten_bind_btSoftBody_get_m_anchors_0=g._emscripten_bind_btSoftBody_get_m_anchors_0,Zu=d._emscripten_bind_btSoftBody_get_m_cfg_0=g._emscripten_bind_btSoftBody_get_m_cfg_0,$u=d._emscripten_bind_btSoftBody_get_m_materials_0=g._emscripten_bind_btSoftBody_get_m_materials_0, +av=d._emscripten_bind_btSoftBody_get_m_nodes_0=g._emscripten_bind_btSoftBody_get_m_nodes_0,bv=d._emscripten_bind_btSoftBody_isActive_0=g._emscripten_bind_btSoftBody_isActive_0,cv=d._emscripten_bind_btSoftBody_isKinematicObject_0=g._emscripten_bind_btSoftBody_isKinematicObject_0,dv=d._emscripten_bind_btSoftBody_isStaticObject_0=g._emscripten_bind_btSoftBody_isStaticObject_0,ev=d._emscripten_bind_btSoftBody_isStaticOrKinematicObject_0=g._emscripten_bind_btSoftBody_isStaticOrKinematicObject_0,fv=d._emscripten_bind_btSoftBody_rotate_1= +g._emscripten_bind_btSoftBody_rotate_1,gv=d._emscripten_bind_btSoftBody_scale_1=g._emscripten_bind_btSoftBody_scale_1,hv=d._emscripten_bind_btSoftBody_setActivationState_1=g._emscripten_bind_btSoftBody_setActivationState_1,iv=d._emscripten_bind_btSoftBody_setAnisotropicFriction_2=g._emscripten_bind_btSoftBody_setAnisotropicFriction_2,jv=d._emscripten_bind_btSoftBody_setCcdMotionThreshold_1=g._emscripten_bind_btSoftBody_setCcdMotionThreshold_1,kv=d._emscripten_bind_btSoftBody_setCcdSweptSphereRadius_1= +g._emscripten_bind_btSoftBody_setCcdSweptSphereRadius_1,lv=d._emscripten_bind_btSoftBody_setCollisionFlags_1=g._emscripten_bind_btSoftBody_setCollisionFlags_1,mv=d._emscripten_bind_btSoftBody_setCollisionShape_1=g._emscripten_bind_btSoftBody_setCollisionShape_1,nv=d._emscripten_bind_btSoftBody_setContactProcessingThreshold_1=g._emscripten_bind_btSoftBody_setContactProcessingThreshold_1,ov=d._emscripten_bind_btSoftBody_setFriction_1=g._emscripten_bind_btSoftBody_setFriction_1,pv=d._emscripten_bind_btSoftBody_setMass_2= +g._emscripten_bind_btSoftBody_setMass_2,qv=d._emscripten_bind_btSoftBody_setRestitution_1=g._emscripten_bind_btSoftBody_setRestitution_1,rv=d._emscripten_bind_btSoftBody_setRollingFriction_1=g._emscripten_bind_btSoftBody_setRollingFriction_1,sv=d._emscripten_bind_btSoftBody_setTotalMass_2=g._emscripten_bind_btSoftBody_setTotalMass_2,tv=d._emscripten_bind_btSoftBody_setUserIndex_1=g._emscripten_bind_btSoftBody_setUserIndex_1,uv=d._emscripten_bind_btSoftBody_setUserPointer_1=g._emscripten_bind_btSoftBody_setUserPointer_1, +vv=d._emscripten_bind_btSoftBody_setWorldTransform_1=g._emscripten_bind_btSoftBody_setWorldTransform_1,wv=d._emscripten_bind_btSoftBody_set_m_anchors_1=g._emscripten_bind_btSoftBody_set_m_anchors_1,xv=d._emscripten_bind_btSoftBody_set_m_cfg_1=g._emscripten_bind_btSoftBody_set_m_cfg_1,yv=d._emscripten_bind_btSoftBody_set_m_materials_1=g._emscripten_bind_btSoftBody_set_m_materials_1,zv=d._emscripten_bind_btSoftBody_set_m_nodes_1=g._emscripten_bind_btSoftBody_set_m_nodes_1,Av=d._emscripten_bind_btSoftBody_transform_1= +g._emscripten_bind_btSoftBody_transform_1,Bv=d._emscripten_bind_btSoftBody_translate_1=g._emscripten_bind_btSoftBody_translate_1,Cv=d._emscripten_bind_btSoftBody_upcast_1=g._emscripten_bind_btSoftBody_upcast_1,Dv=d._emscripten_bind_btSoftRigidDynamicsWorld___destroy___0=g._emscripten_bind_btSoftRigidDynamicsWorld___destroy___0,Ev=d._emscripten_bind_btSoftRigidDynamicsWorld_addAction_1=g._emscripten_bind_btSoftRigidDynamicsWorld_addAction_1,Fv=d._emscripten_bind_btSoftRigidDynamicsWorld_addCollisionObject_1= +g._emscripten_bind_btSoftRigidDynamicsWorld_addCollisionObject_1,Gv=d._emscripten_bind_btSoftRigidDynamicsWorld_addCollisionObject_2=g._emscripten_bind_btSoftRigidDynamicsWorld_addCollisionObject_2,Hv=d._emscripten_bind_btSoftRigidDynamicsWorld_addCollisionObject_3=g._emscripten_bind_btSoftRigidDynamicsWorld_addCollisionObject_3,Iv=d._emscripten_bind_btSoftRigidDynamicsWorld_addConstraint_1=g._emscripten_bind_btSoftRigidDynamicsWorld_addConstraint_1,Jv=d._emscripten_bind_btSoftRigidDynamicsWorld_addConstraint_2= +g._emscripten_bind_btSoftRigidDynamicsWorld_addConstraint_2,Kv=d._emscripten_bind_btSoftRigidDynamicsWorld_addRigidBody_1=g._emscripten_bind_btSoftRigidDynamicsWorld_addRigidBody_1,Lv=d._emscripten_bind_btSoftRigidDynamicsWorld_addRigidBody_3=g._emscripten_bind_btSoftRigidDynamicsWorld_addRigidBody_3,Mv=d._emscripten_bind_btSoftRigidDynamicsWorld_addSoftBody_3=g._emscripten_bind_btSoftRigidDynamicsWorld_addSoftBody_3,Nv=d._emscripten_bind_btSoftRigidDynamicsWorld_btSoftRigidDynamicsWorld_5=g._emscripten_bind_btSoftRigidDynamicsWorld_btSoftRigidDynamicsWorld_5, +Ov=d._emscripten_bind_btSoftRigidDynamicsWorld_contactPairTest_3=g._emscripten_bind_btSoftRigidDynamicsWorld_contactPairTest_3,Pv=d._emscripten_bind_btSoftRigidDynamicsWorld_contactTest_2=g._emscripten_bind_btSoftRigidDynamicsWorld_contactTest_2,Qv=d._emscripten_bind_btSoftRigidDynamicsWorld_convexSweepTest_5=g._emscripten_bind_btSoftRigidDynamicsWorld_convexSweepTest_5,Rv=d._emscripten_bind_btSoftRigidDynamicsWorld_debugDrawObject_3=g._emscripten_bind_btSoftRigidDynamicsWorld_debugDrawObject_3,Sv= +d._emscripten_bind_btSoftRigidDynamicsWorld_debugDrawWorld_0=g._emscripten_bind_btSoftRigidDynamicsWorld_debugDrawWorld_0,Tv=d._emscripten_bind_btSoftRigidDynamicsWorld_getBroadphase_0=g._emscripten_bind_btSoftRigidDynamicsWorld_getBroadphase_0,Uv=d._emscripten_bind_btSoftRigidDynamicsWorld_getDebugDrawer_0=g._emscripten_bind_btSoftRigidDynamicsWorld_getDebugDrawer_0,Vv=d._emscripten_bind_btSoftRigidDynamicsWorld_getDispatchInfo_0=g._emscripten_bind_btSoftRigidDynamicsWorld_getDispatchInfo_0,Wv=d._emscripten_bind_btSoftRigidDynamicsWorld_getDispatcher_0= +g._emscripten_bind_btSoftRigidDynamicsWorld_getDispatcher_0,Xv=d._emscripten_bind_btSoftRigidDynamicsWorld_getGravity_0=g._emscripten_bind_btSoftRigidDynamicsWorld_getGravity_0,Yv=d._emscripten_bind_btSoftRigidDynamicsWorld_getPairCache_0=g._emscripten_bind_btSoftRigidDynamicsWorld_getPairCache_0,Zv=d._emscripten_bind_btSoftRigidDynamicsWorld_getSoftBodyArray_0=g._emscripten_bind_btSoftRigidDynamicsWorld_getSoftBodyArray_0,$v=d._emscripten_bind_btSoftRigidDynamicsWorld_getSolverInfo_0=g._emscripten_bind_btSoftRigidDynamicsWorld_getSolverInfo_0, +aw=d._emscripten_bind_btSoftRigidDynamicsWorld_getWorldInfo_0=g._emscripten_bind_btSoftRigidDynamicsWorld_getWorldInfo_0,bw=d._emscripten_bind_btSoftRigidDynamicsWorld_rayTest_3=g._emscripten_bind_btSoftRigidDynamicsWorld_rayTest_3,cw=d._emscripten_bind_btSoftRigidDynamicsWorld_removeAction_1=g._emscripten_bind_btSoftRigidDynamicsWorld_removeAction_1,dw=d._emscripten_bind_btSoftRigidDynamicsWorld_removeCollisionObject_1=g._emscripten_bind_btSoftRigidDynamicsWorld_removeCollisionObject_1,ew=d._emscripten_bind_btSoftRigidDynamicsWorld_removeConstraint_1= +g._emscripten_bind_btSoftRigidDynamicsWorld_removeConstraint_1,fw=d._emscripten_bind_btSoftRigidDynamicsWorld_removeRigidBody_1=g._emscripten_bind_btSoftRigidDynamicsWorld_removeRigidBody_1,gw=d._emscripten_bind_btSoftRigidDynamicsWorld_removeSoftBody_1=g._emscripten_bind_btSoftRigidDynamicsWorld_removeSoftBody_1,hw=d._emscripten_bind_btSoftRigidDynamicsWorld_setContactAddedCallback_1=g._emscripten_bind_btSoftRigidDynamicsWorld_setContactAddedCallback_1,iw=d._emscripten_bind_btSoftRigidDynamicsWorld_setContactDestroyedCallback_1= +g._emscripten_bind_btSoftRigidDynamicsWorld_setContactDestroyedCallback_1,jw=d._emscripten_bind_btSoftRigidDynamicsWorld_setContactProcessedCallback_1=g._emscripten_bind_btSoftRigidDynamicsWorld_setContactProcessedCallback_1,kw=d._emscripten_bind_btSoftRigidDynamicsWorld_setDebugDrawer_1=g._emscripten_bind_btSoftRigidDynamicsWorld_setDebugDrawer_1,lw=d._emscripten_bind_btSoftRigidDynamicsWorld_setGravity_1=g._emscripten_bind_btSoftRigidDynamicsWorld_setGravity_1,mw=d._emscripten_bind_btSoftRigidDynamicsWorld_stepSimulation_1= +g._emscripten_bind_btSoftRigidDynamicsWorld_stepSimulation_1,nw=d._emscripten_bind_btSoftRigidDynamicsWorld_stepSimulation_2=g._emscripten_bind_btSoftRigidDynamicsWorld_stepSimulation_2,ow=d._emscripten_bind_btSoftRigidDynamicsWorld_stepSimulation_3=g._emscripten_bind_btSoftRigidDynamicsWorld_stepSimulation_3,pw=d._emscripten_bind_btSoftRigidDynamicsWorld_updateSingleAabb_1=g._emscripten_bind_btSoftRigidDynamicsWorld_updateSingleAabb_1,qw=d._emscripten_bind_btSphereShape___destroy___0=g._emscripten_bind_btSphereShape___destroy___0, +rw=d._emscripten_bind_btSphereShape_btSphereShape_1=g._emscripten_bind_btSphereShape_btSphereShape_1,sw=d._emscripten_bind_btSphereShape_calculateLocalInertia_2=g._emscripten_bind_btSphereShape_calculateLocalInertia_2,tw=d._emscripten_bind_btSphereShape_getLocalScaling_0=g._emscripten_bind_btSphereShape_getLocalScaling_0,uw=d._emscripten_bind_btSphereShape_getMargin_0=g._emscripten_bind_btSphereShape_getMargin_0,vw=d._emscripten_bind_btSphereShape_setLocalScaling_1=g._emscripten_bind_btSphereShape_setLocalScaling_1, +ww=d._emscripten_bind_btSphereShape_setMargin_1=g._emscripten_bind_btSphereShape_setMargin_1,xw=d._emscripten_bind_btStaticPlaneShape___destroy___0=g._emscripten_bind_btStaticPlaneShape___destroy___0,yw=d._emscripten_bind_btStaticPlaneShape_btStaticPlaneShape_2=g._emscripten_bind_btStaticPlaneShape_btStaticPlaneShape_2,zw=d._emscripten_bind_btStaticPlaneShape_calculateLocalInertia_2=g._emscripten_bind_btStaticPlaneShape_calculateLocalInertia_2,Aw=d._emscripten_bind_btStaticPlaneShape_getLocalScaling_0= +g._emscripten_bind_btStaticPlaneShape_getLocalScaling_0,Bw=d._emscripten_bind_btStaticPlaneShape_setLocalScaling_1=g._emscripten_bind_btStaticPlaneShape_setLocalScaling_1,Cw=d._emscripten_bind_btStridingMeshInterface___destroy___0=g._emscripten_bind_btStridingMeshInterface___destroy___0,Dw=d._emscripten_bind_btStridingMeshInterface_setScaling_1=g._emscripten_bind_btStridingMeshInterface_setScaling_1,Ew=d._emscripten_bind_btTransform___destroy___0=g._emscripten_bind_btTransform___destroy___0,Fw=d._emscripten_bind_btTransform_btTransform_0= +g._emscripten_bind_btTransform_btTransform_0,Gw=d._emscripten_bind_btTransform_btTransform_2=g._emscripten_bind_btTransform_btTransform_2,Hw=d._emscripten_bind_btTransform_getBasis_0=g._emscripten_bind_btTransform_getBasis_0,Iw=d._emscripten_bind_btTransform_getOrigin_0=g._emscripten_bind_btTransform_getOrigin_0,Jw=d._emscripten_bind_btTransform_getRotation_0=g._emscripten_bind_btTransform_getRotation_0,Kw=d._emscripten_bind_btTransform_inverse_0=g._emscripten_bind_btTransform_inverse_0,Lw=d._emscripten_bind_btTransform_op_mul_1= +g._emscripten_bind_btTransform_op_mul_1,Mw=d._emscripten_bind_btTransform_setFromOpenGLMatrix_1=g._emscripten_bind_btTransform_setFromOpenGLMatrix_1,Nw=d._emscripten_bind_btTransform_setIdentity_0=g._emscripten_bind_btTransform_setIdentity_0,Ow=d._emscripten_bind_btTransform_setOrigin_1=g._emscripten_bind_btTransform_setOrigin_1,Pw=d._emscripten_bind_btTransform_setRotation_1=g._emscripten_bind_btTransform_setRotation_1,Qw=d._emscripten_bind_btTriangleMeshShape___destroy___0=g._emscripten_bind_btTriangleMeshShape___destroy___0, +Rw=d._emscripten_bind_btTriangleMeshShape_calculateLocalInertia_2=g._emscripten_bind_btTriangleMeshShape_calculateLocalInertia_2,Sw=d._emscripten_bind_btTriangleMeshShape_getLocalScaling_0=g._emscripten_bind_btTriangleMeshShape_getLocalScaling_0,Tw=d._emscripten_bind_btTriangleMeshShape_setLocalScaling_1=g._emscripten_bind_btTriangleMeshShape_setLocalScaling_1,Uw=d._emscripten_bind_btTriangleMesh___destroy___0=g._emscripten_bind_btTriangleMesh___destroy___0,Vw=d._emscripten_bind_btTriangleMesh_addIndex_1= +g._emscripten_bind_btTriangleMesh_addIndex_1,Ww=d._emscripten_bind_btTriangleMesh_addTriangle_3=g._emscripten_bind_btTriangleMesh_addTriangle_3,Xw=d._emscripten_bind_btTriangleMesh_addTriangle_4=g._emscripten_bind_btTriangleMesh_addTriangle_4,Yw=d._emscripten_bind_btTriangleMesh_btTriangleMesh_0=g._emscripten_bind_btTriangleMesh_btTriangleMesh_0,Zw=d._emscripten_bind_btTriangleMesh_btTriangleMesh_1=g._emscripten_bind_btTriangleMesh_btTriangleMesh_1,$w=d._emscripten_bind_btTriangleMesh_btTriangleMesh_2= +g._emscripten_bind_btTriangleMesh_btTriangleMesh_2,ax=d._emscripten_bind_btTriangleMesh_findOrAddVertex_2=g._emscripten_bind_btTriangleMesh_findOrAddVertex_2,bx=d._emscripten_bind_btTriangleMesh_getIndexedMeshArray_0=g._emscripten_bind_btTriangleMesh_getIndexedMeshArray_0,cx=d._emscripten_bind_btTriangleMesh_setScaling_1=g._emscripten_bind_btTriangleMesh_setScaling_1,dx=d._emscripten_bind_btTypedConstraint___destroy___0=g._emscripten_bind_btTypedConstraint___destroy___0,ex=d._emscripten_bind_btTypedConstraint_enableFeedback_1= +g._emscripten_bind_btTypedConstraint_enableFeedback_1,fx=d._emscripten_bind_btTypedConstraint_getBreakingImpulseThreshold_0=g._emscripten_bind_btTypedConstraint_getBreakingImpulseThreshold_0,gx=d._emscripten_bind_btTypedConstraint_getParam_2=g._emscripten_bind_btTypedConstraint_getParam_2,hx=d._emscripten_bind_btTypedConstraint_setBreakingImpulseThreshold_1=g._emscripten_bind_btTypedConstraint_setBreakingImpulseThreshold_1,ix=d._emscripten_bind_btTypedConstraint_setParam_3=g._emscripten_bind_btTypedConstraint_setParam_3, +jx=d._emscripten_bind_btVector3Array___destroy___0=g._emscripten_bind_btVector3Array___destroy___0,kx=d._emscripten_bind_btVector3Array_at_1=g._emscripten_bind_btVector3Array_at_1,lx=d._emscripten_bind_btVector3Array_size_0=g._emscripten_bind_btVector3Array_size_0,mx=d._emscripten_bind_btVector3___destroy___0=g._emscripten_bind_btVector3___destroy___0,nx=d._emscripten_bind_btVector3_btVector3_0=g._emscripten_bind_btVector3_btVector3_0,ox=d._emscripten_bind_btVector3_btVector3_3=g._emscripten_bind_btVector3_btVector3_3, +px=d._emscripten_bind_btVector3_dot_1=g._emscripten_bind_btVector3_dot_1,qx=d._emscripten_bind_btVector3_length_0=g._emscripten_bind_btVector3_length_0,rx=d._emscripten_bind_btVector3_normalize_0=g._emscripten_bind_btVector3_normalize_0,sx=d._emscripten_bind_btVector3_op_add_1=g._emscripten_bind_btVector3_op_add_1,tx=d._emscripten_bind_btVector3_op_mul_1=g._emscripten_bind_btVector3_op_mul_1,ux=d._emscripten_bind_btVector3_op_sub_1=g._emscripten_bind_btVector3_op_sub_1,vx=d._emscripten_bind_btVector3_rotate_2= +g._emscripten_bind_btVector3_rotate_2,wx=d._emscripten_bind_btVector3_setValue_3=g._emscripten_bind_btVector3_setValue_3,xx=d._emscripten_bind_btVector3_setX_1=g._emscripten_bind_btVector3_setX_1,yx=d._emscripten_bind_btVector3_setY_1=g._emscripten_bind_btVector3_setY_1,zx=d._emscripten_bind_btVector3_setZ_1=g._emscripten_bind_btVector3_setZ_1,Ax=d._emscripten_bind_btVector3_x_0=g._emscripten_bind_btVector3_x_0,Bx=d._emscripten_bind_btVector3_y_0=g._emscripten_bind_btVector3_y_0,Cx=d._emscripten_bind_btVector3_z_0= +g._emscripten_bind_btVector3_z_0,Dx=d._emscripten_bind_btVector4___destroy___0=g._emscripten_bind_btVector4___destroy___0,Ex=d._emscripten_bind_btVector4_btVector4_0=g._emscripten_bind_btVector4_btVector4_0,Fx=d._emscripten_bind_btVector4_btVector4_4=g._emscripten_bind_btVector4_btVector4_4,Gx=d._emscripten_bind_btVector4_dot_1=g._emscripten_bind_btVector4_dot_1,Hx=d._emscripten_bind_btVector4_length_0=g._emscripten_bind_btVector4_length_0,Ix=d._emscripten_bind_btVector4_normalize_0=g._emscripten_bind_btVector4_normalize_0, +Jx=d._emscripten_bind_btVector4_op_add_1=g._emscripten_bind_btVector4_op_add_1,Kx=d._emscripten_bind_btVector4_op_mul_1=g._emscripten_bind_btVector4_op_mul_1,Lx=d._emscripten_bind_btVector4_op_sub_1=g._emscripten_bind_btVector4_op_sub_1,Mx=d._emscripten_bind_btVector4_rotate_2=g._emscripten_bind_btVector4_rotate_2,Nx=d._emscripten_bind_btVector4_setValue_4=g._emscripten_bind_btVector4_setValue_4,Ox=d._emscripten_bind_btVector4_setX_1=g._emscripten_bind_btVector4_setX_1,Px=d._emscripten_bind_btVector4_setY_1= +g._emscripten_bind_btVector4_setY_1,Qx=d._emscripten_bind_btVector4_setZ_1=g._emscripten_bind_btVector4_setZ_1,Rx=d._emscripten_bind_btVector4_w_0=g._emscripten_bind_btVector4_w_0,Sx=d._emscripten_bind_btVector4_x_0=g._emscripten_bind_btVector4_x_0,Tx=d._emscripten_bind_btVector4_y_0=g._emscripten_bind_btVector4_y_0,Ux=d._emscripten_bind_btVector4_z_0=g._emscripten_bind_btVector4_z_0,Vx=d._emscripten_bind_btVehicleRaycasterResult___destroy___0=g._emscripten_bind_btVehicleRaycasterResult___destroy___0, +Wx=d._emscripten_bind_btVehicleRaycasterResult_get_m_distFraction_0=g._emscripten_bind_btVehicleRaycasterResult_get_m_distFraction_0,Xx=d._emscripten_bind_btVehicleRaycasterResult_get_m_hitNormalInWorld_0=g._emscripten_bind_btVehicleRaycasterResult_get_m_hitNormalInWorld_0,Yx=d._emscripten_bind_btVehicleRaycasterResult_get_m_hitPointInWorld_0=g._emscripten_bind_btVehicleRaycasterResult_get_m_hitPointInWorld_0,Zx=d._emscripten_bind_btVehicleRaycasterResult_set_m_distFraction_1=g._emscripten_bind_btVehicleRaycasterResult_set_m_distFraction_1, +$x=d._emscripten_bind_btVehicleRaycasterResult_set_m_hitNormalInWorld_1=g._emscripten_bind_btVehicleRaycasterResult_set_m_hitNormalInWorld_1,ay=d._emscripten_bind_btVehicleRaycasterResult_set_m_hitPointInWorld_1=g._emscripten_bind_btVehicleRaycasterResult_set_m_hitPointInWorld_1,by=d._emscripten_bind_btVehicleRaycaster___destroy___0=g._emscripten_bind_btVehicleRaycaster___destroy___0,cy=d._emscripten_bind_btVehicleRaycaster_castRay_3=g._emscripten_bind_btVehicleRaycaster_castRay_3,dy=d._emscripten_bind_btVehicleTuning_btVehicleTuning_0= +g._emscripten_bind_btVehicleTuning_btVehicleTuning_0,ey=d._emscripten_bind_btVehicleTuning_get_m_frictionSlip_0=g._emscripten_bind_btVehicleTuning_get_m_frictionSlip_0,fy=d._emscripten_bind_btVehicleTuning_get_m_maxSuspensionForce_0=g._emscripten_bind_btVehicleTuning_get_m_maxSuspensionForce_0,gy=d._emscripten_bind_btVehicleTuning_get_m_maxSuspensionTravelCm_0=g._emscripten_bind_btVehicleTuning_get_m_maxSuspensionTravelCm_0,hy=d._emscripten_bind_btVehicleTuning_get_m_suspensionCompression_0=g._emscripten_bind_btVehicleTuning_get_m_suspensionCompression_0, +iy=d._emscripten_bind_btVehicleTuning_get_m_suspensionDamping_0=g._emscripten_bind_btVehicleTuning_get_m_suspensionDamping_0,jy=d._emscripten_bind_btVehicleTuning_get_m_suspensionStiffness_0=g._emscripten_bind_btVehicleTuning_get_m_suspensionStiffness_0,ky=d._emscripten_bind_btVehicleTuning_set_m_frictionSlip_1=g._emscripten_bind_btVehicleTuning_set_m_frictionSlip_1,ly=d._emscripten_bind_btVehicleTuning_set_m_maxSuspensionForce_1=g._emscripten_bind_btVehicleTuning_set_m_maxSuspensionForce_1,my=d._emscripten_bind_btVehicleTuning_set_m_maxSuspensionTravelCm_1= +g._emscripten_bind_btVehicleTuning_set_m_maxSuspensionTravelCm_1,ny=d._emscripten_bind_btVehicleTuning_set_m_suspensionCompression_1=g._emscripten_bind_btVehicleTuning_set_m_suspensionCompression_1,oy=d._emscripten_bind_btVehicleTuning_set_m_suspensionDamping_1=g._emscripten_bind_btVehicleTuning_set_m_suspensionDamping_1,py=d._emscripten_bind_btVehicleTuning_set_m_suspensionStiffness_1=g._emscripten_bind_btVehicleTuning_set_m_suspensionStiffness_1,qy=d._emscripten_bind_btWheelInfoConstructionInfo___destroy___0= +g._emscripten_bind_btWheelInfoConstructionInfo___destroy___0,ry=d._emscripten_bind_btWheelInfoConstructionInfo_get_m_bIsFrontWheel_0=g._emscripten_bind_btWheelInfoConstructionInfo_get_m_bIsFrontWheel_0,sy=d._emscripten_bind_btWheelInfoConstructionInfo_get_m_chassisConnectionCS_0=g._emscripten_bind_btWheelInfoConstructionInfo_get_m_chassisConnectionCS_0,ty=d._emscripten_bind_btWheelInfoConstructionInfo_get_m_frictionSlip_0=g._emscripten_bind_btWheelInfoConstructionInfo_get_m_frictionSlip_0,uy=d._emscripten_bind_btWheelInfoConstructionInfo_get_m_maxSuspensionForce_0= +g._emscripten_bind_btWheelInfoConstructionInfo_get_m_maxSuspensionForce_0,vy=d._emscripten_bind_btWheelInfoConstructionInfo_get_m_maxSuspensionTravelCm_0=g._emscripten_bind_btWheelInfoConstructionInfo_get_m_maxSuspensionTravelCm_0,wy=d._emscripten_bind_btWheelInfoConstructionInfo_get_m_suspensionRestLength_0=g._emscripten_bind_btWheelInfoConstructionInfo_get_m_suspensionRestLength_0,xy=d._emscripten_bind_btWheelInfoConstructionInfo_get_m_suspensionStiffness_0=g._emscripten_bind_btWheelInfoConstructionInfo_get_m_suspensionStiffness_0, +yy=d._emscripten_bind_btWheelInfoConstructionInfo_get_m_wheelAxleCS_0=g._emscripten_bind_btWheelInfoConstructionInfo_get_m_wheelAxleCS_0,zy=d._emscripten_bind_btWheelInfoConstructionInfo_get_m_wheelDirectionCS_0=g._emscripten_bind_btWheelInfoConstructionInfo_get_m_wheelDirectionCS_0,Ay=d._emscripten_bind_btWheelInfoConstructionInfo_get_m_wheelRadius_0=g._emscripten_bind_btWheelInfoConstructionInfo_get_m_wheelRadius_0,By=d._emscripten_bind_btWheelInfoConstructionInfo_get_m_wheelsDampingCompression_0= +g._emscripten_bind_btWheelInfoConstructionInfo_get_m_wheelsDampingCompression_0,Cy=d._emscripten_bind_btWheelInfoConstructionInfo_get_m_wheelsDampingRelaxation_0=g._emscripten_bind_btWheelInfoConstructionInfo_get_m_wheelsDampingRelaxation_0,Dy=d._emscripten_bind_btWheelInfoConstructionInfo_set_m_bIsFrontWheel_1=g._emscripten_bind_btWheelInfoConstructionInfo_set_m_bIsFrontWheel_1,Ey=d._emscripten_bind_btWheelInfoConstructionInfo_set_m_chassisConnectionCS_1=g._emscripten_bind_btWheelInfoConstructionInfo_set_m_chassisConnectionCS_1, +Fy=d._emscripten_bind_btWheelInfoConstructionInfo_set_m_frictionSlip_1=g._emscripten_bind_btWheelInfoConstructionInfo_set_m_frictionSlip_1,Gy=d._emscripten_bind_btWheelInfoConstructionInfo_set_m_maxSuspensionForce_1=g._emscripten_bind_btWheelInfoConstructionInfo_set_m_maxSuspensionForce_1,Hy=d._emscripten_bind_btWheelInfoConstructionInfo_set_m_maxSuspensionTravelCm_1=g._emscripten_bind_btWheelInfoConstructionInfo_set_m_maxSuspensionTravelCm_1,Iy=d._emscripten_bind_btWheelInfoConstructionInfo_set_m_suspensionRestLength_1= +g._emscripten_bind_btWheelInfoConstructionInfo_set_m_suspensionRestLength_1,Jy=d._emscripten_bind_btWheelInfoConstructionInfo_set_m_suspensionStiffness_1=g._emscripten_bind_btWheelInfoConstructionInfo_set_m_suspensionStiffness_1,Ky=d._emscripten_bind_btWheelInfoConstructionInfo_set_m_wheelAxleCS_1=g._emscripten_bind_btWheelInfoConstructionInfo_set_m_wheelAxleCS_1,Ly=d._emscripten_bind_btWheelInfoConstructionInfo_set_m_wheelDirectionCS_1=g._emscripten_bind_btWheelInfoConstructionInfo_set_m_wheelDirectionCS_1, +My=d._emscripten_bind_btWheelInfoConstructionInfo_set_m_wheelRadius_1=g._emscripten_bind_btWheelInfoConstructionInfo_set_m_wheelRadius_1,Ny=d._emscripten_bind_btWheelInfoConstructionInfo_set_m_wheelsDampingCompression_1=g._emscripten_bind_btWheelInfoConstructionInfo_set_m_wheelsDampingCompression_1,Oy=d._emscripten_bind_btWheelInfoConstructionInfo_set_m_wheelsDampingRelaxation_1=g._emscripten_bind_btWheelInfoConstructionInfo_set_m_wheelsDampingRelaxation_1,Py=d._emscripten_bind_btWheelInfo___destroy___0= +g._emscripten_bind_btWheelInfo___destroy___0,Qy=d._emscripten_bind_btWheelInfo_btWheelInfo_1=g._emscripten_bind_btWheelInfo_btWheelInfo_1,Ry=d._emscripten_bind_btWheelInfo_getSuspensionRestLength_0=g._emscripten_bind_btWheelInfo_getSuspensionRestLength_0,Sy=d._emscripten_bind_btWheelInfo_get_m_bIsFrontWheel_0=g._emscripten_bind_btWheelInfo_get_m_bIsFrontWheel_0,Ty=d._emscripten_bind_btWheelInfo_get_m_brake_0=g._emscripten_bind_btWheelInfo_get_m_brake_0,Uy=d._emscripten_bind_btWheelInfo_get_m_chassisConnectionPointCS_0= +g._emscripten_bind_btWheelInfo_get_m_chassisConnectionPointCS_0,Vy=d._emscripten_bind_btWheelInfo_get_m_clippedInvContactDotSuspension_0=g._emscripten_bind_btWheelInfo_get_m_clippedInvContactDotSuspension_0,Wy=d._emscripten_bind_btWheelInfo_get_m_deltaRotation_0=g._emscripten_bind_btWheelInfo_get_m_deltaRotation_0,Xy=d._emscripten_bind_btWheelInfo_get_m_engineForce_0=g._emscripten_bind_btWheelInfo_get_m_engineForce_0,Yy=d._emscripten_bind_btWheelInfo_get_m_frictionSlip_0=g._emscripten_bind_btWheelInfo_get_m_frictionSlip_0, +Zy=d._emscripten_bind_btWheelInfo_get_m_maxSuspensionForce_0=g._emscripten_bind_btWheelInfo_get_m_maxSuspensionForce_0,$y=d._emscripten_bind_btWheelInfo_get_m_maxSuspensionTravelCm_0=g._emscripten_bind_btWheelInfo_get_m_maxSuspensionTravelCm_0,az=d._emscripten_bind_btWheelInfo_get_m_raycastInfo_0=g._emscripten_bind_btWheelInfo_get_m_raycastInfo_0,bz=d._emscripten_bind_btWheelInfo_get_m_rollInfluence_0=g._emscripten_bind_btWheelInfo_get_m_rollInfluence_0,cz=d._emscripten_bind_btWheelInfo_get_m_rotation_0= +g._emscripten_bind_btWheelInfo_get_m_rotation_0,dz=d._emscripten_bind_btWheelInfo_get_m_skidInfo_0=g._emscripten_bind_btWheelInfo_get_m_skidInfo_0,ez=d._emscripten_bind_btWheelInfo_get_m_steering_0=g._emscripten_bind_btWheelInfo_get_m_steering_0,fz=d._emscripten_bind_btWheelInfo_get_m_suspensionRelativeVelocity_0=g._emscripten_bind_btWheelInfo_get_m_suspensionRelativeVelocity_0,gz=d._emscripten_bind_btWheelInfo_get_m_suspensionRestLength1_0=g._emscripten_bind_btWheelInfo_get_m_suspensionRestLength1_0, +hz=d._emscripten_bind_btWheelInfo_get_m_suspensionStiffness_0=g._emscripten_bind_btWheelInfo_get_m_suspensionStiffness_0,iz=d._emscripten_bind_btWheelInfo_get_m_wheelAxleCS_0=g._emscripten_bind_btWheelInfo_get_m_wheelAxleCS_0,jz=d._emscripten_bind_btWheelInfo_get_m_wheelDirectionCS_0=g._emscripten_bind_btWheelInfo_get_m_wheelDirectionCS_0,kz=d._emscripten_bind_btWheelInfo_get_m_wheelsDampingCompression_0=g._emscripten_bind_btWheelInfo_get_m_wheelsDampingCompression_0,lz=d._emscripten_bind_btWheelInfo_get_m_wheelsDampingRelaxation_0= +g._emscripten_bind_btWheelInfo_get_m_wheelsDampingRelaxation_0,mz=d._emscripten_bind_btWheelInfo_get_m_wheelsRadius_0=g._emscripten_bind_btWheelInfo_get_m_wheelsRadius_0,nz=d._emscripten_bind_btWheelInfo_get_m_wheelsSuspensionForce_0=g._emscripten_bind_btWheelInfo_get_m_wheelsSuspensionForce_0,oz=d._emscripten_bind_btWheelInfo_get_m_worldTransform_0=g._emscripten_bind_btWheelInfo_get_m_worldTransform_0,pz=d._emscripten_bind_btWheelInfo_set_m_bIsFrontWheel_1=g._emscripten_bind_btWheelInfo_set_m_bIsFrontWheel_1, +qz=d._emscripten_bind_btWheelInfo_set_m_brake_1=g._emscripten_bind_btWheelInfo_set_m_brake_1,rz=d._emscripten_bind_btWheelInfo_set_m_chassisConnectionPointCS_1=g._emscripten_bind_btWheelInfo_set_m_chassisConnectionPointCS_1,sz=d._emscripten_bind_btWheelInfo_set_m_clippedInvContactDotSuspension_1=g._emscripten_bind_btWheelInfo_set_m_clippedInvContactDotSuspension_1,tz=d._emscripten_bind_btWheelInfo_set_m_deltaRotation_1=g._emscripten_bind_btWheelInfo_set_m_deltaRotation_1,uz=d._emscripten_bind_btWheelInfo_set_m_engineForce_1= +g._emscripten_bind_btWheelInfo_set_m_engineForce_1,vz=d._emscripten_bind_btWheelInfo_set_m_frictionSlip_1=g._emscripten_bind_btWheelInfo_set_m_frictionSlip_1,wz=d._emscripten_bind_btWheelInfo_set_m_maxSuspensionForce_1=g._emscripten_bind_btWheelInfo_set_m_maxSuspensionForce_1,xz=d._emscripten_bind_btWheelInfo_set_m_maxSuspensionTravelCm_1=g._emscripten_bind_btWheelInfo_set_m_maxSuspensionTravelCm_1,yz=d._emscripten_bind_btWheelInfo_set_m_raycastInfo_1=g._emscripten_bind_btWheelInfo_set_m_raycastInfo_1, +zz=d._emscripten_bind_btWheelInfo_set_m_rollInfluence_1=g._emscripten_bind_btWheelInfo_set_m_rollInfluence_1,Az=d._emscripten_bind_btWheelInfo_set_m_rotation_1=g._emscripten_bind_btWheelInfo_set_m_rotation_1,Bz=d._emscripten_bind_btWheelInfo_set_m_skidInfo_1=g._emscripten_bind_btWheelInfo_set_m_skidInfo_1,Cz=d._emscripten_bind_btWheelInfo_set_m_steering_1=g._emscripten_bind_btWheelInfo_set_m_steering_1,Dz=d._emscripten_bind_btWheelInfo_set_m_suspensionRelativeVelocity_1=g._emscripten_bind_btWheelInfo_set_m_suspensionRelativeVelocity_1, +Ez=d._emscripten_bind_btWheelInfo_set_m_suspensionRestLength1_1=g._emscripten_bind_btWheelInfo_set_m_suspensionRestLength1_1,Fz=d._emscripten_bind_btWheelInfo_set_m_suspensionStiffness_1=g._emscripten_bind_btWheelInfo_set_m_suspensionStiffness_1,Gz=d._emscripten_bind_btWheelInfo_set_m_wheelAxleCS_1=g._emscripten_bind_btWheelInfo_set_m_wheelAxleCS_1,Hz=d._emscripten_bind_btWheelInfo_set_m_wheelDirectionCS_1=g._emscripten_bind_btWheelInfo_set_m_wheelDirectionCS_1,Iz=d._emscripten_bind_btWheelInfo_set_m_wheelsDampingCompression_1= +g._emscripten_bind_btWheelInfo_set_m_wheelsDampingCompression_1,Jz=d._emscripten_bind_btWheelInfo_set_m_wheelsDampingRelaxation_1=g._emscripten_bind_btWheelInfo_set_m_wheelsDampingRelaxation_1,Kz=d._emscripten_bind_btWheelInfo_set_m_wheelsRadius_1=g._emscripten_bind_btWheelInfo_set_m_wheelsRadius_1,Lz=d._emscripten_bind_btWheelInfo_set_m_wheelsSuspensionForce_1=g._emscripten_bind_btWheelInfo_set_m_wheelsSuspensionForce_1,Mz=d._emscripten_bind_btWheelInfo_set_m_worldTransform_1=g._emscripten_bind_btWheelInfo_set_m_worldTransform_1, +Nz=d._emscripten_bind_btWheelInfo_updateWheel_2=g._emscripten_bind_btWheelInfo_updateWheel_2,Oz=d._emscripten_bind_tAnchorArray___destroy___0=g._emscripten_bind_tAnchorArray___destroy___0,Pz=d._emscripten_bind_tAnchorArray_at_1=g._emscripten_bind_tAnchorArray_at_1,Qz=d._emscripten_bind_tAnchorArray_clear_0=g._emscripten_bind_tAnchorArray_clear_0,Rz=d._emscripten_bind_tAnchorArray_pop_back_0=g._emscripten_bind_tAnchorArray_pop_back_0,Sz=d._emscripten_bind_tAnchorArray_push_back_1=g._emscripten_bind_tAnchorArray_push_back_1, +Tz=d._emscripten_bind_tAnchorArray_size_0=g._emscripten_bind_tAnchorArray_size_0,Uz=d._emscripten_bind_tMaterialArray___destroy___0=g._emscripten_bind_tMaterialArray___destroy___0,Vz=d._emscripten_bind_tMaterialArray_at_1=g._emscripten_bind_tMaterialArray_at_1,Wz=d._emscripten_bind_tMaterialArray_size_0=g._emscripten_bind_tMaterialArray_size_0,Xz=d._emscripten_bind_tNodeArray___destroy___0=g._emscripten_bind_tNodeArray___destroy___0,Yz=d._emscripten_bind_tNodeArray_at_1=g._emscripten_bind_tNodeArray_at_1, +Zz=d._emscripten_bind_tNodeArray_size_0=g._emscripten_bind_tNodeArray_size_0,$z=d._emscripten_enum_PHY_ScalarType_PHY_DOUBLE=g._emscripten_enum_PHY_ScalarType_PHY_DOUBLE,aA=d._emscripten_enum_PHY_ScalarType_PHY_FIXEDPOINT88=g._emscripten_enum_PHY_ScalarType_PHY_FIXEDPOINT88,bA=d._emscripten_enum_PHY_ScalarType_PHY_FLOAT=g._emscripten_enum_PHY_ScalarType_PHY_FLOAT,cA=d._emscripten_enum_PHY_ScalarType_PHY_INTEGER=g._emscripten_enum_PHY_ScalarType_PHY_INTEGER,dA=d._emscripten_enum_PHY_ScalarType_PHY_SHORT= +g._emscripten_enum_PHY_ScalarType_PHY_SHORT,eA=d._emscripten_enum_PHY_ScalarType_PHY_UCHAR=g._emscripten_enum_PHY_ScalarType_PHY_UCHAR,fA=d._emscripten_enum_btConstraintParams_BT_CONSTRAINT_CFM=g._emscripten_enum_btConstraintParams_BT_CONSTRAINT_CFM,gA=d._emscripten_enum_btConstraintParams_BT_CONSTRAINT_ERP=g._emscripten_enum_btConstraintParams_BT_CONSTRAINT_ERP,hA=d._emscripten_enum_btConstraintParams_BT_CONSTRAINT_STOP_CFM=g._emscripten_enum_btConstraintParams_BT_CONSTRAINT_STOP_CFM,iA=d._emscripten_enum_btConstraintParams_BT_CONSTRAINT_STOP_ERP= +g._emscripten_enum_btConstraintParams_BT_CONSTRAINT_STOP_ERP;d._free=g._free;d._i64Add=g._i64Add;d._i64Subtract=g._i64Subtract;d._llvm_bswap_i16=g._llvm_bswap_i16;d._llvm_bswap_i32=g._llvm_bswap_i32;d._malloc=g._malloc;d._memcpy=g._memcpy;d._memmove=g._memmove;d._memset=g._memset;d._sbrk=g._sbrk;d.establishStackSpace=g.establishStackSpace;d.stackAlloc=g.stackAlloc;d.stackRestore=g.stackRestore;d.stackSave=g.stackSave;d.dynCall_di=g.dynCall_di;d.dynCall_did=g.dynCall_did;d.dynCall_diidii=g.dynCall_diidii; +d.dynCall_diii=g.dynCall_diii;d.dynCall_diiidii=g.dynCall_diiidii;d.dynCall_diiii=g.dynCall_diiii;d.dynCall_diiiii=g.dynCall_diiiii;d.dynCall_diiiiiiii=g.dynCall_diiiiiiii;d.dynCall_diiiiiiiii=g.dynCall_diiiiiiiii;d.dynCall_diiiiiiiiii=g.dynCall_diiiiiiiiii;d.dynCall_ii=g.dynCall_ii;d.dynCall_iidid=g.dynCall_iidid;d.dynCall_iii=g.dynCall_iii;d.dynCall_iiid=g.dynCall_iiid;d.dynCall_iiii=g.dynCall_iiii;d.dynCall_iiiii=g.dynCall_iiiii;d.dynCall_iiiiiii=g.dynCall_iiiiiii;d.dynCall_iiiiiiii=g.dynCall_iiiiiiii; +d.dynCall_iiiiiiiiii=g.dynCall_iiiiiiiiii;d.dynCall_iiiiiiiiiii=g.dynCall_iiiiiiiiiii;d.dynCall_v=g.dynCall_v;d.dynCall_vi=g.dynCall_vi;d.dynCall_vid=g.dynCall_vid;d.dynCall_vidd=g.dynCall_vidd;d.dynCall_viddiii=g.dynCall_viddiii;d.dynCall_vidi=g.dynCall_vidi;d.dynCall_vidii=g.dynCall_vidii;d.dynCall_vii=g.dynCall_vii;d.dynCall_viid=g.dynCall_viid;d.dynCall_viidi=g.dynCall_viidi;d.dynCall_viidii=g.dynCall_viidii;d.dynCall_viii=g.dynCall_viii;d.dynCall_viiid=g.dynCall_viiid;d.dynCall_viiidii=g.dynCall_viiidii; +d.dynCall_viiii=g.dynCall_viiii;d.dynCall_viiiid=g.dynCall_viiiid;d.dynCall_viiiidddddidi=g.dynCall_viiiidddddidi;d.dynCall_viiiiddddiid=g.dynCall_viiiiddddiid;d.dynCall_viiiii=g.dynCall_viiiii;d.dynCall_viiiiid=g.dynCall_viiiiid;d.dynCall_viiiiii=g.dynCall_viiiiii;d.dynCall_viiiiiii=g.dynCall_viiiiiii;d.dynCall_viiiiiiiid=g.dynCall_viiiiiiiid;d.dynCall_viiiiiiiii=g.dynCall_viiiiiiiii;d.dynCall_viiiiiiiiii=g.dynCall_viiiiiiiiii;d.asm=g;d.UTF8ToString=function(a,b){return a?za(Ba,a,b):""}; +if(sa){if(String.prototype.startsWith?!sa.startsWith(Qa):0!==sa.indexOf(Qa)){var jA=sa;sa=d.locateFile?d.locateFile(jA,ia):ia+jA}if(ea||ha){var kA=ma(sa);Ba.set(kA,8)}else{Na++;d.monitorRunDependencies&&d.monitorRunDependencies(Na);var ta=function(a){a.byteLength&&(a=new Uint8Array(a));Ba.set(a,8);d.memoryInitializerRequest&&delete d.memoryInitializerRequest.response;Na--;d.monitorRunDependencies&&d.monitorRunDependencies(Na);0==Na&&(null!==Oa&&(clearInterval(Oa),Oa=null),Pa&&(a=Pa,Pa=null,a()))}, +lA=function(){la(function(){throw"could not load memory initializer "+sa;})},mA=pa(sa);if(mA)ta(mA.buffer);else if(d.memoryInitializerRequest){var nA=function(){var a=d.memoryInitializerRequest,b=a.response;if(200!==a.status&&0!==a.status)if(b=pa(d.memoryInitializerRequestURL))b=b.buffer;else{console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+a.status+", retrying "+sa);lA();return}ta(b)};d.memoryInitializerRequest.response?setTimeout(nA,0):d.memoryInitializerRequest.addEventListener("load", +nA)}else lA()}}var oA;d.then=function(a){if(oA)a(d);else{var b=d.onRuntimeInitialized;d.onRuntimeInitialized=function(){b&&b();a(d)}}return d};Pa=function pA(){oA||qA();oA||(Pa=pA)}; +function qA(){function a(){if(!oA&&(oA=!0,!xa)){La=!0;Ga(Ia);Ga(Ja);if(d.onRuntimeInitialized)d.onRuntimeInitialized();if(d.postRun)for("function"==typeof d.postRun&&(d.postRun=[d.postRun]);d.postRun.length;){var a=d.postRun.shift();Ka.unshift(a)}Ga(Ka)}}if(!(0=c.size?(assert(0>=1;break;case 4:e>>=2;break;case 8:e>>= +3}for(var f=0;f=f&&(f=65536+((f&1023)<<10)|a.charCodeAt(++e)&1023);127>=f?++b:b=2047>=f?b+2:65535>=f?b+3:b+4}b=Array(b+1);f=b.length;e=0;if(0=n){var B=a.charCodeAt(++h);n=65536+((n&1023)<<10)|B&1023}if(127>=n){if(e>=f)break;b[e++]=n}else{if(2047>=n){if(e+1>=f)break;b[e++]=192|n>>6}else{if(65535>=n){if(e+2>=f)break;b[e++]=224| +n>>12}else{if(e+3>=f)break;b[e++]=240|n>>18;b[e++]=128|n>>12&63}b[e++]=128|n>>6&63}b[e++]=128|n&63}}b[e]=0}a=c.ja(b,Aa);c.copy(b,Aa,a)}return a}function sA(a){if("object"===typeof a){var b=c.ja(a,Da);c.copy(a,Da,b);return b}return a}function tA(){throw"cannot construct a btCollisionWorld, no constructor in IDL";}tA.prototype=Object.create(k.prototype);tA.prototype.constructor=tA;tA.prototype.I=tA;tA.J={};d.btCollisionWorld=tA;tA.prototype.getDispatcher=function(){return m(wh(this.H),uA)}; +tA.prototype.rayTest=function(a,b,e){var f=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);yh(f,a,b,e)};tA.prototype.getPairCache=function(){return m(xh(this.H),vA)};tA.prototype.getDispatchInfo=function(){return m(vh(this.H),p)};tA.prototype.addCollisionObject=function(a,b,e){var f=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);void 0===b?lh(f,a):void 0===e?mh(f,a,b):nh(f,a,b,e)}; +tA.prototype.removeCollisionObject=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);zh(b,a)};tA.prototype.getBroadphase=function(){return m(th(this.H),wA)};tA.prototype.convexSweepTest=function(a,b,e,f,h){var n=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);f&&"object"===typeof f&&(f=f.H);h&&"object"===typeof h&&(h=h.H);qh(n,a,b,e,f,h)}; +tA.prototype.contactPairTest=function(a,b,e){var f=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);oh(f,a,b,e)};tA.prototype.contactTest=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);ph(e,a,b)};tA.prototype.updateSingleAabb=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Bh(b,a)};tA.prototype.setDebugDrawer=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Ah(b,a)}; +tA.prototype.getDebugDrawer=function(){return m(uh(this.H),xA)};tA.prototype.debugDrawWorld=function(){sh(this.H)};tA.prototype.debugDrawObject=function(a,b,e){var f=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);rh(f,a,b,e)};tA.prototype.__destroy__=function(){kh(this.H)};function q(){throw"cannot construct a btCollisionShape, no constructor in IDL";}q.prototype=Object.create(k.prototype);q.prototype.constructor=q;q.prototype.I=q;q.J={}; +d.btCollisionShape=q;q.prototype.setLocalScaling=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ih(b,a)};q.prototype.getLocalScaling=function(){return m(gh(this.H),r)};q.prototype.calculateLocalInertia=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);fh(e,a,b)};q.prototype.setMargin=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);jh(b,a)};q.prototype.getMargin=function(){return hh(this.H)};q.prototype.__destroy__=function(){eh(this.H)}; +function t(){throw"cannot construct a btCollisionObject, no constructor in IDL";}t.prototype=Object.create(k.prototype);t.prototype.constructor=t;t.prototype.I=t;t.J={};d.btCollisionObject=t;t.prototype.setAnisotropicFriction=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);Tg(e,a,b)};t.prototype.getCollisionShape=function(){return m(Hg(this.H),q)};t.prototype.setContactProcessingThreshold=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Yg(b,a)}; +t.prototype.setActivationState=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Sg(b,a)};t.prototype.forceActivationState=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Eg(b,a)};t.prototype.activate=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);void 0===a?Cg(b):Dg(b,a)};t.prototype.isActive=function(){return!!Og(this.H)};t.prototype.isKinematicObject=function(){return!!Pg(this.H)};t.prototype.isStaticObject=function(){return!!Qg(this.H)}; +t.prototype.isStaticOrKinematicObject=function(){return!!Rg(this.H)};t.prototype.getRestitution=function(){return Jg(this.H)};t.prototype.getFriction=function(){return Ig(this.H)};t.prototype.getRollingFriction=function(){return Kg(this.H)};t.prototype.setRestitution=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);$g(b,a)};t.prototype.setFriction=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Zg(b,a)}; +t.prototype.setRollingFriction=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ah(b,a)};t.prototype.getWorldTransform=function(){return m(Ng(this.H),u)};t.prototype.getCollisionFlags=function(){return Gg(this.H)};t.prototype.setCollisionFlags=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Wg(b,a)};t.prototype.setWorldTransform=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);dh(b,a)}; +t.prototype.setCollisionShape=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Xg(b,a)};t.prototype.setCcdMotionThreshold=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Ug(b,a)};t.prototype.setCcdSweptSphereRadius=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Vg(b,a)};t.prototype.getUserIndex=function(){return Lg(this.H)};t.prototype.setUserIndex=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);bh(b,a)}; +t.prototype.getUserPointer=function(){return m(Mg(this.H),yA)};t.prototype.setUserPointer=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ch(b,a)};t.prototype.getBroadphaseHandle=function(){return m(Fg(this.H),zA)};t.prototype.__destroy__=function(){Bg(this.H)};function AA(){throw"cannot construct a btDynamicsWorld, no constructor in IDL";}AA.prototype=Object.create(tA.prototype);AA.prototype.constructor=AA;AA.prototype.I=AA;AA.J={};d.btDynamicsWorld=AA; +AA.prototype.addAction=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);yl(b,a)};AA.prototype.removeAction=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Ol(b,a)};AA.prototype.getSolverInfo=function(){return m(Ml(this.H),v)};AA.prototype.getDispatcher=function(){return m(Kl(this.H),uA)};AA.prototype.rayTest=function(a,b,e){var f=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);Nl(f,a,b,e)}; +AA.prototype.getPairCache=function(){return m(Ll(this.H),vA)};AA.prototype.getDispatchInfo=function(){return m(Jl(this.H),p)};AA.prototype.addCollisionObject=function(a,b,e){var f=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);void 0===b?zl(f,a):void 0===e?Al(f,a,b):Bl(f,a,b,e)};AA.prototype.removeCollisionObject=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Pl(b,a)};AA.prototype.getBroadphase=function(){return m(Hl(this.H),wA)}; +AA.prototype.convexSweepTest=function(a,b,e,f,h){var n=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);f&&"object"===typeof f&&(f=f.H);h&&"object"===typeof h&&(h=h.H);El(n,a,b,e,f,h)};AA.prototype.contactPairTest=function(a,b,e){var f=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);Cl(f,a,b,e)}; +AA.prototype.contactTest=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);Dl(e,a,b)};AA.prototype.updateSingleAabb=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Rl(b,a)};AA.prototype.setDebugDrawer=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Ql(b,a)};AA.prototype.getDebugDrawer=function(){return m(Il(this.H),xA)};AA.prototype.debugDrawWorld=function(){Gl(this.H)}; +AA.prototype.debugDrawObject=function(a,b,e){var f=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);Fl(f,a,b,e)};AA.prototype.__destroy__=function(){xl(this.H)};function BA(){throw"cannot construct a btTypedConstraint, no constructor in IDL";}BA.prototype=Object.create(k.prototype);BA.prototype.constructor=BA;BA.prototype.I=BA;BA.J={};d.btTypedConstraint=BA; +BA.prototype.enableFeedback=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ex(b,a)};BA.prototype.getBreakingImpulseThreshold=function(){return fx(this.H)};BA.prototype.setBreakingImpulseThreshold=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);hx(b,a)};BA.prototype.getParam=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);return gx(e,a,b)}; +BA.prototype.setParam=function(a,b,e){var f=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);ix(f,a,b,e)};BA.prototype.__destroy__=function(){dx(this.H)};function CA(){throw"cannot construct a btConcaveShape, no constructor in IDL";}CA.prototype=Object.create(q.prototype);CA.prototype.constructor=CA;CA.prototype.I=CA;CA.J={};d.btConcaveShape=CA;CA.prototype.setLocalScaling=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Uh(b,a)}; +CA.prototype.getLocalScaling=function(){return m(Th(this.H),r)};CA.prototype.calculateLocalInertia=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);Sh(e,a,b)};CA.prototype.__destroy__=function(){Rh(this.H)};function DA(a,b){a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);this.H=kg(a,b);l(DA)[this.H]=this}DA.prototype=Object.create(q.prototype);DA.prototype.constructor=DA;DA.prototype.I=DA;DA.J={};d.btCapsuleShape=DA; +DA.prototype.setMargin=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);sg(b,a)};DA.prototype.getMargin=function(){return og(this.H)};DA.prototype.getUpAxis=function(){return qg(this.H)};DA.prototype.getRadius=function(){return pg(this.H)};DA.prototype.getHalfHeight=function(){return mg(this.H)};DA.prototype.setLocalScaling=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);rg(b,a)};DA.prototype.getLocalScaling=function(){return m(ng(this.H),r)}; +DA.prototype.calculateLocalInertia=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);lg(e,a,b)};DA.prototype.__destroy__=function(){jg(this.H)};function xA(){throw"cannot construct a btIDebugDraw, no constructor in IDL";}xA.prototype=Object.create(k.prototype);xA.prototype.constructor=xA;xA.prototype.I=xA;xA.J={};d.btIDebugDraw=xA; +xA.prototype.drawLine=function(a,b,e){var f=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);Zn(f,a,b,e)};xA.prototype.drawContactPoint=function(a,b,e,f,h){var n=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);f&&"object"===typeof f&&(f=f.H);h&&"object"===typeof h&&(h=h.H);Yn(n,a,b,e,f,h)}; +xA.prototype.reportErrorWarning=function(a){var b=this.H;c.M();a=a&&"object"===typeof a?a.H:rA(a);ao(b,a)};xA.prototype.draw3dText=function(a,b){var e=this.H;c.M();a&&"object"===typeof a&&(a=a.H);b=b&&"object"===typeof b?b.H:rA(b);Xn(e,a,b)};xA.prototype.setDebugMode=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);bo(b,a)};xA.prototype.getDebugMode=function(){return $n(this.H)};xA.prototype.__destroy__=function(){Wn(this.H)}; +function EA(a){a&&"object"===typeof a&&(a=a.H);this.H=void 0===a?Xj():Yj(a);l(EA)[this.H]=this}EA.prototype=Object.create(k.prototype);EA.prototype.constructor=EA;EA.prototype.I=EA;EA.J={};d.btDefaultCollisionConfiguration=EA;EA.prototype.__destroy__=function(){Wj(this.H)};function FA(){throw"cannot construct a btTriangleMeshShape, no constructor in IDL";}FA.prototype=Object.create(CA.prototype);FA.prototype.constructor=FA;FA.prototype.I=FA;FA.J={};d.btTriangleMeshShape=FA; +FA.prototype.setLocalScaling=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Tw(b,a)};FA.prototype.getLocalScaling=function(){return m(Sw(this.H),r)};FA.prototype.calculateLocalInertia=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);Rw(e,a,b)};FA.prototype.__destroy__=function(){Qw(this.H)};function w(){this.H=Qm();l(w)[this.H]=this}w.prototype=Object.create(t.prototype);w.prototype.constructor=w;w.prototype.I=w;w.J={};d.btGhostObject=w; +w.prototype.getNumOverlappingObjects=function(){return Wm(this.H)};w.prototype.getOverlappingObject=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return m(Xm(b,a),t)};w.prototype.setAnisotropicFriction=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);hn(e,a,b)};w.prototype.getCollisionShape=function(){return m(Um(this.H),q)};w.prototype.setContactProcessingThreshold=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);nn(b,a)}; +w.prototype.setActivationState=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);gn(b,a)};w.prototype.forceActivationState=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Rm(b,a)};w.prototype.activate=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);void 0===a?Om(b):Pm(b,a)};w.prototype.isActive=function(){return!!cn(this.H)};w.prototype.isKinematicObject=function(){return!!dn(this.H)};w.prototype.isStaticObject=function(){return!!en(this.H)}; +w.prototype.isStaticOrKinematicObject=function(){return!!fn(this.H)};w.prototype.getRestitution=function(){return Ym(this.H)};w.prototype.getFriction=function(){return Vm(this.H)};w.prototype.getRollingFriction=function(){return Zm(this.H)};w.prototype.setRestitution=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);pn(b,a)};w.prototype.setFriction=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);on(b,a)}; +w.prototype.setRollingFriction=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);qn(b,a)};w.prototype.getWorldTransform=function(){return m(bn(this.H),u)};w.prototype.getCollisionFlags=function(){return Tm(this.H)};w.prototype.setCollisionFlags=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ln(b,a)};w.prototype.setWorldTransform=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);tn(b,a)}; +w.prototype.setCollisionShape=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);mn(b,a)};w.prototype.setCcdMotionThreshold=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);jn(b,a)};w.prototype.setCcdSweptSphereRadius=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);kn(b,a)};w.prototype.getUserIndex=function(){return $m(this.H)};w.prototype.setUserIndex=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);rn(b,a)}; +w.prototype.getUserPointer=function(){return m(an(this.H),yA)};w.prototype.setUserPointer=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);sn(b,a)};w.prototype.getBroadphaseHandle=function(){return m(Sm(this.H),zA)};w.prototype.__destroy__=function(){Nm(this.H)};function GA(a,b){a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);this.H=fi(a,b);l(GA)[this.H]=this}GA.prototype=Object.create(q.prototype);GA.prototype.constructor=GA;GA.prototype.I=GA;GA.J={};d.btConeShape=GA; +GA.prototype.setLocalScaling=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ii(b,a)};GA.prototype.getLocalScaling=function(){return m(hi(this.H),r)};GA.prototype.calculateLocalInertia=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);gi(e,a,b)};GA.prototype.__destroy__=function(){ei(this.H)};function HA(){throw"cannot construct a btActionInterface, no constructor in IDL";}HA.prototype=Object.create(k.prototype);HA.prototype.constructor=HA; +HA.prototype.I=HA;HA.J={};d.btActionInterface=HA;HA.prototype.updateAction=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);qf(e,a,b)};HA.prototype.__destroy__=function(){pf(this.H)};function r(a,b,e){a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);this.H=void 0===a?nx():void 0===b?_emscripten_bind_btVector3_btVector3_1(a):void 0===e?_emscripten_bind_btVector3_btVector3_2(a,b):ox(a,b,e);l(r)[this.H]=this} +r.prototype=Object.create(k.prototype);r.prototype.constructor=r;r.prototype.I=r;r.J={};d.btVector3=r;r.prototype.length=r.prototype.length=function(){return qx(this.H)};r.prototype.x=r.prototype.x=function(){return Ax(this.H)};r.prototype.y=r.prototype.y=function(){return Bx(this.H)};r.prototype.z=r.prototype.z=function(){return Cx(this.H)};r.prototype.setX=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);xx(b,a)}; +r.prototype.setY=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);yx(b,a)};r.prototype.setZ=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);zx(b,a)};r.prototype.setValue=function(a,b,e){var f=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);wx(f,a,b,e)};r.prototype.normalize=r.prototype.normalize=function(){rx(this.H)}; +r.prototype.rotate=r.prototype.rotate=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);return m(vx(e,a,b),r)};r.prototype.dot=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return px(b,a)};r.prototype.op_mul=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return m(tx(b,a),r)};r.prototype.op_add=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return m(sx(b,a),r)}; +r.prototype.op_sub=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return m(ux(b,a),r)};r.prototype.__destroy__=function(){mx(this.H)};function IA(){throw"cannot construct a btVehicleRaycaster, no constructor in IDL";}IA.prototype=Object.create(k.prototype);IA.prototype.constructor=IA;IA.prototype.I=IA;IA.J={};d.btVehicleRaycaster=IA;IA.prototype.castRay=function(a,b,e){var f=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);cy(f,a,b,e)}; +IA.prototype.__destroy__=function(){by(this.H)};function JA(){throw"cannot construct a btQuadWord, no constructor in IDL";}JA.prototype=Object.create(k.prototype);JA.prototype.constructor=JA;JA.prototype.I=JA;JA.J={};d.btQuadWord=JA;JA.prototype.x=JA.prototype.x=function(){return vq(this.H)};JA.prototype.y=JA.prototype.y=function(){return wq(this.H)};JA.prototype.z=JA.prototype.z=function(){return xq(this.H)};JA.prototype.w=JA.prototype.Aa=function(){return uq(this.H)}; +JA.prototype.setX=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);rq(b,a)};JA.prototype.setY=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);sq(b,a)};JA.prototype.setZ=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);tq(b,a)};JA.prototype.setW=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);qq(b,a)};JA.prototype.__destroy__=function(){pq(this.H)};function KA(a){a&&"object"===typeof a&&(a=a.H);this.H=Oj(a);l(KA)[this.H]=this}KA.prototype=Object.create(q.prototype); +KA.prototype.constructor=KA;KA.prototype.I=KA;KA.J={};d.btCylinderShape=KA;KA.prototype.setMargin=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Tj(b,a)};KA.prototype.getMargin=function(){return Rj(this.H)};KA.prototype.setLocalScaling=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Sj(b,a)};KA.prototype.getLocalScaling=function(){return m(Qj(this.H),r)}; +KA.prototype.calculateLocalInertia=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);Pj(e,a,b)};KA.prototype.__destroy__=function(){Nj(this.H)};function x(a,b,e,f){a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);f&&"object"===typeof f&&(f=f.H);this.H=xk(a,b,e,f);l(x)[this.H]=this}x.prototype=Object.create(AA.prototype);x.prototype.constructor=x;x.prototype.I=x;x.J={};d.btDiscreteDynamicsWorld=x; +x.prototype.setGravity=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Tk(b,a)};x.prototype.getGravity=function(){return m(Hk(this.H),r)};x.prototype.addRigidBody=function(a,b,e){var f=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);void 0===b?vk(f,a):void 0===e?_emscripten_bind_btDiscreteDynamicsWorld_addRigidBody_2(f,a,b):wk(f,a,b,e)};x.prototype.removeRigidBody=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Ok(b,a)}; +x.prototype.addConstraint=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);void 0===b?tk(e,a):uk(e,a,b)};x.prototype.removeConstraint=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Nk(b,a)};x.prototype.stepSimulation=function(a,b,e){var f=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);return void 0===b?Uk(f,a):void 0===e?Vk(f,a,b):Wk(f,a,b,e)}; +x.prototype.setContactAddedCallback=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Pk(b,a)};x.prototype.setContactProcessedCallback=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Rk(b,a)};x.prototype.setContactDestroyedCallback=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Qk(b,a)};x.prototype.getDispatcher=function(){return m(Gk(this.H),uA)}; +x.prototype.rayTest=function(a,b,e){var f=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);Kk(f,a,b,e)};x.prototype.getPairCache=function(){return m(Ik(this.H),vA)};x.prototype.getDispatchInfo=function(){return m(Fk(this.H),p)};x.prototype.addCollisionObject=function(a,b,e){var f=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);void 0===b?qk(f,a):void 0===e?rk(f,a,b):sk(f,a,b,e)}; +x.prototype.removeCollisionObject=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Mk(b,a)};x.prototype.getBroadphase=function(){return m(Dk(this.H),wA)};x.prototype.convexSweepTest=function(a,b,e,f,h){var n=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);f&&"object"===typeof f&&(f=f.H);h&&"object"===typeof h&&(h=h.H);Ak(n,a,b,e,f,h)}; +x.prototype.contactPairTest=function(a,b,e){var f=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);yk(f,a,b,e)};x.prototype.contactTest=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);zk(e,a,b)};x.prototype.updateSingleAabb=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Xk(b,a)};x.prototype.setDebugDrawer=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Sk(b,a)}; +x.prototype.getDebugDrawer=function(){return m(Ek(this.H),xA)};x.prototype.debugDrawWorld=function(){Ck(this.H)};x.prototype.debugDrawObject=function(a,b,e){var f=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);Bk(f,a,b,e)};x.prototype.addAction=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);pk(b,a)};x.prototype.removeAction=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Lk(b,a)}; +x.prototype.getSolverInfo=function(){return m(Jk(this.H),v)};x.prototype.__destroy__=function(){ok(this.H)};function LA(){throw"cannot construct a btConvexShape, no constructor in IDL";}LA.prototype=Object.create(q.prototype);LA.prototype.constructor=LA;LA.prototype.I=LA;LA.J={};d.btConvexShape=LA;LA.prototype.setLocalScaling=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);pj(b,a)};LA.prototype.getLocalScaling=function(){return m(nj(this.H),r)}; +LA.prototype.calculateLocalInertia=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);mj(e,a,b)};LA.prototype.setMargin=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);qj(b,a)};LA.prototype.getMargin=function(){return oj(this.H)};LA.prototype.__destroy__=function(){lj(this.H)};function uA(){throw"cannot construct a btDispatcher, no constructor in IDL";}uA.prototype=Object.create(k.prototype);uA.prototype.constructor=uA;uA.prototype.I=uA;uA.J={}; +d.btDispatcher=uA;uA.prototype.getNumManifolds=function(){return wl(this.H)};uA.prototype.getManifoldByIndexInternal=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return m(vl(b,a),MA)};uA.prototype.__destroy__=function(){ul(this.H)}; +function NA(a,b,e,f,h){a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);f&&"object"===typeof f&&(f=f.H);h&&"object"===typeof h&&(h=h.H);this.H=void 0===f?hm(a,b,e):void 0===h?_emscripten_bind_btGeneric6DofConstraint_btGeneric6DofConstraint_4(a,b,e,f):im(a,b,e,f,h);l(NA)[this.H]=this}NA.prototype=Object.create(BA.prototype);NA.prototype.constructor=NA;NA.prototype.I=NA;NA.J={};d.btGeneric6DofConstraint=NA; +NA.prototype.setLinearLowerLimit=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);qm(b,a)};NA.prototype.setLinearUpperLimit=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);rm(b,a)};NA.prototype.setAngularLowerLimit=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);nm(b,a)};NA.prototype.setAngularUpperLimit=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);om(b,a)};NA.prototype.getFrameOffsetA=function(){return m(lm(this.H),u)}; +NA.prototype.enableFeedback=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);jm(b,a)};NA.prototype.getBreakingImpulseThreshold=function(){return km(this.H)};NA.prototype.setBreakingImpulseThreshold=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);pm(b,a)};NA.prototype.getParam=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);return mm(e,a,b)}; +NA.prototype.setParam=function(a,b,e){var f=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);sm(f,a,b,e)};NA.prototype.__destroy__=function(){gm(this.H)};function OA(){throw"cannot construct a btStridingMeshInterface, no constructor in IDL";}OA.prototype=Object.create(k.prototype);OA.prototype.constructor=OA;OA.prototype.I=OA;OA.J={};d.btStridingMeshInterface=OA; +OA.prototype.setScaling=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Dw(b,a)};OA.prototype.__destroy__=function(){Cw(this.H)};function PA(){throw"cannot construct a btMotionState, no constructor in IDL";}PA.prototype=Object.create(k.prototype);PA.prototype.constructor=PA;PA.prototype.I=PA;PA.J={};d.btMotionState=PA;PA.prototype.getWorldTransform=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ep(b,a)}; +PA.prototype.setWorldTransform=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);fp(b,a)};PA.prototype.__destroy__=function(){dp(this.H)};function y(){throw"cannot construct a ConvexResultCallback, no constructor in IDL";}y.prototype=Object.create(k.prototype);y.prototype.constructor=y;y.prototype.I=y;y.J={};d.ConvexResultCallback=y;y.prototype.hasHit=function(){return!!Nd(this.H)};y.prototype.get_m_collisionFilterGroup=y.prototype.K=function(){return Ld(this.H)}; +y.prototype.set_m_collisionFilterGroup=y.prototype.N=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Pd(b,a)};Object.defineProperty(y.prototype,"m_collisionFilterGroup",{get:y.prototype.K,set:y.prototype.N});y.prototype.get_m_collisionFilterMask=y.prototype.L=function(){return Md(this.H)};y.prototype.set_m_collisionFilterMask=y.prototype.O=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Qd(b,a)};Object.defineProperty(y.prototype,"m_collisionFilterMask",{get:y.prototype.L,set:y.prototype.O}); +y.prototype.get_m_closestHitFraction=y.prototype.P=function(){return Kd(this.H)};y.prototype.set_m_closestHitFraction=y.prototype.R=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Od(b,a)};Object.defineProperty(y.prototype,"m_closestHitFraction",{get:y.prototype.P,set:y.prototype.R});y.prototype.__destroy__=function(){Jd(this.H)};function QA(){throw"cannot construct a ContactResultCallback, no constructor in IDL";}QA.prototype=Object.create(k.prototype);QA.prototype.constructor=QA; +QA.prototype.I=QA;QA.J={};d.ContactResultCallback=QA;QA.prototype.addSingleResult=function(a,b,e,f,h,n,B){var S=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);f&&"object"===typeof f&&(f=f.H);h&&"object"===typeof h&&(h=h.H);n&&"object"===typeof n&&(n=n.H);B&&"object"===typeof B&&(B=B.H);return Id(S,a,b,e,f,h,n,B)};QA.prototype.__destroy__=function(){Hd(this.H)};function RA(){throw"cannot construct a btSoftBodySolver, no constructor in IDL";} +RA.prototype=Object.create(k.prototype);RA.prototype.constructor=RA;RA.prototype.I=RA;RA.J={};d.btSoftBodySolver=RA;RA.prototype.__destroy__=function(){cu(this.H)};function z(){throw"cannot construct a RayResultCallback, no constructor in IDL";}z.prototype=Object.create(k.prototype);z.prototype.constructor=z;z.prototype.I=z;z.J={};d.RayResultCallback=z;z.prototype.hasHit=function(){return!!Se(this.H)};z.prototype.get_m_collisionFilterGroup=z.prototype.K=function(){return Pe(this.H)}; +z.prototype.set_m_collisionFilterGroup=z.prototype.N=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Ue(b,a)};Object.defineProperty(z.prototype,"m_collisionFilterGroup",{get:z.prototype.K,set:z.prototype.N});z.prototype.get_m_collisionFilterMask=z.prototype.L=function(){return Qe(this.H)};z.prototype.set_m_collisionFilterMask=z.prototype.O=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Ve(b,a)};Object.defineProperty(z.prototype,"m_collisionFilterMask",{get:z.prototype.L,set:z.prototype.O}); +z.prototype.get_m_closestHitFraction=z.prototype.P=function(){return Oe(this.H)};z.prototype.set_m_closestHitFraction=z.prototype.R=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Te(b,a)};Object.defineProperty(z.prototype,"m_closestHitFraction",{get:z.prototype.P,set:z.prototype.R});z.prototype.get_m_collisionObject=z.prototype.S=function(){return m(Re(this.H),t)};z.prototype.set_m_collisionObject=z.prototype.aa=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);We(b,a)}; +Object.defineProperty(z.prototype,"m_collisionObject",{get:z.prototype.S,set:z.prototype.aa});z.prototype.__destroy__=function(){Ne(this.H)};function SA(){throw"cannot construct a btMatrix3x3, no constructor in IDL";}SA.prototype=Object.create(k.prototype);SA.prototype.constructor=SA;SA.prototype.I=SA;SA.J={};d.btMatrix3x3=SA;SA.prototype.setEulerZYX=function(a,b,e){var f=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);cp(f,a,b,e)}; +SA.prototype.getRotation=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ap(b,a)};SA.prototype.getRow=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return m(bp(b,a),r)};SA.prototype.__destroy__=function(){$o(this.H)};function TA(){throw"cannot construct a btScalarArray, no constructor in IDL";}TA.prototype=Object.create(k.prototype);TA.prototype.constructor=TA;TA.prototype.I=TA;TA.J={};d.btScalarArray=TA;TA.prototype.size=TA.prototype.size=function(){return vt(this.H)}; +TA.prototype.at=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return ut(b,a)};TA.prototype.__destroy__=function(){tt(this.H)};function A(){throw"cannot construct a Material, no constructor in IDL";}A.prototype=Object.create(k.prototype);A.prototype.constructor=A;A.prototype.I=A;A.J={};d.Material=A;A.prototype.get_m_kLST=A.prototype.cc=function(){return se(this.H)};A.prototype.set_m_kLST=A.prototype.Me=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);we(b,a)}; +Object.defineProperty(A.prototype,"m_kLST",{get:A.prototype.cc,set:A.prototype.Me});A.prototype.get_m_kAST=A.prototype.bc=function(){return re(this.H)};A.prototype.set_m_kAST=A.prototype.Le=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ve(b,a)};Object.defineProperty(A.prototype,"m_kAST",{get:A.prototype.bc,set:A.prototype.Le});A.prototype.get_m_kVST=A.prototype.dc=function(){return te(this.H)}; +A.prototype.set_m_kVST=A.prototype.Ne=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);xe(b,a)};Object.defineProperty(A.prototype,"m_kVST",{get:A.prototype.dc,set:A.prototype.Ne});A.prototype.get_m_flags=A.prototype.Kb=function(){return qe(this.H)};A.prototype.set_m_flags=A.prototype.te=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ue(b,a)};Object.defineProperty(A.prototype,"m_flags",{get:A.prototype.Kb,set:A.prototype.te});A.prototype.__destroy__=function(){pe(this.H)}; +function p(){throw"cannot construct a btDispatcherInfo, no constructor in IDL";}p.prototype=Object.create(k.prototype);p.prototype.constructor=p;p.prototype.I=p;p.J={};d.btDispatcherInfo=p;p.prototype.get_m_timeStep=p.prototype.Rc=function(){return fl(this.H)};p.prototype.set_m_timeStep=p.prototype.Bf=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ql(b,a)};Object.defineProperty(p.prototype,"m_timeStep",{get:p.prototype.Rc,set:p.prototype.Bf});p.prototype.get_m_stepCount=p.prototype.Ic=function(){return dl(this.H)}; +p.prototype.set_m_stepCount=p.prototype.sf=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ol(b,a)};Object.defineProperty(p.prototype,"m_stepCount",{get:p.prototype.Ic,set:p.prototype.sf});p.prototype.get_m_dispatchFunc=p.prototype.Cb=function(){return al(this.H)};p.prototype.set_m_dispatchFunc=p.prototype.le=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ll(b,a)};Object.defineProperty(p.prototype,"m_dispatchFunc",{get:p.prototype.Cb,set:p.prototype.le}); +p.prototype.get_m_timeOfImpact=p.prototype.Qc=function(){return el(this.H)};p.prototype.set_m_timeOfImpact=p.prototype.Af=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);pl(b,a)};Object.defineProperty(p.prototype,"m_timeOfImpact",{get:p.prototype.Qc,set:p.prototype.Af});p.prototype.get_m_useContinuous=p.prototype.Tc=function(){return!!gl(this.H)};p.prototype.set_m_useContinuous=p.prototype.Df=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);rl(b,a)}; +Object.defineProperty(p.prototype,"m_useContinuous",{get:p.prototype.Tc,set:p.prototype.Df});p.prototype.get_m_enableSatConvex=p.prototype.Gb=function(){return!!cl(this.H)};p.prototype.set_m_enableSatConvex=p.prototype.pe=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);nl(b,a)};Object.defineProperty(p.prototype,"m_enableSatConvex",{get:p.prototype.Gb,set:p.prototype.pe});p.prototype.get_m_enableSPU=p.prototype.Fb=function(){return!!bl(this.H)}; +p.prototype.set_m_enableSPU=p.prototype.oe=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ml(b,a)};Object.defineProperty(p.prototype,"m_enableSPU",{get:p.prototype.Fb,set:p.prototype.oe});p.prototype.get_m_useEpa=p.prototype.Vc=function(){return!!il(this.H)};p.prototype.set_m_useEpa=p.prototype.Ff=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);tl(b,a)};Object.defineProperty(p.prototype,"m_useEpa",{get:p.prototype.Vc,set:p.prototype.Ff}); +p.prototype.get_m_allowedCcdPenetration=p.prototype.fb=function(){return Zk(this.H)};p.prototype.set_m_allowedCcdPenetration=p.prototype.Pd=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);jl(b,a)};Object.defineProperty(p.prototype,"m_allowedCcdPenetration",{get:p.prototype.fb,set:p.prototype.Pd});p.prototype.get_m_useConvexConservativeDistanceUtil=p.prototype.Uc=function(){return!!hl(this.H)}; +p.prototype.set_m_useConvexConservativeDistanceUtil=p.prototype.Ef=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);sl(b,a)};Object.defineProperty(p.prototype,"m_useConvexConservativeDistanceUtil",{get:p.prototype.Uc,set:p.prototype.Ef});p.prototype.get_m_convexConservativeDistanceThreshold=p.prototype.xb=function(){return $k(this.H)};p.prototype.set_m_convexConservativeDistanceThreshold=p.prototype.ge=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);kl(b,a)}; +Object.defineProperty(p.prototype,"m_convexConservativeDistanceThreshold",{get:p.prototype.xb,set:p.prototype.ge});p.prototype.__destroy__=function(){Yk(this.H)};function C(){throw"cannot construct a btWheelInfoConstructionInfo, no constructor in IDL";}C.prototype=Object.create(k.prototype);C.prototype.constructor=C;C.prototype.I=C;C.J={};d.btWheelInfoConstructionInfo=C;C.prototype.get_m_chassisConnectionCS=C.prototype.rb=function(){return m(sy(this.H),r)}; +C.prototype.set_m_chassisConnectionCS=C.prototype.ae=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Ey(b,a)};Object.defineProperty(C.prototype,"m_chassisConnectionCS",{get:C.prototype.rb,set:C.prototype.ae});C.prototype.get_m_wheelDirectionCS=C.prototype.pa=function(){return m(zy(this.H),r)};C.prototype.set_m_wheelDirectionCS=C.prototype.wa=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Ly(b,a)};Object.defineProperty(C.prototype,"m_wheelDirectionCS",{get:C.prototype.pa,set:C.prototype.wa}); +C.prototype.get_m_wheelAxleCS=C.prototype.oa=function(){return m(yy(this.H),r)};C.prototype.set_m_wheelAxleCS=C.prototype.va=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Ky(b,a)};Object.defineProperty(C.prototype,"m_wheelAxleCS",{get:C.prototype.oa,set:C.prototype.va});C.prototype.get_m_suspensionRestLength=C.prototype.Nc=function(){return wy(this.H)};C.prototype.set_m_suspensionRestLength=C.prototype.xf=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Iy(b,a)}; +Object.defineProperty(C.prototype,"m_suspensionRestLength",{get:C.prototype.Nc,set:C.prototype.xf});C.prototype.get_m_maxSuspensionTravelCm=C.prototype.X=function(){return vy(this.H)};C.prototype.set_m_maxSuspensionTravelCm=C.prototype.ga=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Hy(b,a)};Object.defineProperty(C.prototype,"m_maxSuspensionTravelCm",{get:C.prototype.X,set:C.prototype.ga});C.prototype.get_m_wheelRadius=C.prototype.ad=function(){return Ay(this.H)}; +C.prototype.set_m_wheelRadius=C.prototype.Lf=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);My(b,a)};Object.defineProperty(C.prototype,"m_wheelRadius",{get:C.prototype.ad,set:C.prototype.Lf});C.prototype.get_m_suspensionStiffness=C.prototype.Y=function(){return xy(this.H)};C.prototype.set_m_suspensionStiffness=C.prototype.ha=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Jy(b,a)};Object.defineProperty(C.prototype,"m_suspensionStiffness",{get:C.prototype.Y,set:C.prototype.ha}); +C.prototype.get_m_wheelsDampingCompression=C.prototype.qa=function(){return By(this.H)};C.prototype.set_m_wheelsDampingCompression=C.prototype.xa=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Ny(b,a)};Object.defineProperty(C.prototype,"m_wheelsDampingCompression",{get:C.prototype.qa,set:C.prototype.xa});C.prototype.get_m_wheelsDampingRelaxation=C.prototype.ra=function(){return Cy(this.H)}; +C.prototype.set_m_wheelsDampingRelaxation=C.prototype.ya=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Oy(b,a)};Object.defineProperty(C.prototype,"m_wheelsDampingRelaxation",{get:C.prototype.ra,set:C.prototype.ya});C.prototype.get_m_frictionSlip=C.prototype.T=function(){return ty(this.H)};C.prototype.set_m_frictionSlip=C.prototype.ba=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Fy(b,a)};Object.defineProperty(C.prototype,"m_frictionSlip",{get:C.prototype.T,set:C.prototype.ba}); +C.prototype.get_m_maxSuspensionForce=C.prototype.W=function(){return uy(this.H)};C.prototype.set_m_maxSuspensionForce=C.prototype.fa=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Gy(b,a)};Object.defineProperty(C.prototype,"m_maxSuspensionForce",{get:C.prototype.W,set:C.prototype.fa});C.prototype.get_m_bIsFrontWheel=C.prototype.la=function(){return!!ry(this.H)};C.prototype.set_m_bIsFrontWheel=C.prototype.sa=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Dy(b,a)}; +Object.defineProperty(C.prototype,"m_bIsFrontWheel",{get:C.prototype.la,set:C.prototype.sa});C.prototype.__destroy__=function(){qy(this.H)};function UA(a,b){a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);this.H=void 0===b?sj(a):tj(a,b);l(UA)[this.H]=this}UA.prototype=Object.create(LA.prototype);UA.prototype.constructor=UA;UA.prototype.I=UA;UA.J={};d.btConvexTriangleMeshShape=UA;UA.prototype.setLocalScaling=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);xj(b,a)}; +UA.prototype.getLocalScaling=function(){return m(vj(this.H),r)};UA.prototype.calculateLocalInertia=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);uj(e,a,b)};UA.prototype.setMargin=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);yj(b,a)};UA.prototype.getMargin=function(){return wj(this.H)};UA.prototype.__destroy__=function(){rj(this.H)};function wA(){throw"cannot construct a btBroadphaseInterface, no constructor in IDL";}wA.prototype=Object.create(k.prototype); +wA.prototype.constructor=wA;wA.prototype.I=wA;wA.J={};d.btBroadphaseInterface=wA;wA.prototype.getOverlappingPairCache=function(){return m(Ef(this.H),vA)};wA.prototype.__destroy__=function(){Df(this.H)};function D(a,b,e,f){a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);f&&"object"===typeof f&&(f=f.H);this.H=void 0===f?Hr(a,b,e):Ir(a,b,e,f);l(D)[this.H]=this}D.prototype=Object.create(k.prototype);D.prototype.constructor=D;D.prototype.I=D;D.J={}; +d.btRigidBodyConstructionInfo=D;D.prototype.get_m_linearDamping=D.prototype.ec=function(){return Rr(this.H)};D.prototype.set_m_linearDamping=D.prototype.Oe=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);cs(b,a)};Object.defineProperty(D.prototype,"m_linearDamping",{get:D.prototype.ec,set:D.prototype.Oe});D.prototype.get_m_angularDamping=D.prototype.hb=function(){return Or(this.H)}; +D.prototype.set_m_angularDamping=D.prototype.Rd=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);$r(b,a)};Object.defineProperty(D.prototype,"m_angularDamping",{get:D.prototype.hb,set:D.prototype.Rd});D.prototype.get_m_friction=D.prototype.Lb=function(){return Qr(this.H)};D.prototype.set_m_friction=D.prototype.ue=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);bs(b,a)};Object.defineProperty(D.prototype,"m_friction",{get:D.prototype.Lb,set:D.prototype.ue}); +D.prototype.get_m_rollingFriction=D.prototype.Ac=function(){return Ur(this.H)};D.prototype.set_m_rollingFriction=D.prototype.jf=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);gs(b,a)};Object.defineProperty(D.prototype,"m_rollingFriction",{get:D.prototype.Ac,set:D.prototype.jf});D.prototype.get_m_restitution=D.prototype.yc=function(){return Tr(this.H)};D.prototype.set_m_restitution=D.prototype.gf=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);es(b,a)}; +Object.defineProperty(D.prototype,"m_restitution",{get:D.prototype.yc,set:D.prototype.gf});D.prototype.get_m_linearSleepingThreshold=D.prototype.fc=function(){return Sr(this.H)};D.prototype.set_m_linearSleepingThreshold=D.prototype.Pe=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ds(b,a)};Object.defineProperty(D.prototype,"m_linearSleepingThreshold",{get:D.prototype.fc,set:D.prototype.Pe});D.prototype.get_m_angularSleepingThreshold=D.prototype.ib=function(){return Pr(this.H)}; +D.prototype.set_m_angularSleepingThreshold=D.prototype.Sd=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);as(b,a)};Object.defineProperty(D.prototype,"m_angularSleepingThreshold",{get:D.prototype.ib,set:D.prototype.Sd});D.prototype.get_m_additionalDamping=D.prototype.bb=function(){return!!Mr(this.H)};D.prototype.set_m_additionalDamping=D.prototype.Md=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Yr(b,a)}; +Object.defineProperty(D.prototype,"m_additionalDamping",{get:D.prototype.bb,set:D.prototype.Md});D.prototype.get_m_additionalDampingFactor=D.prototype.cb=function(){return Lr(this.H)};D.prototype.set_m_additionalDampingFactor=D.prototype.Nd=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Xr(b,a)};Object.defineProperty(D.prototype,"m_additionalDampingFactor",{get:D.prototype.cb,set:D.prototype.Nd});D.prototype.get_m_additionalLinearDampingThresholdSqr=D.prototype.eb=function(){return Nr(this.H)}; +D.prototype.set_m_additionalLinearDampingThresholdSqr=D.prototype.Od=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Zr(b,a)};Object.defineProperty(D.prototype,"m_additionalLinearDampingThresholdSqr",{get:D.prototype.eb,set:D.prototype.Od});D.prototype.get_m_additionalAngularDampingThresholdSqr=D.prototype.ab=function(){return Kr(this.H)};D.prototype.set_m_additionalAngularDampingThresholdSqr=D.prototype.Ld=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Wr(b,a)}; +Object.defineProperty(D.prototype,"m_additionalAngularDampingThresholdSqr",{get:D.prototype.ab,set:D.prototype.Ld});D.prototype.get_m_additionalAngularDampingFactor=D.prototype.$a=function(){return Jr(this.H)};D.prototype.set_m_additionalAngularDampingFactor=D.prototype.Kd=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Vr(b,a)};Object.defineProperty(D.prototype,"m_additionalAngularDampingFactor",{get:D.prototype.$a,set:D.prototype.Kd});D.prototype.__destroy__=function(){Gr(this.H)}; +function VA(){throw"cannot construct a btCollisionConfiguration, no constructor in IDL";}VA.prototype=Object.create(k.prototype);VA.prototype.constructor=VA;VA.prototype.I=VA;VA.J={};d.btCollisionConfiguration=VA;VA.prototype.__destroy__=function(){tg(this.H)};function MA(){this.H=Xp();l(MA)[this.H]=this}MA.prototype=Object.create(k.prototype);MA.prototype.constructor=MA;MA.prototype.I=MA;MA.J={};d.btPersistentManifold=MA;MA.prototype.getBody0=function(){return m(Yp(this.H),t)}; +MA.prototype.getBody1=function(){return m(Zp(this.H),t)};MA.prototype.getNumContacts=function(){return aq(this.H)};MA.prototype.getContactPoint=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return m($p(b,a),E)};MA.prototype.__destroy__=function(){Wp(this.H)};function WA(a){a&&"object"===typeof a&&(a=a.H);this.H=void 0===a?Eh():Fh(a);l(WA)[this.H]=this}WA.prototype=Object.create(q.prototype);WA.prototype.constructor=WA;WA.prototype.I=WA;WA.J={};d.btCompoundShape=WA; +WA.prototype.addChildShape=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);Dh(e,a,b)};WA.prototype.removeChildShape=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Mh(b,a)};WA.prototype.removeChildShapeByIndex=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Lh(b,a)};WA.prototype.getNumChildShapes=function(){return Kh(this.H)};WA.prototype.getChildShape=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return m(Hh(b,a),q)}; +WA.prototype.updateChildTransform=function(a,b,e){var f=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);void 0===e?Ph(f,a,b):Qh(f,a,b,e)};WA.prototype.setMargin=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Oh(b,a)};WA.prototype.getMargin=function(){return Jh(this.H)};WA.prototype.setLocalScaling=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Nh(b,a)};WA.prototype.getLocalScaling=function(){return m(Ih(this.H),r)}; +WA.prototype.calculateLocalInertia=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);Gh(e,a,b)};WA.prototype.__destroy__=function(){Ch(this.H)};function F(a,b){a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);this.H=Wb(a,b);l(F)[this.H]=this}F.prototype=Object.create(y.prototype);F.prototype.constructor=F;F.prototype.I=F;F.J={};d.ClosestConvexResultCallback=F;F.prototype.hasHit=function(){return!!ec(this.H)}; +F.prototype.get_m_convexFromWorld=F.prototype.yb=function(){return m(ac(this.H),r)};F.prototype.set_m_convexFromWorld=F.prototype.he=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);jc(b,a)};Object.defineProperty(F.prototype,"m_convexFromWorld",{get:F.prototype.yb,set:F.prototype.he});F.prototype.get_m_convexToWorld=F.prototype.zb=function(){return m(bc(this.H),r)};F.prototype.set_m_convexToWorld=F.prototype.ie=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);kc(b,a)}; +Object.defineProperty(F.prototype,"m_convexToWorld",{get:F.prototype.zb,set:F.prototype.ie});F.prototype.get_m_hitNormalWorld=F.prototype.U=function(){return m(cc(this.H),r)};F.prototype.set_m_hitNormalWorld=F.prototype.da=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);lc(b,a)};Object.defineProperty(F.prototype,"m_hitNormalWorld",{get:F.prototype.U,set:F.prototype.da});F.prototype.get_m_hitPointWorld=F.prototype.V=function(){return m(dc(this.H),r)}; +F.prototype.set_m_hitPointWorld=F.prototype.ea=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);mc(b,a)};Object.defineProperty(F.prototype,"m_hitPointWorld",{get:F.prototype.V,set:F.prototype.ea});F.prototype.get_m_collisionFilterGroup=F.prototype.K=function(){return Zb(this.H)};F.prototype.set_m_collisionFilterGroup=F.prototype.N=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);hc(b,a)};Object.defineProperty(F.prototype,"m_collisionFilterGroup",{get:F.prototype.K,set:F.prototype.N}); +F.prototype.get_m_collisionFilterMask=F.prototype.L=function(){return $b(this.H)};F.prototype.set_m_collisionFilterMask=F.prototype.O=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ic(b,a)};Object.defineProperty(F.prototype,"m_collisionFilterMask",{get:F.prototype.L,set:F.prototype.O});F.prototype.get_m_closestHitFraction=F.prototype.P=function(){return Yb(this.H)};F.prototype.set_m_closestHitFraction=F.prototype.R=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);fc(b,a)}; +Object.defineProperty(F.prototype,"m_closestHitFraction",{get:F.prototype.P,set:F.prototype.R});F.prototype.__destroy__=function(){Xb(this.H)};function G(a,b){a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);this.H=jb(a,b);l(G)[this.H]=this}G.prototype=Object.create(z.prototype);G.prototype.constructor=G;G.prototype.I=G;G.J={};d.AllHitsRayResultCallback=G;G.prototype.hasHit=function(){return!!vb(this.H)}; +G.prototype.get_m_collisionObjects=G.prototype.ub=function(){return m(pb(this.H),XA)};G.prototype.set_m_collisionObjects=G.prototype.de=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Ab(b,a)};Object.defineProperty(G.prototype,"m_collisionObjects",{get:G.prototype.ub,set:G.prototype.de});G.prototype.get_m_rayFromWorld=G.prototype.ma=function(){return m(tb(this.H),r)};G.prototype.set_m_rayFromWorld=G.prototype.ta=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Eb(b,a)}; +Object.defineProperty(G.prototype,"m_rayFromWorld",{get:G.prototype.ma,set:G.prototype.ta});G.prototype.get_m_rayToWorld=G.prototype.na=function(){return m(ub(this.H),r)};G.prototype.set_m_rayToWorld=G.prototype.ua=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Fb(b,a)};Object.defineProperty(G.prototype,"m_rayToWorld",{get:G.prototype.na,set:G.prototype.ua});G.prototype.get_m_hitNormalWorld=G.prototype.U=function(){return m(rb(this.H),YA)}; +G.prototype.set_m_hitNormalWorld=G.prototype.da=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Cb(b,a)};Object.defineProperty(G.prototype,"m_hitNormalWorld",{get:G.prototype.U,set:G.prototype.da});G.prototype.get_m_hitPointWorld=G.prototype.V=function(){return m(sb(this.H),YA)};G.prototype.set_m_hitPointWorld=G.prototype.ea=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Db(b,a)};Object.defineProperty(G.prototype,"m_hitPointWorld",{get:G.prototype.V,set:G.prototype.ea}); +G.prototype.get_m_hitFractions=G.prototype.Sb=function(){return m(qb(this.H),TA)};G.prototype.set_m_hitFractions=G.prototype.Be=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Bb(b,a)};Object.defineProperty(G.prototype,"m_hitFractions",{get:G.prototype.Sb,set:G.prototype.Be});G.prototype.get_m_collisionFilterGroup=G.prototype.K=function(){return mb(this.H)};G.prototype.set_m_collisionFilterGroup=G.prototype.N=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);xb(b,a)}; +Object.defineProperty(G.prototype,"m_collisionFilterGroup",{get:G.prototype.K,set:G.prototype.N});G.prototype.get_m_collisionFilterMask=G.prototype.L=function(){return nb(this.H)};G.prototype.set_m_collisionFilterMask=G.prototype.O=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);yb(b,a)};Object.defineProperty(G.prototype,"m_collisionFilterMask",{get:G.prototype.L,set:G.prototype.O});G.prototype.get_m_closestHitFraction=G.prototype.P=function(){return lb(this.H)}; +G.prototype.set_m_closestHitFraction=G.prototype.R=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);wb(b,a)};Object.defineProperty(G.prototype,"m_closestHitFraction",{get:G.prototype.P,set:G.prototype.R});G.prototype.get_m_collisionObject=G.prototype.S=function(){return m(ob(this.H),t)};G.prototype.set_m_collisionObject=G.prototype.aa=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);zb(b,a)};Object.defineProperty(G.prototype,"m_collisionObject",{get:G.prototype.S,set:G.prototype.aa}); +G.prototype.__destroy__=function(){kb(this.H)};function ZA(){throw"cannot construct a tMaterialArray, no constructor in IDL";}ZA.prototype=Object.create(k.prototype);ZA.prototype.constructor=ZA;ZA.prototype.I=ZA;ZA.J={};d.tMaterialArray=ZA;ZA.prototype.size=ZA.prototype.size=function(){return Wz(this.H)};ZA.prototype.at=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return m(Vz(b,a),A)};ZA.prototype.__destroy__=function(){Uz(this.H)}; +function $A(a){a&&"object"===typeof a&&(a=a.H);this.H=mk(a);l($A)[this.H]=this}$A.prototype=Object.create(IA.prototype);$A.prototype.constructor=$A;$A.prototype.I=$A;$A.J={};d.btDefaultVehicleRaycaster=$A;$A.prototype.castRay=function(a,b,e){var f=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);nk(f,a,b,e)};$A.prototype.__destroy__=function(){lk(this.H)};function H(){this.H=Di();l(H)[this.H]=this}H.prototype=Object.create(k.prototype); +H.prototype.constructor=H;H.prototype.I=H;H.J={};d.btConstraintSetting=H;H.prototype.get_m_tau=H.prototype.Pc=function(){return Gi(this.H)};H.prototype.set_m_tau=H.prototype.zf=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Ji(b,a)};Object.defineProperty(H.prototype,"m_tau",{get:H.prototype.Pc,set:H.prototype.zf});H.prototype.get_m_damping=H.prototype.Ab=function(){return Ei(this.H)};H.prototype.set_m_damping=H.prototype.je=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Hi(b,a)}; +Object.defineProperty(H.prototype,"m_damping",{get:H.prototype.Ab,set:H.prototype.je});H.prototype.get_m_impulseClamp=H.prototype.Yb=function(){return Fi(this.H)};H.prototype.set_m_impulseClamp=H.prototype.He=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Ii(b,a)};Object.defineProperty(H.prototype,"m_impulseClamp",{get:H.prototype.Yb,set:H.prototype.He});H.prototype.__destroy__=function(){Ci(this.H)};function aB(){throw"cannot construct a LocalShapeInfo, no constructor in IDL";} +aB.prototype=Object.create(k.prototype);aB.prototype.constructor=aB;aB.prototype.I=aB;aB.J={};d.LocalShapeInfo=aB;aB.prototype.get_m_shapePart=aB.prototype.Dc=function(){return le(this.H)};aB.prototype.set_m_shapePart=aB.prototype.mf=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ne(b,a)};Object.defineProperty(aB.prototype,"m_shapePart",{get:aB.prototype.Dc,set:aB.prototype.mf});aB.prototype.get_m_triangleIndex=aB.prototype.Sc=function(){return me(this.H)}; +aB.prototype.set_m_triangleIndex=aB.prototype.Cf=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);oe(b,a)};Object.defineProperty(aB.prototype,"m_triangleIndex",{get:aB.prototype.Sc,set:aB.prototype.Cf});aB.prototype.__destroy__=function(){ke(this.H)};function I(a){a&&"object"===typeof a&&(a=a.H);this.H=us(a);l(I)[this.H]=this}I.prototype=Object.create(t.prototype);I.prototype.constructor=I;I.prototype.I=I;I.J={};d.btRigidBody=I; +I.prototype.getCenterOfMassTransform=function(){return m(Ds(this.H),u)};I.prototype.setCenterOfMassTransform=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);at(b,a)};I.prototype.setSleepingThresholds=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);nt(e,a,b)};I.prototype.getLinearDamping=function(){return Is(this.H)};I.prototype.getAngularDamping=function(){return ys(this.H)}; +I.prototype.setDamping=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);et(e,a,b)};I.prototype.setMassProps=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);jt(e,a,b)};I.prototype.getLinearFactor=function(){return m(Js(this.H),r)};I.prototype.setLinearFactor=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ht(b,a)};I.prototype.applyTorque=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ts(b,a)}; +I.prototype.applyLocalTorque=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);rs(b,a)};I.prototype.applyForce=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);ns(e,a,b)};I.prototype.applyCentralForce=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ks(b,a)};I.prototype.applyCentralLocalForce=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ms(b,a)}; +I.prototype.applyTorqueImpulse=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ss(b,a)};I.prototype.applyImpulse=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);qs(e,a,b)};I.prototype.applyCentralImpulse=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ls(b,a)};I.prototype.updateInertiaTensor=function(){st(this.H)};I.prototype.getLinearVelocity=function(){return m(Ks(this.H),r)}; +I.prototype.getAngularVelocity=function(){return m(As(this.H),r)};I.prototype.setLinearVelocity=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);it(b,a)};I.prototype.setAngularVelocity=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Xs(b,a)};I.prototype.getMotionState=function(){return m(Ls(this.H),PA)};I.prototype.setMotionState=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);kt(b,a)};I.prototype.getAngularFactor=function(){return m(zs(this.H),r)}; +I.prototype.setAngularFactor=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Ws(b,a)};I.prototype.upcast=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return m(rt(b,a),I)};I.prototype.getAabb=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);xs(e,a,b)};I.prototype.applyGravity=function(){ps(this.H)};I.prototype.getGravity=function(){return m(Hs(this.H),r)}; +I.prototype.setGravity=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);gt(b,a)};I.prototype.getBroadphaseProxy=function(){return m(Cs(this.H),zA)};I.prototype.setAnisotropicFriction=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);Ys(e,a,b)};I.prototype.getCollisionShape=function(){return m(Fs(this.H),q)};I.prototype.setContactProcessingThreshold=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);dt(b,a)}; +I.prototype.setActivationState=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Vs(b,a)};I.prototype.forceActivationState=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);vs(b,a)};I.prototype.activate=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);void 0===a?is(b):js(b,a)};I.prototype.isActive=function(){return!!Rs(this.H)};I.prototype.isKinematicObject=function(){return!!Ss(this.H)};I.prototype.isStaticObject=function(){return!!Ts(this.H)}; +I.prototype.isStaticOrKinematicObject=function(){return!!Us(this.H)};I.prototype.getRestitution=function(){return Ms(this.H)};I.prototype.getFriction=function(){return Gs(this.H)};I.prototype.getRollingFriction=function(){return Ns(this.H)};I.prototype.setRestitution=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);lt(b,a)};I.prototype.setFriction=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ft(b,a)}; +I.prototype.setRollingFriction=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);mt(b,a)};I.prototype.getWorldTransform=function(){return m(Qs(this.H),u)};I.prototype.getCollisionFlags=function(){return Es(this.H)};I.prototype.setCollisionFlags=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);bt(b,a)};I.prototype.setWorldTransform=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);qt(b,a)}; +I.prototype.setCollisionShape=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ct(b,a)};I.prototype.setCcdMotionThreshold=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Zs(b,a)};I.prototype.setCcdSweptSphereRadius=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);$s(b,a)};I.prototype.getUserIndex=function(){return Os(this.H)};I.prototype.setUserIndex=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ot(b,a)}; +I.prototype.getUserPointer=function(){return m(Ps(this.H),yA)};I.prototype.setUserPointer=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);pt(b,a)};I.prototype.getBroadphaseHandle=function(){return m(Bs(this.H),zA)};I.prototype.__destroy__=function(){hs(this.H)};function bB(){throw"cannot construct a btIndexedMeshArray, no constructor in IDL";}bB.prototype=Object.create(k.prototype);bB.prototype.constructor=bB;bB.prototype.I=bB;bB.J={};d.btIndexedMeshArray=bB; +bB.prototype.size=bB.prototype.size=function(){return fo(this.H)};bB.prototype.at=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return m(eo(b,a),cB)};bB.prototype.__destroy__=function(){co(this.H)};function dB(){this.H=Vj();l(dB)[this.H]=this}dB.prototype=Object.create(k.prototype);dB.prototype.constructor=dB;dB.prototype.I=dB;dB.J={};d.btDbvtBroadphase=dB;dB.prototype.__destroy__=function(){Uj(this.H)}; +function eB(a,b,e,f,h,n,B,S,ja){a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);f&&"object"===typeof f&&(f=f.H);h&&"object"===typeof h&&(h=h.H);n&&"object"===typeof n&&(n=n.H);B&&"object"===typeof B&&(B=B.H);S&&"object"===typeof S&&(S=S.H);ja&&"object"===typeof ja&&(ja=ja.H);this.H=xn(a,b,e,f,h,n,B,S,ja);l(eB)[this.H]=this}eB.prototype=Object.create(CA.prototype);eB.prototype.constructor=eB;eB.prototype.I=eB;eB.J={};d.btHeightfieldTerrainShape=eB; +eB.prototype.setMargin=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Cn(b,a)};eB.prototype.getMargin=function(){return An(this.H)};eB.prototype.setLocalScaling=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Bn(b,a)};eB.prototype.getLocalScaling=function(){return m(zn(this.H),r)};eB.prototype.calculateLocalInertia=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);yn(e,a,b)};eB.prototype.__destroy__=function(){wn(this.H)}; +function fB(){this.H=kk();l(fB)[this.H]=this}fB.prototype=Object.create(RA.prototype);fB.prototype.constructor=fB;fB.prototype.I=fB;fB.J={};d.btDefaultSoftBodySolver=fB;fB.prototype.__destroy__=function(){jk(this.H)};function gB(a){a&&"object"===typeof a&&(a=a.H);this.H=vg(a);l(gB)[this.H]=this}gB.prototype=Object.create(uA.prototype);gB.prototype.constructor=gB;gB.prototype.I=gB;gB.J={};d.btCollisionDispatcher=gB;gB.prototype.getNumManifolds=function(){return xg(this.H)}; +gB.prototype.getManifoldByIndexInternal=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return m(wg(b,a),MA)};gB.prototype.__destroy__=function(){ug(this.H)};function hB(a,b,e,f,h){a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);f&&"object"===typeof f&&(f=f.H);h&&"object"===typeof h&&(h=h.H);this.H=void 0===e?sf(a,b):void 0===f?tf(a,b,e):void 0===h?uf(a,b,e,f):vf(a,b,e,f,h);l(hB)[this.H]=this}hB.prototype=Object.create(k.prototype); +hB.prototype.constructor=hB;hB.prototype.I=hB;hB.J={};d.btAxisSweep3=hB;hB.prototype.__destroy__=function(){rf(this.H)};function yA(){throw"cannot construct a VoidPtr, no constructor in IDL";}yA.prototype=Object.create(k.prototype);yA.prototype.constructor=yA;yA.prototype.I=yA;yA.J={};d.VoidPtr=yA;yA.prototype.__destroy__=function(){of(this.H)};function J(){this.H=eu();l(J)[this.H]=this}J.prototype=Object.create(k.prototype);J.prototype.constructor=J;J.prototype.I=J;J.J={};d.btSoftBodyWorldInfo=J; +J.prototype.get_air_density=J.prototype.Ea=function(){return fu(this.H)};J.prototype.set_air_density=J.prototype.od=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);nu(b,a)};Object.defineProperty(J.prototype,"air_density",{get:J.prototype.Ea,set:J.prototype.od});J.prototype.get_water_density=J.prototype.ld=function(){return ku(this.H)};J.prototype.set_water_density=J.prototype.Uf=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);su(b,a)}; +Object.defineProperty(J.prototype,"water_density",{get:J.prototype.ld,set:J.prototype.Uf});J.prototype.get_water_offset=J.prototype.nd=function(){return mu(this.H)};J.prototype.set_water_offset=J.prototype.Wf=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);uu(b,a)};Object.defineProperty(J.prototype,"water_offset",{get:J.prototype.nd,set:J.prototype.Wf});J.prototype.get_m_maxDisplacement=J.prototype.mc=function(){return ju(this.H)}; +J.prototype.set_m_maxDisplacement=J.prototype.Ve=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ru(b,a)};Object.defineProperty(J.prototype,"m_maxDisplacement",{get:J.prototype.mc,set:J.prototype.Ve});J.prototype.get_water_normal=J.prototype.md=function(){return m(lu(this.H),r)};J.prototype.set_water_normal=J.prototype.Vf=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);tu(b,a)};Object.defineProperty(J.prototype,"water_normal",{get:J.prototype.md,set:J.prototype.Vf}); +J.prototype.get_m_broadphase=J.prototype.mb=function(){return m(gu(this.H),wA)};J.prototype.set_m_broadphase=J.prototype.Wd=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ou(b,a)};Object.defineProperty(J.prototype,"m_broadphase",{get:J.prototype.mb,set:J.prototype.Wd});J.prototype.get_m_dispatcher=J.prototype.Db=function(){return m(hu(this.H),uA)};J.prototype.set_m_dispatcher=J.prototype.me=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);pu(b,a)}; +Object.defineProperty(J.prototype,"m_dispatcher",{get:J.prototype.Db,set:J.prototype.me});J.prototype.get_m_gravity=J.prototype.Nb=function(){return m(iu(this.H),r)};J.prototype.set_m_gravity=J.prototype.we=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);qu(b,a)};Object.defineProperty(J.prototype,"m_gravity",{get:J.prototype.Nb,set:J.prototype.we});J.prototype.__destroy__=function(){du(this.H)}; +function iB(a,b,e,f){a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);f&&"object"===typeof f&&(f=f.H);this.H=void 0===e?ki(a,b):void 0===f?_emscripten_bind_btConeTwistConstraint_btConeTwistConstraint_3(a,b,e):li(a,b,e,f);l(iB)[this.H]=this}iB.prototype=Object.create(BA.prototype);iB.prototype.constructor=iB;iB.prototype.I=iB;iB.J={};d.btConeTwistConstraint=iB; +iB.prototype.setLimit=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);ti(e,a,b)};iB.prototype.setAngularOnly=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);qi(b,a)};iB.prototype.setDamping=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);si(b,a)};iB.prototype.enableMotor=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ni(b,a)};iB.prototype.setMaxMotorImpulse=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);vi(b,a)}; +iB.prototype.setMaxMotorImpulseNormalized=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ui(b,a)};iB.prototype.setMotorTarget=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);xi(b,a)};iB.prototype.setMotorTargetInConstraintSpace=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);wi(b,a)};iB.prototype.enableFeedback=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);mi(b,a)};iB.prototype.getBreakingImpulseThreshold=function(){return oi(this.H)}; +iB.prototype.setBreakingImpulseThreshold=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ri(b,a)};iB.prototype.getParam=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);return pi(e,a,b)};iB.prototype.setParam=function(a,b,e){var f=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);yi(f,a,b,e)};iB.prototype.__destroy__=function(){ji(this.H)}; +function jB(a,b,e,f,h,n,B){a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);f&&"object"===typeof f&&(f=f.H);h&&"object"===typeof h&&(h=h.H);n&&"object"===typeof n&&(n=n.H);B&&"object"===typeof B&&(B=B.H);this.H=void 0===e?En(a,b):void 0===f?Fn(a,b,e):void 0===h?Gn(a,b,e,f):void 0===n?Hn(a,b,e,f,h):void 0===B?In(a,b,e,f,h,n):Jn(a,b,e,f,h,n,B);l(jB)[this.H]=this}jB.prototype=Object.create(BA.prototype);jB.prototype.constructor=jB;jB.prototype.I=jB; +jB.J={};d.btHingeConstraint=jB;jB.prototype.setLimit=function(a,b,e,f,h){var n=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);f&&"object"===typeof f&&(f=f.H);h&&"object"===typeof h&&(h=h.H);void 0===h?Rn(n,a,b,e,f):Sn(n,a,b,e,f,h)};jB.prototype.enableAngularMotor=function(a,b,e){var f=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);Kn(f,a,b,e)}; +jB.prototype.setAngularOnly=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Pn(b,a)};jB.prototype.enableMotor=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Mn(b,a)};jB.prototype.setMaxMotorImpulse=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Tn(b,a)};jB.prototype.setMotorTarget=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);Un(e,a,b)}; +jB.prototype.enableFeedback=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Ln(b,a)};jB.prototype.getBreakingImpulseThreshold=function(){return Nn(this.H)};jB.prototype.setBreakingImpulseThreshold=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Qn(b,a)};jB.prototype.getParam=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);return On(e,a,b)}; +jB.prototype.setParam=function(a,b,e){var f=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);Vn(f,a,b,e)};jB.prototype.__destroy__=function(){Dn(this.H)};function kB(a,b){a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);this.H=ai(a,b);l(kB)[this.H]=this}kB.prototype=Object.create(GA.prototype);kB.prototype.constructor=kB;kB.prototype.I=kB;kB.J={};d.btConeShapeZ=kB; +kB.prototype.setLocalScaling=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);di(b,a)};kB.prototype.getLocalScaling=function(){return m(ci(this.H),r)};kB.prototype.calculateLocalInertia=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);bi(e,a,b)};kB.prototype.__destroy__=function(){$h(this.H)};function lB(a,b){a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);this.H=Wh(a,b);l(lB)[this.H]=this}lB.prototype=Object.create(GA.prototype); +lB.prototype.constructor=lB;lB.prototype.I=lB;lB.J={};d.btConeShapeX=lB;lB.prototype.setLocalScaling=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Zh(b,a)};lB.prototype.getLocalScaling=function(){return m(Yh(this.H),r)};lB.prototype.calculateLocalInertia=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);Xh(e,a,b)};lB.prototype.__destroy__=function(){Vh(this.H)}; +function mB(a,b){a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);this.H=void 0===a?Yw():void 0===b?Zw(a):$w(a,b);l(mB)[this.H]=this}mB.prototype=Object.create(OA.prototype);mB.prototype.constructor=mB;mB.prototype.I=mB;mB.J={};d.btTriangleMesh=mB;mB.prototype.addTriangle=function(a,b,e,f){var h=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);f&&"object"===typeof f&&(f=f.H);void 0===f?Ww(h,a,b,e):Xw(h,a,b,e,f)}; +mB.prototype.findOrAddVertex=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);return ax(e,a,b)};mB.prototype.addIndex=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Vw(b,a)};mB.prototype.getIndexedMeshArray=function(){return m(bx(this.H),bB)};mB.prototype.setScaling=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);cx(b,a)};mB.prototype.__destroy__=function(){Uw(this.H)}; +function nB(a,b){c.M();"object"==typeof a&&(a=sA(a));b&&"object"===typeof b&&(b=b.H);this.H=void 0===a?Vi():void 0===b?Wi(a):Xi(a,b);l(nB)[this.H]=this}nB.prototype=Object.create(q.prototype);nB.prototype.constructor=nB;nB.prototype.I=nB;nB.J={};d.btConvexHullShape=nB;nB.prototype.addPoint=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);void 0===b?Ti(e,a):Ui(e,a,b)};nB.prototype.setMargin=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);fj(b,a)}; +nB.prototype.getMargin=function(){return aj(this.H)};nB.prototype.getNumVertices=function(){return bj(this.H)};nB.prototype.initializePolyhedralFeatures=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return!!cj(b,a)};nB.prototype.recalcLocalAabb=function(){dj(this.H)};nB.prototype.getConvexPolyhedron=function(){return m(Zi(this.H),oB)};nB.prototype.setLocalScaling=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ej(b,a)}; +nB.prototype.getLocalScaling=function(){return m($i(this.H),r)};nB.prototype.calculateLocalInertia=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);Yi(e,a,b)};nB.prototype.__destroy__=function(){Si(this.H)};function K(){this.H=dy();l(K)[this.H]=this}K.prototype=Object.create(k.prototype);K.prototype.constructor=K;K.prototype.I=K;K.J={};d.btVehicleTuning=K;K.prototype.get_m_suspensionStiffness=K.prototype.Y=function(){return jy(this.H)}; +K.prototype.set_m_suspensionStiffness=K.prototype.ha=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);py(b,a)};Object.defineProperty(K.prototype,"m_suspensionStiffness",{get:K.prototype.Y,set:K.prototype.ha});K.prototype.get_m_suspensionCompression=K.prototype.Jc=function(){return hy(this.H)};K.prototype.set_m_suspensionCompression=K.prototype.tf=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ny(b,a)}; +Object.defineProperty(K.prototype,"m_suspensionCompression",{get:K.prototype.Jc,set:K.prototype.tf});K.prototype.get_m_suspensionDamping=K.prototype.Kc=function(){return iy(this.H)};K.prototype.set_m_suspensionDamping=K.prototype.uf=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);oy(b,a)};Object.defineProperty(K.prototype,"m_suspensionDamping",{get:K.prototype.Kc,set:K.prototype.uf});K.prototype.get_m_maxSuspensionTravelCm=K.prototype.X=function(){return gy(this.H)}; +K.prototype.set_m_maxSuspensionTravelCm=K.prototype.ga=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);my(b,a)};Object.defineProperty(K.prototype,"m_maxSuspensionTravelCm",{get:K.prototype.X,set:K.prototype.ga});K.prototype.get_m_frictionSlip=K.prototype.T=function(){return ey(this.H)};K.prototype.set_m_frictionSlip=K.prototype.ba=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ky(b,a)};Object.defineProperty(K.prototype,"m_frictionSlip",{get:K.prototype.T,set:K.prototype.ba}); +K.prototype.get_m_maxSuspensionForce=K.prototype.W=function(){return fy(this.H)};K.prototype.set_m_maxSuspensionForce=K.prototype.fa=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ly(b,a)};Object.defineProperty(K.prototype,"m_maxSuspensionForce",{get:K.prototype.W,set:K.prototype.fa});function pB(){throw"cannot construct a btCollisionObjectWrapper, no constructor in IDL";}pB.prototype=Object.create(k.prototype);pB.prototype.constructor=pB;pB.prototype.I=pB;pB.J={}; +d.btCollisionObjectWrapper=pB;pB.prototype.getWorldTransform=function(){return m(Ag(this.H),u)};pB.prototype.getCollisionObject=function(){return m(yg(this.H),t)};pB.prototype.getCollisionShape=function(){return m(zg(this.H),q)};function qB(a){a&&"object"===typeof a&&(a=a.H);this.H=zt(a);l(qB)[this.H]=this}qB.prototype=Object.create(k.prototype);qB.prototype.constructor=qB;qB.prototype.I=qB;qB.J={};d.btShapeHull=qB; +qB.prototype.buildHull=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return!!At(b,a)};qB.prototype.numVertices=function(){return Ct(this.H)};qB.prototype.getVertexPointer=function(){return m(Bt(this.H),r)};qB.prototype.__destroy__=function(){yt(this.H)};function rB(a,b){a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);this.H=void 0===a?ck():void 0===b?dk(a):ek(a,b);l(rB)[this.H]=this}rB.prototype=Object.create(PA.prototype);rB.prototype.constructor=rB;rB.prototype.I=rB; +rB.J={};d.btDefaultMotionState=rB;rB.prototype.getWorldTransform=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);fk(b,a)};rB.prototype.setWorldTransform=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);hk(b,a)};rB.prototype.get_m_graphicsWorldTrans=rB.prototype.Mb=function(){return m(gk(this.H),u)};rB.prototype.set_m_graphicsWorldTrans=rB.prototype.ve=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ik(b,a)}; +Object.defineProperty(rB.prototype,"m_graphicsWorldTrans",{get:rB.prototype.Mb,set:rB.prototype.ve});rB.prototype.__destroy__=function(){bk(this.H)};function L(a){a&&"object"===typeof a&&(a=a.H);this.H=Qy(a);l(L)[this.H]=this}L.prototype=Object.create(k.prototype);L.prototype.constructor=L;L.prototype.I=L;L.J={};d.btWheelInfo=L;L.prototype.getSuspensionRestLength=function(){return Ry(this.H)}; +L.prototype.updateWheel=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);Nz(e,a,b)};L.prototype.get_m_suspensionStiffness=L.prototype.Y=function(){return hz(this.H)};L.prototype.set_m_suspensionStiffness=L.prototype.ha=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Fz(b,a)};Object.defineProperty(L.prototype,"m_suspensionStiffness",{get:L.prototype.Y,set:L.prototype.ha});L.prototype.get_m_frictionSlip=L.prototype.T=function(){return Yy(this.H)}; +L.prototype.set_m_frictionSlip=L.prototype.ba=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);vz(b,a)};Object.defineProperty(L.prototype,"m_frictionSlip",{get:L.prototype.T,set:L.prototype.ba});L.prototype.get_m_engineForce=L.prototype.Hb=function(){return Xy(this.H)};L.prototype.set_m_engineForce=L.prototype.qe=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);uz(b,a)};Object.defineProperty(L.prototype,"m_engineForce",{get:L.prototype.Hb,set:L.prototype.qe}); +L.prototype.get_m_rollInfluence=L.prototype.zc=function(){return bz(this.H)};L.prototype.set_m_rollInfluence=L.prototype.hf=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);zz(b,a)};Object.defineProperty(L.prototype,"m_rollInfluence",{get:L.prototype.zc,set:L.prototype.hf});L.prototype.get_m_suspensionRestLength1=L.prototype.Oc=function(){return gz(this.H)};L.prototype.set_m_suspensionRestLength1=L.prototype.yf=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Ez(b,a)}; +Object.defineProperty(L.prototype,"m_suspensionRestLength1",{get:L.prototype.Oc,set:L.prototype.yf});L.prototype.get_m_wheelsRadius=L.prototype.bd=function(){return mz(this.H)};L.prototype.set_m_wheelsRadius=L.prototype.Mf=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Kz(b,a)};Object.defineProperty(L.prototype,"m_wheelsRadius",{get:L.prototype.bd,set:L.prototype.Mf});L.prototype.get_m_wheelsDampingCompression=L.prototype.qa=function(){return kz(this.H)}; +L.prototype.set_m_wheelsDampingCompression=L.prototype.xa=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Iz(b,a)};Object.defineProperty(L.prototype,"m_wheelsDampingCompression",{get:L.prototype.qa,set:L.prototype.xa});L.prototype.get_m_wheelsDampingRelaxation=L.prototype.ra=function(){return lz(this.H)};L.prototype.set_m_wheelsDampingRelaxation=L.prototype.ya=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Jz(b,a)}; +Object.defineProperty(L.prototype,"m_wheelsDampingRelaxation",{get:L.prototype.ra,set:L.prototype.ya});L.prototype.get_m_steering=L.prototype.Hc=function(){return ez(this.H)};L.prototype.set_m_steering=L.prototype.rf=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Cz(b,a)};Object.defineProperty(L.prototype,"m_steering",{get:L.prototype.Hc,set:L.prototype.rf});L.prototype.get_m_maxSuspensionForce=L.prototype.W=function(){return Zy(this.H)}; +L.prototype.set_m_maxSuspensionForce=L.prototype.fa=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);wz(b,a)};Object.defineProperty(L.prototype,"m_maxSuspensionForce",{get:L.prototype.W,set:L.prototype.fa});L.prototype.get_m_maxSuspensionTravelCm=L.prototype.X=function(){return $y(this.H)};L.prototype.set_m_maxSuspensionTravelCm=L.prototype.ga=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);xz(b,a)};Object.defineProperty(L.prototype,"m_maxSuspensionTravelCm",{get:L.prototype.X,set:L.prototype.ga}); +L.prototype.get_m_wheelsSuspensionForce=L.prototype.cd=function(){return nz(this.H)};L.prototype.set_m_wheelsSuspensionForce=L.prototype.Nf=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Lz(b,a)};Object.defineProperty(L.prototype,"m_wheelsSuspensionForce",{get:L.prototype.cd,set:L.prototype.Nf});L.prototype.get_m_bIsFrontWheel=L.prototype.la=function(){return!!Sy(this.H)};L.prototype.set_m_bIsFrontWheel=L.prototype.sa=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);pz(b,a)}; +Object.defineProperty(L.prototype,"m_bIsFrontWheel",{get:L.prototype.la,set:L.prototype.sa});L.prototype.get_m_raycastInfo=L.prototype.xc=function(){return m(az(this.H),M)};L.prototype.set_m_raycastInfo=L.prototype.ff=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);yz(b,a)};Object.defineProperty(L.prototype,"m_raycastInfo",{get:L.prototype.xc,set:L.prototype.ff});L.prototype.get_m_chassisConnectionPointCS=L.prototype.sb=function(){return m(Uy(this.H),r)}; +L.prototype.set_m_chassisConnectionPointCS=L.prototype.be=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);rz(b,a)};Object.defineProperty(L.prototype,"m_chassisConnectionPointCS",{get:L.prototype.sb,set:L.prototype.be});L.prototype.get_m_worldTransform=L.prototype.dd=function(){return m(oz(this.H),u)};L.prototype.set_m_worldTransform=L.prototype.Of=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Mz(b,a)};Object.defineProperty(L.prototype,"m_worldTransform",{get:L.prototype.dd,set:L.prototype.Of}); +L.prototype.get_m_wheelDirectionCS=L.prototype.pa=function(){return m(jz(this.H),r)};L.prototype.set_m_wheelDirectionCS=L.prototype.wa=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Hz(b,a)};Object.defineProperty(L.prototype,"m_wheelDirectionCS",{get:L.prototype.pa,set:L.prototype.wa});L.prototype.get_m_wheelAxleCS=L.prototype.oa=function(){return m(iz(this.H),r)};L.prototype.set_m_wheelAxleCS=L.prototype.va=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Gz(b,a)}; +Object.defineProperty(L.prototype,"m_wheelAxleCS",{get:L.prototype.oa,set:L.prototype.va});L.prototype.get_m_rotation=L.prototype.Bc=function(){return cz(this.H)};L.prototype.set_m_rotation=L.prototype.kf=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Az(b,a)};Object.defineProperty(L.prototype,"m_rotation",{get:L.prototype.Bc,set:L.prototype.kf});L.prototype.get_m_deltaRotation=L.prototype.Bb=function(){return Wy(this.H)}; +L.prototype.set_m_deltaRotation=L.prototype.ke=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);tz(b,a)};Object.defineProperty(L.prototype,"m_deltaRotation",{get:L.prototype.Bb,set:L.prototype.ke});L.prototype.get_m_brake=L.prototype.lb=function(){return Ty(this.H)};L.prototype.set_m_brake=L.prototype.Vd=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);qz(b,a)};Object.defineProperty(L.prototype,"m_brake",{get:L.prototype.lb,set:L.prototype.Vd}); +L.prototype.get_m_clippedInvContactDotSuspension=L.prototype.tb=function(){return Vy(this.H)};L.prototype.set_m_clippedInvContactDotSuspension=L.prototype.ce=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);sz(b,a)};Object.defineProperty(L.prototype,"m_clippedInvContactDotSuspension",{get:L.prototype.tb,set:L.prototype.ce});L.prototype.get_m_suspensionRelativeVelocity=L.prototype.Mc=function(){return fz(this.H)}; +L.prototype.set_m_suspensionRelativeVelocity=L.prototype.wf=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Dz(b,a)};Object.defineProperty(L.prototype,"m_suspensionRelativeVelocity",{get:L.prototype.Mc,set:L.prototype.wf});L.prototype.get_m_skidInfo=L.prototype.Ec=function(){return dz(this.H)};L.prototype.set_m_skidInfo=L.prototype.nf=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Bz(b,a)};Object.defineProperty(L.prototype,"m_skidInfo",{get:L.prototype.Ec,set:L.prototype.nf}); +L.prototype.__destroy__=function(){Py(this.H)};function N(a,b,e,f){a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);f&&"object"===typeof f&&(f=f.H);this.H=void 0===a?Ex():void 0===b?_emscripten_bind_btVector4_btVector4_1(a):void 0===e?_emscripten_bind_btVector4_btVector4_2(a,b):void 0===f?_emscripten_bind_btVector4_btVector4_3(a,b,e):Fx(a,b,e,f);l(N)[this.H]=this}N.prototype=Object.create(r.prototype);N.prototype.constructor=N;N.prototype.I=N;N.J={}; +d.btVector4=N;N.prototype.w=N.prototype.Aa=function(){return Rx(this.H)};N.prototype.setValue=function(a,b,e,f){var h=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);f&&"object"===typeof f&&(f=f.H);Nx(h,a,b,e,f)};N.prototype.length=N.prototype.length=function(){return Hx(this.H)};N.prototype.x=N.prototype.x=function(){return Sx(this.H)};N.prototype.y=N.prototype.y=function(){return Tx(this.H)};N.prototype.z=N.prototype.z=function(){return Ux(this.H)}; +N.prototype.setX=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Ox(b,a)};N.prototype.setY=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Px(b,a)};N.prototype.setZ=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Qx(b,a)};N.prototype.normalize=N.prototype.normalize=function(){Ix(this.H)};N.prototype.rotate=N.prototype.rotate=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);return m(Mx(e,a,b),r)}; +N.prototype.dot=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return Gx(b,a)};N.prototype.op_mul=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return m(Kx(b,a),r)};N.prototype.op_add=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return m(Jx(b,a),r)};N.prototype.op_sub=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return m(Lx(b,a),r)};N.prototype.__destroy__=function(){Dx(this.H)};function sB(){this.H=ak();l(sB)[this.H]=this}sB.prototype=Object.create(k.prototype); +sB.prototype.constructor=sB;sB.prototype.I=sB;sB.J={};d.btDefaultCollisionConstructionInfo=sB;sB.prototype.__destroy__=function(){Zj(this.H)};function O(){throw"cannot construct a Anchor, no constructor in IDL";}O.prototype=Object.create(k.prototype);O.prototype.constructor=O;O.prototype.I=O;O.J={};d.Anchor=O;O.prototype.get_m_node=O.prototype.oc=function(){return m(Nb(this.H),Node)};O.prototype.set_m_node=O.prototype.Xe=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Vb(b,a)}; +Object.defineProperty(O.prototype,"m_node",{get:O.prototype.oc,set:O.prototype.Xe});O.prototype.get_m_local=O.prototype.hc=function(){return m(Mb(this.H),r)};O.prototype.set_m_local=O.prototype.Qe=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Ub(b,a)};Object.defineProperty(O.prototype,"m_local",{get:O.prototype.hc,set:O.prototype.Qe});O.prototype.get_m_body=O.prototype.kb=function(){return m(Hb(this.H),I)}; +O.prototype.set_m_body=O.prototype.Ud=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Ob(b,a)};Object.defineProperty(O.prototype,"m_body",{get:O.prototype.kb,set:O.prototype.Ud});O.prototype.get_m_influence=O.prototype.$b=function(){return Lb(this.H)};O.prototype.set_m_influence=O.prototype.Je=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Tb(b,a)};Object.defineProperty(O.prototype,"m_influence",{get:O.prototype.$b,set:O.prototype.Je}); +O.prototype.get_m_c0=O.prototype.nb=function(){return m(Ib(this.H),SA)};O.prototype.set_m_c0=O.prototype.Xd=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Pb(b,a)};Object.defineProperty(O.prototype,"m_c0",{get:O.prototype.nb,set:O.prototype.Xd});O.prototype.get_m_c1=O.prototype.ob=function(){return m(Jb(this.H),r)};O.prototype.set_m_c1=O.prototype.Yd=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Qb(b,a)};Object.defineProperty(O.prototype,"m_c1",{get:O.prototype.ob,set:O.prototype.Yd}); +O.prototype.get_m_c2=O.prototype.pb=function(){return Kb(this.H)};O.prototype.set_m_c2=O.prototype.Zd=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Sb(b,a)};Object.defineProperty(O.prototype,"m_c2",{get:O.prototype.pb,set:O.prototype.Zd});O.prototype.__destroy__=function(){Gb(this.H)};function P(){throw"cannot construct a btVehicleRaycasterResult, no constructor in IDL";}P.prototype=Object.create(k.prototype);P.prototype.constructor=P;P.prototype.I=P;P.J={};d.btVehicleRaycasterResult=P; +P.prototype.get_m_hitPointInWorld=P.prototype.Vb=function(){return m(Yx(this.H),r)};P.prototype.set_m_hitPointInWorld=P.prototype.Ee=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ay(b,a)};Object.defineProperty(P.prototype,"m_hitPointInWorld",{get:P.prototype.Vb,set:P.prototype.Ee});P.prototype.get_m_hitNormalInWorld=P.prototype.Tb=function(){return m(Xx(this.H),r)};P.prototype.set_m_hitNormalInWorld=P.prototype.Ce=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);$x(b,a)}; +Object.defineProperty(P.prototype,"m_hitNormalInWorld",{get:P.prototype.Tb,set:P.prototype.Ce});P.prototype.get_m_distFraction=P.prototype.Eb=function(){return Wx(this.H)};P.prototype.set_m_distFraction=P.prototype.ne=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Zx(b,a)};Object.defineProperty(P.prototype,"m_distFraction",{get:P.prototype.Eb,set:P.prototype.ne});P.prototype.__destroy__=function(){Vx(this.H)}; +function YA(){throw"cannot construct a btVector3Array, no constructor in IDL";}YA.prototype=Object.create(k.prototype);YA.prototype.constructor=YA;YA.prototype.I=YA;YA.J={};d.btVector3Array=YA;YA.prototype.size=YA.prototype.size=function(){return lx(this.H)};YA.prototype.at=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return m(kx(b,a),r)};YA.prototype.__destroy__=function(){jx(this.H)};function tB(){throw"cannot construct a btConstraintSolver, no constructor in IDL";}tB.prototype=Object.create(k.prototype); +tB.prototype.constructor=tB;tB.prototype.I=tB;tB.J={};d.btConstraintSolver=tB;tB.prototype.__destroy__=function(){Ki(this.H)};function Q(a,b,e){a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);this.H=dr(a,b,e);l(Q)[this.H]=this}Q.prototype=Object.create(HA.prototype);Q.prototype.constructor=Q;Q.prototype.I=Q;Q.J={};d.btRaycastVehicle=Q; +Q.prototype.applyEngineForce=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);cr(e,a,b)};Q.prototype.setSteeringValue=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);wr(e,a,b)};Q.prototype.getWheelTransformWS=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return m(qr(b,a),u)}; +Q.prototype.updateWheelTransform=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);Dr(e,a,b)};Q.prototype.addWheel=function(a,b,e,f,h,n,B){var S=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);f&&"object"===typeof f&&(f=f.H);h&&"object"===typeof h&&(h=h.H);n&&"object"===typeof n&&(n=n.H);B&&"object"===typeof B&&(B=B.H);return m(br(S,a,b,e,f,h,n,B),L)};Q.prototype.getNumWheels=function(){return ir(this.H)}; +Q.prototype.getRigidBody=function(){return m(kr(this.H),I)};Q.prototype.getWheelInfo=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return m(pr(b,a),L)};Q.prototype.setBrake=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);tr(e,a,b)};Q.prototype.setCoordinateSystem=function(a,b,e){var f=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);ur(f,a,b,e)};Q.prototype.getCurrentSpeedKmHour=function(){return fr(this.H)}; +Q.prototype.getChassisWorldTransform=function(){return m(er(this.H),u)};Q.prototype.rayCast=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return rr(b,a)};Q.prototype.updateVehicle=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Cr(b,a)};Q.prototype.resetSuspension=function(){sr(this.H)};Q.prototype.getSteeringValue=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return lr(b,a)}; +Q.prototype.updateWheelTransformsWS=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);void 0===b?Er(e,a):Fr(e,a,b)};Q.prototype.setPitchControl=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);vr(b,a)};Q.prototype.updateSuspension=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Br(b,a)};Q.prototype.updateFriction=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Ar(b,a)};Q.prototype.getRightAxis=function(){return jr(this.H)}; +Q.prototype.getUpAxis=function(){return mr(this.H)};Q.prototype.getForwardAxis=function(){return gr(this.H)};Q.prototype.getForwardVector=function(){return m(hr(this.H),r)};Q.prototype.getUserConstraintType=function(){return or(this.H)};Q.prototype.setUserConstraintType=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);yr(b,a)};Q.prototype.setUserConstraintId=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);xr(b,a)};Q.prototype.getUserConstraintId=function(){return nr(this.H)}; +Q.prototype.updateAction=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);zr(e,a,b)};Q.prototype.__destroy__=function(){ar(this.H)};function uB(a){a&&"object"===typeof a&&(a=a.H);this.H=Aj(a);l(uB)[this.H]=this}uB.prototype=Object.create(KA.prototype);uB.prototype.constructor=uB;uB.prototype.I=uB;uB.J={};d.btCylinderShapeX=uB;uB.prototype.setMargin=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Fj(b,a)};uB.prototype.getMargin=function(){return Dj(this.H)}; +uB.prototype.setLocalScaling=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Ej(b,a)};uB.prototype.getLocalScaling=function(){return m(Cj(this.H),r)};uB.prototype.calculateLocalInertia=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);Bj(e,a,b)};uB.prototype.__destroy__=function(){zj(this.H)};function vB(a){a&&"object"===typeof a&&(a=a.H);this.H=Hj(a);l(vB)[this.H]=this}vB.prototype=Object.create(KA.prototype);vB.prototype.constructor=vB; +vB.prototype.I=vB;vB.J={};d.btCylinderShapeZ=vB;vB.prototype.setMargin=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Mj(b,a)};vB.prototype.getMargin=function(){return Kj(this.H)};vB.prototype.setLocalScaling=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Lj(b,a)};vB.prototype.getLocalScaling=function(){return m(Jj(this.H),r)};vB.prototype.calculateLocalInertia=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);Ij(e,a,b)}; +vB.prototype.__destroy__=function(){Gj(this.H)};function oB(){throw"cannot construct a btConvexPolyhedron, no constructor in IDL";}oB.prototype=Object.create(k.prototype);oB.prototype.constructor=oB;oB.prototype.I=oB;oB.J={};d.btConvexPolyhedron=oB;oB.prototype.get_m_vertices=oB.prototype.Yc=function(){return m(ij(this.H),YA)};oB.prototype.set_m_vertices=oB.prototype.If=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);kj(b,a)}; +Object.defineProperty(oB.prototype,"m_vertices",{get:oB.prototype.Yc,set:oB.prototype.If});oB.prototype.get_m_faces=oB.prototype.Jb=function(){return m(hj(this.H),wB)};oB.prototype.set_m_faces=oB.prototype.se=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);jj(b,a)};Object.defineProperty(oB.prototype,"m_faces",{get:oB.prototype.Jb,set:oB.prototype.se});oB.prototype.__destroy__=function(){gj(this.H)};function xB(){this.H=xt();l(xB)[this.H]=this}xB.prototype=Object.create(k.prototype); +xB.prototype.constructor=xB;xB.prototype.I=xB;xB.J={};d.btSequentialImpulseConstraintSolver=xB;xB.prototype.__destroy__=function(){wt(this.H)};function yB(){throw"cannot construct a tAnchorArray, no constructor in IDL";}yB.prototype=Object.create(k.prototype);yB.prototype.constructor=yB;yB.prototype.I=yB;yB.J={};d.tAnchorArray=yB;yB.prototype.size=yB.prototype.size=function(){return Tz(this.H)};yB.prototype.at=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return m(Pz(b,a),O)}; +yB.prototype.clear=yB.prototype.clear=function(){Qz(this.H)};yB.prototype.push_back=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Sz(b,a)};yB.prototype.pop_back=function(){Rz(this.H)};yB.prototype.__destroy__=function(){Oz(this.H)};function M(){throw"cannot construct a RaycastInfo, no constructor in IDL";}M.prototype=Object.create(k.prototype);M.prototype.constructor=M;M.prototype.I=M;M.J={};d.RaycastInfo=M; +M.prototype.get_m_contactNormalWS=M.prototype.vb=function(){return m(Ye(this.H),r)};M.prototype.set_m_contactNormalWS=M.prototype.ee=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ff(b,a)};Object.defineProperty(M.prototype,"m_contactNormalWS",{get:M.prototype.vb,set:M.prototype.ee});M.prototype.get_m_contactPointWS=M.prototype.wb=function(){return m(Ze(this.H),r)};M.prototype.set_m_contactPointWS=M.prototype.fe=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);gf(b,a)}; +Object.defineProperty(M.prototype,"m_contactPointWS",{get:M.prototype.wb,set:M.prototype.fe});M.prototype.get_m_suspensionLength=M.prototype.Lc=function(){return cf(this.H)};M.prototype.set_m_suspensionLength=M.prototype.vf=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);lf(b,a)};Object.defineProperty(M.prototype,"m_suspensionLength",{get:M.prototype.Lc,set:M.prototype.vf});M.prototype.get_m_hardPointWS=M.prototype.Pb=function(){return m(af(this.H),r)}; +M.prototype.set_m_hardPointWS=M.prototype.ye=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);jf(b,a)};Object.defineProperty(M.prototype,"m_hardPointWS",{get:M.prototype.Pb,set:M.prototype.ye});M.prototype.get_m_wheelDirectionWS=M.prototype.$c=function(){return m(ef(this.H),r)};M.prototype.set_m_wheelDirectionWS=M.prototype.Kf=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);nf(b,a)};Object.defineProperty(M.prototype,"m_wheelDirectionWS",{get:M.prototype.$c,set:M.prototype.Kf}); +M.prototype.get_m_wheelAxleWS=M.prototype.Zc=function(){return m(df(this.H),r)};M.prototype.set_m_wheelAxleWS=M.prototype.Jf=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);mf(b,a)};Object.defineProperty(M.prototype,"m_wheelAxleWS",{get:M.prototype.Zc,set:M.prototype.Jf});M.prototype.get_m_isInContact=M.prototype.ac=function(){return!!bf(this.H)};M.prototype.set_m_isInContact=M.prototype.Ke=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);kf(b,a)}; +Object.defineProperty(M.prototype,"m_isInContact",{get:M.prototype.ac,set:M.prototype.Ke});M.prototype.get_m_groundObject=M.prototype.Ob=function(){return $e(this.H)};M.prototype.set_m_groundObject=M.prototype.xe=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);hf(b,a)};Object.defineProperty(M.prototype,"m_groundObject",{get:M.prototype.Ob,set:M.prototype.xe});M.prototype.__destroy__=function(){Xe(this.H)}; +function zB(a,b,e){c.M();a&&"object"===typeof a&&(a=a.H);"object"==typeof b&&(b=sA(b));e&&"object"===typeof e&&(e=e.H);this.H=hp(a,b,e);l(zB)[this.H]=this}zB.prototype=Object.create(q.prototype);zB.prototype.constructor=zB;zB.prototype.I=zB;zB.J={};d.btMultiSphereShape=zB;zB.prototype.setLocalScaling=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);kp(b,a)};zB.prototype.getLocalScaling=function(){return m(jp(this.H),r)}; +zB.prototype.calculateLocalInertia=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);ip(e,a,b)};zB.prototype.__destroy__=function(){gp(this.H)};function R(a,b,e,f){c.M();a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);"object"==typeof f&&(f=sA(f));this.H=Hu(a,b,e,f);l(R)[this.H]=this}R.prototype=Object.create(t.prototype);R.prototype.constructor=R;R.prototype.I=R;R.J={};d.btSoftBody=R; +R.prototype.checkLink=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);return!!Ju(e,a,b)};R.prototype.checkFace=function(a,b,e){var f=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);return!!Iu(f,a,b,e)};R.prototype.appendMaterial=function(){return m(Eu(this.H),A)};R.prototype.appendNode=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);Fu(e,a,b)}; +R.prototype.appendLink=function(a,b,e,f){var h=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);f&&"object"===typeof f&&(f=f.H);Du(h,a,b,e,f)};R.prototype.appendFace=function(a,b,e,f){var h=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);f&&"object"===typeof f&&(f=f.H);Cu(h,a,b,e,f)}; +R.prototype.appendTetra=function(a,b,e,f,h){var n=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);f&&"object"===typeof f&&(f=f.H);h&&"object"===typeof h&&(h=h.H);Gu(n,a,b,e,f,h)};R.prototype.appendAnchor=function(a,b,e,f){var h=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);f&&"object"===typeof f&&(f=f.H);Bu(h,a,b,e,f)}; +R.prototype.addForce=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);void 0===b?zu(e,a):Au(e,a,b)};R.prototype.addAeroForceToNode=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);yu(e,a,b)};R.prototype.getTotalMass=function(){return Uu(this.H)};R.prototype.setTotalMass=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);sv(e,a,b)}; +R.prototype.setMass=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);pv(e,a,b)};R.prototype.transform=R.prototype.transform=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Av(b,a)};R.prototype.translate=R.prototype.translate=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Bv(b,a)};R.prototype.rotate=R.prototype.rotate=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);fv(b,a)}; +R.prototype.scale=R.prototype.scale=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);gv(b,a)};R.prototype.generateClusters=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);return void 0===b?Mu(e,a):Nu(e,a,b)};R.prototype.generateBendingConstraints=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);return Lu(e,a,b)};R.prototype.upcast=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return m(Cv(b,a),R)}; +R.prototype.setAnisotropicFriction=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);iv(e,a,b)};R.prototype.getCollisionShape=function(){return m(Qu(this.H),q)};R.prototype.setContactProcessingThreshold=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);nv(b,a)};R.prototype.setActivationState=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);hv(b,a)}; +R.prototype.forceActivationState=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Ku(b,a)};R.prototype.activate=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);void 0===a?wu(b):xu(b,a)};R.prototype.isActive=function(){return!!bv(this.H)};R.prototype.isKinematicObject=function(){return!!cv(this.H)};R.prototype.isStaticObject=function(){return!!dv(this.H)};R.prototype.isStaticOrKinematicObject=function(){return!!ev(this.H)};R.prototype.getRestitution=function(){return Su(this.H)}; +R.prototype.getFriction=function(){return Ru(this.H)};R.prototype.getRollingFriction=function(){return Tu(this.H)};R.prototype.setRestitution=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);qv(b,a)};R.prototype.setFriction=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ov(b,a)};R.prototype.setRollingFriction=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);rv(b,a)};R.prototype.getWorldTransform=function(){return m(Xu(this.H),u)};R.prototype.getCollisionFlags=function(){return Pu(this.H)}; +R.prototype.setCollisionFlags=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);lv(b,a)};R.prototype.setWorldTransform=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);vv(b,a)};R.prototype.setCollisionShape=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);mv(b,a)};R.prototype.setCcdMotionThreshold=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);jv(b,a)};R.prototype.setCcdSweptSphereRadius=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);kv(b,a)}; +R.prototype.getUserIndex=function(){return Vu(this.H)};R.prototype.setUserIndex=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);tv(b,a)};R.prototype.getUserPointer=function(){return m(Wu(this.H),yA)};R.prototype.setUserPointer=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);uv(b,a)};R.prototype.getBroadphaseHandle=function(){return m(Ou(this.H),zA)};R.prototype.get_m_cfg=R.prototype.qb=function(){return m(Zu(this.H),T)}; +R.prototype.set_m_cfg=R.prototype.$d=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);xv(b,a)};Object.defineProperty(R.prototype,"m_cfg",{get:R.prototype.qb,set:R.prototype.$d});R.prototype.get_m_nodes=R.prototype.pc=function(){return m(av(this.H),AB)};R.prototype.set_m_nodes=R.prototype.Ye=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);zv(b,a)};Object.defineProperty(R.prototype,"m_nodes",{get:R.prototype.pc,set:R.prototype.Ye}); +R.prototype.get_m_materials=R.prototype.lc=function(){return m($u(this.H),ZA)};R.prototype.set_m_materials=R.prototype.Ue=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);yv(b,a)};Object.defineProperty(R.prototype,"m_materials",{get:R.prototype.lc,set:R.prototype.Ue});R.prototype.get_m_anchors=R.prototype.gb=function(){return m(Yu(this.H),yB)};R.prototype.set_m_anchors=R.prototype.Qd=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);wv(b,a)}; +Object.defineProperty(R.prototype,"m_anchors",{get:R.prototype.gb,set:R.prototype.Qd});R.prototype.__destroy__=function(){vu(this.H)};function BB(){throw"cannot construct a btIntArray, no constructor in IDL";}BB.prototype=Object.create(k.prototype);BB.prototype.constructor=BB;BB.prototype.I=BB;BB.J={};d.btIntArray=BB;BB.prototype.size=BB.prototype.size=function(){return lo(this.H)};BB.prototype.at=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return ko(b,a)};BB.prototype.__destroy__=function(){jo(this.H)}; +function T(){throw"cannot construct a Config, no constructor in IDL";}T.prototype=Object.create(k.prototype);T.prototype.constructor=T;T.prototype.I=T;T.J={};d.Config=T;T.prototype.get_kVCF=T.prototype.Za=function(){return cd(this.H)};T.prototype.set_kVCF=T.prototype.Jd=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Bd(b,a)};Object.defineProperty(T.prototype,"kVCF",{get:T.prototype.Za,set:T.prototype.Jd});T.prototype.get_kDP=T.prototype.Ma=function(){return Rc(this.H)}; +T.prototype.set_kDP=T.prototype.wd=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);pd(b,a)};Object.defineProperty(T.prototype,"kDP",{get:T.prototype.Ma,set:T.prototype.wd});T.prototype.get_kDG=T.prototype.La=function(){return Qc(this.H)};T.prototype.set_kDG=T.prototype.vd=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);od(b,a)};Object.defineProperty(T.prototype,"kDG",{get:T.prototype.La,set:T.prototype.vd});T.prototype.get_kLF=T.prototype.Oa=function(){return Tc(this.H)}; +T.prototype.set_kLF=T.prototype.yd=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);rd(b,a)};Object.defineProperty(T.prototype,"kLF",{get:T.prototype.Oa,set:T.prototype.yd});T.prototype.get_kPR=T.prototype.Qa=function(){return Vc(this.H)};T.prototype.set_kPR=T.prototype.Ad=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);td(b,a)};Object.defineProperty(T.prototype,"kPR",{get:T.prototype.Qa,set:T.prototype.Ad});T.prototype.get_kVC=T.prototype.Ya=function(){return dd(this.H)}; +T.prototype.set_kVC=T.prototype.Id=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Cd(b,a)};Object.defineProperty(T.prototype,"kVC",{get:T.prototype.Ya,set:T.prototype.Id});T.prototype.get_kDF=T.prototype.Ka=function(){return Pc(this.H)};T.prototype.set_kDF=T.prototype.ud=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);nd(b,a)};Object.defineProperty(T.prototype,"kDF",{get:T.prototype.Ka,set:T.prototype.ud});T.prototype.get_kMT=T.prototype.Pa=function(){return Uc(this.H)}; +T.prototype.set_kMT=T.prototype.zd=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);sd(b,a)};Object.defineProperty(T.prototype,"kMT",{get:T.prototype.Pa,set:T.prototype.zd});T.prototype.get_kCHR=T.prototype.Ja=function(){return Oc(this.H)};T.prototype.set_kCHR=T.prototype.td=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);md(b,a)};Object.defineProperty(T.prototype,"kCHR",{get:T.prototype.Ja,set:T.prototype.td});T.prototype.get_kKHR=T.prototype.Na=function(){return Sc(this.H)}; +T.prototype.set_kKHR=T.prototype.xd=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);qd(b,a)};Object.defineProperty(T.prototype,"kKHR",{get:T.prototype.Na,set:T.prototype.xd});T.prototype.get_kSHR=T.prototype.Ra=function(){return Wc(this.H)};T.prototype.set_kSHR=T.prototype.Bd=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ud(b,a)};Object.defineProperty(T.prototype,"kSHR",{get:T.prototype.Ra,set:T.prototype.Bd});T.prototype.get_kAHR=T.prototype.Ia=function(){return Nc(this.H)}; +T.prototype.set_kAHR=T.prototype.sd=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ld(b,a)};Object.defineProperty(T.prototype,"kAHR",{get:T.prototype.Ia,set:T.prototype.sd});T.prototype.get_kSRHR_CL=T.prototype.Ua=function(){return Zc(this.H)};T.prototype.set_kSRHR_CL=T.prototype.Ed=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);xd(b,a)};Object.defineProperty(T.prototype,"kSRHR_CL",{get:T.prototype.Ua,set:T.prototype.Ed});T.prototype.get_kSKHR_CL=T.prototype.Sa=function(){return Xc(this.H)}; +T.prototype.set_kSKHR_CL=T.prototype.Cd=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);vd(b,a)};Object.defineProperty(T.prototype,"kSKHR_CL",{get:T.prototype.Sa,set:T.prototype.Cd});T.prototype.get_kSSHR_CL=T.prototype.Wa=function(){return ad(this.H)};T.prototype.set_kSSHR_CL=T.prototype.Gd=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);zd(b,a)};Object.defineProperty(T.prototype,"kSSHR_CL",{get:T.prototype.Wa,set:T.prototype.Gd});T.prototype.get_kSR_SPLT_CL=T.prototype.Va=function(){return $c(this.H)}; +T.prototype.set_kSR_SPLT_CL=T.prototype.Fd=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);yd(b,a)};Object.defineProperty(T.prototype,"kSR_SPLT_CL",{get:T.prototype.Va,set:T.prototype.Fd});T.prototype.get_kSK_SPLT_CL=T.prototype.Ta=function(){return Yc(this.H)};T.prototype.set_kSK_SPLT_CL=T.prototype.Dd=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);wd(b,a)};Object.defineProperty(T.prototype,"kSK_SPLT_CL",{get:T.prototype.Ta,set:T.prototype.Dd}); +T.prototype.get_kSS_SPLT_CL=T.prototype.Xa=function(){return bd(this.H)};T.prototype.set_kSS_SPLT_CL=T.prototype.Hd=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Ad(b,a)};Object.defineProperty(T.prototype,"kSS_SPLT_CL",{get:T.prototype.Xa,set:T.prototype.Hd});T.prototype.get_maxvolume=T.prototype.gd=function(){return ed(this.H)};T.prototype.set_maxvolume=T.prototype.Qf=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Dd(b,a)}; +Object.defineProperty(T.prototype,"maxvolume",{get:T.prototype.gd,set:T.prototype.Qf});T.prototype.get_timescale=T.prototype.jd=function(){return gd(this.H)};T.prototype.set_timescale=T.prototype.Sf=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Fd(b,a)};Object.defineProperty(T.prototype,"timescale",{get:T.prototype.jd,set:T.prototype.Sf});T.prototype.get_viterations=T.prototype.kd=function(){return hd(this.H)}; +T.prototype.set_viterations=T.prototype.Tf=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Gd(b,a)};Object.defineProperty(T.prototype,"viterations",{get:T.prototype.kd,set:T.prototype.Tf});T.prototype.get_piterations=T.prototype.hd=function(){return fd(this.H)};T.prototype.set_piterations=T.prototype.Rf=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Ed(b,a)};Object.defineProperty(T.prototype,"piterations",{get:T.prototype.hd,set:T.prototype.Rf}); +T.prototype.get_diterations=T.prototype.Ha=function(){return Mc(this.H)};T.prototype.set_diterations=T.prototype.rd=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);kd(b,a)};Object.defineProperty(T.prototype,"diterations",{get:T.prototype.Ha,set:T.prototype.rd});T.prototype.get_citerations=T.prototype.Fa=function(){return Kc(this.H)};T.prototype.set_citerations=T.prototype.pd=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);id(b,a)}; +Object.defineProperty(T.prototype,"citerations",{get:T.prototype.Fa,set:T.prototype.pd});T.prototype.get_collisions=T.prototype.Ga=function(){return Lc(this.H)};T.prototype.set_collisions=T.prototype.qd=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);jd(b,a)};Object.defineProperty(T.prototype,"collisions",{get:T.prototype.Ga,set:T.prototype.qd});T.prototype.__destroy__=function(){Jc(this.H)};function Node(){throw"cannot construct a Node, no constructor in IDL";}Node.prototype=Object.create(k.prototype); +Node.prototype.constructor=Node;Node.prototype.I=Node;Node.J={};d.Node=Node;Node.prototype.get_m_x=Node.prototype.ed=function(){return m(Fe(this.H),r)};Node.prototype.set_m_x=Node.prototype.Pf=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Me(b,a)};Object.defineProperty(Node.prototype,"m_x",{get:Node.prototype.ed,set:Node.prototype.Pf});Node.prototype.get_m_q=Node.prototype.wc=function(){return m(De(this.H),r)}; +Node.prototype.set_m_q=Node.prototype.ef=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Ke(b,a)};Object.defineProperty(Node.prototype,"m_q",{get:Node.prototype.wc,set:Node.prototype.ef});Node.prototype.get_m_v=Node.prototype.Xc=function(){return m(Ee(this.H),r)};Node.prototype.set_m_v=Node.prototype.Hf=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Le(b,a)};Object.defineProperty(Node.prototype,"m_v",{get:Node.prototype.Xc,set:Node.prototype.Hf}); +Node.prototype.get_m_f=Node.prototype.Ib=function(){return m(Ae(this.H),r)};Node.prototype.set_m_f=Node.prototype.re=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);He(b,a)};Object.defineProperty(Node.prototype,"m_f",{get:Node.prototype.Ib,set:Node.prototype.re});Node.prototype.get_m_n=Node.prototype.nc=function(){return m(Ce(this.H),r)};Node.prototype.set_m_n=Node.prototype.We=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Je(b,a)}; +Object.defineProperty(Node.prototype,"m_n",{get:Node.prototype.nc,set:Node.prototype.We});Node.prototype.get_m_im=Node.prototype.Xb=function(){return Be(this.H)};Node.prototype.set_m_im=Node.prototype.Ge=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Ie(b,a)};Object.defineProperty(Node.prototype,"m_im",{get:Node.prototype.Xb,set:Node.prototype.Ge});Node.prototype.get_m_area=Node.prototype.jb=function(){return ze(this.H)}; +Node.prototype.set_m_area=Node.prototype.Td=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Ge(b,a)};Object.defineProperty(Node.prototype,"m_area",{get:Node.prototype.jb,set:Node.prototype.Td});Node.prototype.__destroy__=function(){ye(this.H)};function CB(){this.H=vn();l(CB)[this.H]=this}CB.prototype=Object.create(k.prototype);CB.prototype.constructor=CB;CB.prototype.I=CB;CB.J={};d.btGhostPairCallback=CB;CB.prototype.__destroy__=function(){un(this.H)}; +function DB(){throw"cannot construct a btOverlappingPairCallback, no constructor in IDL";}DB.prototype=Object.create(k.prototype);DB.prototype.constructor=DB;DB.prototype.I=DB;DB.J={};d.btOverlappingPairCallback=DB;DB.prototype.__destroy__=function(){op(this.H)};function U(a,b,e,f){a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);f&&"object"===typeof f&&(f=f.H);this.H=void 0===f?no(a,b,e):oo(a,b,e,f);l(U)[this.H]=this}U.prototype=Object.create(HA.prototype); +U.prototype.constructor=U;U.prototype.I=U;U.J={};d.btKinematicCharacterController=U;U.prototype.setUpAxis=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Co(b,a)};U.prototype.setWalkDirection=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Go(b,a)};U.prototype.setVelocityForTimeInterval=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);Fo(e,a,b)};U.prototype.warp=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Io(b,a)}; +U.prototype.preStep=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);wo(b,a)};U.prototype.playerStep=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);vo(e,a,b)};U.prototype.setFallSpeed=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);xo(b,a)};U.prototype.setJumpSpeed=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);zo(b,a)};U.prototype.setMaxJumpHeight=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Ao(b,a)}; +U.prototype.canJump=function(){return!!po(this.H)};U.prototype.jump=function(){to(this.H)};U.prototype.setGravity=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);yo(b,a)};U.prototype.getGravity=function(){return ro(this.H)};U.prototype.setMaxSlope=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Bo(b,a)};U.prototype.getMaxSlope=function(){return so(this.H)};U.prototype.getGhostObject=function(){return m(qo(this.H),V)}; +U.prototype.setUseGhostSweepTest=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Eo(b,a)};U.prototype.onGround=function(){return!!uo(this.H)};U.prototype.setUpInterpolate=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Do(b,a)};U.prototype.updateAction=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);Ho(e,a,b)};U.prototype.__destroy__=function(){mo(this.H)};function EB(){throw"cannot construct a btSoftBodyArray, no constructor in IDL";} +EB.prototype=Object.create(k.prototype);EB.prototype.constructor=EB;EB.prototype.I=EB;EB.J={};d.btSoftBodyArray=EB;EB.prototype.size=EB.prototype.size=function(){return Rt(this.H)};EB.prototype.at=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return m(Qt(b,a),R)};EB.prototype.__destroy__=function(){Pt(this.H)};function wB(){throw"cannot construct a btFaceArray, no constructor in IDL";}wB.prototype=Object.create(k.prototype);wB.prototype.constructor=wB;wB.prototype.I=wB;wB.J={}; +d.btFaceArray=wB;wB.prototype.size=wB.prototype.size=function(){return Ul(this.H)};wB.prototype.at=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return m(Tl(b,a),FB)};wB.prototype.__destroy__=function(){Sl(this.H)};function GB(a,b){a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);this.H=yw(a,b);l(GB)[this.H]=this}GB.prototype=Object.create(CA.prototype);GB.prototype.constructor=GB;GB.prototype.I=GB;GB.J={};d.btStaticPlaneShape=GB; +GB.prototype.setLocalScaling=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Bw(b,a)};GB.prototype.getLocalScaling=function(){return m(Aw(this.H),r)};GB.prototype.calculateLocalInertia=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);zw(e,a,b)};GB.prototype.__destroy__=function(){xw(this.H)};function vA(){throw"cannot construct a btOverlappingPairCache, no constructor in IDL";}vA.prototype=Object.create(k.prototype);vA.prototype.constructor=vA; +vA.prototype.I=vA;vA.J={};d.btOverlappingPairCache=vA;vA.prototype.setInternalGhostPairCallback=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);np(b,a)};vA.prototype.getNumOverlappingPairs=function(){return mp(this.H)};vA.prototype.__destroy__=function(){lp(this.H)};function cB(){throw"cannot construct a btIndexedMesh, no constructor in IDL";}cB.prototype=Object.create(k.prototype);cB.prototype.constructor=cB;cB.prototype.I=cB;cB.J={};d.btIndexedMesh=cB; +cB.prototype.get_m_numTriangles=cB.prototype.sc=function(){return ho(this.H)};cB.prototype.set_m_numTriangles=cB.prototype.af=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);io(b,a)};Object.defineProperty(cB.prototype,"m_numTriangles",{get:cB.prototype.sc,set:cB.prototype.af});cB.prototype.__destroy__=function(){go(this.H)}; +function W(a,b,e,f,h){a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);f&&"object"===typeof f&&(f=f.H);h&&"object"===typeof h&&(h=h.H);this.H=Nv(a,b,e,f,h);l(W)[this.H]=this}W.prototype=Object.create(x.prototype);W.prototype.constructor=W;W.prototype.I=W;W.J={};d.btSoftRigidDynamicsWorld=W;W.prototype.addSoftBody=function(a,b,e){var f=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);Mv(f,a,b,e)}; +W.prototype.removeSoftBody=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);gw(b,a)};W.prototype.removeCollisionObject=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);dw(b,a)};W.prototype.getWorldInfo=function(){return m(aw(this.H),J)};W.prototype.getSoftBodyArray=function(){return m(Zv(this.H),EB)};W.prototype.getDispatcher=function(){return m(Wv(this.H),uA)}; +W.prototype.rayTest=function(a,b,e){var f=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);bw(f,a,b,e)};W.prototype.getPairCache=function(){return m(Yv(this.H),vA)};W.prototype.getDispatchInfo=function(){return m(Vv(this.H),p)};W.prototype.addCollisionObject=function(a,b,e){var f=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);void 0===b?Fv(f,a):void 0===e?Gv(f,a,b):Hv(f,a,b,e)}; +W.prototype.getBroadphase=function(){return m(Tv(this.H),wA)};W.prototype.convexSweepTest=function(a,b,e,f,h){var n=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);f&&"object"===typeof f&&(f=f.H);h&&"object"===typeof h&&(h=h.H);Qv(n,a,b,e,f,h)};W.prototype.contactPairTest=function(a,b,e){var f=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);Ov(f,a,b,e)}; +W.prototype.contactTest=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);Pv(e,a,b)};W.prototype.updateSingleAabb=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);pw(b,a)};W.prototype.setDebugDrawer=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);kw(b,a)};W.prototype.getDebugDrawer=function(){return m(Uv(this.H),xA)};W.prototype.debugDrawWorld=function(){Sv(this.H)}; +W.prototype.debugDrawObject=function(a,b,e){var f=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);Rv(f,a,b,e)};W.prototype.setGravity=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);lw(b,a)};W.prototype.getGravity=function(){return m(Xv(this.H),r)}; +W.prototype.addRigidBody=function(a,b,e){var f=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);void 0===b?Kv(f,a):void 0===e?_emscripten_bind_btSoftRigidDynamicsWorld_addRigidBody_2(f,a,b):Lv(f,a,b,e)};W.prototype.removeRigidBody=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);fw(b,a)};W.prototype.addConstraint=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);void 0===b?Iv(e,a):Jv(e,a,b)}; +W.prototype.removeConstraint=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ew(b,a)};W.prototype.stepSimulation=function(a,b,e){var f=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);return void 0===b?mw(f,a):void 0===e?nw(f,a,b):ow(f,a,b,e)};W.prototype.setContactAddedCallback=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);hw(b,a)}; +W.prototype.setContactProcessedCallback=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);jw(b,a)};W.prototype.setContactDestroyedCallback=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);iw(b,a)};W.prototype.addAction=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Ev(b,a)};W.prototype.removeAction=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);cw(b,a)};W.prototype.getSolverInfo=function(){return m($v(this.H),v)};W.prototype.__destroy__=function(){Dv(this.H)}; +function HB(a,b,e,f){a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);f&&"object"===typeof f&&(f=f.H);this.H=am(a,b,e,f);l(HB)[this.H]=this}HB.prototype=Object.create(BA.prototype);HB.prototype.constructor=HB;HB.prototype.I=HB;HB.J={};d.btFixedConstraint=HB;HB.prototype.enableFeedback=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);bm(b,a)};HB.prototype.getBreakingImpulseThreshold=function(){return cm(this.H)}; +HB.prototype.setBreakingImpulseThreshold=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);em(b,a)};HB.prototype.getParam=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);return dm(e,a,b)};HB.prototype.setParam=function(a,b,e){var f=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);fm(f,a,b,e)};HB.prototype.__destroy__=function(){$l(this.H)}; +function u(a,b){a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);this.H=void 0===a?Fw():void 0===b?_emscripten_bind_btTransform_btTransform_1(a):Gw(a,b);l(u)[this.H]=this}u.prototype=Object.create(k.prototype);u.prototype.constructor=u;u.prototype.I=u;u.J={};d.btTransform=u;u.prototype.setIdentity=function(){Nw(this.H)};u.prototype.setOrigin=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Ow(b,a)}; +u.prototype.setRotation=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Pw(b,a)};u.prototype.getOrigin=function(){return m(Iw(this.H),r)};u.prototype.getRotation=function(){return m(Jw(this.H),X)};u.prototype.getBasis=function(){return m(Hw(this.H),SA)};u.prototype.setFromOpenGLMatrix=function(a){var b=this.H;c.M();"object"==typeof a&&(a=sA(a));Mw(b,a)};u.prototype.inverse=u.prototype.inverse=function(){return m(Kw(this.H),u)}; +u.prototype.op_mul=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return m(Lw(b,a),u)};u.prototype.__destroy__=function(){Ew(this.H)};function Y(a,b){a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);this.H=nc(a,b);l(Y)[this.H]=this}Y.prototype=Object.create(z.prototype);Y.prototype.constructor=Y;Y.prototype.I=Y;Y.J={};d.ClosestRayResultCallback=Y;Y.prototype.hasHit=function(){return!!xc(this.H)}; +Y.prototype.get_m_rayFromWorld=Y.prototype.ma=function(){return m(vc(this.H),r)};Y.prototype.set_m_rayFromWorld=Y.prototype.ta=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Ec(b,a)};Object.defineProperty(Y.prototype,"m_rayFromWorld",{get:Y.prototype.ma,set:Y.prototype.ta});Y.prototype.get_m_rayToWorld=Y.prototype.na=function(){return m(wc(this.H),r)};Y.prototype.set_m_rayToWorld=Y.prototype.ua=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Fc(b,a)}; +Object.defineProperty(Y.prototype,"m_rayToWorld",{get:Y.prototype.na,set:Y.prototype.ua});Y.prototype.get_m_hitNormalWorld=Y.prototype.U=function(){return m(tc(this.H),r)};Y.prototype.set_m_hitNormalWorld=Y.prototype.da=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Cc(b,a)};Object.defineProperty(Y.prototype,"m_hitNormalWorld",{get:Y.prototype.U,set:Y.prototype.da});Y.prototype.get_m_hitPointWorld=Y.prototype.V=function(){return m(uc(this.H),r)}; +Y.prototype.set_m_hitPointWorld=Y.prototype.ea=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Dc(b,a)};Object.defineProperty(Y.prototype,"m_hitPointWorld",{get:Y.prototype.V,set:Y.prototype.ea});Y.prototype.get_m_collisionFilterGroup=Y.prototype.K=function(){return qc(this.H)};Y.prototype.set_m_collisionFilterGroup=Y.prototype.N=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);zc(b,a)};Object.defineProperty(Y.prototype,"m_collisionFilterGroup",{get:Y.prototype.K,set:Y.prototype.N}); +Y.prototype.get_m_collisionFilterMask=Y.prototype.L=function(){return rc(this.H)};Y.prototype.set_m_collisionFilterMask=Y.prototype.O=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Ac(b,a)};Object.defineProperty(Y.prototype,"m_collisionFilterMask",{get:Y.prototype.L,set:Y.prototype.O});Y.prototype.get_m_closestHitFraction=Y.prototype.P=function(){return pc(this.H)};Y.prototype.set_m_closestHitFraction=Y.prototype.R=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);yc(b,a)}; +Object.defineProperty(Y.prototype,"m_closestHitFraction",{get:Y.prototype.P,set:Y.prototype.R});Y.prototype.get_m_collisionObject=Y.prototype.S=function(){return m(sc(this.H),t)};Y.prototype.set_m_collisionObject=Y.prototype.aa=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Bc(b,a)};Object.defineProperty(Y.prototype,"m_collisionObject",{get:Y.prototype.S,set:Y.prototype.aa});Y.prototype.__destroy__=function(){oc(this.H)}; +function IB(a){a&&"object"===typeof a&&(a=a.H);this.H=void 0===a?au():bu(a);l(IB)[this.H]=this}IB.prototype=Object.create(EA.prototype);IB.prototype.constructor=IB;IB.prototype.I=IB;IB.J={};d.btSoftBodyRigidBodyCollisionConfiguration=IB;IB.prototype.__destroy__=function(){$t(this.H)};function JB(){this.H=Gc();l(JB)[this.H]=this}JB.prototype=Object.create(QA.prototype);JB.prototype.constructor=JB;JB.prototype.I=JB;JB.J={};d.ConcreteContactResultCallback=JB; +JB.prototype.addSingleResult=function(a,b,e,f,h,n,B){var S=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);f&&"object"===typeof f&&(f=f.H);h&&"object"===typeof h&&(h=h.H);n&&"object"===typeof n&&(n=n.H);B&&"object"===typeof B&&(B=B.H);return Ic(S,a,b,e,f,h,n,B)};JB.prototype.__destroy__=function(){Hc(this.H)}; +function KB(a,b,e){a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);this.H=void 0===e?Lf(a,b):Mf(a,b,e);l(KB)[this.H]=this}KB.prototype=Object.create(FA.prototype);KB.prototype.constructor=KB;KB.prototype.I=KB;KB.J={};d.btBvhTriangleMeshShape=KB;KB.prototype.setLocalScaling=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Pf(b,a)};KB.prototype.getLocalScaling=function(){return m(Of(this.H),r)}; +KB.prototype.calculateLocalInertia=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);Nf(e,a,b)};KB.prototype.__destroy__=function(){Kf(this.H)};function XA(){throw"cannot construct a btConstCollisionObjectArray, no constructor in IDL";}XA.prototype=Object.create(k.prototype);XA.prototype.constructor=XA;XA.prototype.I=XA;XA.J={};d.btConstCollisionObjectArray=XA;XA.prototype.size=XA.prototype.size=function(){return Bi(this.H)}; +XA.prototype.at=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return m(Ai(b,a),t)};XA.prototype.__destroy__=function(){zi(this.H)};function LB(a,b,e,f,h){a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);f&&"object"===typeof f&&(f=f.H);h&&"object"===typeof h&&(h=h.H);this.H=void 0===f?Et(a,b,e):void 0===h?_emscripten_bind_btSliderConstraint_btSliderConstraint_4(a,b,e,f):Ft(a,b,e,f,h);l(LB)[this.H]=this}LB.prototype=Object.create(BA.prototype); +LB.prototype.constructor=LB;LB.prototype.I=LB;LB.J={};d.btSliderConstraint=LB;LB.prototype.setLowerLinLimit=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Lt(b,a)};LB.prototype.setUpperLinLimit=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Ot(b,a)};LB.prototype.setLowerAngLimit=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Kt(b,a)};LB.prototype.setUpperAngLimit=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Nt(b,a)}; +LB.prototype.enableFeedback=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Gt(b,a)};LB.prototype.getBreakingImpulseThreshold=function(){return Ht(this.H)};LB.prototype.setBreakingImpulseThreshold=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Jt(b,a)};LB.prototype.getParam=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);return It(e,a,b)}; +LB.prototype.setParam=function(a,b,e){var f=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);Mt(f,a,b,e)};LB.prototype.__destroy__=function(){Dt(this.H)};function V(){this.H=sp();l(V)[this.H]=this}V.prototype=Object.create(w.prototype);V.prototype.constructor=V;V.prototype.I=V;V.J={};d.btPairCachingGhostObject=V; +V.prototype.setAnisotropicFriction=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);Kp(e,a,b)};V.prototype.getCollisionShape=function(){return m(wp(this.H),q)};V.prototype.setContactProcessingThreshold=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Pp(b,a)};V.prototype.setActivationState=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Jp(b,a)}; +V.prototype.forceActivationState=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);tp(b,a)};V.prototype.activate=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);void 0===a?qp(b):rp(b,a)};V.prototype.isActive=function(){return!!Fp(this.H)};V.prototype.isKinematicObject=function(){return!!Gp(this.H)};V.prototype.isStaticObject=function(){return!!Hp(this.H)};V.prototype.isStaticOrKinematicObject=function(){return!!Ip(this.H)};V.prototype.getRestitution=function(){return Ap(this.H)}; +V.prototype.getFriction=function(){return xp(this.H)};V.prototype.getRollingFriction=function(){return Bp(this.H)};V.prototype.setRestitution=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Rp(b,a)};V.prototype.setFriction=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Qp(b,a)};V.prototype.setRollingFriction=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Sp(b,a)};V.prototype.getWorldTransform=function(){return m(Ep(this.H),u)};V.prototype.getCollisionFlags=function(){return vp(this.H)}; +V.prototype.setCollisionFlags=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Np(b,a)};V.prototype.setWorldTransform=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Vp(b,a)};V.prototype.setCollisionShape=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Op(b,a)};V.prototype.setCcdMotionThreshold=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Lp(b,a)};V.prototype.setCcdSweptSphereRadius=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Mp(b,a)}; +V.prototype.getUserIndex=function(){return Cp(this.H)};V.prototype.setUserIndex=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Tp(b,a)};V.prototype.getUserPointer=function(){return m(Dp(this.H),yA)};V.prototype.setUserPointer=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Up(b,a)};V.prototype.getBroadphaseHandle=function(){return m(up(this.H),zA)};V.prototype.getNumOverlappingObjects=function(){return yp(this.H)}; +V.prototype.getOverlappingObject=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return m(zp(b,a),t)};V.prototype.__destroy__=function(){pp(this.H)};function E(){throw"cannot construct a btManifoldPoint, no constructor in IDL";}E.prototype=Object.create(k.prototype);E.prototype.constructor=E;E.prototype.I=E;E.J={};d.btManifoldPoint=E;E.prototype.getPositionWorldOnA=function(){return m(Mo(this.H),r)};E.prototype.getPositionWorldOnB=function(){return m(No(this.H),r)}; +E.prototype.getAppliedImpulse=function(){return Ko(this.H)};E.prototype.getDistance=function(){return Lo(this.H)};E.prototype.get_m_localPointA=E.prototype.ic=function(){return m(Oo(this.H),r)};E.prototype.set_m_localPointA=E.prototype.Re=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Uo(b,a)};Object.defineProperty(E.prototype,"m_localPointA",{get:E.prototype.ic,set:E.prototype.Re});E.prototype.get_m_localPointB=E.prototype.jc=function(){return m(Po(this.H),r)}; +E.prototype.set_m_localPointB=E.prototype.Se=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Vo(b,a)};Object.defineProperty(E.prototype,"m_localPointB",{get:E.prototype.jc,set:E.prototype.Se});E.prototype.get_m_positionWorldOnB=E.prototype.vc=function(){return m(So(this.H),r)};E.prototype.set_m_positionWorldOnB=E.prototype.df=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Yo(b,a)};Object.defineProperty(E.prototype,"m_positionWorldOnB",{get:E.prototype.vc,set:E.prototype.df}); +E.prototype.get_m_positionWorldOnA=E.prototype.uc=function(){return m(Ro(this.H),r)};E.prototype.set_m_positionWorldOnA=E.prototype.cf=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Xo(b,a)};Object.defineProperty(E.prototype,"m_positionWorldOnA",{get:E.prototype.uc,set:E.prototype.cf});E.prototype.get_m_normalWorldOnB=E.prototype.qc=function(){return m(Qo(this.H),r)};E.prototype.set_m_normalWorldOnB=E.prototype.Ze=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Wo(b,a)}; +Object.defineProperty(E.prototype,"m_normalWorldOnB",{get:E.prototype.qc,set:E.prototype.Ze});E.prototype.get_m_userPersistentData=E.prototype.Wc=function(){return To(this.H)};E.prototype.set_m_userPersistentData=E.prototype.Gf=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Zo(b,a)};Object.defineProperty(E.prototype,"m_userPersistentData",{get:E.prototype.Wc,set:E.prototype.Gf});E.prototype.__destroy__=function(){Jo(this.H)}; +function MB(a,b,e,f){a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);f&&"object"===typeof f&&(f=f.H);this.H=void 0===e?cq(a,b):void 0===f?_emscripten_bind_btPoint2PointConstraint_btPoint2PointConstraint_3(a,b,e):dq(a,b,e,f);l(MB)[this.H]=this}MB.prototype=Object.create(BA.prototype);MB.prototype.constructor=MB;MB.prototype.I=MB;MB.J={};d.btPoint2PointConstraint=MB;MB.prototype.setPivotA=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);mq(b,a)}; +MB.prototype.setPivotB=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);nq(b,a)};MB.prototype.getPivotInA=function(){return m(hq(this.H),r)};MB.prototype.getPivotInB=function(){return m(iq(this.H),r)};MB.prototype.enableFeedback=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);eq(b,a)};MB.prototype.getBreakingImpulseThreshold=function(){return fq(this.H)};MB.prototype.setBreakingImpulseThreshold=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);kq(b,a)}; +MB.prototype.getParam=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);return gq(e,a,b)};MB.prototype.setParam=function(a,b,e){var f=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);lq(f,a,b,e)};MB.prototype.get_m_setting=MB.prototype.Cc=function(){return m(jq(this.H),H)};MB.prototype.set_m_setting=MB.prototype.lf=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);oq(b,a)}; +Object.defineProperty(MB.prototype,"m_setting",{get:MB.prototype.Cc,set:MB.prototype.lf});MB.prototype.__destroy__=function(){bq(this.H)};function NB(){this.H=Zt();l(NB)[this.H]=this}NB.prototype=Object.create(k.prototype);NB.prototype.constructor=NB;NB.prototype.I=NB;NB.J={};d.btSoftBodyHelpers=NB; +NB.prototype.CreateRope=function(a,b,e,f,h){var n=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);f&&"object"===typeof f&&(f=f.H);h&&"object"===typeof h&&(h=h.H);return m(Xt(n,a,b,e,f,h),R)}; +NB.prototype.CreatePatch=function(a,b,e,f,h,n,B,S,ja){var Rb=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);f&&"object"===typeof f&&(f=f.H);h&&"object"===typeof h&&(h=h.H);n&&"object"===typeof n&&(n=n.H);B&&"object"===typeof B&&(B=B.H);S&&"object"===typeof S&&(S=S.H);ja&&"object"===typeof ja&&(ja=ja.H);return m(Wt(Rb,a,b,e,f,h,n,B,S,ja),R)}; +NB.prototype.CreatePatchUV=function(a,b,e,f,h,n,B,S,ja,Rb){var UB=this.H;c.M();a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);f&&"object"===typeof f&&(f=f.H);h&&"object"===typeof h&&(h=h.H);n&&"object"===typeof n&&(n=n.H);B&&"object"===typeof B&&(B=B.H);S&&"object"===typeof S&&(S=S.H);ja&&"object"===typeof ja&&(ja=ja.H);"object"==typeof Rb&&(Rb=sA(Rb));return m(Vt(UB,a,b,e,f,h,n,B,S,ja,Rb),R)}; +NB.prototype.CreateEllipsoid=function(a,b,e,f){var h=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);f&&"object"===typeof f&&(f=f.H);return m(St(h,a,b,e,f),R)}; +NB.prototype.CreateFromTriMesh=function(a,b,e,f,h){var n=this.H;c.M();a&&"object"===typeof a&&(a=a.H);"object"==typeof b&&(b=sA(b));if("object"==typeof e&&"object"===typeof e){var B=c.ja(e,Ca);c.copy(e,Ca,B);e=B}f&&"object"===typeof f&&(f=f.H);h&&"object"===typeof h&&(h=h.H);return m(Ut(n,a,b,e,f,h),R)}; +NB.prototype.CreateFromConvexHull=function(a,b,e,f){var h=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);f&&"object"===typeof f&&(f=f.H);return m(Tt(h,a,b,e,f),R)};NB.prototype.__destroy__=function(){Yt(this.H)};function zA(){throw"cannot construct a btBroadphaseProxy, no constructor in IDL";}zA.prototype=Object.create(k.prototype);zA.prototype.constructor=zA;zA.prototype.I=zA;zA.J={};d.btBroadphaseProxy=zA; +zA.prototype.get_m_collisionFilterGroup=zA.prototype.K=function(){return Gf(this.H)};zA.prototype.set_m_collisionFilterGroup=zA.prototype.N=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);If(b,a)};Object.defineProperty(zA.prototype,"m_collisionFilterGroup",{get:zA.prototype.K,set:zA.prototype.N});zA.prototype.get_m_collisionFilterMask=zA.prototype.L=function(){return Hf(this.H)}; +zA.prototype.set_m_collisionFilterMask=zA.prototype.O=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Jf(b,a)};Object.defineProperty(zA.prototype,"m_collisionFilterMask",{get:zA.prototype.L,set:zA.prototype.O});zA.prototype.__destroy__=function(){Ff(this.H)};function AB(){throw"cannot construct a tNodeArray, no constructor in IDL";}AB.prototype=Object.create(k.prototype);AB.prototype.constructor=AB;AB.prototype.I=AB;AB.J={};d.tNodeArray=AB;AB.prototype.size=AB.prototype.size=function(){return Zz(this.H)}; +AB.prototype.at=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return m(Yz(b,a),Node)};AB.prototype.__destroy__=function(){Xz(this.H)};function OB(a){a&&"object"===typeof a&&(a=a.H);this.H=xf(a);l(OB)[this.H]=this}OB.prototype=Object.create(q.prototype);OB.prototype.constructor=OB;OB.prototype.I=OB;OB.J={};d.btBoxShape=OB;OB.prototype.setMargin=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Cf(b,a)};OB.prototype.getMargin=function(){return Af(this.H)}; +OB.prototype.setLocalScaling=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Bf(b,a)};OB.prototype.getLocalScaling=function(){return m(zf(this.H),r)};OB.prototype.calculateLocalInertia=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);yf(e,a,b)};OB.prototype.__destroy__=function(){wf(this.H)};function FB(){throw"cannot construct a btFace, no constructor in IDL";}FB.prototype=Object.create(k.prototype);FB.prototype.constructor=FB;FB.prototype.I=FB; +FB.J={};d.btFace=FB;FB.prototype.get_m_indices=FB.prototype.Zb=function(){return m(Wl(this.H),BB)};FB.prototype.set_m_indices=FB.prototype.Ie=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Yl(b,a)};Object.defineProperty(FB.prototype,"m_indices",{get:FB.prototype.Zb,set:FB.prototype.Ie});FB.prototype.get_m_plane=FB.prototype.tc=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return Xl(b,a)}; +FB.prototype.set_m_plane=FB.prototype.bf=function(a,b){var e=this.H;c.M();a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);Zl(e,a,b)};Object.defineProperty(FB.prototype,"m_plane",{get:FB.prototype.tc,set:FB.prototype.bf});FB.prototype.__destroy__=function(){Vl(this.H)};function PB(){this.H=Rd();l(PB)[this.H]=this}PB.prototype=Object.create(xA.prototype);PB.prototype.constructor=PB;PB.prototype.I=PB;PB.J={};d.DebugDrawer=PB; +PB.prototype.drawLine=function(a,b,e){var f=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);Vd(f,a,b,e)};PB.prototype.drawContactPoint=function(a,b,e,f,h){var n=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);f&&"object"===typeof f&&(f=f.H);h&&"object"===typeof h&&(h=h.H);Ud(n,a,b,e,f,h)}; +PB.prototype.reportErrorWarning=function(a){var b=this.H;c.M();a=a&&"object"===typeof a?a.H:rA(a);Xd(b,a)};PB.prototype.draw3dText=function(a,b){var e=this.H;c.M();a&&"object"===typeof a&&(a=a.H);b=b&&"object"===typeof b?b.H:rA(b);Td(e,a,b)};PB.prototype.setDebugMode=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Yd(b,a)};PB.prototype.getDebugMode=function(){return Wd(this.H)};PB.prototype.__destroy__=function(){Sd(this.H)}; +function QB(a,b){a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);this.H=Rf(a,b);l(QB)[this.H]=this}QB.prototype=Object.create(DA.prototype);QB.prototype.constructor=QB;QB.prototype.I=QB;QB.J={};d.btCapsuleShapeX=QB;QB.prototype.setMargin=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Zf(b,a)};QB.prototype.getMargin=function(){return Vf(this.H)};QB.prototype.getUpAxis=function(){return Xf(this.H)};QB.prototype.getRadius=function(){return Wf(this.H)}; +QB.prototype.getHalfHeight=function(){return Tf(this.H)};QB.prototype.setLocalScaling=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Yf(b,a)};QB.prototype.getLocalScaling=function(){return m(Uf(this.H),r)};QB.prototype.calculateLocalInertia=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);Sf(e,a,b)};QB.prototype.__destroy__=function(){Qf(this.H)}; +function X(a,b,e,f){a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);f&&"object"===typeof f&&(f=f.H);this.H=Bq(a,b,e,f);l(X)[this.H]=this}X.prototype=Object.create(JA.prototype);X.prototype.constructor=X;X.prototype.I=X;X.J={};d.btQuaternion=X;X.prototype.setValue=function(a,b,e,f){var h=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);f&&"object"===typeof f&&(f=f.H);Sq(h,a,b,e,f)}; +X.prototype.setEulerZYX=function(a,b,e){var f=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);Qq(f,a,b,e)};X.prototype.setRotation=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);Rq(e,a,b)};X.prototype.normalize=X.prototype.normalize=function(){Jq(this.H)};X.prototype.length2=function(){return Hq(this.H)};X.prototype.length=X.prototype.length=function(){return Iq(this.H)}; +X.prototype.dot=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return Cq(b,a)};X.prototype.normalized=function(){return m(Kq(this.H),X)};X.prototype.getAxis=function(){return m(Fq(this.H),r)};X.prototype.inverse=X.prototype.inverse=function(){return m(Gq(this.H),X)};X.prototype.getAngle=function(){return Eq(this.H)};X.prototype.getAngleShortestPath=function(){return Dq(this.H)};X.prototype.angle=X.prototype.angle=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return Aq(b,a)}; +X.prototype.angleShortestPath=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return zq(b,a)};X.prototype.op_add=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return m(Lq(b,a),X)};X.prototype.op_sub=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return m(Pq(b,a),X)};X.prototype.op_mul=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return m(Nq(b,a),X)};X.prototype.op_mulq=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return m(Oq(b,a),X)}; +X.prototype.op_div=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);return m(Mq(b,a),X)};X.prototype.x=X.prototype.x=function(){return Yq(this.H)};X.prototype.y=X.prototype.y=function(){return Zq(this.H)};X.prototype.z=X.prototype.z=function(){return $q(this.H)};X.prototype.w=X.prototype.Aa=function(){return Xq(this.H)};X.prototype.setX=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Uq(b,a)};X.prototype.setY=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Vq(b,a)}; +X.prototype.setZ=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Wq(b,a)};X.prototype.setW=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Tq(b,a)};X.prototype.__destroy__=function(){yq(this.H)};function RB(a,b){a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);this.H=ag(a,b);l(RB)[this.H]=this}RB.prototype=Object.create(DA.prototype);RB.prototype.constructor=RB;RB.prototype.I=RB;RB.J={};d.btCapsuleShapeZ=RB; +RB.prototype.setMargin=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ig(b,a)};RB.prototype.getMargin=function(){return eg(this.H)};RB.prototype.getUpAxis=function(){return gg(this.H)};RB.prototype.getRadius=function(){return fg(this.H)};RB.prototype.getHalfHeight=function(){return cg(this.H)};RB.prototype.setLocalScaling=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);hg(b,a)};RB.prototype.getLocalScaling=function(){return m(dg(this.H),r)}; +RB.prototype.calculateLocalInertia=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);bg(e,a,b)};RB.prototype.__destroy__=function(){$f(this.H)};function v(){throw"cannot construct a btContactSolverInfo, no constructor in IDL";}v.prototype=Object.create(k.prototype);v.prototype.constructor=v;v.prototype.I=v;v.J={};d.btContactSolverInfo=v;v.prototype.get_m_splitImpulse=v.prototype.Fc=function(){return!!Oi(this.H)}; +v.prototype.set_m_splitImpulse=v.prototype.pf=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Ri(b,a)};Object.defineProperty(v.prototype,"m_splitImpulse",{get:v.prototype.Fc,set:v.prototype.pf});v.prototype.get_m_splitImpulsePenetrationThreshold=v.prototype.Gc=function(){return Ni(this.H)};v.prototype.set_m_splitImpulsePenetrationThreshold=v.prototype.qf=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Qi(b,a)}; +Object.defineProperty(v.prototype,"m_splitImpulsePenetrationThreshold",{get:v.prototype.Gc,set:v.prototype.qf});v.prototype.get_m_numIterations=v.prototype.rc=function(){return Mi(this.H)};v.prototype.set_m_numIterations=v.prototype.$e=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Pi(b,a)};Object.defineProperty(v.prototype,"m_numIterations",{get:v.prototype.rc,set:v.prototype.$e});v.prototype.__destroy__=function(){Li(this.H)}; +function SB(a,b,e,f,h){a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);f&&"object"===typeof f&&(f=f.H);h&&"object"===typeof h&&(h=h.H);this.H=void 0===f?um(a,b,e):void 0===h?_emscripten_bind_btGeneric6DofSpringConstraint_btGeneric6DofSpringConstraint_4(a,b,e,f):wm(a,b,e,f,h);l(SB)[this.H]=this}SB.prototype=Object.create(NA.prototype);SB.prototype.constructor=SB;SB.prototype.I=SB;SB.J={};d.btGeneric6DofSpringConstraint=SB; +SB.prototype.enableSpring=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);ym(e,a,b)};SB.prototype.setStiffness=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);Mm(e,a,b)};SB.prototype.setDamping=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);Fm(e,a,b)}; +SB.prototype.setEquilibriumPoint=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);void 0===a?Gm(e):void 0===b?Hm(e,a):Im(e,a,b)};SB.prototype.setLinearLowerLimit=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Jm(b,a)};SB.prototype.setLinearUpperLimit=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Km(b,a)};SB.prototype.setAngularLowerLimit=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Cm(b,a)}; +SB.prototype.setAngularUpperLimit=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Dm(b,a)};SB.prototype.getFrameOffsetA=function(){return m(Am(this.H),u)};SB.prototype.enableFeedback=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);xm(b,a)};SB.prototype.getBreakingImpulseThreshold=function(){return zm(this.H)};SB.prototype.setBreakingImpulseThreshold=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);Em(b,a)}; +SB.prototype.getParam=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);return Bm(e,a,b)};SB.prototype.setParam=function(a,b,e){var f=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);Lm(f,a,b,e)};SB.prototype.__destroy__=function(){tm(this.H)};function TB(a){a&&"object"===typeof a&&(a=a.H);this.H=rw(a);l(TB)[this.H]=this}TB.prototype=Object.create(q.prototype);TB.prototype.constructor=TB; +TB.prototype.I=TB;TB.J={};d.btSphereShape=TB;TB.prototype.setMargin=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ww(b,a)};TB.prototype.getMargin=function(){return uw(this.H)};TB.prototype.setLocalScaling=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);vw(b,a)};TB.prototype.getLocalScaling=function(){return m(tw(this.H),r)};TB.prototype.calculateLocalInertia=function(a,b){var e=this.H;a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);sw(e,a,b)}; +TB.prototype.__destroy__=function(){qw(this.H)};function Z(a,b,e,f,h){a&&"object"===typeof a&&(a=a.H);b&&"object"===typeof b&&(b=b.H);e&&"object"===typeof e&&(e=e.H);f&&"object"===typeof f&&(f=f.H);h&&"object"===typeof h&&(h=h.H);this.H=Zd(a,b,e,f,h);l(Z)[this.H]=this}Z.prototype=Object.create(k.prototype);Z.prototype.constructor=Z;Z.prototype.I=Z;Z.J={};d.LocalConvexResult=Z;Z.prototype.get_m_hitCollisionObject=Z.prototype.Qb=function(){return m(ae(this.H),t)}; +Z.prototype.set_m_hitCollisionObject=Z.prototype.ze=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);fe(b,a)};Object.defineProperty(Z.prototype,"m_hitCollisionObject",{get:Z.prototype.Qb,set:Z.prototype.ze});Z.prototype.get_m_localShapeInfo=Z.prototype.kc=function(){return m(ee(this.H),aB)};Z.prototype.set_m_localShapeInfo=Z.prototype.Te=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);je(b,a)};Object.defineProperty(Z.prototype,"m_localShapeInfo",{get:Z.prototype.kc,set:Z.prototype.Te}); +Z.prototype.get_m_hitNormalLocal=Z.prototype.Ub=function(){return m(ce(this.H),r)};Z.prototype.set_m_hitNormalLocal=Z.prototype.De=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);he(b,a)};Object.defineProperty(Z.prototype,"m_hitNormalLocal",{get:Z.prototype.Ub,set:Z.prototype.De});Z.prototype.get_m_hitPointLocal=Z.prototype.Wb=function(){return m(de(this.H),r)};Z.prototype.set_m_hitPointLocal=Z.prototype.Fe=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ie(b,a)}; +Object.defineProperty(Z.prototype,"m_hitPointLocal",{get:Z.prototype.Wb,set:Z.prototype.Fe});Z.prototype.get_m_hitFraction=Z.prototype.Rb=function(){return be(this.H)};Z.prototype.set_m_hitFraction=Z.prototype.Ae=function(a){var b=this.H;a&&"object"===typeof a&&(a=a.H);ge(b,a)};Object.defineProperty(Z.prototype,"m_hitFraction",{get:Z.prototype.Rb,set:Z.prototype.Ae});Z.prototype.__destroy__=function(){$d(this.H)}; +(function(){function a(){d.BT_CONSTRAINT_ERP=gA();d.BT_CONSTRAINT_STOP_ERP=iA();d.BT_CONSTRAINT_CFM=fA();d.BT_CONSTRAINT_STOP_CFM=hA();d.PHY_FLOAT=bA();d.PHY_DOUBLE=$z();d.PHY_INTEGER=cA();d.PHY_SHORT=dA();d.PHY_FIXEDPOINT88=aA();d.PHY_UCHAR=eA()}La?a():Ja.unshift(a)})();this.Ammo=d; + + + + return Ammo +} +); +})(); +if (typeof exports === 'object' && typeof module === 'object') + module.exports = Ammo; + else if (typeof define === 'function' && define['amd']) + define([], function() { return Ammo; }); + else if (typeof exports === 'object') + exports["Ammo"] = Ammo; + \ No newline at end of file diff --git a/packages/troika-physics/libs/troika-ammo.wasm.js b/packages/troika-physics/libs/troika-ammo.wasm.js new file mode 100644 index 00000000..2c8e24ea --- /dev/null +++ b/packages/troika-physics/libs/troika-ammo.wasm.js @@ -0,0 +1,669 @@ + + +// This is ammo.js, a port of Bullet Physics to JavaScript. zlib licensed. + +/* Custom WASM build for troika generated at 2019-10-23T16:48:59.670Z + * customizations: + * - `SINGLE_FILE` WASM output to simplify portability when used with a web worker + * - Closure compiler used + * - specify `ENVIRONMENT="worker"` so strip browser and node related code. Simplifies build, as we no longer need to mock out `fs` and `path` to satisfy it. + * - Strip unused components (UTF8ToString) + */ + + + +var Ammo = (function() { + var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; + return ( +function(Ammo) { + Ammo = Ammo || {}; + +var b;var f;f||(f=typeof Ammo !== 'undefined' ? Ammo : {});var aa={},ba;for(ba in f)f.hasOwnProperty(ba)&&(aa[ba]=f[ba]);var ca="",ea;ca=self.location.href;_scriptDir&&(ca=_scriptDir);ca=0!==ca.indexOf("blob:")?ca.substr(0,ca.lastIndexOf("/")+1):"";ea=function(a){try{var c=new XMLHttpRequest;c.open("GET",a,!1);c.responseType="arraybuffer";c.send(null);return new Uint8Array(c.response)}catch(d){if(a=fa(a))return a;throw d;}};var ha=f.print||console.log.bind(console),ia=f.printErr||console.warn.bind(console); +for(ba in aa)aa.hasOwnProperty(ba)&&(f[ba]=aa[ba]);aa=null;var ja={"f64-rem":function(a,c){return a%c},"debugger":function(){}},ka;f.wasmBinary&&(ka=f.wasmBinary);"object"!==typeof WebAssembly&&ia("no native wasm support detected");var la,ma=new WebAssembly.Table({initial:1405,maximum:1405,element:"anyfunc"}),na=!1;function oa(a){a||pa("Assertion failed: undefined")}var qa="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0;"undefined"!==typeof TextDecoder&&new TextDecoder("utf-16le"); +var ra,sa,ta,ua,va,wa=f.TOTAL_MEMORY||67108864;if(la=f.wasmMemory?f.wasmMemory:new WebAssembly.Memory({initial:wa/65536,maximum:wa/65536}))ra=la.buffer;wa=ra.byteLength;var xa=ra;ra=xa;f.HEAP8=sa=new Int8Array(xa);f.HEAP16=new Int16Array(xa);f.HEAP32=ua=new Int32Array(xa);f.HEAPU8=ta=new Uint8Array(xa);f.HEAPU16=new Uint16Array(xa);f.HEAPU32=new Uint32Array(xa);f.HEAPF32=va=new Float32Array(xa);f.HEAPF64=new Float64Array(xa);ua[7496]=5273072; +function ya(a){for(;0>2],R=ua[c+(8*n+4)>>2],da=0;da=Ob);)++Qb;if(16ib)Ob+=String.fromCharCode(ib);else{var zc=ib-65536;Ob+=String.fromCharCode(55296|zc>>10,56320|zc&1023)}}}else Ob+=String.fromCharCode(ib)}xc=Ob}Nc(xc);Wb.length=0}else Wb.push(lb)}g+=R}ua[e>>2]=g;return 0}catch(Ac){return pa(Ac),Ac.Ky}} +var Xa="function"===typeof atob?atob:function(a){var c="",d=0;a=a.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(a.charAt(d++));var g="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(a.charAt(d++));var n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(a.charAt(d++));var B="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(a.charAt(d++));e=e<<2|g>>4; +g=(g&15)<<4|n>>2;var R=(n&3)<<6|B;c+=String.fromCharCode(e);64!==n&&(c+=String.fromCharCode(g));64!==B&&(c+=String.fromCharCode(R))}while(d>2]=c/1E3|0;ua[a+4>>2]=c%1E3*1E3|0;return 0},o:Fa,n:Ga,e:function(){pa("trap!")},a:pa,memory:la,table:ma},Ya=f.asm({},Qa,ra);f.asm=Ya; +var Sa=f.__GLOBAL__sub_I_btQuickprof_cpp=function(){return f.asm.s.apply(null,arguments)},Za=f._emscripten_bind_AllHitsRayResultCallback_AllHitsRayResultCallback_2=function(){return f.asm.t.apply(null,arguments)},$a=f._emscripten_bind_AllHitsRayResultCallback___destroy___0=function(){return f.asm.u.apply(null,arguments)},ab=f._emscripten_bind_AllHitsRayResultCallback_get_m_closestHitFraction_0=function(){return f.asm.v.apply(null,arguments)},bb=f._emscripten_bind_AllHitsRayResultCallback_get_m_collisionFilterGroup_0= +function(){return f.asm.w.apply(null,arguments)},cb=f._emscripten_bind_AllHitsRayResultCallback_get_m_collisionFilterMask_0=function(){return f.asm.x.apply(null,arguments)},db=f._emscripten_bind_AllHitsRayResultCallback_get_m_collisionObject_0=function(){return f.asm.y.apply(null,arguments)},eb=f._emscripten_bind_AllHitsRayResultCallback_get_m_collisionObjects_0=function(){return f.asm.z.apply(null,arguments)},fb=f._emscripten_bind_AllHitsRayResultCallback_get_m_hitFractions_0=function(){return f.asm.A.apply(null, +arguments)},gb=f._emscripten_bind_AllHitsRayResultCallback_get_m_hitNormalWorld_0=function(){return f.asm.B.apply(null,arguments)},hb=f._emscripten_bind_AllHitsRayResultCallback_get_m_hitPointWorld_0=function(){return f.asm.C.apply(null,arguments)},jb=f._emscripten_bind_AllHitsRayResultCallback_get_m_rayFromWorld_0=function(){return f.asm.D.apply(null,arguments)},kb=f._emscripten_bind_AllHitsRayResultCallback_get_m_rayToWorld_0=function(){return f.asm.E.apply(null,arguments)},mb=f._emscripten_bind_AllHitsRayResultCallback_hasHit_0= +function(){return f.asm.F.apply(null,arguments)},nb=f._emscripten_bind_AllHitsRayResultCallback_set_m_closestHitFraction_1=function(){return f.asm.G.apply(null,arguments)},ob=f._emscripten_bind_AllHitsRayResultCallback_set_m_collisionFilterGroup_1=function(){return f.asm.H.apply(null,arguments)},pb=f._emscripten_bind_AllHitsRayResultCallback_set_m_collisionFilterMask_1=function(){return f.asm.I.apply(null,arguments)},qb=f._emscripten_bind_AllHitsRayResultCallback_set_m_collisionObject_1=function(){return f.asm.J.apply(null, +arguments)},rb=f._emscripten_bind_AllHitsRayResultCallback_set_m_collisionObjects_1=function(){return f.asm.K.apply(null,arguments)},sb=f._emscripten_bind_AllHitsRayResultCallback_set_m_hitFractions_1=function(){return f.asm.L.apply(null,arguments)},tb=f._emscripten_bind_AllHitsRayResultCallback_set_m_hitNormalWorld_1=function(){return f.asm.M.apply(null,arguments)},ub=f._emscripten_bind_AllHitsRayResultCallback_set_m_hitPointWorld_1=function(){return f.asm.N.apply(null,arguments)},vb=f._emscripten_bind_AllHitsRayResultCallback_set_m_rayFromWorld_1= +function(){return f.asm.O.apply(null,arguments)},wb=f._emscripten_bind_AllHitsRayResultCallback_set_m_rayToWorld_1=function(){return f.asm.P.apply(null,arguments)},yb=f._emscripten_bind_Anchor___destroy___0=function(){return f.asm.Q.apply(null,arguments)},zb=f._emscripten_bind_Anchor_get_m_body_0=function(){return f.asm.R.apply(null,arguments)},Ab=f._emscripten_bind_Anchor_get_m_c0_0=function(){return f.asm.S.apply(null,arguments)},Bb=f._emscripten_bind_Anchor_get_m_c1_0=function(){return f.asm.T.apply(null, +arguments)},Cb=f._emscripten_bind_Anchor_get_m_c2_0=function(){return f.asm.U.apply(null,arguments)},Db=f._emscripten_bind_Anchor_get_m_influence_0=function(){return f.asm.V.apply(null,arguments)},Eb=f._emscripten_bind_Anchor_get_m_local_0=function(){return f.asm.W.apply(null,arguments)},Fb=f._emscripten_bind_Anchor_get_m_node_0=function(){return f.asm.X.apply(null,arguments)},Gb=f._emscripten_bind_Anchor_set_m_body_1=function(){return f.asm.Y.apply(null,arguments)},Hb=f._emscripten_bind_Anchor_set_m_c0_1= +function(){return f.asm.Z.apply(null,arguments)},Ib=f._emscripten_bind_Anchor_set_m_c1_1=function(){return f.asm._.apply(null,arguments)},Jb=f._emscripten_bind_Anchor_set_m_c2_1=function(){return f.asm.$.apply(null,arguments)},Kb=f._emscripten_bind_Anchor_set_m_influence_1=function(){return f.asm.aa.apply(null,arguments)},Lb=f._emscripten_bind_Anchor_set_m_local_1=function(){return f.asm.ba.apply(null,arguments)},Mb=f._emscripten_bind_Anchor_set_m_node_1=function(){return f.asm.ca.apply(null,arguments)}, +Pb=f._emscripten_bind_ClosestConvexResultCallback_ClosestConvexResultCallback_2=function(){return f.asm.da.apply(null,arguments)},Rb=f._emscripten_bind_ClosestConvexResultCallback___destroy___0=function(){return f.asm.ea.apply(null,arguments)},Sb=f._emscripten_bind_ClosestConvexResultCallback_get_m_closestHitFraction_0=function(){return f.asm.fa.apply(null,arguments)},Tb=f._emscripten_bind_ClosestConvexResultCallback_get_m_collisionFilterGroup_0=function(){return f.asm.ga.apply(null,arguments)},Ub= +f._emscripten_bind_ClosestConvexResultCallback_get_m_collisionFilterMask_0=function(){return f.asm.ha.apply(null,arguments)},Vb=f._emscripten_bind_ClosestConvexResultCallback_get_m_convexFromWorld_0=function(){return f.asm.ia.apply(null,arguments)},Xb=f._emscripten_bind_ClosestConvexResultCallback_get_m_convexToWorld_0=function(){return f.asm.ja.apply(null,arguments)},Yb=f._emscripten_bind_ClosestConvexResultCallback_get_m_hitNormalWorld_0=function(){return f.asm.ka.apply(null,arguments)},Zb=f._emscripten_bind_ClosestConvexResultCallback_get_m_hitPointWorld_0= +function(){return f.asm.la.apply(null,arguments)},$b=f._emscripten_bind_ClosestConvexResultCallback_hasHit_0=function(){return f.asm.ma.apply(null,arguments)},ac=f._emscripten_bind_ClosestConvexResultCallback_set_m_closestHitFraction_1=function(){return f.asm.na.apply(null,arguments)},bc=f._emscripten_bind_ClosestConvexResultCallback_set_m_collisionFilterGroup_1=function(){return f.asm.oa.apply(null,arguments)},cc=f._emscripten_bind_ClosestConvexResultCallback_set_m_collisionFilterMask_1=function(){return f.asm.pa.apply(null, +arguments)},dc=f._emscripten_bind_ClosestConvexResultCallback_set_m_convexFromWorld_1=function(){return f.asm.qa.apply(null,arguments)},ec=f._emscripten_bind_ClosestConvexResultCallback_set_m_convexToWorld_1=function(){return f.asm.ra.apply(null,arguments)},fc=f._emscripten_bind_ClosestConvexResultCallback_set_m_hitNormalWorld_1=function(){return f.asm.sa.apply(null,arguments)},gc=f._emscripten_bind_ClosestConvexResultCallback_set_m_hitPointWorld_1=function(){return f.asm.ta.apply(null,arguments)}, +hc=f._emscripten_bind_ClosestRayResultCallback_ClosestRayResultCallback_2=function(){return f.asm.ua.apply(null,arguments)},ic=f._emscripten_bind_ClosestRayResultCallback___destroy___0=function(){return f.asm.va.apply(null,arguments)},jc=f._emscripten_bind_ClosestRayResultCallback_get_m_closestHitFraction_0=function(){return f.asm.wa.apply(null,arguments)},lc=f._emscripten_bind_ClosestRayResultCallback_get_m_collisionFilterGroup_0=function(){return f.asm.xa.apply(null,arguments)},mc=f._emscripten_bind_ClosestRayResultCallback_get_m_collisionFilterMask_0= +function(){return f.asm.ya.apply(null,arguments)},nc=f._emscripten_bind_ClosestRayResultCallback_get_m_collisionObject_0=function(){return f.asm.za.apply(null,arguments)},oc=f._emscripten_bind_ClosestRayResultCallback_get_m_hitNormalWorld_0=function(){return f.asm.Aa.apply(null,arguments)},pc=f._emscripten_bind_ClosestRayResultCallback_get_m_hitPointWorld_0=function(){return f.asm.Ba.apply(null,arguments)},qc=f._emscripten_bind_ClosestRayResultCallback_get_m_rayFromWorld_0=function(){return f.asm.Ca.apply(null, +arguments)},rc=f._emscripten_bind_ClosestRayResultCallback_get_m_rayToWorld_0=function(){return f.asm.Da.apply(null,arguments)},sc=f._emscripten_bind_ClosestRayResultCallback_hasHit_0=function(){return f.asm.Ea.apply(null,arguments)},tc=f._emscripten_bind_ClosestRayResultCallback_set_m_closestHitFraction_1=function(){return f.asm.Fa.apply(null,arguments)},uc=f._emscripten_bind_ClosestRayResultCallback_set_m_collisionFilterGroup_1=function(){return f.asm.Ga.apply(null,arguments)},vc=f._emscripten_bind_ClosestRayResultCallback_set_m_collisionFilterMask_1= +function(){return f.asm.Ha.apply(null,arguments)},wc=f._emscripten_bind_ClosestRayResultCallback_set_m_collisionObject_1=function(){return f.asm.Ia.apply(null,arguments)},Bc=f._emscripten_bind_ClosestRayResultCallback_set_m_hitNormalWorld_1=function(){return f.asm.Ja.apply(null,arguments)},Cc=f._emscripten_bind_ClosestRayResultCallback_set_m_hitPointWorld_1=function(){return f.asm.Ka.apply(null,arguments)},Dc=f._emscripten_bind_ClosestRayResultCallback_set_m_rayFromWorld_1=function(){return f.asm.La.apply(null, +arguments)},Ec=f._emscripten_bind_ClosestRayResultCallback_set_m_rayToWorld_1=function(){return f.asm.Ma.apply(null,arguments)},Fc=f._emscripten_bind_ConcreteContactResultCallback_ConcreteContactResultCallback_0=function(){return f.asm.Na.apply(null,arguments)},Gc=f._emscripten_bind_ConcreteContactResultCallback___destroy___0=function(){return f.asm.Oa.apply(null,arguments)},Hc=f._emscripten_bind_ConcreteContactResultCallback_addSingleResult_7=function(){return f.asm.Pa.apply(null,arguments)},Ic= +f._emscripten_bind_Config___destroy___0=function(){return f.asm.Qa.apply(null,arguments)},Jc=f._emscripten_bind_Config_get_citerations_0=function(){return f.asm.Ra.apply(null,arguments)},Kc=f._emscripten_bind_Config_get_collisions_0=function(){return f.asm.Sa.apply(null,arguments)},Lc=f._emscripten_bind_Config_get_diterations_0=function(){return f.asm.Ta.apply(null,arguments)},Mc=f._emscripten_bind_Config_get_kAHR_0=function(){return f.asm.Ua.apply(null,arguments)},Oc=f._emscripten_bind_Config_get_kCHR_0= +function(){return f.asm.Va.apply(null,arguments)},Pc=f._emscripten_bind_Config_get_kDF_0=function(){return f.asm.Wa.apply(null,arguments)},Qc=f._emscripten_bind_Config_get_kDG_0=function(){return f.asm.Xa.apply(null,arguments)},Rc=f._emscripten_bind_Config_get_kDP_0=function(){return f.asm.Ya.apply(null,arguments)},Sc=f._emscripten_bind_Config_get_kKHR_0=function(){return f.asm.Za.apply(null,arguments)},Tc=f._emscripten_bind_Config_get_kLF_0=function(){return f.asm._a.apply(null,arguments)},Uc=f._emscripten_bind_Config_get_kMT_0= +function(){return f.asm.$a.apply(null,arguments)},Vc=f._emscripten_bind_Config_get_kPR_0=function(){return f.asm.ab.apply(null,arguments)},Wc=f._emscripten_bind_Config_get_kSHR_0=function(){return f.asm.bb.apply(null,arguments)},Xc=f._emscripten_bind_Config_get_kSKHR_CL_0=function(){return f.asm.cb.apply(null,arguments)},Yc=f._emscripten_bind_Config_get_kSK_SPLT_CL_0=function(){return f.asm.db.apply(null,arguments)},Zc=f._emscripten_bind_Config_get_kSRHR_CL_0=function(){return f.asm.eb.apply(null, +arguments)},$c=f._emscripten_bind_Config_get_kSR_SPLT_CL_0=function(){return f.asm.fb.apply(null,arguments)},ad=f._emscripten_bind_Config_get_kSSHR_CL_0=function(){return f.asm.gb.apply(null,arguments)},bd=f._emscripten_bind_Config_get_kSS_SPLT_CL_0=function(){return f.asm.hb.apply(null,arguments)},cd=f._emscripten_bind_Config_get_kVCF_0=function(){return f.asm.ib.apply(null,arguments)},dd=f._emscripten_bind_Config_get_kVC_0=function(){return f.asm.jb.apply(null,arguments)},ed=f._emscripten_bind_Config_get_maxvolume_0= +function(){return f.asm.kb.apply(null,arguments)},fd=f._emscripten_bind_Config_get_piterations_0=function(){return f.asm.lb.apply(null,arguments)},gd=f._emscripten_bind_Config_get_timescale_0=function(){return f.asm.mb.apply(null,arguments)},hd=f._emscripten_bind_Config_get_viterations_0=function(){return f.asm.nb.apply(null,arguments)},id=f._emscripten_bind_Config_set_citerations_1=function(){return f.asm.ob.apply(null,arguments)},jd=f._emscripten_bind_Config_set_collisions_1=function(){return f.asm.pb.apply(null, +arguments)},kd=f._emscripten_bind_Config_set_diterations_1=function(){return f.asm.qb.apply(null,arguments)},ld=f._emscripten_bind_Config_set_kAHR_1=function(){return f.asm.rb.apply(null,arguments)},md=f._emscripten_bind_Config_set_kCHR_1=function(){return f.asm.sb.apply(null,arguments)},nd=f._emscripten_bind_Config_set_kDF_1=function(){return f.asm.tb.apply(null,arguments)},od=f._emscripten_bind_Config_set_kDG_1=function(){return f.asm.ub.apply(null,arguments)},pd=f._emscripten_bind_Config_set_kDP_1= +function(){return f.asm.vb.apply(null,arguments)},qd=f._emscripten_bind_Config_set_kKHR_1=function(){return f.asm.wb.apply(null,arguments)},rd=f._emscripten_bind_Config_set_kLF_1=function(){return f.asm.xb.apply(null,arguments)},sd=f._emscripten_bind_Config_set_kMT_1=function(){return f.asm.yb.apply(null,arguments)},td=f._emscripten_bind_Config_set_kPR_1=function(){return f.asm.zb.apply(null,arguments)},ud=f._emscripten_bind_Config_set_kSHR_1=function(){return f.asm.Ab.apply(null,arguments)},vd=f._emscripten_bind_Config_set_kSKHR_CL_1= +function(){return f.asm.Bb.apply(null,arguments)},wd=f._emscripten_bind_Config_set_kSK_SPLT_CL_1=function(){return f.asm.Cb.apply(null,arguments)},xd=f._emscripten_bind_Config_set_kSRHR_CL_1=function(){return f.asm.Db.apply(null,arguments)},yd=f._emscripten_bind_Config_set_kSR_SPLT_CL_1=function(){return f.asm.Eb.apply(null,arguments)},zd=f._emscripten_bind_Config_set_kSSHR_CL_1=function(){return f.asm.Fb.apply(null,arguments)},Ad=f._emscripten_bind_Config_set_kSS_SPLT_CL_1=function(){return f.asm.Gb.apply(null, +arguments)},Bd=f._emscripten_bind_Config_set_kVCF_1=function(){return f.asm.Hb.apply(null,arguments)},Cd=f._emscripten_bind_Config_set_kVC_1=function(){return f.asm.Ib.apply(null,arguments)},Dd=f._emscripten_bind_Config_set_maxvolume_1=function(){return f.asm.Jb.apply(null,arguments)},Ed=f._emscripten_bind_Config_set_piterations_1=function(){return f.asm.Kb.apply(null,arguments)},Fd=f._emscripten_bind_Config_set_timescale_1=function(){return f.asm.Lb.apply(null,arguments)},Gd=f._emscripten_bind_Config_set_viterations_1= +function(){return f.asm.Mb.apply(null,arguments)},Hd=f._emscripten_bind_ContactResultCallback___destroy___0=function(){return f.asm.Nb.apply(null,arguments)},Id=f._emscripten_bind_ContactResultCallback_addSingleResult_7=function(){return f.asm.Ob.apply(null,arguments)},Jd=f._emscripten_bind_ConvexResultCallback___destroy___0=function(){return f.asm.Pb.apply(null,arguments)},Kd=f._emscripten_bind_ConvexResultCallback_get_m_closestHitFraction_0=function(){return f.asm.Qb.apply(null,arguments)},Ld=f._emscripten_bind_ConvexResultCallback_get_m_collisionFilterGroup_0= +function(){return f.asm.Rb.apply(null,arguments)},Md=f._emscripten_bind_ConvexResultCallback_get_m_collisionFilterMask_0=function(){return f.asm.Sb.apply(null,arguments)},Nd=f._emscripten_bind_ConvexResultCallback_hasHit_0=function(){return f.asm.Tb.apply(null,arguments)},Od=f._emscripten_bind_ConvexResultCallback_set_m_closestHitFraction_1=function(){return f.asm.Ub.apply(null,arguments)},Pd=f._emscripten_bind_ConvexResultCallback_set_m_collisionFilterGroup_1=function(){return f.asm.Vb.apply(null, +arguments)},Qd=f._emscripten_bind_ConvexResultCallback_set_m_collisionFilterMask_1=function(){return f.asm.Wb.apply(null,arguments)},Rd=f._emscripten_bind_DebugDrawer_DebugDrawer_0=function(){return f.asm.Xb.apply(null,arguments)},Sd=f._emscripten_bind_DebugDrawer___destroy___0=function(){return f.asm.Yb.apply(null,arguments)},Td=f._emscripten_bind_DebugDrawer_draw3dText_2=function(){return f.asm.Zb.apply(null,arguments)},Ud=f._emscripten_bind_DebugDrawer_drawContactPoint_5=function(){return f.asm._b.apply(null, +arguments)},Vd=f._emscripten_bind_DebugDrawer_drawLine_3=function(){return f.asm.$b.apply(null,arguments)},Wd=f._emscripten_bind_DebugDrawer_getDebugMode_0=function(){return f.asm.ac.apply(null,arguments)},Xd=f._emscripten_bind_DebugDrawer_reportErrorWarning_1=function(){return f.asm.bc.apply(null,arguments)},Yd=f._emscripten_bind_DebugDrawer_setDebugMode_1=function(){return f.asm.cc.apply(null,arguments)},Zd=f._emscripten_bind_LocalConvexResult_LocalConvexResult_5=function(){return f.asm.dc.apply(null, +arguments)},$d=f._emscripten_bind_LocalConvexResult___destroy___0=function(){return f.asm.ec.apply(null,arguments)},ae=f._emscripten_bind_LocalConvexResult_get_m_hitCollisionObject_0=function(){return f.asm.fc.apply(null,arguments)},be=f._emscripten_bind_LocalConvexResult_get_m_hitFraction_0=function(){return f.asm.gc.apply(null,arguments)},ce=f._emscripten_bind_LocalConvexResult_get_m_hitNormalLocal_0=function(){return f.asm.hc.apply(null,arguments)},de=f._emscripten_bind_LocalConvexResult_get_m_hitPointLocal_0= +function(){return f.asm.ic.apply(null,arguments)},ee=f._emscripten_bind_LocalConvexResult_get_m_localShapeInfo_0=function(){return f.asm.jc.apply(null,arguments)},fe=f._emscripten_bind_LocalConvexResult_set_m_hitCollisionObject_1=function(){return f.asm.kc.apply(null,arguments)},ge=f._emscripten_bind_LocalConvexResult_set_m_hitFraction_1=function(){return f.asm.lc.apply(null,arguments)},he=f._emscripten_bind_LocalConvexResult_set_m_hitNormalLocal_1=function(){return f.asm.mc.apply(null,arguments)}, +ie=f._emscripten_bind_LocalConvexResult_set_m_hitPointLocal_1=function(){return f.asm.nc.apply(null,arguments)},je=f._emscripten_bind_LocalConvexResult_set_m_localShapeInfo_1=function(){return f.asm.oc.apply(null,arguments)},ke=f._emscripten_bind_LocalShapeInfo___destroy___0=function(){return f.asm.pc.apply(null,arguments)},le=f._emscripten_bind_LocalShapeInfo_get_m_shapePart_0=function(){return f.asm.qc.apply(null,arguments)},me=f._emscripten_bind_LocalShapeInfo_get_m_triangleIndex_0=function(){return f.asm.rc.apply(null, +arguments)},ne=f._emscripten_bind_LocalShapeInfo_set_m_shapePart_1=function(){return f.asm.sc.apply(null,arguments)},oe=f._emscripten_bind_LocalShapeInfo_set_m_triangleIndex_1=function(){return f.asm.tc.apply(null,arguments)},pe=f._emscripten_bind_Material___destroy___0=function(){return f.asm.uc.apply(null,arguments)},qe=f._emscripten_bind_Material_get_m_flags_0=function(){return f.asm.vc.apply(null,arguments)},re=f._emscripten_bind_Material_get_m_kAST_0=function(){return f.asm.wc.apply(null,arguments)}, +se=f._emscripten_bind_Material_get_m_kLST_0=function(){return f.asm.xc.apply(null,arguments)},te=f._emscripten_bind_Material_get_m_kVST_0=function(){return f.asm.yc.apply(null,arguments)},ue=f._emscripten_bind_Material_set_m_flags_1=function(){return f.asm.zc.apply(null,arguments)},ve=f._emscripten_bind_Material_set_m_kAST_1=function(){return f.asm.Ac.apply(null,arguments)},we=f._emscripten_bind_Material_set_m_kLST_1=function(){return f.asm.Bc.apply(null,arguments)},xe=f._emscripten_bind_Material_set_m_kVST_1= +function(){return f.asm.Cc.apply(null,arguments)},ye=f._emscripten_bind_Node___destroy___0=function(){return f.asm.Dc.apply(null,arguments)},ze=f._emscripten_bind_Node_get_m_area_0=function(){return f.asm.Ec.apply(null,arguments)},Ae=f._emscripten_bind_Node_get_m_f_0=function(){return f.asm.Fc.apply(null,arguments)},Be=f._emscripten_bind_Node_get_m_im_0=function(){return f.asm.Gc.apply(null,arguments)},Ce=f._emscripten_bind_Node_get_m_n_0=function(){return f.asm.Hc.apply(null,arguments)},De=f._emscripten_bind_Node_get_m_q_0= +function(){return f.asm.Ic.apply(null,arguments)},Ee=f._emscripten_bind_Node_get_m_v_0=function(){return f.asm.Jc.apply(null,arguments)},Fe=f._emscripten_bind_Node_get_m_x_0=function(){return f.asm.Kc.apply(null,arguments)},Ge=f._emscripten_bind_Node_set_m_area_1=function(){return f.asm.Lc.apply(null,arguments)},He=f._emscripten_bind_Node_set_m_f_1=function(){return f.asm.Mc.apply(null,arguments)},Ie=f._emscripten_bind_Node_set_m_im_1=function(){return f.asm.Nc.apply(null,arguments)},Je=f._emscripten_bind_Node_set_m_n_1= +function(){return f.asm.Oc.apply(null,arguments)},Ke=f._emscripten_bind_Node_set_m_q_1=function(){return f.asm.Pc.apply(null,arguments)},Le=f._emscripten_bind_Node_set_m_v_1=function(){return f.asm.Qc.apply(null,arguments)},Me=f._emscripten_bind_Node_set_m_x_1=function(){return f.asm.Rc.apply(null,arguments)},Ne=f._emscripten_bind_RayResultCallback___destroy___0=function(){return f.asm.Sc.apply(null,arguments)},Oe=f._emscripten_bind_RayResultCallback_get_m_closestHitFraction_0=function(){return f.asm.Tc.apply(null, +arguments)},Pe=f._emscripten_bind_RayResultCallback_get_m_collisionFilterGroup_0=function(){return f.asm.Uc.apply(null,arguments)},Qe=f._emscripten_bind_RayResultCallback_get_m_collisionFilterMask_0=function(){return f.asm.Vc.apply(null,arguments)},Re=f._emscripten_bind_RayResultCallback_get_m_collisionObject_0=function(){return f.asm.Wc.apply(null,arguments)},Se=f._emscripten_bind_RayResultCallback_hasHit_0=function(){return f.asm.Xc.apply(null,arguments)},Te=f._emscripten_bind_RayResultCallback_set_m_closestHitFraction_1= +function(){return f.asm.Yc.apply(null,arguments)},Ue=f._emscripten_bind_RayResultCallback_set_m_collisionFilterGroup_1=function(){return f.asm.Zc.apply(null,arguments)},Ve=f._emscripten_bind_RayResultCallback_set_m_collisionFilterMask_1=function(){return f.asm._c.apply(null,arguments)},We=f._emscripten_bind_RayResultCallback_set_m_collisionObject_1=function(){return f.asm.$c.apply(null,arguments)},Xe=f._emscripten_bind_RaycastInfo___destroy___0=function(){return f.asm.ad.apply(null,arguments)},Ye= +f._emscripten_bind_RaycastInfo_get_m_contactNormalWS_0=function(){return f.asm.bd.apply(null,arguments)},Ze=f._emscripten_bind_RaycastInfo_get_m_contactPointWS_0=function(){return f.asm.cd.apply(null,arguments)},$e=f._emscripten_bind_RaycastInfo_get_m_groundObject_0=function(){return f.asm.dd.apply(null,arguments)},af=f._emscripten_bind_RaycastInfo_get_m_hardPointWS_0=function(){return f.asm.ed.apply(null,arguments)},bf=f._emscripten_bind_RaycastInfo_get_m_isInContact_0=function(){return f.asm.fd.apply(null, +arguments)},cf=f._emscripten_bind_RaycastInfo_get_m_suspensionLength_0=function(){return f.asm.gd.apply(null,arguments)},df=f._emscripten_bind_RaycastInfo_get_m_wheelAxleWS_0=function(){return f.asm.hd.apply(null,arguments)},ef=f._emscripten_bind_RaycastInfo_get_m_wheelDirectionWS_0=function(){return f.asm.id.apply(null,arguments)},ff=f._emscripten_bind_RaycastInfo_set_m_contactNormalWS_1=function(){return f.asm.jd.apply(null,arguments)},gf=f._emscripten_bind_RaycastInfo_set_m_contactPointWS_1=function(){return f.asm.kd.apply(null, +arguments)},hf=f._emscripten_bind_RaycastInfo_set_m_groundObject_1=function(){return f.asm.ld.apply(null,arguments)},jf=f._emscripten_bind_RaycastInfo_set_m_hardPointWS_1=function(){return f.asm.md.apply(null,arguments)},kf=f._emscripten_bind_RaycastInfo_set_m_isInContact_1=function(){return f.asm.nd.apply(null,arguments)},lf=f._emscripten_bind_RaycastInfo_set_m_suspensionLength_1=function(){return f.asm.od.apply(null,arguments)},mf=f._emscripten_bind_RaycastInfo_set_m_wheelAxleWS_1=function(){return f.asm.pd.apply(null, +arguments)},nf=f._emscripten_bind_RaycastInfo_set_m_wheelDirectionWS_1=function(){return f.asm.qd.apply(null,arguments)},of=f._emscripten_bind_VoidPtr___destroy___0=function(){return f.asm.rd.apply(null,arguments)},pf=f._emscripten_bind_btActionInterface___destroy___0=function(){return f.asm.sd.apply(null,arguments)},qf=f._emscripten_bind_btActionInterface_updateAction_2=function(){return f.asm.td.apply(null,arguments)},rf=f._emscripten_bind_btAxisSweep3___destroy___0=function(){return f.asm.ud.apply(null, +arguments)},sf=f._emscripten_bind_btAxisSweep3_btAxisSweep3_2=function(){return f.asm.vd.apply(null,arguments)},tf=f._emscripten_bind_btAxisSweep3_btAxisSweep3_3=function(){return f.asm.wd.apply(null,arguments)},uf=f._emscripten_bind_btAxisSweep3_btAxisSweep3_4=function(){return f.asm.xd.apply(null,arguments)},vf=f._emscripten_bind_btAxisSweep3_btAxisSweep3_5=function(){return f.asm.yd.apply(null,arguments)},wf=f._emscripten_bind_btBoxShape___destroy___0=function(){return f.asm.zd.apply(null,arguments)}, +xf=f._emscripten_bind_btBoxShape_btBoxShape_1=function(){return f.asm.Ad.apply(null,arguments)},yf=f._emscripten_bind_btBoxShape_calculateLocalInertia_2=function(){return f.asm.Bd.apply(null,arguments)},zf=f._emscripten_bind_btBoxShape_getLocalScaling_0=function(){return f.asm.Cd.apply(null,arguments)},Af=f._emscripten_bind_btBoxShape_getMargin_0=function(){return f.asm.Dd.apply(null,arguments)},Bf=f._emscripten_bind_btBoxShape_setLocalScaling_1=function(){return f.asm.Ed.apply(null,arguments)},Cf= +f._emscripten_bind_btBoxShape_setMargin_1=function(){return f.asm.Fd.apply(null,arguments)},Df=f._emscripten_bind_btBroadphaseInterface___destroy___0=function(){return f.asm.Gd.apply(null,arguments)},Ef=f._emscripten_bind_btBroadphaseInterface_getOverlappingPairCache_0=function(){return f.asm.Hd.apply(null,arguments)},Ff=f._emscripten_bind_btBroadphaseProxy___destroy___0=function(){return f.asm.Id.apply(null,arguments)},Gf=f._emscripten_bind_btBroadphaseProxy_get_m_collisionFilterGroup_0=function(){return f.asm.Jd.apply(null, +arguments)},Hf=f._emscripten_bind_btBroadphaseProxy_get_m_collisionFilterMask_0=function(){return f.asm.Kd.apply(null,arguments)},If=f._emscripten_bind_btBroadphaseProxy_set_m_collisionFilterGroup_1=function(){return f.asm.Ld.apply(null,arguments)},Jf=f._emscripten_bind_btBroadphaseProxy_set_m_collisionFilterMask_1=function(){return f.asm.Md.apply(null,arguments)},Kf=f._emscripten_bind_btBvhTriangleMeshShape___destroy___0=function(){return f.asm.Nd.apply(null,arguments)},Lf=f._emscripten_bind_btBvhTriangleMeshShape_btBvhTriangleMeshShape_2= +function(){return f.asm.Od.apply(null,arguments)},Mf=f._emscripten_bind_btBvhTriangleMeshShape_btBvhTriangleMeshShape_3=function(){return f.asm.Pd.apply(null,arguments)},Nf=f._emscripten_bind_btBvhTriangleMeshShape_calculateLocalInertia_2=function(){return f.asm.Qd.apply(null,arguments)},Of=f._emscripten_bind_btBvhTriangleMeshShape_getLocalScaling_0=function(){return f.asm.Rd.apply(null,arguments)},Pf=f._emscripten_bind_btBvhTriangleMeshShape_setLocalScaling_1=function(){return f.asm.Sd.apply(null, +arguments)},Qf=f._emscripten_bind_btCapsuleShapeX___destroy___0=function(){return f.asm.Td.apply(null,arguments)},Rf=f._emscripten_bind_btCapsuleShapeX_btCapsuleShapeX_2=function(){return f.asm.Ud.apply(null,arguments)},Sf=f._emscripten_bind_btCapsuleShapeX_calculateLocalInertia_2=function(){return f.asm.Vd.apply(null,arguments)},Tf=f._emscripten_bind_btCapsuleShapeX_getHalfHeight_0=function(){return f.asm.Wd.apply(null,arguments)},Uf=f._emscripten_bind_btCapsuleShapeX_getLocalScaling_0=function(){return f.asm.Xd.apply(null, +arguments)},Vf=f._emscripten_bind_btCapsuleShapeX_getMargin_0=function(){return f.asm.Yd.apply(null,arguments)},Wf=f._emscripten_bind_btCapsuleShapeX_getRadius_0=function(){return f.asm.Zd.apply(null,arguments)},Xf=f._emscripten_bind_btCapsuleShapeX_getUpAxis_0=function(){return f.asm._d.apply(null,arguments)},Yf=f._emscripten_bind_btCapsuleShapeX_setLocalScaling_1=function(){return f.asm.$d.apply(null,arguments)},Zf=f._emscripten_bind_btCapsuleShapeX_setMargin_1=function(){return f.asm.ae.apply(null, +arguments)},$f=f._emscripten_bind_btCapsuleShapeZ___destroy___0=function(){return f.asm.be.apply(null,arguments)},ag=f._emscripten_bind_btCapsuleShapeZ_btCapsuleShapeZ_2=function(){return f.asm.ce.apply(null,arguments)},bg=f._emscripten_bind_btCapsuleShapeZ_calculateLocalInertia_2=function(){return f.asm.de.apply(null,arguments)},cg=f._emscripten_bind_btCapsuleShapeZ_getHalfHeight_0=function(){return f.asm.ee.apply(null,arguments)},dg=f._emscripten_bind_btCapsuleShapeZ_getLocalScaling_0=function(){return f.asm.fe.apply(null, +arguments)},eg=f._emscripten_bind_btCapsuleShapeZ_getMargin_0=function(){return f.asm.ge.apply(null,arguments)},fg=f._emscripten_bind_btCapsuleShapeZ_getRadius_0=function(){return f.asm.he.apply(null,arguments)},gg=f._emscripten_bind_btCapsuleShapeZ_getUpAxis_0=function(){return f.asm.ie.apply(null,arguments)},hg=f._emscripten_bind_btCapsuleShapeZ_setLocalScaling_1=function(){return f.asm.je.apply(null,arguments)},ig=f._emscripten_bind_btCapsuleShapeZ_setMargin_1=function(){return f.asm.ke.apply(null, +arguments)},jg=f._emscripten_bind_btCapsuleShape___destroy___0=function(){return f.asm.le.apply(null,arguments)},kg=f._emscripten_bind_btCapsuleShape_btCapsuleShape_2=function(){return f.asm.me.apply(null,arguments)},lg=f._emscripten_bind_btCapsuleShape_calculateLocalInertia_2=function(){return f.asm.ne.apply(null,arguments)},mg=f._emscripten_bind_btCapsuleShape_getHalfHeight_0=function(){return f.asm.oe.apply(null,arguments)},ng=f._emscripten_bind_btCapsuleShape_getLocalScaling_0=function(){return f.asm.pe.apply(null, +arguments)},og=f._emscripten_bind_btCapsuleShape_getMargin_0=function(){return f.asm.qe.apply(null,arguments)},pg=f._emscripten_bind_btCapsuleShape_getRadius_0=function(){return f.asm.re.apply(null,arguments)},qg=f._emscripten_bind_btCapsuleShape_getUpAxis_0=function(){return f.asm.se.apply(null,arguments)},rg=f._emscripten_bind_btCapsuleShape_setLocalScaling_1=function(){return f.asm.te.apply(null,arguments)},sg=f._emscripten_bind_btCapsuleShape_setMargin_1=function(){return f.asm.ue.apply(null, +arguments)},tg=f._emscripten_bind_btCollisionConfiguration___destroy___0=function(){return f.asm.ve.apply(null,arguments)},ug=f._emscripten_bind_btCollisionDispatcher___destroy___0=function(){return f.asm.we.apply(null,arguments)},vg=f._emscripten_bind_btCollisionDispatcher_btCollisionDispatcher_1=function(){return f.asm.xe.apply(null,arguments)},wg=f._emscripten_bind_btCollisionDispatcher_getManifoldByIndexInternal_1=function(){return f.asm.ye.apply(null,arguments)},xg=f._emscripten_bind_btCollisionDispatcher_getNumManifolds_0= +function(){return f.asm.ze.apply(null,arguments)},yg=f._emscripten_bind_btCollisionObjectWrapper_getCollisionObject_0=function(){return f.asm.Ae.apply(null,arguments)},zg=f._emscripten_bind_btCollisionObjectWrapper_getCollisionShape_0=function(){return f.asm.Be.apply(null,arguments)},Ag=f._emscripten_bind_btCollisionObjectWrapper_getWorldTransform_0=function(){return f.asm.Ce.apply(null,arguments)},Bg=f._emscripten_bind_btCollisionObject___destroy___0=function(){return f.asm.De.apply(null,arguments)}, +Cg=f._emscripten_bind_btCollisionObject_activate_0=function(){return f.asm.Ee.apply(null,arguments)},Dg=f._emscripten_bind_btCollisionObject_activate_1=function(){return f.asm.Fe.apply(null,arguments)},Eg=f._emscripten_bind_btCollisionObject_forceActivationState_1=function(){return f.asm.Ge.apply(null,arguments)},Fg=f._emscripten_bind_btCollisionObject_getBroadphaseHandle_0=function(){return f.asm.He.apply(null,arguments)},Gg=f._emscripten_bind_btCollisionObject_getCollisionFlags_0=function(){return f.asm.Ie.apply(null, +arguments)},Hg=f._emscripten_bind_btCollisionObject_getCollisionShape_0=function(){return f.asm.Je.apply(null,arguments)},Ig=f._emscripten_bind_btCollisionObject_getFriction_0=function(){return f.asm.Ke.apply(null,arguments)},Jg=f._emscripten_bind_btCollisionObject_getRestitution_0=function(){return f.asm.Le.apply(null,arguments)},Kg=f._emscripten_bind_btCollisionObject_getRollingFriction_0=function(){return f.asm.Me.apply(null,arguments)},Lg=f._emscripten_bind_btCollisionObject_getUserIndex_0=function(){return f.asm.Ne.apply(null, +arguments)},Mg=f._emscripten_bind_btCollisionObject_getUserPointer_0=function(){return f.asm.Oe.apply(null,arguments)},Ng=f._emscripten_bind_btCollisionObject_getWorldTransform_0=function(){return f.asm.Pe.apply(null,arguments)},Og=f._emscripten_bind_btCollisionObject_isActive_0=function(){return f.asm.Qe.apply(null,arguments)},Pg=f._emscripten_bind_btCollisionObject_isKinematicObject_0=function(){return f.asm.Re.apply(null,arguments)},Qg=f._emscripten_bind_btCollisionObject_isStaticObject_0=function(){return f.asm.Se.apply(null, +arguments)},Rg=f._emscripten_bind_btCollisionObject_isStaticOrKinematicObject_0=function(){return f.asm.Te.apply(null,arguments)},Sg=f._emscripten_bind_btCollisionObject_setActivationState_1=function(){return f.asm.Ue.apply(null,arguments)},Tg=f._emscripten_bind_btCollisionObject_setAnisotropicFriction_2=function(){return f.asm.Ve.apply(null,arguments)},Ug=f._emscripten_bind_btCollisionObject_setCcdMotionThreshold_1=function(){return f.asm.We.apply(null,arguments)},Vg=f._emscripten_bind_btCollisionObject_setCcdSweptSphereRadius_1= +function(){return f.asm.Xe.apply(null,arguments)},Wg=f._emscripten_bind_btCollisionObject_setCollisionFlags_1=function(){return f.asm.Ye.apply(null,arguments)},Xg=f._emscripten_bind_btCollisionObject_setCollisionShape_1=function(){return f.asm.Ze.apply(null,arguments)},Yg=f._emscripten_bind_btCollisionObject_setContactProcessingThreshold_1=function(){return f.asm._e.apply(null,arguments)},Zg=f._emscripten_bind_btCollisionObject_setFriction_1=function(){return f.asm.$e.apply(null,arguments)},$g=f._emscripten_bind_btCollisionObject_setRestitution_1= +function(){return f.asm.af.apply(null,arguments)},ah=f._emscripten_bind_btCollisionObject_setRollingFriction_1=function(){return f.asm.bf.apply(null,arguments)},bh=f._emscripten_bind_btCollisionObject_setUserIndex_1=function(){return f.asm.cf.apply(null,arguments)},ch=f._emscripten_bind_btCollisionObject_setUserPointer_1=function(){return f.asm.df.apply(null,arguments)},dh=f._emscripten_bind_btCollisionObject_setWorldTransform_1=function(){return f.asm.ef.apply(null,arguments)},eh=f._emscripten_bind_btCollisionShape___destroy___0= +function(){return f.asm.ff.apply(null,arguments)},fh=f._emscripten_bind_btCollisionShape_calculateLocalInertia_2=function(){return f.asm.gf.apply(null,arguments)},gh=f._emscripten_bind_btCollisionShape_getLocalScaling_0=function(){return f.asm.hf.apply(null,arguments)},hh=f._emscripten_bind_btCollisionShape_getMargin_0=function(){return f.asm.jf.apply(null,arguments)},ih=f._emscripten_bind_btCollisionShape_setLocalScaling_1=function(){return f.asm.kf.apply(null,arguments)},jh=f._emscripten_bind_btCollisionShape_setMargin_1= +function(){return f.asm.lf.apply(null,arguments)},kh=f._emscripten_bind_btCollisionWorld___destroy___0=function(){return f.asm.mf.apply(null,arguments)},lh=f._emscripten_bind_btCollisionWorld_addCollisionObject_1=function(){return f.asm.nf.apply(null,arguments)},mh=f._emscripten_bind_btCollisionWorld_addCollisionObject_2=function(){return f.asm.of.apply(null,arguments)},nh=f._emscripten_bind_btCollisionWorld_addCollisionObject_3=function(){return f.asm.pf.apply(null,arguments)},oh=f._emscripten_bind_btCollisionWorld_contactPairTest_3= +function(){return f.asm.qf.apply(null,arguments)},ph=f._emscripten_bind_btCollisionWorld_contactTest_2=function(){return f.asm.rf.apply(null,arguments)},qh=f._emscripten_bind_btCollisionWorld_convexSweepTest_5=function(){return f.asm.sf.apply(null,arguments)},rh=f._emscripten_bind_btCollisionWorld_debugDrawObject_3=function(){return f.asm.tf.apply(null,arguments)},sh=f._emscripten_bind_btCollisionWorld_debugDrawWorld_0=function(){return f.asm.uf.apply(null,arguments)},th=f._emscripten_bind_btCollisionWorld_getBroadphase_0= +function(){return f.asm.vf.apply(null,arguments)},uh=f._emscripten_bind_btCollisionWorld_getDebugDrawer_0=function(){return f.asm.wf.apply(null,arguments)},vh=f._emscripten_bind_btCollisionWorld_getDispatchInfo_0=function(){return f.asm.xf.apply(null,arguments)},wh=f._emscripten_bind_btCollisionWorld_getDispatcher_0=function(){return f.asm.yf.apply(null,arguments)},xh=f._emscripten_bind_btCollisionWorld_getPairCache_0=function(){return f.asm.zf.apply(null,arguments)},yh=f._emscripten_bind_btCollisionWorld_rayTest_3= +function(){return f.asm.Af.apply(null,arguments)},zh=f._emscripten_bind_btCollisionWorld_removeCollisionObject_1=function(){return f.asm.Bf.apply(null,arguments)},Ah=f._emscripten_bind_btCollisionWorld_setDebugDrawer_1=function(){return f.asm.Cf.apply(null,arguments)},Bh=f._emscripten_bind_btCollisionWorld_updateSingleAabb_1=function(){return f.asm.Df.apply(null,arguments)},Ch=f._emscripten_bind_btCompoundShape___destroy___0=function(){return f.asm.Ef.apply(null,arguments)},Dh=f._emscripten_bind_btCompoundShape_addChildShape_2= +function(){return f.asm.Ff.apply(null,arguments)},Eh=f._emscripten_bind_btCompoundShape_btCompoundShape_0=function(){return f.asm.Gf.apply(null,arguments)},Fh=f._emscripten_bind_btCompoundShape_btCompoundShape_1=function(){return f.asm.Hf.apply(null,arguments)},Gh=f._emscripten_bind_btCompoundShape_calculateLocalInertia_2=function(){return f.asm.If.apply(null,arguments)},Hh=f._emscripten_bind_btCompoundShape_getChildShape_1=function(){return f.asm.Jf.apply(null,arguments)},Ih=f._emscripten_bind_btCompoundShape_getLocalScaling_0= +function(){return f.asm.Kf.apply(null,arguments)},Jh=f._emscripten_bind_btCompoundShape_getMargin_0=function(){return f.asm.Lf.apply(null,arguments)},Kh=f._emscripten_bind_btCompoundShape_getNumChildShapes_0=function(){return f.asm.Mf.apply(null,arguments)},Lh=f._emscripten_bind_btCompoundShape_removeChildShapeByIndex_1=function(){return f.asm.Nf.apply(null,arguments)},Mh=f._emscripten_bind_btCompoundShape_removeChildShape_1=function(){return f.asm.Of.apply(null,arguments)},Nh=f._emscripten_bind_btCompoundShape_setLocalScaling_1= +function(){return f.asm.Pf.apply(null,arguments)},Oh=f._emscripten_bind_btCompoundShape_setMargin_1=function(){return f.asm.Qf.apply(null,arguments)},Ph=f._emscripten_bind_btCompoundShape_updateChildTransform_2=function(){return f.asm.Rf.apply(null,arguments)},Qh=f._emscripten_bind_btCompoundShape_updateChildTransform_3=function(){return f.asm.Sf.apply(null,arguments)},Rh=f._emscripten_bind_btConcaveShape___destroy___0=function(){return f.asm.Tf.apply(null,arguments)},Sh=f._emscripten_bind_btConcaveShape_calculateLocalInertia_2= +function(){return f.asm.Uf.apply(null,arguments)},Th=f._emscripten_bind_btConcaveShape_getLocalScaling_0=function(){return f.asm.Vf.apply(null,arguments)},Uh=f._emscripten_bind_btConcaveShape_setLocalScaling_1=function(){return f.asm.Wf.apply(null,arguments)},Vh=f._emscripten_bind_btConeShapeX___destroy___0=function(){return f.asm.Xf.apply(null,arguments)},Wh=f._emscripten_bind_btConeShapeX_btConeShapeX_2=function(){return f.asm.Yf.apply(null,arguments)},Xh=f._emscripten_bind_btConeShapeX_calculateLocalInertia_2= +function(){return f.asm.Zf.apply(null,arguments)},Yh=f._emscripten_bind_btConeShapeX_getLocalScaling_0=function(){return f.asm._f.apply(null,arguments)},Zh=f._emscripten_bind_btConeShapeX_setLocalScaling_1=function(){return f.asm.$f.apply(null,arguments)},$h=f._emscripten_bind_btConeShapeZ___destroy___0=function(){return f.asm.ag.apply(null,arguments)},ai=f._emscripten_bind_btConeShapeZ_btConeShapeZ_2=function(){return f.asm.bg.apply(null,arguments)},bi=f._emscripten_bind_btConeShapeZ_calculateLocalInertia_2= +function(){return f.asm.cg.apply(null,arguments)},ci=f._emscripten_bind_btConeShapeZ_getLocalScaling_0=function(){return f.asm.dg.apply(null,arguments)},di=f._emscripten_bind_btConeShapeZ_setLocalScaling_1=function(){return f.asm.eg.apply(null,arguments)},ei=f._emscripten_bind_btConeShape___destroy___0=function(){return f.asm.fg.apply(null,arguments)},fi=f._emscripten_bind_btConeShape_btConeShape_2=function(){return f.asm.gg.apply(null,arguments)},gi=f._emscripten_bind_btConeShape_calculateLocalInertia_2= +function(){return f.asm.hg.apply(null,arguments)},hi=f._emscripten_bind_btConeShape_getLocalScaling_0=function(){return f.asm.ig.apply(null,arguments)},ii=f._emscripten_bind_btConeShape_setLocalScaling_1=function(){return f.asm.jg.apply(null,arguments)},ji=f._emscripten_bind_btConeTwistConstraint___destroy___0=function(){return f.asm.kg.apply(null,arguments)},ki=f._emscripten_bind_btConeTwistConstraint_btConeTwistConstraint_2=function(){return f.asm.lg.apply(null,arguments)},li=f._emscripten_bind_btConeTwistConstraint_btConeTwistConstraint_4= +function(){return f.asm.mg.apply(null,arguments)},mi=f._emscripten_bind_btConeTwistConstraint_enableFeedback_1=function(){return f.asm.ng.apply(null,arguments)},ni=f._emscripten_bind_btConeTwistConstraint_enableMotor_1=function(){return f.asm.og.apply(null,arguments)},oi=f._emscripten_bind_btConeTwistConstraint_getBreakingImpulseThreshold_0=function(){return f.asm.pg.apply(null,arguments)},pi=f._emscripten_bind_btConeTwistConstraint_getParam_2=function(){return f.asm.qg.apply(null,arguments)},qi= +f._emscripten_bind_btConeTwistConstraint_setAngularOnly_1=function(){return f.asm.rg.apply(null,arguments)},ri=f._emscripten_bind_btConeTwistConstraint_setBreakingImpulseThreshold_1=function(){return f.asm.sg.apply(null,arguments)},si=f._emscripten_bind_btConeTwistConstraint_setDamping_1=function(){return f.asm.tg.apply(null,arguments)},ti=f._emscripten_bind_btConeTwistConstraint_setLimit_2=function(){return f.asm.ug.apply(null,arguments)},ui=f._emscripten_bind_btConeTwistConstraint_setMaxMotorImpulseNormalized_1= +function(){return f.asm.vg.apply(null,arguments)},vi=f._emscripten_bind_btConeTwistConstraint_setMaxMotorImpulse_1=function(){return f.asm.wg.apply(null,arguments)},wi=f._emscripten_bind_btConeTwistConstraint_setMotorTargetInConstraintSpace_1=function(){return f.asm.xg.apply(null,arguments)},xi=f._emscripten_bind_btConeTwistConstraint_setMotorTarget_1=function(){return f.asm.yg.apply(null,arguments)},yi=f._emscripten_bind_btConeTwistConstraint_setParam_3=function(){return f.asm.zg.apply(null,arguments)}, +zi=f._emscripten_bind_btConstCollisionObjectArray___destroy___0=function(){return f.asm.Ag.apply(null,arguments)},Ai=f._emscripten_bind_btConstCollisionObjectArray_at_1=function(){return f.asm.Bg.apply(null,arguments)},Bi=f._emscripten_bind_btConstCollisionObjectArray_size_0=function(){return f.asm.Cg.apply(null,arguments)},Ci=f._emscripten_bind_btConstraintSetting___destroy___0=function(){return f.asm.Dg.apply(null,arguments)},Di=f._emscripten_bind_btConstraintSetting_btConstraintSetting_0=function(){return f.asm.Eg.apply(null, +arguments)},Ei=f._emscripten_bind_btConstraintSetting_get_m_damping_0=function(){return f.asm.Fg.apply(null,arguments)},Fi=f._emscripten_bind_btConstraintSetting_get_m_impulseClamp_0=function(){return f.asm.Gg.apply(null,arguments)},Gi=f._emscripten_bind_btConstraintSetting_get_m_tau_0=function(){return f.asm.Hg.apply(null,arguments)},Hi=f._emscripten_bind_btConstraintSetting_set_m_damping_1=function(){return f.asm.Ig.apply(null,arguments)},Ii=f._emscripten_bind_btConstraintSetting_set_m_impulseClamp_1= +function(){return f.asm.Jg.apply(null,arguments)},Ji=f._emscripten_bind_btConstraintSetting_set_m_tau_1=function(){return f.asm.Kg.apply(null,arguments)},Ki=f._emscripten_bind_btConstraintSolver___destroy___0=function(){return f.asm.Lg.apply(null,arguments)},Li=f._emscripten_bind_btContactSolverInfo___destroy___0=function(){return f.asm.Mg.apply(null,arguments)},Mi=f._emscripten_bind_btContactSolverInfo_get_m_numIterations_0=function(){return f.asm.Ng.apply(null,arguments)},Ni=f._emscripten_bind_btContactSolverInfo_get_m_splitImpulsePenetrationThreshold_0= +function(){return f.asm.Og.apply(null,arguments)},Oi=f._emscripten_bind_btContactSolverInfo_get_m_splitImpulse_0=function(){return f.asm.Pg.apply(null,arguments)},Pi=f._emscripten_bind_btContactSolverInfo_set_m_numIterations_1=function(){return f.asm.Qg.apply(null,arguments)},Qi=f._emscripten_bind_btContactSolverInfo_set_m_splitImpulsePenetrationThreshold_1=function(){return f.asm.Rg.apply(null,arguments)},Ri=f._emscripten_bind_btContactSolverInfo_set_m_splitImpulse_1=function(){return f.asm.Sg.apply(null, +arguments)},Si=f._emscripten_bind_btConvexHullShape___destroy___0=function(){return f.asm.Tg.apply(null,arguments)},Ti=f._emscripten_bind_btConvexHullShape_addPoint_1=function(){return f.asm.Ug.apply(null,arguments)},Ui=f._emscripten_bind_btConvexHullShape_addPoint_2=function(){return f.asm.Vg.apply(null,arguments)},Vi=f._emscripten_bind_btConvexHullShape_btConvexHullShape_0=function(){return f.asm.Wg.apply(null,arguments)},Wi=f._emscripten_bind_btConvexHullShape_btConvexHullShape_1=function(){return f.asm.Xg.apply(null, +arguments)},Xi=f._emscripten_bind_btConvexHullShape_btConvexHullShape_2=function(){return f.asm.Yg.apply(null,arguments)},Yi=f._emscripten_bind_btConvexHullShape_calculateLocalInertia_2=function(){return f.asm.Zg.apply(null,arguments)},Zi=f._emscripten_bind_btConvexHullShape_getConvexPolyhedron_0=function(){return f.asm._g.apply(null,arguments)},$i=f._emscripten_bind_btConvexHullShape_getLocalScaling_0=function(){return f.asm.$g.apply(null,arguments)},aj=f._emscripten_bind_btConvexHullShape_getMargin_0= +function(){return f.asm.ah.apply(null,arguments)},bj=f._emscripten_bind_btConvexHullShape_getNumVertices_0=function(){return f.asm.bh.apply(null,arguments)},cj=f._emscripten_bind_btConvexHullShape_initializePolyhedralFeatures_1=function(){return f.asm.ch.apply(null,arguments)},dj=f._emscripten_bind_btConvexHullShape_recalcLocalAabb_0=function(){return f.asm.dh.apply(null,arguments)},ej=f._emscripten_bind_btConvexHullShape_setLocalScaling_1=function(){return f.asm.eh.apply(null,arguments)},fj=f._emscripten_bind_btConvexHullShape_setMargin_1= +function(){return f.asm.fh.apply(null,arguments)},gj=f._emscripten_bind_btConvexPolyhedron___destroy___0=function(){return f.asm.gh.apply(null,arguments)},hj=f._emscripten_bind_btConvexPolyhedron_get_m_faces_0=function(){return f.asm.hh.apply(null,arguments)},ij=f._emscripten_bind_btConvexPolyhedron_get_m_vertices_0=function(){return f.asm.ih.apply(null,arguments)},jj=f._emscripten_bind_btConvexPolyhedron_set_m_faces_1=function(){return f.asm.jh.apply(null,arguments)},kj=f._emscripten_bind_btConvexPolyhedron_set_m_vertices_1= +function(){return f.asm.kh.apply(null,arguments)},lj=f._emscripten_bind_btConvexShape___destroy___0=function(){return f.asm.lh.apply(null,arguments)},mj=f._emscripten_bind_btConvexShape_calculateLocalInertia_2=function(){return f.asm.mh.apply(null,arguments)},nj=f._emscripten_bind_btConvexShape_getLocalScaling_0=function(){return f.asm.nh.apply(null,arguments)},oj=f._emscripten_bind_btConvexShape_getMargin_0=function(){return f.asm.oh.apply(null,arguments)},pj=f._emscripten_bind_btConvexShape_setLocalScaling_1= +function(){return f.asm.ph.apply(null,arguments)},qj=f._emscripten_bind_btConvexShape_setMargin_1=function(){return f.asm.qh.apply(null,arguments)},rj=f._emscripten_bind_btConvexTriangleMeshShape___destroy___0=function(){return f.asm.rh.apply(null,arguments)},sj=f._emscripten_bind_btConvexTriangleMeshShape_btConvexTriangleMeshShape_1=function(){return f.asm.sh.apply(null,arguments)},tj=f._emscripten_bind_btConvexTriangleMeshShape_btConvexTriangleMeshShape_2=function(){return f.asm.th.apply(null,arguments)}, +uj=f._emscripten_bind_btConvexTriangleMeshShape_calculateLocalInertia_2=function(){return f.asm.uh.apply(null,arguments)},vj=f._emscripten_bind_btConvexTriangleMeshShape_getLocalScaling_0=function(){return f.asm.vh.apply(null,arguments)},wj=f._emscripten_bind_btConvexTriangleMeshShape_getMargin_0=function(){return f.asm.wh.apply(null,arguments)},xj=f._emscripten_bind_btConvexTriangleMeshShape_setLocalScaling_1=function(){return f.asm.xh.apply(null,arguments)},yj=f._emscripten_bind_btConvexTriangleMeshShape_setMargin_1= +function(){return f.asm.yh.apply(null,arguments)},zj=f._emscripten_bind_btCylinderShapeX___destroy___0=function(){return f.asm.zh.apply(null,arguments)},Aj=f._emscripten_bind_btCylinderShapeX_btCylinderShapeX_1=function(){return f.asm.Ah.apply(null,arguments)},Bj=f._emscripten_bind_btCylinderShapeX_calculateLocalInertia_2=function(){return f.asm.Bh.apply(null,arguments)},Cj=f._emscripten_bind_btCylinderShapeX_getLocalScaling_0=function(){return f.asm.Ch.apply(null,arguments)},Dj=f._emscripten_bind_btCylinderShapeX_getMargin_0= +function(){return f.asm.Dh.apply(null,arguments)},Ej=f._emscripten_bind_btCylinderShapeX_setLocalScaling_1=function(){return f.asm.Eh.apply(null,arguments)},Fj=f._emscripten_bind_btCylinderShapeX_setMargin_1=function(){return f.asm.Fh.apply(null,arguments)},Gj=f._emscripten_bind_btCylinderShapeZ___destroy___0=function(){return f.asm.Gh.apply(null,arguments)},Hj=f._emscripten_bind_btCylinderShapeZ_btCylinderShapeZ_1=function(){return f.asm.Hh.apply(null,arguments)},Ij=f._emscripten_bind_btCylinderShapeZ_calculateLocalInertia_2= +function(){return f.asm.Ih.apply(null,arguments)},Jj=f._emscripten_bind_btCylinderShapeZ_getLocalScaling_0=function(){return f.asm.Jh.apply(null,arguments)},Kj=f._emscripten_bind_btCylinderShapeZ_getMargin_0=function(){return f.asm.Kh.apply(null,arguments)},Lj=f._emscripten_bind_btCylinderShapeZ_setLocalScaling_1=function(){return f.asm.Lh.apply(null,arguments)},Mj=f._emscripten_bind_btCylinderShapeZ_setMargin_1=function(){return f.asm.Mh.apply(null,arguments)},Nj=f._emscripten_bind_btCylinderShape___destroy___0= +function(){return f.asm.Nh.apply(null,arguments)},Oj=f._emscripten_bind_btCylinderShape_btCylinderShape_1=function(){return f.asm.Oh.apply(null,arguments)},Pj=f._emscripten_bind_btCylinderShape_calculateLocalInertia_2=function(){return f.asm.Ph.apply(null,arguments)},Qj=f._emscripten_bind_btCylinderShape_getLocalScaling_0=function(){return f.asm.Qh.apply(null,arguments)},Rj=f._emscripten_bind_btCylinderShape_getMargin_0=function(){return f.asm.Rh.apply(null,arguments)},Sj=f._emscripten_bind_btCylinderShape_setLocalScaling_1= +function(){return f.asm.Sh.apply(null,arguments)},Tj=f._emscripten_bind_btCylinderShape_setMargin_1=function(){return f.asm.Th.apply(null,arguments)},Uj=f._emscripten_bind_btDbvtBroadphase___destroy___0=function(){return f.asm.Uh.apply(null,arguments)},Vj=f._emscripten_bind_btDbvtBroadphase_btDbvtBroadphase_0=function(){return f.asm.Vh.apply(null,arguments)},Wj=f._emscripten_bind_btDefaultCollisionConfiguration___destroy___0=function(){return f.asm.Wh.apply(null,arguments)},Xj=f._emscripten_bind_btDefaultCollisionConfiguration_btDefaultCollisionConfiguration_0= +function(){return f.asm.Xh.apply(null,arguments)},Yj=f._emscripten_bind_btDefaultCollisionConfiguration_btDefaultCollisionConfiguration_1=function(){return f.asm.Yh.apply(null,arguments)},Zj=f._emscripten_bind_btDefaultCollisionConstructionInfo___destroy___0=function(){return f.asm.Zh.apply(null,arguments)},ak=f._emscripten_bind_btDefaultCollisionConstructionInfo_btDefaultCollisionConstructionInfo_0=function(){return f.asm._h.apply(null,arguments)},bk=f._emscripten_bind_btDefaultMotionState___destroy___0= +function(){return f.asm.$h.apply(null,arguments)},ck=f._emscripten_bind_btDefaultMotionState_btDefaultMotionState_0=function(){return f.asm.ai.apply(null,arguments)},dk=f._emscripten_bind_btDefaultMotionState_btDefaultMotionState_1=function(){return f.asm.bi.apply(null,arguments)},ek=f._emscripten_bind_btDefaultMotionState_btDefaultMotionState_2=function(){return f.asm.ci.apply(null,arguments)},fk=f._emscripten_bind_btDefaultMotionState_getWorldTransform_1=function(){return f.asm.di.apply(null,arguments)}, +gk=f._emscripten_bind_btDefaultMotionState_get_m_graphicsWorldTrans_0=function(){return f.asm.ei.apply(null,arguments)},hk=f._emscripten_bind_btDefaultMotionState_setWorldTransform_1=function(){return f.asm.fi.apply(null,arguments)},ik=f._emscripten_bind_btDefaultMotionState_set_m_graphicsWorldTrans_1=function(){return f.asm.gi.apply(null,arguments)},jk=f._emscripten_bind_btDefaultSoftBodySolver___destroy___0=function(){return f.asm.hi.apply(null,arguments)},kk=f._emscripten_bind_btDefaultSoftBodySolver_btDefaultSoftBodySolver_0= +function(){return f.asm.ii.apply(null,arguments)},lk=f._emscripten_bind_btDefaultVehicleRaycaster___destroy___0=function(){return f.asm.ji.apply(null,arguments)},mk=f._emscripten_bind_btDefaultVehicleRaycaster_btDefaultVehicleRaycaster_1=function(){return f.asm.ki.apply(null,arguments)},nk=f._emscripten_bind_btDefaultVehicleRaycaster_castRay_3=function(){return f.asm.li.apply(null,arguments)},ok=f._emscripten_bind_btDiscreteDynamicsWorld___destroy___0=function(){return f.asm.mi.apply(null,arguments)}, +pk=f._emscripten_bind_btDiscreteDynamicsWorld_addAction_1=function(){return f.asm.ni.apply(null,arguments)},qk=f._emscripten_bind_btDiscreteDynamicsWorld_addCollisionObject_1=function(){return f.asm.oi.apply(null,arguments)},rk=f._emscripten_bind_btDiscreteDynamicsWorld_addCollisionObject_2=function(){return f.asm.pi.apply(null,arguments)},sk=f._emscripten_bind_btDiscreteDynamicsWorld_addCollisionObject_3=function(){return f.asm.qi.apply(null,arguments)},tk=f._emscripten_bind_btDiscreteDynamicsWorld_addConstraint_1= +function(){return f.asm.ri.apply(null,arguments)},uk=f._emscripten_bind_btDiscreteDynamicsWorld_addConstraint_2=function(){return f.asm.si.apply(null,arguments)},vk=f._emscripten_bind_btDiscreteDynamicsWorld_addRigidBody_1=function(){return f.asm.ti.apply(null,arguments)},wk=f._emscripten_bind_btDiscreteDynamicsWorld_addRigidBody_3=function(){return f.asm.ui.apply(null,arguments)},xk=f._emscripten_bind_btDiscreteDynamicsWorld_btDiscreteDynamicsWorld_4=function(){return f.asm.vi.apply(null,arguments)}, +yk=f._emscripten_bind_btDiscreteDynamicsWorld_contactPairTest_3=function(){return f.asm.wi.apply(null,arguments)},zk=f._emscripten_bind_btDiscreteDynamicsWorld_contactTest_2=function(){return f.asm.xi.apply(null,arguments)},Ak=f._emscripten_bind_btDiscreteDynamicsWorld_convexSweepTest_5=function(){return f.asm.yi.apply(null,arguments)},Bk=f._emscripten_bind_btDiscreteDynamicsWorld_debugDrawObject_3=function(){return f.asm.zi.apply(null,arguments)},Ck=f._emscripten_bind_btDiscreteDynamicsWorld_debugDrawWorld_0= +function(){return f.asm.Ai.apply(null,arguments)},Dk=f._emscripten_bind_btDiscreteDynamicsWorld_getBroadphase_0=function(){return f.asm.Bi.apply(null,arguments)},Ek=f._emscripten_bind_btDiscreteDynamicsWorld_getDebugDrawer_0=function(){return f.asm.Ci.apply(null,arguments)},Fk=f._emscripten_bind_btDiscreteDynamicsWorld_getDispatchInfo_0=function(){return f.asm.Di.apply(null,arguments)},Gk=f._emscripten_bind_btDiscreteDynamicsWorld_getDispatcher_0=function(){return f.asm.Ei.apply(null,arguments)}, +Hk=f._emscripten_bind_btDiscreteDynamicsWorld_getGravity_0=function(){return f.asm.Fi.apply(null,arguments)},Ik=f._emscripten_bind_btDiscreteDynamicsWorld_getPairCache_0=function(){return f.asm.Gi.apply(null,arguments)},Jk=f._emscripten_bind_btDiscreteDynamicsWorld_getSolverInfo_0=function(){return f.asm.Hi.apply(null,arguments)},Kk=f._emscripten_bind_btDiscreteDynamicsWorld_rayTest_3=function(){return f.asm.Ii.apply(null,arguments)},Lk=f._emscripten_bind_btDiscreteDynamicsWorld_removeAction_1=function(){return f.asm.Ji.apply(null, +arguments)},Mk=f._emscripten_bind_btDiscreteDynamicsWorld_removeCollisionObject_1=function(){return f.asm.Ki.apply(null,arguments)},Nk=f._emscripten_bind_btDiscreteDynamicsWorld_removeConstraint_1=function(){return f.asm.Li.apply(null,arguments)},Ok=f._emscripten_bind_btDiscreteDynamicsWorld_removeRigidBody_1=function(){return f.asm.Mi.apply(null,arguments)},Pk=f._emscripten_bind_btDiscreteDynamicsWorld_setContactAddedCallback_1=function(){return f.asm.Ni.apply(null,arguments)},Qk=f._emscripten_bind_btDiscreteDynamicsWorld_setContactDestroyedCallback_1= +function(){return f.asm.Oi.apply(null,arguments)},Rk=f._emscripten_bind_btDiscreteDynamicsWorld_setContactProcessedCallback_1=function(){return f.asm.Pi.apply(null,arguments)},Sk=f._emscripten_bind_btDiscreteDynamicsWorld_setDebugDrawer_1=function(){return f.asm.Qi.apply(null,arguments)},Tk=f._emscripten_bind_btDiscreteDynamicsWorld_setGravity_1=function(){return f.asm.Ri.apply(null,arguments)},Uk=f._emscripten_bind_btDiscreteDynamicsWorld_stepSimulation_1=function(){return f.asm.Si.apply(null,arguments)}, +Vk=f._emscripten_bind_btDiscreteDynamicsWorld_stepSimulation_2=function(){return f.asm.Ti.apply(null,arguments)},Wk=f._emscripten_bind_btDiscreteDynamicsWorld_stepSimulation_3=function(){return f.asm.Ui.apply(null,arguments)},Xk=f._emscripten_bind_btDiscreteDynamicsWorld_updateSingleAabb_1=function(){return f.asm.Vi.apply(null,arguments)},Yk=f._emscripten_bind_btDispatcherInfo___destroy___0=function(){return f.asm.Wi.apply(null,arguments)},Zk=f._emscripten_bind_btDispatcherInfo_get_m_allowedCcdPenetration_0= +function(){return f.asm.Xi.apply(null,arguments)},$k=f._emscripten_bind_btDispatcherInfo_get_m_convexConservativeDistanceThreshold_0=function(){return f.asm.Yi.apply(null,arguments)},al=f._emscripten_bind_btDispatcherInfo_get_m_dispatchFunc_0=function(){return f.asm.Zi.apply(null,arguments)},bl=f._emscripten_bind_btDispatcherInfo_get_m_enableSPU_0=function(){return f.asm._i.apply(null,arguments)},cl=f._emscripten_bind_btDispatcherInfo_get_m_enableSatConvex_0=function(){return f.asm.$i.apply(null, +arguments)},dl=f._emscripten_bind_btDispatcherInfo_get_m_stepCount_0=function(){return f.asm.aj.apply(null,arguments)},el=f._emscripten_bind_btDispatcherInfo_get_m_timeOfImpact_0=function(){return f.asm.bj.apply(null,arguments)},fl=f._emscripten_bind_btDispatcherInfo_get_m_timeStep_0=function(){return f.asm.cj.apply(null,arguments)},gl=f._emscripten_bind_btDispatcherInfo_get_m_useContinuous_0=function(){return f.asm.dj.apply(null,arguments)},hl=f._emscripten_bind_btDispatcherInfo_get_m_useConvexConservativeDistanceUtil_0= +function(){return f.asm.ej.apply(null,arguments)},il=f._emscripten_bind_btDispatcherInfo_get_m_useEpa_0=function(){return f.asm.fj.apply(null,arguments)},jl=f._emscripten_bind_btDispatcherInfo_set_m_allowedCcdPenetration_1=function(){return f.asm.gj.apply(null,arguments)},kl=f._emscripten_bind_btDispatcherInfo_set_m_convexConservativeDistanceThreshold_1=function(){return f.asm.hj.apply(null,arguments)},ll=f._emscripten_bind_btDispatcherInfo_set_m_dispatchFunc_1=function(){return f.asm.ij.apply(null, +arguments)},ml=f._emscripten_bind_btDispatcherInfo_set_m_enableSPU_1=function(){return f.asm.jj.apply(null,arguments)},nl=f._emscripten_bind_btDispatcherInfo_set_m_enableSatConvex_1=function(){return f.asm.kj.apply(null,arguments)},ol=f._emscripten_bind_btDispatcherInfo_set_m_stepCount_1=function(){return f.asm.lj.apply(null,arguments)},pl=f._emscripten_bind_btDispatcherInfo_set_m_timeOfImpact_1=function(){return f.asm.mj.apply(null,arguments)},ql=f._emscripten_bind_btDispatcherInfo_set_m_timeStep_1= +function(){return f.asm.nj.apply(null,arguments)},rl=f._emscripten_bind_btDispatcherInfo_set_m_useContinuous_1=function(){return f.asm.oj.apply(null,arguments)},sl=f._emscripten_bind_btDispatcherInfo_set_m_useConvexConservativeDistanceUtil_1=function(){return f.asm.pj.apply(null,arguments)},tl=f._emscripten_bind_btDispatcherInfo_set_m_useEpa_1=function(){return f.asm.qj.apply(null,arguments)},ul=f._emscripten_bind_btDispatcher___destroy___0=function(){return f.asm.rj.apply(null,arguments)},vl=f._emscripten_bind_btDispatcher_getManifoldByIndexInternal_1= +function(){return f.asm.sj.apply(null,arguments)},wl=f._emscripten_bind_btDispatcher_getNumManifolds_0=function(){return f.asm.tj.apply(null,arguments)},xl=f._emscripten_bind_btDynamicsWorld___destroy___0=function(){return f.asm.uj.apply(null,arguments)},yl=f._emscripten_bind_btDynamicsWorld_addAction_1=function(){return f.asm.vj.apply(null,arguments)},zl=f._emscripten_bind_btDynamicsWorld_addCollisionObject_1=function(){return f.asm.wj.apply(null,arguments)},Al=f._emscripten_bind_btDynamicsWorld_addCollisionObject_2= +function(){return f.asm.xj.apply(null,arguments)},Bl=f._emscripten_bind_btDynamicsWorld_addCollisionObject_3=function(){return f.asm.yj.apply(null,arguments)},Cl=f._emscripten_bind_btDynamicsWorld_contactPairTest_3=function(){return f.asm.zj.apply(null,arguments)},Dl=f._emscripten_bind_btDynamicsWorld_contactTest_2=function(){return f.asm.Aj.apply(null,arguments)},El=f._emscripten_bind_btDynamicsWorld_convexSweepTest_5=function(){return f.asm.Bj.apply(null,arguments)},Fl=f._emscripten_bind_btDynamicsWorld_debugDrawObject_3= +function(){return f.asm.Cj.apply(null,arguments)},Gl=f._emscripten_bind_btDynamicsWorld_debugDrawWorld_0=function(){return f.asm.Dj.apply(null,arguments)},Hl=f._emscripten_bind_btDynamicsWorld_getBroadphase_0=function(){return f.asm.Ej.apply(null,arguments)},Il=f._emscripten_bind_btDynamicsWorld_getDebugDrawer_0=function(){return f.asm.Fj.apply(null,arguments)},Jl=f._emscripten_bind_btDynamicsWorld_getDispatchInfo_0=function(){return f.asm.Gj.apply(null,arguments)},Kl=f._emscripten_bind_btDynamicsWorld_getDispatcher_0= +function(){return f.asm.Hj.apply(null,arguments)},Ll=f._emscripten_bind_btDynamicsWorld_getPairCache_0=function(){return f.asm.Ij.apply(null,arguments)},Ml=f._emscripten_bind_btDynamicsWorld_getSolverInfo_0=function(){return f.asm.Jj.apply(null,arguments)},Nl=f._emscripten_bind_btDynamicsWorld_rayTest_3=function(){return f.asm.Kj.apply(null,arguments)},Ol=f._emscripten_bind_btDynamicsWorld_removeAction_1=function(){return f.asm.Lj.apply(null,arguments)},Pl=f._emscripten_bind_btDynamicsWorld_removeCollisionObject_1= +function(){return f.asm.Mj.apply(null,arguments)},Ql=f._emscripten_bind_btDynamicsWorld_setDebugDrawer_1=function(){return f.asm.Nj.apply(null,arguments)},Rl=f._emscripten_bind_btDynamicsWorld_updateSingleAabb_1=function(){return f.asm.Oj.apply(null,arguments)},Sl=f._emscripten_bind_btFaceArray___destroy___0=function(){return f.asm.Pj.apply(null,arguments)},Tl=f._emscripten_bind_btFaceArray_at_1=function(){return f.asm.Qj.apply(null,arguments)},Ul=f._emscripten_bind_btFaceArray_size_0=function(){return f.asm.Rj.apply(null, +arguments)},Vl=f._emscripten_bind_btFace___destroy___0=function(){return f.asm.Sj.apply(null,arguments)},Wl=f._emscripten_bind_btFace_get_m_indices_0=function(){return f.asm.Tj.apply(null,arguments)},Xl=f._emscripten_bind_btFace_get_m_plane_1=function(){return f.asm.Uj.apply(null,arguments)},Yl=f._emscripten_bind_btFace_set_m_indices_1=function(){return f.asm.Vj.apply(null,arguments)},Zl=f._emscripten_bind_btFace_set_m_plane_2=function(){return f.asm.Wj.apply(null,arguments)},$l=f._emscripten_bind_btFixedConstraint___destroy___0= +function(){return f.asm.Xj.apply(null,arguments)},am=f._emscripten_bind_btFixedConstraint_btFixedConstraint_4=function(){return f.asm.Yj.apply(null,arguments)},bm=f._emscripten_bind_btFixedConstraint_enableFeedback_1=function(){return f.asm.Zj.apply(null,arguments)},cm=f._emscripten_bind_btFixedConstraint_getBreakingImpulseThreshold_0=function(){return f.asm._j.apply(null,arguments)},dm=f._emscripten_bind_btFixedConstraint_getParam_2=function(){return f.asm.$j.apply(null,arguments)},em=f._emscripten_bind_btFixedConstraint_setBreakingImpulseThreshold_1= +function(){return f.asm.ak.apply(null,arguments)},fm=f._emscripten_bind_btFixedConstraint_setParam_3=function(){return f.asm.bk.apply(null,arguments)},gm=f._emscripten_bind_btGeneric6DofConstraint___destroy___0=function(){return f.asm.ck.apply(null,arguments)},hm=f._emscripten_bind_btGeneric6DofConstraint_btGeneric6DofConstraint_3=function(){return f.asm.dk.apply(null,arguments)},im=f._emscripten_bind_btGeneric6DofConstraint_btGeneric6DofConstraint_5=function(){return f.asm.ek.apply(null,arguments)}, +jm=f._emscripten_bind_btGeneric6DofConstraint_enableFeedback_1=function(){return f.asm.fk.apply(null,arguments)},km=f._emscripten_bind_btGeneric6DofConstraint_getBreakingImpulseThreshold_0=function(){return f.asm.gk.apply(null,arguments)},lm=f._emscripten_bind_btGeneric6DofConstraint_getFrameOffsetA_0=function(){return f.asm.hk.apply(null,arguments)},mm=f._emscripten_bind_btGeneric6DofConstraint_getParam_2=function(){return f.asm.ik.apply(null,arguments)},nm=f._emscripten_bind_btGeneric6DofConstraint_setAngularLowerLimit_1= +function(){return f.asm.jk.apply(null,arguments)},om=f._emscripten_bind_btGeneric6DofConstraint_setAngularUpperLimit_1=function(){return f.asm.kk.apply(null,arguments)},pm=f._emscripten_bind_btGeneric6DofConstraint_setBreakingImpulseThreshold_1=function(){return f.asm.lk.apply(null,arguments)},qm=f._emscripten_bind_btGeneric6DofConstraint_setLinearLowerLimit_1=function(){return f.asm.mk.apply(null,arguments)},rm=f._emscripten_bind_btGeneric6DofConstraint_setLinearUpperLimit_1=function(){return f.asm.nk.apply(null, +arguments)},sm=f._emscripten_bind_btGeneric6DofConstraint_setParam_3=function(){return f.asm.ok.apply(null,arguments)},tm=f._emscripten_bind_btGeneric6DofSpringConstraint___destroy___0=function(){return f.asm.pk.apply(null,arguments)},um=f._emscripten_bind_btGeneric6DofSpringConstraint_btGeneric6DofSpringConstraint_3=function(){return f.asm.qk.apply(null,arguments)},vm=f._emscripten_bind_btGeneric6DofSpringConstraint_btGeneric6DofSpringConstraint_5=function(){return f.asm.rk.apply(null,arguments)}, +wm=f._emscripten_bind_btGeneric6DofSpringConstraint_enableFeedback_1=function(){return f.asm.sk.apply(null,arguments)},xm=f._emscripten_bind_btGeneric6DofSpringConstraint_enableSpring_2=function(){return f.asm.tk.apply(null,arguments)},ym=f._emscripten_bind_btGeneric6DofSpringConstraint_getBreakingImpulseThreshold_0=function(){return f.asm.uk.apply(null,arguments)},zm=f._emscripten_bind_btGeneric6DofSpringConstraint_getFrameOffsetA_0=function(){return f.asm.vk.apply(null,arguments)},Am=f._emscripten_bind_btGeneric6DofSpringConstraint_getParam_2= +function(){return f.asm.wk.apply(null,arguments)},Bm=f._emscripten_bind_btGeneric6DofSpringConstraint_setAngularLowerLimit_1=function(){return f.asm.xk.apply(null,arguments)},Cm=f._emscripten_bind_btGeneric6DofSpringConstraint_setAngularUpperLimit_1=function(){return f.asm.yk.apply(null,arguments)},Dm=f._emscripten_bind_btGeneric6DofSpringConstraint_setBreakingImpulseThreshold_1=function(){return f.asm.zk.apply(null,arguments)},Em=f._emscripten_bind_btGeneric6DofSpringConstraint_setDamping_2=function(){return f.asm.Ak.apply(null, +arguments)},Fm=f._emscripten_bind_btGeneric6DofSpringConstraint_setEquilibriumPoint_0=function(){return f.asm.Bk.apply(null,arguments)},Gm=f._emscripten_bind_btGeneric6DofSpringConstraint_setEquilibriumPoint_1=function(){return f.asm.Ck.apply(null,arguments)},Hm=f._emscripten_bind_btGeneric6DofSpringConstraint_setEquilibriumPoint_2=function(){return f.asm.Dk.apply(null,arguments)},Im=f._emscripten_bind_btGeneric6DofSpringConstraint_setLinearLowerLimit_1=function(){return f.asm.Ek.apply(null,arguments)}, +Jm=f._emscripten_bind_btGeneric6DofSpringConstraint_setLinearUpperLimit_1=function(){return f.asm.Fk.apply(null,arguments)},Km=f._emscripten_bind_btGeneric6DofSpringConstraint_setParam_3=function(){return f.asm.Gk.apply(null,arguments)},Lm=f._emscripten_bind_btGeneric6DofSpringConstraint_setStiffness_2=function(){return f.asm.Hk.apply(null,arguments)},Mm=f._emscripten_bind_btGhostObject___destroy___0=function(){return f.asm.Ik.apply(null,arguments)},Nm=f._emscripten_bind_btGhostObject_activate_0= +function(){return f.asm.Jk.apply(null,arguments)},Om=f._emscripten_bind_btGhostObject_activate_1=function(){return f.asm.Kk.apply(null,arguments)},Pm=f._emscripten_bind_btGhostObject_btGhostObject_0=function(){return f.asm.Lk.apply(null,arguments)},Qm=f._emscripten_bind_btGhostObject_forceActivationState_1=function(){return f.asm.Mk.apply(null,arguments)},Rm=f._emscripten_bind_btGhostObject_getBroadphaseHandle_0=function(){return f.asm.Nk.apply(null,arguments)},Sm=f._emscripten_bind_btGhostObject_getCollisionFlags_0= +function(){return f.asm.Ok.apply(null,arguments)},Tm=f._emscripten_bind_btGhostObject_getCollisionShape_0=function(){return f.asm.Pk.apply(null,arguments)},Um=f._emscripten_bind_btGhostObject_getFriction_0=function(){return f.asm.Qk.apply(null,arguments)},Vm=f._emscripten_bind_btGhostObject_getNumOverlappingObjects_0=function(){return f.asm.Rk.apply(null,arguments)},Wm=f._emscripten_bind_btGhostObject_getOverlappingObject_1=function(){return f.asm.Sk.apply(null,arguments)},Xm=f._emscripten_bind_btGhostObject_getRestitution_0= +function(){return f.asm.Tk.apply(null,arguments)},Ym=f._emscripten_bind_btGhostObject_getRollingFriction_0=function(){return f.asm.Uk.apply(null,arguments)},Zm=f._emscripten_bind_btGhostObject_getUserIndex_0=function(){return f.asm.Vk.apply(null,arguments)},$m=f._emscripten_bind_btGhostObject_getUserPointer_0=function(){return f.asm.Wk.apply(null,arguments)},an=f._emscripten_bind_btGhostObject_getWorldTransform_0=function(){return f.asm.Xk.apply(null,arguments)},bn=f._emscripten_bind_btGhostObject_isActive_0= +function(){return f.asm.Yk.apply(null,arguments)},cn=f._emscripten_bind_btGhostObject_isKinematicObject_0=function(){return f.asm.Zk.apply(null,arguments)},dn=f._emscripten_bind_btGhostObject_isStaticObject_0=function(){return f.asm._k.apply(null,arguments)},en=f._emscripten_bind_btGhostObject_isStaticOrKinematicObject_0=function(){return f.asm.$k.apply(null,arguments)},fn=f._emscripten_bind_btGhostObject_setActivationState_1=function(){return f.asm.al.apply(null,arguments)},gn=f._emscripten_bind_btGhostObject_setAnisotropicFriction_2= +function(){return f.asm.bl.apply(null,arguments)},hn=f._emscripten_bind_btGhostObject_setCcdMotionThreshold_1=function(){return f.asm.cl.apply(null,arguments)},jn=f._emscripten_bind_btGhostObject_setCcdSweptSphereRadius_1=function(){return f.asm.dl.apply(null,arguments)},kn=f._emscripten_bind_btGhostObject_setCollisionFlags_1=function(){return f.asm.el.apply(null,arguments)},ln=f._emscripten_bind_btGhostObject_setCollisionShape_1=function(){return f.asm.fl.apply(null,arguments)},mn=f._emscripten_bind_btGhostObject_setContactProcessingThreshold_1= +function(){return f.asm.gl.apply(null,arguments)},nn=f._emscripten_bind_btGhostObject_setFriction_1=function(){return f.asm.hl.apply(null,arguments)},on=f._emscripten_bind_btGhostObject_setRestitution_1=function(){return f.asm.il.apply(null,arguments)},pn=f._emscripten_bind_btGhostObject_setRollingFriction_1=function(){return f.asm.jl.apply(null,arguments)},qn=f._emscripten_bind_btGhostObject_setUserIndex_1=function(){return f.asm.kl.apply(null,arguments)},rn=f._emscripten_bind_btGhostObject_setUserPointer_1= +function(){return f.asm.ll.apply(null,arguments)},sn=f._emscripten_bind_btGhostObject_setWorldTransform_1=function(){return f.asm.ml.apply(null,arguments)},tn=f._emscripten_bind_btGhostPairCallback___destroy___0=function(){return f.asm.nl.apply(null,arguments)},un=f._emscripten_bind_btGhostPairCallback_btGhostPairCallback_0=function(){return f.asm.ol.apply(null,arguments)},vn=f._emscripten_bind_btHeightfieldTerrainShape___destroy___0=function(){return f.asm.pl.apply(null,arguments)},wn=f._emscripten_bind_btHeightfieldTerrainShape_btHeightfieldTerrainShape_9= +function(){return f.asm.ql.apply(null,arguments)},xn=f._emscripten_bind_btHeightfieldTerrainShape_calculateLocalInertia_2=function(){return f.asm.rl.apply(null,arguments)},yn=f._emscripten_bind_btHeightfieldTerrainShape_getLocalScaling_0=function(){return f.asm.sl.apply(null,arguments)},zn=f._emscripten_bind_btHeightfieldTerrainShape_getMargin_0=function(){return f.asm.tl.apply(null,arguments)},An=f._emscripten_bind_btHeightfieldTerrainShape_setLocalScaling_1=function(){return f.asm.ul.apply(null, +arguments)},Bn=f._emscripten_bind_btHeightfieldTerrainShape_setMargin_1=function(){return f.asm.vl.apply(null,arguments)},Cn=f._emscripten_bind_btHingeConstraint___destroy___0=function(){return f.asm.wl.apply(null,arguments)},Dn=f._emscripten_bind_btHingeConstraint_btHingeConstraint_2=function(){return f.asm.xl.apply(null,arguments)},En=f._emscripten_bind_btHingeConstraint_btHingeConstraint_3=function(){return f.asm.yl.apply(null,arguments)},Fn=f._emscripten_bind_btHingeConstraint_btHingeConstraint_4= +function(){return f.asm.zl.apply(null,arguments)},Gn=f._emscripten_bind_btHingeConstraint_btHingeConstraint_5=function(){return f.asm.Al.apply(null,arguments)},Hn=f._emscripten_bind_btHingeConstraint_btHingeConstraint_6=function(){return f.asm.Bl.apply(null,arguments)},In=f._emscripten_bind_btHingeConstraint_btHingeConstraint_7=function(){return f.asm.Cl.apply(null,arguments)},Jn=f._emscripten_bind_btHingeConstraint_enableAngularMotor_3=function(){return f.asm.Dl.apply(null,arguments)},Kn=f._emscripten_bind_btHingeConstraint_enableFeedback_1= +function(){return f.asm.El.apply(null,arguments)},Ln=f._emscripten_bind_btHingeConstraint_enableMotor_1=function(){return f.asm.Fl.apply(null,arguments)},Mn=f._emscripten_bind_btHingeConstraint_getBreakingImpulseThreshold_0=function(){return f.asm.Gl.apply(null,arguments)},Nn=f._emscripten_bind_btHingeConstraint_getParam_2=function(){return f.asm.Hl.apply(null,arguments)},On=f._emscripten_bind_btHingeConstraint_setAngularOnly_1=function(){return f.asm.Il.apply(null,arguments)},Pn=f._emscripten_bind_btHingeConstraint_setBreakingImpulseThreshold_1= +function(){return f.asm.Jl.apply(null,arguments)},Qn=f._emscripten_bind_btHingeConstraint_setLimit_4=function(){return f.asm.Kl.apply(null,arguments)},Rn=f._emscripten_bind_btHingeConstraint_setLimit_5=function(){return f.asm.Ll.apply(null,arguments)},Sn=f._emscripten_bind_btHingeConstraint_setMaxMotorImpulse_1=function(){return f.asm.Ml.apply(null,arguments)},Tn=f._emscripten_bind_btHingeConstraint_setMotorTarget_2=function(){return f.asm.Nl.apply(null,arguments)},Un=f._emscripten_bind_btHingeConstraint_setParam_3= +function(){return f.asm.Ol.apply(null,arguments)},Vn=f._emscripten_bind_btIDebugDraw___destroy___0=function(){return f.asm.Pl.apply(null,arguments)},Wn=f._emscripten_bind_btIDebugDraw_draw3dText_2=function(){return f.asm.Ql.apply(null,arguments)},Xn=f._emscripten_bind_btIDebugDraw_drawContactPoint_5=function(){return f.asm.Rl.apply(null,arguments)},Yn=f._emscripten_bind_btIDebugDraw_drawLine_3=function(){return f.asm.Sl.apply(null,arguments)},Zn=f._emscripten_bind_btIDebugDraw_getDebugMode_0=function(){return f.asm.Tl.apply(null, +arguments)},$n=f._emscripten_bind_btIDebugDraw_reportErrorWarning_1=function(){return f.asm.Ul.apply(null,arguments)},ao=f._emscripten_bind_btIDebugDraw_setDebugMode_1=function(){return f.asm.Vl.apply(null,arguments)},bo=f._emscripten_bind_btIndexedMeshArray___destroy___0=function(){return f.asm.Wl.apply(null,arguments)},co=f._emscripten_bind_btIndexedMeshArray_at_1=function(){return f.asm.Xl.apply(null,arguments)},eo=f._emscripten_bind_btIndexedMeshArray_size_0=function(){return f.asm.Yl.apply(null, +arguments)},fo=f._emscripten_bind_btIndexedMesh___destroy___0=function(){return f.asm.Zl.apply(null,arguments)},go=f._emscripten_bind_btIndexedMesh_get_m_numTriangles_0=function(){return f.asm._l.apply(null,arguments)},ho=f._emscripten_bind_btIndexedMesh_set_m_numTriangles_1=function(){return f.asm.$l.apply(null,arguments)},io=f._emscripten_bind_btIntArray___destroy___0=function(){return f.asm.am.apply(null,arguments)},jo=f._emscripten_bind_btIntArray_at_1=function(){return f.asm.bm.apply(null,arguments)}, +ko=f._emscripten_bind_btIntArray_size_0=function(){return f.asm.cm.apply(null,arguments)},lo=f._emscripten_bind_btKinematicCharacterController___destroy___0=function(){return f.asm.dm.apply(null,arguments)},mo=f._emscripten_bind_btKinematicCharacterController_btKinematicCharacterController_3=function(){return f.asm.em.apply(null,arguments)},no=f._emscripten_bind_btKinematicCharacterController_btKinematicCharacterController_4=function(){return f.asm.fm.apply(null,arguments)},oo=f._emscripten_bind_btKinematicCharacterController_canJump_0= +function(){return f.asm.gm.apply(null,arguments)},po=f._emscripten_bind_btKinematicCharacterController_getGhostObject_0=function(){return f.asm.hm.apply(null,arguments)},qo=f._emscripten_bind_btKinematicCharacterController_getGravity_0=function(){return f.asm.im.apply(null,arguments)},ro=f._emscripten_bind_btKinematicCharacterController_getMaxSlope_0=function(){return f.asm.jm.apply(null,arguments)},so=f._emscripten_bind_btKinematicCharacterController_jump_0=function(){return f.asm.km.apply(null, +arguments)},to=f._emscripten_bind_btKinematicCharacterController_onGround_0=function(){return f.asm.lm.apply(null,arguments)},uo=f._emscripten_bind_btKinematicCharacterController_playerStep_2=function(){return f.asm.mm.apply(null,arguments)},vo=f._emscripten_bind_btKinematicCharacterController_preStep_1=function(){return f.asm.nm.apply(null,arguments)},wo=f._emscripten_bind_btKinematicCharacterController_setFallSpeed_1=function(){return f.asm.om.apply(null,arguments)},xo=f._emscripten_bind_btKinematicCharacterController_setGravity_1= +function(){return f.asm.pm.apply(null,arguments)},yo=f._emscripten_bind_btKinematicCharacterController_setJumpSpeed_1=function(){return f.asm.qm.apply(null,arguments)},zo=f._emscripten_bind_btKinematicCharacterController_setMaxJumpHeight_1=function(){return f.asm.rm.apply(null,arguments)},Ao=f._emscripten_bind_btKinematicCharacterController_setMaxSlope_1=function(){return f.asm.sm.apply(null,arguments)},Bo=f._emscripten_bind_btKinematicCharacterController_setUpAxis_1=function(){return f.asm.tm.apply(null, +arguments)},Co=f._emscripten_bind_btKinematicCharacterController_setUpInterpolate_1=function(){return f.asm.um.apply(null,arguments)},Do=f._emscripten_bind_btKinematicCharacterController_setUseGhostSweepTest_1=function(){return f.asm.vm.apply(null,arguments)},Eo=f._emscripten_bind_btKinematicCharacterController_setVelocityForTimeInterval_2=function(){return f.asm.wm.apply(null,arguments)},Fo=f._emscripten_bind_btKinematicCharacterController_setWalkDirection_1=function(){return f.asm.xm.apply(null, +arguments)},Go=f._emscripten_bind_btKinematicCharacterController_updateAction_2=function(){return f.asm.ym.apply(null,arguments)},Ho=f._emscripten_bind_btKinematicCharacterController_warp_1=function(){return f.asm.zm.apply(null,arguments)},Io=f._emscripten_bind_btManifoldPoint___destroy___0=function(){return f.asm.Am.apply(null,arguments)},Jo=f._emscripten_bind_btManifoldPoint_getAppliedImpulse_0=function(){return f.asm.Bm.apply(null,arguments)},Ko=f._emscripten_bind_btManifoldPoint_getDistance_0= +function(){return f.asm.Cm.apply(null,arguments)},Lo=f._emscripten_bind_btManifoldPoint_getPositionWorldOnA_0=function(){return f.asm.Dm.apply(null,arguments)},Mo=f._emscripten_bind_btManifoldPoint_getPositionWorldOnB_0=function(){return f.asm.Em.apply(null,arguments)},No=f._emscripten_bind_btManifoldPoint_get_m_localPointA_0=function(){return f.asm.Fm.apply(null,arguments)},Oo=f._emscripten_bind_btManifoldPoint_get_m_localPointB_0=function(){return f.asm.Gm.apply(null,arguments)},Po=f._emscripten_bind_btManifoldPoint_get_m_normalWorldOnB_0= +function(){return f.asm.Hm.apply(null,arguments)},Qo=f._emscripten_bind_btManifoldPoint_get_m_positionWorldOnA_0=function(){return f.asm.Im.apply(null,arguments)},Ro=f._emscripten_bind_btManifoldPoint_get_m_positionWorldOnB_0=function(){return f.asm.Jm.apply(null,arguments)},So=f._emscripten_bind_btManifoldPoint_get_m_userPersistentData_0=function(){return f.asm.Km.apply(null,arguments)},To=f._emscripten_bind_btManifoldPoint_set_m_localPointA_1=function(){return f.asm.Lm.apply(null,arguments)},Uo= +f._emscripten_bind_btManifoldPoint_set_m_localPointB_1=function(){return f.asm.Mm.apply(null,arguments)},Vo=f._emscripten_bind_btManifoldPoint_set_m_normalWorldOnB_1=function(){return f.asm.Nm.apply(null,arguments)},Wo=f._emscripten_bind_btManifoldPoint_set_m_positionWorldOnA_1=function(){return f.asm.Om.apply(null,arguments)},Xo=f._emscripten_bind_btManifoldPoint_set_m_positionWorldOnB_1=function(){return f.asm.Pm.apply(null,arguments)},Yo=f._emscripten_bind_btManifoldPoint_set_m_userPersistentData_1= +function(){return f.asm.Qm.apply(null,arguments)},Zo=f._emscripten_bind_btMatrix3x3___destroy___0=function(){return f.asm.Rm.apply(null,arguments)},$o=f._emscripten_bind_btMatrix3x3_getRotation_1=function(){return f.asm.Sm.apply(null,arguments)},ap=f._emscripten_bind_btMatrix3x3_getRow_1=function(){return f.asm.Tm.apply(null,arguments)},bp=f._emscripten_bind_btMatrix3x3_setEulerZYX_3=function(){return f.asm.Um.apply(null,arguments)},cp=f._emscripten_bind_btMotionState___destroy___0=function(){return f.asm.Vm.apply(null, +arguments)},dp=f._emscripten_bind_btMotionState_getWorldTransform_1=function(){return f.asm.Wm.apply(null,arguments)},ep=f._emscripten_bind_btMotionState_setWorldTransform_1=function(){return f.asm.Xm.apply(null,arguments)},fp=f._emscripten_bind_btMultiSphereShape___destroy___0=function(){return f.asm.Ym.apply(null,arguments)},gp=f._emscripten_bind_btMultiSphereShape_btMultiSphereShape_3=function(){return f.asm.Zm.apply(null,arguments)},hp=f._emscripten_bind_btMultiSphereShape_calculateLocalInertia_2= +function(){return f.asm._m.apply(null,arguments)},ip=f._emscripten_bind_btMultiSphereShape_getLocalScaling_0=function(){return f.asm.$m.apply(null,arguments)},jp=f._emscripten_bind_btMultiSphereShape_setLocalScaling_1=function(){return f.asm.an.apply(null,arguments)},kp=f._emscripten_bind_btOverlappingPairCache___destroy___0=function(){return f.asm.bn.apply(null,arguments)},lp=f._emscripten_bind_btOverlappingPairCache_getNumOverlappingPairs_0=function(){return f.asm.cn.apply(null,arguments)},mp=f._emscripten_bind_btOverlappingPairCache_setInternalGhostPairCallback_1= +function(){return f.asm.dn.apply(null,arguments)},np=f._emscripten_bind_btOverlappingPairCallback___destroy___0=function(){return f.asm.en.apply(null,arguments)},op=f._emscripten_bind_btPairCachingGhostObject___destroy___0=function(){return f.asm.fn.apply(null,arguments)},pp=f._emscripten_bind_btPairCachingGhostObject_activate_0=function(){return f.asm.gn.apply(null,arguments)},qp=f._emscripten_bind_btPairCachingGhostObject_activate_1=function(){return f.asm.hn.apply(null,arguments)},rp=f._emscripten_bind_btPairCachingGhostObject_btPairCachingGhostObject_0= +function(){return f.asm.jn.apply(null,arguments)},sp=f._emscripten_bind_btPairCachingGhostObject_forceActivationState_1=function(){return f.asm.kn.apply(null,arguments)},tp=f._emscripten_bind_btPairCachingGhostObject_getBroadphaseHandle_0=function(){return f.asm.ln.apply(null,arguments)},up=f._emscripten_bind_btPairCachingGhostObject_getCollisionFlags_0=function(){return f.asm.mn.apply(null,arguments)},vp=f._emscripten_bind_btPairCachingGhostObject_getCollisionShape_0=function(){return f.asm.nn.apply(null, +arguments)},wp=f._emscripten_bind_btPairCachingGhostObject_getFriction_0=function(){return f.asm.on.apply(null,arguments)},xp=f._emscripten_bind_btPairCachingGhostObject_getNumOverlappingObjects_0=function(){return f.asm.pn.apply(null,arguments)},yp=f._emscripten_bind_btPairCachingGhostObject_getOverlappingObject_1=function(){return f.asm.qn.apply(null,arguments)},zp=f._emscripten_bind_btPairCachingGhostObject_getRestitution_0=function(){return f.asm.rn.apply(null,arguments)},Ap=f._emscripten_bind_btPairCachingGhostObject_getRollingFriction_0= +function(){return f.asm.sn.apply(null,arguments)},Bp=f._emscripten_bind_btPairCachingGhostObject_getUserIndex_0=function(){return f.asm.tn.apply(null,arguments)},Cp=f._emscripten_bind_btPairCachingGhostObject_getUserPointer_0=function(){return f.asm.un.apply(null,arguments)},Dp=f._emscripten_bind_btPairCachingGhostObject_getWorldTransform_0=function(){return f.asm.vn.apply(null,arguments)},Ep=f._emscripten_bind_btPairCachingGhostObject_isActive_0=function(){return f.asm.wn.apply(null,arguments)}, +Fp=f._emscripten_bind_btPairCachingGhostObject_isKinematicObject_0=function(){return f.asm.xn.apply(null,arguments)},Gp=f._emscripten_bind_btPairCachingGhostObject_isStaticObject_0=function(){return f.asm.yn.apply(null,arguments)},Hp=f._emscripten_bind_btPairCachingGhostObject_isStaticOrKinematicObject_0=function(){return f.asm.zn.apply(null,arguments)},Ip=f._emscripten_bind_btPairCachingGhostObject_setActivationState_1=function(){return f.asm.An.apply(null,arguments)},Jp=f._emscripten_bind_btPairCachingGhostObject_setAnisotropicFriction_2= +function(){return f.asm.Bn.apply(null,arguments)},Kp=f._emscripten_bind_btPairCachingGhostObject_setCcdMotionThreshold_1=function(){return f.asm.Cn.apply(null,arguments)},Lp=f._emscripten_bind_btPairCachingGhostObject_setCcdSweptSphereRadius_1=function(){return f.asm.Dn.apply(null,arguments)},Mp=f._emscripten_bind_btPairCachingGhostObject_setCollisionFlags_1=function(){return f.asm.En.apply(null,arguments)},Np=f._emscripten_bind_btPairCachingGhostObject_setCollisionShape_1=function(){return f.asm.Fn.apply(null, +arguments)},Op=f._emscripten_bind_btPairCachingGhostObject_setContactProcessingThreshold_1=function(){return f.asm.Gn.apply(null,arguments)},Pp=f._emscripten_bind_btPairCachingGhostObject_setFriction_1=function(){return f.asm.Hn.apply(null,arguments)},Qp=f._emscripten_bind_btPairCachingGhostObject_setRestitution_1=function(){return f.asm.In.apply(null,arguments)},Rp=f._emscripten_bind_btPairCachingGhostObject_setRollingFriction_1=function(){return f.asm.Jn.apply(null,arguments)},Sp=f._emscripten_bind_btPairCachingGhostObject_setUserIndex_1= +function(){return f.asm.Kn.apply(null,arguments)},Tp=f._emscripten_bind_btPairCachingGhostObject_setUserPointer_1=function(){return f.asm.Ln.apply(null,arguments)},Up=f._emscripten_bind_btPairCachingGhostObject_setWorldTransform_1=function(){return f.asm.Mn.apply(null,arguments)},Vp=f._emscripten_bind_btPersistentManifold___destroy___0=function(){return f.asm.Nn.apply(null,arguments)},Wp=f._emscripten_bind_btPersistentManifold_btPersistentManifold_0=function(){return f.asm.On.apply(null,arguments)}, +Xp=f._emscripten_bind_btPersistentManifold_getBody0_0=function(){return f.asm.Pn.apply(null,arguments)},Yp=f._emscripten_bind_btPersistentManifold_getBody1_0=function(){return f.asm.Qn.apply(null,arguments)},Zp=f._emscripten_bind_btPersistentManifold_getContactPoint_1=function(){return f.asm.Rn.apply(null,arguments)},$p=f._emscripten_bind_btPersistentManifold_getNumContacts_0=function(){return f.asm.Sn.apply(null,arguments)},aq=f._emscripten_bind_btPoint2PointConstraint___destroy___0=function(){return f.asm.Tn.apply(null, +arguments)},bq=f._emscripten_bind_btPoint2PointConstraint_btPoint2PointConstraint_2=function(){return f.asm.Un.apply(null,arguments)},cq=f._emscripten_bind_btPoint2PointConstraint_btPoint2PointConstraint_4=function(){return f.asm.Vn.apply(null,arguments)},dq=f._emscripten_bind_btPoint2PointConstraint_enableFeedback_1=function(){return f.asm.Wn.apply(null,arguments)},eq=f._emscripten_bind_btPoint2PointConstraint_getBreakingImpulseThreshold_0=function(){return f.asm.Xn.apply(null,arguments)},fq=f._emscripten_bind_btPoint2PointConstraint_getParam_2= +function(){return f.asm.Yn.apply(null,arguments)},gq=f._emscripten_bind_btPoint2PointConstraint_getPivotInA_0=function(){return f.asm.Zn.apply(null,arguments)},hq=f._emscripten_bind_btPoint2PointConstraint_getPivotInB_0=function(){return f.asm._n.apply(null,arguments)},iq=f._emscripten_bind_btPoint2PointConstraint_get_m_setting_0=function(){return f.asm.$n.apply(null,arguments)},jq=f._emscripten_bind_btPoint2PointConstraint_setBreakingImpulseThreshold_1=function(){return f.asm.ao.apply(null,arguments)}, +kq=f._emscripten_bind_btPoint2PointConstraint_setParam_3=function(){return f.asm.bo.apply(null,arguments)},lq=f._emscripten_bind_btPoint2PointConstraint_setPivotA_1=function(){return f.asm.co.apply(null,arguments)},mq=f._emscripten_bind_btPoint2PointConstraint_setPivotB_1=function(){return f.asm.eo.apply(null,arguments)},nq=f._emscripten_bind_btPoint2PointConstraint_set_m_setting_1=function(){return f.asm.fo.apply(null,arguments)},oq=f._emscripten_bind_btQuadWord___destroy___0=function(){return f.asm.go.apply(null, +arguments)},pq=f._emscripten_bind_btQuadWord_setW_1=function(){return f.asm.ho.apply(null,arguments)},qq=f._emscripten_bind_btQuadWord_setX_1=function(){return f.asm.io.apply(null,arguments)},rq=f._emscripten_bind_btQuadWord_setY_1=function(){return f.asm.jo.apply(null,arguments)},sq=f._emscripten_bind_btQuadWord_setZ_1=function(){return f.asm.ko.apply(null,arguments)},tq=f._emscripten_bind_btQuadWord_w_0=function(){return f.asm.lo.apply(null,arguments)},uq=f._emscripten_bind_btQuadWord_x_0=function(){return f.asm.mo.apply(null, +arguments)},vq=f._emscripten_bind_btQuadWord_y_0=function(){return f.asm.no.apply(null,arguments)},wq=f._emscripten_bind_btQuadWord_z_0=function(){return f.asm.oo.apply(null,arguments)},xq=f._emscripten_bind_btQuaternion___destroy___0=function(){return f.asm.po.apply(null,arguments)},yq=f._emscripten_bind_btQuaternion_angleShortestPath_1=function(){return f.asm.qo.apply(null,arguments)},zq=f._emscripten_bind_btQuaternion_angle_1=function(){return f.asm.ro.apply(null,arguments)},Aq=f._emscripten_bind_btQuaternion_btQuaternion_4= +function(){return f.asm.so.apply(null,arguments)},Bq=f._emscripten_bind_btQuaternion_dot_1=function(){return f.asm.to.apply(null,arguments)},Cq=f._emscripten_bind_btQuaternion_getAngleShortestPath_0=function(){return f.asm.uo.apply(null,arguments)},Dq=f._emscripten_bind_btQuaternion_getAngle_0=function(){return f.asm.vo.apply(null,arguments)},Eq=f._emscripten_bind_btQuaternion_getAxis_0=function(){return f.asm.wo.apply(null,arguments)},Fq=f._emscripten_bind_btQuaternion_inverse_0=function(){return f.asm.xo.apply(null, +arguments)},Gq=f._emscripten_bind_btQuaternion_length2_0=function(){return f.asm.yo.apply(null,arguments)},Hq=f._emscripten_bind_btQuaternion_length_0=function(){return f.asm.zo.apply(null,arguments)},Iq=f._emscripten_bind_btQuaternion_normalize_0=function(){return f.asm.Ao.apply(null,arguments)},Jq=f._emscripten_bind_btQuaternion_normalized_0=function(){return f.asm.Bo.apply(null,arguments)},Kq=f._emscripten_bind_btQuaternion_op_add_1=function(){return f.asm.Co.apply(null,arguments)},Lq=f._emscripten_bind_btQuaternion_op_div_1= +function(){return f.asm.Do.apply(null,arguments)},Mq=f._emscripten_bind_btQuaternion_op_mul_1=function(){return f.asm.Eo.apply(null,arguments)},Nq=f._emscripten_bind_btQuaternion_op_mulq_1=function(){return f.asm.Fo.apply(null,arguments)},Oq=f._emscripten_bind_btQuaternion_op_sub_1=function(){return f.asm.Go.apply(null,arguments)},Pq=f._emscripten_bind_btQuaternion_setEulerZYX_3=function(){return f.asm.Ho.apply(null,arguments)},Qq=f._emscripten_bind_btQuaternion_setRotation_2=function(){return f.asm.Io.apply(null, +arguments)},Rq=f._emscripten_bind_btQuaternion_setValue_4=function(){return f.asm.Jo.apply(null,arguments)},Sq=f._emscripten_bind_btQuaternion_setW_1=function(){return f.asm.Ko.apply(null,arguments)},Tq=f._emscripten_bind_btQuaternion_setX_1=function(){return f.asm.Lo.apply(null,arguments)},Uq=f._emscripten_bind_btQuaternion_setY_1=function(){return f.asm.Mo.apply(null,arguments)},Vq=f._emscripten_bind_btQuaternion_setZ_1=function(){return f.asm.No.apply(null,arguments)},Wq=f._emscripten_bind_btQuaternion_w_0= +function(){return f.asm.Oo.apply(null,arguments)},Xq=f._emscripten_bind_btQuaternion_x_0=function(){return f.asm.Po.apply(null,arguments)},Yq=f._emscripten_bind_btQuaternion_y_0=function(){return f.asm.Qo.apply(null,arguments)},Zq=f._emscripten_bind_btQuaternion_z_0=function(){return f.asm.Ro.apply(null,arguments)},$q=f._emscripten_bind_btRaycastVehicle___destroy___0=function(){return f.asm.So.apply(null,arguments)},ar=f._emscripten_bind_btRaycastVehicle_addWheel_7=function(){return f.asm.To.apply(null, +arguments)},br=f._emscripten_bind_btRaycastVehicle_applyEngineForce_2=function(){return f.asm.Uo.apply(null,arguments)},cr=f._emscripten_bind_btRaycastVehicle_btRaycastVehicle_3=function(){return f.asm.Vo.apply(null,arguments)},dr=f._emscripten_bind_btRaycastVehicle_getChassisWorldTransform_0=function(){return f.asm.Wo.apply(null,arguments)},er=f._emscripten_bind_btRaycastVehicle_getCurrentSpeedKmHour_0=function(){return f.asm.Xo.apply(null,arguments)},fr=f._emscripten_bind_btRaycastVehicle_getForwardAxis_0= +function(){return f.asm.Yo.apply(null,arguments)},gr=f._emscripten_bind_btRaycastVehicle_getForwardVector_0=function(){return f.asm.Zo.apply(null,arguments)},hr=f._emscripten_bind_btRaycastVehicle_getNumWheels_0=function(){return f.asm._o.apply(null,arguments)},ir=f._emscripten_bind_btRaycastVehicle_getRightAxis_0=function(){return f.asm.$o.apply(null,arguments)},jr=f._emscripten_bind_btRaycastVehicle_getRigidBody_0=function(){return f.asm.ap.apply(null,arguments)},kr=f._emscripten_bind_btRaycastVehicle_getSteeringValue_1= +function(){return f.asm.bp.apply(null,arguments)},lr=f._emscripten_bind_btRaycastVehicle_getUpAxis_0=function(){return f.asm.cp.apply(null,arguments)},mr=f._emscripten_bind_btRaycastVehicle_getUserConstraintId_0=function(){return f.asm.dp.apply(null,arguments)},nr=f._emscripten_bind_btRaycastVehicle_getUserConstraintType_0=function(){return f.asm.ep.apply(null,arguments)},or=f._emscripten_bind_btRaycastVehicle_getWheelInfo_1=function(){return f.asm.fp.apply(null,arguments)},pr=f._emscripten_bind_btRaycastVehicle_getWheelTransformWS_1= +function(){return f.asm.gp.apply(null,arguments)},qr=f._emscripten_bind_btRaycastVehicle_rayCast_1=function(){return f.asm.hp.apply(null,arguments)},rr=f._emscripten_bind_btRaycastVehicle_resetSuspension_0=function(){return f.asm.ip.apply(null,arguments)},sr=f._emscripten_bind_btRaycastVehicle_setBrake_2=function(){return f.asm.jp.apply(null,arguments)},tr=f._emscripten_bind_btRaycastVehicle_setCoordinateSystem_3=function(){return f.asm.kp.apply(null,arguments)},ur=f._emscripten_bind_btRaycastVehicle_setPitchControl_1= +function(){return f.asm.lp.apply(null,arguments)},vr=f._emscripten_bind_btRaycastVehicle_setSteeringValue_2=function(){return f.asm.mp.apply(null,arguments)},wr=f._emscripten_bind_btRaycastVehicle_setUserConstraintId_1=function(){return f.asm.np.apply(null,arguments)},xr=f._emscripten_bind_btRaycastVehicle_setUserConstraintType_1=function(){return f.asm.op.apply(null,arguments)},yr=f._emscripten_bind_btRaycastVehicle_updateAction_2=function(){return f.asm.pp.apply(null,arguments)},zr=f._emscripten_bind_btRaycastVehicle_updateFriction_1= +function(){return f.asm.qp.apply(null,arguments)},Ar=f._emscripten_bind_btRaycastVehicle_updateSuspension_1=function(){return f.asm.rp.apply(null,arguments)},Br=f._emscripten_bind_btRaycastVehicle_updateVehicle_1=function(){return f.asm.sp.apply(null,arguments)},Cr=f._emscripten_bind_btRaycastVehicle_updateWheelTransform_2=function(){return f.asm.tp.apply(null,arguments)},Dr=f._emscripten_bind_btRaycastVehicle_updateWheelTransformsWS_1=function(){return f.asm.up.apply(null,arguments)},Er=f._emscripten_bind_btRaycastVehicle_updateWheelTransformsWS_2= +function(){return f.asm.vp.apply(null,arguments)},Fr=f._emscripten_bind_btRigidBodyConstructionInfo___destroy___0=function(){return f.asm.wp.apply(null,arguments)},Gr=f._emscripten_bind_btRigidBodyConstructionInfo_btRigidBodyConstructionInfo_3=function(){return f.asm.xp.apply(null,arguments)},Hr=f._emscripten_bind_btRigidBodyConstructionInfo_btRigidBodyConstructionInfo_4=function(){return f.asm.yp.apply(null,arguments)},Ir=f._emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalAngularDampingFactor_0= +function(){return f.asm.zp.apply(null,arguments)},Jr=f._emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalAngularDampingThresholdSqr_0=function(){return f.asm.Ap.apply(null,arguments)},Kr=f._emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalDampingFactor_0=function(){return f.asm.Bp.apply(null,arguments)},Lr=f._emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalDamping_0=function(){return f.asm.Cp.apply(null,arguments)},Mr=f._emscripten_bind_btRigidBodyConstructionInfo_get_m_additionalLinearDampingThresholdSqr_0= +function(){return f.asm.Dp.apply(null,arguments)},Nr=f._emscripten_bind_btRigidBodyConstructionInfo_get_m_angularDamping_0=function(){return f.asm.Ep.apply(null,arguments)},Or=f._emscripten_bind_btRigidBodyConstructionInfo_get_m_angularSleepingThreshold_0=function(){return f.asm.Fp.apply(null,arguments)},Pr=f._emscripten_bind_btRigidBodyConstructionInfo_get_m_friction_0=function(){return f.asm.Gp.apply(null,arguments)},Qr=f._emscripten_bind_btRigidBodyConstructionInfo_get_m_linearDamping_0=function(){return f.asm.Hp.apply(null, +arguments)},Rr=f._emscripten_bind_btRigidBodyConstructionInfo_get_m_linearSleepingThreshold_0=function(){return f.asm.Ip.apply(null,arguments)},Sr=f._emscripten_bind_btRigidBodyConstructionInfo_get_m_restitution_0=function(){return f.asm.Jp.apply(null,arguments)},Tr=f._emscripten_bind_btRigidBodyConstructionInfo_get_m_rollingFriction_0=function(){return f.asm.Kp.apply(null,arguments)},Ur=f._emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalAngularDampingFactor_1=function(){return f.asm.Lp.apply(null, +arguments)},Vr=f._emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalAngularDampingThresholdSqr_1=function(){return f.asm.Mp.apply(null,arguments)},Wr=f._emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalDampingFactor_1=function(){return f.asm.Np.apply(null,arguments)},Xr=f._emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalDamping_1=function(){return f.asm.Op.apply(null,arguments)},Yr=f._emscripten_bind_btRigidBodyConstructionInfo_set_m_additionalLinearDampingThresholdSqr_1= +function(){return f.asm.Pp.apply(null,arguments)},Zr=f._emscripten_bind_btRigidBodyConstructionInfo_set_m_angularDamping_1=function(){return f.asm.Qp.apply(null,arguments)},$r=f._emscripten_bind_btRigidBodyConstructionInfo_set_m_angularSleepingThreshold_1=function(){return f.asm.Rp.apply(null,arguments)},as=f._emscripten_bind_btRigidBodyConstructionInfo_set_m_friction_1=function(){return f.asm.Sp.apply(null,arguments)},bs=f._emscripten_bind_btRigidBodyConstructionInfo_set_m_linearDamping_1=function(){return f.asm.Tp.apply(null, +arguments)},cs=f._emscripten_bind_btRigidBodyConstructionInfo_set_m_linearSleepingThreshold_1=function(){return f.asm.Up.apply(null,arguments)},ds=f._emscripten_bind_btRigidBodyConstructionInfo_set_m_restitution_1=function(){return f.asm.Vp.apply(null,arguments)},es=f._emscripten_bind_btRigidBodyConstructionInfo_set_m_rollingFriction_1=function(){return f.asm.Wp.apply(null,arguments)},fs=f._emscripten_bind_btRigidBody___destroy___0=function(){return f.asm.Xp.apply(null,arguments)},gs=f._emscripten_bind_btRigidBody_activate_0= +function(){return f.asm.Yp.apply(null,arguments)},hs=f._emscripten_bind_btRigidBody_activate_1=function(){return f.asm.Zp.apply(null,arguments)},is=f._emscripten_bind_btRigidBody_applyCentralForce_1=function(){return f.asm._p.apply(null,arguments)},js=f._emscripten_bind_btRigidBody_applyCentralImpulse_1=function(){return f.asm.$p.apply(null,arguments)},ks=f._emscripten_bind_btRigidBody_applyCentralLocalForce_1=function(){return f.asm.aq.apply(null,arguments)},ls=f._emscripten_bind_btRigidBody_applyForce_2= +function(){return f.asm.bq.apply(null,arguments)},ms=f._emscripten_bind_btRigidBody_applyGravity_0=function(){return f.asm.cq.apply(null,arguments)},ns=f._emscripten_bind_btRigidBody_applyImpulse_2=function(){return f.asm.dq.apply(null,arguments)},os=f._emscripten_bind_btRigidBody_applyLocalTorque_1=function(){return f.asm.eq.apply(null,arguments)},ps=f._emscripten_bind_btRigidBody_applyTorqueImpulse_1=function(){return f.asm.fq.apply(null,arguments)},qs=f._emscripten_bind_btRigidBody_applyTorque_1= +function(){return f.asm.gq.apply(null,arguments)},rs=f._emscripten_bind_btRigidBody_btRigidBody_1=function(){return f.asm.hq.apply(null,arguments)},ss=f._emscripten_bind_btRigidBody_forceActivationState_1=function(){return f.asm.iq.apply(null,arguments)},ts=f._emscripten_bind_btRigidBody_getAabb_2=function(){return f.asm.jq.apply(null,arguments)},us=f._emscripten_bind_btRigidBody_getAngularDamping_0=function(){return f.asm.kq.apply(null,arguments)},vs=f._emscripten_bind_btRigidBody_getAngularFactor_0= +function(){return f.asm.lq.apply(null,arguments)},ws=f._emscripten_bind_btRigidBody_getAngularVelocity_0=function(){return f.asm.mq.apply(null,arguments)},xs=f._emscripten_bind_btRigidBody_getBroadphaseHandle_0=function(){return f.asm.nq.apply(null,arguments)},ys=f._emscripten_bind_btRigidBody_getBroadphaseProxy_0=function(){return f.asm.oq.apply(null,arguments)},zs=f._emscripten_bind_btRigidBody_getCenterOfMassTransform_0=function(){return f.asm.pq.apply(null,arguments)},As=f._emscripten_bind_btRigidBody_getCollisionFlags_0= +function(){return f.asm.qq.apply(null,arguments)},Bs=f._emscripten_bind_btRigidBody_getCollisionShape_0=function(){return f.asm.rq.apply(null,arguments)},Cs=f._emscripten_bind_btRigidBody_getFriction_0=function(){return f.asm.sq.apply(null,arguments)},Ds=f._emscripten_bind_btRigidBody_getGravity_0=function(){return f.asm.tq.apply(null,arguments)},Es=f._emscripten_bind_btRigidBody_getLinearDamping_0=function(){return f.asm.uq.apply(null,arguments)},Fs=f._emscripten_bind_btRigidBody_getLinearFactor_0= +function(){return f.asm.vq.apply(null,arguments)},Gs=f._emscripten_bind_btRigidBody_getLinearVelocity_0=function(){return f.asm.wq.apply(null,arguments)},Hs=f._emscripten_bind_btRigidBody_getMotionState_0=function(){return f.asm.xq.apply(null,arguments)},Is=f._emscripten_bind_btRigidBody_getRestitution_0=function(){return f.asm.yq.apply(null,arguments)},Js=f._emscripten_bind_btRigidBody_getRollingFriction_0=function(){return f.asm.zq.apply(null,arguments)},Ks=f._emscripten_bind_btRigidBody_getUserIndex_0= +function(){return f.asm.Aq.apply(null,arguments)},Ls=f._emscripten_bind_btRigidBody_getUserPointer_0=function(){return f.asm.Bq.apply(null,arguments)},Ms=f._emscripten_bind_btRigidBody_getWorldTransform_0=function(){return f.asm.Cq.apply(null,arguments)},Ns=f._emscripten_bind_btRigidBody_isActive_0=function(){return f.asm.Dq.apply(null,arguments)},Os=f._emscripten_bind_btRigidBody_isKinematicObject_0=function(){return f.asm.Eq.apply(null,arguments)},Ps=f._emscripten_bind_btRigidBody_isStaticObject_0= +function(){return f.asm.Fq.apply(null,arguments)},Qs=f._emscripten_bind_btRigidBody_isStaticOrKinematicObject_0=function(){return f.asm.Gq.apply(null,arguments)},Rs=f._emscripten_bind_btRigidBody_setActivationState_1=function(){return f.asm.Hq.apply(null,arguments)},Ss=f._emscripten_bind_btRigidBody_setAngularFactor_1=function(){return f.asm.Iq.apply(null,arguments)},Ts=f._emscripten_bind_btRigidBody_setAngularVelocity_1=function(){return f.asm.Jq.apply(null,arguments)},Us=f._emscripten_bind_btRigidBody_setAnisotropicFriction_2= +function(){return f.asm.Kq.apply(null,arguments)},Vs=f._emscripten_bind_btRigidBody_setCcdMotionThreshold_1=function(){return f.asm.Lq.apply(null,arguments)},Ws=f._emscripten_bind_btRigidBody_setCcdSweptSphereRadius_1=function(){return f.asm.Mq.apply(null,arguments)},Xs=f._emscripten_bind_btRigidBody_setCenterOfMassTransform_1=function(){return f.asm.Nq.apply(null,arguments)},Ys=f._emscripten_bind_btRigidBody_setCollisionFlags_1=function(){return f.asm.Oq.apply(null,arguments)},Zs=f._emscripten_bind_btRigidBody_setCollisionShape_1= +function(){return f.asm.Pq.apply(null,arguments)},$s=f._emscripten_bind_btRigidBody_setContactProcessingThreshold_1=function(){return f.asm.Qq.apply(null,arguments)},at=f._emscripten_bind_btRigidBody_setDamping_2=function(){return f.asm.Rq.apply(null,arguments)},bt=f._emscripten_bind_btRigidBody_setFriction_1=function(){return f.asm.Sq.apply(null,arguments)},ct=f._emscripten_bind_btRigidBody_setGravity_1=function(){return f.asm.Tq.apply(null,arguments)},dt=f._emscripten_bind_btRigidBody_setLinearFactor_1= +function(){return f.asm.Uq.apply(null,arguments)},et=f._emscripten_bind_btRigidBody_setLinearVelocity_1=function(){return f.asm.Vq.apply(null,arguments)},ft=f._emscripten_bind_btRigidBody_setMassProps_2=function(){return f.asm.Wq.apply(null,arguments)},gt=f._emscripten_bind_btRigidBody_setMotionState_1=function(){return f.asm.Xq.apply(null,arguments)},ht=f._emscripten_bind_btRigidBody_setRestitution_1=function(){return f.asm.Yq.apply(null,arguments)},it=f._emscripten_bind_btRigidBody_setRollingFriction_1= +function(){return f.asm.Zq.apply(null,arguments)},jt=f._emscripten_bind_btRigidBody_setSleepingThresholds_2=function(){return f.asm._q.apply(null,arguments)},kt=f._emscripten_bind_btRigidBody_setUserIndex_1=function(){return f.asm.$q.apply(null,arguments)},lt=f._emscripten_bind_btRigidBody_setUserPointer_1=function(){return f.asm.ar.apply(null,arguments)},mt=f._emscripten_bind_btRigidBody_setWorldTransform_1=function(){return f.asm.br.apply(null,arguments)},nt=f._emscripten_bind_btRigidBody_upcast_1= +function(){return f.asm.cr.apply(null,arguments)},ot=f._emscripten_bind_btRigidBody_updateInertiaTensor_0=function(){return f.asm.dr.apply(null,arguments)},pt=f._emscripten_bind_btScalarArray___destroy___0=function(){return f.asm.er.apply(null,arguments)},qt=f._emscripten_bind_btScalarArray_at_1=function(){return f.asm.fr.apply(null,arguments)},rt=f._emscripten_bind_btScalarArray_size_0=function(){return f.asm.gr.apply(null,arguments)},st=f._emscripten_bind_btSequentialImpulseConstraintSolver___destroy___0= +function(){return f.asm.hr.apply(null,arguments)},tt=f._emscripten_bind_btSequentialImpulseConstraintSolver_btSequentialImpulseConstraintSolver_0=function(){return f.asm.ir.apply(null,arguments)},ut=f._emscripten_bind_btShapeHull___destroy___0=function(){return f.asm.jr.apply(null,arguments)},vt=f._emscripten_bind_btShapeHull_btShapeHull_1=function(){return f.asm.kr.apply(null,arguments)},wt=f._emscripten_bind_btShapeHull_buildHull_1=function(){return f.asm.lr.apply(null,arguments)},xt=f._emscripten_bind_btShapeHull_getVertexPointer_0= +function(){return f.asm.mr.apply(null,arguments)},yt=f._emscripten_bind_btShapeHull_numVertices_0=function(){return f.asm.nr.apply(null,arguments)},zt=f._emscripten_bind_btSliderConstraint___destroy___0=function(){return f.asm.or.apply(null,arguments)},At=f._emscripten_bind_btSliderConstraint_btSliderConstraint_3=function(){return f.asm.pr.apply(null,arguments)},Bt=f._emscripten_bind_btSliderConstraint_btSliderConstraint_5=function(){return f.asm.qr.apply(null,arguments)},Ct=f._emscripten_bind_btSliderConstraint_enableFeedback_1= +function(){return f.asm.rr.apply(null,arguments)},Dt=f._emscripten_bind_btSliderConstraint_getBreakingImpulseThreshold_0=function(){return f.asm.sr.apply(null,arguments)},Et=f._emscripten_bind_btSliderConstraint_getParam_2=function(){return f.asm.tr.apply(null,arguments)},Ft=f._emscripten_bind_btSliderConstraint_setBreakingImpulseThreshold_1=function(){return f.asm.ur.apply(null,arguments)},Gt=f._emscripten_bind_btSliderConstraint_setLowerAngLimit_1=function(){return f.asm.vr.apply(null,arguments)}, +Ht=f._emscripten_bind_btSliderConstraint_setLowerLinLimit_1=function(){return f.asm.wr.apply(null,arguments)},It=f._emscripten_bind_btSliderConstraint_setParam_3=function(){return f.asm.xr.apply(null,arguments)},Jt=f._emscripten_bind_btSliderConstraint_setUpperAngLimit_1=function(){return f.asm.yr.apply(null,arguments)},Kt=f._emscripten_bind_btSliderConstraint_setUpperLinLimit_1=function(){return f.asm.zr.apply(null,arguments)},Lt=f._emscripten_bind_btSoftBodyArray___destroy___0=function(){return f.asm.Ar.apply(null, +arguments)},Mt=f._emscripten_bind_btSoftBodyArray_at_1=function(){return f.asm.Br.apply(null,arguments)},Nt=f._emscripten_bind_btSoftBodyArray_size_0=function(){return f.asm.Cr.apply(null,arguments)},Ot=f._emscripten_bind_btSoftBodyHelpers_CreateEllipsoid_4=function(){return f.asm.Dr.apply(null,arguments)},Pt=f._emscripten_bind_btSoftBodyHelpers_CreateFromConvexHull_4=function(){return f.asm.Er.apply(null,arguments)},Qt=f._emscripten_bind_btSoftBodyHelpers_CreateFromTriMesh_5=function(){return f.asm.Fr.apply(null, +arguments)},Rt=f._emscripten_bind_btSoftBodyHelpers_CreatePatchUV_10=function(){return f.asm.Gr.apply(null,arguments)},St=f._emscripten_bind_btSoftBodyHelpers_CreatePatch_9=function(){return f.asm.Hr.apply(null,arguments)},Tt=f._emscripten_bind_btSoftBodyHelpers_CreateRope_5=function(){return f.asm.Ir.apply(null,arguments)},Ut=f._emscripten_bind_btSoftBodyHelpers___destroy___0=function(){return f.asm.Jr.apply(null,arguments)},Vt=f._emscripten_bind_btSoftBodyHelpers_btSoftBodyHelpers_0=function(){return f.asm.Kr.apply(null, +arguments)},Wt=f._emscripten_bind_btSoftBodyRigidBodyCollisionConfiguration___destroy___0=function(){return f.asm.Lr.apply(null,arguments)},Xt=f._emscripten_bind_btSoftBodyRigidBodyCollisionConfiguration_btSoftBodyRigidBodyCollisionConfiguration_0=function(){return f.asm.Mr.apply(null,arguments)},Yt=f._emscripten_bind_btSoftBodyRigidBodyCollisionConfiguration_btSoftBodyRigidBodyCollisionConfiguration_1=function(){return f.asm.Nr.apply(null,arguments)},Zt=f._emscripten_bind_btSoftBodySolver___destroy___0= +function(){return f.asm.Or.apply(null,arguments)},$t=f._emscripten_bind_btSoftBodyWorldInfo___destroy___0=function(){return f.asm.Pr.apply(null,arguments)},au=f._emscripten_bind_btSoftBodyWorldInfo_btSoftBodyWorldInfo_0=function(){return f.asm.Qr.apply(null,arguments)},bu=f._emscripten_bind_btSoftBodyWorldInfo_get_air_density_0=function(){return f.asm.Rr.apply(null,arguments)},cu=f._emscripten_bind_btSoftBodyWorldInfo_get_m_broadphase_0=function(){return f.asm.Sr.apply(null,arguments)},du=f._emscripten_bind_btSoftBodyWorldInfo_get_m_dispatcher_0= +function(){return f.asm.Tr.apply(null,arguments)},eu=f._emscripten_bind_btSoftBodyWorldInfo_get_m_gravity_0=function(){return f.asm.Ur.apply(null,arguments)},fu=f._emscripten_bind_btSoftBodyWorldInfo_get_m_maxDisplacement_0=function(){return f.asm.Vr.apply(null,arguments)},gu=f._emscripten_bind_btSoftBodyWorldInfo_get_water_density_0=function(){return f.asm.Wr.apply(null,arguments)},hu=f._emscripten_bind_btSoftBodyWorldInfo_get_water_normal_0=function(){return f.asm.Xr.apply(null,arguments)},iu=f._emscripten_bind_btSoftBodyWorldInfo_get_water_offset_0= +function(){return f.asm.Yr.apply(null,arguments)},ju=f._emscripten_bind_btSoftBodyWorldInfo_set_air_density_1=function(){return f.asm.Zr.apply(null,arguments)},ku=f._emscripten_bind_btSoftBodyWorldInfo_set_m_broadphase_1=function(){return f.asm._r.apply(null,arguments)},lu=f._emscripten_bind_btSoftBodyWorldInfo_set_m_dispatcher_1=function(){return f.asm.$r.apply(null,arguments)},mu=f._emscripten_bind_btSoftBodyWorldInfo_set_m_gravity_1=function(){return f.asm.as.apply(null,arguments)},nu=f._emscripten_bind_btSoftBodyWorldInfo_set_m_maxDisplacement_1= +function(){return f.asm.bs.apply(null,arguments)},ou=f._emscripten_bind_btSoftBodyWorldInfo_set_water_density_1=function(){return f.asm.cs.apply(null,arguments)},pu=f._emscripten_bind_btSoftBodyWorldInfo_set_water_normal_1=function(){return f.asm.ds.apply(null,arguments)},qu=f._emscripten_bind_btSoftBodyWorldInfo_set_water_offset_1=function(){return f.asm.es.apply(null,arguments)},ru=f._emscripten_bind_btSoftBody___destroy___0=function(){return f.asm.fs.apply(null,arguments)},su=f._emscripten_bind_btSoftBody_activate_0= +function(){return f.asm.gs.apply(null,arguments)},tu=f._emscripten_bind_btSoftBody_activate_1=function(){return f.asm.hs.apply(null,arguments)},uu=f._emscripten_bind_btSoftBody_addAeroForceToNode_2=function(){return f.asm.is.apply(null,arguments)},vu=f._emscripten_bind_btSoftBody_addForce_1=function(){return f.asm.js.apply(null,arguments)},wu=f._emscripten_bind_btSoftBody_addForce_2=function(){return f.asm.ks.apply(null,arguments)},xu=f._emscripten_bind_btSoftBody_appendAnchor_4=function(){return f.asm.ls.apply(null, +arguments)},yu=f._emscripten_bind_btSoftBody_appendFace_4=function(){return f.asm.ms.apply(null,arguments)},zu=f._emscripten_bind_btSoftBody_appendLink_4=function(){return f.asm.ns.apply(null,arguments)},Au=f._emscripten_bind_btSoftBody_appendMaterial_0=function(){return f.asm.os.apply(null,arguments)},Bu=f._emscripten_bind_btSoftBody_appendNode_2=function(){return f.asm.ps.apply(null,arguments)},Cu=f._emscripten_bind_btSoftBody_appendTetra_5=function(){return f.asm.qs.apply(null,arguments)},Du=f._emscripten_bind_btSoftBody_btSoftBody_4= +function(){return f.asm.rs.apply(null,arguments)},Eu=f._emscripten_bind_btSoftBody_checkFace_3=function(){return f.asm.ss.apply(null,arguments)},Fu=f._emscripten_bind_btSoftBody_checkLink_2=function(){return f.asm.ts.apply(null,arguments)},Gu=f._emscripten_bind_btSoftBody_forceActivationState_1=function(){return f.asm.us.apply(null,arguments)},Hu=f._emscripten_bind_btSoftBody_generateBendingConstraints_2=function(){return f.asm.vs.apply(null,arguments)},Iu=f._emscripten_bind_btSoftBody_generateClusters_1= +function(){return f.asm.ws.apply(null,arguments)},Ju=f._emscripten_bind_btSoftBody_generateClusters_2=function(){return f.asm.xs.apply(null,arguments)},Ku=f._emscripten_bind_btSoftBody_getBroadphaseHandle_0=function(){return f.asm.ys.apply(null,arguments)},Lu=f._emscripten_bind_btSoftBody_getCollisionFlags_0=function(){return f.asm.zs.apply(null,arguments)},Mu=f._emscripten_bind_btSoftBody_getCollisionShape_0=function(){return f.asm.As.apply(null,arguments)},Nu=f._emscripten_bind_btSoftBody_getFriction_0= +function(){return f.asm.Bs.apply(null,arguments)},Ou=f._emscripten_bind_btSoftBody_getRestitution_0=function(){return f.asm.Cs.apply(null,arguments)},Pu=f._emscripten_bind_btSoftBody_getRollingFriction_0=function(){return f.asm.Ds.apply(null,arguments)},Qu=f._emscripten_bind_btSoftBody_getTotalMass_0=function(){return f.asm.Es.apply(null,arguments)},Ru=f._emscripten_bind_btSoftBody_getUserIndex_0=function(){return f.asm.Fs.apply(null,arguments)},Su=f._emscripten_bind_btSoftBody_getUserPointer_0=function(){return f.asm.Gs.apply(null, +arguments)},Tu=f._emscripten_bind_btSoftBody_getWorldTransform_0=function(){return f.asm.Hs.apply(null,arguments)},Uu=f._emscripten_bind_btSoftBody_get_m_anchors_0=function(){return f.asm.Is.apply(null,arguments)},Vu=f._emscripten_bind_btSoftBody_get_m_cfg_0=function(){return f.asm.Js.apply(null,arguments)},Wu=f._emscripten_bind_btSoftBody_get_m_materials_0=function(){return f.asm.Ks.apply(null,arguments)},Xu=f._emscripten_bind_btSoftBody_get_m_nodes_0=function(){return f.asm.Ls.apply(null,arguments)}, +Yu=f._emscripten_bind_btSoftBody_isActive_0=function(){return f.asm.Ms.apply(null,arguments)},Zu=f._emscripten_bind_btSoftBody_isKinematicObject_0=function(){return f.asm.Ns.apply(null,arguments)},$u=f._emscripten_bind_btSoftBody_isStaticObject_0=function(){return f.asm.Os.apply(null,arguments)},av=f._emscripten_bind_btSoftBody_isStaticOrKinematicObject_0=function(){return f.asm.Ps.apply(null,arguments)},bv=f._emscripten_bind_btSoftBody_rotate_1=function(){return f.asm.Qs.apply(null,arguments)},cv= +f._emscripten_bind_btSoftBody_scale_1=function(){return f.asm.Rs.apply(null,arguments)},dv=f._emscripten_bind_btSoftBody_setActivationState_1=function(){return f.asm.Ss.apply(null,arguments)},ev=f._emscripten_bind_btSoftBody_setAnisotropicFriction_2=function(){return f.asm.Ts.apply(null,arguments)},fv=f._emscripten_bind_btSoftBody_setCcdMotionThreshold_1=function(){return f.asm.Us.apply(null,arguments)},gv=f._emscripten_bind_btSoftBody_setCcdSweptSphereRadius_1=function(){return f.asm.Vs.apply(null, +arguments)},hv=f._emscripten_bind_btSoftBody_setCollisionFlags_1=function(){return f.asm.Ws.apply(null,arguments)},iv=f._emscripten_bind_btSoftBody_setCollisionShape_1=function(){return f.asm.Xs.apply(null,arguments)},jv=f._emscripten_bind_btSoftBody_setContactProcessingThreshold_1=function(){return f.asm.Ys.apply(null,arguments)},kv=f._emscripten_bind_btSoftBody_setFriction_1=function(){return f.asm.Zs.apply(null,arguments)},lv=f._emscripten_bind_btSoftBody_setMass_2=function(){return f.asm._s.apply(null, +arguments)},mv=f._emscripten_bind_btSoftBody_setRestitution_1=function(){return f.asm.$s.apply(null,arguments)},nv=f._emscripten_bind_btSoftBody_setRollingFriction_1=function(){return f.asm.at.apply(null,arguments)},ov=f._emscripten_bind_btSoftBody_setTotalMass_2=function(){return f.asm.bt.apply(null,arguments)},pv=f._emscripten_bind_btSoftBody_setUserIndex_1=function(){return f.asm.ct.apply(null,arguments)},qv=f._emscripten_bind_btSoftBody_setUserPointer_1=function(){return f.asm.dt.apply(null,arguments)}, +rv=f._emscripten_bind_btSoftBody_setWorldTransform_1=function(){return f.asm.et.apply(null,arguments)},sv=f._emscripten_bind_btSoftBody_set_m_anchors_1=function(){return f.asm.ft.apply(null,arguments)},tv=f._emscripten_bind_btSoftBody_set_m_cfg_1=function(){return f.asm.gt.apply(null,arguments)},uv=f._emscripten_bind_btSoftBody_set_m_materials_1=function(){return f.asm.ht.apply(null,arguments)},vv=f._emscripten_bind_btSoftBody_set_m_nodes_1=function(){return f.asm.it.apply(null,arguments)},wv=f._emscripten_bind_btSoftBody_transform_1= +function(){return f.asm.jt.apply(null,arguments)},xv=f._emscripten_bind_btSoftBody_translate_1=function(){return f.asm.kt.apply(null,arguments)},yv=f._emscripten_bind_btSoftBody_upcast_1=function(){return f.asm.lt.apply(null,arguments)},zv=f._emscripten_bind_btSoftRigidDynamicsWorld___destroy___0=function(){return f.asm.mt.apply(null,arguments)},Av=f._emscripten_bind_btSoftRigidDynamicsWorld_addAction_1=function(){return f.asm.nt.apply(null,arguments)},Bv=f._emscripten_bind_btSoftRigidDynamicsWorld_addCollisionObject_1= +function(){return f.asm.ot.apply(null,arguments)},Cv=f._emscripten_bind_btSoftRigidDynamicsWorld_addCollisionObject_2=function(){return f.asm.pt.apply(null,arguments)},Dv=f._emscripten_bind_btSoftRigidDynamicsWorld_addCollisionObject_3=function(){return f.asm.qt.apply(null,arguments)},Ev=f._emscripten_bind_btSoftRigidDynamicsWorld_addConstraint_1=function(){return f.asm.rt.apply(null,arguments)},Fv=f._emscripten_bind_btSoftRigidDynamicsWorld_addConstraint_2=function(){return f.asm.st.apply(null,arguments)}, +Gv=f._emscripten_bind_btSoftRigidDynamicsWorld_addRigidBody_1=function(){return f.asm.tt.apply(null,arguments)},Hv=f._emscripten_bind_btSoftRigidDynamicsWorld_addRigidBody_3=function(){return f.asm.ut.apply(null,arguments)},Iv=f._emscripten_bind_btSoftRigidDynamicsWorld_addSoftBody_3=function(){return f.asm.vt.apply(null,arguments)},Jv=f._emscripten_bind_btSoftRigidDynamicsWorld_btSoftRigidDynamicsWorld_5=function(){return f.asm.wt.apply(null,arguments)},Kv=f._emscripten_bind_btSoftRigidDynamicsWorld_contactPairTest_3= +function(){return f.asm.xt.apply(null,arguments)},Lv=f._emscripten_bind_btSoftRigidDynamicsWorld_contactTest_2=function(){return f.asm.yt.apply(null,arguments)},Mv=f._emscripten_bind_btSoftRigidDynamicsWorld_convexSweepTest_5=function(){return f.asm.zt.apply(null,arguments)},Nv=f._emscripten_bind_btSoftRigidDynamicsWorld_debugDrawObject_3=function(){return f.asm.At.apply(null,arguments)},Ov=f._emscripten_bind_btSoftRigidDynamicsWorld_debugDrawWorld_0=function(){return f.asm.Bt.apply(null,arguments)}, +Pv=f._emscripten_bind_btSoftRigidDynamicsWorld_getBroadphase_0=function(){return f.asm.Ct.apply(null,arguments)},Qv=f._emscripten_bind_btSoftRigidDynamicsWorld_getDebugDrawer_0=function(){return f.asm.Dt.apply(null,arguments)},Rv=f._emscripten_bind_btSoftRigidDynamicsWorld_getDispatchInfo_0=function(){return f.asm.Et.apply(null,arguments)},Sv=f._emscripten_bind_btSoftRigidDynamicsWorld_getDispatcher_0=function(){return f.asm.Ft.apply(null,arguments)},Tv=f._emscripten_bind_btSoftRigidDynamicsWorld_getGravity_0= +function(){return f.asm.Gt.apply(null,arguments)},Uv=f._emscripten_bind_btSoftRigidDynamicsWorld_getPairCache_0=function(){return f.asm.Ht.apply(null,arguments)},Vv=f._emscripten_bind_btSoftRigidDynamicsWorld_getSoftBodyArray_0=function(){return f.asm.It.apply(null,arguments)},Wv=f._emscripten_bind_btSoftRigidDynamicsWorld_getSolverInfo_0=function(){return f.asm.Jt.apply(null,arguments)},Xv=f._emscripten_bind_btSoftRigidDynamicsWorld_getWorldInfo_0=function(){return f.asm.Kt.apply(null,arguments)}, +Yv=f._emscripten_bind_btSoftRigidDynamicsWorld_rayTest_3=function(){return f.asm.Lt.apply(null,arguments)},Zv=f._emscripten_bind_btSoftRigidDynamicsWorld_removeAction_1=function(){return f.asm.Mt.apply(null,arguments)},$v=f._emscripten_bind_btSoftRigidDynamicsWorld_removeCollisionObject_1=function(){return f.asm.Nt.apply(null,arguments)},aw=f._emscripten_bind_btSoftRigidDynamicsWorld_removeConstraint_1=function(){return f.asm.Ot.apply(null,arguments)},bw=f._emscripten_bind_btSoftRigidDynamicsWorld_removeRigidBody_1= +function(){return f.asm.Pt.apply(null,arguments)},cw=f._emscripten_bind_btSoftRigidDynamicsWorld_removeSoftBody_1=function(){return f.asm.Qt.apply(null,arguments)},dw=f._emscripten_bind_btSoftRigidDynamicsWorld_setContactAddedCallback_1=function(){return f.asm.Rt.apply(null,arguments)},ew=f._emscripten_bind_btSoftRigidDynamicsWorld_setContactDestroyedCallback_1=function(){return f.asm.St.apply(null,arguments)},fw=f._emscripten_bind_btSoftRigidDynamicsWorld_setContactProcessedCallback_1=function(){return f.asm.Tt.apply(null, +arguments)},gw=f._emscripten_bind_btSoftRigidDynamicsWorld_setDebugDrawer_1=function(){return f.asm.Ut.apply(null,arguments)},hw=f._emscripten_bind_btSoftRigidDynamicsWorld_setGravity_1=function(){return f.asm.Vt.apply(null,arguments)},iw=f._emscripten_bind_btSoftRigidDynamicsWorld_stepSimulation_1=function(){return f.asm.Wt.apply(null,arguments)},jw=f._emscripten_bind_btSoftRigidDynamicsWorld_stepSimulation_2=function(){return f.asm.Xt.apply(null,arguments)},kw=f._emscripten_bind_btSoftRigidDynamicsWorld_stepSimulation_3= +function(){return f.asm.Yt.apply(null,arguments)},lw=f._emscripten_bind_btSoftRigidDynamicsWorld_updateSingleAabb_1=function(){return f.asm.Zt.apply(null,arguments)},mw=f._emscripten_bind_btSphereShape___destroy___0=function(){return f.asm._t.apply(null,arguments)},nw=f._emscripten_bind_btSphereShape_btSphereShape_1=function(){return f.asm.$t.apply(null,arguments)},ow=f._emscripten_bind_btSphereShape_calculateLocalInertia_2=function(){return f.asm.au.apply(null,arguments)},pw=f._emscripten_bind_btSphereShape_getLocalScaling_0= +function(){return f.asm.bu.apply(null,arguments)},qw=f._emscripten_bind_btSphereShape_getMargin_0=function(){return f.asm.cu.apply(null,arguments)},rw=f._emscripten_bind_btSphereShape_setLocalScaling_1=function(){return f.asm.du.apply(null,arguments)},sw=f._emscripten_bind_btSphereShape_setMargin_1=function(){return f.asm.eu.apply(null,arguments)},tw=f._emscripten_bind_btStaticPlaneShape___destroy___0=function(){return f.asm.fu.apply(null,arguments)},uw=f._emscripten_bind_btStaticPlaneShape_btStaticPlaneShape_2= +function(){return f.asm.gu.apply(null,arguments)},vw=f._emscripten_bind_btStaticPlaneShape_calculateLocalInertia_2=function(){return f.asm.hu.apply(null,arguments)},ww=f._emscripten_bind_btStaticPlaneShape_getLocalScaling_0=function(){return f.asm.iu.apply(null,arguments)},xw=f._emscripten_bind_btStaticPlaneShape_setLocalScaling_1=function(){return f.asm.ju.apply(null,arguments)},yw=f._emscripten_bind_btStridingMeshInterface___destroy___0=function(){return f.asm.ku.apply(null,arguments)},zw=f._emscripten_bind_btStridingMeshInterface_setScaling_1= +function(){return f.asm.lu.apply(null,arguments)},Aw=f._emscripten_bind_btTransform___destroy___0=function(){return f.asm.mu.apply(null,arguments)},Bw=f._emscripten_bind_btTransform_btTransform_0=function(){return f.asm.nu.apply(null,arguments)},Cw=f._emscripten_bind_btTransform_btTransform_2=function(){return f.asm.ou.apply(null,arguments)},Dw=f._emscripten_bind_btTransform_getBasis_0=function(){return f.asm.pu.apply(null,arguments)},Ew=f._emscripten_bind_btTransform_getOrigin_0=function(){return f.asm.qu.apply(null, +arguments)},Fw=f._emscripten_bind_btTransform_getRotation_0=function(){return f.asm.ru.apply(null,arguments)},Gw=f._emscripten_bind_btTransform_inverse_0=function(){return f.asm.su.apply(null,arguments)},Hw=f._emscripten_bind_btTransform_op_mul_1=function(){return f.asm.tu.apply(null,arguments)},Iw=f._emscripten_bind_btTransform_setFromOpenGLMatrix_1=function(){return f.asm.uu.apply(null,arguments)},Jw=f._emscripten_bind_btTransform_setIdentity_0=function(){return f.asm.vu.apply(null,arguments)}, +Kw=f._emscripten_bind_btTransform_setOrigin_1=function(){return f.asm.wu.apply(null,arguments)},Lw=f._emscripten_bind_btTransform_setRotation_1=function(){return f.asm.xu.apply(null,arguments)},Mw=f._emscripten_bind_btTriangleMeshShape___destroy___0=function(){return f.asm.yu.apply(null,arguments)},Nw=f._emscripten_bind_btTriangleMeshShape_calculateLocalInertia_2=function(){return f.asm.zu.apply(null,arguments)},Ow=f._emscripten_bind_btTriangleMeshShape_getLocalScaling_0=function(){return f.asm.Au.apply(null, +arguments)},Pw=f._emscripten_bind_btTriangleMeshShape_setLocalScaling_1=function(){return f.asm.Bu.apply(null,arguments)},Qw=f._emscripten_bind_btTriangleMesh___destroy___0=function(){return f.asm.Cu.apply(null,arguments)},Rw=f._emscripten_bind_btTriangleMesh_addIndex_1=function(){return f.asm.Du.apply(null,arguments)},Sw=f._emscripten_bind_btTriangleMesh_addTriangle_3=function(){return f.asm.Eu.apply(null,arguments)},Tw=f._emscripten_bind_btTriangleMesh_addTriangle_4=function(){return f.asm.Fu.apply(null, +arguments)},Uw=f._emscripten_bind_btTriangleMesh_btTriangleMesh_0=function(){return f.asm.Gu.apply(null,arguments)},Vw=f._emscripten_bind_btTriangleMesh_btTriangleMesh_1=function(){return f.asm.Hu.apply(null,arguments)},Ww=f._emscripten_bind_btTriangleMesh_btTriangleMesh_2=function(){return f.asm.Iu.apply(null,arguments)},Xw=f._emscripten_bind_btTriangleMesh_findOrAddVertex_2=function(){return f.asm.Ju.apply(null,arguments)},Yw=f._emscripten_bind_btTriangleMesh_getIndexedMeshArray_0=function(){return f.asm.Ku.apply(null, +arguments)},Zw=f._emscripten_bind_btTriangleMesh_setScaling_1=function(){return f.asm.Lu.apply(null,arguments)},$w=f._emscripten_bind_btTypedConstraint___destroy___0=function(){return f.asm.Mu.apply(null,arguments)},ax=f._emscripten_bind_btTypedConstraint_enableFeedback_1=function(){return f.asm.Nu.apply(null,arguments)},bx=f._emscripten_bind_btTypedConstraint_getBreakingImpulseThreshold_0=function(){return f.asm.Ou.apply(null,arguments)},cx=f._emscripten_bind_btTypedConstraint_getParam_2=function(){return f.asm.Pu.apply(null, +arguments)},dx=f._emscripten_bind_btTypedConstraint_setBreakingImpulseThreshold_1=function(){return f.asm.Qu.apply(null,arguments)},ex=f._emscripten_bind_btTypedConstraint_setParam_3=function(){return f.asm.Ru.apply(null,arguments)},fx=f._emscripten_bind_btVector3Array___destroy___0=function(){return f.asm.Su.apply(null,arguments)},gx=f._emscripten_bind_btVector3Array_at_1=function(){return f.asm.Tu.apply(null,arguments)},hx=f._emscripten_bind_btVector3Array_size_0=function(){return f.asm.Uu.apply(null, +arguments)},ix=f._emscripten_bind_btVector3___destroy___0=function(){return f.asm.Vu.apply(null,arguments)},jx=f._emscripten_bind_btVector3_btVector3_0=function(){return f.asm.Wu.apply(null,arguments)},kx=f._emscripten_bind_btVector3_btVector3_3=function(){return f.asm.Xu.apply(null,arguments)},lx=f._emscripten_bind_btVector3_dot_1=function(){return f.asm.Yu.apply(null,arguments)},mx=f._emscripten_bind_btVector3_length_0=function(){return f.asm.Zu.apply(null,arguments)},nx=f._emscripten_bind_btVector3_normalize_0= +function(){return f.asm._u.apply(null,arguments)},ox=f._emscripten_bind_btVector3_op_add_1=function(){return f.asm.$u.apply(null,arguments)},px=f._emscripten_bind_btVector3_op_mul_1=function(){return f.asm.av.apply(null,arguments)},qx=f._emscripten_bind_btVector3_op_sub_1=function(){return f.asm.bv.apply(null,arguments)},rx=f._emscripten_bind_btVector3_rotate_2=function(){return f.asm.cv.apply(null,arguments)},sx=f._emscripten_bind_btVector3_setValue_3=function(){return f.asm.dv.apply(null,arguments)}, +tx=f._emscripten_bind_btVector3_setX_1=function(){return f.asm.ev.apply(null,arguments)},ux=f._emscripten_bind_btVector3_setY_1=function(){return f.asm.fv.apply(null,arguments)},vx=f._emscripten_bind_btVector3_setZ_1=function(){return f.asm.gv.apply(null,arguments)},wx=f._emscripten_bind_btVector3_x_0=function(){return f.asm.hv.apply(null,arguments)},xx=f._emscripten_bind_btVector3_y_0=function(){return f.asm.iv.apply(null,arguments)},yx=f._emscripten_bind_btVector3_z_0=function(){return f.asm.jv.apply(null, +arguments)},zx=f._emscripten_bind_btVector4___destroy___0=function(){return f.asm.kv.apply(null,arguments)},Ax=f._emscripten_bind_btVector4_btVector4_0=function(){return f.asm.lv.apply(null,arguments)},Bx=f._emscripten_bind_btVector4_btVector4_4=function(){return f.asm.mv.apply(null,arguments)},Cx=f._emscripten_bind_btVector4_dot_1=function(){return f.asm.nv.apply(null,arguments)},Dx=f._emscripten_bind_btVector4_length_0=function(){return f.asm.ov.apply(null,arguments)},Ex=f._emscripten_bind_btVector4_normalize_0= +function(){return f.asm.pv.apply(null,arguments)},Fx=f._emscripten_bind_btVector4_op_add_1=function(){return f.asm.qv.apply(null,arguments)},Gx=f._emscripten_bind_btVector4_op_mul_1=function(){return f.asm.rv.apply(null,arguments)},Hx=f._emscripten_bind_btVector4_op_sub_1=function(){return f.asm.sv.apply(null,arguments)},Ix=f._emscripten_bind_btVector4_rotate_2=function(){return f.asm.tv.apply(null,arguments)},Jx=f._emscripten_bind_btVector4_setValue_4=function(){return f.asm.uv.apply(null,arguments)}, +Kx=f._emscripten_bind_btVector4_setX_1=function(){return f.asm.vv.apply(null,arguments)},Lx=f._emscripten_bind_btVector4_setY_1=function(){return f.asm.wv.apply(null,arguments)},Mx=f._emscripten_bind_btVector4_setZ_1=function(){return f.asm.xv.apply(null,arguments)},Nx=f._emscripten_bind_btVector4_w_0=function(){return f.asm.yv.apply(null,arguments)},Ox=f._emscripten_bind_btVector4_x_0=function(){return f.asm.zv.apply(null,arguments)},Px=f._emscripten_bind_btVector4_y_0=function(){return f.asm.Av.apply(null, +arguments)},Qx=f._emscripten_bind_btVector4_z_0=function(){return f.asm.Bv.apply(null,arguments)},Rx=f._emscripten_bind_btVehicleRaycasterResult___destroy___0=function(){return f.asm.Cv.apply(null,arguments)},Sx=f._emscripten_bind_btVehicleRaycasterResult_get_m_distFraction_0=function(){return f.asm.Dv.apply(null,arguments)},Tx=f._emscripten_bind_btVehicleRaycasterResult_get_m_hitNormalInWorld_0=function(){return f.asm.Ev.apply(null,arguments)},Ux=f._emscripten_bind_btVehicleRaycasterResult_get_m_hitPointInWorld_0= +function(){return f.asm.Fv.apply(null,arguments)},Vx=f._emscripten_bind_btVehicleRaycasterResult_set_m_distFraction_1=function(){return f.asm.Gv.apply(null,arguments)},Wx=f._emscripten_bind_btVehicleRaycasterResult_set_m_hitNormalInWorld_1=function(){return f.asm.Hv.apply(null,arguments)},Xx=f._emscripten_bind_btVehicleRaycasterResult_set_m_hitPointInWorld_1=function(){return f.asm.Iv.apply(null,arguments)},Yx=f._emscripten_bind_btVehicleRaycaster___destroy___0=function(){return f.asm.Jv.apply(null, +arguments)},Zx=f._emscripten_bind_btVehicleRaycaster_castRay_3=function(){return f.asm.Kv.apply(null,arguments)},$x=f._emscripten_bind_btVehicleTuning_btVehicleTuning_0=function(){return f.asm.Lv.apply(null,arguments)},ay=f._emscripten_bind_btVehicleTuning_get_m_frictionSlip_0=function(){return f.asm.Mv.apply(null,arguments)},by=f._emscripten_bind_btVehicleTuning_get_m_maxSuspensionForce_0=function(){return f.asm.Nv.apply(null,arguments)},cy=f._emscripten_bind_btVehicleTuning_get_m_maxSuspensionTravelCm_0= +function(){return f.asm.Ov.apply(null,arguments)},dy=f._emscripten_bind_btVehicleTuning_get_m_suspensionCompression_0=function(){return f.asm.Pv.apply(null,arguments)},ey=f._emscripten_bind_btVehicleTuning_get_m_suspensionDamping_0=function(){return f.asm.Qv.apply(null,arguments)},fy=f._emscripten_bind_btVehicleTuning_get_m_suspensionStiffness_0=function(){return f.asm.Rv.apply(null,arguments)},gy=f._emscripten_bind_btVehicleTuning_set_m_frictionSlip_1=function(){return f.asm.Sv.apply(null,arguments)}, +hy=f._emscripten_bind_btVehicleTuning_set_m_maxSuspensionForce_1=function(){return f.asm.Tv.apply(null,arguments)},iy=f._emscripten_bind_btVehicleTuning_set_m_maxSuspensionTravelCm_1=function(){return f.asm.Uv.apply(null,arguments)},jy=f._emscripten_bind_btVehicleTuning_set_m_suspensionCompression_1=function(){return f.asm.Vv.apply(null,arguments)},ky=f._emscripten_bind_btVehicleTuning_set_m_suspensionDamping_1=function(){return f.asm.Wv.apply(null,arguments)},ly=f._emscripten_bind_btVehicleTuning_set_m_suspensionStiffness_1= +function(){return f.asm.Xv.apply(null,arguments)},my=f._emscripten_bind_btWheelInfoConstructionInfo___destroy___0=function(){return f.asm.Yv.apply(null,arguments)},ny=f._emscripten_bind_btWheelInfoConstructionInfo_get_m_bIsFrontWheel_0=function(){return f.asm.Zv.apply(null,arguments)},oy=f._emscripten_bind_btWheelInfoConstructionInfo_get_m_chassisConnectionCS_0=function(){return f.asm._v.apply(null,arguments)},py=f._emscripten_bind_btWheelInfoConstructionInfo_get_m_frictionSlip_0=function(){return f.asm.$v.apply(null, +arguments)},qy=f._emscripten_bind_btWheelInfoConstructionInfo_get_m_maxSuspensionForce_0=function(){return f.asm.aw.apply(null,arguments)},ry=f._emscripten_bind_btWheelInfoConstructionInfo_get_m_maxSuspensionTravelCm_0=function(){return f.asm.bw.apply(null,arguments)},sy=f._emscripten_bind_btWheelInfoConstructionInfo_get_m_suspensionRestLength_0=function(){return f.asm.cw.apply(null,arguments)},ty=f._emscripten_bind_btWheelInfoConstructionInfo_get_m_suspensionStiffness_0=function(){return f.asm.dw.apply(null, +arguments)},uy=f._emscripten_bind_btWheelInfoConstructionInfo_get_m_wheelAxleCS_0=function(){return f.asm.ew.apply(null,arguments)},vy=f._emscripten_bind_btWheelInfoConstructionInfo_get_m_wheelDirectionCS_0=function(){return f.asm.fw.apply(null,arguments)},wy=f._emscripten_bind_btWheelInfoConstructionInfo_get_m_wheelRadius_0=function(){return f.asm.gw.apply(null,arguments)},xy=f._emscripten_bind_btWheelInfoConstructionInfo_get_m_wheelsDampingCompression_0=function(){return f.asm.hw.apply(null,arguments)}, +yy=f._emscripten_bind_btWheelInfoConstructionInfo_get_m_wheelsDampingRelaxation_0=function(){return f.asm.iw.apply(null,arguments)},zy=f._emscripten_bind_btWheelInfoConstructionInfo_set_m_bIsFrontWheel_1=function(){return f.asm.jw.apply(null,arguments)},Ay=f._emscripten_bind_btWheelInfoConstructionInfo_set_m_chassisConnectionCS_1=function(){return f.asm.kw.apply(null,arguments)},By=f._emscripten_bind_btWheelInfoConstructionInfo_set_m_frictionSlip_1=function(){return f.asm.lw.apply(null,arguments)}, +Cy=f._emscripten_bind_btWheelInfoConstructionInfo_set_m_maxSuspensionForce_1=function(){return f.asm.mw.apply(null,arguments)},Dy=f._emscripten_bind_btWheelInfoConstructionInfo_set_m_maxSuspensionTravelCm_1=function(){return f.asm.nw.apply(null,arguments)},Ey=f._emscripten_bind_btWheelInfoConstructionInfo_set_m_suspensionRestLength_1=function(){return f.asm.ow.apply(null,arguments)},Fy=f._emscripten_bind_btWheelInfoConstructionInfo_set_m_suspensionStiffness_1=function(){return f.asm.pw.apply(null, +arguments)},Gy=f._emscripten_bind_btWheelInfoConstructionInfo_set_m_wheelAxleCS_1=function(){return f.asm.qw.apply(null,arguments)},Hy=f._emscripten_bind_btWheelInfoConstructionInfo_set_m_wheelDirectionCS_1=function(){return f.asm.rw.apply(null,arguments)},Iy=f._emscripten_bind_btWheelInfoConstructionInfo_set_m_wheelRadius_1=function(){return f.asm.sw.apply(null,arguments)},Jy=f._emscripten_bind_btWheelInfoConstructionInfo_set_m_wheelsDampingCompression_1=function(){return f.asm.tw.apply(null,arguments)}, +Ky=f._emscripten_bind_btWheelInfoConstructionInfo_set_m_wheelsDampingRelaxation_1=function(){return f.asm.uw.apply(null,arguments)},Ly=f._emscripten_bind_btWheelInfo___destroy___0=function(){return f.asm.vw.apply(null,arguments)},My=f._emscripten_bind_btWheelInfo_btWheelInfo_1=function(){return f.asm.ww.apply(null,arguments)},Ny=f._emscripten_bind_btWheelInfo_getSuspensionRestLength_0=function(){return f.asm.xw.apply(null,arguments)},Oy=f._emscripten_bind_btWheelInfo_get_m_bIsFrontWheel_0=function(){return f.asm.yw.apply(null, +arguments)},Py=f._emscripten_bind_btWheelInfo_get_m_brake_0=function(){return f.asm.zw.apply(null,arguments)},Qy=f._emscripten_bind_btWheelInfo_get_m_chassisConnectionPointCS_0=function(){return f.asm.Aw.apply(null,arguments)},Ry=f._emscripten_bind_btWheelInfo_get_m_clippedInvContactDotSuspension_0=function(){return f.asm.Bw.apply(null,arguments)},Sy=f._emscripten_bind_btWheelInfo_get_m_deltaRotation_0=function(){return f.asm.Cw.apply(null,arguments)},Ty=f._emscripten_bind_btWheelInfo_get_m_engineForce_0= +function(){return f.asm.Dw.apply(null,arguments)},Uy=f._emscripten_bind_btWheelInfo_get_m_frictionSlip_0=function(){return f.asm.Ew.apply(null,arguments)},Vy=f._emscripten_bind_btWheelInfo_get_m_maxSuspensionForce_0=function(){return f.asm.Fw.apply(null,arguments)},Wy=f._emscripten_bind_btWheelInfo_get_m_maxSuspensionTravelCm_0=function(){return f.asm.Gw.apply(null,arguments)},Xy=f._emscripten_bind_btWheelInfo_get_m_raycastInfo_0=function(){return f.asm.Hw.apply(null,arguments)},Yy=f._emscripten_bind_btWheelInfo_get_m_rollInfluence_0= +function(){return f.asm.Iw.apply(null,arguments)},Zy=f._emscripten_bind_btWheelInfo_get_m_rotation_0=function(){return f.asm.Jw.apply(null,arguments)},$y=f._emscripten_bind_btWheelInfo_get_m_skidInfo_0=function(){return f.asm.Kw.apply(null,arguments)},az=f._emscripten_bind_btWheelInfo_get_m_steering_0=function(){return f.asm.Lw.apply(null,arguments)},bz=f._emscripten_bind_btWheelInfo_get_m_suspensionRelativeVelocity_0=function(){return f.asm.Mw.apply(null,arguments)},cz=f._emscripten_bind_btWheelInfo_get_m_suspensionRestLength1_0= +function(){return f.asm.Nw.apply(null,arguments)},dz=f._emscripten_bind_btWheelInfo_get_m_suspensionStiffness_0=function(){return f.asm.Ow.apply(null,arguments)},ez=f._emscripten_bind_btWheelInfo_get_m_wheelAxleCS_0=function(){return f.asm.Pw.apply(null,arguments)},fz=f._emscripten_bind_btWheelInfo_get_m_wheelDirectionCS_0=function(){return f.asm.Qw.apply(null,arguments)},gz=f._emscripten_bind_btWheelInfo_get_m_wheelsDampingCompression_0=function(){return f.asm.Rw.apply(null,arguments)},hz=f._emscripten_bind_btWheelInfo_get_m_wheelsDampingRelaxation_0= +function(){return f.asm.Sw.apply(null,arguments)},iz=f._emscripten_bind_btWheelInfo_get_m_wheelsRadius_0=function(){return f.asm.Tw.apply(null,arguments)},jz=f._emscripten_bind_btWheelInfo_get_m_wheelsSuspensionForce_0=function(){return f.asm.Uw.apply(null,arguments)},kz=f._emscripten_bind_btWheelInfo_get_m_worldTransform_0=function(){return f.asm.Vw.apply(null,arguments)},lz=f._emscripten_bind_btWheelInfo_set_m_bIsFrontWheel_1=function(){return f.asm.Ww.apply(null,arguments)},mz=f._emscripten_bind_btWheelInfo_set_m_brake_1= +function(){return f.asm.Xw.apply(null,arguments)},nz=f._emscripten_bind_btWheelInfo_set_m_chassisConnectionPointCS_1=function(){return f.asm.Yw.apply(null,arguments)},oz=f._emscripten_bind_btWheelInfo_set_m_clippedInvContactDotSuspension_1=function(){return f.asm.Zw.apply(null,arguments)},pz=f._emscripten_bind_btWheelInfo_set_m_deltaRotation_1=function(){return f.asm._w.apply(null,arguments)},qz=f._emscripten_bind_btWheelInfo_set_m_engineForce_1=function(){return f.asm.$w.apply(null,arguments)},rz= +f._emscripten_bind_btWheelInfo_set_m_frictionSlip_1=function(){return f.asm.ax.apply(null,arguments)},sz=f._emscripten_bind_btWheelInfo_set_m_maxSuspensionForce_1=function(){return f.asm.bx.apply(null,arguments)},tz=f._emscripten_bind_btWheelInfo_set_m_maxSuspensionTravelCm_1=function(){return f.asm.cx.apply(null,arguments)},uz=f._emscripten_bind_btWheelInfo_set_m_raycastInfo_1=function(){return f.asm.dx.apply(null,arguments)},vz=f._emscripten_bind_btWheelInfo_set_m_rollInfluence_1=function(){return f.asm.ex.apply(null, +arguments)},wz=f._emscripten_bind_btWheelInfo_set_m_rotation_1=function(){return f.asm.fx.apply(null,arguments)},xz=f._emscripten_bind_btWheelInfo_set_m_skidInfo_1=function(){return f.asm.gx.apply(null,arguments)},yz=f._emscripten_bind_btWheelInfo_set_m_steering_1=function(){return f.asm.hx.apply(null,arguments)},zz=f._emscripten_bind_btWheelInfo_set_m_suspensionRelativeVelocity_1=function(){return f.asm.ix.apply(null,arguments)},Az=f._emscripten_bind_btWheelInfo_set_m_suspensionRestLength1_1=function(){return f.asm.jx.apply(null, +arguments)},Bz=f._emscripten_bind_btWheelInfo_set_m_suspensionStiffness_1=function(){return f.asm.kx.apply(null,arguments)},Cz=f._emscripten_bind_btWheelInfo_set_m_wheelAxleCS_1=function(){return f.asm.lx.apply(null,arguments)},Dz=f._emscripten_bind_btWheelInfo_set_m_wheelDirectionCS_1=function(){return f.asm.mx.apply(null,arguments)},Ez=f._emscripten_bind_btWheelInfo_set_m_wheelsDampingCompression_1=function(){return f.asm.nx.apply(null,arguments)},Fz=f._emscripten_bind_btWheelInfo_set_m_wheelsDampingRelaxation_1= +function(){return f.asm.ox.apply(null,arguments)},Gz=f._emscripten_bind_btWheelInfo_set_m_wheelsRadius_1=function(){return f.asm.px.apply(null,arguments)},Hz=f._emscripten_bind_btWheelInfo_set_m_wheelsSuspensionForce_1=function(){return f.asm.qx.apply(null,arguments)},Iz=f._emscripten_bind_btWheelInfo_set_m_worldTransform_1=function(){return f.asm.rx.apply(null,arguments)},Jz=f._emscripten_bind_btWheelInfo_updateWheel_2=function(){return f.asm.sx.apply(null,arguments)},Kz=f._emscripten_bind_tAnchorArray___destroy___0= +function(){return f.asm.tx.apply(null,arguments)},Lz=f._emscripten_bind_tAnchorArray_at_1=function(){return f.asm.ux.apply(null,arguments)},Mz=f._emscripten_bind_tAnchorArray_clear_0=function(){return f.asm.vx.apply(null,arguments)},Nz=f._emscripten_bind_tAnchorArray_pop_back_0=function(){return f.asm.wx.apply(null,arguments)},Oz=f._emscripten_bind_tAnchorArray_push_back_1=function(){return f.asm.xx.apply(null,arguments)},Pz=f._emscripten_bind_tAnchorArray_size_0=function(){return f.asm.yx.apply(null, +arguments)},Qz=f._emscripten_bind_tMaterialArray___destroy___0=function(){return f.asm.zx.apply(null,arguments)},Rz=f._emscripten_bind_tMaterialArray_at_1=function(){return f.asm.Ax.apply(null,arguments)},Sz=f._emscripten_bind_tMaterialArray_size_0=function(){return f.asm.Bx.apply(null,arguments)},Tz=f._emscripten_bind_tNodeArray___destroy___0=function(){return f.asm.Cx.apply(null,arguments)},Uz=f._emscripten_bind_tNodeArray_at_1=function(){return f.asm.Dx.apply(null,arguments)},Vz=f._emscripten_bind_tNodeArray_size_0= +function(){return f.asm.Ex.apply(null,arguments)},Wz=f._emscripten_enum_PHY_ScalarType_PHY_DOUBLE=function(){return f.asm.Fx.apply(null,arguments)},Xz=f._emscripten_enum_PHY_ScalarType_PHY_FIXEDPOINT88=function(){return f.asm.Gx.apply(null,arguments)},Yz=f._emscripten_enum_PHY_ScalarType_PHY_FLOAT=function(){return f.asm.Hx.apply(null,arguments)},Zz=f._emscripten_enum_PHY_ScalarType_PHY_INTEGER=function(){return f.asm.Ix.apply(null,arguments)},$z=f._emscripten_enum_PHY_ScalarType_PHY_SHORT=function(){return f.asm.Jx.apply(null, +arguments)},aA=f._emscripten_enum_PHY_ScalarType_PHY_UCHAR=function(){return f.asm.Kx.apply(null,arguments)},bA=f._emscripten_enum_btConstraintParams_BT_CONSTRAINT_CFM=function(){return f.asm.Lx.apply(null,arguments)},cA=f._emscripten_enum_btConstraintParams_BT_CONSTRAINT_ERP=function(){return f.asm.Mx.apply(null,arguments)},dA=f._emscripten_enum_btConstraintParams_BT_CONSTRAINT_STOP_CFM=function(){return f.asm.Nx.apply(null,arguments)},eA=f._emscripten_enum_btConstraintParams_BT_CONSTRAINT_STOP_ERP= +function(){return f.asm.Ox.apply(null,arguments)};f._free=function(){return f.asm.Px.apply(null,arguments)};f._malloc=function(){return f.asm.Qx.apply(null,arguments)};f.dynCall_v=function(){return f.asm.Rx.apply(null,arguments)};f.dynCall_vi=function(){return f.asm.Sx.apply(null,arguments)};f.asm=Ya;var fA;f.then=function(a){if(fA)a(f);else{var c=f.onRuntimeInitialized;f.onRuntimeInitialized=function(){c&&c();a(f)}}return f};Ja=function gA(){fA||hA();fA||(Ja=gA)}; +function hA(){function a(){if(!fA&&(fA=!0,!na)){Da=!0;ya(Aa);ya(Ba);if(f.onRuntimeInitialized)f.onRuntimeInitialized();if(f.postRun)for("function"==typeof f.postRun&&(f.postRun=[f.postRun]);f.postRun.length;){var a=f.postRun.shift();Ca.unshift(a)}ya(Ca)}}if(!(0=b.size?(oa(0>=1;break;case 4:d>>=2;break;case 8:d>>= +3}for(var e=0;e=e&&(e=65536+((e&1023)<<10)|a.charCodeAt(++d)&1023);127>=e?++c:c=2047>=e?c+2:65535>=e?c+3:c+4}c=Array(c+1);e=c.length;d=0;if(0=n){var B=a.charCodeAt(++g);n=65536+((n&1023)<<10)|B&1023}if(127>=n){if(d>=e)break;c[d++]=n}else{if(2047>=n){if(d+1>=e)break;c[d++]=192|n>>6}else{if(65535>=n){if(d+2>=e)break;c[d++]=224| +n>>12}else{if(d+3>=e)break;c[d++]=240|n>>18;c[d++]=128|n>>12&63}c[d++]=128|n>>6&63}c[d++]=128|n&63}}c[d]=0}a=b.ty(c,sa);b.vy(c,sa,a)}return a}function jA(a){if("object"===typeof a){var c=b.ty(a,va);b.vy(a,va,c);return c}return a}function kA(){throw"cannot construct a btCollisionWorld, no constructor in IDL";}kA.prototype=Object.create(h.prototype);kA.prototype.constructor=kA;kA.prototype.Ux=kA;kA.Vx={};f.btCollisionWorld=kA;kA.prototype.getDispatcher=function(){return l(wh(this.Tx),lA)}; +kA.prototype.rayTest=function(a,c,d){var e=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);yh(e,a,c,d)};kA.prototype.getPairCache=function(){return l(xh(this.Tx),mA)};kA.prototype.getDispatchInfo=function(){return l(vh(this.Tx),m)}; +kA.prototype.addCollisionObject=function(a,c,d){var e=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);void 0===c?lh(e,a):void 0===d?mh(e,a,c):nh(e,a,c,d)};kA.prototype.removeCollisionObject=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);zh(c,a)};kA.prototype.getBroadphase=function(){return l(th(this.Tx),nA)}; +kA.prototype.convexSweepTest=function(a,c,d,e,g){var n=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);e&&"object"===typeof e&&(e=e.Tx);g&&"object"===typeof g&&(g=g.Tx);qh(n,a,c,d,e,g)};kA.prototype.contactPairTest=function(a,c,d){var e=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);oh(e,a,c,d)}; +kA.prototype.contactTest=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);ph(d,a,c)};kA.prototype.updateSingleAabb=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Bh(c,a)};kA.prototype.setDebugDrawer=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Ah(c,a)};kA.prototype.getDebugDrawer=function(){return l(uh(this.Tx),oA)};kA.prototype.debugDrawWorld=function(){sh(this.Tx)}; +kA.prototype.debugDrawObject=function(a,c,d){var e=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);rh(e,a,c,d)};kA.prototype.__destroy__=function(){kh(this.Tx)};function p(){throw"cannot construct a btCollisionShape, no constructor in IDL";}p.prototype=Object.create(h.prototype);p.prototype.constructor=p;p.prototype.Ux=p;p.Vx={};f.btCollisionShape=p; +p.prototype.setLocalScaling=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ih(c,a)};p.prototype.getLocalScaling=function(){return l(gh(this.Tx),q)};p.prototype.calculateLocalInertia=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);fh(d,a,c)};p.prototype.setMargin=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);jh(c,a)};p.prototype.getMargin=function(){return hh(this.Tx)};p.prototype.__destroy__=function(){eh(this.Tx)}; +function r(){throw"cannot construct a btCollisionObject, no constructor in IDL";}r.prototype=Object.create(h.prototype);r.prototype.constructor=r;r.prototype.Ux=r;r.Vx={};f.btCollisionObject=r;r.prototype.setAnisotropicFriction=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);Tg(d,a,c)};r.prototype.getCollisionShape=function(){return l(Hg(this.Tx),p)}; +r.prototype.setContactProcessingThreshold=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Yg(c,a)};r.prototype.setActivationState=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Sg(c,a)};r.prototype.forceActivationState=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Eg(c,a)};r.prototype.activate=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);void 0===a?Cg(c):Dg(c,a)};r.prototype.isActive=function(){return!!Og(this.Tx)};r.prototype.isKinematicObject=function(){return!!Pg(this.Tx)}; +r.prototype.isStaticObject=function(){return!!Qg(this.Tx)};r.prototype.isStaticOrKinematicObject=function(){return!!Rg(this.Tx)};r.prototype.getRestitution=function(){return Jg(this.Tx)};r.prototype.getFriction=function(){return Ig(this.Tx)};r.prototype.getRollingFriction=function(){return Kg(this.Tx)};r.prototype.setRestitution=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);$g(c,a)};r.prototype.setFriction=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Zg(c,a)}; +r.prototype.setRollingFriction=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ah(c,a)};r.prototype.getWorldTransform=function(){return l(Ng(this.Tx),t)};r.prototype.getCollisionFlags=function(){return Gg(this.Tx)};r.prototype.setCollisionFlags=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Wg(c,a)};r.prototype.setWorldTransform=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);dh(c,a)}; +r.prototype.setCollisionShape=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Xg(c,a)};r.prototype.setCcdMotionThreshold=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Ug(c,a)};r.prototype.setCcdSweptSphereRadius=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Vg(c,a)};r.prototype.getUserIndex=function(){return Lg(this.Tx)};r.prototype.setUserIndex=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);bh(c,a)}; +r.prototype.getUserPointer=function(){return l(Mg(this.Tx),pA)};r.prototype.setUserPointer=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ch(c,a)};r.prototype.getBroadphaseHandle=function(){return l(Fg(this.Tx),u)};r.prototype.__destroy__=function(){Bg(this.Tx)};function qA(){throw"cannot construct a btDynamicsWorld, no constructor in IDL";}qA.prototype=Object.create(kA.prototype);qA.prototype.constructor=qA;qA.prototype.Ux=qA;qA.Vx={};f.btDynamicsWorld=qA; +qA.prototype.addAction=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);yl(c,a)};qA.prototype.removeAction=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Ol(c,a)};qA.prototype.getSolverInfo=function(){return l(Ml(this.Tx),v)};qA.prototype.getDispatcher=function(){return l(Kl(this.Tx),lA)};qA.prototype.rayTest=function(a,c,d){var e=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);Nl(e,a,c,d)}; +qA.prototype.getPairCache=function(){return l(Ll(this.Tx),mA)};qA.prototype.getDispatchInfo=function(){return l(Jl(this.Tx),m)};qA.prototype.addCollisionObject=function(a,c,d){var e=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);void 0===c?zl(e,a):void 0===d?Al(e,a,c):Bl(e,a,c,d)};qA.prototype.removeCollisionObject=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Pl(c,a)}; +qA.prototype.getBroadphase=function(){return l(Hl(this.Tx),nA)};qA.prototype.convexSweepTest=function(a,c,d,e,g){var n=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);e&&"object"===typeof e&&(e=e.Tx);g&&"object"===typeof g&&(g=g.Tx);El(n,a,c,d,e,g)};qA.prototype.contactPairTest=function(a,c,d){var e=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);Cl(e,a,c,d)}; +qA.prototype.contactTest=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);Dl(d,a,c)};qA.prototype.updateSingleAabb=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Rl(c,a)};qA.prototype.setDebugDrawer=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Ql(c,a)};qA.prototype.getDebugDrawer=function(){return l(Il(this.Tx),oA)};qA.prototype.debugDrawWorld=function(){Gl(this.Tx)}; +qA.prototype.debugDrawObject=function(a,c,d){var e=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);Fl(e,a,c,d)};qA.prototype.__destroy__=function(){xl(this.Tx)};function rA(){throw"cannot construct a btTypedConstraint, no constructor in IDL";}rA.prototype=Object.create(h.prototype);rA.prototype.constructor=rA;rA.prototype.Ux=rA;rA.Vx={};f.btTypedConstraint=rA; +rA.prototype.enableFeedback=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ax(c,a)};rA.prototype.getBreakingImpulseThreshold=function(){return bx(this.Tx)};rA.prototype.setBreakingImpulseThreshold=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);dx(c,a)};rA.prototype.getParam=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);return cx(d,a,c)}; +rA.prototype.setParam=function(a,c,d){var e=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);ex(e,a,c,d)};rA.prototype.__destroy__=function(){$w(this.Tx)};function sA(){throw"cannot construct a btConcaveShape, no constructor in IDL";}sA.prototype=Object.create(p.prototype);sA.prototype.constructor=sA;sA.prototype.Ux=sA;sA.Vx={};f.btConcaveShape=sA; +sA.prototype.setLocalScaling=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Uh(c,a)};sA.prototype.getLocalScaling=function(){return l(Th(this.Tx),q)};sA.prototype.calculateLocalInertia=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);Sh(d,a,c)};sA.prototype.__destroy__=function(){Rh(this.Tx)};function tA(a,c){a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);this.Tx=kg(a,c);k(tA)[this.Tx]=this}tA.prototype=Object.create(p.prototype); +tA.prototype.constructor=tA;tA.prototype.Ux=tA;tA.Vx={};f.btCapsuleShape=tA;tA.prototype.setMargin=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);sg(c,a)};tA.prototype.getMargin=function(){return og(this.Tx)};tA.prototype.getUpAxis=function(){return qg(this.Tx)};tA.prototype.getRadius=function(){return pg(this.Tx)};tA.prototype.getHalfHeight=function(){return mg(this.Tx)};tA.prototype.setLocalScaling=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);rg(c,a)}; +tA.prototype.getLocalScaling=function(){return l(ng(this.Tx),q)};tA.prototype.calculateLocalInertia=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);lg(d,a,c)};tA.prototype.__destroy__=function(){jg(this.Tx)};function oA(){throw"cannot construct a btIDebugDraw, no constructor in IDL";}oA.prototype=Object.create(h.prototype);oA.prototype.constructor=oA;oA.prototype.Ux=oA;oA.Vx={};f.btIDebugDraw=oA; +oA.prototype.drawLine=function(a,c,d){var e=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);Yn(e,a,c,d)};oA.prototype.drawContactPoint=function(a,c,d,e,g){var n=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);e&&"object"===typeof e&&(e=e.Tx);g&&"object"===typeof g&&(g=g.Tx);Xn(n,a,c,d,e,g)}; +oA.prototype.reportErrorWarning=function(a){var c=this.Tx;b.Yx();a=a&&"object"===typeof a?a.Tx:iA(a);$n(c,a)};oA.prototype.draw3dText=function(a,c){var d=this.Tx;b.Yx();a&&"object"===typeof a&&(a=a.Tx);c=c&&"object"===typeof c?c.Tx:iA(c);Wn(d,a,c)};oA.prototype.setDebugMode=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ao(c,a)};oA.prototype.getDebugMode=function(){return Zn(this.Tx)};oA.prototype.__destroy__=function(){Vn(this.Tx)}; +function uA(a){a&&"object"===typeof a&&(a=a.Tx);this.Tx=void 0===a?Xj():Yj(a);k(uA)[this.Tx]=this}uA.prototype=Object.create(h.prototype);uA.prototype.constructor=uA;uA.prototype.Ux=uA;uA.Vx={};f.btDefaultCollisionConfiguration=uA;uA.prototype.__destroy__=function(){Wj(this.Tx)};function vA(){throw"cannot construct a btTriangleMeshShape, no constructor in IDL";}vA.prototype=Object.create(sA.prototype);vA.prototype.constructor=vA;vA.prototype.Ux=vA;vA.Vx={};f.btTriangleMeshShape=vA; +vA.prototype.setLocalScaling=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Pw(c,a)};vA.prototype.getLocalScaling=function(){return l(Ow(this.Tx),q)};vA.prototype.calculateLocalInertia=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);Nw(d,a,c)};vA.prototype.__destroy__=function(){Mw(this.Tx)};function w(){this.Tx=Pm();k(w)[this.Tx]=this}w.prototype=Object.create(r.prototype);w.prototype.constructor=w;w.prototype.Ux=w;w.Vx={}; +f.btGhostObject=w;w.prototype.getNumOverlappingObjects=function(){return Vm(this.Tx)};w.prototype.getOverlappingObject=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return l(Wm(c,a),r)};w.prototype.setAnisotropicFriction=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);gn(d,a,c)};w.prototype.getCollisionShape=function(){return l(Tm(this.Tx),p)}; +w.prototype.setContactProcessingThreshold=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);mn(c,a)};w.prototype.setActivationState=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);fn(c,a)};w.prototype.forceActivationState=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Qm(c,a)};w.prototype.activate=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);void 0===a?Nm(c):Om(c,a)};w.prototype.isActive=function(){return!!bn(this.Tx)};w.prototype.isKinematicObject=function(){return!!cn(this.Tx)}; +w.prototype.isStaticObject=function(){return!!dn(this.Tx)};w.prototype.isStaticOrKinematicObject=function(){return!!en(this.Tx)};w.prototype.getRestitution=function(){return Xm(this.Tx)};w.prototype.getFriction=function(){return Um(this.Tx)};w.prototype.getRollingFriction=function(){return Ym(this.Tx)};w.prototype.setRestitution=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);on(c,a)};w.prototype.setFriction=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);nn(c,a)}; +w.prototype.setRollingFriction=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);pn(c,a)};w.prototype.getWorldTransform=function(){return l(an(this.Tx),t)};w.prototype.getCollisionFlags=function(){return Sm(this.Tx)};w.prototype.setCollisionFlags=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);kn(c,a)};w.prototype.setWorldTransform=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);sn(c,a)}; +w.prototype.setCollisionShape=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ln(c,a)};w.prototype.setCcdMotionThreshold=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);hn(c,a)};w.prototype.setCcdSweptSphereRadius=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);jn(c,a)};w.prototype.getUserIndex=function(){return Zm(this.Tx)};w.prototype.setUserIndex=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);qn(c,a)}; +w.prototype.getUserPointer=function(){return l($m(this.Tx),pA)};w.prototype.setUserPointer=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);rn(c,a)};w.prototype.getBroadphaseHandle=function(){return l(Rm(this.Tx),u)};w.prototype.__destroy__=function(){Mm(this.Tx)};function wA(a,c){a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);this.Tx=fi(a,c);k(wA)[this.Tx]=this}wA.prototype=Object.create(p.prototype);wA.prototype.constructor=wA;wA.prototype.Ux=wA;wA.Vx={}; +f.btConeShape=wA;wA.prototype.setLocalScaling=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ii(c,a)};wA.prototype.getLocalScaling=function(){return l(hi(this.Tx),q)};wA.prototype.calculateLocalInertia=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);gi(d,a,c)};wA.prototype.__destroy__=function(){ei(this.Tx)};function xA(){throw"cannot construct a btActionInterface, no constructor in IDL";}xA.prototype=Object.create(h.prototype); +xA.prototype.constructor=xA;xA.prototype.Ux=xA;xA.Vx={};f.btActionInterface=xA;xA.prototype.updateAction=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);qf(d,a,c)};xA.prototype.__destroy__=function(){pf(this.Tx)}; +function q(a,c,d){a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);this.Tx=void 0===a?jx():void 0===c?_emscripten_bind_btVector3_btVector3_1(a):void 0===d?_emscripten_bind_btVector3_btVector3_2(a,c):kx(a,c,d);k(q)[this.Tx]=this}q.prototype=Object.create(h.prototype);q.prototype.constructor=q;q.prototype.Ux=q;q.Vx={};f.btVector3=q;q.prototype.length=q.prototype.length=function(){return mx(this.Tx)};q.prototype.x=q.prototype.x=function(){return wx(this.Tx)}; +q.prototype.y=q.prototype.y=function(){return xx(this.Tx)};q.prototype.z=q.prototype.z=function(){return yx(this.Tx)};q.prototype.setX=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);tx(c,a)};q.prototype.setY=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ux(c,a)};q.prototype.setZ=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);vx(c,a)}; +q.prototype.setValue=function(a,c,d){var e=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);sx(e,a,c,d)};q.prototype.normalize=q.prototype.normalize=function(){nx(this.Tx)};q.prototype.rotate=q.prototype.rotate=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);return l(rx(d,a,c),q)};q.prototype.dot=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return lx(c,a)}; +q.prototype.op_mul=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return l(px(c,a),q)};q.prototype.op_add=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return l(ox(c,a),q)};q.prototype.op_sub=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return l(qx(c,a),q)};q.prototype.__destroy__=function(){ix(this.Tx)};function yA(){throw"cannot construct a btVehicleRaycaster, no constructor in IDL";}yA.prototype=Object.create(h.prototype);yA.prototype.constructor=yA; +yA.prototype.Ux=yA;yA.Vx={};f.btVehicleRaycaster=yA;yA.prototype.castRay=function(a,c,d){var e=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);Zx(e,a,c,d)};yA.prototype.__destroy__=function(){Yx(this.Tx)};function zA(){throw"cannot construct a btQuadWord, no constructor in IDL";}zA.prototype=Object.create(h.prototype);zA.prototype.constructor=zA;zA.prototype.Ux=zA;zA.Vx={};f.btQuadWord=zA;zA.prototype.x=zA.prototype.x=function(){return uq(this.Tx)}; +zA.prototype.y=zA.prototype.y=function(){return vq(this.Tx)};zA.prototype.z=zA.prototype.z=function(){return wq(this.Tx)};zA.prototype.w=function(){return tq(this.Tx)};zA.prototype.setX=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);qq(c,a)};zA.prototype.setY=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);rq(c,a)};zA.prototype.setZ=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);sq(c,a)}; +zA.prototype.setW=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);pq(c,a)};zA.prototype.__destroy__=function(){oq(this.Tx)};function AA(a){a&&"object"===typeof a&&(a=a.Tx);this.Tx=Oj(a);k(AA)[this.Tx]=this}AA.prototype=Object.create(p.prototype);AA.prototype.constructor=AA;AA.prototype.Ux=AA;AA.Vx={};f.btCylinderShape=AA;AA.prototype.setMargin=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Tj(c,a)};AA.prototype.getMargin=function(){return Rj(this.Tx)}; +AA.prototype.setLocalScaling=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Sj(c,a)};AA.prototype.getLocalScaling=function(){return l(Qj(this.Tx),q)};AA.prototype.calculateLocalInertia=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);Pj(d,a,c)};AA.prototype.__destroy__=function(){Nj(this.Tx)}; +function x(a,c,d,e){a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);e&&"object"===typeof e&&(e=e.Tx);this.Tx=xk(a,c,d,e);k(x)[this.Tx]=this}x.prototype=Object.create(qA.prototype);x.prototype.constructor=x;x.prototype.Ux=x;x.Vx={};f.btDiscreteDynamicsWorld=x;x.prototype.setGravity=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Tk(c,a)};x.prototype.getGravity=function(){return l(Hk(this.Tx),q)}; +x.prototype.addRigidBody=function(a,c,d){var e=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);void 0===c?vk(e,a):void 0===d?_emscripten_bind_btDiscreteDynamicsWorld_addRigidBody_2(e,a,c):wk(e,a,c,d)};x.prototype.removeRigidBody=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Ok(c,a)}; +x.prototype.addConstraint=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);void 0===c?tk(d,a):uk(d,a,c)};x.prototype.removeConstraint=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Nk(c,a)};x.prototype.stepSimulation=function(a,c,d){var e=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);return void 0===c?Uk(e,a):void 0===d?Vk(e,a,c):Wk(e,a,c,d)}; +x.prototype.setContactAddedCallback=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Pk(c,a)};x.prototype.setContactProcessedCallback=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Rk(c,a)};x.prototype.setContactDestroyedCallback=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Qk(c,a)};x.prototype.getDispatcher=function(){return l(Gk(this.Tx),lA)}; +x.prototype.rayTest=function(a,c,d){var e=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);Kk(e,a,c,d)};x.prototype.getPairCache=function(){return l(Ik(this.Tx),mA)};x.prototype.getDispatchInfo=function(){return l(Fk(this.Tx),m)};x.prototype.addCollisionObject=function(a,c,d){var e=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);void 0===c?qk(e,a):void 0===d?rk(e,a,c):sk(e,a,c,d)}; +x.prototype.removeCollisionObject=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Mk(c,a)};x.prototype.getBroadphase=function(){return l(Dk(this.Tx),nA)};x.prototype.convexSweepTest=function(a,c,d,e,g){var n=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);e&&"object"===typeof e&&(e=e.Tx);g&&"object"===typeof g&&(g=g.Tx);Ak(n,a,c,d,e,g)}; +x.prototype.contactPairTest=function(a,c,d){var e=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);yk(e,a,c,d)};x.prototype.contactTest=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);zk(d,a,c)};x.prototype.updateSingleAabb=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Xk(c,a)};x.prototype.setDebugDrawer=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Sk(c,a)}; +x.prototype.getDebugDrawer=function(){return l(Ek(this.Tx),oA)};x.prototype.debugDrawWorld=function(){Ck(this.Tx)};x.prototype.debugDrawObject=function(a,c,d){var e=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);Bk(e,a,c,d)};x.prototype.addAction=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);pk(c,a)};x.prototype.removeAction=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Lk(c,a)}; +x.prototype.getSolverInfo=function(){return l(Jk(this.Tx),v)};x.prototype.__destroy__=function(){ok(this.Tx)};function BA(){throw"cannot construct a btConvexShape, no constructor in IDL";}BA.prototype=Object.create(p.prototype);BA.prototype.constructor=BA;BA.prototype.Ux=BA;BA.Vx={};f.btConvexShape=BA;BA.prototype.setLocalScaling=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);pj(c,a)};BA.prototype.getLocalScaling=function(){return l(nj(this.Tx),q)}; +BA.prototype.calculateLocalInertia=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);mj(d,a,c)};BA.prototype.setMargin=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);qj(c,a)};BA.prototype.getMargin=function(){return oj(this.Tx)};BA.prototype.__destroy__=function(){lj(this.Tx)};function lA(){throw"cannot construct a btDispatcher, no constructor in IDL";}lA.prototype=Object.create(h.prototype);lA.prototype.constructor=lA;lA.prototype.Ux=lA; +lA.Vx={};f.btDispatcher=lA;lA.prototype.getNumManifolds=function(){return wl(this.Tx)};lA.prototype.getManifoldByIndexInternal=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return l(vl(c,a),CA)};lA.prototype.__destroy__=function(){ul(this.Tx)}; +function DA(a,c,d,e,g){a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);e&&"object"===typeof e&&(e=e.Tx);g&&"object"===typeof g&&(g=g.Tx);this.Tx=void 0===e?hm(a,c,d):void 0===g?_emscripten_bind_btGeneric6DofConstraint_btGeneric6DofConstraint_4(a,c,d,e):im(a,c,d,e,g);k(DA)[this.Tx]=this}DA.prototype=Object.create(rA.prototype);DA.prototype.constructor=DA;DA.prototype.Ux=DA;DA.Vx={};f.btGeneric6DofConstraint=DA; +DA.prototype.setLinearLowerLimit=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);qm(c,a)};DA.prototype.setLinearUpperLimit=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);rm(c,a)};DA.prototype.setAngularLowerLimit=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);nm(c,a)};DA.prototype.setAngularUpperLimit=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);om(c,a)};DA.prototype.getFrameOffsetA=function(){return l(lm(this.Tx),t)}; +DA.prototype.enableFeedback=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);jm(c,a)};DA.prototype.getBreakingImpulseThreshold=function(){return km(this.Tx)};DA.prototype.setBreakingImpulseThreshold=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);pm(c,a)};DA.prototype.getParam=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);return mm(d,a,c)}; +DA.prototype.setParam=function(a,c,d){var e=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);sm(e,a,c,d)};DA.prototype.__destroy__=function(){gm(this.Tx)};function EA(){throw"cannot construct a btStridingMeshInterface, no constructor in IDL";}EA.prototype=Object.create(h.prototype);EA.prototype.constructor=EA;EA.prototype.Ux=EA;EA.Vx={};f.btStridingMeshInterface=EA; +EA.prototype.setScaling=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);zw(c,a)};EA.prototype.__destroy__=function(){yw(this.Tx)};function FA(){throw"cannot construct a btMotionState, no constructor in IDL";}FA.prototype=Object.create(h.prototype);FA.prototype.constructor=FA;FA.prototype.Ux=FA;FA.Vx={};f.btMotionState=FA;FA.prototype.getWorldTransform=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);dp(c,a)}; +FA.prototype.setWorldTransform=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ep(c,a)};FA.prototype.__destroy__=function(){cp(this.Tx)};function y(){throw"cannot construct a ConvexResultCallback, no constructor in IDL";}y.prototype=Object.create(h.prototype);y.prototype.constructor=y;y.prototype.Ux=y;y.Vx={};f.ConvexResultCallback=y;y.prototype.hasHit=function(){return!!Nd(this.Tx)};y.prototype.get_m_collisionFilterGroup=y.prototype.Wx=function(){return Ld(this.Tx)}; +y.prototype.set_m_collisionFilterGroup=y.prototype.Zx=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Pd(c,a)};Object.defineProperty(y.prototype,"m_collisionFilterGroup",{get:y.prototype.Wx,set:y.prototype.Zx});y.prototype.get_m_collisionFilterMask=y.prototype.Xx=function(){return Md(this.Tx)};y.prototype.set_m_collisionFilterMask=y.prototype.$x=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Qd(c,a)}; +Object.defineProperty(y.prototype,"m_collisionFilterMask",{get:y.prototype.Xx,set:y.prototype.$x});y.prototype.get_m_closestHitFraction=y.prototype.ay=function(){return Kd(this.Tx)};y.prototype.set_m_closestHitFraction=y.prototype.by=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Od(c,a)};Object.defineProperty(y.prototype,"m_closestHitFraction",{get:y.prototype.ay,set:y.prototype.by});y.prototype.__destroy__=function(){Jd(this.Tx)}; +function GA(){throw"cannot construct a ContactResultCallback, no constructor in IDL";}GA.prototype=Object.create(h.prototype);GA.prototype.constructor=GA;GA.prototype.Ux=GA;GA.Vx={};f.ContactResultCallback=GA; +GA.prototype.addSingleResult=function(a,c,d,e,g,n,B){var R=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);e&&"object"===typeof e&&(e=e.Tx);g&&"object"===typeof g&&(g=g.Tx);n&&"object"===typeof n&&(n=n.Tx);B&&"object"===typeof B&&(B=B.Tx);return Id(R,a,c,d,e,g,n,B)};GA.prototype.__destroy__=function(){Hd(this.Tx)};function HA(){throw"cannot construct a btSoftBodySolver, no constructor in IDL";}HA.prototype=Object.create(h.prototype); +HA.prototype.constructor=HA;HA.prototype.Ux=HA;HA.Vx={};f.btSoftBodySolver=HA;HA.prototype.__destroy__=function(){Zt(this.Tx)};function z(){throw"cannot construct a RayResultCallback, no constructor in IDL";}z.prototype=Object.create(h.prototype);z.prototype.constructor=z;z.prototype.Ux=z;z.Vx={};f.RayResultCallback=z;z.prototype.hasHit=function(){return!!Se(this.Tx)};z.prototype.get_m_collisionFilterGroup=z.prototype.Wx=function(){return Pe(this.Tx)}; +z.prototype.set_m_collisionFilterGroup=z.prototype.Zx=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Ue(c,a)};Object.defineProperty(z.prototype,"m_collisionFilterGroup",{get:z.prototype.Wx,set:z.prototype.Zx});z.prototype.get_m_collisionFilterMask=z.prototype.Xx=function(){return Qe(this.Tx)};z.prototype.set_m_collisionFilterMask=z.prototype.$x=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Ve(c,a)}; +Object.defineProperty(z.prototype,"m_collisionFilterMask",{get:z.prototype.Xx,set:z.prototype.$x});z.prototype.get_m_closestHitFraction=z.prototype.ay=function(){return Oe(this.Tx)};z.prototype.set_m_closestHitFraction=z.prototype.by=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Te(c,a)};Object.defineProperty(z.prototype,"m_closestHitFraction",{get:z.prototype.ay,set:z.prototype.by});z.prototype.get_m_collisionObject=z.prototype.cy=function(){return l(Re(this.Tx),r)}; +z.prototype.set_m_collisionObject=z.prototype.ly=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);We(c,a)};Object.defineProperty(z.prototype,"m_collisionObject",{get:z.prototype.cy,set:z.prototype.ly});z.prototype.__destroy__=function(){Ne(this.Tx)};function IA(){throw"cannot construct a btMatrix3x3, no constructor in IDL";}IA.prototype=Object.create(h.prototype);IA.prototype.constructor=IA;IA.prototype.Ux=IA;IA.Vx={};f.btMatrix3x3=IA; +IA.prototype.setEulerZYX=function(a,c,d){var e=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);bp(e,a,c,d)};IA.prototype.getRotation=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);$o(c,a)};IA.prototype.getRow=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return l(ap(c,a),q)};IA.prototype.__destroy__=function(){Zo(this.Tx)};function JA(){throw"cannot construct a btScalarArray, no constructor in IDL";}JA.prototype=Object.create(h.prototype); +JA.prototype.constructor=JA;JA.prototype.Ux=JA;JA.Vx={};f.btScalarArray=JA;JA.prototype.size=JA.prototype.size=function(){return rt(this.Tx)};JA.prototype.at=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return qt(c,a)};JA.prototype.__destroy__=function(){pt(this.Tx)};function A(){throw"cannot construct a Material, no constructor in IDL";}A.prototype=Object.create(h.prototype);A.prototype.constructor=A;A.prototype.Ux=A;A.Vx={};f.Material=A;A.prototype.get_m_kLST=A.prototype.kA=function(){return se(this.Tx)}; +A.prototype.set_m_kLST=A.prototype.RC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);we(c,a)};Object.defineProperty(A.prototype,"m_kLST",{get:A.prototype.kA,set:A.prototype.RC});A.prototype.get_m_kAST=A.prototype.jA=function(){return re(this.Tx)};A.prototype.set_m_kAST=A.prototype.QC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ve(c,a)};Object.defineProperty(A.prototype,"m_kAST",{get:A.prototype.jA,set:A.prototype.QC});A.prototype.get_m_kVST=A.prototype.lA=function(){return te(this.Tx)}; +A.prototype.set_m_kVST=A.prototype.SC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);xe(c,a)};Object.defineProperty(A.prototype,"m_kVST",{get:A.prototype.lA,set:A.prototype.SC});A.prototype.get_m_flags=A.prototype.Sz=function(){return qe(this.Tx)};A.prototype.set_m_flags=A.prototype.yC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ue(c,a)};Object.defineProperty(A.prototype,"m_flags",{get:A.prototype.Sz,set:A.prototype.yC});A.prototype.__destroy__=function(){pe(this.Tx)}; +function m(){throw"cannot construct a btDispatcherInfo, no constructor in IDL";}m.prototype=Object.create(h.prototype);m.prototype.constructor=m;m.prototype.Ux=m;m.Vx={};f.btDispatcherInfo=m;m.prototype.get_m_timeStep=m.prototype.YA=function(){return fl(this.Tx)};m.prototype.set_m_timeStep=m.prototype.ED=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ql(c,a)};Object.defineProperty(m.prototype,"m_timeStep",{get:m.prototype.YA,set:m.prototype.ED}); +m.prototype.get_m_stepCount=m.prototype.PA=function(){return dl(this.Tx)};m.prototype.set_m_stepCount=m.prototype.vD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ol(c,a)};Object.defineProperty(m.prototype,"m_stepCount",{get:m.prototype.PA,set:m.prototype.vD});m.prototype.get_m_dispatchFunc=m.prototype.Kz=function(){return al(this.Tx)};m.prototype.set_m_dispatchFunc=m.prototype.qC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ll(c,a)}; +Object.defineProperty(m.prototype,"m_dispatchFunc",{get:m.prototype.Kz,set:m.prototype.qC});m.prototype.get_m_timeOfImpact=m.prototype.XA=function(){return el(this.Tx)};m.prototype.set_m_timeOfImpact=m.prototype.DD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);pl(c,a)};Object.defineProperty(m.prototype,"m_timeOfImpact",{get:m.prototype.XA,set:m.prototype.DD});m.prototype.get_m_useContinuous=m.prototype.$A=function(){return!!gl(this.Tx)}; +m.prototype.set_m_useContinuous=m.prototype.GD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);rl(c,a)};Object.defineProperty(m.prototype,"m_useContinuous",{get:m.prototype.$A,set:m.prototype.GD});m.prototype.get_m_enableSatConvex=m.prototype.Oz=function(){return!!cl(this.Tx)};m.prototype.set_m_enableSatConvex=m.prototype.uC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);nl(c,a)};Object.defineProperty(m.prototype,"m_enableSatConvex",{get:m.prototype.Oz,set:m.prototype.uC}); +m.prototype.get_m_enableSPU=m.prototype.Nz=function(){return!!bl(this.Tx)};m.prototype.set_m_enableSPU=m.prototype.tC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ml(c,a)};Object.defineProperty(m.prototype,"m_enableSPU",{get:m.prototype.Nz,set:m.prototype.tC});m.prototype.get_m_useEpa=m.prototype.bB=function(){return!!il(this.Tx)};m.prototype.set_m_useEpa=m.prototype.ID=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);tl(c,a)}; +Object.defineProperty(m.prototype,"m_useEpa",{get:m.prototype.bB,set:m.prototype.ID});m.prototype.get_m_allowedCcdPenetration=m.prototype.mz=function(){return Zk(this.Tx)};m.prototype.set_m_allowedCcdPenetration=m.prototype.UB=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);jl(c,a)};Object.defineProperty(m.prototype,"m_allowedCcdPenetration",{get:m.prototype.mz,set:m.prototype.UB});m.prototype.get_m_useConvexConservativeDistanceUtil=m.prototype.aB=function(){return!!hl(this.Tx)}; +m.prototype.set_m_useConvexConservativeDistanceUtil=m.prototype.HD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);sl(c,a)};Object.defineProperty(m.prototype,"m_useConvexConservativeDistanceUtil",{get:m.prototype.aB,set:m.prototype.HD});m.prototype.get_m_convexConservativeDistanceThreshold=m.prototype.Fz=function(){return $k(this.Tx)};m.prototype.set_m_convexConservativeDistanceThreshold=m.prototype.lC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);kl(c,a)}; +Object.defineProperty(m.prototype,"m_convexConservativeDistanceThreshold",{get:m.prototype.Fz,set:m.prototype.lC});m.prototype.__destroy__=function(){Yk(this.Tx)};function C(){throw"cannot construct a btWheelInfoConstructionInfo, no constructor in IDL";}C.prototype=Object.create(h.prototype);C.prototype.constructor=C;C.prototype.Ux=C;C.Vx={};f.btWheelInfoConstructionInfo=C;C.prototype.get_m_chassisConnectionCS=C.prototype.zz=function(){return l(oy(this.Tx),q)}; +C.prototype.set_m_chassisConnectionCS=C.prototype.fC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Ay(c,a)};Object.defineProperty(C.prototype,"m_chassisConnectionCS",{get:C.prototype.zz,set:C.prototype.fC});C.prototype.get_m_wheelDirectionCS=C.prototype.Ay=function(){return l(vy(this.Tx),q)};C.prototype.set_m_wheelDirectionCS=C.prototype.Hy=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Hy(c,a)};Object.defineProperty(C.prototype,"m_wheelDirectionCS",{get:C.prototype.Ay,set:C.prototype.Hy}); +C.prototype.get_m_wheelAxleCS=C.prototype.zy=function(){return l(uy(this.Tx),q)};C.prototype.set_m_wheelAxleCS=C.prototype.Gy=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Gy(c,a)};Object.defineProperty(C.prototype,"m_wheelAxleCS",{get:C.prototype.zy,set:C.prototype.Gy});C.prototype.get_m_suspensionRestLength=C.prototype.UA=function(){return sy(this.Tx)};C.prototype.set_m_suspensionRestLength=C.prototype.AD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Ey(c,a)}; +Object.defineProperty(C.prototype,"m_suspensionRestLength",{get:C.prototype.UA,set:C.prototype.AD});C.prototype.get_m_maxSuspensionTravelCm=C.prototype.hy=function(){return ry(this.Tx)};C.prototype.set_m_maxSuspensionTravelCm=C.prototype.qy=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Dy(c,a)};Object.defineProperty(C.prototype,"m_maxSuspensionTravelCm",{get:C.prototype.hy,set:C.prototype.qy});C.prototype.get_m_wheelRadius=C.prototype.hB=function(){return wy(this.Tx)}; +C.prototype.set_m_wheelRadius=C.prototype.OD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Iy(c,a)};Object.defineProperty(C.prototype,"m_wheelRadius",{get:C.prototype.hB,set:C.prototype.OD});C.prototype.get_m_suspensionStiffness=C.prototype.iy=function(){return ty(this.Tx)};C.prototype.set_m_suspensionStiffness=C.prototype.ry=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Fy(c,a)};Object.defineProperty(C.prototype,"m_suspensionStiffness",{get:C.prototype.iy,set:C.prototype.ry}); +C.prototype.get_m_wheelsDampingCompression=C.prototype.By=function(){return xy(this.Tx)};C.prototype.set_m_wheelsDampingCompression=C.prototype.Iy=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Jy(c,a)};Object.defineProperty(C.prototype,"m_wheelsDampingCompression",{get:C.prototype.By,set:C.prototype.Iy});C.prototype.get_m_wheelsDampingRelaxation=C.prototype.Cy=function(){return yy(this.Tx)}; +C.prototype.set_m_wheelsDampingRelaxation=C.prototype.Jy=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Ky(c,a)};Object.defineProperty(C.prototype,"m_wheelsDampingRelaxation",{get:C.prototype.Cy,set:C.prototype.Jy});C.prototype.get_m_frictionSlip=C.prototype.dy=function(){return py(this.Tx)};C.prototype.set_m_frictionSlip=C.prototype.my=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);By(c,a)};Object.defineProperty(C.prototype,"m_frictionSlip",{get:C.prototype.dy,set:C.prototype.my}); +C.prototype.get_m_maxSuspensionForce=C.prototype.gy=function(){return qy(this.Tx)};C.prototype.set_m_maxSuspensionForce=C.prototype.py=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Cy(c,a)};Object.defineProperty(C.prototype,"m_maxSuspensionForce",{get:C.prototype.gy,set:C.prototype.py});C.prototype.get_m_bIsFrontWheel=C.prototype.wy=function(){return!!ny(this.Tx)};C.prototype.set_m_bIsFrontWheel=C.prototype.Dy=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);zy(c,a)}; +Object.defineProperty(C.prototype,"m_bIsFrontWheel",{get:C.prototype.wy,set:C.prototype.Dy});C.prototype.__destroy__=function(){my(this.Tx)};function KA(a,c){a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);this.Tx=void 0===c?sj(a):tj(a,c);k(KA)[this.Tx]=this}KA.prototype=Object.create(BA.prototype);KA.prototype.constructor=KA;KA.prototype.Ux=KA;KA.Vx={};f.btConvexTriangleMeshShape=KA;KA.prototype.setLocalScaling=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);xj(c,a)}; +KA.prototype.getLocalScaling=function(){return l(vj(this.Tx),q)};KA.prototype.calculateLocalInertia=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);uj(d,a,c)};KA.prototype.setMargin=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);yj(c,a)};KA.prototype.getMargin=function(){return wj(this.Tx)};KA.prototype.__destroy__=function(){rj(this.Tx)};function nA(){throw"cannot construct a btBroadphaseInterface, no constructor in IDL";}nA.prototype=Object.create(h.prototype); +nA.prototype.constructor=nA;nA.prototype.Ux=nA;nA.Vx={};f.btBroadphaseInterface=nA;nA.prototype.getOverlappingPairCache=function(){return l(Ef(this.Tx),mA)};nA.prototype.__destroy__=function(){Df(this.Tx)};function D(a,c,d,e){a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);e&&"object"===typeof e&&(e=e.Tx);this.Tx=void 0===e?Gr(a,c,d):Hr(a,c,d,e);k(D)[this.Tx]=this}D.prototype=Object.create(h.prototype);D.prototype.constructor=D;D.prototype.Ux=D; +D.Vx={};f.btRigidBodyConstructionInfo=D;D.prototype.get_m_linearDamping=D.prototype.mA=function(){return Qr(this.Tx)};D.prototype.set_m_linearDamping=D.prototype.TC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);bs(c,a)};Object.defineProperty(D.prototype,"m_linearDamping",{get:D.prototype.mA,set:D.prototype.TC});D.prototype.get_m_angularDamping=D.prototype.oz=function(){return Nr(this.Tx)}; +D.prototype.set_m_angularDamping=D.prototype.WB=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Zr(c,a)};Object.defineProperty(D.prototype,"m_angularDamping",{get:D.prototype.oz,set:D.prototype.WB});D.prototype.get_m_friction=D.prototype.Tz=function(){return Pr(this.Tx)};D.prototype.set_m_friction=D.prototype.zC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);as(c,a)};Object.defineProperty(D.prototype,"m_friction",{get:D.prototype.Tz,set:D.prototype.zC}); +D.prototype.get_m_rollingFriction=D.prototype.HA=function(){return Tr(this.Tx)};D.prototype.set_m_rollingFriction=D.prototype.nD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);es(c,a)};Object.defineProperty(D.prototype,"m_rollingFriction",{get:D.prototype.HA,set:D.prototype.nD});D.prototype.get_m_restitution=D.prototype.FA=function(){return Sr(this.Tx)};D.prototype.set_m_restitution=D.prototype.lD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ds(c,a)}; +Object.defineProperty(D.prototype,"m_restitution",{get:D.prototype.FA,set:D.prototype.lD});D.prototype.get_m_linearSleepingThreshold=D.prototype.nA=function(){return Rr(this.Tx)};D.prototype.set_m_linearSleepingThreshold=D.prototype.UC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);cs(c,a)};Object.defineProperty(D.prototype,"m_linearSleepingThreshold",{get:D.prototype.nA,set:D.prototype.UC});D.prototype.get_m_angularSleepingThreshold=D.prototype.pz=function(){return Or(this.Tx)}; +D.prototype.set_m_angularSleepingThreshold=D.prototype.XB=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);$r(c,a)};Object.defineProperty(D.prototype,"m_angularSleepingThreshold",{get:D.prototype.pz,set:D.prototype.XB});D.prototype.get_m_additionalDamping=D.prototype.jz=function(){return!!Lr(this.Tx)};D.prototype.set_m_additionalDamping=D.prototype.RB=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Xr(c,a)}; +Object.defineProperty(D.prototype,"m_additionalDamping",{get:D.prototype.jz,set:D.prototype.RB});D.prototype.get_m_additionalDampingFactor=D.prototype.kz=function(){return Kr(this.Tx)};D.prototype.set_m_additionalDampingFactor=D.prototype.SB=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Wr(c,a)};Object.defineProperty(D.prototype,"m_additionalDampingFactor",{get:D.prototype.kz,set:D.prototype.SB});D.prototype.get_m_additionalLinearDampingThresholdSqr=D.prototype.lz=function(){return Mr(this.Tx)}; +D.prototype.set_m_additionalLinearDampingThresholdSqr=D.prototype.TB=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Yr(c,a)};Object.defineProperty(D.prototype,"m_additionalLinearDampingThresholdSqr",{get:D.prototype.lz,set:D.prototype.TB});D.prototype.get_m_additionalAngularDampingThresholdSqr=D.prototype.iz=function(){return Jr(this.Tx)};D.prototype.set_m_additionalAngularDampingThresholdSqr=D.prototype.QB=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Vr(c,a)}; +Object.defineProperty(D.prototype,"m_additionalAngularDampingThresholdSqr",{get:D.prototype.iz,set:D.prototype.QB});D.prototype.get_m_additionalAngularDampingFactor=D.prototype.hz=function(){return Ir(this.Tx)};D.prototype.set_m_additionalAngularDampingFactor=D.prototype.PB=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Ur(c,a)};Object.defineProperty(D.prototype,"m_additionalAngularDampingFactor",{get:D.prototype.hz,set:D.prototype.PB});D.prototype.__destroy__=function(){Fr(this.Tx)}; +function LA(){throw"cannot construct a btCollisionConfiguration, no constructor in IDL";}LA.prototype=Object.create(h.prototype);LA.prototype.constructor=LA;LA.prototype.Ux=LA;LA.Vx={};f.btCollisionConfiguration=LA;LA.prototype.__destroy__=function(){tg(this.Tx)};function CA(){this.Tx=Wp();k(CA)[this.Tx]=this}CA.prototype=Object.create(h.prototype);CA.prototype.constructor=CA;CA.prototype.Ux=CA;CA.Vx={};f.btPersistentManifold=CA;CA.prototype.getBody0=function(){return l(Xp(this.Tx),r)}; +CA.prototype.getBody1=function(){return l(Yp(this.Tx),r)};CA.prototype.getNumContacts=function(){return $p(this.Tx)};CA.prototype.getContactPoint=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return l(Zp(c,a),E)};CA.prototype.__destroy__=function(){Vp(this.Tx)};function MA(a){a&&"object"===typeof a&&(a=a.Tx);this.Tx=void 0===a?Eh():Fh(a);k(MA)[this.Tx]=this}MA.prototype=Object.create(p.prototype);MA.prototype.constructor=MA;MA.prototype.Ux=MA;MA.Vx={};f.btCompoundShape=MA; +MA.prototype.addChildShape=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);Dh(d,a,c)};MA.prototype.removeChildShape=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Mh(c,a)};MA.prototype.removeChildShapeByIndex=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Lh(c,a)};MA.prototype.getNumChildShapes=function(){return Kh(this.Tx)};MA.prototype.getChildShape=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return l(Hh(c,a),p)}; +MA.prototype.updateChildTransform=function(a,c,d){var e=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);void 0===d?Ph(e,a,c):Qh(e,a,c,d)};MA.prototype.setMargin=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Oh(c,a)};MA.prototype.getMargin=function(){return Jh(this.Tx)};MA.prototype.setLocalScaling=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Nh(c,a)};MA.prototype.getLocalScaling=function(){return l(Ih(this.Tx),q)}; +MA.prototype.calculateLocalInertia=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);Gh(d,a,c)};MA.prototype.__destroy__=function(){Ch(this.Tx)};function F(a,c){a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);this.Tx=Pb(a,c);k(F)[this.Tx]=this}F.prototype=Object.create(y.prototype);F.prototype.constructor=F;F.prototype.Ux=F;F.Vx={};f.ClosestConvexResultCallback=F;F.prototype.hasHit=function(){return!!$b(this.Tx)}; +F.prototype.get_m_convexFromWorld=F.prototype.Gz=function(){return l(Vb(this.Tx),q)};F.prototype.set_m_convexFromWorld=F.prototype.mC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);dc(c,a)};Object.defineProperty(F.prototype,"m_convexFromWorld",{get:F.prototype.Gz,set:F.prototype.mC});F.prototype.get_m_convexToWorld=F.prototype.Hz=function(){return l(Xb(this.Tx),q)};F.prototype.set_m_convexToWorld=F.prototype.nC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ec(c,a)}; +Object.defineProperty(F.prototype,"m_convexToWorld",{get:F.prototype.Hz,set:F.prototype.nC});F.prototype.get_m_hitNormalWorld=F.prototype.ey=function(){return l(Yb(this.Tx),q)};F.prototype.set_m_hitNormalWorld=F.prototype.ny=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);fc(c,a)};Object.defineProperty(F.prototype,"m_hitNormalWorld",{get:F.prototype.ey,set:F.prototype.ny});F.prototype.get_m_hitPointWorld=F.prototype.fy=function(){return l(Zb(this.Tx),q)}; +F.prototype.set_m_hitPointWorld=F.prototype.oy=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);gc(c,a)};Object.defineProperty(F.prototype,"m_hitPointWorld",{get:F.prototype.fy,set:F.prototype.oy});F.prototype.get_m_collisionFilterGroup=F.prototype.Wx=function(){return Tb(this.Tx)};F.prototype.set_m_collisionFilterGroup=F.prototype.Zx=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);bc(c,a)};Object.defineProperty(F.prototype,"m_collisionFilterGroup",{get:F.prototype.Wx,set:F.prototype.Zx}); +F.prototype.get_m_collisionFilterMask=F.prototype.Xx=function(){return Ub(this.Tx)};F.prototype.set_m_collisionFilterMask=F.prototype.$x=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);cc(c,a)};Object.defineProperty(F.prototype,"m_collisionFilterMask",{get:F.prototype.Xx,set:F.prototype.$x});F.prototype.get_m_closestHitFraction=F.prototype.ay=function(){return Sb(this.Tx)}; +F.prototype.set_m_closestHitFraction=F.prototype.by=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ac(c,a)};Object.defineProperty(F.prototype,"m_closestHitFraction",{get:F.prototype.ay,set:F.prototype.by});F.prototype.__destroy__=function(){Rb(this.Tx)};function G(a,c){a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);this.Tx=Za(a,c);k(G)[this.Tx]=this}G.prototype=Object.create(z.prototype);G.prototype.constructor=G;G.prototype.Ux=G;G.Vx={};f.AllHitsRayResultCallback=G; +G.prototype.hasHit=function(){return!!mb(this.Tx)};G.prototype.get_m_collisionObjects=G.prototype.Cz=function(){return l(eb(this.Tx),NA)};G.prototype.set_m_collisionObjects=G.prototype.iC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);rb(c,a)};Object.defineProperty(G.prototype,"m_collisionObjects",{get:G.prototype.Cz,set:G.prototype.iC});G.prototype.get_m_rayFromWorld=G.prototype.xy=function(){return l(jb(this.Tx),q)}; +G.prototype.set_m_rayFromWorld=G.prototype.Ey=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);vb(c,a)};Object.defineProperty(G.prototype,"m_rayFromWorld",{get:G.prototype.xy,set:G.prototype.Ey});G.prototype.get_m_rayToWorld=G.prototype.yy=function(){return l(kb(this.Tx),q)};G.prototype.set_m_rayToWorld=G.prototype.Fy=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);wb(c,a)};Object.defineProperty(G.prototype,"m_rayToWorld",{get:G.prototype.yy,set:G.prototype.Fy}); +G.prototype.get_m_hitNormalWorld=G.prototype.ey=function(){return l(gb(this.Tx),OA)};G.prototype.set_m_hitNormalWorld=G.prototype.ny=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);tb(c,a)};Object.defineProperty(G.prototype,"m_hitNormalWorld",{get:G.prototype.ey,set:G.prototype.ny});G.prototype.get_m_hitPointWorld=G.prototype.fy=function(){return l(hb(this.Tx),OA)};G.prototype.set_m_hitPointWorld=G.prototype.oy=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ub(c,a)}; +Object.defineProperty(G.prototype,"m_hitPointWorld",{get:G.prototype.fy,set:G.prototype.oy});G.prototype.get_m_hitFractions=G.prototype.$z=function(){return l(fb(this.Tx),JA)};G.prototype.set_m_hitFractions=G.prototype.GC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);sb(c,a)};Object.defineProperty(G.prototype,"m_hitFractions",{get:G.prototype.$z,set:G.prototype.GC});G.prototype.get_m_collisionFilterGroup=G.prototype.Wx=function(){return bb(this.Tx)}; +G.prototype.set_m_collisionFilterGroup=G.prototype.Zx=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ob(c,a)};Object.defineProperty(G.prototype,"m_collisionFilterGroup",{get:G.prototype.Wx,set:G.prototype.Zx});G.prototype.get_m_collisionFilterMask=G.prototype.Xx=function(){return cb(this.Tx)};G.prototype.set_m_collisionFilterMask=G.prototype.$x=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);pb(c,a)}; +Object.defineProperty(G.prototype,"m_collisionFilterMask",{get:G.prototype.Xx,set:G.prototype.$x});G.prototype.get_m_closestHitFraction=G.prototype.ay=function(){return ab(this.Tx)};G.prototype.set_m_closestHitFraction=G.prototype.by=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);nb(c,a)};Object.defineProperty(G.prototype,"m_closestHitFraction",{get:G.prototype.ay,set:G.prototype.by});G.prototype.get_m_collisionObject=G.prototype.cy=function(){return l(db(this.Tx),r)}; +G.prototype.set_m_collisionObject=G.prototype.ly=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);qb(c,a)};Object.defineProperty(G.prototype,"m_collisionObject",{get:G.prototype.cy,set:G.prototype.ly});G.prototype.__destroy__=function(){$a(this.Tx)};function PA(){throw"cannot construct a tMaterialArray, no constructor in IDL";}PA.prototype=Object.create(h.prototype);PA.prototype.constructor=PA;PA.prototype.Ux=PA;PA.Vx={};f.tMaterialArray=PA;PA.prototype.size=PA.prototype.size=function(){return Sz(this.Tx)}; +PA.prototype.at=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return l(Rz(c,a),A)};PA.prototype.__destroy__=function(){Qz(this.Tx)};function QA(a){a&&"object"===typeof a&&(a=a.Tx);this.Tx=mk(a);k(QA)[this.Tx]=this}QA.prototype=Object.create(yA.prototype);QA.prototype.constructor=QA;QA.prototype.Ux=QA;QA.Vx={};f.btDefaultVehicleRaycaster=QA; +QA.prototype.castRay=function(a,c,d){var e=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);nk(e,a,c,d)};QA.prototype.__destroy__=function(){lk(this.Tx)};function H(){this.Tx=Di();k(H)[this.Tx]=this}H.prototype=Object.create(h.prototype);H.prototype.constructor=H;H.prototype.Ux=H;H.Vx={};f.btConstraintSetting=H;H.prototype.get_m_tau=H.prototype.WA=function(){return Gi(this.Tx)}; +H.prototype.set_m_tau=H.prototype.CD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Ji(c,a)};Object.defineProperty(H.prototype,"m_tau",{get:H.prototype.WA,set:H.prototype.CD});H.prototype.get_m_damping=H.prototype.Iz=function(){return Ei(this.Tx)};H.prototype.set_m_damping=H.prototype.oC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Hi(c,a)};Object.defineProperty(H.prototype,"m_damping",{get:H.prototype.Iz,set:H.prototype.oC}); +H.prototype.get_m_impulseClamp=H.prototype.fA=function(){return Fi(this.Tx)};H.prototype.set_m_impulseClamp=H.prototype.MC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Ii(c,a)};Object.defineProperty(H.prototype,"m_impulseClamp",{get:H.prototype.fA,set:H.prototype.MC});H.prototype.__destroy__=function(){Ci(this.Tx)};function RA(){throw"cannot construct a LocalShapeInfo, no constructor in IDL";}RA.prototype=Object.create(h.prototype);RA.prototype.constructor=RA;RA.prototype.Ux=RA; +RA.Vx={};f.LocalShapeInfo=RA;RA.prototype.get_m_shapePart=RA.prototype.KA=function(){return le(this.Tx)};RA.prototype.set_m_shapePart=RA.prototype.qD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ne(c,a)};Object.defineProperty(RA.prototype,"m_shapePart",{get:RA.prototype.KA,set:RA.prototype.qD});RA.prototype.get_m_triangleIndex=RA.prototype.ZA=function(){return me(this.Tx)}; +RA.prototype.set_m_triangleIndex=RA.prototype.FD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);oe(c,a)};Object.defineProperty(RA.prototype,"m_triangleIndex",{get:RA.prototype.ZA,set:RA.prototype.FD});RA.prototype.__destroy__=function(){ke(this.Tx)};function I(a){a&&"object"===typeof a&&(a=a.Tx);this.Tx=rs(a);k(I)[this.Tx]=this}I.prototype=Object.create(r.prototype);I.prototype.constructor=I;I.prototype.Ux=I;I.Vx={};f.btRigidBody=I; +I.prototype.getCenterOfMassTransform=function(){return l(zs(this.Tx),t)};I.prototype.setCenterOfMassTransform=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Xs(c,a)};I.prototype.setSleepingThresholds=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);jt(d,a,c)};I.prototype.getLinearDamping=function(){return Es(this.Tx)};I.prototype.getAngularDamping=function(){return us(this.Tx)}; +I.prototype.setDamping=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);at(d,a,c)};I.prototype.setMassProps=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);ft(d,a,c)};I.prototype.getLinearFactor=function(){return l(Fs(this.Tx),q)};I.prototype.setLinearFactor=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);dt(c,a)}; +I.prototype.applyTorque=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);qs(c,a)};I.prototype.applyLocalTorque=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);os(c,a)};I.prototype.applyForce=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);ls(d,a,c)};I.prototype.applyCentralForce=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);is(c,a)}; +I.prototype.applyCentralLocalForce=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ks(c,a)};I.prototype.applyTorqueImpulse=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ps(c,a)};I.prototype.applyImpulse=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);ns(d,a,c)};I.prototype.applyCentralImpulse=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);js(c,a)};I.prototype.updateInertiaTensor=function(){ot(this.Tx)}; +I.prototype.getLinearVelocity=function(){return l(Gs(this.Tx),q)};I.prototype.getAngularVelocity=function(){return l(ws(this.Tx),q)};I.prototype.setLinearVelocity=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);et(c,a)};I.prototype.setAngularVelocity=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Ts(c,a)};I.prototype.getMotionState=function(){return l(Hs(this.Tx),FA)};I.prototype.setMotionState=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);gt(c,a)}; +I.prototype.getAngularFactor=function(){return l(vs(this.Tx),q)};I.prototype.setAngularFactor=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Ss(c,a)};I.prototype.upcast=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return l(nt(c,a),I)};I.prototype.getAabb=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);ts(d,a,c)};I.prototype.applyGravity=function(){ms(this.Tx)};I.prototype.getGravity=function(){return l(Ds(this.Tx),q)}; +I.prototype.setGravity=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ct(c,a)};I.prototype.getBroadphaseProxy=function(){return l(ys(this.Tx),u)};I.prototype.setAnisotropicFriction=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);Us(d,a,c)};I.prototype.getCollisionShape=function(){return l(Bs(this.Tx),p)};I.prototype.setContactProcessingThreshold=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);$s(c,a)}; +I.prototype.setActivationState=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Rs(c,a)};I.prototype.forceActivationState=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ss(c,a)};I.prototype.activate=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);void 0===a?gs(c):hs(c,a)};I.prototype.isActive=function(){return!!Ns(this.Tx)};I.prototype.isKinematicObject=function(){return!!Os(this.Tx)};I.prototype.isStaticObject=function(){return!!Ps(this.Tx)}; +I.prototype.isStaticOrKinematicObject=function(){return!!Qs(this.Tx)};I.prototype.getRestitution=function(){return Is(this.Tx)};I.prototype.getFriction=function(){return Cs(this.Tx)};I.prototype.getRollingFriction=function(){return Js(this.Tx)};I.prototype.setRestitution=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ht(c,a)};I.prototype.setFriction=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);bt(c,a)}; +I.prototype.setRollingFriction=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);it(c,a)};I.prototype.getWorldTransform=function(){return l(Ms(this.Tx),t)};I.prototype.getCollisionFlags=function(){return As(this.Tx)};I.prototype.setCollisionFlags=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Ys(c,a)};I.prototype.setWorldTransform=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);mt(c,a)}; +I.prototype.setCollisionShape=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Zs(c,a)};I.prototype.setCcdMotionThreshold=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Vs(c,a)};I.prototype.setCcdSweptSphereRadius=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Ws(c,a)};I.prototype.getUserIndex=function(){return Ks(this.Tx)};I.prototype.setUserIndex=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);kt(c,a)}; +I.prototype.getUserPointer=function(){return l(Ls(this.Tx),pA)};I.prototype.setUserPointer=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);lt(c,a)};I.prototype.getBroadphaseHandle=function(){return l(xs(this.Tx),u)};I.prototype.__destroy__=function(){fs(this.Tx)};function SA(){throw"cannot construct a btIndexedMeshArray, no constructor in IDL";}SA.prototype=Object.create(h.prototype);SA.prototype.constructor=SA;SA.prototype.Ux=SA;SA.Vx={};f.btIndexedMeshArray=SA; +SA.prototype.size=SA.prototype.size=function(){return eo(this.Tx)};SA.prototype.at=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return l(co(c,a),TA)};SA.prototype.__destroy__=function(){bo(this.Tx)};function UA(){this.Tx=Vj();k(UA)[this.Tx]=this}UA.prototype=Object.create(h.prototype);UA.prototype.constructor=UA;UA.prototype.Ux=UA;UA.Vx={};f.btDbvtBroadphase=UA;UA.prototype.__destroy__=function(){Uj(this.Tx)}; +function VA(a,c,d,e,g,n,B,R,da){a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);e&&"object"===typeof e&&(e=e.Tx);g&&"object"===typeof g&&(g=g.Tx);n&&"object"===typeof n&&(n=n.Tx);B&&"object"===typeof B&&(B=B.Tx);R&&"object"===typeof R&&(R=R.Tx);da&&"object"===typeof da&&(da=da.Tx);this.Tx=wn(a,c,d,e,g,n,B,R,da);k(VA)[this.Tx]=this}VA.prototype=Object.create(sA.prototype);VA.prototype.constructor=VA;VA.prototype.Ux=VA;VA.Vx={}; +f.btHeightfieldTerrainShape=VA;VA.prototype.setMargin=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Bn(c,a)};VA.prototype.getMargin=function(){return zn(this.Tx)};VA.prototype.setLocalScaling=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);An(c,a)};VA.prototype.getLocalScaling=function(){return l(yn(this.Tx),q)};VA.prototype.calculateLocalInertia=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);xn(d,a,c)}; +VA.prototype.__destroy__=function(){vn(this.Tx)};function WA(){this.Tx=kk();k(WA)[this.Tx]=this}WA.prototype=Object.create(HA.prototype);WA.prototype.constructor=WA;WA.prototype.Ux=WA;WA.Vx={};f.btDefaultSoftBodySolver=WA;WA.prototype.__destroy__=function(){jk(this.Tx)};function XA(a){a&&"object"===typeof a&&(a=a.Tx);this.Tx=vg(a);k(XA)[this.Tx]=this}XA.prototype=Object.create(lA.prototype);XA.prototype.constructor=XA;XA.prototype.Ux=XA;XA.Vx={};f.btCollisionDispatcher=XA; +XA.prototype.getNumManifolds=function(){return xg(this.Tx)};XA.prototype.getManifoldByIndexInternal=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return l(wg(c,a),CA)};XA.prototype.__destroy__=function(){ug(this.Tx)}; +function YA(a,c,d,e,g){a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);e&&"object"===typeof e&&(e=e.Tx);g&&"object"===typeof g&&(g=g.Tx);this.Tx=void 0===d?sf(a,c):void 0===e?tf(a,c,d):void 0===g?uf(a,c,d,e):vf(a,c,d,e,g);k(YA)[this.Tx]=this}YA.prototype=Object.create(h.prototype);YA.prototype.constructor=YA;YA.prototype.Ux=YA;YA.Vx={};f.btAxisSweep3=YA;YA.prototype.__destroy__=function(){rf(this.Tx)}; +function pA(){throw"cannot construct a VoidPtr, no constructor in IDL";}pA.prototype=Object.create(h.prototype);pA.prototype.constructor=pA;pA.prototype.Ux=pA;pA.Vx={};f.VoidPtr=pA;pA.prototype.__destroy__=function(){of(this.Tx)};function J(){this.Tx=au();k(J)[this.Tx]=this}J.prototype=Object.create(h.prototype);J.prototype.constructor=J;J.prototype.Ux=J;J.Vx={};f.btSoftBodyWorldInfo=J;J.prototype.get_air_density=J.prototype.My=function(){return bu(this.Tx)}; +J.prototype.set_air_density=J.prototype.tB=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ju(c,a)};Object.defineProperty(J.prototype,"air_density",{get:J.prototype.My,set:J.prototype.tB});J.prototype.get_water_density=J.prototype.qB=function(){return gu(this.Tx)};J.prototype.set_water_density=J.prototype.XD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ou(c,a)};Object.defineProperty(J.prototype,"water_density",{get:J.prototype.qB,set:J.prototype.XD}); +J.prototype.get_water_offset=J.prototype.sB=function(){return iu(this.Tx)};J.prototype.set_water_offset=J.prototype.ZD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);qu(c,a)};Object.defineProperty(J.prototype,"water_offset",{get:J.prototype.sB,set:J.prototype.ZD});J.prototype.get_m_maxDisplacement=J.prototype.tA=function(){return fu(this.Tx)};J.prototype.set_m_maxDisplacement=J.prototype.$C=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);nu(c,a)}; +Object.defineProperty(J.prototype,"m_maxDisplacement",{get:J.prototype.tA,set:J.prototype.$C});J.prototype.get_water_normal=J.prototype.rB=function(){return l(hu(this.Tx),q)};J.prototype.set_water_normal=J.prototype.YD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);pu(c,a)};Object.defineProperty(J.prototype,"water_normal",{get:J.prototype.rB,set:J.prototype.YD});J.prototype.get_m_broadphase=J.prototype.uz=function(){return l(cu(this.Tx),nA)}; +J.prototype.set_m_broadphase=J.prototype.aC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ku(c,a)};Object.defineProperty(J.prototype,"m_broadphase",{get:J.prototype.uz,set:J.prototype.aC});J.prototype.get_m_dispatcher=J.prototype.Lz=function(){return l(du(this.Tx),lA)};J.prototype.set_m_dispatcher=J.prototype.rC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);lu(c,a)};Object.defineProperty(J.prototype,"m_dispatcher",{get:J.prototype.Lz,set:J.prototype.rC}); +J.prototype.get_m_gravity=J.prototype.Vz=function(){return l(eu(this.Tx),q)};J.prototype.set_m_gravity=J.prototype.BC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);mu(c,a)};Object.defineProperty(J.prototype,"m_gravity",{get:J.prototype.Vz,set:J.prototype.BC});J.prototype.__destroy__=function(){$t(this.Tx)}; +function ZA(a,c,d,e){a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);e&&"object"===typeof e&&(e=e.Tx);this.Tx=void 0===d?ki(a,c):void 0===e?_emscripten_bind_btConeTwistConstraint_btConeTwistConstraint_3(a,c,d):li(a,c,d,e);k(ZA)[this.Tx]=this}ZA.prototype=Object.create(rA.prototype);ZA.prototype.constructor=ZA;ZA.prototype.Ux=ZA;ZA.Vx={};f.btConeTwistConstraint=ZA; +ZA.prototype.setLimit=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);ti(d,a,c)};ZA.prototype.setAngularOnly=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);qi(c,a)};ZA.prototype.setDamping=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);si(c,a)};ZA.prototype.enableMotor=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ni(c,a)}; +ZA.prototype.setMaxMotorImpulse=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);vi(c,a)};ZA.prototype.setMaxMotorImpulseNormalized=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ui(c,a)};ZA.prototype.setMotorTarget=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);xi(c,a)};ZA.prototype.setMotorTargetInConstraintSpace=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);wi(c,a)}; +ZA.prototype.enableFeedback=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);mi(c,a)};ZA.prototype.getBreakingImpulseThreshold=function(){return oi(this.Tx)};ZA.prototype.setBreakingImpulseThreshold=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ri(c,a)};ZA.prototype.getParam=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);return pi(d,a,c)}; +ZA.prototype.setParam=function(a,c,d){var e=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);yi(e,a,c,d)};ZA.prototype.__destroy__=function(){ji(this.Tx)}; +function $A(a,c,d,e,g,n,B){a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);e&&"object"===typeof e&&(e=e.Tx);g&&"object"===typeof g&&(g=g.Tx);n&&"object"===typeof n&&(n=n.Tx);B&&"object"===typeof B&&(B=B.Tx);this.Tx=void 0===d?Dn(a,c):void 0===e?En(a,c,d):void 0===g?Fn(a,c,d,e):void 0===n?Gn(a,c,d,e,g):void 0===B?Hn(a,c,d,e,g,n):In(a,c,d,e,g,n,B);k($A)[this.Tx]=this}$A.prototype=Object.create(rA.prototype);$A.prototype.constructor=$A; +$A.prototype.Ux=$A;$A.Vx={};f.btHingeConstraint=$A;$A.prototype.setLimit=function(a,c,d,e,g){var n=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);e&&"object"===typeof e&&(e=e.Tx);g&&"object"===typeof g&&(g=g.Tx);void 0===g?Qn(n,a,c,d,e):Rn(n,a,c,d,e,g)};$A.prototype.enableAngularMotor=function(a,c,d){var e=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);Jn(e,a,c,d)}; +$A.prototype.setAngularOnly=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);On(c,a)};$A.prototype.enableMotor=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Ln(c,a)};$A.prototype.setMaxMotorImpulse=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Sn(c,a)};$A.prototype.setMotorTarget=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);Tn(d,a,c)}; +$A.prototype.enableFeedback=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Kn(c,a)};$A.prototype.getBreakingImpulseThreshold=function(){return Mn(this.Tx)};$A.prototype.setBreakingImpulseThreshold=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Pn(c,a)};$A.prototype.getParam=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);return Nn(d,a,c)}; +$A.prototype.setParam=function(a,c,d){var e=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);Un(e,a,c,d)};$A.prototype.__destroy__=function(){Cn(this.Tx)};function aB(a,c){a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);this.Tx=ai(a,c);k(aB)[this.Tx]=this}aB.prototype=Object.create(wA.prototype);aB.prototype.constructor=aB;aB.prototype.Ux=aB;aB.Vx={};f.btConeShapeZ=aB; +aB.prototype.setLocalScaling=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);di(c,a)};aB.prototype.getLocalScaling=function(){return l(ci(this.Tx),q)};aB.prototype.calculateLocalInertia=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);bi(d,a,c)};aB.prototype.__destroy__=function(){$h(this.Tx)};function bB(a,c){a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);this.Tx=Wh(a,c);k(bB)[this.Tx]=this}bB.prototype=Object.create(wA.prototype); +bB.prototype.constructor=bB;bB.prototype.Ux=bB;bB.Vx={};f.btConeShapeX=bB;bB.prototype.setLocalScaling=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Zh(c,a)};bB.prototype.getLocalScaling=function(){return l(Yh(this.Tx),q)};bB.prototype.calculateLocalInertia=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);Xh(d,a,c)};bB.prototype.__destroy__=function(){Vh(this.Tx)}; +function cB(a,c){a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);this.Tx=void 0===a?Uw():void 0===c?Vw(a):Ww(a,c);k(cB)[this.Tx]=this}cB.prototype=Object.create(EA.prototype);cB.prototype.constructor=cB;cB.prototype.Ux=cB;cB.Vx={};f.btTriangleMesh=cB;cB.prototype.addTriangle=function(a,c,d,e){var g=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);e&&"object"===typeof e&&(e=e.Tx);void 0===e?Sw(g,a,c,d):Tw(g,a,c,d,e)}; +cB.prototype.findOrAddVertex=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);return Xw(d,a,c)};cB.prototype.addIndex=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Rw(c,a)};cB.prototype.getIndexedMeshArray=function(){return l(Yw(this.Tx),SA)};cB.prototype.setScaling=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Zw(c,a)};cB.prototype.__destroy__=function(){Qw(this.Tx)}; +function dB(a,c){b.Yx();"object"==typeof a&&(a=jA(a));c&&"object"===typeof c&&(c=c.Tx);this.Tx=void 0===a?Vi():void 0===c?Wi(a):Xi(a,c);k(dB)[this.Tx]=this}dB.prototype=Object.create(p.prototype);dB.prototype.constructor=dB;dB.prototype.Ux=dB;dB.Vx={};f.btConvexHullShape=dB;dB.prototype.addPoint=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);void 0===c?Ti(d,a):Ui(d,a,c)}; +dB.prototype.setMargin=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);fj(c,a)};dB.prototype.getMargin=function(){return aj(this.Tx)};dB.prototype.getNumVertices=function(){return bj(this.Tx)};dB.prototype.initializePolyhedralFeatures=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return!!cj(c,a)};dB.prototype.recalcLocalAabb=function(){dj(this.Tx)};dB.prototype.getConvexPolyhedron=function(){return l(Zi(this.Tx),eB)}; +dB.prototype.setLocalScaling=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ej(c,a)};dB.prototype.getLocalScaling=function(){return l($i(this.Tx),q)};dB.prototype.calculateLocalInertia=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);Yi(d,a,c)};dB.prototype.__destroy__=function(){Si(this.Tx)};function K(){this.Tx=$x();k(K)[this.Tx]=this}K.prototype=Object.create(h.prototype);K.prototype.constructor=K;K.prototype.Ux=K;K.Vx={}; +f.btVehicleTuning=K;K.prototype.get_m_suspensionStiffness=K.prototype.iy=function(){return fy(this.Tx)};K.prototype.set_m_suspensionStiffness=K.prototype.ry=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ly(c,a)};Object.defineProperty(K.prototype,"m_suspensionStiffness",{get:K.prototype.iy,set:K.prototype.ry});K.prototype.get_m_suspensionCompression=K.prototype.QA=function(){return dy(this.Tx)}; +K.prototype.set_m_suspensionCompression=K.prototype.wD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);jy(c,a)};Object.defineProperty(K.prototype,"m_suspensionCompression",{get:K.prototype.QA,set:K.prototype.wD});K.prototype.get_m_suspensionDamping=K.prototype.RA=function(){return ey(this.Tx)};K.prototype.set_m_suspensionDamping=K.prototype.xD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ky(c,a)}; +Object.defineProperty(K.prototype,"m_suspensionDamping",{get:K.prototype.RA,set:K.prototype.xD});K.prototype.get_m_maxSuspensionTravelCm=K.prototype.hy=function(){return cy(this.Tx)};K.prototype.set_m_maxSuspensionTravelCm=K.prototype.qy=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);iy(c,a)};Object.defineProperty(K.prototype,"m_maxSuspensionTravelCm",{get:K.prototype.hy,set:K.prototype.qy});K.prototype.get_m_frictionSlip=K.prototype.dy=function(){return ay(this.Tx)}; +K.prototype.set_m_frictionSlip=K.prototype.my=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);gy(c,a)};Object.defineProperty(K.prototype,"m_frictionSlip",{get:K.prototype.dy,set:K.prototype.my});K.prototype.get_m_maxSuspensionForce=K.prototype.gy=function(){return by(this.Tx)};K.prototype.set_m_maxSuspensionForce=K.prototype.py=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);hy(c,a)};Object.defineProperty(K.prototype,"m_maxSuspensionForce",{get:K.prototype.gy,set:K.prototype.py}); +function fB(){throw"cannot construct a btCollisionObjectWrapper, no constructor in IDL";}fB.prototype=Object.create(h.prototype);fB.prototype.constructor=fB;fB.prototype.Ux=fB;fB.Vx={};f.btCollisionObjectWrapper=fB;fB.prototype.getWorldTransform=function(){return l(Ag(this.Tx),t)};fB.prototype.getCollisionObject=function(){return l(yg(this.Tx),r)};fB.prototype.getCollisionShape=function(){return l(zg(this.Tx),p)};function gB(a){a&&"object"===typeof a&&(a=a.Tx);this.Tx=vt(a);k(gB)[this.Tx]=this} +gB.prototype=Object.create(h.prototype);gB.prototype.constructor=gB;gB.prototype.Ux=gB;gB.Vx={};f.btShapeHull=gB;gB.prototype.buildHull=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return!!wt(c,a)};gB.prototype.numVertices=function(){return yt(this.Tx)};gB.prototype.getVertexPointer=function(){return l(xt(this.Tx),q)};gB.prototype.__destroy__=function(){ut(this.Tx)}; +function hB(a,c){a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);this.Tx=void 0===a?ck():void 0===c?dk(a):ek(a,c);k(hB)[this.Tx]=this}hB.prototype=Object.create(FA.prototype);hB.prototype.constructor=hB;hB.prototype.Ux=hB;hB.Vx={};f.btDefaultMotionState=hB;hB.prototype.getWorldTransform=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);fk(c,a)};hB.prototype.setWorldTransform=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);hk(c,a)}; +hB.prototype.get_m_graphicsWorldTrans=hB.prototype.Uz=function(){return l(gk(this.Tx),t)};hB.prototype.set_m_graphicsWorldTrans=hB.prototype.AC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ik(c,a)};Object.defineProperty(hB.prototype,"m_graphicsWorldTrans",{get:hB.prototype.Uz,set:hB.prototype.AC});hB.prototype.__destroy__=function(){bk(this.Tx)};function L(a){a&&"object"===typeof a&&(a=a.Tx);this.Tx=My(a);k(L)[this.Tx]=this}L.prototype=Object.create(h.prototype); +L.prototype.constructor=L;L.prototype.Ux=L;L.Vx={};f.btWheelInfo=L;L.prototype.getSuspensionRestLength=function(){return Ny(this.Tx)};L.prototype.updateWheel=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);Jz(d,a,c)};L.prototype.get_m_suspensionStiffness=L.prototype.iy=function(){return dz(this.Tx)};L.prototype.set_m_suspensionStiffness=L.prototype.ry=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Bz(c,a)}; +Object.defineProperty(L.prototype,"m_suspensionStiffness",{get:L.prototype.iy,set:L.prototype.ry});L.prototype.get_m_frictionSlip=L.prototype.dy=function(){return Uy(this.Tx)};L.prototype.set_m_frictionSlip=L.prototype.my=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);rz(c,a)};Object.defineProperty(L.prototype,"m_frictionSlip",{get:L.prototype.dy,set:L.prototype.my});L.prototype.get_m_engineForce=L.prototype.Pz=function(){return Ty(this.Tx)}; +L.prototype.set_m_engineForce=L.prototype.vC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);qz(c,a)};Object.defineProperty(L.prototype,"m_engineForce",{get:L.prototype.Pz,set:L.prototype.vC});L.prototype.get_m_rollInfluence=L.prototype.GA=function(){return Yy(this.Tx)};L.prototype.set_m_rollInfluence=L.prototype.mD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);vz(c,a)};Object.defineProperty(L.prototype,"m_rollInfluence",{get:L.prototype.GA,set:L.prototype.mD}); +L.prototype.get_m_suspensionRestLength1=L.prototype.VA=function(){return cz(this.Tx)};L.prototype.set_m_suspensionRestLength1=L.prototype.BD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Az(c,a)};Object.defineProperty(L.prototype,"m_suspensionRestLength1",{get:L.prototype.VA,set:L.prototype.BD});L.prototype.get_m_wheelsRadius=L.prototype.iB=function(){return iz(this.Tx)};L.prototype.set_m_wheelsRadius=L.prototype.PD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Gz(c,a)}; +Object.defineProperty(L.prototype,"m_wheelsRadius",{get:L.prototype.iB,set:L.prototype.PD});L.prototype.get_m_wheelsDampingCompression=L.prototype.By=function(){return gz(this.Tx)};L.prototype.set_m_wheelsDampingCompression=L.prototype.Iy=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Ez(c,a)};Object.defineProperty(L.prototype,"m_wheelsDampingCompression",{get:L.prototype.By,set:L.prototype.Iy});L.prototype.get_m_wheelsDampingRelaxation=L.prototype.Cy=function(){return hz(this.Tx)}; +L.prototype.set_m_wheelsDampingRelaxation=L.prototype.Jy=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Fz(c,a)};Object.defineProperty(L.prototype,"m_wheelsDampingRelaxation",{get:L.prototype.Cy,set:L.prototype.Jy});L.prototype.get_m_steering=L.prototype.OA=function(){return az(this.Tx)};L.prototype.set_m_steering=L.prototype.uD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);yz(c,a)};Object.defineProperty(L.prototype,"m_steering",{get:L.prototype.OA,set:L.prototype.uD}); +L.prototype.get_m_maxSuspensionForce=L.prototype.gy=function(){return Vy(this.Tx)};L.prototype.set_m_maxSuspensionForce=L.prototype.py=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);sz(c,a)};Object.defineProperty(L.prototype,"m_maxSuspensionForce",{get:L.prototype.gy,set:L.prototype.py});L.prototype.get_m_maxSuspensionTravelCm=L.prototype.hy=function(){return Wy(this.Tx)}; +L.prototype.set_m_maxSuspensionTravelCm=L.prototype.qy=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);tz(c,a)};Object.defineProperty(L.prototype,"m_maxSuspensionTravelCm",{get:L.prototype.hy,set:L.prototype.qy});L.prototype.get_m_wheelsSuspensionForce=L.prototype.jB=function(){return jz(this.Tx)};L.prototype.set_m_wheelsSuspensionForce=L.prototype.QD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Hz(c,a)}; +Object.defineProperty(L.prototype,"m_wheelsSuspensionForce",{get:L.prototype.jB,set:L.prototype.QD});L.prototype.get_m_bIsFrontWheel=L.prototype.wy=function(){return!!Oy(this.Tx)};L.prototype.set_m_bIsFrontWheel=L.prototype.Dy=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);lz(c,a)};Object.defineProperty(L.prototype,"m_bIsFrontWheel",{get:L.prototype.wy,set:L.prototype.Dy});L.prototype.get_m_raycastInfo=L.prototype.EA=function(){return l(Xy(this.Tx),M)}; +L.prototype.set_m_raycastInfo=L.prototype.kD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);uz(c,a)};Object.defineProperty(L.prototype,"m_raycastInfo",{get:L.prototype.EA,set:L.prototype.kD});L.prototype.get_m_chassisConnectionPointCS=L.prototype.Az=function(){return l(Qy(this.Tx),q)};L.prototype.set_m_chassisConnectionPointCS=L.prototype.gC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);nz(c,a)}; +Object.defineProperty(L.prototype,"m_chassisConnectionPointCS",{get:L.prototype.Az,set:L.prototype.gC});L.prototype.get_m_worldTransform=L.prototype.kB=function(){return l(kz(this.Tx),t)};L.prototype.set_m_worldTransform=L.prototype.RD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Iz(c,a)};Object.defineProperty(L.prototype,"m_worldTransform",{get:L.prototype.kB,set:L.prototype.RD});L.prototype.get_m_wheelDirectionCS=L.prototype.Ay=function(){return l(fz(this.Tx),q)}; +L.prototype.set_m_wheelDirectionCS=L.prototype.Hy=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Dz(c,a)};Object.defineProperty(L.prototype,"m_wheelDirectionCS",{get:L.prototype.Ay,set:L.prototype.Hy});L.prototype.get_m_wheelAxleCS=L.prototype.zy=function(){return l(ez(this.Tx),q)};L.prototype.set_m_wheelAxleCS=L.prototype.Gy=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Cz(c,a)};Object.defineProperty(L.prototype,"m_wheelAxleCS",{get:L.prototype.zy,set:L.prototype.Gy}); +L.prototype.get_m_rotation=L.prototype.IA=function(){return Zy(this.Tx)};L.prototype.set_m_rotation=L.prototype.oD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);wz(c,a)};Object.defineProperty(L.prototype,"m_rotation",{get:L.prototype.IA,set:L.prototype.oD});L.prototype.get_m_deltaRotation=L.prototype.Jz=function(){return Sy(this.Tx)};L.prototype.set_m_deltaRotation=L.prototype.pC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);pz(c,a)}; +Object.defineProperty(L.prototype,"m_deltaRotation",{get:L.prototype.Jz,set:L.prototype.pC});L.prototype.get_m_brake=L.prototype.sz=function(){return Py(this.Tx)};L.prototype.set_m_brake=L.prototype.$B=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);mz(c,a)};Object.defineProperty(L.prototype,"m_brake",{get:L.prototype.sz,set:L.prototype.$B});L.prototype.get_m_clippedInvContactDotSuspension=L.prototype.Bz=function(){return Ry(this.Tx)}; +L.prototype.set_m_clippedInvContactDotSuspension=L.prototype.hC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);oz(c,a)};Object.defineProperty(L.prototype,"m_clippedInvContactDotSuspension",{get:L.prototype.Bz,set:L.prototype.hC});L.prototype.get_m_suspensionRelativeVelocity=L.prototype.TA=function(){return bz(this.Tx)};L.prototype.set_m_suspensionRelativeVelocity=L.prototype.zD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);zz(c,a)}; +Object.defineProperty(L.prototype,"m_suspensionRelativeVelocity",{get:L.prototype.TA,set:L.prototype.zD});L.prototype.get_m_skidInfo=L.prototype.LA=function(){return $y(this.Tx)};L.prototype.set_m_skidInfo=L.prototype.rD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);xz(c,a)};Object.defineProperty(L.prototype,"m_skidInfo",{get:L.prototype.LA,set:L.prototype.rD});L.prototype.__destroy__=function(){Ly(this.Tx)}; +function N(a,c,d,e){a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);e&&"object"===typeof e&&(e=e.Tx);this.Tx=void 0===a?Ax():void 0===c?_emscripten_bind_btVector4_btVector4_1(a):void 0===d?_emscripten_bind_btVector4_btVector4_2(a,c):void 0===e?_emscripten_bind_btVector4_btVector4_3(a,c,d):Bx(a,c,d,e);k(N)[this.Tx]=this}N.prototype=Object.create(q.prototype);N.prototype.constructor=N;N.prototype.Ux=N;N.Vx={};f.btVector4=N;N.prototype.w=function(){return Nx(this.Tx)}; +N.prototype.setValue=function(a,c,d,e){var g=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);e&&"object"===typeof e&&(e=e.Tx);Jx(g,a,c,d,e)};N.prototype.length=N.prototype.length=function(){return Dx(this.Tx)};N.prototype.x=N.prototype.x=function(){return Ox(this.Tx)};N.prototype.y=N.prototype.y=function(){return Px(this.Tx)};N.prototype.z=N.prototype.z=function(){return Qx(this.Tx)}; +N.prototype.setX=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Kx(c,a)};N.prototype.setY=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Lx(c,a)};N.prototype.setZ=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Mx(c,a)};N.prototype.normalize=N.prototype.normalize=function(){Ex(this.Tx)};N.prototype.rotate=N.prototype.rotate=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);return l(Ix(d,a,c),q)}; +N.prototype.dot=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return Cx(c,a)};N.prototype.op_mul=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return l(Gx(c,a),q)};N.prototype.op_add=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return l(Fx(c,a),q)};N.prototype.op_sub=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return l(Hx(c,a),q)};N.prototype.__destroy__=function(){zx(this.Tx)};function iB(){this.Tx=ak();k(iB)[this.Tx]=this}iB.prototype=Object.create(h.prototype); +iB.prototype.constructor=iB;iB.prototype.Ux=iB;iB.Vx={};f.btDefaultCollisionConstructionInfo=iB;iB.prototype.__destroy__=function(){Zj(this.Tx)};function O(){throw"cannot construct a Anchor, no constructor in IDL";}O.prototype=Object.create(h.prototype);O.prototype.constructor=O;O.prototype.Ux=O;O.Vx={};f.Anchor=O;O.prototype.get_m_node=O.prototype.vA=function(){return l(Fb(this.Tx),Node)};O.prototype.set_m_node=O.prototype.bD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Mb(c,a)}; +Object.defineProperty(O.prototype,"m_node",{get:O.prototype.vA,set:O.prototype.bD});O.prototype.get_m_local=O.prototype.oA=function(){return l(Eb(this.Tx),q)};O.prototype.set_m_local=O.prototype.VC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Lb(c,a)};Object.defineProperty(O.prototype,"m_local",{get:O.prototype.oA,set:O.prototype.VC});O.prototype.get_m_body=O.prototype.rz=function(){return l(zb(this.Tx),I)}; +O.prototype.set_m_body=O.prototype.ZB=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Gb(c,a)};Object.defineProperty(O.prototype,"m_body",{get:O.prototype.rz,set:O.prototype.ZB});O.prototype.get_m_influence=O.prototype.hA=function(){return Db(this.Tx)};O.prototype.set_m_influence=O.prototype.OC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Kb(c,a)};Object.defineProperty(O.prototype,"m_influence",{get:O.prototype.hA,set:O.prototype.OC}); +O.prototype.get_m_c0=O.prototype.vz=function(){return l(Ab(this.Tx),IA)};O.prototype.set_m_c0=O.prototype.bC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Hb(c,a)};Object.defineProperty(O.prototype,"m_c0",{get:O.prototype.vz,set:O.prototype.bC});O.prototype.get_m_c1=O.prototype.wz=function(){return l(Bb(this.Tx),q)};O.prototype.set_m_c1=O.prototype.cC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Ib(c,a)};Object.defineProperty(O.prototype,"m_c1",{get:O.prototype.wz,set:O.prototype.cC}); +O.prototype.get_m_c2=O.prototype.xz=function(){return Cb(this.Tx)};O.prototype.set_m_c2=O.prototype.dC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Jb(c,a)};Object.defineProperty(O.prototype,"m_c2",{get:O.prototype.xz,set:O.prototype.dC});O.prototype.__destroy__=function(){yb(this.Tx)};function P(){throw"cannot construct a btVehicleRaycasterResult, no constructor in IDL";}P.prototype=Object.create(h.prototype);P.prototype.constructor=P;P.prototype.Ux=P;P.Vx={}; +f.btVehicleRaycasterResult=P;P.prototype.get_m_hitPointInWorld=P.prototype.cA=function(){return l(Ux(this.Tx),q)};P.prototype.set_m_hitPointInWorld=P.prototype.JC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Xx(c,a)};Object.defineProperty(P.prototype,"m_hitPointInWorld",{get:P.prototype.cA,set:P.prototype.JC});P.prototype.get_m_hitNormalInWorld=P.prototype.aA=function(){return l(Tx(this.Tx),q)}; +P.prototype.set_m_hitNormalInWorld=P.prototype.HC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Wx(c,a)};Object.defineProperty(P.prototype,"m_hitNormalInWorld",{get:P.prototype.aA,set:P.prototype.HC});P.prototype.get_m_distFraction=P.prototype.Mz=function(){return Sx(this.Tx)};P.prototype.set_m_distFraction=P.prototype.sC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Vx(c,a)};Object.defineProperty(P.prototype,"m_distFraction",{get:P.prototype.Mz,set:P.prototype.sC}); +P.prototype.__destroy__=function(){Rx(this.Tx)};function OA(){throw"cannot construct a btVector3Array, no constructor in IDL";}OA.prototype=Object.create(h.prototype);OA.prototype.constructor=OA;OA.prototype.Ux=OA;OA.Vx={};f.btVector3Array=OA;OA.prototype.size=OA.prototype.size=function(){return hx(this.Tx)};OA.prototype.at=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return l(gx(c,a),q)};OA.prototype.__destroy__=function(){fx(this.Tx)}; +function jB(){throw"cannot construct a btConstraintSolver, no constructor in IDL";}jB.prototype=Object.create(h.prototype);jB.prototype.constructor=jB;jB.prototype.Ux=jB;jB.Vx={};f.btConstraintSolver=jB;jB.prototype.__destroy__=function(){Ki(this.Tx)};function Q(a,c,d){a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);this.Tx=cr(a,c,d);k(Q)[this.Tx]=this}Q.prototype=Object.create(xA.prototype);Q.prototype.constructor=Q;Q.prototype.Ux=Q;Q.Vx={}; +f.btRaycastVehicle=Q;Q.prototype.applyEngineForce=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);br(d,a,c)};Q.prototype.setSteeringValue=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);vr(d,a,c)};Q.prototype.getWheelTransformWS=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return l(pr(c,a),t)}; +Q.prototype.updateWheelTransform=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);Cr(d,a,c)};Q.prototype.addWheel=function(a,c,d,e,g,n,B){var R=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);e&&"object"===typeof e&&(e=e.Tx);g&&"object"===typeof g&&(g=g.Tx);n&&"object"===typeof n&&(n=n.Tx);B&&"object"===typeof B&&(B=B.Tx);return l(ar(R,a,c,d,e,g,n,B),L)};Q.prototype.getNumWheels=function(){return hr(this.Tx)}; +Q.prototype.getRigidBody=function(){return l(jr(this.Tx),I)};Q.prototype.getWheelInfo=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return l(or(c,a),L)};Q.prototype.setBrake=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);sr(d,a,c)};Q.prototype.setCoordinateSystem=function(a,c,d){var e=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);tr(e,a,c,d)};Q.prototype.getCurrentSpeedKmHour=function(){return er(this.Tx)}; +Q.prototype.getChassisWorldTransform=function(){return l(dr(this.Tx),t)};Q.prototype.rayCast=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return qr(c,a)};Q.prototype.updateVehicle=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Br(c,a)};Q.prototype.resetSuspension=function(){rr(this.Tx)};Q.prototype.getSteeringValue=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return kr(c,a)}; +Q.prototype.updateWheelTransformsWS=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);void 0===c?Dr(d,a):Er(d,a,c)};Q.prototype.setPitchControl=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ur(c,a)};Q.prototype.updateSuspension=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Ar(c,a)};Q.prototype.updateFriction=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);zr(c,a)};Q.prototype.getRightAxis=function(){return ir(this.Tx)}; +Q.prototype.getUpAxis=function(){return lr(this.Tx)};Q.prototype.getForwardAxis=function(){return fr(this.Tx)};Q.prototype.getForwardVector=function(){return l(gr(this.Tx),q)};Q.prototype.getUserConstraintType=function(){return nr(this.Tx)};Q.prototype.setUserConstraintType=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);xr(c,a)};Q.prototype.setUserConstraintId=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);wr(c,a)};Q.prototype.getUserConstraintId=function(){return mr(this.Tx)}; +Q.prototype.updateAction=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);yr(d,a,c)};Q.prototype.__destroy__=function(){$q(this.Tx)};function kB(a){a&&"object"===typeof a&&(a=a.Tx);this.Tx=Aj(a);k(kB)[this.Tx]=this}kB.prototype=Object.create(AA.prototype);kB.prototype.constructor=kB;kB.prototype.Ux=kB;kB.Vx={};f.btCylinderShapeX=kB;kB.prototype.setMargin=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Fj(c,a)};kB.prototype.getMargin=function(){return Dj(this.Tx)}; +kB.prototype.setLocalScaling=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Ej(c,a)};kB.prototype.getLocalScaling=function(){return l(Cj(this.Tx),q)};kB.prototype.calculateLocalInertia=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);Bj(d,a,c)};kB.prototype.__destroy__=function(){zj(this.Tx)};function lB(a){a&&"object"===typeof a&&(a=a.Tx);this.Tx=Hj(a);k(lB)[this.Tx]=this}lB.prototype=Object.create(AA.prototype);lB.prototype.constructor=lB; +lB.prototype.Ux=lB;lB.Vx={};f.btCylinderShapeZ=lB;lB.prototype.setMargin=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Mj(c,a)};lB.prototype.getMargin=function(){return Kj(this.Tx)};lB.prototype.setLocalScaling=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Lj(c,a)};lB.prototype.getLocalScaling=function(){return l(Jj(this.Tx),q)};lB.prototype.calculateLocalInertia=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);Ij(d,a,c)}; +lB.prototype.__destroy__=function(){Gj(this.Tx)};function eB(){throw"cannot construct a btConvexPolyhedron, no constructor in IDL";}eB.prototype=Object.create(h.prototype);eB.prototype.constructor=eB;eB.prototype.Ux=eB;eB.Vx={};f.btConvexPolyhedron=eB;eB.prototype.get_m_vertices=eB.prototype.eB=function(){return l(ij(this.Tx),OA)};eB.prototype.set_m_vertices=eB.prototype.LD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);kj(c,a)}; +Object.defineProperty(eB.prototype,"m_vertices",{get:eB.prototype.eB,set:eB.prototype.LD});eB.prototype.get_m_faces=eB.prototype.Rz=function(){return l(hj(this.Tx),mB)};eB.prototype.set_m_faces=eB.prototype.xC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);jj(c,a)};Object.defineProperty(eB.prototype,"m_faces",{get:eB.prototype.Rz,set:eB.prototype.xC});eB.prototype.__destroy__=function(){gj(this.Tx)};function nB(){this.Tx=tt();k(nB)[this.Tx]=this}nB.prototype=Object.create(h.prototype); +nB.prototype.constructor=nB;nB.prototype.Ux=nB;nB.Vx={};f.btSequentialImpulseConstraintSolver=nB;nB.prototype.__destroy__=function(){st(this.Tx)};function oB(){throw"cannot construct a tAnchorArray, no constructor in IDL";}oB.prototype=Object.create(h.prototype);oB.prototype.constructor=oB;oB.prototype.Ux=oB;oB.Vx={};f.tAnchorArray=oB;oB.prototype.size=oB.prototype.size=function(){return Pz(this.Tx)};oB.prototype.at=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return l(Lz(c,a),O)}; +oB.prototype.clear=oB.prototype.clear=function(){Mz(this.Tx)};oB.prototype.push_back=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Oz(c,a)};oB.prototype.pop_back=function(){Nz(this.Tx)};oB.prototype.__destroy__=function(){Kz(this.Tx)};function M(){throw"cannot construct a RaycastInfo, no constructor in IDL";}M.prototype=Object.create(h.prototype);M.prototype.constructor=M;M.prototype.Ux=M;M.Vx={};f.RaycastInfo=M; +M.prototype.get_m_contactNormalWS=M.prototype.Dz=function(){return l(Ye(this.Tx),q)};M.prototype.set_m_contactNormalWS=M.prototype.jC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ff(c,a)};Object.defineProperty(M.prototype,"m_contactNormalWS",{get:M.prototype.Dz,set:M.prototype.jC});M.prototype.get_m_contactPointWS=M.prototype.Ez=function(){return l(Ze(this.Tx),q)};M.prototype.set_m_contactPointWS=M.prototype.kC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);gf(c,a)}; +Object.defineProperty(M.prototype,"m_contactPointWS",{get:M.prototype.Ez,set:M.prototype.kC});M.prototype.get_m_suspensionLength=M.prototype.SA=function(){return cf(this.Tx)};M.prototype.set_m_suspensionLength=M.prototype.yD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);lf(c,a)};Object.defineProperty(M.prototype,"m_suspensionLength",{get:M.prototype.SA,set:M.prototype.yD});M.prototype.get_m_hardPointWS=M.prototype.Xz=function(){return l(af(this.Tx),q)}; +M.prototype.set_m_hardPointWS=M.prototype.DC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);jf(c,a)};Object.defineProperty(M.prototype,"m_hardPointWS",{get:M.prototype.Xz,set:M.prototype.DC});M.prototype.get_m_wheelDirectionWS=M.prototype.gB=function(){return l(ef(this.Tx),q)};M.prototype.set_m_wheelDirectionWS=M.prototype.ND=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);nf(c,a)};Object.defineProperty(M.prototype,"m_wheelDirectionWS",{get:M.prototype.gB,set:M.prototype.ND}); +M.prototype.get_m_wheelAxleWS=M.prototype.fB=function(){return l(df(this.Tx),q)};M.prototype.set_m_wheelAxleWS=M.prototype.MD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);mf(c,a)};Object.defineProperty(M.prototype,"m_wheelAxleWS",{get:M.prototype.fB,set:M.prototype.MD});M.prototype.get_m_isInContact=M.prototype.iA=function(){return!!bf(this.Tx)};M.prototype.set_m_isInContact=M.prototype.PC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);kf(c,a)}; +Object.defineProperty(M.prototype,"m_isInContact",{get:M.prototype.iA,set:M.prototype.PC});M.prototype.get_m_groundObject=M.prototype.Wz=function(){return $e(this.Tx)};M.prototype.set_m_groundObject=M.prototype.CC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);hf(c,a)};Object.defineProperty(M.prototype,"m_groundObject",{get:M.prototype.Wz,set:M.prototype.CC});M.prototype.__destroy__=function(){Xe(this.Tx)}; +function pB(a,c,d){b.Yx();a&&"object"===typeof a&&(a=a.Tx);"object"==typeof c&&(c=jA(c));d&&"object"===typeof d&&(d=d.Tx);this.Tx=gp(a,c,d);k(pB)[this.Tx]=this}pB.prototype=Object.create(p.prototype);pB.prototype.constructor=pB;pB.prototype.Ux=pB;pB.Vx={};f.btMultiSphereShape=pB;pB.prototype.setLocalScaling=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);jp(c,a)};pB.prototype.getLocalScaling=function(){return l(ip(this.Tx),q)}; +pB.prototype.calculateLocalInertia=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);hp(d,a,c)};pB.prototype.__destroy__=function(){fp(this.Tx)};function S(a,c,d,e){b.Yx();a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);"object"==typeof e&&(e=jA(e));this.Tx=Du(a,c,d,e);k(S)[this.Tx]=this}S.prototype=Object.create(r.prototype);S.prototype.constructor=S;S.prototype.Ux=S;S.Vx={};f.btSoftBody=S; +S.prototype.checkLink=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);return!!Fu(d,a,c)};S.prototype.checkFace=function(a,c,d){var e=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);return!!Eu(e,a,c,d)};S.prototype.appendMaterial=function(){return l(Au(this.Tx),A)};S.prototype.appendNode=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);Bu(d,a,c)}; +S.prototype.appendLink=function(a,c,d,e){var g=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);e&&"object"===typeof e&&(e=e.Tx);zu(g,a,c,d,e)};S.prototype.appendFace=function(a,c,d,e){var g=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);e&&"object"===typeof e&&(e=e.Tx);yu(g,a,c,d,e)}; +S.prototype.appendTetra=function(a,c,d,e,g){var n=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);e&&"object"===typeof e&&(e=e.Tx);g&&"object"===typeof g&&(g=g.Tx);Cu(n,a,c,d,e,g)};S.prototype.appendAnchor=function(a,c,d,e){var g=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);e&&"object"===typeof e&&(e=e.Tx);xu(g,a,c,d,e)}; +S.prototype.addForce=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);void 0===c?vu(d,a):wu(d,a,c)};S.prototype.addAeroForceToNode=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);uu(d,a,c)};S.prototype.getTotalMass=function(){return Qu(this.Tx)};S.prototype.setTotalMass=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);ov(d,a,c)}; +S.prototype.setMass=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);lv(d,a,c)};S.prototype.transform=S.prototype.transform=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);wv(c,a)};S.prototype.translate=S.prototype.translate=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);xv(c,a)};S.prototype.rotate=S.prototype.rotate=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);bv(c,a)}; +S.prototype.scale=S.prototype.scale=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);cv(c,a)};S.prototype.generateClusters=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);return void 0===c?Iu(d,a):Ju(d,a,c)};S.prototype.generateBendingConstraints=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);return Hu(d,a,c)}; +S.prototype.upcast=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return l(yv(c,a),S)};S.prototype.setAnisotropicFriction=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);ev(d,a,c)};S.prototype.getCollisionShape=function(){return l(Mu(this.Tx),p)};S.prototype.setContactProcessingThreshold=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);jv(c,a)}; +S.prototype.setActivationState=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);dv(c,a)};S.prototype.forceActivationState=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Gu(c,a)};S.prototype.activate=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);void 0===a?su(c):tu(c,a)};S.prototype.isActive=function(){return!!Yu(this.Tx)};S.prototype.isKinematicObject=function(){return!!Zu(this.Tx)};S.prototype.isStaticObject=function(){return!!$u(this.Tx)}; +S.prototype.isStaticOrKinematicObject=function(){return!!av(this.Tx)};S.prototype.getRestitution=function(){return Ou(this.Tx)};S.prototype.getFriction=function(){return Nu(this.Tx)};S.prototype.getRollingFriction=function(){return Pu(this.Tx)};S.prototype.setRestitution=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);mv(c,a)};S.prototype.setFriction=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);kv(c,a)}; +S.prototype.setRollingFriction=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);nv(c,a)};S.prototype.getWorldTransform=function(){return l(Tu(this.Tx),t)};S.prototype.getCollisionFlags=function(){return Lu(this.Tx)};S.prototype.setCollisionFlags=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);hv(c,a)};S.prototype.setWorldTransform=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);rv(c,a)}; +S.prototype.setCollisionShape=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);iv(c,a)};S.prototype.setCcdMotionThreshold=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);fv(c,a)};S.prototype.setCcdSweptSphereRadius=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);gv(c,a)};S.prototype.getUserIndex=function(){return Ru(this.Tx)};S.prototype.setUserIndex=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);pv(c,a)}; +S.prototype.getUserPointer=function(){return l(Su(this.Tx),pA)};S.prototype.setUserPointer=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);qv(c,a)};S.prototype.getBroadphaseHandle=function(){return l(Ku(this.Tx),u)};S.prototype.get_m_cfg=S.prototype.yz=function(){return l(Vu(this.Tx),T)};S.prototype.set_m_cfg=S.prototype.eC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);tv(c,a)};Object.defineProperty(S.prototype,"m_cfg",{get:S.prototype.yz,set:S.prototype.eC}); +S.prototype.get_m_nodes=S.prototype.wA=function(){return l(Xu(this.Tx),qB)};S.prototype.set_m_nodes=S.prototype.cD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);vv(c,a)};Object.defineProperty(S.prototype,"m_nodes",{get:S.prototype.wA,set:S.prototype.cD});S.prototype.get_m_materials=S.prototype.sA=function(){return l(Wu(this.Tx),PA)};S.prototype.set_m_materials=S.prototype.ZC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);uv(c,a)}; +Object.defineProperty(S.prototype,"m_materials",{get:S.prototype.sA,set:S.prototype.ZC});S.prototype.get_m_anchors=S.prototype.nz=function(){return l(Uu(this.Tx),oB)};S.prototype.set_m_anchors=S.prototype.VB=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);sv(c,a)};Object.defineProperty(S.prototype,"m_anchors",{get:S.prototype.nz,set:S.prototype.VB});S.prototype.__destroy__=function(){ru(this.Tx)};function rB(){throw"cannot construct a btIntArray, no constructor in IDL";}rB.prototype=Object.create(h.prototype); +rB.prototype.constructor=rB;rB.prototype.Ux=rB;rB.Vx={};f.btIntArray=rB;rB.prototype.size=rB.prototype.size=function(){return ko(this.Tx)};rB.prototype.at=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return jo(c,a)};rB.prototype.__destroy__=function(){io(this.Tx)};function T(){throw"cannot construct a Config, no constructor in IDL";}T.prototype=Object.create(h.prototype);T.prototype.constructor=T;T.prototype.Ux=T;T.Vx={};f.Config=T;T.prototype.get_kVCF=T.prototype.gz=function(){return cd(this.Tx)}; +T.prototype.set_kVCF=T.prototype.OB=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Bd(c,a)};Object.defineProperty(T.prototype,"kVCF",{get:T.prototype.gz,set:T.prototype.OB});T.prototype.get_kDP=T.prototype.Uy=function(){return Rc(this.Tx)};T.prototype.set_kDP=T.prototype.BB=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);pd(c,a)};Object.defineProperty(T.prototype,"kDP",{get:T.prototype.Uy,set:T.prototype.BB});T.prototype.get_kDG=T.prototype.Ty=function(){return Qc(this.Tx)}; +T.prototype.set_kDG=T.prototype.AB=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);od(c,a)};Object.defineProperty(T.prototype,"kDG",{get:T.prototype.Ty,set:T.prototype.AB});T.prototype.get_kLF=T.prototype.Wy=function(){return Tc(this.Tx)};T.prototype.set_kLF=T.prototype.DB=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);rd(c,a)};Object.defineProperty(T.prototype,"kLF",{get:T.prototype.Wy,set:T.prototype.DB});T.prototype.get_kPR=T.prototype.Yy=function(){return Vc(this.Tx)}; +T.prototype.set_kPR=T.prototype.FB=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);td(c,a)};Object.defineProperty(T.prototype,"kPR",{get:T.prototype.Yy,set:T.prototype.FB});T.prototype.get_kVC=T.prototype.fz=function(){return dd(this.Tx)};T.prototype.set_kVC=T.prototype.NB=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Cd(c,a)};Object.defineProperty(T.prototype,"kVC",{get:T.prototype.fz,set:T.prototype.NB});T.prototype.get_kDF=T.prototype.Sy=function(){return Pc(this.Tx)}; +T.prototype.set_kDF=T.prototype.zB=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);nd(c,a)};Object.defineProperty(T.prototype,"kDF",{get:T.prototype.Sy,set:T.prototype.zB});T.prototype.get_kMT=T.prototype.Xy=function(){return Uc(this.Tx)};T.prototype.set_kMT=T.prototype.EB=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);sd(c,a)};Object.defineProperty(T.prototype,"kMT",{get:T.prototype.Xy,set:T.prototype.EB});T.prototype.get_kCHR=T.prototype.Ry=function(){return Oc(this.Tx)}; +T.prototype.set_kCHR=T.prototype.yB=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);md(c,a)};Object.defineProperty(T.prototype,"kCHR",{get:T.prototype.Ry,set:T.prototype.yB});T.prototype.get_kKHR=T.prototype.Vy=function(){return Sc(this.Tx)};T.prototype.set_kKHR=T.prototype.CB=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);qd(c,a)};Object.defineProperty(T.prototype,"kKHR",{get:T.prototype.Vy,set:T.prototype.CB});T.prototype.get_kSHR=T.prototype.Zy=function(){return Wc(this.Tx)}; +T.prototype.set_kSHR=T.prototype.GB=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ud(c,a)};Object.defineProperty(T.prototype,"kSHR",{get:T.prototype.Zy,set:T.prototype.GB});T.prototype.get_kAHR=T.prototype.Qy=function(){return Mc(this.Tx)};T.prototype.set_kAHR=T.prototype.xB=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ld(c,a)};Object.defineProperty(T.prototype,"kAHR",{get:T.prototype.Qy,set:T.prototype.xB});T.prototype.get_kSRHR_CL=T.prototype.bz=function(){return Zc(this.Tx)}; +T.prototype.set_kSRHR_CL=T.prototype.JB=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);xd(c,a)};Object.defineProperty(T.prototype,"kSRHR_CL",{get:T.prototype.bz,set:T.prototype.JB});T.prototype.get_kSKHR_CL=T.prototype.$y=function(){return Xc(this.Tx)};T.prototype.set_kSKHR_CL=T.prototype.HB=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);vd(c,a)};Object.defineProperty(T.prototype,"kSKHR_CL",{get:T.prototype.$y,set:T.prototype.HB});T.prototype.get_kSSHR_CL=T.prototype.dz=function(){return ad(this.Tx)}; +T.prototype.set_kSSHR_CL=T.prototype.LB=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);zd(c,a)};Object.defineProperty(T.prototype,"kSSHR_CL",{get:T.prototype.dz,set:T.prototype.LB});T.prototype.get_kSR_SPLT_CL=T.prototype.cz=function(){return $c(this.Tx)};T.prototype.set_kSR_SPLT_CL=T.prototype.KB=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);yd(c,a)};Object.defineProperty(T.prototype,"kSR_SPLT_CL",{get:T.prototype.cz,set:T.prototype.KB}); +T.prototype.get_kSK_SPLT_CL=T.prototype.az=function(){return Yc(this.Tx)};T.prototype.set_kSK_SPLT_CL=T.prototype.IB=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);wd(c,a)};Object.defineProperty(T.prototype,"kSK_SPLT_CL",{get:T.prototype.az,set:T.prototype.IB});T.prototype.get_kSS_SPLT_CL=T.prototype.ez=function(){return bd(this.Tx)};T.prototype.set_kSS_SPLT_CL=T.prototype.MB=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Ad(c,a)}; +Object.defineProperty(T.prototype,"kSS_SPLT_CL",{get:T.prototype.ez,set:T.prototype.MB});T.prototype.get_maxvolume=T.prototype.mB=function(){return ed(this.Tx)};T.prototype.set_maxvolume=T.prototype.TD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Dd(c,a)};Object.defineProperty(T.prototype,"maxvolume",{get:T.prototype.mB,set:T.prototype.TD});T.prototype.get_timescale=T.prototype.oB=function(){return gd(this.Tx)}; +T.prototype.set_timescale=T.prototype.VD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Fd(c,a)};Object.defineProperty(T.prototype,"timescale",{get:T.prototype.oB,set:T.prototype.VD});T.prototype.get_viterations=T.prototype.pB=function(){return hd(this.Tx)};T.prototype.set_viterations=T.prototype.WD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Gd(c,a)};Object.defineProperty(T.prototype,"viterations",{get:T.prototype.pB,set:T.prototype.WD}); +T.prototype.get_piterations=T.prototype.nB=function(){return fd(this.Tx)};T.prototype.set_piterations=T.prototype.UD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Ed(c,a)};Object.defineProperty(T.prototype,"piterations",{get:T.prototype.nB,set:T.prototype.UD});T.prototype.get_diterations=T.prototype.Py=function(){return Lc(this.Tx)};T.prototype.set_diterations=T.prototype.wB=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);kd(c,a)}; +Object.defineProperty(T.prototype,"diterations",{get:T.prototype.Py,set:T.prototype.wB});T.prototype.get_citerations=T.prototype.Ny=function(){return Jc(this.Tx)};T.prototype.set_citerations=T.prototype.uB=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);id(c,a)};Object.defineProperty(T.prototype,"citerations",{get:T.prototype.Ny,set:T.prototype.uB});T.prototype.get_collisions=T.prototype.Oy=function(){return Kc(this.Tx)}; +T.prototype.set_collisions=T.prototype.vB=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);jd(c,a)};Object.defineProperty(T.prototype,"collisions",{get:T.prototype.Oy,set:T.prototype.vB});T.prototype.__destroy__=function(){Ic(this.Tx)};function Node(){throw"cannot construct a Node, no constructor in IDL";}Node.prototype=Object.create(h.prototype);Node.prototype.constructor=Node;Node.prototype.Ux=Node;Node.Vx={};f.Node=Node; +Node.prototype.get_m_x=Node.prototype.lB=function(){return l(Fe(this.Tx),q)};Node.prototype.set_m_x=Node.prototype.SD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Me(c,a)};Object.defineProperty(Node.prototype,"m_x",{get:Node.prototype.lB,set:Node.prototype.SD});Node.prototype.get_m_q=Node.prototype.DA=function(){return l(De(this.Tx),q)};Node.prototype.set_m_q=Node.prototype.jD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Ke(c,a)}; +Object.defineProperty(Node.prototype,"m_q",{get:Node.prototype.DA,set:Node.prototype.jD});Node.prototype.get_m_v=Node.prototype.dB=function(){return l(Ee(this.Tx),q)};Node.prototype.set_m_v=Node.prototype.KD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Le(c,a)};Object.defineProperty(Node.prototype,"m_v",{get:Node.prototype.dB,set:Node.prototype.KD});Node.prototype.get_m_f=Node.prototype.Qz=function(){return l(Ae(this.Tx),q)}; +Node.prototype.set_m_f=Node.prototype.wC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);He(c,a)};Object.defineProperty(Node.prototype,"m_f",{get:Node.prototype.Qz,set:Node.prototype.wC});Node.prototype.get_m_n=Node.prototype.uA=function(){return l(Ce(this.Tx),q)};Node.prototype.set_m_n=Node.prototype.aD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Je(c,a)};Object.defineProperty(Node.prototype,"m_n",{get:Node.prototype.uA,set:Node.prototype.aD}); +Node.prototype.get_m_im=Node.prototype.eA=function(){return Be(this.Tx)};Node.prototype.set_m_im=Node.prototype.LC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Ie(c,a)};Object.defineProperty(Node.prototype,"m_im",{get:Node.prototype.eA,set:Node.prototype.LC});Node.prototype.get_m_area=Node.prototype.qz=function(){return ze(this.Tx)};Node.prototype.set_m_area=Node.prototype.YB=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Ge(c,a)}; +Object.defineProperty(Node.prototype,"m_area",{get:Node.prototype.qz,set:Node.prototype.YB});Node.prototype.__destroy__=function(){ye(this.Tx)};function sB(){this.Tx=un();k(sB)[this.Tx]=this}sB.prototype=Object.create(h.prototype);sB.prototype.constructor=sB;sB.prototype.Ux=sB;sB.Vx={};f.btGhostPairCallback=sB;sB.prototype.__destroy__=function(){tn(this.Tx)};function tB(){throw"cannot construct a btOverlappingPairCallback, no constructor in IDL";}tB.prototype=Object.create(h.prototype); +tB.prototype.constructor=tB;tB.prototype.Ux=tB;tB.Vx={};f.btOverlappingPairCallback=tB;tB.prototype.__destroy__=function(){np(this.Tx)};function U(a,c,d,e){a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);e&&"object"===typeof e&&(e=e.Tx);this.Tx=void 0===e?mo(a,c,d):no(a,c,d,e);k(U)[this.Tx]=this}U.prototype=Object.create(xA.prototype);U.prototype.constructor=U;U.prototype.Ux=U;U.Vx={};f.btKinematicCharacterController=U; +U.prototype.setUpAxis=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Bo(c,a)};U.prototype.setWalkDirection=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Fo(c,a)};U.prototype.setVelocityForTimeInterval=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);Eo(d,a,c)};U.prototype.warp=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Ho(c,a)};U.prototype.preStep=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);vo(c,a)}; +U.prototype.playerStep=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);uo(d,a,c)};U.prototype.setFallSpeed=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);wo(c,a)};U.prototype.setJumpSpeed=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);yo(c,a)};U.prototype.setMaxJumpHeight=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);zo(c,a)};U.prototype.canJump=function(){return!!oo(this.Tx)};U.prototype.jump=function(){so(this.Tx)}; +U.prototype.setGravity=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);xo(c,a)};U.prototype.getGravity=function(){return qo(this.Tx)};U.prototype.setMaxSlope=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Ao(c,a)};U.prototype.getMaxSlope=function(){return ro(this.Tx)};U.prototype.getGhostObject=function(){return l(po(this.Tx),V)};U.prototype.setUseGhostSweepTest=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Do(c,a)};U.prototype.onGround=function(){return!!to(this.Tx)}; +U.prototype.setUpInterpolate=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Co(c,a)};U.prototype.updateAction=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);Go(d,a,c)};U.prototype.__destroy__=function(){lo(this.Tx)};function uB(){throw"cannot construct a btSoftBodyArray, no constructor in IDL";}uB.prototype=Object.create(h.prototype);uB.prototype.constructor=uB;uB.prototype.Ux=uB;uB.Vx={};f.btSoftBodyArray=uB; +uB.prototype.size=uB.prototype.size=function(){return Nt(this.Tx)};uB.prototype.at=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return l(Mt(c,a),S)};uB.prototype.__destroy__=function(){Lt(this.Tx)};function mB(){throw"cannot construct a btFaceArray, no constructor in IDL";}mB.prototype=Object.create(h.prototype);mB.prototype.constructor=mB;mB.prototype.Ux=mB;mB.Vx={};f.btFaceArray=mB;mB.prototype.size=mB.prototype.size=function(){return Ul(this.Tx)}; +mB.prototype.at=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return l(Tl(c,a),vB)};mB.prototype.__destroy__=function(){Sl(this.Tx)};function wB(a,c){a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);this.Tx=uw(a,c);k(wB)[this.Tx]=this}wB.prototype=Object.create(sA.prototype);wB.prototype.constructor=wB;wB.prototype.Ux=wB;wB.Vx={};f.btStaticPlaneShape=wB;wB.prototype.setLocalScaling=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);xw(c,a)}; +wB.prototype.getLocalScaling=function(){return l(ww(this.Tx),q)};wB.prototype.calculateLocalInertia=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);vw(d,a,c)};wB.prototype.__destroy__=function(){tw(this.Tx)};function mA(){throw"cannot construct a btOverlappingPairCache, no constructor in IDL";}mA.prototype=Object.create(h.prototype);mA.prototype.constructor=mA;mA.prototype.Ux=mA;mA.Vx={};f.btOverlappingPairCache=mA; +mA.prototype.setInternalGhostPairCallback=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);mp(c,a)};mA.prototype.getNumOverlappingPairs=function(){return lp(this.Tx)};mA.prototype.__destroy__=function(){kp(this.Tx)};function TA(){throw"cannot construct a btIndexedMesh, no constructor in IDL";}TA.prototype=Object.create(h.prototype);TA.prototype.constructor=TA;TA.prototype.Ux=TA;TA.Vx={};f.btIndexedMesh=TA;TA.prototype.get_m_numTriangles=TA.prototype.zA=function(){return go(this.Tx)}; +TA.prototype.set_m_numTriangles=TA.prototype.fD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ho(c,a)};Object.defineProperty(TA.prototype,"m_numTriangles",{get:TA.prototype.zA,set:TA.prototype.fD});TA.prototype.__destroy__=function(){fo(this.Tx)};function W(a,c,d,e,g){a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);e&&"object"===typeof e&&(e=e.Tx);g&&"object"===typeof g&&(g=g.Tx);this.Tx=Jv(a,c,d,e,g);k(W)[this.Tx]=this}W.prototype=Object.create(x.prototype); +W.prototype.constructor=W;W.prototype.Ux=W;W.Vx={};f.btSoftRigidDynamicsWorld=W;W.prototype.addSoftBody=function(a,c,d){var e=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);Iv(e,a,c,d)};W.prototype.removeSoftBody=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);cw(c,a)};W.prototype.removeCollisionObject=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);$v(c,a)};W.prototype.getWorldInfo=function(){return l(Xv(this.Tx),J)}; +W.prototype.getSoftBodyArray=function(){return l(Vv(this.Tx),uB)};W.prototype.getDispatcher=function(){return l(Sv(this.Tx),lA)};W.prototype.rayTest=function(a,c,d){var e=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);Yv(e,a,c,d)};W.prototype.getPairCache=function(){return l(Uv(this.Tx),mA)};W.prototype.getDispatchInfo=function(){return l(Rv(this.Tx),m)}; +W.prototype.addCollisionObject=function(a,c,d){var e=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);void 0===c?Bv(e,a):void 0===d?Cv(e,a,c):Dv(e,a,c,d)};W.prototype.getBroadphase=function(){return l(Pv(this.Tx),nA)}; +W.prototype.convexSweepTest=function(a,c,d,e,g){var n=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);e&&"object"===typeof e&&(e=e.Tx);g&&"object"===typeof g&&(g=g.Tx);Mv(n,a,c,d,e,g)};W.prototype.contactPairTest=function(a,c,d){var e=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);Kv(e,a,c,d)}; +W.prototype.contactTest=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);Lv(d,a,c)};W.prototype.updateSingleAabb=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);lw(c,a)};W.prototype.setDebugDrawer=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);gw(c,a)};W.prototype.getDebugDrawer=function(){return l(Qv(this.Tx),oA)};W.prototype.debugDrawWorld=function(){Ov(this.Tx)}; +W.prototype.debugDrawObject=function(a,c,d){var e=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);Nv(e,a,c,d)};W.prototype.setGravity=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);hw(c,a)};W.prototype.getGravity=function(){return l(Tv(this.Tx),q)}; +W.prototype.addRigidBody=function(a,c,d){var e=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);void 0===c?Gv(e,a):void 0===d?_emscripten_bind_btSoftRigidDynamicsWorld_addRigidBody_2(e,a,c):Hv(e,a,c,d)};W.prototype.removeRigidBody=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);bw(c,a)}; +W.prototype.addConstraint=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);void 0===c?Ev(d,a):Fv(d,a,c)};W.prototype.removeConstraint=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);aw(c,a)};W.prototype.stepSimulation=function(a,c,d){var e=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);return void 0===c?iw(e,a):void 0===d?jw(e,a,c):kw(e,a,c,d)}; +W.prototype.setContactAddedCallback=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);dw(c,a)};W.prototype.setContactProcessedCallback=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);fw(c,a)};W.prototype.setContactDestroyedCallback=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ew(c,a)};W.prototype.addAction=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Av(c,a)};W.prototype.removeAction=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Zv(c,a)}; +W.prototype.getSolverInfo=function(){return l(Wv(this.Tx),v)};W.prototype.__destroy__=function(){zv(this.Tx)};function xB(a,c,d,e){a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);e&&"object"===typeof e&&(e=e.Tx);this.Tx=am(a,c,d,e);k(xB)[this.Tx]=this}xB.prototype=Object.create(rA.prototype);xB.prototype.constructor=xB;xB.prototype.Ux=xB;xB.Vx={};f.btFixedConstraint=xB; +xB.prototype.enableFeedback=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);bm(c,a)};xB.prototype.getBreakingImpulseThreshold=function(){return cm(this.Tx)};xB.prototype.setBreakingImpulseThreshold=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);em(c,a)};xB.prototype.getParam=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);return dm(d,a,c)}; +xB.prototype.setParam=function(a,c,d){var e=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);fm(e,a,c,d)};xB.prototype.__destroy__=function(){$l(this.Tx)};function t(a,c){a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);this.Tx=void 0===a?Bw():void 0===c?_emscripten_bind_btTransform_btTransform_1(a):Cw(a,c);k(t)[this.Tx]=this}t.prototype=Object.create(h.prototype);t.prototype.constructor=t;t.prototype.Ux=t;t.Vx={}; +f.btTransform=t;t.prototype.setIdentity=function(){Jw(this.Tx)};t.prototype.setOrigin=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Kw(c,a)};t.prototype.setRotation=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Lw(c,a)};t.prototype.getOrigin=function(){return l(Ew(this.Tx),q)};t.prototype.getRotation=function(){return l(Fw(this.Tx),X)};t.prototype.getBasis=function(){return l(Dw(this.Tx),IA)}; +t.prototype.setFromOpenGLMatrix=function(a){var c=this.Tx;b.Yx();"object"==typeof a&&(a=jA(a));Iw(c,a)};t.prototype.inverse=t.prototype.inverse=function(){return l(Gw(this.Tx),t)};t.prototype.op_mul=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return l(Hw(c,a),t)};t.prototype.__destroy__=function(){Aw(this.Tx)};function Y(a,c){a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);this.Tx=hc(a,c);k(Y)[this.Tx]=this}Y.prototype=Object.create(z.prototype); +Y.prototype.constructor=Y;Y.prototype.Ux=Y;Y.Vx={};f.ClosestRayResultCallback=Y;Y.prototype.hasHit=function(){return!!sc(this.Tx)};Y.prototype.get_m_rayFromWorld=Y.prototype.xy=function(){return l(qc(this.Tx),q)};Y.prototype.set_m_rayFromWorld=Y.prototype.Ey=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Dc(c,a)};Object.defineProperty(Y.prototype,"m_rayFromWorld",{get:Y.prototype.xy,set:Y.prototype.Ey});Y.prototype.get_m_rayToWorld=Y.prototype.yy=function(){return l(rc(this.Tx),q)}; +Y.prototype.set_m_rayToWorld=Y.prototype.Fy=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Ec(c,a)};Object.defineProperty(Y.prototype,"m_rayToWorld",{get:Y.prototype.yy,set:Y.prototype.Fy});Y.prototype.get_m_hitNormalWorld=Y.prototype.ey=function(){return l(oc(this.Tx),q)};Y.prototype.set_m_hitNormalWorld=Y.prototype.ny=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Bc(c,a)};Object.defineProperty(Y.prototype,"m_hitNormalWorld",{get:Y.prototype.ey,set:Y.prototype.ny}); +Y.prototype.get_m_hitPointWorld=Y.prototype.fy=function(){return l(pc(this.Tx),q)};Y.prototype.set_m_hitPointWorld=Y.prototype.oy=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Cc(c,a)};Object.defineProperty(Y.prototype,"m_hitPointWorld",{get:Y.prototype.fy,set:Y.prototype.oy});Y.prototype.get_m_collisionFilterGroup=Y.prototype.Wx=function(){return lc(this.Tx)};Y.prototype.set_m_collisionFilterGroup=Y.prototype.Zx=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);uc(c,a)}; +Object.defineProperty(Y.prototype,"m_collisionFilterGroup",{get:Y.prototype.Wx,set:Y.prototype.Zx});Y.prototype.get_m_collisionFilterMask=Y.prototype.Xx=function(){return mc(this.Tx)};Y.prototype.set_m_collisionFilterMask=Y.prototype.$x=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);vc(c,a)};Object.defineProperty(Y.prototype,"m_collisionFilterMask",{get:Y.prototype.Xx,set:Y.prototype.$x});Y.prototype.get_m_closestHitFraction=Y.prototype.ay=function(){return jc(this.Tx)}; +Y.prototype.set_m_closestHitFraction=Y.prototype.by=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);tc(c,a)};Object.defineProperty(Y.prototype,"m_closestHitFraction",{get:Y.prototype.ay,set:Y.prototype.by});Y.prototype.get_m_collisionObject=Y.prototype.cy=function(){return l(nc(this.Tx),r)};Y.prototype.set_m_collisionObject=Y.prototype.ly=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);wc(c,a)};Object.defineProperty(Y.prototype,"m_collisionObject",{get:Y.prototype.cy,set:Y.prototype.ly}); +Y.prototype.__destroy__=function(){ic(this.Tx)};function yB(a){a&&"object"===typeof a&&(a=a.Tx);this.Tx=void 0===a?Xt():Yt(a);k(yB)[this.Tx]=this}yB.prototype=Object.create(uA.prototype);yB.prototype.constructor=yB;yB.prototype.Ux=yB;yB.Vx={};f.btSoftBodyRigidBodyCollisionConfiguration=yB;yB.prototype.__destroy__=function(){Wt(this.Tx)};function zB(){this.Tx=Fc();k(zB)[this.Tx]=this}zB.prototype=Object.create(GA.prototype);zB.prototype.constructor=zB;zB.prototype.Ux=zB;zB.Vx={}; +f.ConcreteContactResultCallback=zB;zB.prototype.addSingleResult=function(a,c,d,e,g,n,B){var R=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);e&&"object"===typeof e&&(e=e.Tx);g&&"object"===typeof g&&(g=g.Tx);n&&"object"===typeof n&&(n=n.Tx);B&&"object"===typeof B&&(B=B.Tx);return Hc(R,a,c,d,e,g,n,B)};zB.prototype.__destroy__=function(){Gc(this.Tx)}; +function AB(a,c,d){a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);this.Tx=void 0===d?Lf(a,c):Mf(a,c,d);k(AB)[this.Tx]=this}AB.prototype=Object.create(vA.prototype);AB.prototype.constructor=AB;AB.prototype.Ux=AB;AB.Vx={};f.btBvhTriangleMeshShape=AB;AB.prototype.setLocalScaling=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Pf(c,a)};AB.prototype.getLocalScaling=function(){return l(Of(this.Tx),q)}; +AB.prototype.calculateLocalInertia=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);Nf(d,a,c)};AB.prototype.__destroy__=function(){Kf(this.Tx)};function NA(){throw"cannot construct a btConstCollisionObjectArray, no constructor in IDL";}NA.prototype=Object.create(h.prototype);NA.prototype.constructor=NA;NA.prototype.Ux=NA;NA.Vx={};f.btConstCollisionObjectArray=NA;NA.prototype.size=NA.prototype.size=function(){return Bi(this.Tx)}; +NA.prototype.at=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return l(Ai(c,a),r)};NA.prototype.__destroy__=function(){zi(this.Tx)};function BB(a,c,d,e,g){a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);e&&"object"===typeof e&&(e=e.Tx);g&&"object"===typeof g&&(g=g.Tx);this.Tx=void 0===e?At(a,c,d):void 0===g?_emscripten_bind_btSliderConstraint_btSliderConstraint_4(a,c,d,e):Bt(a,c,d,e,g);k(BB)[this.Tx]=this}BB.prototype=Object.create(rA.prototype); +BB.prototype.constructor=BB;BB.prototype.Ux=BB;BB.Vx={};f.btSliderConstraint=BB;BB.prototype.setLowerLinLimit=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Ht(c,a)};BB.prototype.setUpperLinLimit=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Kt(c,a)};BB.prototype.setLowerAngLimit=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Gt(c,a)};BB.prototype.setUpperAngLimit=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Jt(c,a)}; +BB.prototype.enableFeedback=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Ct(c,a)};BB.prototype.getBreakingImpulseThreshold=function(){return Dt(this.Tx)};BB.prototype.setBreakingImpulseThreshold=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Ft(c,a)};BB.prototype.getParam=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);return Et(d,a,c)}; +BB.prototype.setParam=function(a,c,d){var e=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);It(e,a,c,d)};BB.prototype.__destroy__=function(){zt(this.Tx)};function V(){this.Tx=rp();k(V)[this.Tx]=this}V.prototype=Object.create(w.prototype);V.prototype.constructor=V;V.prototype.Ux=V;V.Vx={};f.btPairCachingGhostObject=V; +V.prototype.setAnisotropicFriction=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);Jp(d,a,c)};V.prototype.getCollisionShape=function(){return l(vp(this.Tx),p)};V.prototype.setContactProcessingThreshold=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Op(c,a)};V.prototype.setActivationState=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Ip(c,a)}; +V.prototype.forceActivationState=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);sp(c,a)};V.prototype.activate=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);void 0===a?pp(c):qp(c,a)};V.prototype.isActive=function(){return!!Ep(this.Tx)};V.prototype.isKinematicObject=function(){return!!Fp(this.Tx)};V.prototype.isStaticObject=function(){return!!Gp(this.Tx)};V.prototype.isStaticOrKinematicObject=function(){return!!Hp(this.Tx)};V.prototype.getRestitution=function(){return zp(this.Tx)}; +V.prototype.getFriction=function(){return wp(this.Tx)};V.prototype.getRollingFriction=function(){return Ap(this.Tx)};V.prototype.setRestitution=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Qp(c,a)};V.prototype.setFriction=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Pp(c,a)};V.prototype.setRollingFriction=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Rp(c,a)};V.prototype.getWorldTransform=function(){return l(Dp(this.Tx),t)};V.prototype.getCollisionFlags=function(){return up(this.Tx)}; +V.prototype.setCollisionFlags=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Mp(c,a)};V.prototype.setWorldTransform=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Up(c,a)};V.prototype.setCollisionShape=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Np(c,a)};V.prototype.setCcdMotionThreshold=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Kp(c,a)};V.prototype.setCcdSweptSphereRadius=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Lp(c,a)}; +V.prototype.getUserIndex=function(){return Bp(this.Tx)};V.prototype.setUserIndex=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Sp(c,a)};V.prototype.getUserPointer=function(){return l(Cp(this.Tx),pA)};V.prototype.setUserPointer=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Tp(c,a)};V.prototype.getBroadphaseHandle=function(){return l(tp(this.Tx),u)};V.prototype.getNumOverlappingObjects=function(){return xp(this.Tx)}; +V.prototype.getOverlappingObject=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return l(yp(c,a),r)};V.prototype.__destroy__=function(){op(this.Tx)};function E(){throw"cannot construct a btManifoldPoint, no constructor in IDL";}E.prototype=Object.create(h.prototype);E.prototype.constructor=E;E.prototype.Ux=E;E.Vx={};f.btManifoldPoint=E;E.prototype.getPositionWorldOnA=function(){return l(Lo(this.Tx),q)};E.prototype.getPositionWorldOnB=function(){return l(Mo(this.Tx),q)}; +E.prototype.getAppliedImpulse=function(){return Jo(this.Tx)};E.prototype.getDistance=function(){return Ko(this.Tx)};E.prototype.get_m_localPointA=E.prototype.pA=function(){return l(No(this.Tx),q)};E.prototype.set_m_localPointA=E.prototype.WC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);To(c,a)};Object.defineProperty(E.prototype,"m_localPointA",{get:E.prototype.pA,set:E.prototype.WC});E.prototype.get_m_localPointB=E.prototype.qA=function(){return l(Oo(this.Tx),q)}; +E.prototype.set_m_localPointB=E.prototype.XC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Uo(c,a)};Object.defineProperty(E.prototype,"m_localPointB",{get:E.prototype.qA,set:E.prototype.XC});E.prototype.get_m_positionWorldOnB=E.prototype.CA=function(){return l(Ro(this.Tx),q)};E.prototype.set_m_positionWorldOnB=E.prototype.iD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Xo(c,a)};Object.defineProperty(E.prototype,"m_positionWorldOnB",{get:E.prototype.CA,set:E.prototype.iD}); +E.prototype.get_m_positionWorldOnA=E.prototype.BA=function(){return l(Qo(this.Tx),q)};E.prototype.set_m_positionWorldOnA=E.prototype.hD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Wo(c,a)};Object.defineProperty(E.prototype,"m_positionWorldOnA",{get:E.prototype.BA,set:E.prototype.hD});E.prototype.get_m_normalWorldOnB=E.prototype.xA=function(){return l(Po(this.Tx),q)};E.prototype.set_m_normalWorldOnB=E.prototype.dD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Vo(c,a)}; +Object.defineProperty(E.prototype,"m_normalWorldOnB",{get:E.prototype.xA,set:E.prototype.dD});E.prototype.get_m_userPersistentData=E.prototype.cB=function(){return So(this.Tx)};E.prototype.set_m_userPersistentData=E.prototype.JD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Yo(c,a)};Object.defineProperty(E.prototype,"m_userPersistentData",{get:E.prototype.cB,set:E.prototype.JD});E.prototype.__destroy__=function(){Io(this.Tx)}; +function CB(a,c,d,e){a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);e&&"object"===typeof e&&(e=e.Tx);this.Tx=void 0===d?bq(a,c):void 0===e?_emscripten_bind_btPoint2PointConstraint_btPoint2PointConstraint_3(a,c,d):cq(a,c,d,e);k(CB)[this.Tx]=this}CB.prototype=Object.create(rA.prototype);CB.prototype.constructor=CB;CB.prototype.Ux=CB;CB.Vx={};f.btPoint2PointConstraint=CB; +CB.prototype.setPivotA=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);lq(c,a)};CB.prototype.setPivotB=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);mq(c,a)};CB.prototype.getPivotInA=function(){return l(gq(this.Tx),q)};CB.prototype.getPivotInB=function(){return l(hq(this.Tx),q)};CB.prototype.enableFeedback=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);dq(c,a)};CB.prototype.getBreakingImpulseThreshold=function(){return eq(this.Tx)}; +CB.prototype.setBreakingImpulseThreshold=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);jq(c,a)};CB.prototype.getParam=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);return fq(d,a,c)};CB.prototype.setParam=function(a,c,d){var e=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);kq(e,a,c,d)};CB.prototype.get_m_setting=CB.prototype.JA=function(){return l(iq(this.Tx),H)}; +CB.prototype.set_m_setting=CB.prototype.pD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);nq(c,a)};Object.defineProperty(CB.prototype,"m_setting",{get:CB.prototype.JA,set:CB.prototype.pD});CB.prototype.__destroy__=function(){aq(this.Tx)};function DB(){this.Tx=Vt();k(DB)[this.Tx]=this}DB.prototype=Object.create(h.prototype);DB.prototype.constructor=DB;DB.prototype.Ux=DB;DB.Vx={};f.btSoftBodyHelpers=DB; +DB.prototype.CreateRope=function(a,c,d,e,g){var n=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);e&&"object"===typeof e&&(e=e.Tx);g&&"object"===typeof g&&(g=g.Tx);return l(Tt(n,a,c,d,e,g),S)}; +DB.prototype.CreatePatch=function(a,c,d,e,g,n,B,R,da){var lb=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);e&&"object"===typeof e&&(e=e.Tx);g&&"object"===typeof g&&(g=g.Tx);n&&"object"===typeof n&&(n=n.Tx);B&&"object"===typeof B&&(B=B.Tx);R&&"object"===typeof R&&(R=R.Tx);da&&"object"===typeof da&&(da=da.Tx);return l(St(lb,a,c,d,e,g,n,B,R,da),S)}; +DB.prototype.CreatePatchUV=function(a,c,d,e,g,n,B,R,da,lb){var Wb=this.Tx;b.Yx();a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);e&&"object"===typeof e&&(e=e.Tx);g&&"object"===typeof g&&(g=g.Tx);n&&"object"===typeof n&&(n=n.Tx);B&&"object"===typeof B&&(B=B.Tx);R&&"object"===typeof R&&(R=R.Tx);da&&"object"===typeof da&&(da=da.Tx);"object"==typeof lb&&(lb=jA(lb));return l(Rt(Wb,a,c,d,e,g,n,B,R,da,lb),S)}; +DB.prototype.CreateEllipsoid=function(a,c,d,e){var g=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);e&&"object"===typeof e&&(e=e.Tx);return l(Ot(g,a,c,d,e),S)}; +DB.prototype.CreateFromTriMesh=function(a,c,d,e,g){var n=this.Tx;b.Yx();a&&"object"===typeof a&&(a=a.Tx);"object"==typeof c&&(c=jA(c));if("object"==typeof d&&"object"===typeof d){var B=b.ty(d,ua);b.vy(d,ua,B);d=B}e&&"object"===typeof e&&(e=e.Tx);g&&"object"===typeof g&&(g=g.Tx);return l(Qt(n,a,c,d,e,g),S)}; +DB.prototype.CreateFromConvexHull=function(a,c,d,e){var g=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);e&&"object"===typeof e&&(e=e.Tx);return l(Pt(g,a,c,d,e),S)};DB.prototype.__destroy__=function(){Ut(this.Tx)};function u(){throw"cannot construct a btBroadphaseProxy, no constructor in IDL";}u.prototype=Object.create(h.prototype);u.prototype.constructor=u;u.prototype.Ux=u;u.Vx={};f.btBroadphaseProxy=u; +u.prototype.get_m_collisionFilterGroup=u.prototype.Wx=function(){return Gf(this.Tx)};u.prototype.set_m_collisionFilterGroup=u.prototype.Zx=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);If(c,a)};Object.defineProperty(u.prototype,"m_collisionFilterGroup",{get:u.prototype.Wx,set:u.prototype.Zx});u.prototype.get_m_collisionFilterMask=u.prototype.Xx=function(){return Hf(this.Tx)}; +u.prototype.set_m_collisionFilterMask=u.prototype.$x=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Jf(c,a)};Object.defineProperty(u.prototype,"m_collisionFilterMask",{get:u.prototype.Xx,set:u.prototype.$x});u.prototype.__destroy__=function(){Ff(this.Tx)};function qB(){throw"cannot construct a tNodeArray, no constructor in IDL";}qB.prototype=Object.create(h.prototype);qB.prototype.constructor=qB;qB.prototype.Ux=qB;qB.Vx={};f.tNodeArray=qB;qB.prototype.size=qB.prototype.size=function(){return Vz(this.Tx)}; +qB.prototype.at=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return l(Uz(c,a),Node)};qB.prototype.__destroy__=function(){Tz(this.Tx)};function EB(a){a&&"object"===typeof a&&(a=a.Tx);this.Tx=xf(a);k(EB)[this.Tx]=this}EB.prototype=Object.create(p.prototype);EB.prototype.constructor=EB;EB.prototype.Ux=EB;EB.Vx={};f.btBoxShape=EB;EB.prototype.setMargin=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Cf(c,a)};EB.prototype.getMargin=function(){return Af(this.Tx)}; +EB.prototype.setLocalScaling=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Bf(c,a)};EB.prototype.getLocalScaling=function(){return l(zf(this.Tx),q)};EB.prototype.calculateLocalInertia=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);yf(d,a,c)};EB.prototype.__destroy__=function(){wf(this.Tx)};function vB(){throw"cannot construct a btFace, no constructor in IDL";}vB.prototype=Object.create(h.prototype);vB.prototype.constructor=vB; +vB.prototype.Ux=vB;vB.Vx={};f.btFace=vB;vB.prototype.get_m_indices=vB.prototype.gA=function(){return l(Wl(this.Tx),rB)};vB.prototype.set_m_indices=vB.prototype.NC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Yl(c,a)};Object.defineProperty(vB.prototype,"m_indices",{get:vB.prototype.gA,set:vB.prototype.NC});vB.prototype.get_m_plane=vB.prototype.AA=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return Xl(c,a)}; +vB.prototype.set_m_plane=vB.prototype.gD=function(a,c){var d=this.Tx;b.Yx();a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);Zl(d,a,c)};Object.defineProperty(vB.prototype,"m_plane",{get:vB.prototype.AA,set:vB.prototype.gD});vB.prototype.__destroy__=function(){Vl(this.Tx)};function FB(){this.Tx=Rd();k(FB)[this.Tx]=this}FB.prototype=Object.create(oA.prototype);FB.prototype.constructor=FB;FB.prototype.Ux=FB;FB.Vx={};f.DebugDrawer=FB; +FB.prototype.drawLine=function(a,c,d){var e=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);Vd(e,a,c,d)};FB.prototype.drawContactPoint=function(a,c,d,e,g){var n=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);e&&"object"===typeof e&&(e=e.Tx);g&&"object"===typeof g&&(g=g.Tx);Ud(n,a,c,d,e,g)}; +FB.prototype.reportErrorWarning=function(a){var c=this.Tx;b.Yx();a=a&&"object"===typeof a?a.Tx:iA(a);Xd(c,a)};FB.prototype.draw3dText=function(a,c){var d=this.Tx;b.Yx();a&&"object"===typeof a&&(a=a.Tx);c=c&&"object"===typeof c?c.Tx:iA(c);Td(d,a,c)};FB.prototype.setDebugMode=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Yd(c,a)};FB.prototype.getDebugMode=function(){return Wd(this.Tx)};FB.prototype.__destroy__=function(){Sd(this.Tx)}; +function GB(a,c){a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);this.Tx=Rf(a,c);k(GB)[this.Tx]=this}GB.prototype=Object.create(tA.prototype);GB.prototype.constructor=GB;GB.prototype.Ux=GB;GB.Vx={};f.btCapsuleShapeX=GB;GB.prototype.setMargin=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Zf(c,a)};GB.prototype.getMargin=function(){return Vf(this.Tx)};GB.prototype.getUpAxis=function(){return Xf(this.Tx)};GB.prototype.getRadius=function(){return Wf(this.Tx)}; +GB.prototype.getHalfHeight=function(){return Tf(this.Tx)};GB.prototype.setLocalScaling=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Yf(c,a)};GB.prototype.getLocalScaling=function(){return l(Uf(this.Tx),q)};GB.prototype.calculateLocalInertia=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);Sf(d,a,c)};GB.prototype.__destroy__=function(){Qf(this.Tx)}; +function X(a,c,d,e){a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);e&&"object"===typeof e&&(e=e.Tx);this.Tx=Aq(a,c,d,e);k(X)[this.Tx]=this}X.prototype=Object.create(zA.prototype);X.prototype.constructor=X;X.prototype.Ux=X;X.Vx={};f.btQuaternion=X;X.prototype.setValue=function(a,c,d,e){var g=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);e&&"object"===typeof e&&(e=e.Tx);Rq(g,a,c,d,e)}; +X.prototype.setEulerZYX=function(a,c,d){var e=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);Pq(e,a,c,d)};X.prototype.setRotation=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);Qq(d,a,c)};X.prototype.normalize=X.prototype.normalize=function(){Iq(this.Tx)};X.prototype.length2=function(){return Gq(this.Tx)};X.prototype.length=X.prototype.length=function(){return Hq(this.Tx)}; +X.prototype.dot=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return Bq(c,a)};X.prototype.normalized=function(){return l(Jq(this.Tx),X)};X.prototype.getAxis=function(){return l(Eq(this.Tx),q)};X.prototype.inverse=X.prototype.inverse=function(){return l(Fq(this.Tx),X)};X.prototype.getAngle=function(){return Dq(this.Tx)};X.prototype.getAngleShortestPath=function(){return Cq(this.Tx)}; +X.prototype.angle=X.prototype.angle=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return zq(c,a)};X.prototype.angleShortestPath=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return yq(c,a)};X.prototype.op_add=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return l(Kq(c,a),X)};X.prototype.op_sub=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return l(Oq(c,a),X)}; +X.prototype.op_mul=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return l(Mq(c,a),X)};X.prototype.op_mulq=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return l(Nq(c,a),X)};X.prototype.op_div=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);return l(Lq(c,a),X)};X.prototype.x=X.prototype.x=function(){return Xq(this.Tx)};X.prototype.y=X.prototype.y=function(){return Yq(this.Tx)};X.prototype.z=X.prototype.z=function(){return Zq(this.Tx)};X.prototype.w=function(){return Wq(this.Tx)}; +X.prototype.setX=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Tq(c,a)};X.prototype.setY=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Uq(c,a)};X.prototype.setZ=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Vq(c,a)};X.prototype.setW=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Sq(c,a)};X.prototype.__destroy__=function(){xq(this.Tx)}; +function HB(a,c){a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);this.Tx=ag(a,c);k(HB)[this.Tx]=this}HB.prototype=Object.create(tA.prototype);HB.prototype.constructor=HB;HB.prototype.Ux=HB;HB.Vx={};f.btCapsuleShapeZ=HB;HB.prototype.setMargin=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ig(c,a)};HB.prototype.getMargin=function(){return eg(this.Tx)};HB.prototype.getUpAxis=function(){return gg(this.Tx)};HB.prototype.getRadius=function(){return fg(this.Tx)}; +HB.prototype.getHalfHeight=function(){return cg(this.Tx)};HB.prototype.setLocalScaling=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);hg(c,a)};HB.prototype.getLocalScaling=function(){return l(dg(this.Tx),q)};HB.prototype.calculateLocalInertia=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);bg(d,a,c)};HB.prototype.__destroy__=function(){$f(this.Tx)};function v(){throw"cannot construct a btContactSolverInfo, no constructor in IDL";} +v.prototype=Object.create(h.prototype);v.prototype.constructor=v;v.prototype.Ux=v;v.Vx={};f.btContactSolverInfo=v;v.prototype.get_m_splitImpulse=v.prototype.MA=function(){return!!Oi(this.Tx)};v.prototype.set_m_splitImpulse=v.prototype.sD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Ri(c,a)};Object.defineProperty(v.prototype,"m_splitImpulse",{get:v.prototype.MA,set:v.prototype.sD});v.prototype.get_m_splitImpulsePenetrationThreshold=v.prototype.NA=function(){return Ni(this.Tx)}; +v.prototype.set_m_splitImpulsePenetrationThreshold=v.prototype.tD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Qi(c,a)};Object.defineProperty(v.prototype,"m_splitImpulsePenetrationThreshold",{get:v.prototype.NA,set:v.prototype.tD});v.prototype.get_m_numIterations=v.prototype.yA=function(){return Mi(this.Tx)};v.prototype.set_m_numIterations=v.prototype.eD=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Pi(c,a)}; +Object.defineProperty(v.prototype,"m_numIterations",{get:v.prototype.yA,set:v.prototype.eD});v.prototype.__destroy__=function(){Li(this.Tx)};function IB(a,c,d,e,g){a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);e&&"object"===typeof e&&(e=e.Tx);g&&"object"===typeof g&&(g=g.Tx);this.Tx=void 0===e?um(a,c,d):void 0===g?_emscripten_bind_btGeneric6DofSpringConstraint_btGeneric6DofSpringConstraint_4(a,c,d,e):vm(a,c,d,e,g);k(IB)[this.Tx]=this} +IB.prototype=Object.create(DA.prototype);IB.prototype.constructor=IB;IB.prototype.Ux=IB;IB.Vx={};f.btGeneric6DofSpringConstraint=IB;IB.prototype.enableSpring=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);xm(d,a,c)};IB.prototype.setStiffness=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);Lm(d,a,c)}; +IB.prototype.setDamping=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);Em(d,a,c)};IB.prototype.setEquilibriumPoint=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);void 0===a?Fm(d):void 0===c?Gm(d,a):Hm(d,a,c)};IB.prototype.setLinearLowerLimit=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Im(c,a)}; +IB.prototype.setLinearUpperLimit=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Jm(c,a)};IB.prototype.setAngularLowerLimit=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Bm(c,a)};IB.prototype.setAngularUpperLimit=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Cm(c,a)};IB.prototype.getFrameOffsetA=function(){return l(zm(this.Tx),t)};IB.prototype.enableFeedback=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);wm(c,a)}; +IB.prototype.getBreakingImpulseThreshold=function(){return ym(this.Tx)};IB.prototype.setBreakingImpulseThreshold=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);Dm(c,a)};IB.prototype.getParam=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);return Am(d,a,c)};IB.prototype.setParam=function(a,c,d){var e=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);Km(e,a,c,d)}; +IB.prototype.__destroy__=function(){tm(this.Tx)};function JB(a){a&&"object"===typeof a&&(a=a.Tx);this.Tx=nw(a);k(JB)[this.Tx]=this}JB.prototype=Object.create(p.prototype);JB.prototype.constructor=JB;JB.prototype.Ux=JB;JB.Vx={};f.btSphereShape=JB;JB.prototype.setMargin=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);sw(c,a)};JB.prototype.getMargin=function(){return qw(this.Tx)};JB.prototype.setLocalScaling=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);rw(c,a)}; +JB.prototype.getLocalScaling=function(){return l(pw(this.Tx),q)};JB.prototype.calculateLocalInertia=function(a,c){var d=this.Tx;a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);ow(d,a,c)};JB.prototype.__destroy__=function(){mw(this.Tx)};function Z(a,c,d,e,g){a&&"object"===typeof a&&(a=a.Tx);c&&"object"===typeof c&&(c=c.Tx);d&&"object"===typeof d&&(d=d.Tx);e&&"object"===typeof e&&(e=e.Tx);g&&"object"===typeof g&&(g=g.Tx);this.Tx=Zd(a,c,d,e,g);k(Z)[this.Tx]=this}Z.prototype=Object.create(h.prototype); +Z.prototype.constructor=Z;Z.prototype.Ux=Z;Z.Vx={};f.LocalConvexResult=Z;Z.prototype.get_m_hitCollisionObject=Z.prototype.Yz=function(){return l(ae(this.Tx),r)};Z.prototype.set_m_hitCollisionObject=Z.prototype.EC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);fe(c,a)};Object.defineProperty(Z.prototype,"m_hitCollisionObject",{get:Z.prototype.Yz,set:Z.prototype.EC});Z.prototype.get_m_localShapeInfo=Z.prototype.rA=function(){return l(ee(this.Tx),RA)}; +Z.prototype.set_m_localShapeInfo=Z.prototype.YC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);je(c,a)};Object.defineProperty(Z.prototype,"m_localShapeInfo",{get:Z.prototype.rA,set:Z.prototype.YC});Z.prototype.get_m_hitNormalLocal=Z.prototype.bA=function(){return l(ce(this.Tx),q)};Z.prototype.set_m_hitNormalLocal=Z.prototype.IC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);he(c,a)};Object.defineProperty(Z.prototype,"m_hitNormalLocal",{get:Z.prototype.bA,set:Z.prototype.IC}); +Z.prototype.get_m_hitPointLocal=Z.prototype.dA=function(){return l(de(this.Tx),q)};Z.prototype.set_m_hitPointLocal=Z.prototype.KC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ie(c,a)};Object.defineProperty(Z.prototype,"m_hitPointLocal",{get:Z.prototype.dA,set:Z.prototype.KC});Z.prototype.get_m_hitFraction=Z.prototype.Zz=function(){return be(this.Tx)};Z.prototype.set_m_hitFraction=Z.prototype.FC=function(a){var c=this.Tx;a&&"object"===typeof a&&(a=a.Tx);ge(c,a)}; +Object.defineProperty(Z.prototype,"m_hitFraction",{get:Z.prototype.Zz,set:Z.prototype.FC});Z.prototype.__destroy__=function(){$d(this.Tx)};(function(){function a(){f.BT_CONSTRAINT_ERP=cA();f.BT_CONSTRAINT_STOP_ERP=eA();f.BT_CONSTRAINT_CFM=bA();f.BT_CONSTRAINT_STOP_CFM=dA();f.PHY_FLOAT=Yz();f.PHY_DOUBLE=Wz();f.PHY_INTEGER=Zz();f.PHY_SHORT=$z();f.PHY_FIXEDPOINT88=Xz();f.PHY_UCHAR=aA()}Da?a():Ba.unshift(a)})();this.Ammo=f; + + + return Ammo +} +); +})(); +export default Ammo; + + + + + + \ No newline at end of file diff --git a/packages/troika-physics/package-lock.json b/packages/troika-physics/package-lock.json new file mode 100644 index 00000000..19514954 --- /dev/null +++ b/packages/troika-physics/package-lock.json @@ -0,0 +1,12 @@ +{ + "name": "troika-physics", + "version": "0.15.1", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "ammo.js": { + "version": "github:kripken/ammo.js#41f6af637f05ea2d9dc5d568689ce50ebc4497c1", + "from": "github:kripken/ammo.js" + } + } +} diff --git a/packages/troika-physics/package.json b/packages/troika-physics/package.json new file mode 100644 index 00000000..785695c0 --- /dev/null +++ b/packages/troika-physics/package.json @@ -0,0 +1,31 @@ +{ + "name": "troika-physics", + "version": "0.15.1", + "description": "Troika Physics", + "author": "Richard Trott ", + "repository": { + "type": "git", + "url": "https://github.com/protectwise/troika.git", + "directory": "packages/troika-physics" + }, + "license": "MIT", + "main": "dist/troika-physics-ammo.umd.js", + "browser": "dist/troika-physics-ammo.umd.js", + "jsnext:main": "dist/troika-physics-ammo.esm.js", + "module": "dist/troika-physics-ammo.esm.js", + "module:es2015": "src/engines/ammo/index.js", + "dependencies": { + "ammo.js": "github:kripken/ammo.js", + "troika-3d": "^0.15.1", + "troika-core": "^0.15.0", + "troika-worker-utils": "^0.15.0", + "@hi-level/three-csg": "^1.0.6" + }, + "scripts": { + "build-ammo": "node --max-old-space-size=4096 ./build-ammo.js" + }, + "devDependencies": { + "fs-extra": "^8.1.0", + "replace-in-file": "^4.1.3" + } +} diff --git a/packages/troika-physics/rollup.build-entries.js b/packages/troika-physics/rollup.build-entries.js new file mode 100644 index 00000000..35708288 --- /dev/null +++ b/packages/troika-physics/rollup.build-entries.js @@ -0,0 +1,9 @@ +// Define custom Rollup build entry points for this package... + +module.exports = { + // Default package using the Ammo.js physics engine: + "src/engines/ammo/index.js": "troika-physics-ammo", + + // Secondary entry point for smaller Oimo.js physics engine (rigid bodies only) + // "src/engines/oimo/index.js": "troika-physics-oimo" +} \ No newline at end of file diff --git a/packages/troika-physics/src/common/constants.js b/packages/troika-physics/src/common/constants.js new file mode 100644 index 00000000..1ad751db --- /dev/null +++ b/packages/troika-physics/src/common/constants.js @@ -0,0 +1,84 @@ + +const MSG_TYPES = Object.freeze({ + RIGID_OUTPUT: 0, + SOFT_OUTPUT: 1, + COLLISION_OUTPUT: 2, + CONSTRAINT_OUTPUT: 3, + VEHICLE_OUTPUT: 4, + DEBUG_OUTPUT: 5 +}) + +const DEBUG_MAX_BUFFER_SIZE = 1000000 // Max buffer size for color and position arrays (3 dimensional) within the debug transferrable payload +const DEBUG_MSG = Object.freeze({ + NEEDS_UPDATE: 0, + DRAW_ON_TOP: 1, + GEOM_DRAW_RANGE_IDX_START: 2, + GEOM_DRAW_RANGE_IDX_END: 3, + POSITIONS_BASE: 4, + COLORS_BASE: 5 + (DEBUG_MAX_BUFFER_SIZE * 3) +}) +const DEBUG_MSG_SIZE = 0 + + 1 + // Bool (1|0) needsUpdate + 1 + // Bool (1|0) DRAW_ON_TOP + 2 + // Array ([startI, endI]) geometryDrawRange + (DEBUG_MAX_BUFFER_SIZE * 3) + // 3D positionBuffer + (DEBUG_MAX_BUFFER_SIZE * 3) // 3D colorBuffer + +const RIGID_MSG_SIZE = 14 +// [ +// facadeId, +// posX, posY, posZ, +// quatX, quatY, quatZ, quatW, +// linearVelocityX, linearVelocityY, linearVelocityZ, +// angularVelocityX, angularVelocityY, angularVelocityZ, +// ] + +const CONSTRAINT_TYPES = Object.freeze({ + POINT_TO_POINT: 0, + HINGE: 1, + SLIDER: 2, + CONE_TWIST: 3, + SIX_DOF: 4 +}) + +const SOFT_BODY_TYPE = Object.freeze({ + TRIMESH: 3, + CLOTH: 2, + ROPE: 1 +}) + +const SOFT_BODY_MSG_SIZES = Object.freeze({ + HDR: 3, // [bodyId, bodyType, updateSize (number of data points for this body), ...updateData] + TRIMESH: 6, // [vertX, vertY, vertZ, normalX, normalY, normalZ] // NOTE will change if we update to Bullet 3 and use `m_faces` + CLOTH: 6, // [vertX, vertY, vertZ, normalX, normalY, normalZ] + ROPE: 3 // [vertX, vertY, vertZ] +}) + +const CONTACT_SIZE = 0 + + 3 + // pointA XYZ + 3 + // pointB XYZ + 3 + // pointNormalXYZ + 1 + // pointImpulse, + 1 // pointForce + +const COLLISION_SIZE = 0 + + 1 + // bodyAId + 1 + // bodyBId + 1 + // num contacts + (4 * CONTACT_SIZE) // Max 4 possible collision contacts + +export default Object.freeze({ + DEFAULT_MARGIN: 0.5, + DEFAULT_GRAVITY: -9.8, // m/s^2 + MSG_HDR_SZ: 2, // Length of message header, [, , ...payload] + MSG_TYPES, + RIGID_MSG_SIZE, + DEBUG_MAX_BUFFER_SIZE, + DEBUG_MSG, + DEBUG_MSG_SIZE, + CONSTRAINT_TYPES, + SOFT_BODY_TYPE, + SOFT_BODY_MSG_SIZES, + CONTACT_SIZE, + COLLISION_SIZE +}) diff --git a/packages/troika-physics/src/common/events/CollisionEvent.js b/packages/troika-physics/src/common/events/CollisionEvent.js new file mode 100644 index 00000000..b65edee2 --- /dev/null +++ b/packages/troika-physics/src/common/events/CollisionEvent.js @@ -0,0 +1,12 @@ +import { utils } from 'troika-core' +const { assign } = utils + +export default class CollisionEvent { + constructor (eventType, target, collisionTarget, contacts, extraProps) { + this.target = target + this.collisionTarget = collisionTarget + this.collisionContacts = contacts + this.type = eventType + assign(this, extraProps) + } +} diff --git a/packages/troika-physics/src/common/facade/PhysicsManagerBase.js b/packages/troika-physics/src/common/facade/PhysicsManagerBase.js new file mode 100644 index 00000000..b6d9e2c9 --- /dev/null +++ b/packages/troika-physics/src/common/facade/PhysicsManagerBase.js @@ -0,0 +1,616 @@ +/* eslint-env browser */ +import { + Clock, + Vector3, + BufferGeometry, + BufferAttribute, + LineSegments, + LineBasicMaterial, + VertexColors +} from 'three' +import { Group3DFacade } from 'troika-3d' +import CollisionEvent from '../events/CollisionEvent' +import { inferPhysicsShape } from '../utils/inferPhysicsShape' +import CONSTANTS from '../constants' + +const sharedVec3 = new Vector3() +const DEFAULT_PHYSICS_OFF_CFG = { isDisabled: true, mass: 0 } + +const PHYSICS_FRAMERATE_HZ = 90 // Physics "frames" per second cap +const _PHYSICS_FRAMERATE_INTERVAL = 1 / PHYSICS_FRAMERATE_HZ // Seconds + +const { + MSG_HDR_SZ, + RIGID_MSG_SIZE, + DEBUG_MSG, + DEBUG_MAX_BUFFER_SIZE, + SOFT_BODY_TYPE, + SOFT_BODY_MSG_SIZES, + COLLISION_SIZE, + CONTACT_SIZE +} = CONSTANTS + +export default class PhysicsManagerBase extends Group3DFacade { + constructor (parent) { + super(parent) + + this._debugging = false + this.clock = new Clock() + this.physicsWorldReady = false + + this._physicsObjectFacadesById = Object.create(null) + this._nextBodyId = 1 // numeric index ID + this._bodyIdsToFacadeIds = {} + this._facadeIdsToBodyIds = {} + + this.tick = this.tick.bind(this) + this.initPhysics = this.initPhysics.bind(this) + this.updatePhysicsWorld = this.updatePhysicsWorld.bind(this) + this.updateDebugOptions = this.updateDebugOptions.bind(this) + this.handleInit = this.handleInit.bind(this) + this.getQueuedChanges = this.getQueuedChanges.bind(this) + + this.initPhysics().then(this.handleInit) + + this.tick() + } + + _requestPhysicsFrame (callback) { + // FIXME use world renderingScheduler for XR support (if physics updates at display rate are desired) + return window.requestAnimationFrame(callback) + } + + tick () { + // const delta = this.clock.getDelta() + const elapsed = this.clock.getElapsedTime() + const renderDelta = elapsed - this._lastUpdateTime + // Cap physics framerate to fixed target + if (renderDelta > _PHYSICS_FRAMERATE_INTERVAL) { + // this.requestPhysicsUpdate(renderDelta) + const doTick = this.physicsWorldReady && this.simulationEnabled + if (doTick) { + this.updatePhysicsWorld( + // delta, // + renderDelta, + this.getQueuedChanges() + ) + this._lastUpdateTime = elapsed + } + } + this._requestPhysicsFrame(this.tick) + } + + handleInit ({ physicsReady }) { + if (physicsReady) { + this.physicsWorldReady = true + this.clock.start() + this._lastUpdateTime = 0 + } + } + + /** + * Async request to update the Physics World. Pa + * Physics Manager implementations _must_ implement this method + * + * @memberof PhysicsManagerWorker + * @template + * @param {number} updateDeltaTime - Instruction to advance the physics simulation by this amount of time. Milliseconds since most recent update call. + */ + updatePhysicsWorld (updateDeltaTime) { + throw new Error('PhysicsManager extensions must implement the `updatePhysicsWorld` method') + } + + /** + * Async request to update the Physics World. Pa + * Physics Manager implementations _must_ implement this method + * + * @memberof PhysicsManagerWorker + * @template + * @param {number} debuggerOptions + */ + updateDebugOptions (options) { + throw new Error('PhysicsManager extensions must implement the `updateDebugOptions` method') + } + + /** + * Intercept child `notifyWorld` calls, + * forwarding unhandled messages up to parents + */ + onNotifyWorld (source, message, data) { + const handler = this._notifyWorldHandlers[message] + const listener = this._notifyWorldListeners[message] // "Soft" handler that does not intercept "event" bubbling up to parents + if (handler) { + handler.call(this, source, data) + return + } + if (listener) { + listener.call(this, source, data) + } + if (this.parent) { + this.parent.onNotifyWorld(source, message, data) + } + } + + // get simulationEnabled () { + // return this._simulationEnabled + // } + + // set simulationEnabled (isEnabled) { + // this._simulationEnabled = isEnabled + // if (isEnabled) { + // this.notifyWorld('needsRender') + // } + // } + + set debug (isDebugging) { + if (isDebugging !== this._debugging) { + if (isDebugging) { + if (!this._debuggerMesh) { + const drawOnTop = false + const geometry = new BufferGeometry() + const vertices = new Float32Array(DEBUG_MAX_BUFFER_SIZE * 3) + const colors = new Float32Array(DEBUG_MAX_BUFFER_SIZE * 3) + geometry.addAttribute('position', new BufferAttribute(vertices, 3).setDynamic(true)) + geometry.addAttribute('color', new BufferAttribute(colors, 3).setDynamic(true)) + + const material = new LineBasicMaterial({ + vertexColors: VertexColors, + depthTest: !drawOnTop + // depthWrite: false, + // side: BackSide + }) + + this._debuggerMesh = new LineSegments(geometry, material) + if (drawOnTop) { + this._debuggerMesh.renderOrder = 999 + } + this._debuggerMesh.frustumCulled = false + + this._parentObject3DFacade.threeObject.add(this._debuggerMesh) + } + } else { + this._parentObject3DFacade.threeObject.remove(this._debuggerMesh) + delete this._debuggerMesh + } + + // Notify the engine about the debug change + this.updateDebugOptions({ + enabled: isDebugging + }) + } + this._debugging = isDebugging + } + + get debug () { + return this._debugging + } + + handleRigidBodiesUpdate (rigidBodies, numBodies) { + let index = numBodies + + while (index--) { + const offset = MSG_HDR_SZ + index * RIGID_MSG_SIZE + const bodyId = rigidBodies[offset + 0] + if (bodyId === 0) { + continue + } + const facadeId = this._bodyIdsToFacadeIds[bodyId] + const facade = this._physicsObjectFacadesById[facadeId] + + if (facade && !facade.physics.isKinematic) { + facade.$isPhysicsControlled = true + + facade.threeObject.position.set( + rigidBodies[offset + 1], + rigidBodies[offset + 2], + rigidBodies[offset + 3] + ) + facade.threeObject.quaternion.set( + rigidBodies[offset + 4], + rigidBodies[offset + 5], + rigidBodies[offset + 6], + rigidBodies[offset + 7] + ) + + // TODO pass down linearVelocity and angularVelocity data (offsets 8-13)? + + if (!facade._matrixChanged) { + facade._matrixChanged = true + } + facade.afterUpdate() + } + } + } + + handleSoftBodiesUpdate (bodyUpdate, numBodies) { + let index = numBodies + let offset = MSG_HDR_SZ + + while (index--) { + const bodyId = bodyUpdate[offset] // SOFT_BODY_MSG_SIZES.HDR[0] + const softBodyType = bodyUpdate[offset + 1] // SOFT_BODY_MSG_SIZES.HDR[1] + const bodyUpdateSize = bodyUpdate[offset + 2] // SOFT_BODY_MSG_SIZES.HDR[2] Will vary based on number of mesh vertices + if (bodyId === 0) { + continue + } + const facadeId = this._bodyIdsToFacadeIds[bodyId] + const facade = this._physicsObjectFacadesById[facadeId] + + if (facade && !facade.physics.isKinematic) { + facade.$isPhysicsControlled = true + + const geom = facade.threeObject.geometry + const volumePositions = geom.attributes.position.array + const association = geom.$physicsIndexAssociation + + const offsetVert = offset + SOFT_BODY_MSG_SIZES.HDR + + // if (!data.isSoftBodyReset) { + // object.position.set(0, 0, 0); + // object.quaternion.set(0, 0, 0, 0); + + // data.isSoftBodyReset = true; + // } + + switch (softBodyType) { + case SOFT_BODY_TYPE.TRIMESH: // TODO if we update to Bullet 3+, use `m_faces` for triangle meshes. Currently it uses the same strategy as a 2d cloth + case SOFT_BODY_TYPE.CLOTH: { + const volumeNormals = geom.attributes.normal.array + + for (let assocVertexI = 0, numAssocVertices = association.length; assocVertexI < numAssocVertices; assocVertexI++) { + const assocVertex = association[assocVertexI] + const offs = offsetVert + (assocVertexI * SOFT_BODY_MSG_SIZES.TRIMESH) + + let x = bodyUpdate[offs + 0] + let y = bodyUpdate[offs + 1] + let z = bodyUpdate[offs + 2] + const nx = bodyUpdate[offs + 3] + const ny = bodyUpdate[offs + 4] + const nz = bodyUpdate[offs + 5] + + // Translate world-space coords back to local + sharedVec3.set(x, y, z) + facade.threeObject.worldToLocal(sharedVec3) + x = sharedVec3.x + y = sharedVec3.y + z = sharedVec3.z + + for (let k = 0, kl = assocVertex.length; k < kl; k++) { + let indexVertex = assocVertex[k] + + volumePositions[indexVertex] = x + volumeNormals[indexVertex] = nx + indexVertex++ + volumePositions[indexVertex] = y + volumeNormals[indexVertex] = ny + indexVertex++ + volumePositions[indexVertex] = z + volumeNormals[indexVertex] = nz + } + } + + geom.attributes.normal.needsUpdate = true + offset += SOFT_BODY_MSG_SIZES.HDR + (bodyUpdateSize * SOFT_BODY_MSG_SIZES.TRIMESH) + + break + } + case SOFT_BODY_TYPE.ROPE: { + for (let assocVertexI = 0, numAssocVertices = association.length; assocVertexI < numAssocVertices; assocVertexI++) { + const assocVertex = association[assocVertexI] + const offs = offsetVert + (assocVertexI * SOFT_BODY_MSG_SIZES.ROPE) + + // if (isNaN(bodyUpdate[offs + 0])) { + // return + // } + + let x = bodyUpdate[offs + 0] + let y = bodyUpdate[offs + 1] + let z = bodyUpdate[offs + 2] + + // Translate world-space coords back to local + sharedVec3.set(x, y, z) + facade.threeObject.worldToLocal(sharedVec3) + x = sharedVec3.x + y = sharedVec3.y + z = sharedVec3.z + + for (let k = 0, kl = assocVertex.length; k < kl; k++) { + let indexVertex = assocVertex[k] + + volumePositions[indexVertex] = x + indexVertex++ + volumePositions[indexVertex] = y + indexVertex++ + volumePositions[indexVertex] = z + } + } + + offset += SOFT_BODY_MSG_SIZES.HDR + (bodyUpdateSize * SOFT_BODY_MSG_SIZES.ROPE) + + break + } + default: + console.error(`Unknown Soft Body Type: ${softBodyType}`) + break + } + + geom.attributes.position.needsUpdate = true + + if (!facade._matrixChanged) { + facade._matrixChanged = true + } + facade.afterUpdate() + } + } + } + + handleDebugUpdate (debugData) { + const needsUpdate = Boolean(debugData[MSG_HDR_SZ + DEBUG_MSG.NEEDS_UPDATE]) + if (!this._debuggerMesh || !needsUpdate) { + return + } + + const drawOnTop = Boolean(debugData[MSG_HDR_SZ + DEBUG_MSG.DRAW_ON_TOP]) + const startIndex = debugData[MSG_HDR_SZ + DEBUG_MSG.GEOM_DRAW_RANGE_IDX_START] + const endIndex = debugData[MSG_HDR_SZ + DEBUG_MSG.GEOM_DRAW_RANGE_IDX_END] + const positionOffset = MSG_HDR_SZ + DEBUG_MSG.POSITIONS_BASE + const colorOffset = MSG_HDR_SZ + DEBUG_MSG.COLORS_BASE + + const _p = this._debuggerMesh.geometry.attributes.position.array + const _c = this._debuggerMesh.geometry.attributes.color.array + + for (let i = startIndex; i < (endIndex * 3); i++) { + _p[i] = debugData[positionOffset + i] + _c[i] = debugData[colorOffset + i] + } + + this._debuggerMesh.geometry.attributes.position.needsUpdate = true + this._debuggerMesh.geometry.attributes.color.needsUpdate = true + + this._debuggerMesh.geometry.setDrawRange(startIndex, endIndex) + + this._debuggerMesh.material.depthTest = !drawOnTop + + if (drawOnTop) { + this._debuggerMesh.renderOrder = 999 + } + } + + _fireCollisionEvent (bodyId, otherBodyId, contacts) { + // Fire onCollision event for each facade that registered for the event + const facadeId = this._bodyIdsToFacadeIds[bodyId] + const otherFacadeId = this._bodyIdsToFacadeIds[otherBodyId] + const targetFacade = this._physicsObjectFacadesById[facadeId] + const collisionFacade = this._physicsObjectFacadesById[otherFacadeId] + if (!targetFacade || !collisionFacade) { + return + } + const newEvent = new CollisionEvent( + 'collision', + targetFacade, + collisionFacade, + contacts + ) + function callHandler (handler) { + handler.call(targetFacade, newEvent) + } + this.notifyWorld('dispatchEvent', { + targetFacade, + type: 'collision', + handler: callHandler + }) + } + + handleCollisionsUpdate (data, numCollisions) { + let index = numCollisions + + while (index--) { + const offset = MSG_HDR_SZ + (index * COLLISION_SIZE) + const bodyAId = data[offset + 0] + const bodyBId = data[offset + 1] + const numContacts = data[offset + 2] + const contacts = new Array(numContacts) + for (let contactIdx = 0; contactIdx < numContacts; contactIdx++) { + const contactOffset = offset + 3 + (CONTACT_SIZE * contactIdx) + contacts[contactIdx] = { + // World-space position of contact on the receiving object (Object A) + targetXYZ: [ + data[contactOffset + 0], + data[contactOffset + 1], + data[contactOffset + 2] + ], + // World-space position of contact on the colliding object (Object B) + sourceXYZ: [ + data[contactOffset + 3], + data[contactOffset + 4], + data[contactOffset + 5] + ], + // World-space normal vector. + // The normal is pointing from Object B towards Object A. + // https://pybullet.org/Bullet/phpBB3/viewtopic.php?t=6620 + normalXYZ: [ + data[contactOffset + 6], + data[contactOffset + 7], + data[contactOffset + 8] + ], + impulse: data[contactOffset + 9], // N•s + force: data[contactOffset + 10] // N + } + } + + // Fire a collision event for both participants + this._fireCollisionEvent(bodyAId, bodyBId, contacts) + this._fireCollisionEvent(bodyBId, bodyAId, contacts) + } + } + + /** + * Handle child physics objects being added, removed, or updated + * + * @param {string} changeType ('add'|'update'|'remove') + * @param {Facade} facade + * @param {array} args + * @template + */ + queuePhysicsWorldChange (changeType, facade, args) { + const changes = this._physicsBodyChangeset || (this._physicsBodyChangeset = {}) + const changeSet = changes[changeType] || (changes[changeType] = Object.create(null)) + + switch (changeType) { + case 'update': { + changeSet[facade.$facadeId] = facade + break + } + case 'remove': { + facade.$isPhysicsControlled = false + delete facade.$physicsBodyId + + delete this._facadeIdsToBodyIds[facade.$facadeId] + delete this._physicsObjectFacadesById[facade.$facadeId] + delete this._bodyIdsToFacadeIds[facade.$physicsBodyId] + + changeSet[facade.$facadeId] = facade + break + } + case 'add': { + const bodyId = this._nextBodyId++ + + this._bodyIdsToFacadeIds[bodyId] = facade.$facadeId + this._facadeIdsToBodyIds[facade.$facadeId] = bodyId + this._physicsObjectFacadesById[facade.$facadeId] = facade + + facade.$physicsBodyId = bodyId + changeSet[facade.$facadeId] = facade + break + } + case 'listenerAdd': { + changeSet[facade.$facadeId] = facade + break + } + case 'listenerRemove': { + changeSet[facade.$facadeId] = facade + break + } + default: { + console.error(`Unrecognized changeType: ${changeType}`) + } + } + } + + getQueuedChanges () { + if (this.physicsWorldReady && this._physicsBodyChangeset) { + const payload = Object.create(null) + const { + add, + remove, + update, + listenerAdd, + listenerRemove + } = this._physicsBodyChangeset + + if (add) { + payload.add = Object.keys(add).map(facadeId => { + const facade = this._physicsObjectFacadesById[facadeId] + if (facade && !facade.isDestroying && !(remove && remove[facadeId])) { + facade.physics = facade.physics || DEFAULT_PHYSICS_OFF_CFG + if (!facade.$physicsShapeConfig) { + facade.$physicsShapeConfig = inferPhysicsShape(facade) + } + + return { + facadeId: facadeId, + bodyId: facade.$physicsBodyId, + shapeConfig: facade.$physicsShapeConfig, + physicsConfig: facade.physics, + initialMatrixWorld: facade.threeObject.matrixWorld.elements + } + } + }) + } + if (update) { + payload.update = Object.keys(update).reduce((output, facadeId) => { + const facade = this._physicsObjectFacadesById[facadeId] + if (facade) { + const _update = { + facadeId: facadeId, + bodyId: facade.$physicsBodyId + } + if (facade.$physicsDirty_Config) { + _update.physicsConfig = facade.physics + } + if (facade.$physicsDirty_Matrix) { + _update.matrix = facade.threeObject.matrixWorld.elements + } + if (facade.$physicsDirty_Scale) { + _update.scale = [facade.scaleX, facade.scaleY, facade.scaleZ] + } + output.push(_update) + } else { + console.warn(`troika-physics: Update queued for unknown facade (not current in _physicsObjectFacadesById): "${facadeId}"`) + } + return output + }, []) + } + if (remove) { + payload.remove = Object.keys(remove) + } + if (listenerAdd) { + payload.listenerAdd = Object.keys(listenerAdd) + } + if (listenerRemove) { + payload.listenerRemove = Object.keys(listenerRemove) + } + + this._physicsBodyChangeset = null + return payload + } + return null + } + + destructor () { + for (const facadeId in this._physicsObjectFacadesById) { + const facade = this._physicsObjectFacadesById[facadeId] + delete facade.$physicsBodyId + facade.$isPhysicsControlled = false // release physics control of pos/rot props + } + + this._physicsObjectFacadesById = Object.create(null) + this._nextBodyId = 1 + this._bodyIdsToFacadeIds = {} + this._facadeIdsToBodyIds = {} + + super.destructor() + } +} + +PhysicsManagerBase.prototype._notifyWorldListeners = { + addEventListener (source, data) { + if (data.type === 'collision') { + this.queuePhysicsWorldChange('listenerAdd', source) + } + }, + removeEventListener (source, data) { + if (data.type === 'collision') { + this.queuePhysicsWorldChange('listenerRemove', source) + } + }, + removeAllEventListeners (source) { + this.queuePhysicsWorldChange('listenerRemove', source) + } +} + +PhysicsManagerBase.prototype._notifyWorldHandlers = { + physicsObjectAdded (source) { + this.queuePhysicsWorldChange('add', source) + }, + physicsObjectRemoved (source) { + this.queuePhysicsWorldChange('remove', source) + }, + physicsObjectNeedsUpdate (source) { + this.queuePhysicsWorldChange('update', source) + } + // updatePhysicsShape (source, shapeMethodConfig) { + // const facadeId = source.$facadeIdå + // this.request('updatePhysicsShape', [facadeId, shapeMethodConfig]) + // } +} diff --git a/packages/troika-physics/src/common/facade/PhysicsObject.js b/packages/troika-physics/src/common/facade/PhysicsObject.js new file mode 100644 index 00000000..ecc01bca --- /dev/null +++ b/packages/troika-physics/src/common/facade/PhysicsObject.js @@ -0,0 +1,129 @@ +import { Facade, utils } from 'troika-core' + +const { createClassExtender } = utils + +/** + * Extends a given Facade class to become a `PhysicsObjectFacade`, allowing it to + * have its position and rotation controlled by a `PhysicsManager`. + * + * Physical property configuration + + * physics: { + * isDisabled: boolean // When toggled, will delete/add the shape from the Physics World, + * isPaused: boolean // When toggled, will change the activation state of the shape, potentially allowing it to passively receive collisions from other shapes + * isKinematic: boolean // Kinematic bodies will interact with dynamic objects in the physicsWorld, but have their position/orientation controlled by the facade parent. + * isStatic: boolean // Static bodies will interact with dynamic objects in the physicsWorld, but have their position/orientation fixed in place. + * isSoftBody: boolean default=false + * + * mass: number // kilograms + * + * friction: float (0-1) default=0.5 + * rollingFriction: float(0-1) default=0 + * spinningFriction: float(0-1) default=0 + * + * restitution: float (0-1) default=0 "bounciness" of an object + * + * // Rigid Bodies only + * linearDamping: float(0-1) default=0 // Additional "drag" friction applied to linear (translation) motion. Applied even when bodies are not colliding. + * angularDamping: float(0-1) default=0 // Additional "drag" friction applied to angular (rotation) motion. Applied even when bodies are not colliding. + * + * // Soft Bodies only + * pressure: float(-Infinity,+Infinity] default=100 // Pressure coefficient of soft volume + * } + * + * @param {class} BaseFacadeClass + * @return {PhysicsObjectFacade} a new class that extends the BaseFacadeClass + */ +export const extendAsPhysical = createClassExtender('physical', BaseFacadeClass => { + class PhysicsObjectFacade extends BaseFacadeClass { + constructor (parent, threeObject) { + super(parent, threeObject) + + this.$isPhysicsControlled = false // Managed by PhysicsManager + + this._prevScaleX = this.scaleX + this._prevScaleY = this.scaleY + this._prevScaleZ = this.scaleZ + + this.notifyWorld('physicsObjectAdded') + } + + set physics (desc = {}) { + this._physicsConfigId = JSON.stringify(desc) + this._physicsConfig = desc + } + + get physics () { + return this._physicsConfig + } + + afterUpdate () { + const _prevWorldMatrixVersion = this._worldMatrixVersion + + super.afterUpdate() + + let _needsPhysicsUpdate = false + if (this._worldMatrixVersion !== _prevWorldMatrixVersion) { + const scaleChanged = this._prevScaleX !== this.scaleX || this._prevScaleY !== this.scaleY || this._prevScaleZ !== this.scaleZ + // Dynamic objects (controlled by the dynamicsWorld) need to receive troika-managed scale changes + // if (this.$isPhysicsControlled && scaleChanged) { + if (scaleChanged) { + // https://pybullet.org/Bullet/BulletFull/classbtCollisionShape.html + // NOTE: btSphereShape does NOT support non-uniform scaling (scaleX/Y/Z must be identical) + _needsPhysicsUpdate = true + this.$physicsDirty_Scale = true + + this._prevScaleX = this.scaleX + this._prevScaleY = this.scaleY + this._prevScaleZ = this.scaleZ + } + // Kinematic or Static objects that exist in the dynamicsWorld (OR dynamic objects that have yet to be registered within the dynamicsWorld) + // but are not controlled/influenced by it (they _do_ influence dynamic objects) + // need their full position/orientation/scale matrix updated + if (!this.$isPhysicsControlled) { + _needsPhysicsUpdate = true + this.$physicsDirty_Matrix = true + } + } + + if (this._physicsConfigId) { + if (this._physicsConfigIdPrev && this._physicsConfigId !== this._physicsConfigIdPrev) { + this.$physicsDirty_Config = true + _needsPhysicsUpdate = true + } + this._physicsConfigIdPrev = this._physicsConfigId + } + + if (_needsPhysicsUpdate) { + this.notifyWorld('physicsObjectNeedsUpdate') + } + } + + destructor () { + this.notifyWorld('physicsObjectRemoved') + super.destructor() + } + } + + // Ignore any parent-set position/orientation props when + // facade is under control of the Physics/Dynamics world + ;[ + 'x', 'y', 'z', + 'quaternionX', 'quaternionY', 'quaternionZ', 'quaternionW', + 'rotateX', 'rotateY', 'rotateZ' /* 'rotateOrder */ + ].forEach(function (controlledProp) { + Object.defineProperty(PhysicsObjectFacade.prototype, controlledProp, { + get: function () { + return Reflect.get(BaseFacadeClass.prototype, controlledProp, this) + }, + set: function (value) { + if (this.$isPhysicsControlled) return // dynamicsWorld is driving this property, user/troika-set updates are ignored + Reflect.set(BaseFacadeClass.prototype, controlledProp, value, this) + } + }) + }) + + Facade.defineEventProperty(PhysicsObjectFacade, 'onCollision', 'collision') + + return PhysicsObjectFacade +}) diff --git a/packages/troika-physics/src/common/utils/inferPhysicsShape.js b/packages/troika-physics/src/common/utils/inferPhysicsShape.js new file mode 100644 index 00000000..bec3d036 --- /dev/null +++ b/packages/troika-physics/src/common/utils/inferPhysicsShape.js @@ -0,0 +1,225 @@ +import { Vector3, BufferGeometry } from 'three' +import processGeometry from './processGeometryForPhysics' +import { CSG } from '@hi-level/three-csg' +import CONSTANTS from '../constants' + +function getThreeObject (facade) { + if (facade.instancedThreeObject) { + return facade.instancedThreeObject + } else if (facade.threeObject) { + return facade.threeObject + } +} + +function inferRigidBodyShape (geometry, threeObject) { + const { + type, + parameters + } = geometry + + switch (type) { + case 'SphereBufferGeometry': + case 'SphereGeometry': + return { + shape: 'sphere', + args: [parameters.radius || 1] + } + case 'BoxBufferGeometry': + case 'BoxGeometry': + return { + shape: 'box', + args: [{ + method: 'Vector3', + args: [ + parameters.width / 2, + parameters.height / 2, + parameters.depth / 2 + ] + }] + } + case 'CylinderBufferGeometry': + case 'CylinderGeometry': + return { + shape: 'cylinder', + args: [{ + method: 'Vector3', + args: [ + parameters.radiusTop, + parameters.height / 2, // Half-extents + parameters.radiusTop + ] + }] + } + // TODO collider for non-infinite threeJS planes -- box2dShape? + // case 'PlaneGeometry': + // case 'PlaneBufferGeometry': + // return { + // shape: 'plane', + // args: [{ + // method: 'Vector3', + // args: [ + // parameters.width / 2, + // parameters.height / 2, + // ] + // }] + // } + case 'Geometry': + case 'BufferGeometry': + return { + shape: 'convex-hull', // Fallback to implicit convex hull. + args: [ + getWorldVertices(geometry, threeObject) + ] + } + default: + console.warn(`Unable to infer physics shape for type "${type}", falling back to convex hull.`) + // Fallback to convex hull. Note that this will "cover" any concave portions of a mesh, + // possibly resulting in a less than desirable collision shape. + return { + shape: 'convex-hull', + args: [ + getWorldVertices(geometry, threeObject) + ] + } + } +} + +function getWorldVertices (geometry, threeObject) { + if (!geometry.isBufferGeometry) { + geometry = new BufferGeometry().fromGeometry(geometry) + } + processGeometry(geometry) + + const sharedVec = new Vector3() + const verts = geometry.$physicsVertices + + // Apply world transformation to all vertices + for (let i = 0; i < verts.length; i += 3) { + const x = verts[i + 0] + const y = verts[i + 1] + const z = verts[i + 2] + + sharedVec.set(x, y, z) + threeObject.localToWorld(sharedVec) // Translate local-space coords to world for physicsWorld + + verts[i + 0] = sharedVec.x + verts[i + 1] = sharedVec.y + verts[i + 2] = sharedVec.z + } + + return { + vertices: verts, // Float32Array + indices: geometry.$physicsIndices, // Uint16Array + numTris: geometry.$physicsIndices.length / 3 + // associations: geometry.$physicsIndexAssociation + } +} + +function unifyChildGeometries (groupFacade, threeObject) { + let combinedBSP + const outputMatrix = threeObject.matrixWorld + + for (let i = 0, numChildren = groupFacade._orderedChildKeys.length; i < numChildren; i++) { + const childKey = groupFacade._orderedChildKeys[i] + const child = groupFacade._childrenDict[childKey] + let childBSP = null + + if (child.instancedThreeObject) { + const origMatrix = child.instancedThreeObject.matrix + const origMatrixWorld = child.instancedThreeObject.matrixWorld + child.instancedThreeObject.matrix = child.threeObject.matrix + child.instancedThreeObject.matrixWorld = child.threeObject.matrixWorld + childBSP = CSG.fromMesh(child.instancedThreeObject) + child.instancedThreeObject.matrixWorld = origMatrix + child.instancedThreeObject.matrixWorld = origMatrixWorld + } else { + childBSP = CSG.fromMesh(child.threeObject) + } + + if (!combinedBSP) { + combinedBSP = childBSP + // outputMatrix = child.matrixWorld // Result object will use the transformation matrix of the first child + } else { + combinedBSP = combinedBSP.union(childBSP) + } + } + + const outputMesh = CSG.toMesh(combinedBSP, outputMatrix) + + return getWorldVertices(outputMesh.geometry, threeObject) +} + +const DEFAULT_COMPOUND_CHILD_MASS = 1 + +function inferPhysicsGroup (facade, threeObject) { + if (facade.physics && facade.physics.isStatic) { + // Static groups perform better as a merged btBvhTriangleMeshShape instead of a compound collision shape + const combinedGeometry = unifyChildGeometries(facade, threeObject) + + return { + shape: 'bvh-tri-mesh', + args: [combinedGeometry] + } + } else { + // TODO determine best guess between combined-geometry btGimpactShape (which supports dynamics), or a Compound Shape + const USE_COMPOUND_SHAPE = true + + if (USE_COMPOUND_SHAPE) { + // Construct a CompoundShape collider by inferring all of this Group's child shapes. + const args = threeObject.children.map(child => { + if (child.scale.x !== 1 || child.scale.y !== 1 || child.scale.z !== 1) { + console.warn('WARNING: Compound physics shapes do not work well with object scaling. You will likely notice undesired behavior.') + } + + // const trans = new Vector3() + // const rot = new Quaternion() + // const scale = new Vector3() + // child.matrixWorld.decompose(trans, rot, scale) + // const zeroScale = new Vector3(0, 0, 0) + // const t = new Matrix4().compose(trans, rot, zeroScale) + + return [ + inferPhysicsShape(child.$facade), + [child.position.x, child.position.y, child.position.z], + [child.quaternion.x, child.quaternion.y, child.quaternion.z, child.quaternion.w], + [child.scale.x, child.scale.y, child.scale.z], + (child.physics && child.physics.mass) || DEFAULT_COMPOUND_CHILD_MASS + ] + }) + + return { + shape: 'compound', + args: args + } + } else { + // TODO Ammo/bullet gImpactShape from combined geometries + return { + shape: 'combined-geometry' + } + } + } +} + +export function inferPhysicsShape (facade) { + const threeObject = getThreeObject(facade) + + if (threeObject.type === 'Group') { + return inferPhysicsGroup(facade, threeObject) + } + + const geometry = threeObject.geometry + + if (facade.physics && facade.physics.isSoftBody) { + if (!geometry.isBufferGeometry) { + console.error('troika-physics soft volumes only support threeJS BufferGeometry instances') + return { vertices: [], indices: [], numTris: 0 } + } + const isRope = threeObject.type === 'LineSegments' || threeObject.type === 'Line' + if (isRope) { + facade.physics.softBodyType = CONSTANTS.SOFT_BODY_TYPE.ROPE + } + return getWorldVertices(geometry, threeObject) + } else { + return inferRigidBodyShape(geometry, threeObject) + } +} diff --git a/packages/troika-physics/src/common/utils/processGeometryForPhysics.js b/packages/troika-physics/src/common/utils/processGeometryForPhysics.js new file mode 100644 index 00000000..a350c1b9 --- /dev/null +++ b/packages/troika-physics/src/common/utils/processGeometryForPhysics.js @@ -0,0 +1,53 @@ +import { BufferGeometry } from 'three' +import { BufferGeometryUtils } from 'three/examples/jsm/utils/BufferGeometryUtils' + +/* Source: https://github.com/mrdoob/three.js/blob/master/examples/webgl_physics_volume.html */ + +function isEqual (x1, y1, z1, x2, y2, z2) { + var delta = 0.000001 + return Math.abs(x2 - x1) < delta && + Math.abs(y2 - y1) < delta && + Math.abs(z2 - z1) < delta +} + +function mapIndices (bufGeometry, indexedBufferGeom) { + // Creates $physicsVertices, $physicsIndices and $physicsIndexAssociation in bufGeometry + var vertices = bufGeometry.attributes.position.array + var idxVertices = indexedBufferGeom.attributes.position.array + var indices = indexedBufferGeom.index.array + var numIdxVertices = idxVertices.length / 3 + var numVertices = vertices.length / 3 + bufGeometry.$physicsVertices = idxVertices + bufGeometry.$physicsIndices = indices + bufGeometry.$physicsIndexAssociation = [] + for (var i = 0; i < numIdxVertices; i++) { + var association = [] + bufGeometry.$physicsIndexAssociation.push(association) + var i3 = i * 3 + for (var j = 0; j < numVertices; j++) { + var j3 = j * 3 + if (isEqual(idxVertices[i3], idxVertices[i3 + 1], idxVertices[i3 + 2], + vertices[j3], vertices[j3 + 1], vertices[j3 + 2])) { + association.push(j3) + } + } + } +} + +/** + * Process a Geometry's Vertices and Normals to prepare them to be driven by a Collision Body in + * the PhysicsWorld + * + * @export + * @param {THREE.BufferGeometry} bufGeometry ThreeJS BufferGeometry (or derivative) to be processed. + */ +export default function processGeometry (bufGeometry) { + // Ony consider the position values when merging the vertices + var posOnlyBufGeometry = new BufferGeometry() + posOnlyBufGeometry.addAttribute('position', bufGeometry.getAttribute('position')) + posOnlyBufGeometry.setIndex(bufGeometry.getIndex()) + // Merge the vertices so the triangle soup is converted to indexed triangles + var indexedBufferGeom = BufferGeometryUtils.mergeVertices(posOnlyBufGeometry) + // Create index arrays mapping the indexed vertices to bufGeometry vertices + mapIndices(bufGeometry, indexedBufferGeom) +} diff --git a/packages/troika-physics/src/engines/ammo/PhysicsManagerAmmo.js b/packages/troika-physics/src/engines/ammo/PhysicsManagerAmmo.js new file mode 100644 index 00000000..905d078c --- /dev/null +++ b/packages/troika-physics/src/engines/ammo/PhysicsManagerAmmo.js @@ -0,0 +1,113 @@ +/* eslint-env browser */ +import { defineWorkerModule, getWorker, terminateWorkerById } from 'troika-worker-utils' +import PhysicsManagerBase from '../../common/facade/PhysicsManagerBase' +import { physicsWorldAmmoModule, WORKER_ID } from './worker/PhysicsWorldAmmo.worker.js' +import CONSTANTS from '../../common/constants' + +let workerId = 1 + +const { + MSG_TYPES +} = CONSTANTS + +const ENABLE_DEBUGGER = Boolean(process.env.NODE_ENV === 'development' || localStorage.getItem('troika-physics:forceDebugEnabled')) + +export class PhysicsManagerAmmo extends PhysicsManagerBase { + initPhysics () { + if (!this.physicsWorkerModule) { + this.workerId = `${WORKER_ID}-${workerId++}` + + const initPhysicsWorkerModule = defineWorkerModule(Object.assign( + {}, + physicsWorldAmmoModule, + { workerId: this.workerId } + )) + + const worker = getWorker(this.workerId) + + this.updatePhysicsWorld = (deltaTime, updateChangeset) => { + worker.postMessage({ + method: 'updatePhysicsWorld', + args: [deltaTime, updateChangeset] + }) + } + + this.updateDebugOptions = (debugOptions) => { + worker.postMessage({ + method: 'updateDebugOptions', + args: [debugOptions] + }) + } + + const _returnTransferable = payload => { + if (!payload.buffer) { + throw new Error('PhysicsManager: _returnTransferable is only for Transferable Typed Arrays') + } + if (payload.buffer.byteLength === 0) { + console.warn('PhysicsManagerAmmo: Transferable array has zero byte length, it may still be in-use in the worker thread.') + return + } + worker.postMessage(payload.buffer, [payload.buffer]) + } + + const _oldOnMessageHandler = worker.onmessage + + worker.onmessage = e => { + let { data } = e + let _messageHandled = false + + // byteLength === 1 is the worker making a SUPPORT_TRANSFERABLE test + if (data instanceof ArrayBuffer && data.byteLength !== 1) { + data = new Float32Array(data) + } + + if (data instanceof Float32Array) { + _messageHandled = true + + switch (data[0]) { + case MSG_TYPES.RIGID_OUTPUT: + this.handleRigidBodiesUpdate(data, data[1]) + _returnTransferable(data) + break + case MSG_TYPES.SOFT_OUTPUT: + this.handleSoftBodiesUpdate(data, data[1]) + _returnTransferable(data) + break + case MSG_TYPES.DEBUG_OUTPUT: { + this.handleDebugUpdate(data) + _returnTransferable(data) + break + } + case MSG_TYPES.COLLISION_OUTPUT: + this.handleCollisionsUpdate(data, data[1]) + _returnTransferable(data) + break + default: + console.warn(`Unrecognized transferrable message type: ${data[0]}`) + break + } + } + + if (_messageHandled) { + // If we handled the message, do not allow it to propagate to WorkerModule + return + } + + _oldOnMessageHandler.call(worker, e) + } + + return initPhysicsWorkerModule({ + enableDebugger: ENABLE_DEBUGGER + }) + } else { + console.warn('PhysicsManagerAmmo: init called but there is a PhysicsWorker already running') + return Promise.resolve({ physicsReady: true }) + } + } + + destructor () { + terminateWorkerById(this.workerId) + delete this.physicsWorkerModule + super.destructor() + } +} diff --git a/packages/troika-physics/src/engines/ammo/ammoConstants.js b/packages/troika-physics/src/engines/ammo/ammoConstants.js new file mode 100644 index 00000000..8ccd7155 --- /dev/null +++ b/packages/troika-physics/src/engines/ammo/ammoConstants.js @@ -0,0 +1,32 @@ +// More info on states https://pybullet.org/Bullet/phpBB3/viewtopic.php?t=6221 +const ACTIVATION_STATES = Object.freeze({ + ACTIVE_TAG: 1, + ISLAND_SLEEPING: 2, + WANTS_DEACTIVATION: 3, // Don't manually set this + DISABLE_DEACTIVATION: 4, + DISABLE_SIMULATION: 5 +}) + +const COLLISION_FLAGS = Object.freeze({ + CF_STATIC_OBJECT: 1, + CF_KINEMATIC_OBJECT: 2, + CF_NO_CONTACT_RESPONSE: 4, + CF_CUSTOM_MATERIAL_CALLBACK: 8, + CF_CHARACTER_OBJECT: 16, + CF_DISABLE_VISUALIZE_OBJECT: 32, + CF_DISABLE_SPU_COLLISION_PROCESSING: 64, + CF_HAS_CONTACT_STIFFNESS_DAMPING: 128, + CF_HAS_CUSTOM_DEBUG_RENDERING_COLOR: 256, + CF_HAS_FRICTION_ANCHOR: 512, + CF_HAS_COLLISION_SOUND_TRIGGER: 1024 +}) + +export default Object.freeze({ + DEFAULT_ACTIVATION_STATE: ACTIVATION_STATES.ACTIVE_TAG, // DISABLE_DEACTIVATION, + ACTIVATION_STATES, + COLLISION_FLAGS, + // Map generic method names used by troika-physics to this physics engine + METHODS_TO_AMMO: Object.freeze({ + Vector3: 'btVector3' + }) +}) diff --git a/packages/troika-physics/src/engines/ammo/index.js b/packages/troika-physics/src/engines/ammo/index.js new file mode 100644 index 00000000..91617775 --- /dev/null +++ b/packages/troika-physics/src/engines/ammo/index.js @@ -0,0 +1,2 @@ +export { PhysicsManagerAmmo as PhysicsManager } from './PhysicsManagerAmmo' +export { extendAsPhysical } from '../../common/facade/PhysicsObject' diff --git a/packages/troika-physics/src/engines/ammo/worker/AmmoDebugDrawer.js b/packages/troika-physics/src/engines/ammo/worker/AmmoDebugDrawer.js new file mode 100644 index 00000000..ce5fa36a --- /dev/null +++ b/packages/troika-physics/src/engines/ammo/worker/AmmoDebugDrawer.js @@ -0,0 +1,223 @@ +/* eslint-env worker */ +/* + * Based on: https://github.com/InfiniteLee/ammo-debug-drawer/blob/master/AmmoDebugDrawer.js + * Troika adaptations: + * - Writes to a flat Float32Array instead of to a THREE scene + * - Run in a web worker using troika's worker-module features + * - Supports transferring the output payload to the main thread to eliminate expensive cloning + */ + +/** + * Ammo Debug Drawer as a thenable worker module + * @param {*} Thenable + * @param {*} Ammo + */ +export default function getAmmoDebugDrawer (Thenable, Ammo, CONSTANTS, AMMO_CONSTANTS) { + const { + MSG_HDR_SZ, + MSG_TYPES, + DEBUG_MSG_SIZE, + DEBUG_MAX_BUFFER_SIZE, + DEBUG_MSG + } = CONSTANTS + + const AMMO_DEBUG_CONSTANTS = { + NoDebug: 0, + DrawWireframe: 1, + DrawAabb: 2, + DrawFeaturesText: 4, + DrawContactPoints: 8, + NoDeactivation: 16, + NoHelpText: 32, + DrawText: 64, + ProfileTimings: 128, + EnableSatComparison: 256, + DisableBulletLCP: 512, + EnableCCD: 1024, + DrawConstraints: 1 << 11, // 2048 + DrawConstraintLimits: 1 << 12, // 4096 + FastWireframe: 1 << 13, // 8192 + DrawNormals: 1 << 14, // 16384 + DrawOnTop: 1 << 15, // 32768 + MAX_DEBUG_DRAW_MODE: 0xffffffff + } + + /** + * An implementation of the btIDebugDraw interface in Ammo.js, for debug rendering of Ammo shapes + * @class AmmoDebugDrawer + * @param {Ammo.btCollisionWorld} world + * @param {object} [options] + */ + const AmmoDebugDrawer = function (world, options) { + this.world = world + options = options || {} + + this.debugDrawMode = options.debugDrawMode || AMMO_DEBUG_CONSTANTS.DrawWireframe + var drawOnTop = this.debugDrawMode & AMMO_DEBUG_CONSTANTS.DrawOnTop || false + + this._debugOutput = new Float32Array(MSG_HDR_SZ + DEBUG_MSG_SIZE) // There's only one "item" for debug drawer data, that contains all debug output geometry + this._debugOutput[0] = MSG_TYPES.DEBUG_OUTPUT // Message type + this._debugOutput[1] = 0 // Message length + + // Set initial values + this._debugOutput[MSG_HDR_SZ + DEBUG_MSG.NEEDS_UPDATE] = 0 // false + this._debugOutput[MSG_HDR_SZ + DEBUG_MSG.DRAW_ON_TOP] = +drawOnTop // false => 0 + this._debugOutput[MSG_HDR_SZ + DEBUG_MSG.GEOM_DRAW_RANGE_IDX_START] = 0 // false + this._debugOutput[MSG_HDR_SZ + DEBUG_MSG.GEOM_DRAW_RANGE_IDX_END] = 0 // false + + this.index = 0 + + this.enabled = false + + this.debugDrawer = new Ammo.DebugDrawer() + this.debugDrawer.drawLine = this.drawLine.bind(this) + this.debugDrawer.drawContactPoint = this.drawContactPoint.bind(this) + this.debugDrawer.reportErrorWarning = this.reportErrorWarning.bind(this) + this.debugDrawer.draw3dText = this.draw3dText.bind(this) + this.debugDrawer.setDebugMode = this.setDebugMode.bind(this) + this.debugDrawer.getDebugMode = this.getDebugMode.bind(this) + this.debugDrawer.update = this.update.bind(this) + this.debugDrawer.getTxOutput = this.update.bind(this) + this.debugDrawer.handleTxReturn = this.handleTxReturn.bind(this) + + this.world.setDebugDrawer(this.debugDrawer) + + console.info('Physics Debug Drawer ready') + } + + AmmoDebugDrawer.prototype = function () { + return this.debugDrawer + } + + AmmoDebugDrawer.prototype.update = function () { + if (!this.enabled || this._payloadLocked) { + return false + } + + if (this.index !== 0) { + this._debugOutput[MSG_HDR_SZ + DEBUG_MSG.NEEDS_UPDATE] = 1 // true + } else { + this._debugOutput[MSG_HDR_SZ + DEBUG_MSG.NEEDS_UPDATE] = 0 // true + } + + this.index = 0 + + this.world.debugDrawWorld() + + this._debugOutput[MSG_HDR_SZ + DEBUG_MSG.GEOM_DRAW_RANGE_IDX_START] = 0 + this._debugOutput[MSG_HDR_SZ + DEBUG_MSG.GEOM_DRAW_RANGE_IDX_END] = this.index + + if (this.index > DEBUG_MAX_BUFFER_SIZE) { + console.warn(`AmmoDebugDrawer: Max buffer size exceeded (${this.index} > ${DEBUG_MAX_BUFFER_SIZE}), visual artifacts will be present in debug wireframes (missing geometry, etc.)`) + } + + return true + } + + AmmoDebugDrawer.prototype.drawLine = function (from, to, color) { + const heap = Ammo.HEAPF32 + const r = heap[(color + 0) / 4] + const g = heap[(color + 4) / 4] + const b = heap[(color + 8) / 4] + + const fromX = heap[(from + 0) / 4] + const fromY = heap[(from + 4) / 4] + const fromZ = heap[(from + 8) / 4] + + const fromI = this.index * 3 + + this._debugOutput[MSG_HDR_SZ + DEBUG_MSG.POSITIONS_BASE + fromI + 0] = fromX + this._debugOutput[MSG_HDR_SZ + DEBUG_MSG.POSITIONS_BASE + fromI + 1] = fromY + this._debugOutput[MSG_HDR_SZ + DEBUG_MSG.POSITIONS_BASE + fromI + 2] = fromZ + + const colorFromI = this.index++ * 3 + this._debugOutput[MSG_HDR_SZ + DEBUG_MSG.COLORS_BASE + colorFromI + 0] = r + this._debugOutput[MSG_HDR_SZ + DEBUG_MSG.COLORS_BASE + colorFromI + 1] = g + this._debugOutput[MSG_HDR_SZ + DEBUG_MSG.COLORS_BASE + colorFromI + 2] = b + + const toX = heap[(to + 0) / 4] + const toY = heap[(to + 4) / 4] + const toZ = heap[(to + 8) / 4] + + const toI = this.index * 3 + this._debugOutput[MSG_HDR_SZ + DEBUG_MSG.POSITIONS_BASE + toI + 0] = toX + this._debugOutput[MSG_HDR_SZ + DEBUG_MSG.POSITIONS_BASE + toI + 1] = toY + this._debugOutput[MSG_HDR_SZ + DEBUG_MSG.POSITIONS_BASE + toI + 2] = toZ + + const colorToI = this.index++ * 3 + this._debugOutput[MSG_HDR_SZ + DEBUG_MSG.COLORS_BASE + colorToI + 0] = r + this._debugOutput[MSG_HDR_SZ + DEBUG_MSG.COLORS_BASE + colorToI + 1] = g + this._debugOutput[MSG_HDR_SZ + DEBUG_MSG.COLORS_BASE + colorToI + 2] = b + } + + // TODO: figure out how to make lifeTime work + AmmoDebugDrawer.prototype.drawContactPoint = function (pointOnB, normalOnB, distance, lifeTime, color) { + const heap = Ammo.HEAPF32 + const r = heap[(color + 0) / 4] + const g = heap[(color + 4) / 4] + const b = heap[(color + 8) / 4] + + const x = heap[(pointOnB + 0) / 4] + const y = heap[(pointOnB + 4) / 4] + const z = heap[(pointOnB + 8) / 4] + + const i = this.index * 3 + this._debugOutput[MSG_HDR_SZ + DEBUG_MSG.POSITIONS_BASE + i + 0] = x + this._debugOutput[MSG_HDR_SZ + DEBUG_MSG.POSITIONS_BASE + i + 1] = y + this._debugOutput[MSG_HDR_SZ + DEBUG_MSG.POSITIONS_BASE + i + 2] = z + + const colorI = this.index++ * 3 + this._debugOutput[MSG_HDR_SZ + DEBUG_MSG.COLORS_BASE + colorI + 0] = r + this._debugOutput[MSG_HDR_SZ + DEBUG_MSG.COLORS_BASE + colorI + 1] = g + this._debugOutput[MSG_HDR_SZ + DEBUG_MSG.COLORS_BASE + colorI + 2] = b + + const dx = heap[(normalOnB + 0) / 4] * distance + const dy = heap[(normalOnB + 4) / 4] * distance + const dz = heap[(normalOnB + 8) / 4] * distance + + const dI = this.index * 3 + this._debugOutput[MSG_HDR_SZ + DEBUG_MSG.POSITIONS_BASE + dI + 0] = x + dx + this._debugOutput[MSG_HDR_SZ + DEBUG_MSG.POSITIONS_BASE + dI + 1] = y + dy + this._debugOutput[MSG_HDR_SZ + DEBUG_MSG.POSITIONS_BASE + dI + 2] = z + dz + + const colorDI = this.index++ * 3 + this._debugOutput[MSG_HDR_SZ + DEBUG_MSG.COLORS_BASE + colorDI + 0] = r + this._debugOutput[MSG_HDR_SZ + DEBUG_MSG.COLORS_BASE + colorDI + 1] = g + this._debugOutput[MSG_HDR_SZ + DEBUG_MSG.COLORS_BASE + colorDI + 2] = b + } + + AmmoDebugDrawer.prototype.reportErrorWarning = function (warningString) { + if (Object.prototype.hasOwnProperty.call(Ammo, 'Pointer_stringify')) { + console.warn(Ammo.Pointer_stringify(warningString)) + } else if (!this.warnedOnce) { + this.warnedOnce = true + console.warn("Cannot print warningString, please rebuild Ammo.js using 'debug' flag") + } + } + + AmmoDebugDrawer.prototype.draw3dText = function (location, textString) { + // TODO + console.warn('TODO: draw3dText') + } + + AmmoDebugDrawer.prototype.setDebugMode = function (debugMode) { + this.debugDrawMode = debugMode + } + + AmmoDebugDrawer.prototype.getDebugMode = function () { + return this.debugDrawMode + } + + AmmoDebugDrawer.prototype.getTxOutput = function () { + this._payloadLocked = true + return this._debugOutput + } + + // Handle a transferrable payload returned from main thread + AmmoDebugDrawer.prototype.handleTxReturn = function (data /* Float32Array */) { + this._debugOutput = data + this._payloadLocked = false + } + + return AmmoDebugDrawer +} diff --git a/packages/troika-physics/src/engines/ammo/worker/AmmoPhysicsEngine.js b/packages/troika-physics/src/engines/ammo/worker/AmmoPhysicsEngine.js new file mode 100644 index 00000000..cacec1d5 --- /dev/null +++ b/packages/troika-physics/src/engines/ammo/worker/AmmoPhysicsEngine.js @@ -0,0 +1,829 @@ +/* eslint-env worker */ +/* eslint-disable new-cap */ + +export default function getAmmoPhysicsEngine (Thenable, Ammo, CONSTANTS, AMMO_CONSTANTS, utils, shapeManager, AmmoDebugDrawer) { + const { + ACTIVATION_STATES, + DEFAULT_ACTIVATION_STATE + } = AMMO_CONSTANTS + const { + MSG_HDR_SZ, + MSG_TYPES, + RIGID_MSG_SIZE, + SOFT_BODY_TYPE, + SOFT_BODY_MSG_SIZES, + CONTACT_SIZE, + COLLISION_SIZE + } = CONSTANTS + const DEFAULT_SOFT_BODY_TYPE = SOFT_BODY_TYPE.TRIMESH + + const _sharedTransform = new Ammo.btTransform() + const _sharedVec3A = new Ammo.btVector3() + // const _sharedVec3B = new Ammo.btVector3() + // const _sharedQuat = new Ammo.btQuaternion() + let _sharedVecRef = null + let _tempArr = [] + let _handledCollisionKeys = [] + + return class AmmoPhysicsEngine { + constructor (options = {}) { + // Transferrable objects resized in chunkSize steps + this._chunkSz = options.chunkSize || 50 + + // Initialize Transferable output arrays at initial chunk sized + // [, , ...payload] + this._rigidOutput = new Float32Array(MSG_HDR_SZ) + this._softOutput = new Float32Array(MSG_HDR_SZ) + this._collisionOutput = new Float32Array(MSG_HDR_SZ) + this._constraintOutput = new Float32Array(MSG_HDR_SZ) + this._vehicleOutput = new Float32Array(MSG_HDR_SZ) + + this._rigidOutput[0] = MSG_TYPES.RIGID_OUTPUT + this._softOutput[0] = MSG_TYPES.SOFT_OUTPUT + this._collisionOutput[0] = MSG_TYPES.COLLISION_OUTPUT + this._constraintOutput[0] = MSG_TYPES.CONSTRAINT_OUTPUT + this._vehicleOutput[0] = MSG_TYPES.VEHICLE_OUTPUT + + this._softOutputMsgSize = 0 + + this._bodies = { + rigid: {}, + soft: {}, + collisionObj: {} + } + this._bodyCounts = { + rigid: 0, + soft: 0, + collisionObj: 0 + } + this._bodyIdsToFacadeIds = {} + this._facadeIdsToBodyIds = {} + this._facadeIdsToBodyTypes = {} + this._facadeIdsToPhysicsConfigs = Object.create(null) + this._bodiesWithListeners = [] + + this._vehicles = [] + this._constraints = [] + + this.softBodyHelpers = null + this.physicsWorld = null + + if (!shapeManager) { + throw new Error('AmmoPhysicsEngine requires a shapeManager') + } + + this._publicMethods = { + updatePhysicsWorld: this.updatePhysicsWorld.bind(this), + updateDebugOptions: this.updateDebugOptions.bind(this) + } + + this._init() + + if (options.enableDebugger) { + this._initDebug() + } + } + + _init () { + const collisionConfiguration = new Ammo.btSoftBodyRigidBodyCollisionConfiguration() + const dispatcher = new Ammo.btCollisionDispatcher(collisionConfiguration) + const broadphase = new Ammo.btDbvtBroadphase() + const solver = new Ammo.btSequentialImpulseConstraintSolver() + const softBodySolver = new Ammo.btDefaultSoftBodySolver() + + this.physicsWorld = new Ammo.btSoftRigidDynamicsWorld(dispatcher, broadphase, solver, collisionConfiguration, softBodySolver) + + _sharedVec3A.setValue(0, CONSTANTS.DEFAULT_GRAVITY, 0) + this.physicsWorld.setGravity(_sharedVec3A) + this.physicsWorld.getWorldInfo().set_m_gravity(_sharedVec3A) + + this.softBodyHelpers = new Ammo.btSoftBodyHelpers() + } + + _initDebug () { + this.debugDrawer = new AmmoDebugDrawer(this.physicsWorld) + this.debugDrawer.enabled = true + + // this.debugDrawer.setDebugMode(128) + // setInterval(() => { + // var mode = (this.debugDrawer.getDebugMode() + 1) % 3 + // // console.log(`~~ cycle to mode`, mode) + + // this.debugDrawer.setDebugMode(mode) + // }, 1000) + } + + _addBodyToIndices (facadeId, physicsBodyId, physicsBody, bodyType) { + if (!bodyType) { + throw new Error('bodyType is required') + } + physicsBody.setUserIndex(physicsBodyId) + + this._bodyIdsToFacadeIds[physicsBodyId] = facadeId + this._facadeIdsToBodyIds[facadeId] = physicsBodyId + this._facadeIdsToBodyTypes[facadeId] = bodyType + + this._bodies[bodyType][facadeId] = physicsBody + this._bodyCounts[bodyType] += 1 + } + + // https://pybullet.org/Bullet/BulletFull/classbtCollisionObject.html + // Add a generic collision object. Only used initially to + // handle static/kinematic bvhTriangleMesh objects + _addCollisionObject (facadeId, bodyId, bodyConfig) { + const { + shapeConfig, + initialMatrixWorld + } = bodyConfig + + const physicsShape = shapeManager.getShape(shapeConfig) + + _sharedTransform.setFromOpenGLMatrix(initialMatrixWorld) + + var collisionObject = new Ammo.btBvhTriangleMeshShape() + collisionObject.setCollisionShape(physicsShape) + + // if (isKinematic) { + // utils.setKinematic(collisionObject, true) + // } + + this._addBodyToIndices(facadeId, bodyId, collisionObject, 'collisionObj') + + this.physicsWorld.addCollisionObject(collisionObject) + } + + // https://pybullet.org/Bullet/BulletFull/classbtRigidBody.html + _addRigidBody (facadeId, bodyId, bodyConfig) { + const { + shapeConfig, + physicsConfig, + initialMatrixWorld + } = bodyConfig + const { + friction, + restitution, + isKinematic = false, + isStatic = false + } = physicsConfig + + let mass = physicsConfig.mass + + if (isStatic || isKinematic) { + mass = 0 // Override any user-set mass + } + + const physicsShape = shapeManager.getShape(shapeConfig) + + _sharedTransform.setFromOpenGLMatrix(initialMatrixWorld) + + const motionState = new Ammo.btDefaultMotionState(_sharedTransform) + + _sharedVec3A.setValue(0, 0, 0) // localInertia + physicsShape.calculateLocalInertia(mass, _sharedVec3A) + const rbInfo = new Ammo.btRigidBodyConstructionInfo(mass, motionState, physicsShape, _sharedVec3A) + const rigidBody = new Ammo.btRigidBody(rbInfo) + + if (isKinematic) { + utils.setKinematic(rigidBody, true) + } + + // TODO evaluate if we need this. Expose `initialActivationState` with default? + // if (mass > 0) { + // utils.disableDeactivation(rigidBody) + // } + + if (friction) { + rigidBody.setFriction(friction) + } + if (restitution) { + rigidBody.setRestitution(restitution) + } + + this._addBodyToIndices(facadeId, bodyId, rigidBody, 'rigid') + + this.physicsWorld.addRigidBody(rigidBody) + + // rigidBody.activate() + } + + _addSoftBody (facadeId, bodyId, bodyConfig) { + const { + shapeConfig, + physicsConfig + } = bodyConfig + const { + vertices, + indices, + numTris + } = shapeConfig + const { + mass = 1, + pressure = 100, + friction = 0.1, + damping = 0.01, + softBodyType = DEFAULT_SOFT_BODY_TYPE // 1=rope, 2=cloth, 3=everything else (volumes) + } = physicsConfig + + let softBody + switch (softBodyType) { + case SOFT_BODY_TYPE.TRIMESH: + softBody = this.softBodyHelpers.CreateFromTriMesh( + this.physicsWorld.getWorldInfo(), + vertices, // vertices + indices, // triangles + numTris, // nTriangles + false // true // randomizeConstraints + ) + break + case SOFT_BODY_TYPE.CLOTH: + console.warn('TODO cloth', vertices) + break + case SOFT_BODY_TYPE.ROPE: { + const numVerts = vertices.length / 3 + const lastIdxBase = (numVerts - 1) * 3 + const middleNodeCt = numVerts - 2 // Number of vertices between the start and end + + softBody = this.softBodyHelpers.CreateRope( + this.physicsWorld.getWorldInfo(), + new Ammo.btVector3( + vertices[0], + vertices[1], + vertices[2] + ), + new Ammo.btVector3( + vertices[lastIdxBase], + vertices[lastIdxBase + 1], + vertices[lastIdxBase + 2] + ), + middleNodeCt, + 0 // FIXEDs 1: First node is fixed, 2: Last node Fixed, 3: Both are fixed + ) + break + } + default: + console.error('Unknown soft body type', softBodyType) + break + } + + // NOTE: see README for details on Soft Body Config. + // Also see commented source here: https://pybullet.org/Bullet/BulletFull/btSoftBody_8h_source.html + const sbConfig = softBody.get_m_cfg() + sbConfig.set_viterations(40) + sbConfig.set_piterations(40) + + sbConfig.set_collisions(0x11) // Soft-soft and soft-rigid collisions + + if (softBodyType !== SOFT_BODY_TYPE.ROPE) { + sbConfig.set_kDF(friction) // Dynamic friction coefficient [0,1] + sbConfig.set_kDP(damping) // Damping coefficient [0,1] + sbConfig.set_kPR(pressure) // Pressure coefficient [-inf,+inf] + + // sbConfig.set_kCHR(0.99) // Rigid contacts hardness [0,1] + // sbConfig.set_kKHR(0.99) // Kinetic contacts hardness [0,1] + // sbConfig.set_kSHR(0.99) // Soft contacts hardness [0,1] + + // sbConfig.set_kSRHR_CL(0.99) // Soft vs rigid hardness [0,1] (cluster only) + // sbConfig.set_kSKHR_CL(0.99) // Soft vs kinetic hardness [0,1] (cluster only) + // sbConfig.set_kSSHR_CL(0.99) // Soft vs soft hardness [0,1] (cluster only) + + // Stiffness + softBody.get_m_materials().at(0).set_m_kLST(0.9) // Linear stiffness coefficient [0,1] + softBody.get_m_materials().at(0).set_m_kAST(0.9) // Area/Angular stiffness coefficient [0,1] + // softBody.get_m_materials().at(0).set_m_kVST(0.9) // Volume stiffness coefficient [0,1] + } else { + // TODO custom settings for rope? + // sbConfig.set_viterations(10) + // sbConfig.set_piterations(10) + } + + softBody.setTotalMass(mass, false) + + /* + * Via http://www.cs.kent.edu/~ruttan/GameEngines/lectures/Bullet_User_Manual + * + * By default, soft bodies perform collision detection using between vertices (nodes) and triangles (faces). + * This requires a dense tessellation, otherwise collisions might be missed. An improved method uses + * automatic decomposition into convex deformable clusters. To enable collision clusters, use: + */ + softBody.generateClusters(3) // TODO make configurable. cluster generation not always required. Improved collision accuracy? + + Ammo.castObject(softBody, Ammo.btCollisionObject).getCollisionShape().setMargin(CONSTANTS.DEFAULT_MARGIN) + + this._addBodyToIndices(facadeId, bodyId, softBody, 'soft') + + // Disable deactivation + softBody.setActivationState(4) + + this.physicsWorld.addSoftBody(softBody, 1, -1) + + switch (softBodyType) { + case SOFT_BODY_TYPE.TRIMESH: + this._softOutputMsgSize += SOFT_BODY_MSG_SIZES.HDR + (softBody.get_m_nodes().size() * SOFT_BODY_MSG_SIZES.TRIMESH) + break + case SOFT_BODY_TYPE.CLOTH: + this._softOutputMsgSize += SOFT_BODY_MSG_SIZES.HDR + (softBody.get_m_nodes().size() * SOFT_BODY_MSG_SIZES.CLOTH) + break + case SOFT_BODY_TYPE.ROPE: + this._softOutputMsgSize += SOFT_BODY_MSG_SIZES.HDR + (softBody.get_m_nodes().size() * SOFT_BODY_MSG_SIZES.ROPE) + break + default: + break + } + } + + add (facadeId, bodyConfig) { + const bodyId = bodyConfig.bodyId + const { + isSoftBody = false + } = bodyConfig.physicsConfig + + // BVH tri-mesh (static or kinematic only) may be a concave mesh, and + // are incompatible with RigidBody's dynamic extensions. + const isGenericCollisionObject = bodyConfig.shapeConfig.type === 'bvh-tri-mesh' + + if (isGenericCollisionObject) { + this._addCollisionObject(facadeId, bodyId, bodyConfig) + } else if (isSoftBody) { + this._addSoftBody(facadeId, bodyId, bodyConfig) + } else { + this._addRigidBody(facadeId, bodyId, bodyConfig) + } + + this._facadeIdsToPhysicsConfigs[facadeId] = bodyConfig.physicsConfig + } + + remove (facadeId) { + const bodyType = this._facadeIdsToBodyTypes[facadeId] + const body = this._bodies[bodyType][facadeId] + const cfg = this._facadeIdsToPhysicsConfigs[facadeId] + this._bodyCounts[bodyType] -= 1 + + if (bodyType === 'collisionObj') { + this.physicsWorld.removeCollisionObject(body) + } else if (bodyType === 'soft') { + switch (cfg.softBodyType || DEFAULT_SOFT_BODY_TYPE) { + case SOFT_BODY_TYPE.TRIMESH: + this._softOutputMsgSize -= SOFT_BODY_MSG_SIZES.HDR + (body.get_m_nodes().size() * SOFT_BODY_MSG_SIZES.TRIMESH) + break + case SOFT_BODY_TYPE.CLOTH: + this._softOutputMsgSize -= SOFT_BODY_MSG_SIZES.HDR + (body.get_m_nodes().size() * SOFT_BODY_MSG_SIZES.CLOTH) + break + case SOFT_BODY_TYPE.ROPE: + this._softOutputMsgSize -= SOFT_BODY_MSG_SIZES.HDR + (body.get_m_nodes().size() * SOFT_BODY_MSG_SIZES.ROPE) + break + default: + break + } + this.physicsWorld.removeSoftBody(body) + } else if (bodyType === 'rigid') { + this.physicsWorld.removeRigidBody(body) + } + + // shapeManager.objectRemoved() + const bodyId = this._facadeIdsToBodyIds[facadeId] + delete this._bodyIdsToFacadeIds[bodyId] + delete this._facadeIdsToBodyIds[facadeId] + delete this._facadeIdsToBodyTypes[facadeId] + delete this._facadeIdsToPhysicsConfigs[facadeId] + delete this._bodies[bodyType][facadeId] + } + + update (facadeId, updateData) { + const bodyType = this._facadeIdsToBodyTypes[facadeId] + const body = this._bodies[bodyType][facadeId] + + if (!body) { + console.warn('update: body not found:', facadeId, bodyType) + return + } + + // Note that these updates are applied in deliberate order + if (updateData.scale) { + utils.rescaleCollisionShape(body, updateData.scale) + } + if (updateData.matrix) { + if (bodyType === 'soft') { + console.log('~~ TODO handle troika matrix change for soft body.') + // TODO, just setWorldTransform on SoftBody? will that clear out vertex motion states? + } else if (bodyType === 'rigid') { + utils.updateRigidBodyMatrix(body, updateData.matrix) + } else if (bodyType === 'collisionObj') { + console.warn('Generic collisionObjects do not have a motion state. Parent matrix changes may produce undesirable results.') + } + } + if (updateData.physicsConfig) { + const prevConfig = this._facadeIdsToPhysicsConfigs[facadeId] + utils.updatePhysicsConfig(body, updateData.physicsConfig, prevConfig) + } + } + + setActivationState (facadeId, isPaused) { + const forceSleep = true // If true, will still passively collide with other bodies + const bodyType = this._facadeIdsToBodyTypes[facadeId] + const body = this._bodies[bodyType][facadeId] + const deactivatedState = forceSleep ? ACTIVATION_STATES.ISLAND_SLEEPING : ACTIVATION_STATES.DISABLE_SIMULATION + const newActivationState = isPaused + ? deactivatedState + : DEFAULT_ACTIVATION_STATE + body.forceActivationState(newActivationState) + } + + // updatePhysicsShape (facadeId, shapeMethodConfig) { + // const body = this._rigidBodies[facadeId] + // if (!body) { + // return + // } + // const collisionShape = body.getCollisionShape() + + // const { method, args } = shapeMethodConfig + // const composedArgs = utils.recurComposeArgs(args || []) + // collisionShape[method](...composedArgs) + + // body.setCollisionShape(collisionShape) + + // if (method === 'setLocalScaling') { + // physicsWorld.updateSingleAABB(body) + // } + // } + + sendVehicles () { + // TODO + } + + /** + * Send information about body collisions + * Helpful threads: + * - https://pybullet.org/Bullet/phpBB3/viewtopic.php?f=9&t=1691&start=0 * + * - https://pybullet.org/Bullet/phpBB3/viewtopic.php?f=9&t=3997&start=15 + * > It seems if you want to detect collisions between 'real' bodies -- do the contact manifold iteration. If you want to know about the amount of intrusion into a given space, then use an explicit collision query, possibly accelerated through use of a ghost object. + * > Only use btGhost acceleration if the query location is the same for at least a few frames, otherwise its pair caching isn't helping much. + * + * - Iterating over all contact pairs is best for "real" (rendered) objects. + * - Use `ghostObjects` (trigger volumes?) to improve performance for collisions with "static" things (like power-ups in a game) + * + * Note that the newer callback-based API (contactTest, contactPairTest) is in 2.76+ + * and not available in our Ammo/Bullet version (~2.73) + * "Bullet 2.76 onwards let you perform an instant query on the world (btCollisionWorld or btDiscreteDynamicsWorld) using the contactTest query. The contactTest query will perform a collision test against all overlapping objects in the world, and produces the results using a callback." + */ + sendCollisions (deltaTimeSec) { + _handledCollisionKeys = [] // only output one collision between a given pair, since we emit the event for both anyway + + _tempArr = [] + + const numManifolds = this.physicsWorld.getDispatcher().getNumManifolds() + + let offset = MSG_HDR_SZ + + for (let i = 0; i < numManifolds; i++) { + const contactManifold = this.physicsWorld.getDispatcher().getManifoldByIndexInternal(i) + const bodyA = contactManifold.getBody0() // btCollisionObject + const bodyB = contactManifold.getBody1() // btCollisionObject + const bodyAId = bodyA.getUserIndex() // bodyA physicsBodyId + const bodyBId = bodyB.getUserIndex() // bodyB physicsBodyId + + const collisionKey = `${bodyAId}-${bodyBId}` + + const emitCollision = !_handledCollisionKeys[collisionKey] && ( + this._bodiesWithListeners.indexOf(bodyAId) !== -1 || + this._bodiesWithListeners.indexOf(bodyBId) !== -1 + ) + + // TODO future optimization: only compute/return contact points if required. + // - Add new event listener signature? i.e. `onCollisionContact`, or add options to `onCollision` somehow? + const computeContacts = true // (this._bodiesWithListeners[bodyAId] === 2 || this._bodiesWithListeners[bodyAId] === 2) + + if (emitCollision) { + _handledCollisionKeys.push(collisionKey) + + // Pre-fill with zeroes to eliminate NaNs in the transferrable output + // TODO won't need this if we can preallocate a Float32Array with the right size up front + _tempArr.length += COLLISION_SIZE + _tempArr.fill(0, offset, offset + COLLISION_SIZE) + + _tempArr[offset + 0] = bodyAId + _tempArr[offset + 1] = bodyBId + _tempArr[offset + 2] = 0 + + if (computeContacts) { + /* + * https://pybullet.org/Bullet/phpBB3/viewtopic.php?f=9&t=1691&start=0 + * > the contact points are available, each overlapping pair of objects has up to 4 points in a btPersistentContactManifold (=contact cache). + */ + const numContacts = contactManifold.getNumContacts() + _tempArr[offset + 2] = numContacts + + for (let j = 0; j < numContacts; j++) { + const pt = contactManifold.getContactPoint(j) // btManifoldPoint + const pointImpulse = pt.getAppliedImpulse() // N⋅s (Newton seconds) + const pointForce = pointImpulse / deltaTimeSec // N (Newtons) + const pointA = pt.getPositionWorldOnA() // btVector3 + const pointB = pt.getPositionWorldOnB() // btVector3 + const pointNormal = pt.m_normalWorldOnB + + const contactOffset = offset + 3 + (CONTACT_SIZE * j) + _tempArr[contactOffset + 0] = pointA.x() + _tempArr[contactOffset + 1] = pointA.y() + _tempArr[contactOffset + 2] = pointA.z() + + _tempArr[contactOffset + 3] = pointB.x() + _tempArr[contactOffset + 4] = pointB.y() + _tempArr[contactOffset + 5] = pointB.z() + + _tempArr[contactOffset + 6] = pointNormal.x() + _tempArr[contactOffset + 7] = pointNormal.y() + _tempArr[contactOffset + 8] = pointNormal.z() + + _tempArr[contactOffset + 9] = pointImpulse + _tempArr[contactOffset + 10] = pointForce + } + } + + offset += COLLISION_SIZE + } + } + + _tempArr[0] = MSG_TYPES.COLLISION_OUTPUT + _tempArr[1] = _handledCollisionKeys.length // Update payload size + + // TODO find a way to preallocate a size for this so we don't have to recreate it each time (or use a temporary output array) + this._collisionOutput = new Float32Array(_tempArr) + + this._transfer(this._collisionOutput) + } + + sendConstraints () { + // TODO + } + + sendRigidBodies () { + const numRigidBodies = this._bodyCounts.rigid + + const needsResize = this._rigidOutput.length < MSG_HDR_SZ + numRigidBodies * RIGID_MSG_SIZE + if (needsResize) { + this._rigidOutput = new Float32Array(MSG_HDR_SZ + (Math.ceil(numRigidBodies / this._chunkSz) * this._chunkSz) * RIGID_MSG_SIZE) + this._rigidOutput[0] = MSG_TYPES.RIGID_OUTPUT + } + + this._rigidOutput[1] = numRigidBodies // Update payload size + + let i = 0 + for (const facadeId in this._bodies.rigid) { + const physicsBody = this._bodies.rigid[facadeId] + const bodyId = this._facadeIdsToBodyIds[facadeId] + + // Only update motionState for active (activationState) bodies + if (physicsBody.isActive()) { + const motionState = physicsBody.getMotionState() + + if (motionState) { + const offset = MSG_HDR_SZ + (i++) * RIGID_MSG_SIZE + this._rigidOutput[offset + 0] = bodyId // facadeId + motionState.getWorldTransform(_sharedTransform) + var pos = _sharedTransform.getOrigin() + this._rigidOutput[offset + 1] = pos.x() + this._rigidOutput[offset + 2] = pos.y() + this._rigidOutput[offset + 3] = pos.z() + var quat = _sharedTransform.getRotation() + this._rigidOutput[offset + 4] = quat.x() + this._rigidOutput[offset + 5] = quat.y() + this._rigidOutput[offset + 6] = quat.z() + this._rigidOutput[offset + 7] = quat.w() + + _sharedVecRef = physicsBody.getLinearVelocity() + this._rigidOutput[offset + 8] = _sharedVecRef.x() + this._rigidOutput[offset + 9] = _sharedVecRef.y() + this._rigidOutput[offset + 10] = _sharedVecRef.z() + + _sharedVecRef = physicsBody.getAngularVelocity() + this._rigidOutput[offset + 11] = _sharedVecRef.x() + this._rigidOutput[offset + 12] = _sharedVecRef.y() + this._rigidOutput[offset + 13] = _sharedVecRef.z() + } + } + } + + this._transfer(this._rigidOutput) + } + + sendSoftBodies () { + const numSoftBodies = this._bodyCounts.soft + + // Recreate transferrable array if message length has changed + const newLength = MSG_HDR_SZ + this._softOutputMsgSize + if (this._softOutput.length !== newLength) { + this._softOutput = new Float32Array(newLength) + this._softOutput[0] = MSG_TYPES.SOFT_OUTPUT + } + + this._softOutput[1] = numSoftBodies // Update payload size + + let offset = MSG_HDR_SZ + + for (const facadeId in this._bodies.soft) { + const physicsBody = this._bodies.soft[facadeId] + const bodyId = this._facadeIdsToBodyIds[facadeId] + const cfg = this._facadeIdsToPhysicsConfigs[facadeId] + const softBodyType = cfg.softBodyType || DEFAULT_SOFT_BODY_TYPE + + // Only update motionState for active (activationState) bodies + if (physicsBody.isActive()) { + this._softOutput[offset + 0] = bodyId // SOFT_BODY_MSG_SIZES.HDR[0] + this._softOutput[offset + 1] = softBodyType // SOFT_BODY_MSG_SIZES.HDR[1] + + const offsetVert = offset + SOFT_BODY_MSG_SIZES.HDR + + switch (softBodyType) { + case SOFT_BODY_TYPE.TRIMESH: // TODO if we update to Bullet 3+, use `m_faces` for triangle meshes. Currently it uses the same strategy as a 2d cloth + case SOFT_BODY_TYPE.CLOTH: { + const nodes = physicsBody.get_m_nodes() + const size = nodes.size() + this._softOutput[offset + 2] = size // SOFT_BODY_MSG_SIZES.HDR[2] + + for (let i = 0; i < size; i++) { + const node = nodes.at(i) + const vert = node.get_m_x() + const normal = node.get_m_n() + const off = offsetVert + (i * SOFT_BODY_MSG_SIZES.TRIMESH) + + this._softOutput[off + 0] = vert.x() + this._softOutput[off + 1] = vert.y() + this._softOutput[off + 2] = vert.z() + + this._softOutput[off + 3] = normal.x() + this._softOutput[off + 4] = normal.y() + this._softOutput[off + 5] = normal.z() + } + + offset += SOFT_BODY_MSG_SIZES.HDR + (size * SOFT_BODY_MSG_SIZES.TRIMESH) + break + } + case SOFT_BODY_TYPE.ROPE: { + const nodes = physicsBody.get_m_nodes() + const size = nodes.size() + this._softOutput[offset + 2] = size // SOFT_BODY_MSG_SIZES.HDR[2] + + for (let i = 0; i < size; i++) { + const node = nodes.at(i) + const vert = node.get_m_x() + const off = offsetVert + (i * SOFT_BODY_MSG_SIZES.ROPE) + + this._softOutput[off] = vert.x() + this._softOutput[off + 1] = vert.y() + this._softOutput[off + 2] = vert.z() + } + + offset += SOFT_BODY_MSG_SIZES.HDR + (size * SOFT_BODY_MSG_SIZES.ROPE) + + break + } + default: + break + } + } + } + + this._transfer(this._softOutput) + } + + sendDebugInfo () { + const didUpdate = this.debugDrawer.update() + if (didUpdate) { + // Only transfer if the drawer had control of the payload and wrote to it + this._transfer(this.debugDrawer.getTxOutput()) + } + } + + _transfer (payload /* Float32Array */) { + if (!payload.buffer) { + throw new Error('_transfer is only for Transferable Typed Arrays') + } + if (payload.buffer.byteLength === 0) { + console.warn('AmmoPhysicsEngine: Transferable array has zero byte length, it may still be in-use in the main thread.') + return + } + self.postMessage(payload.buffer, [payload.buffer]) + } + + handleChanges (payload) { + if (payload.listenerRemove) { + payload.listenerRemove.forEach(facadeId => { + const bodyId = this._facadeIdsToBodyIds[facadeId] + const idx = this._bodiesWithListeners.indexOf(bodyId) + if (idx !== -1) { + this._bodiesWithListeners.splice(idx, 1) + } + }) + } + if (payload.remove) { + payload.remove.forEach(facadeId => { + this.remove(facadeId) + }) + } + if (payload.add) { + payload.add.forEach(facadeCfg => { + this.add(facadeCfg.facadeId, facadeCfg) + }) + + // TEMP test soft body anchors. these should be a part of the generic "constraints" this engine exposes + // if (Object.values(this._bodies.soft).length === 1 && !this._hasAnchorsTest) { + // const rope = Object.values(this._bodies.soft)[0] + // const floor = Object.values(this._bodies.rigid)[0] + // const block = Object.values(this._bodies.rigid)[1] + // var influence = 1 + // const last = rope.get_m_nodes().size() + // rope.appendAnchor(0, block, true, influence) + // rope.appendAnchor(last - 1, floor, true, influence) + // this._hasAnchorsTest = true + // } + } + if (payload.listenerAdd) { + payload.listenerAdd.forEach(facadeId => { + const bodyId = this._facadeIdsToBodyIds[facadeId] + + // TODO store collision listener params/options: `1` is a basic onCollision listener, `2` could be one with contactPoints in addition + this._bodiesWithListeners.push(bodyId) + }) + } + if (payload.update) { + payload.update.forEach(facadeCfg => { + this.update(facadeCfg.facadeId, facadeCfg) + }) + } + } + + updateDebugOptions (debugOptions) { + if (this.debugDrawer) { + this.debugDrawer.enabled = debugOptions.enabled || false + // TODO support switching to other debugger modes + } + } + + updatePhysicsWorld (deltaTimeSec, changes) { + if (changes) { + this.handleChanges(changes) + } + + this.physicsWorld.stepSimulation(deltaTimeSec, 10) + + if (this._vehicles.length > 0) { + this.sendVehicles() + } + if (this._bodiesWithListeners.length > 0) { + this.sendCollisions(deltaTimeSec) // TODO only send if we know there are collision listeners? + } + if (this._constraints.length > 0) { + this.sendConstraints() + } + this.sendRigidBodies() + this.sendSoftBodies() + + if (this.debugDrawer) { + this.sendDebugInfo() + } + } + + receiveMessage (event) { + let { data } = event + + if (data instanceof ArrayBuffer) { + data = new Float32Array(data) + } + + if (data instanceof Float32Array) { + // Transferable object returned from main thread + switch (data[0]) { + case MSG_TYPES.RIGID_OUTPUT: + this._rigidOutput = data + break + case MSG_TYPES.SOFT_OUTPUT: + this._softOutput = data + break + case MSG_TYPES.COLLISION_OUTPUT: + this._collisionOutput = data + break + case MSG_TYPES.CONSTRAINT_OUTPUT: + this._constraintOutput = data + break + case MSG_TYPES.VEHICLE_OUTPUT: + this._vehicleOutput = data + break + case MSG_TYPES.DEBUG_OUTPUT: + this.debugDrawer.handleTxReturn(data) + break + default: + console.error('Unrecognized transferable payload received') + break + } + } else if (data.method) { + const { method, args = [] } = data + if (this._publicMethods[method]) { + this._publicMethods[method](...(args || [])) + } else { + console.error(`Invalid method passed: ${method}`) + } + } else { + console.error('Unknown message received', event) + } + } + } +} diff --git a/packages/troika-physics/src/engines/ammo/worker/AmmoShapeManager.js b/packages/troika-physics/src/engines/ammo/worker/AmmoShapeManager.js new file mode 100644 index 00000000..ee500503 --- /dev/null +++ b/packages/troika-physics/src/engines/ammo/worker/AmmoShapeManager.js @@ -0,0 +1,153 @@ +/* eslint-env worker */ +/* eslint-disable new-cap */ + +export default function getAmmoShapeManager (Ammo, utils) { + return class AmmoShapeManager { + constructor () { + this._shapeCache = Object.create(null) + this._trans = new Ammo.btTransform() + this._trans.setIdentity() + } + + _getAmmoShape (shapeConfig) { + const { shape, args = [], shapeActions = [] } = shapeConfig + const constructorArgs = shape === 'compound' ? null : utils.recurComposeArgs(args) + let ammoShape + + // NOTE re: caching/sharing https://pybullet.org/Bullet/BulletFull/classbtRigidBody.html + // > It is recommended for performance and memory use to share btCollisionShape objects whenever possible. + // NOTE: shape localScaling gets applied to all shapes when sharing objects. + + switch (shape) { + case 'bvh-tri-mesh': { + const { + vertices, + indices, + numTris, + associations + } = args[0] + + // console.log('~~ worker making bvh-tri-mesh', vertices, indices, numTris, associations) + + // TODO investigate using for btTriangleIndexVertexArray as an alternative to btTriangleMesh. Improved performance? + const triMesh = new Ammo.btTriangleMesh() + + // // triMesh.preallocateVertices() + for (let i = 0; i < indices.length; i += 3) { + const va = indices[i + 0] * 3 + const vb = indices[i + 1] * 3 + const vc = indices[i + 2] * 3 + + triMesh.addTriangle( + new Ammo.btVector3(vertices[va + 0], vertices[va + 1], vertices[va + 2]), + new Ammo.btVector3(vertices[vb + 0], vertices[vb + 1], vertices[vb + 2]), + new Ammo.btVector3(vertices[vc + 0], vertices[vc + 1], vertices[vc + 2]), + false // removeDuplicateVertices + ) + } + + const useQuantizedAabbCompression = true + ammoShape = new Ammo.btBvhTriangleMeshShape(triMesh, useQuantizedAabbCompression) + + // ammoShape = new Ammo.btEmptyShape() + break + } + case 'combined-geometry': { + console.error('TODO impl') + break + } + case 'convex-hull': { + const { vertices } = args[0] + ammoShape = new Ammo.btConvexHullShape() + + for (let i = 0; i < vertices.length; i += 3) { + ammoShape.addPoint( + new Ammo.btVector3(vertices[i + 0], vertices[i + 1], vertices[i + 2]), + true // recalculateLocalAabb + ) + } + + // ammoShape.optimizeConvexHull() + + break + } + case 'compound': { + const children = args + + ammoShape = new Ammo.btCompoundShape() + + this._trans.setIdentity() // Reset + // this._trans.setOrigin(new Ammo.btVector3(0, 0, 0)) + const masses = [] + children.forEach(([shape, pos, quat, scale, mass], i) => { + const childAmmoShape = this._getAmmoShape(shape) + // this._trans.setFromOpenGLMatrix(transformMatrix) // Get local transform for shape at this index + const _trans = new Ammo.btTransform() + _trans.setIdentity() + _trans.setOrigin(new Ammo.btVector3(pos[0], pos[1], pos[2])) + _trans.setRotation(new Ammo.btQuaternion(quat[0], quat[1], quat[2], quat[3])) + childAmmoShape.setLocalScaling(new Ammo.btVector3(scale[0], scale[1], scale[2])) + ammoShape.addChildShape(_trans, childAmmoShape) + // body.updateInertiaTensor() + // this._trans.setIdentity() // Reset + masses[i] = mass + }) + + // ammoShape.recomputeChildBounds() + // const principal = new Ammo.btTransform() + // const inertia = new Ammo.btVector3() + // ammoShape.calculatePrincipalAxisTransform(masses, principal, inertia) + break + } + case 'sphere': { + ammoShape = new Ammo.btSphereShape(...constructorArgs) + break + } + case 'box': { + ammoShape = new Ammo.btBoxShape(...constructorArgs) + break + } + case 'cylinder': { + // Note that there are also btCylinderShapeX and btCylinderShapeZ options, for cylinders with a primary axis that matches. Default is Y + ammoShape = new Ammo.btCylinderShape(...constructorArgs) + break + } + default: + // ammoShape = new Ammo.btEmptyShape() + throw new Error(`Unsupported shape specified: ${shape}`) + } + + /** + * http://www.cs.kent.edu/~ruttan/GameEngines/lectures/Bullet_User_Manual + * Collision Margin + * Bullet uses a small collision margin for collision shapes, to improve performance and reliability of the + * collision detection. It is best not to modify the default collision margin, and if you do use a positive + * value: zero margin might introduce problems. By default this collision margin is set to 0.04, which is 4 + * centimeter if your units are in meters (recommended). + */ + + // ammoShape.setMargin(CONSTANTS.DEFAULT_MARGIN) // TODO allow config adjustments + + for (let aI = 0; aI < shapeActions.length; aI++) { + const { method, args = [] } = shapeActions[aI] + const composedActionArgs = utils.recurComposeArgs(args) + ammoShape[method](...composedActionArgs) + } + + return ammoShape + } + + getShape (shapeConfig) { + // const { shape } = shapeConfig + // if (!this._shapeCache[shape]) { + // this._shapeCache[shape] = self.getAmmoShape(shapeConfig) + // } + // return this._shapeCache[shape] + return this._getAmmoShape(shapeConfig) + } + + // objectRemoved () { + + // } + } +} diff --git a/packages/troika-physics/src/engines/ammo/worker/AmmoUtils.js b/packages/troika-physics/src/engines/ammo/worker/AmmoUtils.js new file mode 100644 index 00000000..295a9f60 --- /dev/null +++ b/packages/troika-physics/src/engines/ammo/worker/AmmoUtils.js @@ -0,0 +1,228 @@ +/* eslint-env worker */ +/* eslint-disable new-cap */ + +export default function getAmmoUtils (Ammo, CONSTANTS, AMMO_CONSTANTS) { + const { + COLLISION_FLAGS, + METHODS_TO_AMMO, + ACTIVATION_STATES, + DEFAULT_ACTIVATION_STATE + } = AMMO_CONSTANTS + + const _sharedTransform = new Ammo.btTransform() + const _sharedVec3A = new Ammo.btVector3() + const _zeroedVec3 = new Ammo.btVector3(0, 0, 0) + + return class AmmoUtils { + recurComposeArgs (args = []) { + const output = [] + + for (let i = 0, iLen = args.length; i < iLen; i++) { + const arg = args[i] + let _method = arg.method + if (_method) { + // arg is an Ammo constructor + _method = METHODS_TO_AMMO[_method] || _method + const argArgs = this.recurComposeArgs(arg.args || []) + if (!Object.prototype.hasOwnProperty.call(Ammo, _method)) { + throw new Error(`Ammo missing specified constructor: ${_method}`) + } + output.push( + new Ammo[_method](...argArgs) + ) + } else { + output.push(arg) // Simple args just get passed along + } + } + + return output + } + + /** + * Set LocalScaling of a CollisionShape + * + * @param {CollisionObject} body + * @param {array} scaleArgs [x,y,z] + */ + rescaleCollisionShape (body, scaleArgs) { + const [scaleX, scaleY, scaleZ] = scaleArgs + const collisionShape = body.getCollisionShape() + if (!collisionShape || !collisionShape.setLocalScaling) { + throw new Error('Collision shape: not found or does not support the setLocalScaling method.') + } + _sharedVec3A.setValue(scaleX, scaleY, scaleZ) + collisionShape.setLocalScaling(_sharedVec3A) + if (!body.isActive()) { + body.activate() // If this body was sleeping, activate it + } + } + + /** + * Set the World Transformation Matrix for a RigidBody + * + * @param {RigidBody} body + * @param {Matrix4} worldMatrixElements + */ + updateRigidBodyMatrix (body, worldMatrixElements) { + // Update the transform + // _sharedTransform.setIdentity() // TODO need to reset this? + _sharedTransform.setFromOpenGLMatrix(worldMatrixElements) + + // Apply transform to the body's motionState so Bullet keeps track of its velocity etc. + body.getMotionState().setWorldTransform(_sharedTransform) // Apply back to the body's motionState + } + + /** + * Disable deactivation of a CollisionObject. Deactivation (or "sleeping") is a state that the + * DynamicsWorld can set on bodies that have not had linear/angular changes much (i.e. objects that have "settled") + * + * @param {CollisionObject} body + * @param {boolean} [force=false] + */ + disableDeactivation (body, force = false) { + const targetActivationState = ACTIVATION_STATES.DISABLE_DEACTIVATION + + if (force) { + body.forceActivationState(targetActivationState) + } else { + body.setActivationState(targetActivationState) + } + } + + /** + * Set the mass of a Collision Object (Rigid or Soft) + * + * @param {CollisionObject} body + * @param {int} newMass + * @param {boolean} isSoftBody + * @param {btVector3} [rigidBodyInertia] + */ + setMass (body, newMass, isSoftBody) { + if (isSoftBody) { + body.setTotalMass(newMass, false) + } else { + _sharedVec3A.setValue(0, 0, 0) // Inertia will be calculated "into" this Vec3 + body.getCollisionShape().calculateLocalInertia(newMass, _sharedVec3A) + body.setMassProps(newMass, _sharedVec3A) + body.updateInertiaTensor() // Inertia Tensor must be updated when mass or localScaling is changed https://pybullet.org/Bullet/phpBB3/viewtopic.php?t=2925 + } + } + + /** + * Clear dynamic values of a body, preparing it to be set as STATIC or KINEMATIC + * + * @param {CollisionObject} body + * @param {boolean} isSoftBody + */ + clearDynamics (body, isSoftBody) { + this.setMass(body, 0, isSoftBody, _zeroedVec3) + + if (isSoftBody) { + // FIXME test soft static bodies, what else needs to be zeroed here? Vertex velocities? + console.warn('Experimental feature: Handle static soft bodies') + body.setVelocity(_zeroedVec3) + } else { + // https://pybullet.org/Bullet/phpBB3/viewtopic.php?t=7772 + body.setLinearVelocity(_zeroedVec3) + body.setAngularVelocity(_zeroedVec3) + body.updateInertiaTensor() + } + } + + /** + * Set a body to KINEMATIC + * + * @param {CollisionObject} body + * @param {boolean} isKinematic + * @param {boolean} isSoftBody + */ + setKinematic (body, isKinematic, isSoftBody) { + if (isKinematic) { + body.setCollisionFlags(COLLISION_FLAGS.CF_KINEMATIC_OBJECT) + this.disableDeactivation(body) + this.clearDynamics(body, isSoftBody) + } else { + body.setCollisionFlags(0) // Clear? + body.setActivationState(DEFAULT_ACTIVATION_STATE) + } + } + + /** + * Set a body to STATIC + * + * @param {CollisionObject} body + * @param {boolean} isStatic + * @param {boolean} isSoftBody + */ + setStatic (body, isStatic, isSoftBody) { + if (isStatic) { + body.setCollisionFlags(COLLISION_FLAGS.CF_STATIC_OBJECT) + this.disableDeactivation(body) + this.clearDynamics(body, isSoftBody) + } else { + body.setCollisionFlags(0) // Clear? + body.setActivationState(DEFAULT_ACTIVATION_STATE) + } + } + + /** + * Handle changes to basic Physics properties + * + * @param {btCollisionObject(SoftBody|RigidBody)} body + * @param {object} newCfg + * @param {object} prevCfg + */ + updatePhysicsConfig (body, newCfg, prevCfg) { + const { + isSoftBody, + isKinematic, + isStatic, + mass, + friction, + rollingFriction, + spinningFriction, + restitution, + linearDamping, // Rigid Body only + angularDamping, // Rigid Body only + pressure // Soft Body only + } = newCfg + // const bodyTypeChanged = newCfg.isSoftBody !== prevCfg.isSoftBody // TODO should we support this? requires removal of olf collisionObject and creation of a new one + + if (isKinematic !== prevCfg.isKinematic) { + this.setKinematic(body, isKinematic, isSoftBody) + } + if (isStatic !== prevCfg.isStatic) { + this.setStatic(body, isStatic, isSoftBody) + } + // Simple setters for all CollisionObject bodies + if (friction !== prevCfg.friction) { + body.setFriction(friction) + } + if (rollingFriction !== prevCfg.rollingFriction) { + body.setRollingFriction(rollingFriction) + } + if (spinningFriction !== prevCfg.spinningFriction) { + body.setSpinningFriction(spinningFriction) + } + if (restitution !== prevCfg.restitution) { + body.setRestitution(restitution) + } + + if (mass !== prevCfg.mass) { + this.setMass(body, mass, isSoftBody) + } + + // Soft/Rigid body specific setters + if (isSoftBody) { + if (pressure !== prevCfg.pressure) { + const softBodyConfig = body.get_m_cfg() + softBodyConfig.set_kPR(pressure) + } + } else { + if (linearDamping !== prevCfg.linearDamping || angularDamping !== prevCfg.angularDamping) { + body.setDamping(linearDamping, angularDamping) + } + } + } + } +} diff --git a/packages/troika-physics/src/engines/ammo/worker/PhysicsWorldAmmo.worker.js b/packages/troika-physics/src/engines/ammo/worker/PhysicsWorldAmmo.worker.js new file mode 100644 index 00000000..37c48a89 --- /dev/null +++ b/packages/troika-physics/src/engines/ammo/worker/PhysicsWorldAmmo.worker.js @@ -0,0 +1,73 @@ +import { ThenableWorkerModule } from 'troika-worker-utils' +import ammoLoader from '../../../../libs/troika-ammo.wasm.js' +import getAmmoShapeManager from './AmmoShapeManager' +import getAmmoUtils from './AmmoUtils' +import CONSTANTS from '../../../common/constants' +import AMMO_CONSTANTS from '../ammoConstants' + +import getAmmoPhysicsEngine from './AmmoPhysicsEngine' +import getAmmoDebugDrawer from './AmmoDebugDrawer' + +export const WORKER_ID = 'physics-worker-ammo' + +// Source: https://stackoverflow.com/a/47880734 +const supportsWasm = () => { + /* eslint-env worker, browser */ + try { + if (typeof WebAssembly === 'object' && typeof WebAssembly.instantiate === 'function') { + const module = new WebAssembly.Module(Uint8Array.of(0x0, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00)) + if (module instanceof WebAssembly.Module) { + return new WebAssembly.Instance(module) instanceof WebAssembly.Instance + } + } + } catch (e) { + } + return false +} + +export const physicsWorldAmmoModule = { + dependencies: [ + ThenableWorkerModule, + supportsWasm, + ammoLoader, + CONSTANTS, + AMMO_CONSTANTS, + getAmmoUtils, + getAmmoPhysicsEngine, + getAmmoShapeManager, + getAmmoDebugDrawer + ], + init (Thenable, _supportsWasm, getAmmo, _CONSTANTS, _AMMO_CONSTANTS, _getAmmoUtils, _getAmmoPhysicsEngine, _getAmmoShapeManager, _getAmmoDebugDrawer) { + /* eslint-env worker */ + let physicsWorld = null + + self._scriptDir = 'noop' // make Ammo.js loader happy + + return function (callArgs) { + const response = new Thenable() + + if (!physicsWorld) { + getAmmo().then(Ammo => { + const AmmoUtils = _getAmmoUtils(Ammo, _CONSTANTS, _AMMO_CONSTANTS) + const utils = new AmmoUtils() + const AmmoShapeManager = _getAmmoShapeManager(Ammo, utils) + const shapeManager = new AmmoShapeManager() + const AmmoDebugDrawer = _getAmmoDebugDrawer(Thenable, Ammo, _CONSTANTS, _AMMO_CONSTANTS) + const AmmoPhysicsEngine = _getAmmoPhysicsEngine(Thenable, Ammo, _CONSTANTS, _AMMO_CONSTANTS, utils, shapeManager, AmmoDebugDrawer) + + physicsWorld = new AmmoPhysicsEngine({ + enableDebugger: callArgs.enableDebugger + }) + + self.addEventListener('message', physicsWorld.receiveMessage.bind(physicsWorld)) + + response.resolve({ physicsReady: true }) + }) + } else { + console.error('PhysicsWorldAmmo already initialized') + } + return response + } + }, + workerId: WORKER_ID +} diff --git a/packages/troika-physics/src/engines/oimo/index.js b/packages/troika-physics/src/engines/oimo/index.js new file mode 100644 index 00000000..0ffdd02f --- /dev/null +++ b/packages/troika-physics/src/engines/oimo/index.js @@ -0,0 +1 @@ +// TODO \ No newline at end of file diff --git a/packages/troika-worker-utils/src/WorkerModules.js b/packages/troika-worker-utils/src/WorkerModules.js index 8d10c256..4b403390 100644 --- a/packages/troika-worker-utils/src/WorkerModules.js +++ b/packages/troika-worker-utils/src/WorkerModules.js @@ -88,6 +88,21 @@ export function defineWorkerModule(options) { return moduleFunc } +/** + * Terminate a Worker that was initialized using `defineWorkerModule` + * + * @param {string} [workerId = '#default'] - Optional ID of worker to terminate. + * @return {void} + */ +export function terminateWorkerById (workerId = '#default') { + const worker = getWorker(workerId) + if (!worker) { + throw new Error(`terminateWorkerById: Unable to locate worker with ID: "${workerId}" `) + } + worker.terminate() + delete workers[workerId] +} + /** * Stringifies a function into a form that can be deserialized in the worker * @param fn @@ -102,7 +117,7 @@ function stringifyFunction(fn) { } -function getWorker(workerId) { +export function getWorker(workerId) { let worker = workers[workerId] if (!worker) { // Bootstrap the worker's content diff --git a/packages/troika-worker-utils/src/index.js b/packages/troika-worker-utils/src/index.js index 0b737bd1..37b04603 100644 --- a/packages/troika-worker-utils/src/index.js +++ b/packages/troika-worker-utils/src/index.js @@ -1,5 +1,5 @@ // Troika worker utility exports -export {defineWorkerModule} from './WorkerModules.js' +export {defineWorkerModule, getWorker, terminateWorkerById} from './WorkerModules.js' export {default as Thenable} from './Thenable.js' export {default as ThenableWorkerModule} from './ThenableWorkerModule.js' diff --git a/rollup.config.js b/rollup.config.js index 8acb174e..5e2aa61e 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -33,6 +33,7 @@ const EXTERNAL_GLOBALS = SIBLING_PACKAGES.reduce((out, sib) => { react: 'React', three: 'THREE', 'three/examples/jsm/loaders/GLTFLoader': 'THREE.GLTFLoader', + 'three/examples/jsm/utils/BufferGeometryUtils': 'THREE.BufferGeometryUtils', 'prop-types': 'PropTypes' })