diff --git a/README.md b/README.md index 183de28..15770f4 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,47 @@ # XVoxel-ASync -A voxel game based on OpenVoxelProject \ No newline at end of file +A voxel game based on OpenVoxelProject, it is able to run fully in a web browser. + +## Philosophy + +My goal for this game is for it to be light, extendable, pluggable and easy to mod without too much nonsense. +- Light, unlike heavy as other games +- Extendable, even its core +- Pluggable, so you can add your own additions +- Easy to mod, with an upcoming modding interface made to be easy and efficient + +## Roadmap + +- [x] Basic menu +- [x] 3D rendering +- [ ] Resources + - [ ] Textures (partially done) + - [ ] Sounds + - [ ] Models (as JSON) +- [ ] Physics (have to decide which engine to use) +- [ ] Settings + - [ ] Video + - [x] Field of View + - [ ] Lighting + - [ ] Audio + - [ ] Sources + - [ ] Channels (Mono, Stereo or Surround if supported) + - [ ] Input (keyboard/mouse, touchscreen and gamepad) + - [ ] Sensitivity + - [ ] Keys +- [ ] Networking + - [x] Loading worlds + - [ ] Saving worlds (implemented but unavailable in the menu) + - [ ] Multiplayer + +## Acknowledgements + +The libraries cited below are included in the "lib" folder for convenience, if you want your library's files removed from my project's, please kindly tell me via [e-mail](mailto:x3f200c@protonmail.com) or using any other contact information that can be found on [my main website](https://x3f200c.net/). +- [Three.JS](https://github.com/mrdoob/three.js) under the MIT license, used for rendering worlds (and its GLTF loader for future work) +- [Cannon ES](https://github.com/pmndrs/cannon-es) also under the MIT license, not used yet, will consider switching to it in order to use less WebAssembly and more vanilla JavaScript +- [Ammo.JS](https://github.com/kripken/ammo.js) under the ZLib license, used to simulate physics in worlds +- [FFlate](https://github.com/101arrowz/fflate) under the MIT license too, used to compress and decompress ZIP files (saving and loading worlds) +- [Matrix JS SDK](https://github.com/matrix-org/matrix-js-sdk) under the Apache 2.0 license, used for networking (multiplayer, uploading, downloading worlds from the Matrix network) +- [PeerJS](https://github.com/peers/peerjs) under the MIT license, will be used for alternative networking +- [Olm](https://gitlab.matrix.org/matrix-org/olm) under the Apache 2.0 license too, used for encryption support in networking +- Improved Perlin noise (I forgot where I found it and what its license was) diff --git a/assets/images/xvoxel.ico b/assets/images/xvoxel.ico new file mode 100644 index 0000000..62c4cad Binary files /dev/null and b/assets/images/xvoxel.ico differ diff --git a/assets/images/xvoxel.png b/assets/images/xvoxel.png new file mode 100644 index 0000000..5d5ef48 Binary files /dev/null and b/assets/images/xvoxel.png differ diff --git a/assets/stylesheets/game.css b/assets/stylesheets/game.css new file mode 100644 index 0000000..ac62a07 --- /dev/null +++ b/assets/stylesheets/game.css @@ -0,0 +1,308 @@ +/* Variables */ + +:root { + --background: rgba(255, 255, 255, 0); + --background-titlebar: rgba(0, 0, 0, 0.24); + --background-menu: rgba(168, 190, 210, 0.36); + --background-menu-interactable: rgba(125, 135, 150, 0.48); + --background-menu-interactable-hover: rgba(157, 172, 213, 0.48); + --background-menu-uninteractable: rgba(79, 87, 99, 0.48); + --text-color-default: rgba(235, 245, 245, 1); + --cursor-default: default; + --cursor-not-allowed: not-allowed; +} + +/* Rules */ + +* { + background: var(--background); + cursor: var(--cursor-default); + color: var(--text-color-default); + margin: 0px; + image-rendering: pixelated; +} + +html, body { + width: 100%; + height: 100%; + top: 0px; + left: 0px; +} + +header { + z-index: 100; + background: var(--background-titlebar); + position: absolute; + display: flex; + flex-direction: row; + align-items: center; + top: 0px; + left: 0px; + width: 100%; + height: 3rem; + -webkit-app-region: drag; +} + +#title { + margin: 0.4rem; +} + +#actionbuttoncontainer { + position: absolute; + display: flex; + top: 0px; + right: 0px; + height: 100%; + -webkit-app-region: no-drag; + pointer-events: all; +} + +.windowactionbutton { + top: 0px; + width: 6rem; + height: 100%; + background: rgba(255, 255, 255, 0.25); +} + +.windowactionbutton:hover { + background: rgba(255, 255, 255, 0.5); +} + +.windowactionbutton * { + position: absolute; + margin: auto; + left: 0px; + right: 0px; + top: 0px; + bottom: 0px; +} + +#minwin { + right: calc(6rem + 6rem); +} + +#maxrestorewin { + right: 6rem; +} + +#closewin { + right: 0px; + background: rgba(255, 0, 0, 0.25); +} + +#closewin:hover { + background: rgba(255, 0, 0, 0.5); +} + +.initially-hidden { + display: none; +} + +.fullscreen { + position: absolute; + top: 0px; + left: 0px; + width: 100%; + height: 100%; +} + +.overlay { + z-index: 96; +} + +#renderers { + display: flex; + flex-direction: column; + flex-wrap: wrap; + align-items: center; + justify-content: space-evenly; + width: inherit; + height: inherit; +} + +#renderers > div { + display: flex; + flex-direction: row; + flex-wrap: nowrap; + align-items: center; + justify-content: center; +} + +span { + display: flex; +} + +#gui { + z-index: 15; +} + +#crosshair { + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + mix-blend-mode: difference; + z-index: 15 +} + +#touchcontrols { + position: absolute; + top: 0px; + left: 0px; + width: 100%; + height: 100%; + z-index: 30; +} + +#dpad { + position: absolute; + bottom: 0px; + min-width: 16rem; + min-height: 16rem; + max-width: 48rem; + max-height: 48rem; + background: radial-gradient(rgba(180, 180, 180, 0.80) 0%, rgba(180, 180, 180, 0) 72%); + z-index: 32; +} + +#secpad { + position: absolute; + bottom: 0px; + right: 0px; + min-width: calc(16rem / 3); + min-height: calc(16rem / 3); + max-width: calc(48rem / 3); + max-height: calc(48rem / 3); + margin: calc(16rem / 3); + background: radial-gradient(rgba(180, 180, 180, 0.80) 0%, rgba(180, 180, 180, 0) 72%); + z-index: 32; +} + +#menus { + display: flex; + flex-wrap: wrap; + flex-flow: row; + position: absolute; + top: 0px; + left: 0px; + width: 100%; + height: 100%; + z-index: 40; +} + +.menu { + top: 0px; + display: flex; + flex-direction: column; + justify-content: flex-start; + /* position: absolute; */ + background: var(--background-menu); + height: calc(100% - 3rem); + padding-top: 3rem; + z-index: 40; +} + +.void { + height: inherit; + width: inherit; +} + +.closebutton { + left: 0px; + width: calc(100% - 1rem); + bottom: 0px; + margin-top: auto; +} + +#loadingscreen { + background: rgba(32, 48, 64, 1); + position: absolute; + width: 100%; + height: 100%; + left: 0px; + right: 0px; + z-index: 45; +} + +#loadingbar { + position: absolute; + min-width: 12rem; + min-height: 3rem; + width: 64%; + height: 25%; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + background: rgba(240, 24, 24, 1); +} + +#loadingtext { + position: fixed; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + z-index: 45; + mix-blend-mode: difference; +} + +#loadingbarprogress { + position: relative; + height: 100%; + background: rgba(24, 240, 48, 1); +} + +button:disabled, button:disabled:hover, input:disabled, input:disabled:hover { + background: var(--background-menu-uninteractable); + cursor: var(--cursor-not-allowed); +} + +button, input:not(input[type=checkbox]), select { + appearance: none; + background: var(--background-menu-interactable); + border: 0.125rem solid black; + padding: 0px; + margin: 0.5rem; + font-size: 1rem; + width: calc(100% - 1rem); + height: 4rem; +} + + +input:not(input[type=checkbox]) { + width: calc(100% - 1.25rem); + height: 4rem; +} + +button:hover, input:hover, select:hover { + background: var(--background-menu-interactable-hover); +} + +input[type=text]::placeholder { + color: rgba(235, 245, 245, 0.5); +} + +input[type=range]::-webkit-slider-thumb { + -webkit-appearance: none; + background: rgba(125, 135, 150, 0.25); + border: 0.125rem solid black; + border-radius: 0px; + width: 1.5rem; + height: 4rem; +} + +input[type=range]::-moz-range-thumb { + -moz-appearance: none; + background: rgba(125, 135, 150, 0.25); + border: 0.125rem solid black; + border-radius: 0px; + width: 1.5rem; + height: 4rem; +} + +input[type=range]::-webkit-slider-thumb:hover { + background: var(--background-menu-interactable-hover); +} + +input[type=range]::-moz-range-thumb:hover { + background: var(--background-menu-interactable-hover); +} diff --git a/core.js b/core.js new file mode 100644 index 0000000..cbc1d41 --- /dev/null +++ b/core.js @@ -0,0 +1,79 @@ +var modules = { + "render": { + "source": "./modules/render.js", + "dependsOn": [] + }, + "input": { + "source": "./modules/input.js", + "dependsOn": ["render"] + }, + "resources": { + "source": "./modules/resources.js", + "dependsOn": [] + }, + "world": { + "source": "./modules/world.js", + "dependsOn": [] + }, + "network": { + "source": "./modules/network.js", + "dependsOn": [] + } +}; + +var plugins = { + "splash": { + "type": "plugin", + "source": "./plugins/splash.js", + "loadAs": "splash", + "dependsOn": ["render"] + } +}; + +var loadings = {}; + +class GameCore extends global.utils.EventListener { + constructor () { + super(); + + this.modules = {}; + this.plugins = {}; + } + init (meta) { + return new Promise((function (resolve, reject) { + for (var data in meta) { + if (meta.hasOwnProperty(data)) { + var metadata = meta[data]; + + if (loadings[data]) continue; + + loadings[data] = this.loadModule(data); + } + } + + Promise.all(Object.values(loadings)).then((function () { + this.emit("pre-init", {}); + + resolve(this); + }).bind(this)).catch(reject); + }).bind(this)); + } + loadModule (moduleName) { + return load("./modules/" + moduleName + ".js").then((function (mod) { + this.modules[moduleName] = mod; + }).bind(this)).catch(throwError); + } + loadPlugin (pluginName) { + return load("./plugins/" + pluginName + ".js").then((function (plugin) { + this.plugins[pluginName] = plugin; + }).bind(this)).catch(throwError); + } +} + +module.exports = { + "GameCore": GameCore, + "loadData": { + "modules": modules, + "plugins": plugins + } +}; diff --git a/data/resources/XVoxel.zip b/data/resources/XVoxel.zip new file mode 100644 index 0000000..970ad3a Binary files /dev/null and b/data/resources/XVoxel.zip differ diff --git a/data/resources/XVoxel/models/character.json b/data/resources/XVoxel/models/character.json new file mode 100644 index 0000000..7c8ea8e --- /dev/null +++ b/data/resources/XVoxel/models/character.json @@ -0,0 +1,231 @@ +{ + "hitbox": [0.7, 1.8, 0.7], + "control": { + "camera": "head", + "rotationX": "head" + }, + "parts": { + "root": { + "type": "group", + "position": [0, -0.25, 0], + "children": [ + "body" + ] + }, + "body": { + "type": "geometry", + "geometry": [0.5, 0.75, 0.25], + "position": [0, 0.375, 0], + "uvMap": [ + [[0.25, 0.5], [0.3125, 0.6875]], + [[0.4375, 0.5], [0.5, 0.6875]], + [[0.3125, 0.5], [0.4375, 0.6875]], + [[0.3125, 0.6875], [0.4375, 0.75]], + [[0.4375, 0.6875], [0.5625, 0.75]], + [[0.5, 0.6875], [0.625, 0.5]], + [[0.3125, 0.6875], [0.3125, 0.5]] + ], + "children": [ + "neck", + "jacket", + "left-shoulder", + "right-shoulder", + "left-pelvis", + "right-pelvis" + ] + }, + "neck": { + "type": "group", + "position": [0, 0.375, 0], + "children": [ + "head" + ] + }, + "head": { + "type": "geometry", + "geometry": [0.5, 0.5, 0.5], + "position": [0, 0.25, 0], + "uvMap": [ + [[0.0, 0.75], [0.125, 0.875]], + [[0.25, 0.75], [0.375, 0.875]], + [[0.125, 0.875], [0.25, 1.0]], + [[0.25, 0.875], [0.375, 1.0]], + [[0.375, 0.75], [0.5, 0.875]], + [[0.125, 0.75], [0.25, 0.875]] + ], + "children": [ + "hat" + ] + }, + "hat": { + "type": "geometry", + "geometry": [0.56, 0.56, 0.56], + "position": [0, 0, 0], + "uvMap": [ + [[0.5, 0.75], [0.625, 0.875]], + [[0.75, 0.75], [0.875, 0.875]], + [[0.625, 0.875], [0.75, 1.0]], + [[0.75, 0.875], [0.875, 1.0]], + [[0.875, 0.75], [1.0, 0.875]], + [[0.625, 0.75], [0.75, 0.875]] + ] + }, + "jacket": { + "type": "geometry", + "geometry": [0.6, 0.85, 0.35], + "position": [0, 0, 0], + "uvMap": [ + [[0.25, 0.0625], [0.5625, 0.1875]], + [[0.4375, 0.0625], [0.5625, 0.1875]], + [[0.3125, 0.125], [0.5, 0.0625]], + [[0.4375, 0.125], [0.5, 0.0625]], + [[0.5, 0.125], [0.5625, 0.1875]], + [[0.3125, 0.125], [0.5625, 0.1875]] + ] + }, + "left-shoulder": { + "type": "group", + "position": [-0.25, 0.25, 0], + "children": [ + "left-arm" + ] + }, + "left-arm": { + "type": "geometry", + "geometry": [0.25, 0.75, 0.25], + "position": [-0.125, -0.25, 0], + "uvMap": [ + [[0.5, 0.0625], [0.8125, 0.1875]], + [[0.625, 0.0625], [0.8125, 0.1875]], + [[0.5625, 0.0625], [0.75, 0.0625]], + [[0.625, 0.0625], [0.75, 0.0625]], + [[0.6875, 0.0625], [0.8125, 0.1875]], + [[0.5625, 0.0625], [0.8125, 0.1875]] + ], + "children": [ + "left-sleeve" + ] + }, + "left-sleeve": { + "type": "geometry", + "geometry": [0.35, 0.85, 0.35], + "position": [0, 0, 0], + "uvMap": [ + [[0.75, 0.0625], [0.5625, 0.1875]], + [[0.875, 0.0625], [0.5625, 0.1875]], + [[0.8125, 0.0625], [0.5, 0.0625]], + [[0.875, 0.0625], [0.5, 0.0625]], + [[60, 0.0625], [0.5625, 0.1875]], + [[0.8125, 0.0625], [0.5625, 0.1875]] + ] + }, + "right-shoulder": { + "type": "group", + "position": [0.25, 0.25, 0], + "children": [ + "right-arm" + ] + }, + "right-arm": { + "type": "geometry", + "geometry": [0.25, 0.75, 0.25], + "position": [0.125, -0.25, 0], + "uvMap": [ + [[0.625, 0.0625], [0.3125, 0.1875]], + [[0.75, 0.0625], [0.3125, 0.1875]], + [[0.6875, 0.0625], [0.25, 0.0625]], + [[0.75, 0.0625], [0.25, 0.0625]], + [[0.8125, 0.0625], [0.3125, 0.1875]], + [[0.6875, 0.0625], [0.3125, 0.1875]] + ], + "children": [ + "right-sleeve" + ] + }, + "right-sleeve": { + "type": "geometry", + "geometry": [0.35, 0.85, 0.35], + "position": [0, 0, 0], + "uvMap": [ + [[0.625, 0.0625], [0.5625, 0.1875]], + [[0.75, 0.0625], [0.5625, 0.1875]], + [[0.6875, 0.0625], [0.5, 0.0625]], + [[0.75, 0.0625], [0.5, 0.0625]], + [[0.8125, 0.0625], [0.5625, 0.1875]], + [[0.6875, 0.0625], [0.5625, 0.1875]] + ] + }, + "left-pelvis": { + "type": "group", + "position": [-0.125, -0.375, 0], + "children": [ + "left-leg" + ] + }, + "left-leg": { + "type": "geometry", + "geometry": [0.25, 0.75, 0.25], + "position": [0, -0.375, 0], + "uvMap": [ + [[0.25, 0.0625], [0.8125, 0.1875]], + [[0.375, 0.0625], [0.8125, 0.1875]], + [[0.3125, 0.0625], [0.75, 0.0625]], + [[0.375, 0.0625], [0.75, 0.0625]], + [[0.4375, 0.0625], [0.8125, 0.1875]], + [[0.3125, 0.0625], [0.8125, 0.1875]] + ], + "children": [ + "left-leg-sleeve" + ] + }, + "left-leg-sleeve": { + "type": "geometry", + "geometry": [0.35, 0.85, 0.35], + "position": [0, 0, 0], + "uvMap": [ + [[0, 0.0625], [0.8125, 0.1875]], + [[0.125, 0.0625], [0.8125, 0.1875]], + [[0.0625, 0.0625], [0.75, 0.0625]], + [[0.125, 0.0625], [0.75, 0.0625]], + [[0.1875, 0.0625], [0.8125, 0.1875]], + [[0.0625, 0.0625], [0.8125, 0.1875]] + ] + }, + "right-pelvis": { + "type": "group", + "position": [0.125, -0.375, 0], + "children": [ + "right-leg" + ] + }, + "right-leg": { + "type": "geometry", + "geometry": [0.25, 0.75, 0.25], + "position": [0, -0.375, 0], + "uvMap": [ + [[0, 0.0625], [0.3125, 0.1875]], + [[0.125, 0.0625], [0.3125, 0.1875]], + [[0.0625, 0.0625], [0.25, 0.0625]], + [[0.125, 0.0625], [0.25, 0.0625]], + [[0.1875, 0.0625], [0.3125, 0.1875]], + [[0.0625, 0.0625], [0.3125, 0.1875]] + ], + "children": [ + "right-leg-sleeve" + ] + }, + "right-leg-sleeve": { + "type": "geometry", + "geometry": [0.35, 0.85, 0.35], + "position": [0, 0, 0], + "uvMap": [ + [[0, 0.0625], [0.5625, 0.1875]], + [[0.125, 0.0625], [0.5625, 0.1875]], + [[0.0625, 0.0625], [0.5, 0.0625]], + [[0.125, 0.0625], [0.5, 0.0625]], + [[0.1875, 0.0625], [0.5625, 0.1875]], + [[0.0625, 0.0625], [0.5625, 0.1875]] + ] + } + } +} diff --git a/data/resources/XVoxel/pack.json b/data/resources/XVoxel/pack.json new file mode 100644 index 0000000..2fd0bc2 --- /dev/null +++ b/data/resources/XVoxel/pack.json @@ -0,0 +1,54 @@ +{ + "name": "OpenVoxelProject", + "description": "OpenVoxelProject's base resources", + "textures": { + "block-atlas": { + "path": "textures/block-atlas.png", + "size": [64, 64], + "totalSize": [512, 512] + }, + "grass": { + "texture": "block-atlas", + "sided": true, + "sideMaps": [ + [3], + [0, 1, 4, 5], + [2] + ], + "positions": [ + [0, 0], + [64, 0], + [128, 0] + ], + "sizes": [ + [64, 64], + [64, 64], + [64, 64] + ] + }, + "dirt": { + "texture": "block-atlas", + "position": [128, 0], + "size": [64, 64] + }, + "stone": { + "texture": "block-atlas", + "position": [192, 0], + "size": [64, 64] + }, + "glitch": { + "texture": "block-atlas", + "position": [256, 0], + "size": [64, 64] + }, + "character": { + "path": "textures/character.png", + "totalSize": [256, 256] + } + }, + "models": { + "character": { + "path": "models/character.json" + } + } +} diff --git a/data/resources/XVoxel/textures/block-atlas.png b/data/resources/XVoxel/textures/block-atlas.png new file mode 100644 index 0000000..12678ab Binary files /dev/null and b/data/resources/XVoxel/textures/block-atlas.png differ diff --git a/data/resources/XVoxel/textures/character.png b/data/resources/XVoxel/textures/character.png new file mode 100644 index 0000000..f2cba9d Binary files /dev/null and b/data/resources/XVoxel/textures/character.png differ diff --git a/data/strings/en-US.json b/data/strings/en-US.json new file mode 100644 index 0000000..90657c1 --- /dev/null +++ b/data/strings/en-US.json @@ -0,0 +1,32 @@ +{ + "menu.main.play.label": "Play", + "menu.main.settings.label": "Settings", + "menu.main.quit.label": "Quit", + "menu.play.singleplayer.label": "Singleplayer", + "menu.play.multiplayer.label": "Multiplayer", + "play.singleplayer.worldnameinput.label": "World name", + "play.singleplayer.worldnameinput.placeholder": "Enter a world name here. ", + "play.singleplayer.newgamebutton.label": "New game", + "play.singleplayer.loadgamebutton.label": "Load game", + "play.singleplayer.openworld.label": "Load world \"${WORLD_NAME}\"", + "play.multiplayer.serveraddressinput.label": "Server address", + "play.multiplayer.serveraddressinput.placeholder": "Enter a server address here. ", + "play.multiplayer.serverconnectbutton.label": "Connect", + "play.multiplayer.loadmatrixworldsbutton.label": "Load Matrix worlds", + "menu.settings.user.label": "User", + "menu.settings.video.label": "Video", + "menu.settings.audio.label": "Audio", + "menu.settings.input.label": "Input", + "settings.user.username.label": "Username", + "settings.user.username.placeholder": "Enter your username here. ", + "settings.user.login.label": "Log in", + "settings.login.homeserver-url.label": "Homeserver URL", + "settings.login.mxid.label": "MXID (Matrix ID)", + "settings.login.mxid.placeholder": "@user:domain.tld", + "settings.login.password.label": "Password", + "settings.login.password.placeholder": "T0p S3cr3t", + "settings.video.fieldofview.label": "Field of view", + "settings.video.fieldofview.text": "${ANGLE}${UNIT}", + "settings.audio.mastervolume.label": "Master volume", + "settings.audio.mastervolume.text": "${VOLUME}${UNIT}" +} diff --git a/data/strings/fr.json b/data/strings/fr.json new file mode 100644 index 0000000..15d5e49 --- /dev/null +++ b/data/strings/fr.json @@ -0,0 +1,32 @@ +{ + "menu.main.play.label": "Jouer", + "menu.main.settings.label": "Paramètres", + "menu.main.quit.label": "Quitter", + "menu.play.singleplayer.label": "Solo", + "menu.play.multiplayer.label": "Multijoueur", + "play.singleplayer.worldnameinput.label": "Nom du monde", + "play.singleplayer.worldnameinput.placeholder": "Entrez un nom de monde ici. ", + "play.singleplayer.newgamebutton.label": "Nouvelle partie", + "play.singleplayer.loadgamebutton.label": "Charger une partie", + "play.singleplayer.openworld.label": "Charger le monde \"${WORLD_NAME}\"", + "play.multiplayer.serveraddressinput.label": "Adresse du serveur", + "play.multiplayer.serveraddressinput.placeholder": "Entrez une adresse de serveur ici. ", + "play.multiplayer.serverconnectbutton.label": "Se connecter", + "play.multiplayer.loadmatrixworldsbutton.label": "Charger les mondes Matrix", + "menu.settings.user.label": "Utilisateur", + "menu.settings.video.label": "Vidéo", + "menu.settings.audio.label": "Audio", + "menu.settings.input.label": "Entrée", + "settings.user.username.label": "Nom d'utilisateur", + "settings.user.username.placeholder": "Entrez votre nom d'utilisateur ici. ", + "settings.user.login.label": "Se connecter", + "settings.login.homeserver-url.label": "URL de votre serveur", + "settings.login.mxid.label": "MXID (Identifiant Matrix)", + "settings.login.mxid.placeholder": "@utilisateur:domaine.tld", + "settings.login.password.label": "Mot de passe", + "settings.login.password.placeholder": "T0p S3cr3t", + "settings.video.fieldofview.label": "Champ de vision", + "settings.video.fieldofview.text": "${ANGLE}${UNIT}", + "settings.audio.mastervolume.label": "Volume global", + "settings.audio.mastervolume.text": "${VOLUME}${UNIT}" +} diff --git a/game.js b/game.js new file mode 100644 index 0000000..090e335 --- /dev/null +++ b/game.js @@ -0,0 +1,488 @@ +const loaderData = { + "utils": { + "type": "global", + "source": "./lib/utils.js", + "loadAs": "utils", + "dependsOn": [] + }, + "three": { + "type": "global", + "source": "./lib/three.js", + "loadAs": "three", + "dependsOn": [] + }, + /*"cannon": { + "type": "global", + "source": "./lib/cannon-es.js", + "loadAs": "cannon", + "dependsOn": [] + },*/ + "fflate": { + "type": "global", + "source": "./lib/fflate.js", + "loadAs": "fflate", + "dependsOn": [] + }, + "olm": { + "type": "global", + "source": "./lib/olm.js", + "loadAs": "olm", + "dependsOn": [] + }, + "matrix": { + "type": "global", + "source": "./lib/browser-matrix.min.js", + "loadAs": "matrix", + "dependsOn": ["olm"] + }, + "peer": { + "type": "global", + "source": "./lib/peer.js", + "loadAs": "peer", + "dependsOn": [] + }, + "gamecore": { + "type": "global", + "source": "./core.js", + "loadAs": "gamecore", + "dependsOn": ["utils"] + }, + "locales": { + "type": "global", + "source": "./lib/locales.js", + "loadAs": "locales", + "dependsOn": [] + }, + "menu": { + "type": "global", + "source": "./menu.js", + "loadAs": "menu", + "dependsOn": ["locales"] + } +}; + +const throwError = window.throwError = function (err) { + alert(err + "\n" + err.stack); + throw err; +}; + +var onLoadingFinished = function (modules) { + var initPromises = {}; + var promiseReturners = {}; + + initPromises["render"] = new Promise(function (resolve, reject) { + promiseReturners["render"] = { + resolve, + reject + }; + }); + + initPromises["input"] = new Promise(function (resolve, reject) { + promiseReturners["input"] = { + resolve, + reject + }; + }); + + core.on("render-init", function () { + promiseReturners["render"].resolve(); + + fetch("./data/resources/XVoxel.zip").then(function (response) { + if (response.status != 200) return throwError(new Error("ENOENT")); + + response.arrayBuffer().then(function (arrayBuffer) { + core.modules["resources"].ResourcePack.loadFromZIP(arrayBuffer).then(function (pack) { + window.resourcePacks.push(pack); + + + }).catch(throwError); + }).catch(throwError); + }).catch(throwError); + }); + + core.on("input-init", function () { + promiseReturners["input"].resolve(); + }); + + Promise.all(Object.values(initPromises)).then(function () { + addPlayer(0); + }); +}; + +window.onload = function (event) { + renderersContainer = document.querySelector("#renderers"); + var librariesToLoad = Object.keys(loaderData); + + var libraryLoaders = []; + + for (var l = 0; l < librariesToLoad.length; l++) { + libraryLoaders.push( + loadFromMeta(librariesToLoad[l], loaderData[librariesToLoad[l]]) + ); + } + + Promise.all(libraryLoaders).then(function (libraries) { + core = window.core = new window.gamecore.GameCore(); + + fetch("./data/strings/" + window.currentLanguage + ".json").then(function (response) { + if (response.status != 200) return throwError(new Error("ENOENT")); + + response.text().then(function (text) { + window.locales.loadFromJSON(window.currentLanguage, JSON.parse(text)); + + menu.makeMenu(); + }).catch(throwError); + }).catch(throwError); + + onLoadingFinished(core.modules); + + core.init(gamecore.loadData.modules).then(function (gameCore) { + for (var moduleName in core.modules) { + if (core.modules.hasOwnProperty(moduleName)) { + var thisModule = core.modules[moduleName]; + + if ((typeof thisModule) != "object") continue; + + if ("menus" in thisModule) { + for (var menuName in thisModule.menus) { + if (thisModule.menus.hasOwnProperty(menuName)) { + if (!(menuName in menu.menuData)) { + menu.menuData[menuName] = thisModule.menus[menuName]; + } else { + var thisMenu = thisModule.menus[menuName]; + + if (!("elements" in thisMenu)) continue; + + for (var e = 0; e < thisMenu.elements.length; e++) { + menu.menuData[menuName].elements.push(thisMenu.elements[e]); + } + } + + menu.menus[menuName] = menu.constructMenu(menuName, menu.menuData[menuName]); + } + } + } + } + } + + window.menu.showMenu("main", 0); + }).catch(throwError); + }).catch(throwError); +}; + +var loadFromMeta = function (name, metadata) { + return new Promise((function (resolve, reject) { + var dependencies = []; + + if (metadata.dependsOn) { + for (var d = 0; d < metadata.dependsOn.length; d++) { + var dependencyName = metadata.dependsOn[d]; + var dependency = loaderData[dependencyName]; + + if (!loadings[dependencyName]) { + loadings[dependencyName] = loadFromMeta(dependencyName, dependency); + } + dependencies.push(loadings[dependencyName]); + } + } + + Promise.all(dependencies).then((function (deps) { + loadings[name] = load(metadata.source).then(function (mod) { + window[metadata.loadAs || name] = mod; + + resolve(mod); + }).catch(throwError); + }).bind(name)).catch(throwError); + }).bind(name)); +}; + +var render = window.render = function (instanceIndex) { + if (instanceWorlds[instanceIndex]) { + renderers[instanceIndex].render(worlds[instanceWorlds[instanceIndex]], cameras[instanceIndex]); + } +}; + +var createWorld = window.createWorld = function (name, generator = "flat", options, generateInitialChunks = true) { + return new Promise(function (resolve, reject) { + window.worlds[name] = new core.modules["world"].World({ + "generator": generator + }); + + if (!generateInitialChunks) return resolve(window.worlds[name]); + + var min = [-4, 0, -4]; + var max = [4, 8, 4]; + + var positions = []; + + for (var x = min[0]; x < max[0]; x++) { + for (var z = min[2]; z < max[2]; z++) { + for (var y = min[1]; y < max[1]; y++) { + positions.push([x, y, z]); + } + } + } + + var chunkGenerators = []; + + genNext = function (pos, p) { + chunkGenerators.push( + worlds[name].generateChunk(pos[p]) + .then(function (chunk) { + if (pos[p + 1]) return genNext(pos, p + 1); + + Promise.all(chunkGenerators).then(function (chunks) { + resolve(worlds[name]); + }).catch(throwError); + }) + .catch(throwError) + ); + }; + + genNext(positions, 0); + }); +}; + +var startGame = window.startGame = function (instance, worldName) { + instanceWorlds[instance] = worldName; + renderers[instance].setAnimationLoop(render.bind(window, instance)); + + inputs[instance].grab(); + + var chunkSize = window.worlds[worldName].chunkSize; + + var positions = []; + + worlds[worldName].chunks.forEach(function (chunk, c) { + positions.push( + c.split(":") + .map(coord => parseInt(coord)) + ); + }); + + if (positions.length > 0) { + constructNext = function (pos, p) { + worlds[worldName].constructChunk(pos[p]).then(function (chunk) { + worlds[worldName].addChunk(chunk); + + if (pos[p + 1]) return constructNext(pos, p + 1); + }).catch(throwError); + }; + + constructNext(positions, 0); + } +}; + +window.addEventListener("resize", function (event) { + reorganizeRenderers(false); + + for (var r = 0; r < renderers.length; r++) { + var rdr = renderers[r]; + var rdrDOM = rdr.domElement; + + var cam = cameras[r]; + + rdr.setSize(rdrDOM.clientWidth, rdrDOM.clientHeight); + + cam.aspect = rdrDOM.clientWidth / rdrDOM.clientHeight; + cam.updateProjectionMatrix(); + } +}); + +var reorganizeRenderers = function (remakeLayout = true) { + var rows = []; + var rowAmount = Math.round(Math.sqrt(renderers.length)); + + if (remakeLayout) { + for (var r = renderersContainer.childElementCount - 1; r >= 0; r--) { + renderersContainer.children.item(r).remove(); + } + + for (var r = 0; r < rowAmount; r++) { + rows[r] = document.createElement("div"); + + rows[r].style.width = "100%"; + rows[r].style.height = "calc(100% / " + rowAmount + ")"; + + renderersContainer.append(rows[r]); + } + + for (var r = 0; r < renderers.length; r++) { + rows[Math.floor((r / renderers.length) * rowAmount)].append(renderers[r].domElement); + } + } else { + for (var r = renderersContainer.childElementCount - 1; r >= 0; r--) { + rows[r] = renderersContainer.children.item(r); + } + } + + for (var r = 0; r < rowAmount; r++) { + var row = rows[r]; + + for (var rd = 0; rd < row.childElementCount; rd++) { + row.children[rd].style.width = "calc(100% / " + row.childElementCount + ")"; + row.children[rd].style.height = "100%"; + } + } +}; + +var addPlayer = function (instance, controller) { + renderers[instance] = new core.modules["render"].Renderer({ + "preserveDrawingBuffer": true, + "autoResize": true + }); + + var instanceDOMElement = renderers[instance].domElement; + + reorganizeRenderers(); + + for (var r = 0; r < renderers.length; r++) { + var rdr = renderers[r]; + var rdrDOM = rdr.domElement; + + rdr.setSize(rdrDOM.clientWidth, rdrDOM.clientHeight, false); + } + + cameras[instance] = new core.modules["render"].PerspectiveCamera(130, instanceDOMElement.width / instanceDOMElement.height, 0.0005, 8192); + + if (controller instanceof core.modules["input"].Controller) { + inputs[instance] = controller; + inputs[instance].domElement = instanceDOMElement; + } else { + inputs[instance] = new core.modules["input"].Controller("desktop", { + "domElement": instanceDOMElement + }); + } + + renderers[instance].setAnimationLoop(render.bind(window, instance)); +}; + +var quitGame = window.quitGame = function (instance) { + +}; + +var closeGame = window.closeGame = function () { + window.close(); +}; + +var openSave = window.openSave = function (archive) { + return new Promise(function (resolve, reject) { + window.fflate.unzip(new Uint8Array(archive), {}, function (error, data) { + if (error) return reject(error); + + var loadedWorlds = {}; + + for (var filePath in data) { + if (data.hasOwnProperty(filePath)) { + var matches = filePath.match(/([^\/]+)\/meta\.json/); + + if (!matches) continue; + if (matches[0] !== filePath) continue; + if (!matches[1]) continue; + + var worldFolderName = matches[1]; + + let worldMeta; + try { + worldMeta = JSON.parse(window.fflate.strFromU8(data["" + worldFolderName + "/meta.json"])); + } catch (err) { + console.error(err); + continue; + } + + var worldName = worldMeta.name; + + loadedWorlds[worldName] = new core.modules["world"].World({ + "generator": worldMeta.generator + }); + + var chunkFileNameMatcher = new RegExp(worldFolderName + "\/chunks\/(-?[0-9]+:-?[0-9]+:-?[0-9]+)\.json"); + + for (var fileName in data) { + if (data.hasOwnProperty(fileName)) { + var nameMatches = fileName.match(chunkFileNameMatcher); + + if (!nameMatches) continue; + if (nameMatches[0] !== fileName) continue; + if (!nameMatches[1]) continue; + + var chunkFileName = nameMatches[1]; + + let chunkData; + try { + chunkData = JSON.parse(window.fflate.strFromU8(data[worldFolderName + "/chunks/" + chunkFileName + ".json"])); + } catch (err) { + console.error(err); + continue; + } + + var thisChunk = new core.modules["world"].Chunk(chunkData.size, loadedWorlds[worldName]); + + for (var b = 0; b < chunkData.blocks.length; b++) { + thisChunk.blocks[b] = chunkData.blocks[b]; + } + + var chunkPosition = chunkFileName.split(":").map(function (c) { + return parseInt(c); + }); + + loadedWorlds[worldName].setChunk(thisChunk, chunkPosition); + loadedWorlds[worldName].add(thisChunk); + } + } + } + } + + resolve(loadedWorlds); + }); + }); +}; + +var makeSave = window.makeSave = function () { + return new Promise(function (resolve, reject) { + var files = {}; + + for (var world in worlds) { + if (worlds.hasOwnProperty(world)) { + var thisWorld = worlds[world].toJSON(); + + var worldMeta = { + "name": world, + "generator": thisWorld.generator + }; + + files[world + "/meta.json"] = fflate.strToU8(JSON.stringify(worldMeta, null, "\t")); + + for (var chunk in thisWorld.chunks) { + if (thisWorld.chunks.hasOwnProperty(chunk)) { + var thisChunk = thisWorld.chunks[chunk]; + + files[world + "/chunks/" + chunk + ".json"] = fflate.strToU8(JSON.stringify(thisChunk, null, "\t")); + } + } + } + } + + window.fflate.zip(files, function (error, archive) { + if (error) return reject(error); + resolve(archive); + }); + }); +}; + +let core; + +var currentLanguage = window.currentLanguage = "en-US"; + +var instanceWorlds = window.instanceWorlds = []; + +var renderers = window.renderers = []; +var cameras = window.cameras = []; +var inputs = window.inputs = []; + +var loadings = {}; + +let resourcePacks = window.resourcePacks = []; +let worlds = window.worlds = {}; + +let renderersContainer; diff --git a/index.html b/index.html new file mode 100644 index 0000000..79acd8e --- /dev/null +++ b/index.html @@ -0,0 +1,59 @@ + + +
+ + +>2]*D)+Q(Q(N[i>>2]*n)+Q(G*N[i+4>>2])))){h=J[i+20>>2];J[y+24>>2]=J[i+16>>2];J[y+28>>2]=h;h=J[i+12>>2];J[y+16>>2]=J[i+8>>2];J[y+20>>2]=h;h=J[i+4>>2];J[y+8>>2]=J[i>>2];J[y+12>>2]=h;h=J[e+4>>2];J[i>>2]=J[e>>2];J[i+4>>2]=h;h=J[e+12>>2];J[i+8>>2]=J[e+8>>2];J[i+12>>2]=h;h=J[e+20>>2];J[i+16>>2]=J[e+16>>2];J[i+20>>2]=h;e=J[y+12>>2];h=f+J[t+12>>2]|0;J[h>>2]=J[y+8>>2];J[h+4>>2]=e;e=J[y+28>>2];J[h+16>>2]=J[y+24>>2];J[h+20>>2]=e;e=J[y+20>>2];J[h+8>>2]=J[y+16>>2];J[h+12>>2]=e;j=J[t+4>>2]}c=c+1|0;if((j|0)>(c|0)){continue}break}h=J[t+12>>2];J[h+16>>2]=-246811958;if((j|0)>=2){C=N[h+8>>2];B=N[h+4>>2];z=N[h>>2];E=Q(-G);w=Q(-n);v=Q(-D);c=1;while(1){e=h+P(c,24)|0;T=Q(N[e+4>>2]-B);U=Q(N[e>>2]-z);I=Q(N[e+8>>2]-C);N[e+16>>2]=Q(Q(Q(Q(n*T)+Q(U*E))*N[d+8>>2])+Q(Q(Q(Q(G*I)+Q(T*v))*N[d>>2])+Q(N[d+4>>2]*Q(Q(D*U)+Q(I*w)))))/Q(Y(Q(Q(I*I)+Q(Q(U*U)+Q(T*T)))));c=c+1|0;if((j|0)!=(c|0)){continue}break}}c=J[h+12>>2];J[y+16>>2]=J[h+8>>2];J[y+20>>2]=c;c=J[h+4>>2];J[y+8>>2]=J[h>>2];J[y+12>>2]=c;Tl(t,y+8|0,1,j-1|0);h=J[t+12>>2];c=J[d+100>>2];if((c|0)!=J[d+104>>2]){break X}r=c?c<<1:1;if((r|0)<=(c|0)){break X}if(r){break Z}j=0;break Y}if((j|0)!=1){break W}c=J[d+100>>2];while(1){h=J[t+12>>2];_:{if(J[d+104>>2]!=(c|0)){break _}k=c?c<<1:1;if((k|0)<=(c|0)){break _}$:{if(!k){j=0;break $}J[8369]=J[8369]+1;j=ia[J[6782]](P(k,24),16)|0;c=J[d+100>>2]}aa:{if((c|0)<=0){break aa}e=0;if((c|0)!=1){o=c&-2;r=0;while(1){f=P(e,24);i=f+j|0;q=f+J[d+108>>2]|0;f=J[q+4>>2];J[i>>2]=J[q>>2];J[i+4>>2]=f;f=J[q+20>>2];J[i+16>>2]=J[q+16>>2];J[i+20>>2]=f;f=J[q+12>>2];J[i+8>>2]=J[q+8>>2];J[i+12>>2]=f;f=P(e|1,24);i=f+j|0;q=f+J[d+108>>2]|0;f=J[q+4>>2];J[i>>2]=J[q>>2];J[i+4>>2]=f;f=J[q+12>>2];J[i+8>>2]=J[q+8>>2];J[i+12>>2]=f;f=J[q+20>>2];J[i+16>>2]=J[q+16>>2];J[i+20>>2]=f;e=e+2|0;r=r+2|0;if((o|0)!=(r|0)){continue}break}}if(!(c&1)){break aa}c=P(e,24);e=c+j|0;f=c+J[d+108>>2]|0;c=J[f+4>>2];J[e>>2]=J[f>>2];J[e+4>>2]=c;c=J[f+20>>2];J[e+16>>2]=J[f+16>>2];J[e+20>>2]=c;c=J[f+12>>2];J[e+8>>2]=J[f+8>>2];J[e+12>>2]=c}c=J[d+108>>2];if(!(c?!c|!K[d+112|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](c)}J[d+108>>2]=j;H[d+112|0]=1;J[d+104>>2]=k;c=J[d+100>>2]}e=J[d+108>>2]+P(c,24)|0;c=J[h+4>>2];J[e>>2]=J[h>>2];J[e+4>>2]=c;c=J[h+20>>2];J[e+16>>2]=J[h+16>>2];J[e+20>>2]=c;c=J[h+12>>2];J[e+8>>2]=J[h+8>>2];J[e+12>>2]=c;c=J[d+100>>2]+1|0;J[d+100>>2]=c;s=s+1|0;if((s|0)>2]){continue}break}break W}J[8369]=J[8369]+1;j=ia[J[6782]](P(r,24),16)|0;c=J[d+100>>2]}ba:{if((c|0)<=0){break ba}e=0;if((c|0)!=1){o=c&-2;while(1){f=P(e,24);i=f+j|0;k=f+J[d+108>>2]|0;f=J[k+4>>2];J[i>>2]=J[k>>2];J[i+4>>2]=f;f=J[k+20>>2];J[i+16>>2]=J[k+16>>2];J[i+20>>2]=f;f=J[k+12>>2];J[i+8>>2]=J[k+8>>2];J[i+12>>2]=f;f=P(e|1,24);i=f+j|0;k=f+J[d+108>>2]|0;f=J[k+4>>2];J[i>>2]=J[k>>2];J[i+4>>2]=f;f=J[k+12>>2];J[i+8>>2]=J[k+8>>2];J[i+12>>2]=f;f=J[k+20>>2];J[i+16>>2]=J[k+16>>2];J[i+20>>2]=f;e=e+2|0;p=p+2|0;if((o|0)!=(p|0)){continue}break}}if(!(c&1)){break ba}c=P(e,24);e=c+j|0;f=c+J[d+108>>2]|0;c=J[f+4>>2];J[e>>2]=J[f>>2];J[e+4>>2]=c;c=J[f+20>>2];J[e+16>>2]=J[f+16>>2];J[e+20>>2]=c;c=J[f+12>>2];J[e+8>>2]=J[f+8>>2];J[e+12>>2]=c}c=J[d+108>>2];if(!(c?!c|!K[d+112|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](c)}J[d+108>>2]=j;H[d+112|0]=1;J[d+104>>2]=r;c=J[d+100>>2]}e=J[d+108>>2]+P(c,24)|0;c=J[h+4>>2];J[e>>2]=J[h>>2];J[e+4>>2]=c;c=J[h+20>>2];J[e+16>>2]=J[h+16>>2];J[e+20>>2]=c;c=J[h+12>>2];J[e+8>>2]=J[h+8>>2];J[e+12>>2]=c;c=J[d+100>>2]+1|0;J[d+100>>2]=c;h=J[t+12>>2];ca:{if(J[d+104>>2]!=(c|0)){break ca}r=c?c<<1:1;if((r|0)<=(c|0)){break ca}da:{if(!r){j=0;break da}J[8369]=J[8369]+1;j=ia[J[6782]](P(r,24),16)|0;c=J[d+100>>2]}ea:{if((c|0)<=0){break ea}e=0;if((c|0)!=1){o=c&-2;p=0;while(1){f=P(e,24);i=f+j|0;k=f+J[d+108>>2]|0;f=J[k+4>>2];J[i>>2]=J[k>>2];J[i+4>>2]=f;f=J[k+20>>2];J[i+16>>2]=J[k+16>>2];J[i+20>>2]=f;f=J[k+12>>2];J[i+8>>2]=J[k+8>>2];J[i+12>>2]=f;f=P(e|1,24);i=f+j|0;k=f+J[d+108>>2]|0;f=J[k+4>>2];J[i>>2]=J[k>>2];J[i+4>>2]=f;f=J[k+12>>2];J[i+8>>2]=J[k+8>>2];J[i+12>>2]=f;f=J[k+20>>2];J[i+16>>2]=J[k+16>>2];J[i+20>>2]=f;e=e+2|0;p=p+2|0;if((o|0)!=(p|0)){continue}break}}if(!(c&1)){break ea}c=P(e,24);e=c+j|0;f=c+J[d+108>>2]|0;c=J[f+4>>2];J[e>>2]=J[f>>2];J[e+4>>2]=c;c=J[f+20>>2];J[e+16>>2]=J[f+16>>2];J[e+20>>2]=c;c=J[f+12>>2];J[e+8>>2]=J[f+8>>2];J[e+12>>2]=c}c=J[d+108>>2];if(!(c?!c|!K[d+112|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](c)}J[d+108>>2]=j;H[d+112|0]=1;J[d+104>>2]=r;c=J[d+100>>2]}e=J[d+108>>2]+P(c,24)|0;c=J[h+28>>2];J[e>>2]=J[h+24>>2];J[e+4>>2]=c;c=J[h+44>>2];J[e+16>>2]=J[h+40>>2];J[e+20>>2]=c;c=J[h+36>>2];J[e+8>>2]=J[h+32>>2];J[e+12>>2]=c;h=J[d+100>>2];c=h+1|0;J[d+100>>2]=c;p=2;e=J[t+4>>2];if((e|0)==2|(h|0)<=0){break W}while(1){if((c|0)>=2){h=J[t+12>>2]+P(p,24)|0;G=N[h+8>>2];T=N[h+4>>2];U=N[h>>2];I=N[d+8>>2];C=N[d+4>>2];B=N[d>>2];j=J[d+108>>2];e=c;fa:{while(1){c=P(e,24)+j|0;f=c-48|0;v=N[f>>2];c=c-24|0;z=Q(v-N[c>>2]);n=N[f+4>>2];E=Q(n-T);w=Q(v-U);n=Q(n-N[c+4>>2]);W=Q(Q(Q(z*E)-Q(w*n))*I);_=n;n=N[f+8>>2];v=Q(n-G);n=Q(n-N[c+8>>2]);if(!(Q(W+Q(Q(Q(Q(_*v)-Q(E*n))*B)+Q(C*Q(Q(n*w)-Q(v*z)))))>Q(0))){c=e-1|0;J[d+100>>2]=c;f=(e|0)<3;e=c;if(!f){continue}break fa}break}ga:{if(J[d+104>>2]!=(e|0)){break ga}o=e<<1;if((o|0)<=(e|0)){break ga}J[8369]=J[8369]+1;j=ia[J[6782]](P(e,48),16)|0;r=J[d+100>>2];ha:{if((r|0)<=0){break ha}e=0;if((r|0)!=1){i=r&-2;s=0;while(1){c=P(e,24);f=c+j|0;k=c+J[d+108>>2]|0;c=J[k+4>>2];J[f>>2]=J[k>>2];J[f+4>>2]=c;c=J[k+20>>2];J[f+16>>2]=J[k+16>>2];J[f+20>>2]=c;c=J[k+12>>2];J[f+8>>2]=J[k+8>>2];J[f+12>>2]=c;c=P(e|1,24);f=c+j|0;k=c+J[d+108>>2]|0;c=J[k+4>>2];J[f>>2]=J[k>>2];J[f+4>>2]=c;c=J[k+12>>2];J[f+8>>2]=J[k+8>>2];J[f+12>>2]=c;c=J[k+20>>2];J[f+16>>2]=J[k+16>>2];J[f+20>>2]=c;e=e+2|0;s=s+2|0;if((i|0)!=(s|0)){continue}break}}if(!(r&1)){break ha}c=P(e,24);e=c+j|0;f=c+J[d+108>>2]|0;c=J[f+4>>2];J[e>>2]=J[f>>2];J[e+4>>2]=c;c=J[f+20>>2];J[e+16>>2]=J[f+16>>2];J[e+20>>2]=c;c=J[f+12>>2];J[e+8>>2]=J[f+8>>2];J[e+12>>2]=c}c=J[d+108>>2];if(!(c?!c|!K[d+112|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](c)}J[d+108>>2]=j;H[d+112|0]=1;J[d+104>>2]=o;e=J[d+100>>2]}c=J[h+4>>2];e=P(e,24)+j|0;J[e>>2]=J[h>>2];J[e+4>>2]=c;c=J[h+20>>2];J[e+16>>2]=J[h+16>>2];J[e+20>>2]=c;c=J[h+12>>2];J[e+8>>2]=J[h+8>>2];J[e+12>>2]=c;c=J[d+100>>2]+1|0;J[d+100>>2]=c}e=J[t+4>>2]}p=p+1|0;if((p|0)!=(e|0)){continue}break}}ga=y+32|0;j=0;F=0;h=0;ia:{if(J[d+100>>2]<=0){A=J[d+20>>2];break ia}while(1){k=P(h,24);r=k+J[d+108>>2]|0;ja:{if((j|0)!=(F|0)){break ja}f=j?j<<1:1;if((f|0)<=(j|0)){break ja}if(f){J[8369]=J[8369]+1;e=ia[J[6782]](f<<2,16)|0}else{e=0}ka:{la:{if((j|0)>0){p=0;c=0;if(j-1>>>0>=3){o=j&-4;s=0;while(1){q=c<<2;J[q+e>>2]=J[g+q>>2];i=q|4;J[i+e>>2]=J[g+i>>2];i=q|8;J[i+e>>2]=J[g+i>>2];i=q|12;J[i+e>>2]=J[g+i>>2];c=c+4|0;s=s+4|0;if((o|0)!=(s|0)){continue}break}}i=j&3;if(!i){break la}while(1){j=c<<2;J[j+e>>2]=J[g+j>>2];c=c+1|0;p=p+1|0;if((i|0)!=(p|0)){continue}break}break la}if(!g){break ka}}if(g){J[8370]=J[8370]+1;ia[J[6783]](g)}}g=e;j=f}J[(F<<2)+g>>2]=J[r+20>>2];A=J[d+20>>2];ma:{if((A|0)<=0){break ma}i=J[(k+J[d+108>>2]|0)+20>>2];c=0;f=J[d+28>>2];while(1){e=f+P(c,24)|0;if((i|0)!=J[e+20>>2]){c=c+1|0;if((A|0)!=(c|0)){continue}break ma}break}J[e+20>>2]=-1}F=F+1|0;h=h+1|0;if((h|0) >2]){continue}break}}na:{if((A|0)>0){h=0;o=J[d+28>>2];while(1){r=J[(o+P(h,24)|0)+20>>2];oa:{if(!u|(r|0)==-1){break oa}e=0;if((x|0)>0){while(1){c=0;pa:{while(1){if(J[(c<<2)+b>>2]==(e|0)){break pa}c=c+1|0;if((x|0)!=(c|0)){continue}break}c=P(e,36)+M|0;i=J[c+4>>2];if((i|0)<=0){break pa}j=J[c+12>>2];c=0;while(1){s=1;if((r|0)==J[j+(c<<2)>>2]){break na}c=c+1|0;if((i|0)!=(c|0)){continue}break}}e=e+1|0;if((u|0)!=(e|0)){continue}break oa}}while(1){c=P(e,36)+M|0;i=J[c+4>>2];if((i|0)>0){j=J[c+12>>2];c=0;while(1){s=1;if((r|0)==J[j+(c<<2)>>2]){break na}c=c+1|0;if((i|0)!=(c|0)){continue}break}}e=e+1|0;if((u|0)!=(e|0)){continue}break}}h=h+1|0;if((A|0)!=(h|0)){continue}break}}r=J[a+52>>2];c=J[r+28>>2];if((c|0)==J[r+32>>2]){zh(r+24|0,c?c<<1:1);c=J[r+28>>2]}t=J[r+36>>2]+P(c,36)|0;J[t+12>>2]=0;H[t+16|0]=1;J[t+4>>2]=0;J[t+8>>2]=0;qa:{if((F|0)<=0){J[t+4>>2]=F;break qa}J[8369]=J[8369]+1;f=F<<2;k=ia[J[6782]](f,16)|0;q=J[t+12>>2];i=J[t+4>>2];ra:{sa:{if((i|0)>0){s=0;c=0;if(i-1>>>0>=3){h=i&-4;j=0;while(1){o=c<<2;J[o+k>>2]=J[o+q>>2];e=o|4;J[e+k>>2]=J[e+q>>2];e=o|8;J[e+k>>2]=J[e+q>>2];e=o|12;J[e+k>>2]=J[e+q>>2];c=c+4|0;j=j+4|0;if((h|0)!=(j|0)){continue}break}}h=i&3;if(!h){break sa}while(1){e=c<<2;J[e+k>>2]=J[e+q>>2];c=c+1|0;s=s+1|0;if((h|0)!=(s|0)){continue}break}break sa}if(!q){break ra}}if(!K[t+16|0]){break ra}if(q){J[8370]=J[8370]+1;ia[J[6783]](q)}}H[t+16|0]=1;J[t+12>>2]=k;J[t+8>>2]=F;p=0;j=qa(k,0,f);J[t+4>>2]=F;c=0;if(F-1>>>0>=3){h=F&-4;s=0;while(1){f=c<<2;J[f+j>>2]=J[f+g>>2];e=f|4;J[e+j>>2]=J[e+g>>2];e=f|8;J[e+j>>2]=J[e+g>>2];e=f|12;J[e+j>>2]=J[e+g>>2];c=c+4|0;s=s+4|0;if((h|0)!=(s|0)){continue}break}}h=F&3;if(!h){break qa}while(1){e=c<<2;J[e+j>>2]=J[e+g>>2];c=c+1|0;p=p+1|0;if((h|0)!=(p|0)){continue}break}}e=K[d+79|0]|K[d+80|0]<<8|(K[d+81|0]<<16|K[d+82|0]<<24);c=K[d+75|0]|K[d+76|0]<<8|(K[d+77|0]<<16|K[d+78|0]<<24);H[t+20|0]=c;H[t+21|0]=c>>>8;H[t+22|0]=c>>>16;H[t+23|0]=c>>>24;H[t+24|0]=e;H[t+25|0]=e>>>8;H[t+26|0]=e>>>16;H[t+27|0]=e>>>24;e=K[d+87|0]|K[d+88|0]<<8|(K[d+89|0]<<16|K[d+90|0]<<24);c=K[d+83|0]|K[d+84|0]<<8|(K[d+85|0]<<16|K[d+86|0]<<24);H[t+28|0]=c;H[t+29|0]=c>>>8;H[t+30|0]=c>>>16;H[t+31|0]=c>>>24;H[t+32|0]=e;H[t+33|0]=e>>>8;H[t+34|0]=e>>>16;H[t+35|0]=e>>>24;J[r+28>>2]=J[r+28>>2]+1;s=0}c=s;e=J[d+108>>2];if(!(e?!e|!K[d+112|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](e)}if(g){J[8370]=J[8370]+1;ia[J[6783]](g)}g=J[d+28>>2];if(!(g?!g|!K[d+32|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](g)}if(!(c&(x|0)>0)){break L}}A=0;while(1){j=0;g=P(J[(A<<2)+b>>2],36)+M|0;S=J[g+4>>2];ta:{if((S|0)<=0){break ta}p=0;J[8369]=J[8369]+1;c=S<<2;j=ia[J[6782]](c,16)|0;o=qa(j,0,c);i=J[g+12>>2];c=0;if(S-1>>>0>=3){h=S&-4;s=0;while(1){f=c<<2;J[f+o>>2]=J[f+i>>2];e=f|4;J[e+o>>2]=J[e+i>>2];e=f|8;J[e+o>>2]=J[e+i>>2];e=f|12;J[e+o>>2]=J[e+i>>2];c=c+4|0;s=s+4|0;if((h|0)!=(s|0)){continue}break}}h=S&3;if(!h){break ta}while(1){e=c<<2;J[e+o>>2]=J[e+i>>2];c=c+1|0;p=p+1|0;if((h|0)!=(p|0)){continue}break}}e=K[g+24|0]|K[g+25|0]<<8|(K[g+26|0]<<16|K[g+27|0]<<24);c=K[g+20|0]|K[g+21|0]<<8|(K[g+22|0]<<16|K[g+23|0]<<24);H[d+19|0]=c;H[d+20|0]=c>>>8;H[d+21|0]=c>>>16;H[d+22|0]=c>>>24;H[d+23|0]=e;H[d+24|0]=e>>>8;H[d+25|0]=e>>>16;H[d+26|0]=e>>>24;e=K[g+32|0]|K[g+33|0]<<8|(K[g+34|0]<<16|K[g+35|0]<<24);c=K[g+28|0]|K[g+29|0]<<8|(K[g+30|0]<<16|K[g+31|0]<<24);H[d+27|0]=c;H[d+28|0]=c>>>8;H[d+29|0]=c>>>16;H[d+30|0]=c>>>24;H[d+31|0]=e;H[d+32|0]=e>>>8;H[d+33|0]=e>>>16;H[d+34|0]=e>>>24;O=J[a+52>>2];e=J[O+28>>2];ua:{if((e|0)!=J[O+32>>2]){break ua}k=e?e<<1:1;if((k|0)<=(e|0)){break ua}va:{if(!k){r=0;break va}J[8369]=J[8369]+1;r=ia[J[6782]](P(k,36),16)|0;e=J[O+28>>2]}wa:{if((e|0)<=0){break wa}F=0;while(1){g=J[O+36>>2];c=P(F,36);L=c+r|0;J[L+12>>2]=0;H[L+16|0]=1;J[L+4>>2]=0;J[L+8>>2]=0;g=c+g|0;y=J[g+4>>2];xa:{if((y|0)<=0){J[L+4>>2]=y;break xa}J[8369]=J[8369]+1;i=y<<2;t=ia[J[6782]](i,16)|0;V=J[L+12>>2];o=J[L+4>>2];ya:{za:{if((o|0)>0){p=0;c=0;if(o-1>>>0>=3){f=o&-4;s=0;while(1){q=c<<2;J[q+t>>2]=J[q+V>>2];h=q|4;J[h+t>>2]=J[h+V>>2];h=q|8;J[h+t>>2]=J[h+V>>2];h=q|12;J[h+t>>2]=J[h+V>>2];c=c+4|0;s=s+4|0;if((f|0)!=(s|0)){continue}break}}f=o&3;if(!f){break za}while(1){h=c<<2;J[h+t>>2]=J[h+V>>2];c=c+1|0;p=p+1|0;if((f|0)!=(p|0)){continue}break}break za}if(!V){break ya}}if(!K[L+16|0]){break ya}if(V){J[8370]=J[8370]+1;ia[J[6783]](V)}}H[L+16|0]=1;J[L+12>>2]=t;J[L+8>>2]=y;p=0;q=qa(t,0,i);J[L+4>>2]=y;o=J[g+12>>2];c=0;if(y-1>>>0>=3){f=y&-4;s=0;while(1){i=c<<2;J[i+q>>2]=J[i+o>>2];h=i|4;J[h+q>>2]=J[h+o>>2];h=i|8;J[h+q>>2]=J[h+o>>2];h=i|12;J[h+q>>2]=J[h+o>>2];c=c+4|0;s=s+4|0;if((f|0)!=(s|0)){continue}break}}f=y&3;if(!f){break xa}while(1){h=c<<2;J[h+q>>2]=J[h+o>>2];c=c+1|0;p=p+1|0;if((f|0)!=(p|0)){continue}break}}c=J[g+24>>2];J[L+20>>2]=J[g+20>>2];J[L+24>>2]=c;c=J[g+32>>2];J[L+28>>2]=J[g+28>>2];J[L+32>>2]=c;F=F+1|0;if((F|0)!=(e|0)){continue}break}g=0;c=J[O+28>>2];if((c|0)<=0){break wa}while(1){h=J[O+36>>2]+P(g,36)|0;e=J[h+12>>2];if(!(e?!e|!K[h+16|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](e)}H[h+16|0]=1;J[h+12>>2]=0;J[h+4>>2]=0;J[h+8>>2]=0;g=g+1|0;if((c|0)!=(g|0)){continue}break}}c=J[O+36>>2];if(!(c?!c|!K[O+40|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](c)}J[O+36>>2]=r;H[O+40|0]=1;J[O+32>>2]=k;e=J[O+28>>2]}k=J[O+36>>2]+P(e,36)|0;J[k+12>>2]=0;H[k+16|0]=1;J[k+4>>2]=0;J[k+8>>2]=0;Aa:{if((S|0)<=0){J[k+4>>2]=S;break Aa}J[8369]=J[8369]+1;h=S<<2;o=ia[J[6782]](h,16)|0;r=J[k+12>>2];f=J[k+4>>2];Ba:{Ca:{if((f|0)>0){p=0;c=0;if(f-1>>>0>=3){e=f&-4;s=0;while(1){i=c<<2;J[i+o>>2]=J[i+r>>2];g=i|4;J[g+o>>2]=J[g+r>>2];g=i|8;J[g+o>>2]=J[g+r>>2];g=i|12;J[g+o>>2]=J[g+r>>2];c=c+4|0;s=s+4|0;if((e|0)!=(s|0)){continue}break}}e=f&3;if(!e){break Ca}while(1){g=c<<2;J[g+o>>2]=J[g+r>>2];c=c+1|0;p=p+1|0;if((e|0)!=(p|0)){continue}break}break Ca}if(!r){break Ba}}if(!K[k+16|0]){break Ba}if(r){J[8370]=J[8370]+1;ia[J[6783]](r)}}H[k+16|0]=1;J[k+12>>2]=o;J[k+8>>2]=S;e=0;i=qa(o,0,h);J[k+4>>2]=S;c=0;if(S-1>>>0>=3){h=S&-4;p=0;while(1){f=c<<2;J[f+i>>2]=J[f+j>>2];g=f|4;J[g+i>>2]=J[g+j>>2];g=f|8;J[g+i>>2]=J[g+j>>2];g=f|12;J[g+i>>2]=J[g+j>>2];c=c+4|0;p=p+4|0;if((h|0)!=(p|0)){continue}break}}h=S&3;if(!h){break Aa}while(1){g=c<<2;J[g+i>>2]=J[g+j>>2];c=c+1|0;e=e+1|0;if((h|0)!=(e|0)){continue}break}}g=K[d+23|0]|K[d+24|0]<<8|(K[d+25|0]<<16|K[d+26|0]<<24);c=K[d+19|0]|K[d+20|0]<<8|(K[d+21|0]<<16|K[d+22|0]<<24);H[k+20|0]=c;H[k+21|0]=c>>>8;H[k+22|0]=c>>>16;H[k+23|0]=c>>>24;H[k+24|0]=g;H[k+25|0]=g>>>8;H[k+26|0]=g>>>16;H[k+27|0]=g>>>24;g=K[d+31|0]|K[d+32|0]<<8|(K[d+33|0]<<16|K[d+34|0]<<24);c=K[d+27|0]|K[d+28|0]<<8|(K[d+29|0]<<16|K[d+30|0]<<24);H[k+28|0]=c;H[k+29|0]=c>>>8;H[k+30|0]=c>>>16;H[k+31|0]=c>>>24;H[k+32|0]=g;H[k+33|0]=g>>>8;H[k+34|0]=g>>>16;H[k+35|0]=g>>>24;J[O+28>>2]=J[O+28>>2]+1;if(j){J[8370]=J[8370]+1;ia[J[6783]](j)}A=A+1|0;if((x|0)!=(A|0)){continue}break}}if(b){J[8370]=J[8370]+1;ia[J[6783]](b)}if(l){continue}break}Ul(J[a+52>>2]);if(m){J[8370]=J[8370]+1;ia[J[6783]](m)}if(!u){break z}g=0;while(1){b=P(g,36)+M|0;a=J[b+12>>2];if(!(a?!a|!K[b+16|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](a)}H[b+16|0]=1;J[b+12>>2]=0;J[b+4>>2]=0;J[b+8>>2]=0;g=g+1|0;if((u|0)!=(g|0)){continue}break}break y}Ul(J[a+52>>2])}if(!M){break x}}if(M){J[8370]=J[8370]+1;ia[J[6783]](M)}}if($){J[8370]=J[8370]+1;ia[J[6783]]($)}a=J[d+172>>2];if(!(a?!a|!K[d+176|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](a)}J[d+172>>2]=0;H[d+176|0]=1;J[d+164>>2]=0;J[d+168>>2]=0;a=J[d+152>>2];if(!(a?!a|!K[d+156|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](a)}J[d+152>>2]=0;H[d+156|0]=1;J[d+144>>2]=0;J[d+148>>2]=0;a=J[d+132>>2];if(!(a?!a|!K[d+136|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](a)}a=J[d+196>>2];if(!(a?!a|!K[d+200|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](a)}ga=d+208|0;return 1}function mk(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=Q(0),o=0,p=Q(0),q=Q(0),r=0,s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=0,y=Q(0),z=0,A=0,B=Q(0),C=0,D=0,E=Q(0),F=Q(0),G=Q(0),L=Q(0);A=ga-16|0;ga=A;d=J[a+1112>>2];if((d|0)>0){while(1){ng(a,0);d=J[a+1112>>2];if((d|0)>0){continue}break}}e=J[a+712>>2];f=(b|0)>(e|0)?e:b;a:{if((f|0)<=(d|0)){break a}if(J[a+1116>>2]<(f|0)){b:{if(!f){break b}J[8369]=J[8369]+1;g=ia[J[6782]](f<<2,16)|0;j=J[a+1112>>2];if((j|0)<=0){break b}b=0;if(j-1>>>0>=3){i=j&-4;while(1){e=b<<2;J[e+g>>2]=J[e+J[a+1120>>2]>>2];m=e|4;J[m+g>>2]=J[m+J[a+1120>>2]>>2];m=e|8;J[m+g>>2]=J[m+J[a+1120>>2]>>2];e=e|12;J[e+g>>2]=J[e+J[a+1120>>2]>>2];b=b+4|0;k=k+4|0;if((i|0)!=(k|0)){continue}break}}e=j&3;if(!e){break b}while(1){j=b<<2;J[j+g>>2]=J[j+J[a+1120>>2]>>2];b=b+1|0;h=h+1|0;if((e|0)!=(h|0)){continue}break}}b=J[a+1120>>2];if(!(b?!b|!K[a+1124|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](b)}J[a+1120>>2]=g;H[a+1124|0]=1;J[a+1116>>2]=f}e=(d^-1)+f|0;j=f-d&3;if(j){b=0;while(1){J[J[a+1120>>2]+(d<<2)>>2]=0;d=d+1|0;b=b+1|0;if((j|0)!=(b|0)){continue}break}}if(e>>>0<3){break a}while(1){b=d<<2;J[b+J[a+1120>>2]>>2]=0;J[(b+J[a+1120>>2]|0)+4>>2]=0;J[(b+J[a+1120>>2]|0)+8>>2]=0;J[(b+J[a+1120>>2]|0)+12>>2]=0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}J[a+1112>>2]=f;c:{d:{e:{f:{if((f|0)<=0){break f}b=0;while(1){J[8369]=J[8369]+1;e=ia[J[6782]](384,16)|0;H[e+36|0]=1;J[e+4>>2]=0;J[e+8>>2]=0;J[e+12>>2]=0;H[e+16|0]=1;J[e+32>>2]=0;H[e+56|0]=1;J[e+24>>2]=0;J[e+28>>2]=0;J[e+52>>2]=0;J[e+348>>2]=0;J[e+352>>2]=0;J[e+44>>2]=0;J[e+48>>2]=0;H[e+376|0]=0;J[e+368>>2]=1120403456;J[e+372>>2]=1008981770;J[e+356>>2]=0;J[e+360>>2]=0;J[e+364>>2]=0;f=b<<2;J[f+J[a+1120>>2]>>2]=e;H[J[f+J[a+1120>>2]>>2]+377|0]=1;b=b+1|0;f=J[a+1112>>2];if((b|0)<(f|0)){continue}break}if((f|0)<=0){break f}e=0;b=J[a+712>>2];g:{h:{if((b|0)<=0){q=Q(Q(Q(1)/Q(b|0))*Q(0));p=q;n=p;break h}d=f;while(1){m=J[a+720>>2]+P(e,104)|0;s=N[m+8>>2];t=N[m+16>>2];u=N[m+12>>2];d=J[J[a+1120>>2]+((P(e,29873)|0)%(d|0)<<2)>>2];k=J[d+24>>2];i:{if((k|0)!=J[d+28>>2]){break i}l=k?k<<1:1;if((l|0)<=(k|0)){break i}j:{if(!l){g=0;break j}J[8369]=J[8369]+1;g=ia[J[6782]](l<<2,16)|0;k=J[d+24>>2]}k:{if((k|0)<=0){break k}h=0;b=0;if(k-1>>>0>=3){r=k&-4;i=0;while(1){j=b<<2;J[j+g>>2]=J[j+J[d+32>>2]>>2];o=j|4;J[o+g>>2]=J[o+J[d+32>>2]>>2];o=j|8;J[o+g>>2]=J[o+J[d+32>>2]>>2];j=j|12;J[j+g>>2]=J[j+J[d+32>>2]>>2];b=b+4|0;i=i+4|0;if((r|0)!=(i|0)){continue}break}}j=k&3;if(!j){break k}while(1){i=b<<2;J[i+g>>2]=J[i+J[d+32>>2]>>2];b=b+1|0;h=h+1|0;if((j|0)!=(h|0)){continue}break}}b=J[d+32>>2];if(!(!b|!K[d+36|0])){if(b){J[8370]=J[8370]+1;ia[J[6783]](b)}k=J[d+24>>2]}J[d+32>>2]=g;H[d+36|0]=1;J[d+28>>2]=l;b=J[a+712>>2]}n=Q(n+s);q=Q(q+t);p=Q(p+u);J[J[d+32>>2]+(k<<2)>>2]=m;J[d+24>>2]=k+1;e=e+1|0;if((e|0)<(b|0)){d=J[a+1112>>2];continue}break}k=0;if((f|0)<0){break g}s=Q(Q(1)/Q(b|0));q=Q(q*s);p=Q(p*s);n=Q(n*s)}b=0;J[8369]=J[8369]+1;k=ia[J[6782]](f<<4,16)|0;if((f|0)!=1){d=f&-2;g=0;while(1){j=b<<4;e=j+k|0;J[e+12>>2]=0;N[e+8>>2]=q;N[e+4>>2]=p;N[e>>2]=n;e=(j|16)+k|0;J[e+12>>2]=0;N[e+8>>2]=q;N[e+4>>2]=p;N[e>>2]=n;b=b+2|0;g=g+2|0;if((d|0)!=(g|0)){continue}break}}if(!(f&1)){break g}b=(b<<4)+k|0;J[b+12>>2]=0;N[b+8>>2]=q;N[b+4>>2]=p;N[b>>2]=n}j=0;while(1){b=j;j=b+1|0;s=Q(Q(2)-Q(T(Q(Q(b|0)*Q(.0625)),Q(1))));o=0;e=0;while(1){l=e<<2;b=J[l+J[a+1120>>2]>>2];g=J[b+24>>2];l:{if((g|0)<=0){q=Q(0);p=Q(0);n=Q(0);break l}r=g&1;b=J[b+32>>2];m:{if((g|0)==1){n=Q(0);d=0;p=Q(0);q=Q(0);break m}x=g&-2;n=Q(0);d=0;p=Q(0);q=Q(0);h=0;while(1){m=d<<2;i=J[m+b>>2];m=J[b+(m|4)>>2];q=Q(Q(q+N[i+8>>2])+N[m+8>>2]);n=Q(Q(n+N[i+16>>2])+N[m+16>>2]);p=Q(Q(p+N[i+12>>2])+N[m+12>>2]);d=d+2|0;h=h+2|0;if((x|0)!=(h|0)){continue}break}}if(!r){break l}b=J[b+(d<<2)>>2];q=Q(q+N[b+8>>2]);n=Q(n+N[b+16>>2]);p=Q(p+N[b+12>>2])}if(g){b=(e<<4)+k|0;J[b+12>>2]=0;t=N[b+8>>2];u=n;n=Q(Q(1)/Q(g|0));y=Q(t+Q(s*Q(Q(u*n)-t)));N[b+8>>2]=y;u=N[b+4>>2];v=Q(u+Q(s*Q(Q(p*n)-u)));N[b+4>>2]=v;p=N[b>>2];n=Q(p+Q(s*Q(Q(q*n)-p)));N[b>>2]=n;q=Q(y-t);n=Q(n-p);p=Q(n*n);n=Q(v-u);i=Q(Q(q*q)+Q(p+Q(n*n)))>Q(1.1920928955078125e-7);h=J[l+J[a+1120>>2]>>2];b=J[h+24>>2];n:{if((b|0)>=0){break n}if(J[h+28>>2]<0){d=J[h+32>>2];if(!(d?!d|!K[h+36|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](d)}H[h+36|0]=1;J[h+28>>2]=0;J[h+32>>2]=0}g=0;d=b;m=0-d&3;if(m){while(1){J[J[h+32>>2]+(d<<2)>>2]=0;d=d+1|0;g=g+1|0;if((m|0)!=(g|0)){continue}break}}if(b>>>0>4294967292){break n}while(1){b=d<<2;J[b+J[h+32>>2]>>2]=0;J[(b+J[h+32>>2]|0)+4>>2]=0;J[(b+J[h+32>>2]|0)+8>>2]=0;J[(b+J[h+32>>2]|0)+12>>2]=0;d=d+4|0;if(d){continue}break}}J[h+24>>2]=0;o=i|o}e=e+1|0;if((f|0)!=(e|0)){continue}break}l=0;e=J[a+712>>2];if((e|0)>0){while(1){r=J[a+720>>2]+P(l,104)|0;g=0;if((f|0)>=2){n=N[r+8>>2];p=N[r+12>>2];s=N[r+16>>2];q=Q(Q(Q(R(Q(N[k>>2]-n)))+Q(R(Q(N[k+4>>2]-p))))+Q(R(Q(N[k+8>>2]-s))));d=1;while(1){b=(d<<4)+k|0;t=Q(Q(Q(R(Q(N[b>>2]-n)))+Q(R(Q(N[b+4>>2]-p))))+Q(R(Q(N[b+8>>2]-s))));b=t >2]+(g<<2)>>2];i=J[d+24>>2];o:{if((i|0)!=J[d+28>>2]){break o}x=i?i<<1:1;if((x|0)<=(i|0)){break o}p:{if(!x){g=0;break p}J[8369]=J[8369]+1;g=ia[J[6782]](x<<2,16)|0;i=J[d+24>>2]}q:{if((i|0)<=0){break q}h=0;b=0;if(i-1>>>0>=3){z=i&-4;m=0;while(1){e=b<<2;J[e+g>>2]=J[e+J[d+32>>2]>>2];C=e|4;J[C+g>>2]=J[C+J[d+32>>2]>>2];C=e|8;J[C+g>>2]=J[C+J[d+32>>2]>>2];e=e|12;J[e+g>>2]=J[e+J[d+32>>2]>>2];b=b+4|0;m=m+4|0;if((z|0)!=(m|0)){continue}break}}e=i&3;if(!e){break q}while(1){m=b<<2;J[m+g>>2]=J[m+J[d+32>>2]>>2];b=b+1|0;h=h+1|0;if((e|0)!=(h|0)){continue}break}}b=J[d+32>>2];if(!(!b|!K[d+36|0])){if(b){J[8370]=J[8370]+1;ia[J[6783]](b)}i=J[d+24>>2]}J[d+32>>2]=g;H[d+36|0]=1;J[d+28>>2]=x;e=J[a+712>>2]}J[J[d+32>>2]+(i<<2)>>2]=r;J[d+24>>2]=i+1;l=l+1|0;if((l|0)<(e|0)){continue}break}}if((c|0)>(j|0)&o){continue}break}r:{if((e|0)<=0){m=0;break r}J[8369]=J[8369]+1;b=e<<2;m=ia[J[6782]](b,16)|0;qa(m,255,b)}e=J[a+1112>>2];if((e|0)>0){f=J[a+720>>2];j=J[a+1120>>2];b=0;while(1){c=J[j+(b<<2)>>2];if(J[c+24>>2]>0){e=J[c+32>>2];d=0;while(1){J[((J[e+(d<<2)>>2]-f|0)/104<<2)+m>>2]=b;d=d+1|0;if((d|0)>2]){continue}break}e=J[a+1112>>2]}b=b+1|0;if((e|0)>(b|0)){continue}break}}if(J[a+752>>2]>0){i=0;while(1){b=J[a+760>>2]+P(i,44)|0;c=J[a+720>>2];d=(J[b+8>>2]-c|0)/104|0;J[A+4>>2]=d;J[A+8>>2]=(J[b+12>>2]-c|0)/104;J[A+12>>2]=(J[b+16>>2]-c|0)/104;e=0;while(1){b=e+1|0;x=(b|0)==3;r=J[(d<<2)+m>>2];c=J[(A+4|0)+((x?0:b)<<2)>>2];s:{if((r|0)==J[(c<<2)+m>>2]){break s}z=J[a+720>>2]+P(c,104)|0;c=J[J[a+1120>>2]+(r<<2)>>2];g=J[c+24>>2];t:{if((g|0)<=0){break t}f=J[c+32>>2];d=0;while(1){if((z|0)!=J[f+(d<<2)>>2]){d=d+1|0;if((g|0)!=(d|0)){continue}break t}break}if((d|0)!=(g|0)){break s}}u:{if(J[c+28>>2]!=(g|0)){break u}o=g?g<<1:1;if((o|0)<=(g|0)){break u}v:{if(!o){h=0;break v}J[8369]=J[8369]+1;h=ia[J[6782]](o<<2,16)|0;g=J[c+24>>2]}w:{if((g|0)<=0){break w}j=0;d=0;if(g-1>>>0>=3){C=g&-4;l=0;while(1){f=d<<2;J[f+h>>2]=J[f+J[c+32>>2]>>2];D=f|4;J[D+h>>2]=J[D+J[c+32>>2]>>2];D=f|8;J[D+h>>2]=J[D+J[c+32>>2]>>2];f=f|12;J[f+h>>2]=J[f+J[c+32>>2]>>2];d=d+4|0;l=l+4|0;if((C|0)!=(l|0)){continue}break}}f=g&3;if(!f){break w}while(1){l=d<<2;J[l+h>>2]=J[l+J[c+32>>2]>>2];d=d+1|0;j=j+1|0;if((f|0)!=(j|0)){continue}break}}f=J[c+32>>2];if(!(!f|!K[c+36|0])){if(f){J[8370]=J[8370]+1;ia[J[6783]](f)}g=J[c+24>>2]}J[c+32>>2]=h;H[c+36|0]=1;J[c+28>>2]=o}J[J[c+32>>2]+(g<<2)>>2]=z;J[c+24>>2]=g+1}c=J[(A+4|0)+((e+2>>>0)%3<<2)>>2];x:{if((r|0)==J[(c<<2)+m>>2]){break x}l=J[a+720>>2]+P(c,104)|0;c=J[J[a+1120>>2]+(r<<2)>>2];g=J[c+24>>2];y:{if((g|0)<=0){break y}e=J[c+32>>2];d=0;while(1){if((l|0)!=J[e+(d<<2)>>2]){d=d+1|0;if((g|0)!=(d|0)){continue}break y}break}if((d|0)!=(g|0)){break x}}z:{if(J[c+28>>2]!=(g|0)){break z}j=g?g<<1:1;if((j|0)<=(g|0)){break z}A:{if(!j){h=0;break A}J[8369]=J[8369]+1;h=ia[J[6782]](j<<2,16)|0;g=J[c+24>>2]}B:{if((g|0)<=0){break B}e=0;d=0;if(g-1>>>0>=3){o=g&-4;r=0;while(1){f=d<<2;J[f+h>>2]=J[f+J[c+32>>2]>>2];z=f|4;J[z+h>>2]=J[z+J[c+32>>2]>>2];z=f|8;J[z+h>>2]=J[z+J[c+32>>2]>>2];f=f|12;J[f+h>>2]=J[f+J[c+32>>2]>>2];d=d+4|0;r=r+4|0;if((o|0)!=(r|0)){continue}break}}f=g&3;if(!f){break B}while(1){r=d<<2;J[r+h>>2]=J[r+J[c+32>>2]>>2];d=d+1|0;e=e+1|0;if((f|0)!=(e|0)){continue}break}}e=J[c+32>>2];if(!(!e|!K[c+36|0])){if(e){J[8370]=J[8370]+1;ia[J[6783]](e)}g=J[c+24>>2]}J[c+32>>2]=h;H[c+36|0]=1;J[c+28>>2]=j}J[J[c+32>>2]+(g<<2)>>2]=l;J[c+24>>2]=g+1}if(!x){d=J[(A+4|0)+(b<<2)>>2];e=b;continue}break}i=i+1|0;if((i|0) >2]){continue}break}e=J[a+1112>>2]}if((e|0)<2){break d}J[8369]=J[8369]+1;d=ia[J[6782]](384,16)|0;I[d+376>>1]=0;J[d+368>>2]=1120403456;J[d+372>>2]=1008981770;J[d+348>>2]=0;J[d+352>>2]=0;J[d+12>>2]=0;H[d+16|0]=1;H[d+36|0]=1;J[d+4>>2]=0;J[d+8>>2]=0;J[d+32>>2]=0;H[d+56|0]=1;J[d+24>>2]=0;J[d+28>>2]=0;J[d+52>>2]=0;J[d+44>>2]=0;J[d+48>>2]=0;J[d+364>>2]=0;J[d+356>>2]=0;J[d+360>>2]=0;e=J[a+712>>2];if((e|0)<=0){break e}J[8369]=J[8369]+1;c=ia[J[6782]](e<<2,16)|0;g=J[d+24>>2];C:{if((g|0)<=0){break C}f=0;b=0;if(g-1>>>0>=3){h=g&-4;i=0;while(1){j=b<<2;J[j+c>>2]=J[j+J[d+32>>2]>>2];l=j|4;J[l+c>>2]=J[l+J[d+32>>2]>>2];l=j|8;J[l+c>>2]=J[l+J[d+32>>2]>>2];j=j|12;J[j+c>>2]=J[j+J[d+32>>2]>>2];b=b+4|0;i=i+4|0;if((h|0)!=(i|0)){continue}break}}j=g&3;if(!j){break C}while(1){g=b<<2;J[g+c>>2]=J[g+J[d+32>>2]>>2];b=b+1|0;f=f+1|0;if((j|0)!=(f|0)){continue}break}}b=J[d+32>>2];if(!(b?!b|!K[d+36|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](b)}J[d+32>>2]=c;H[d+36|0]=1;J[d+28>>2]=e;b=J[a+712>>2];if((b|0)<=0){break e}f=J[d+24>>2];j=0;while(1){l=J[a+720>>2]+P(j,104)|0;D:{if((e|0)!=(f|0)){break D}c=e?e<<1:1;if((c|0)<=(e|0)){f=e;break D}E:{if(!c){g=0;break E}J[8369]=J[8369]+1;g=ia[J[6782]](c<<2,16)|0;e=J[d+24>>2]}f=e;F:{if((e|0)<=0){break F}h=0;b=0;if(f-1>>>0>=3){r=f&-4;i=0;while(1){e=b<<2;J[e+g>>2]=J[e+J[d+32>>2]>>2];o=e|4;J[o+g>>2]=J[o+J[d+32>>2]>>2];o=e|8;J[o+g>>2]=J[o+J[d+32>>2]>>2];e=e|12;J[e+g>>2]=J[e+J[d+32>>2]>>2];b=b+4|0;i=i+4|0;if((r|0)!=(i|0)){continue}break}}e=f&3;if(!e){break F}while(1){i=b<<2;J[i+g>>2]=J[i+J[d+32>>2]>>2];b=b+1|0;h=h+1|0;if((e|0)!=(h|0)){continue}break}}b=J[d+32>>2];if(!(!b|!K[d+36|0])){if(b){J[8370]=J[8370]+1;ia[J[6783]](b)}f=J[d+24>>2]}J[d+32>>2]=g;H[d+36|0]=1;J[d+28>>2]=c;b=J[a+712>>2];e=c}J[J[d+32>>2]+(f<<2)>>2]=l;f=f+1|0;J[d+24>>2]=f;j=j+1|0;if((j|0)<(b|0)){continue}break}break e}b=J[a+772>>2];if(b){G:{if((b|0)<=(f|0)){break G}if((b|0)>J[a+1116>>2]){J[8369]=J[8369]+1;c=ia[J[6782]](b<<2,16)|0;j=J[a+1112>>2];H:{if((j|0)<=0){break H}h=0;d=0;if(j-1>>>0>=3){g=j&-4;k=0;while(1){e=d<<2;J[e+c>>2]=J[e+J[a+1120>>2]>>2];i=e|4;J[i+c>>2]=J[i+J[a+1120>>2]>>2];i=e|8;J[i+c>>2]=J[i+J[a+1120>>2]>>2];e=e|12;J[e+c>>2]=J[e+J[a+1120>>2]>>2];d=d+4|0;k=k+4|0;if((g|0)!=(k|0)){continue}break}}e=j&3;if(!e){break H}while(1){j=d<<2;J[j+c>>2]=J[j+J[a+1120>>2]>>2];d=d+1|0;h=h+1|0;if((e|0)!=(h|0)){continue}break}}e=J[a+1120>>2];if(!(e?!e|!K[a+1124|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](e)}J[a+1120>>2]=c;H[a+1124|0]=1;J[a+1116>>2]=b}c=b+(f^-1)|0;e=b-f&3;if(e){d=0;while(1){J[J[a+1120>>2]+(f<<2)>>2]=0;f=f+1|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}if(c>>>0<3){break G}while(1){c=f<<2;J[c+J[a+1120>>2]>>2]=0;J[(c+J[a+1120>>2]|0)+4>>2]=0;J[(c+J[a+1120>>2]|0)+8>>2]=0;J[(c+J[a+1120>>2]|0)+12>>2]=0;f=f+4|0;if((b|0)!=(f|0)){continue}break}}J[a+1112>>2]=b;if((b|0)>0){b=0;while(1){J[8369]=J[8369]+1;c=ia[J[6782]](384,16)|0;H[c+36|0]=1;J[c+4>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;H[c+16|0]=1;J[c+32>>2]=0;H[c+56|0]=1;J[c+24>>2]=0;J[c+28>>2]=0;J[c+52>>2]=0;J[c+348>>2]=0;J[c+352>>2]=0;J[c+44>>2]=0;J[c+48>>2]=0;H[c+376|0]=0;J[c+368>>2]=1120403456;J[c+372>>2]=1008981770;J[c+356>>2]=0;J[c+360>>2]=0;J[c+364>>2]=0;e=b<<2;J[e+J[a+1120>>2]>>2]=c;H[J[e+J[a+1120>>2]>>2]+377|0]=1;b=b+1|0;if((b|0) >2]){continue}break}}if(J[a+772>>2]<=0){break c}m=0;while(1){d=P(m,104);l=d+J[a+780>>2]|0;j=m<<2;c=J[j+J[a+1120>>2]>>2];f=J[c+24>>2];I:{if((f|0)!=J[c+28>>2]){break I}i=f?f<<1:1;if((i|0)<=(f|0)){break I}J:{if(!i){g=0;break J}J[8369]=J[8369]+1;g=ia[J[6782]](i<<2,16)|0;f=J[c+24>>2]}K:{if((f|0)<=0){break K}h=0;b=0;if(f-1>>>0>=3){r=f&-4;k=0;while(1){e=b<<2;J[e+g>>2]=J[e+J[c+32>>2]>>2];o=e|4;J[o+g>>2]=J[o+J[c+32>>2]>>2];o=e|8;J[o+g>>2]=J[o+J[c+32>>2]>>2];e=e|12;J[e+g>>2]=J[e+J[c+32>>2]>>2];b=b+4|0;k=k+4|0;if((r|0)!=(k|0)){continue}break}}e=f&3;if(!e){break K}while(1){k=b<<2;J[k+g>>2]=J[k+J[c+32>>2]>>2];b=b+1|0;h=h+1|0;if((e|0)!=(h|0)){continue}break}}b=J[c+32>>2];if(!(!b|!K[c+36|0])){if(b){J[8370]=J[8370]+1;ia[J[6783]](b)}f=J[c+24>>2]}J[c+32>>2]=g;H[c+36|0]=1;J[c+28>>2]=i}J[J[c+32>>2]+(f<<2)>>2]=J[l+8>>2];J[c+24>>2]=f+1;l=d+J[a+780>>2]|0;c=J[j+J[a+1120>>2]>>2];f=J[c+24>>2];L:{if((f|0)!=J[c+28>>2]){break L}i=f?f<<1:1;if((i|0)<=(f|0)){break L}M:{if(!i){g=0;break M}J[8369]=J[8369]+1;g=ia[J[6782]](i<<2,16)|0;f=J[c+24>>2]}N:{if((f|0)<=0){break N}h=0;b=0;if(f-1>>>0>=3){r=f&-4;k=0;while(1){e=b<<2;J[e+g>>2]=J[e+J[c+32>>2]>>2];o=e|4;J[o+g>>2]=J[o+J[c+32>>2]>>2];o=e|8;J[o+g>>2]=J[o+J[c+32>>2]>>2];e=e|12;J[e+g>>2]=J[e+J[c+32>>2]>>2];b=b+4|0;k=k+4|0;if((r|0)!=(k|0)){continue}break}}e=f&3;if(!e){break N}while(1){k=b<<2;J[k+g>>2]=J[k+J[c+32>>2]>>2];b=b+1|0;h=h+1|0;if((e|0)!=(h|0)){continue}break}}b=J[c+32>>2];if(!(!b|!K[c+36|0])){if(b){J[8370]=J[8370]+1;ia[J[6783]](b)}f=J[c+24>>2]}J[c+32>>2]=g;H[c+36|0]=1;J[c+28>>2]=i}J[J[c+32>>2]+(f<<2)>>2]=J[l+12>>2];J[c+24>>2]=f+1;l=d+J[a+780>>2]|0;c=J[j+J[a+1120>>2]>>2];f=J[c+24>>2];O:{if((f|0)!=J[c+28>>2]){break O}i=f?f<<1:1;if((i|0)<=(f|0)){break O}P:{if(!i){g=0;break P}J[8369]=J[8369]+1;g=ia[J[6782]](i<<2,16)|0;f=J[c+24>>2]}Q:{if((f|0)<=0){break Q}h=0;b=0;if(f-1>>>0>=3){r=f&-4;k=0;while(1){e=b<<2;J[e+g>>2]=J[e+J[c+32>>2]>>2];o=e|4;J[o+g>>2]=J[o+J[c+32>>2]>>2];o=e|8;J[o+g>>2]=J[o+J[c+32>>2]>>2];e=e|12;J[e+g>>2]=J[e+J[c+32>>2]>>2];b=b+4|0;k=k+4|0;if((r|0)!=(k|0)){continue}break}}e=f&3;if(!e){break Q}while(1){k=b<<2;J[k+g>>2]=J[k+J[c+32>>2]>>2];b=b+1|0;h=h+1|0;if((e|0)!=(h|0)){continue}break}}b=J[c+32>>2];if(!(!b|!K[c+36|0])){if(b){J[8370]=J[8370]+1;ia[J[6783]](b)}f=J[c+24>>2]}J[c+32>>2]=g;H[c+36|0]=1;J[c+28>>2]=i}J[J[c+32>>2]+(f<<2)>>2]=J[l+16>>2];J[c+24>>2]=f+1;i=d+J[a+780>>2]|0;c=J[j+J[a+1120>>2]>>2];f=J[c+24>>2];R:{if((f|0)!=J[c+28>>2]){break R}d=f?f<<1:1;if((d|0)<=(f|0)){break R}S:{if(!d){g=0;break S}J[8369]=J[8369]+1;g=ia[J[6782]](d<<2,16)|0;f=J[c+24>>2]}T:{if((f|0)<=0){break T}h=0;b=0;if(f-1>>>0>=3){j=f&-4;k=0;while(1){e=b<<2;J[e+g>>2]=J[e+J[c+32>>2]>>2];l=e|4;J[l+g>>2]=J[l+J[c+32>>2]>>2];l=e|8;J[l+g>>2]=J[l+J[c+32>>2]>>2];e=e|12;J[e+g>>2]=J[e+J[c+32>>2]>>2];b=b+4|0;k=k+4|0;if((j|0)!=(k|0)){continue}break}}e=f&3;if(!e){break T}while(1){j=b<<2;J[j+g>>2]=J[j+J[c+32>>2]>>2];b=b+1|0;h=h+1|0;if((e|0)!=(h|0)){continue}break}}b=J[c+32>>2];if(!(!b|!K[c+36|0])){if(b){J[8370]=J[8370]+1;ia[J[6783]](b)}f=J[c+24>>2]}J[c+32>>2]=g;H[c+36|0]=1;J[c+28>>2]=d}J[J[c+32>>2]+(f<<2)>>2]=J[i+20>>2];J[c+24>>2]=f+1;m=m+1|0;if((m|0) >2]){continue}break}break c}b=J[a+752>>2];U:{if((b|0)<=(f|0)){break U}if((b|0)>J[a+1116>>2]){V:{if(!b){g=0;break V}J[8369]=J[8369]+1;g=ia[J[6782]](b<<2,16)|0;e=J[a+1112>>2];if((e|0)<=0){break V}h=0;d=0;if(e-1>>>0>=3){j=e&-4;k=0;while(1){c=d<<2;J[c+g>>2]=J[c+J[a+1120>>2]>>2];i=c|4;J[i+g>>2]=J[i+J[a+1120>>2]>>2];i=c|8;J[i+g>>2]=J[i+J[a+1120>>2]>>2];c=c|12;J[c+g>>2]=J[c+J[a+1120>>2]>>2];d=d+4|0;k=k+4|0;if((j|0)!=(k|0)){continue}break}}c=e&3;if(!c){break V}while(1){e=d<<2;J[e+g>>2]=J[e+J[a+1120>>2]>>2];d=d+1|0;h=h+1|0;if((c|0)!=(h|0)){continue}break}}c=J[a+1120>>2];if(!(c?!c|!K[a+1124|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](c)}J[a+1120>>2]=g;H[a+1124|0]=1;J[a+1116>>2]=b}c=b+(f^-1)|0;e=b-f&3;if(e){d=0;while(1){J[J[a+1120>>2]+(f<<2)>>2]=0;f=f+1|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}if(c>>>0<3){break U}while(1){c=f<<2;J[c+J[a+1120>>2]>>2]=0;J[(c+J[a+1120>>2]|0)+4>>2]=0;J[(c+J[a+1120>>2]|0)+8>>2]=0;J[(c+J[a+1120>>2]|0)+12>>2]=0;f=f+4|0;if((b|0)!=(f|0)){continue}break}}J[a+1112>>2]=b;if((b|0)>0){b=0;while(1){J[8369]=J[8369]+1;c=ia[J[6782]](384,16)|0;H[c+36|0]=1;J[c+4>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;H[c+16|0]=1;J[c+32>>2]=0;H[c+56|0]=1;J[c+24>>2]=0;J[c+28>>2]=0;J[c+52>>2]=0;J[c+348>>2]=0;J[c+352>>2]=0;J[c+44>>2]=0;J[c+48>>2]=0;H[c+376|0]=0;J[c+368>>2]=1120403456;J[c+372>>2]=1008981770;J[c+356>>2]=0;J[c+360>>2]=0;J[c+364>>2]=0;e=b<<2;J[e+J[a+1120>>2]>>2]=c;H[J[e+J[a+1120>>2]>>2]+377|0]=1;b=b+1|0;if((b|0) >2]){continue}break}}if(J[a+752>>2]<=0){break c}m=0;while(1){j=P(m,44);l=j+J[a+760>>2]|0;i=m<<2;c=J[i+J[a+1120>>2]>>2];f=J[c+24>>2];W:{if((f|0)!=J[c+28>>2]){break W}d=f?f<<1:1;if((d|0)<=(f|0)){break W}X:{if(!d){g=0;break X}J[8369]=J[8369]+1;g=ia[J[6782]](d<<2,16)|0;f=J[c+24>>2]}Y:{if((f|0)<=0){break Y}h=0;b=0;if(f-1>>>0>=3){r=f&-4;k=0;while(1){e=b<<2;J[e+g>>2]=J[e+J[c+32>>2]>>2];o=e|4;J[o+g>>2]=J[o+J[c+32>>2]>>2];o=e|8;J[o+g>>2]=J[o+J[c+32>>2]>>2];e=e|12;J[e+g>>2]=J[e+J[c+32>>2]>>2];b=b+4|0;k=k+4|0;if((r|0)!=(k|0)){continue}break}}e=f&3;if(!e){break Y}while(1){k=b<<2;J[k+g>>2]=J[k+J[c+32>>2]>>2];b=b+1|0;h=h+1|0;if((e|0)!=(h|0)){continue}break}}b=J[c+32>>2];if(!(!b|!K[c+36|0])){if(b){J[8370]=J[8370]+1;ia[J[6783]](b)}f=J[c+24>>2]}J[c+32>>2]=g;H[c+36|0]=1;J[c+28>>2]=d}J[J[c+32>>2]+(f<<2)>>2]=J[l+8>>2];J[c+24>>2]=f+1;l=j+J[a+760>>2]|0;c=J[i+J[a+1120>>2]>>2];f=J[c+24>>2];Z:{if((f|0)!=J[c+28>>2]){break Z}d=f?f<<1:1;if((d|0)<=(f|0)){break Z}_:{if(!d){g=0;break _}J[8369]=J[8369]+1;g=ia[J[6782]](d<<2,16)|0;f=J[c+24>>2]}$:{if((f|0)<=0){break $}h=0;b=0;if(f-1>>>0>=3){r=f&-4;k=0;while(1){e=b<<2;J[e+g>>2]=J[e+J[c+32>>2]>>2];o=e|4;J[o+g>>2]=J[o+J[c+32>>2]>>2];o=e|8;J[o+g>>2]=J[o+J[c+32>>2]>>2];e=e|12;J[e+g>>2]=J[e+J[c+32>>2]>>2];b=b+4|0;k=k+4|0;if((r|0)!=(k|0)){continue}break}}e=f&3;if(!e){break $}while(1){k=b<<2;J[k+g>>2]=J[k+J[c+32>>2]>>2];b=b+1|0;h=h+1|0;if((e|0)!=(h|0)){continue}break}}b=J[c+32>>2];if(!(!b|!K[c+36|0])){if(b){J[8370]=J[8370]+1;ia[J[6783]](b)}f=J[c+24>>2]}J[c+32>>2]=g;H[c+36|0]=1;J[c+28>>2]=d}J[J[c+32>>2]+(f<<2)>>2]=J[l+12>>2];J[c+24>>2]=f+1;j=j+J[a+760>>2]|0;c=J[i+J[a+1120>>2]>>2];f=J[c+24>>2];aa:{if((f|0)!=J[c+28>>2]){break aa}d=f?f<<1:1;if((d|0)<=(f|0)){break aa}ba:{if(!d){g=0;break ba}J[8369]=J[8369]+1;g=ia[J[6782]](d<<2,16)|0;f=J[c+24>>2]}ca:{if((f|0)<=0){break ca}h=0;b=0;if(f-1>>>0>=3){i=f&-4;k=0;while(1){e=b<<2;J[e+g>>2]=J[e+J[c+32>>2]>>2];l=e|4;J[l+g>>2]=J[l+J[c+32>>2]>>2];l=e|8;J[l+g>>2]=J[l+J[c+32>>2]>>2];e=e|12;J[e+g>>2]=J[e+J[c+32>>2]>>2];b=b+4|0;k=k+4|0;if((i|0)!=(k|0)){continue}break}}e=f&3;if(!e){break ca}while(1){k=b<<2;J[k+g>>2]=J[k+J[c+32>>2]>>2];b=b+1|0;h=h+1|0;if((e|0)!=(h|0)){continue}break}}b=J[c+32>>2];if(!(!b|!K[c+36|0])){if(b){J[8370]=J[8370]+1;ia[J[6783]](b)}f=J[c+24>>2]}J[c+32>>2]=g;H[c+36|0]=1;J[c+28>>2]=d}J[J[c+32>>2]+(f<<2)>>2]=J[j+16>>2];J[c+24>>2]=f+1;m=m+1|0;if((m|0) >2]){continue}break}break c}f=J[a+1112>>2];da:{if((f|0)!=J[a+1116>>2]){break da}e=f?f<<1:1;if((e|0)<=(f|0)){break da}ea:{if(!e){g=0;break ea}J[8369]=J[8369]+1;g=ia[J[6782]](e<<2,16)|0;f=J[a+1112>>2]}fa:{if((f|0)<=0){break fa}h=0;b=0;if(f-1>>>0>=3){j=f&-4;i=0;while(1){c=b<<2;J[c+g>>2]=J[c+J[a+1120>>2]>>2];l=c|4;J[l+g>>2]=J[l+J[a+1120>>2]>>2];l=c|8;J[l+g>>2]=J[l+J[a+1120>>2]>>2];c=c|12;J[c+g>>2]=J[c+J[a+1120>>2]>>2];b=b+4|0;i=i+4|0;if((j|0)!=(i|0)){continue}break}}c=f&3;if(!c){break fa}while(1){j=b<<2;J[j+g>>2]=J[j+J[a+1120>>2]>>2];b=b+1|0;h=h+1|0;if((c|0)!=(h|0)){continue}break}}b=J[a+1120>>2];if(!(!b|!K[a+1124|0])){if(b){J[8370]=J[8370]+1;ia[J[6783]](b)}f=J[a+1112>>2]}J[a+1120>>2]=g;H[a+1124|0]=1;J[a+1116>>2]=e}c=f<<2;J[c+J[a+1120>>2]>>2]=d;e=f+1|0;J[a+1112>>2]=e;b=J[a+1120>>2];f=J[b>>2];d=b;b=b+c|0;J[d>>2]=J[b>>2];J[b>>2]=f}if((e|0)>0){d=0;while(1){if(!J[J[J[a+1120>>2]+(d<<2)>>2]+24>>2]){ng(a,d);d=d-1|0;e=J[a+1112>>2]}d=d+1|0;if((e|0)>(d|0)){continue}break}}if(m){J[8370]=J[8370]+1;ia[J[6783]](m)}if(!k){break c}if(k){J[8370]=J[8370]+1;ia[J[6783]](k)}}ga:{if(!J[a+1112>>2]){i=0;break ga}j=0;if(J[a+1112>>2]>0){while(1){d=J[J[a+1120>>2]+(j<<2)>>2];J[d+128>>2]=0;k=J[d+24>>2];f=k;c=J[d+4>>2];if((f|0)>(c|0)){ha:{if((k|0)<=J[d+8>>2]){e=J[d+12>>2];break ha}ia:{if(!k){e=0;b=c;break ia}J[8369]=J[8369]+1;e=ia[J[6782]](k<<2,16)|0;b=J[d+4>>2]}g=J[d+12>>2];f=b;ja:{ka:{if((b|0)>0){h=0;b=0;if(f-1>>>0>=3){l=f&-4;i=0;while(1){m=b<<2;N[m+e>>2]=N[g+m>>2];r=m|4;N[r+e>>2]=N[g+r>>2];r=m|8;N[r+e>>2]=N[g+r>>2];m=m|12;N[m+e>>2]=N[g+m>>2];b=b+4|0;i=i+4|0;if((l|0)!=(i|0)){continue}break}}f=f&3;if(!f){break ka}while(1){i=b<<2;N[i+e>>2]=N[g+i>>2];b=b+1|0;h=h+1|0;if((f|0)!=(h|0)){continue}break}break ka}if(!g){break ja}}if(!K[d+16|0]){break ja}if(g){J[8370]=J[8370]+1;ia[J[6783]](g)}}J[d+12>>2]=e;H[d+16|0]=1;J[d+8>>2]=k}qa((c<<2)+e|0,0,k-c<<2);f=J[d+24>>2]}J[d+4>>2]=k;la:{ma:{i=(f|0)>0;na:{if(!i){s=Q(Q(1)/N[d+128>>2]);N[d+128>>2]=s;break na}c=J[d+32>>2];e=J[d+12>>2];b=0;while(1){g=b<<2;n=N[J[g+c>>2]+88>>2];oa:{if(n==Q(0)){H[d+376|0]=1;n=Q(0xde0b6b000000000);break oa}n=Q(Q(1)/n)}N[e+g>>2]=n;n=Q(n+N[d+128>>2]);N[d+128>>2]=n;b=b+1|0;if((f|0)!=(b|0)){continue}break}s=Q(Q(1)/n);N[d+128>>2]=s;if((f|0)>0){break ma}}p=Q(0);n=Q(0);q=Q(0);break la}m=f&1;c=J[d+32>>2];g=J[d+12>>2];pa:{if((f|0)==1){q=Q(0);b=0;n=Q(0);p=Q(0);break pa}l=f&-2;q=Q(0);b=0;n=Q(0);p=Q(0);e=0;while(1){h=b<<2;k=J[h+c>>2];t=N[g+h>>2];r=h|4;h=J[r+c>>2];u=N[g+r>>2];p=Q(Q(p+Q(N[k+8>>2]*t))+Q(N[h+8>>2]*u));q=Q(Q(q+Q(t*N[k+16>>2]))+Q(u*N[h+16>>2]));n=Q(Q(n+Q(t*N[k+12>>2]))+Q(u*N[h+12>>2]));b=b+2|0;e=e+2|0;if((l|0)!=(e|0)){continue}break}}if(!m){break la}e=c;c=b<<2;b=J[e+c>>2];t=N[c+g>>2];p=Q(p+Q(N[b+8>>2]*t));q=Q(q+Q(t*N[b+16>>2]));n=Q(n+Q(t*N[b+12>>2]))}J[d+316>>2]=0;J[d+320>>2]=0;J[d+132>>2]=0;J[d+136>>2]=0;J[d+240>>2]=0;E=Q(s*q);N[d+236>>2]=E;F=Q(s*n);N[d+232>>2]=F;G=Q(s*p);N[d+228>>2]=G;J[d+324>>2]=0;J[d+328>>2]=0;J[d+332>>2]=0;J[d+336>>2]=0;J[d+340>>2]=0;J[d+344>>2]=0;J[d+348>>2]=0;J[d+140>>2]=0;J[d+144>>2]=0;J[d+148>>2]=0;J[d+152>>2]=0;J[d+156>>2]=0;J[d+160>>2]=0;J[d+164>>2]=0;J[d+168>>2]=0;J[d+172>>2]=0;J[d+176>>2]=0;qa:{if(!i){t=N[d+152>>2];p=N[d+156>>2];q=N[d+140>>2];s=N[d+136>>2];n=N[d+132>>2];u=Q(0);break qa}p=N[d+156>>2];q=N[d+140>>2];s=N[d+136>>2];t=N[d+152>>2];e=J[d+32>>2];n=N[d+132>>2];g=J[d+12>>2];b=0;u=Q(0);while(1){h=b<<2;c=J[h+e>>2];w=N[c+12>>2];B=Q(N[c+8>>2]-G);y=N[g+h>>2];L=Q(B*Q(-y));v=Q(N[c+16>>2]-E);q=Q(Q(L*v)+q);N[d+140>>2]=q;w=Q(w-F);s=Q(Q(L*w)+s);N[d+136>>2]=s;p=Q(p-Q(Q(w*y)*v));N[d+156>>2]=p;B=Q(B*B);w=Q(w*w);u=Q(Q(y*Q(B+w))+u);N[d+172>>2]=u;v=Q(v*v);t=Q(Q(y*Q(B+v))+t);N[d+152>>2]=t;n=Q(Q(y*Q(w+v))+n);N[d+132>>2]=n;b=b+1|0;if((f|0)!=(b|0)){continue}break}}J[d+176>>2]=0;J[d+60>>2]=1065353216;J[d+160>>2]=0;J[d+144>>2]=0;b=d- -64|0;J[b>>2]=0;J[b+4>>2]=0;J[d+72>>2]=0;J[d+76>>2]=0;J[d+84>>2]=0;J[d+88>>2]=0;J[d+80>>2]=1065353216;J[d+92>>2]=0;J[d+96>>2]=0;B=Q(Q(n*t)-Q(s*s));y=Q(Q(s*p)-Q(t*q));v=Q(Q(t*u)-Q(p*p));w=Q(Q(p*q)-Q(u*s));t=Q(Q(1)/Q(Q(q*y)+Q(Q(n*v)+Q(s*w))));N[d+172>>2]=B*t;p=Q(Q(Q(q*s)-Q(p*n))*t);N[d+168>>2]=p;s=Q(y*t);N[d+164>>2]=s;N[d+156>>2]=p;N[d+152>>2]=Q(Q(n*u)-Q(q*q))*t;n=Q(w*t);N[d+148>>2]=n;N[d+140>>2]=s;N[d+136>>2]=n;N[d+132>>2]=v*t;J[d+100>>2]=1065353216;J[d+104>>2]=0;b=J[d+232>>2];J[d+108>>2]=J[d+228>>2];J[d+112>>2]=b;b=J[d+240>>2];J[d+116>>2]=J[d+236>>2];J[d+120>>2]=b;e=J[d+44>>2];c=J[d+24>>2];if(!((e|0)>=(c|0)|(c|0)<=J[d+48>>2])){ra:{if(!c){f=0;break ra}J[8369]=J[8369]+1;f=ia[J[6782]](c<<4,16)|0;e=J[d+44>>2]}sa:{if((e|0)<=0){break sa}b=0;if((e|0)!=1){m=e&-2;k=0;while(1){i=b<<4;g=i+f|0;h=i+J[d+52>>2]|0;l=J[h+4>>2];J[g>>2]=J[h>>2];J[g+4>>2]=l;l=J[h+12>>2];J[g+8>>2]=J[h+8>>2];J[g+12>>2]=l;h=i|16;g=h+f|0;h=h+J[d+52>>2]|0;i=J[h+4>>2];J[g>>2]=J[h>>2];J[g+4>>2]=i;i=J[h+12>>2];J[g+8>>2]=J[h+8>>2];J[g+12>>2]=i;b=b+2|0;k=k+2|0;if((m|0)!=(k|0)){continue}break}}if(!(e&1)){break sa}e=b<<4;b=e+f|0;e=e+J[d+52>>2]|0;g=J[e+4>>2];J[b>>2]=J[e>>2];J[b+4>>2]=g;g=J[e+12>>2];J[b+8>>2]=J[e+8>>2];J[b+12>>2]=g}b=J[d+52>>2];if(!(b?!b|!K[d+56|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](b)}J[d+52>>2]=f;H[d+56|0]=1;J[d+48>>2]=c}J[d+44>>2]=c;if((c|0)>0){b=0;while(1){c=J[J[d+32>>2]+(b<<2)>>2];n=N[c+12>>2];q=N[c+16>>2];p=N[c+8>>2];s=N[d+232>>2];t=N[d+236>>2];u=N[d+228>>2];c=J[d+52>>2]+(b<<4)|0;J[c+12>>2]=0;N[c>>2]=p-u;N[c+8>>2]=q-t;N[c+4>>2]=n-s;b=b+1|0;if((b|0) >2]){continue}break}}j=j+1|0;if((j|0) >2]){continue}break}}lk(a);i=J[a+1112>>2];g=P(i,i);f=J[a+1132>>2];if((g|0)>(f|0)){ta:{if((g|0)<=J[a+1136>>2]){b=J[a+1140>>2];break ta}ua:{if(!g){b=0;c=f;break ua}J[8369]=J[8369]+1;b=ia[J[6782]](g,16)|0;c=J[a+1132>>2]}j=J[a+1140>>2];va:{if((c|0)>0){e=0;d=0;if(c-1>>>0>=3){k=c&-4;h=0;while(1){H[b+d|0]=K[d+j|0];i=d|1;H[i+b|0]=K[i+j|0];i=d|2;H[i+b|0]=K[i+j|0];i=d|3;H[i+b|0]=K[i+j|0];d=d+4|0;h=h+4|0;if((k|0)!=(h|0)){continue}break}}c=c&3;if(!c){break va}while(1){H[b+d|0]=K[d+j|0];d=d+1|0;e=e+1|0;if((c|0)!=(e|0)){continue}break}break va}if(j){break va}J[a+1140>>2]=b;J[a+1136>>2]=g;H[a+1144|0]=1;break ta}if(j?K[a+1144|0]:0){J[8370]=J[8370]+1;ia[J[6783]](j)}J[a+1140>>2]=b;H[a+1144|0]=1;J[a+1136>>2]=g}qa(b+f|0,0,g-f|0);i=J[a+1112>>2]}J[a+1132>>2]=g;if((i|0)<=0){break ga}m=J[a+1140>>2];c=J[a+1120>>2];j=0;while(1){e=J[c+(j<<2)>>2];J[e+380>>2]=j;b=J[e+24>>2];l=(b|0)>0?b:0;a=(b|0)<=0;k=0;while(1){f=a;wa:{if((b|0)<=0){break wa}r=J[c+(k<<2)>>2];g=J[r+24>>2];h=0;while(1){if((g|0)>0){o=J[J[e+32>>2]+(h<<2)>>2];x=J[r+32>>2];d=0;while(1){if((o|0)==J[x+(d<<2)>>2]){break wa}d=d+1|0;if((g|0)!=(d|0)){continue}break}}h=h+1|0;f=(l|0)==(h|0);if(!f){continue}break}}H[m+(P(i,k)+j|0)|0]=(f^-1)&1;k=k+1|0;if((k|0)!=(i|0)){continue}break}j=j+1|0;if((j|0)!=(i|0)){continue}break}}ga=A+16|0;return i}function My(a){a=a|0;var b=0,c=0,d=0,e=0,f=Q(0),g=Q(0),h=Q(0),i=0,j=0,k=0,l=Q(0),m=Q(0),n=0,o=0,p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=0,y=Q(0),z=Q(0),A=0,B=0,C=0,D=0,E=0,F=Q(0),G=Q(0),I=Q(0),L=Q(0),M=Q(0),O=Q(0),R=Q(0),S=Q(0),T=Q(0),U=Q(0),V=Q(0),W=Q(0),X=0;Kk(a);if(!(!(ia[J[J[a>>2]+20>>2]](a)|0)|J[a+328>>2]<=0)){while(1){k=J[J[a+336>>2]+(E<<2)>>2];a:{if(!(ia[J[J[a>>2]+20>>2]](a)|0)){break a}d=ia[J[J[a>>2]+20>>2]](a)|0;if(!(ia[J[J[d>>2]+48>>2]](d)&1)){break a}i=J[a+72>>2];d=ga+-64|0;ga=d;b:{if(!K[k+473|0]){break b}c=J[k+532>>2];J[d+24>>2]=J[k+528>>2];J[d+28>>2]=c;c=J[k+524>>2];J[d+16>>2]=J[k+520>>2];J[d+20>>2]=c;f=N[k+576>>2];h=N[k+568>>2];g=N[k+572>>2];l=N[k+544>>2];m=N[k+536>>2];p=N[k+540>>2];r=N[k+624>>2];s=N[k+592>>2];t=N[k+608>>2];q=N[k+620>>2];u=N[k+588>>2];v=N[k+604>>2];w=N[k+616>>2];y=N[k+560>>2];z=N[k+584>>2];F=N[k+552>>2];G=N[k+600>>2];I=N[k+556>>2];J[d+60>>2]=0;L=Q(Q(r*f)+Q(Q(s*h)+Q(t*g)));T=Q(L*Q(0));M=Q(Q(w*f)+Q(Q(z*h)+Q(G*g)));O=Q(Q(q*f)+Q(Q(u*h)+Q(v*g)));U=Q(O*Q(0));h=Q(T+Q(M+U));R=Q(Q(r*l)+Q(Q(s*m)+Q(p*t)));V=Q(R*Q(0));S=Q(Q(w*l)+Q(Q(z*m)+Q(G*p)));p=Q(Q(q*l)+Q(Q(u*m)+Q(p*v)));m=Q(p*Q(0));g=Q(V+Q(S+m));r=Q(Q(r*y)+Q(Q(s*F)+Q(t*I)));W=Q(r*Q(0));s=Q(Q(w*y)+Q(Q(z*F)+Q(G*I)));t=Q(Q(q*y)+Q(Q(u*F)+Q(v*I)));q=Q(t*Q(0));l=Q(W+Q(s+q));f=Q(Q(1)/Q(Y(Q(Q(h*h)+Q(Q(g*g)+Q(l*l))))));N[d+56>>2]=N[d+24>>2]+Q(Q(h*f)*Q(10));N[d+52>>2]=N[d+20>>2]+Q(Q(l*f)*Q(10));N[d+48>>2]=N[d+16>>2]+Q(Q(g*f)*Q(10));J[d+40>>2]=0;J[d+44>>2]=0;J[d+32>>2]=1065353216;J[d+36>>2]=0;c=d+16|0;b=d+48|0;j=d+32|0;ia[J[J[i>>2]+8>>2]](i,c,b,j);J[d+60>>2]=0;u=Q(M*Q(0));h=Q(T+Q(u+O));v=Q(S*Q(0));g=Q(V+Q(v+p));w=Q(s*Q(0));l=Q(W+Q(w+t));f=Q(Q(1)/Q(Y(Q(Q(h*h)+Q(Q(g*g)+Q(l*l))))));N[d+56>>2]=Q(Q(h*f)*Q(10))+N[d+24>>2];N[d+52>>2]=Q(Q(l*f)*Q(10))+N[d+20>>2];N[d+48>>2]=Q(Q(g*f)*Q(10))+N[d+16>>2];J[d+40>>2]=0;J[d+44>>2]=0;J[d+32>>2]=0;J[d+36>>2]=1065353216;ia[J[J[i>>2]+8>>2]](i,c,b,j);J[d+60>>2]=0;h=Q(L+Q(u+U));g=Q(Q(v+m)+R);l=Q(r+Q(w+q));f=Q(Q(1)/Q(Y(Q(Q(h*h)+Q(Q(g*g)+Q(l*l))))));N[d+56>>2]=Q(Q(h*f)*Q(10))+N[d+24>>2];N[d+52>>2]=Q(Q(l*f)*Q(10))+N[d+20>>2];N[d+48>>2]=Q(Q(g*f)*Q(10))+N[d+16>>2];J[d+40>>2]=1065353216;J[d+44>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;ia[J[J[i>>2]+8>>2]](i,c,b,j);if(J[k+484>>2]<=0){break b}c=0;while(1){b=J[k+492>>2]+(c<<4)|0;g=N[b+8>>2];l=N[b>>2];m=N[b+4>>2];q=N[d+16>>2];h=N[d+20>>2];f=N[d+24>>2];J[d+8>>2]=1065353216;J[d+12>>2]=0;J[d>>2]=1065353216;J[d+4>>2]=0;J[d+60>>2]=0;f=Q(f+Q(Q(L*g)+Q(Q(M*l)+Q(O*m))));N[d+56>>2]=f;h=Q(h+Q(Q(r*g)+Q(Q(s*l)+Q(t*m))));N[d+52>>2]=h;g=Q(q+Q(Q(R*g)+Q(Q(S*l)+Q(p*m))));N[d+48>>2]=g+Q(-.10000000149011612);J[d+44>>2]=0;l=Q(f+Q(0));N[d+40>>2]=l;m=Q(h+Q(0));N[d+36>>2]=m;N[d+32>>2]=g+Q(.10000000149011612);b=d+48|0;j=d+32|0;ia[J[J[i>>2]+8>>2]](i,b,j,d);J[d+60>>2]=0;N[d+56>>2]=f;N[d+52>>2]=h+Q(-.10000000149011612);N[d+48>>2]=g;J[d+44>>2]=0;N[d+40>>2]=l;N[d+36>>2]=h+Q(.10000000149011612);l=Q(g+Q(0));N[d+32>>2]=l;ia[J[J[i>>2]+8>>2]](i,b,j,d);J[d+60>>2]=0;N[d+56>>2]=f+Q(-.10000000149011612);N[d+52>>2]=h;N[d+48>>2]=g;J[d+44>>2]=0;N[d+40>>2]=f+Q(.10000000149011612);N[d+36>>2]=m;N[d+32>>2]=l;ia[J[J[i>>2]+8>>2]](i,b,j,d);c=c+1|0;if((c|0) >2]){continue}break}}ga=d- -64|0;j=J[a+72>>2];o=J[a+344>>2];d=0;C=0;b=ga-176|0;ga=b;J[b+152>>2]=0;J[b+156>>2]=0;J[b+144>>2]=0;J[b+148>>2]=0;J[b+136>>2]=1065353216;J[b+140>>2]=0;J[b+128>>2]=1065353216;J[b+132>>2]=1065353216;J[b+120>>2]=0;J[b+124>>2]=0;J[b+112>>2]=1065353216;J[b+116>>2]=0;c:{if(o&256){J[8384]=1805;J[8385]=0;e=J[k+1112>>2];if((e|0)<=0){break c}while(1){x=C<<2;if(K[J[x+J[k+1120>>2]>>2]+377|0]){D=0;c=jI(J[8384],J[8385],1284865837,1481765933)+1|0;d=ha;J[8384]=c;d=c?d:d+1|0;J[8385]=d;i=jI(J[8384],J[8385],1284865837,1481765933)+1|0;c=ha;J[8384]=i;c=i?c:c+1|0;J[8385]=c;i=jI(J[8384],J[8385],1284865837,1481765933)+1|0;e=ha;e=i?e:e+1|0;J[8384]=i;J[8385]=e;J[b+172>>2]=0;f=Q(Q(e>>>1|0)*Q(4.656612873077393e-10));m=f;q=Q(f*f);f=Q(Q(d>>>1|0)*Q(4.656612873077393e-10));h=Q(Q(c>>>1|0)*Q(4.656612873077393e-10));g=Q(Q(1)/Q(Y(Q(q+Q(Q(f*f)+Q(h*h))))));N[b+168>>2]=Q(m*g)*Q(.75);N[b+164>>2]=Q(h*g)*Q(.75);N[b+160>>2]=Q(f*g)*Q(.75);n=0;d=J[J[x+J[k+1120>>2]>>2]+24>>2];d:{if((d|0)<=0){break d}e=0;J[8369]=J[8369]+1;n=ia[J[6782]](d<<4,16)|0;if((d|0)!=1){X=d&-2;i=0;while(1){c=J[J[J[x+J[k+1120>>2]>>2]+32>>2]+(e<<2)>>2];B=J[c+12>>2];A=(e<<4)+n|0;J[A>>2]=J[c+8>>2];J[A+4>>2]=B;B=J[c+20>>2];J[A+8>>2]=J[c+16>>2];J[A+12>>2]=B;c=e|1;A=(c<<4)+n|0;c=J[J[J[x+J[k+1120>>2]>>2]+32>>2]+(c<<2)>>2];B=J[c+12>>2];J[A>>2]=J[c+8>>2];J[A+4>>2]=B;B=J[c+20>>2];J[A+8>>2]=J[c+16>>2];J[A+12>>2]=B;e=e+2|0;i=i+2|0;if((X|0)!=(i|0)){continue}break}}if(!(d&1)){break d}i=(e<<4)+n|0;c=J[J[J[x+J[k+1120>>2]>>2]+32>>2]+(e<<2)>>2];e=J[c+12>>2];J[i>>2]=J[c+8>>2];J[i+4>>2]=e;e=J[c+20>>2];J[i+8>>2]=J[c+16>>2];J[i+12>>2]=e}J[b+60>>2]=0;H[b+64|0]=1;H[b+84|0]=1;J[b+52>>2]=0;J[b+56>>2]=0;J[b+80>>2]=0;H[b+104|0]=1;J[b+72>>2]=0;J[b+76>>2]=0;J[b+100>>2]=0;J[b+92>>2]=0;J[b+96>>2]=0;eg(b+48|0,n,d);i=J[b+92>>2];if((i|0)>0){while(1){x=J[b+80>>2]+P(J[J[b+100>>2]+(D<<2)>>2],12)|0;d=P(J[x+4>>2],12)+x|0;e=P(J[d>>2],12)+d|0;if((e|0)!=(x|0)){c=J[d+8>>2];d=J[x+8>>2];while(1){A=c<<4;c=J[b+60>>2];i=J[e+8>>2];ia[J[J[j>>2]+28>>2]](j,A+c|0,c+(d<<4)|0,c+(i<<4)|0,b+160|0,Q(1));c=d;d=i;i=P(J[e+4>>2],12)+e|0;e=P(J[i>>2],12)+i|0;if((x|0)!=(e|0)){continue}break}i=J[b+92>>2]}D=D+1|0;if((i|0)>(D|0)){continue}break}}d=J[b+100>>2];if(!(d?!d|!K[b+104|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](d)}J[b+100>>2]=0;H[b+104|0]=1;J[b+92>>2]=0;J[b+96>>2]=0;d=J[b+80>>2];if(!(d?!d|!K[b+84|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](d)}J[b+80>>2]=0;H[b+84|0]=1;J[b+72>>2]=0;J[b+76>>2]=0;d=J[b+60>>2];if(!(d?!d|!K[b+64|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](d)}if(n){J[8370]=J[8370]+1;ia[J[6783]](n)}e=J[k+1112>>2]}C=C+1|0;if((C|0)<(e|0)){continue}break}break c}e:{if(!(o&1)){break e}i=J[k+712>>2];if((i|0)<=0){break e}while(1){c=J[k+720>>2]+P(d,104)|0;if(H[J[c+4>>2]+16|0]&1){f=N[c+8>>2];i=J[c+16>>2];J[b+52>>2]=J[c+12>>2];J[b+56>>2]=i;J[b+60>>2]=0;N[b+48>>2]=f+Q(-.10000000149011612);f=N[c+8>>2];h=N[c+12>>2];g=N[c+16>>2];J[b+172>>2]=0;N[b+168>>2]=g+Q(0);N[b+164>>2]=h+Q(0);N[b+160>>2]=f+Q(.10000000149011612);J[b+40>>2]=0;J[b+44>>2]=0;J[b+32>>2]=1065353216;J[b+36>>2]=0;i=b+48|0;e=b+160|0;n=b+32|0;ia[J[J[j>>2]+8>>2]](j,i,e,n);f=N[c+12>>2];h=N[c+8>>2];g=N[c+16>>2];J[b+60>>2]=0;N[b+56>>2]=g;N[b+48>>2]=h;N[b+52>>2]=f+Q(-.10000000149011612);f=N[c+8>>2];h=N[c+12>>2];g=N[c+16>>2];J[b+172>>2]=0;N[b+168>>2]=g+Q(0);N[b+164>>2]=h+Q(.10000000149011612);N[b+160>>2]=f+Q(0);J[b+40>>2]=0;J[b+44>>2]=0;J[b+32>>2]=0;J[b+36>>2]=1065353216;ia[J[J[j>>2]+8>>2]](j,i,e,n);f=N[c+16>>2];x=J[c+8>>2];C=J[c+12>>2];J[b+60>>2]=0;J[b+48>>2]=x;J[b+52>>2]=C;N[b+56>>2]=f+Q(-.10000000149011612);f=N[c+8>>2];h=N[c+12>>2];g=N[c+16>>2];J[b+172>>2]=0;N[b+168>>2]=g+Q(.10000000149011612);N[b+164>>2]=h+Q(0);N[b+160>>2]=f+Q(0);J[b+40>>2]=1065353216;J[b+44>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;ia[J[J[j>>2]+8>>2]](j,i,e,n);i=J[k+712>>2]}d=d+1|0;if((i|0)>(d|0)){continue}break}}f:{if(!(o&2)){break f}i=J[k+732>>2];if((i|0)<=0){break f}e=0;while(1){d=J[k+740>>2]+P(e,52)|0;if(H[J[d+4>>2]+16|0]&1){ia[J[J[j>>2]+8>>2]](j,J[d+8>>2]+8|0,J[d+12>>2]+8|0,b+144|0);i=J[k+732>>2]}e=e+1|0;if((i|0)>(e|0)){continue}break}}g:{if(!(o&16)){break g}i=J[k+712>>2];if((i|0)<=0){break g}d=0;while(1){c=J[k+720>>2]+P(d,104)|0;if(H[J[c+4>>2]+16|0]&1){f=N[c+72>>2];h=N[c+76>>2];g=N[c+80>>2];l=N[c+8>>2];m=N[c+12>>2];p=N[c+16>>2];J[b+60>>2]=0;g=Q(g*Q(.5));N[b+56>>2]=p+g;h=Q(h*Q(.5));N[b+52>>2]=m+h;f=Q(f*Q(.5));N[b+48>>2]=l+f;i=c+8|0;e=b+48|0;ia[J[J[j>>2]+8>>2]](j,i,e,b+128|0);l=N[c+8>>2];m=N[c+12>>2];p=N[c+16>>2];J[b+60>>2]=0;N[b+56>>2]=p-g;N[b+52>>2]=m-h;N[b+48>>2]=l-f;J[b+172>>2]=0;N[b+168>>2]=N[b+136>>2]*Q(.5);N[b+164>>2]=N[b+132>>2]*Q(.5);N[b+160>>2]=N[b+128>>2]*Q(.5);ia[J[J[j>>2]+8>>2]](j,i,e,b+160|0);i=J[k+712>>2]}d=d+1|0;if((i|0)>(d|0)){continue}break}}h:{if(!(o&32)){break h}if(!K[33472]){J[8357]=0;J[8358]=0;J[8356]=1065353216;J[8359]=0;J[8360]=0;J[8362]=0;J[8363]=0;J[8361]=1065353216;J[8364]=0;J[8365]=0;J[8366]=1065353216;J[8367]=0;H[33472]=1}if(J[k+812>>2]<=0){break h}d=0;while(1){c=J[k+820>>2]+P(d,104)|0;r=N[c+20>>2];f=N[c+12>>2];i=J[c+24>>2];h=N[i+16>>2];g=N[c+8>>2];l=N[i+12>>2];m=N[c+4>>2];p=N[i+8>>2];J[b+60>>2]=0;q=m;m=Q(r+Q(Q(h*f)+Q(Q(p*m)+Q(l*g))));p=Q(p-Q(q*m));N[b+48>>2]=p;r=Q(l-Q(g*m));N[b+52>>2]=r;m=Q(h-Q(f*m));N[b+56>>2]=m;f=N[c+4>>2];h=N[c+8>>2];i=f >2];i=(g>(i?f:h)?!i:2)<<4;l=N[i+33428>>2];s=N[i+33424>>2];t=N[i+33432>>2];J[b+172>>2]=0;q=Q(Q(f*l)-Q(s*h));u=Q(Q(h*t)-Q(l*g));s=Q(Q(g*s)-Q(t*f));l=Q(Q(1)/Q(Y(Q(Q(q*q)+Q(Q(u*u)+Q(s*s))))));t=Q(q*l);q=Q(t*Q(.5));N[b+168>>2]=m-q;s=Q(s*l);v=Q(s*Q(.5));N[b+164>>2]=r-v;l=Q(u*l);u=Q(l*Q(.5));N[b+160>>2]=p-u;J[b+44>>2]=0;N[b+40>>2]=m+q;N[b+36>>2]=r+v;N[b+32>>2]=p+u;i=b+160|0;e=b+32|0;n=b+112|0;ia[J[J[j>>2]+8>>2]](j,i,e,n);J[b+172>>2]=0;m=Q(Q(l*h)-Q(f*s));h=Q(Q(s*g)-Q(h*t));g=Q(Q(t*f)-Q(g*l));f=Q(Q(1)/Q(Y(Q(Q(m*m)+Q(Q(h*h)+Q(g*g))))));l=N[b+56>>2];m=Q(Q(m*f)*Q(.5));N[b+168>>2]=l-m;p=N[b+52>>2];g=Q(Q(g*f)*Q(.5));N[b+164>>2]=p-g;r=N[b+48>>2];f=Q(Q(h*f)*Q(.5));N[b+160>>2]=r-f;J[b+44>>2]=0;N[b+40>>2]=m+l;N[b+36>>2]=g+p;N[b+32>>2]=f+r;ia[J[J[j>>2]+8>>2]](j,i,e,n);f=N[c+4>>2];h=N[c+8>>2];g=N[c+12>>2];J[b+172>>2]=0;N[b+168>>2]=Q(Q(g*Q(.5))*Q(3))+N[b+56>>2];N[b+164>>2]=Q(Q(h*Q(.5))*Q(3))+N[b+52>>2];N[b+160>>2]=Q(Q(f*Q(.5))*Q(3))+N[b+48>>2];J[b+40>>2]=0;J[b+44>>2]=0;J[b+32>>2]=1065353216;J[b+36>>2]=1065353216;ia[J[J[j>>2]+8>>2]](j,b+48|0,i,e);d=d+1|0;if((d|0) >2]){continue}break}}i:{if(!(o&4)){break i}J[b+56>>2]=0;J[b+60>>2]=0;J[b+48>>2]=0;J[b+52>>2]=1060320051;i=J[k+752>>2];if((i|0)<=0){break i}e=0;while(1){d=J[k+760>>2]+P(e,44)|0;if(H[J[d+4>>2]+16|0]&1){c=J[d+16>>2];l=N[c+12>>2];i=J[d+8>>2];m=N[i+12>>2];d=J[d+12>>2];p=N[d+12>>2];r=N[c+16>>2];g=N[i+16>>2];s=N[d+16>>2];t=N[c+8>>2];h=N[i+8>>2];q=N[d+8>>2];J[b+172>>2]=0;f=Q(Q(t+Q(h+q))*Q(.3333333432674408));N[b+160>>2]=f+Q(Q(h-f)*Q(.800000011920929));h=Q(Q(r+Q(g+s))*Q(.3333333432674408));N[b+168>>2]=h+Q(Q(g-h)*Q(.800000011920929));g=Q(Q(l+Q(m+p))*Q(.3333333432674408));N[b+164>>2]=g+Q(Q(m-g)*Q(.800000011920929));J[b+44>>2]=0;N[b+40>>2]=h+Q(Q(s-h)*Q(.800000011920929));N[b+36>>2]=g+Q(Q(p-g)*Q(.800000011920929));N[b+32>>2]=f+Q(Q(q-f)*Q(.800000011920929));J[b+28>>2]=0;N[b+24>>2]=h+Q(Q(r-h)*Q(.800000011920929));N[b+20>>2]=g+Q(Q(l-g)*Q(.800000011920929));N[b+16>>2]=f+Q(Q(t-f)*Q(.800000011920929));ia[J[J[j>>2]+28>>2]](j,b+160|0,b+32|0,b+16|0,b+48|0,Q(1));i=J[k+752>>2]}e=e+1|0;if((i|0)>(e|0)){continue}break}}if(!(o&8)){break c}J[b+56>>2]=1060320051;J[b+60>>2]=0;J[b+48>>2]=1050253722;J[b+52>>2]=1050253722;i=J[k+772>>2];if((i|0)<=0){break c}e=0;while(1){d=J[k+780>>2]+P(e,104)|0;if(H[J[d+4>>2]+16|0]&1){c=J[d+20>>2];l=N[c+12>>2];i=J[d+16>>2];m=N[i+12>>2];n=J[d+8>>2];p=N[n+12>>2];d=J[d+12>>2];r=N[d+12>>2];s=N[c+16>>2];t=N[i+16>>2];g=N[n+16>>2];q=N[d+16>>2];u=N[c+8>>2];v=N[i+8>>2];h=N[n+8>>2];w=N[d+8>>2];J[b+172>>2]=0;f=Q(Q(u+Q(v+Q(h+w)))*Q(.25));y=Q(f+Q(Q(h-f)*Q(.800000011920929)));N[b+160>>2]=y;h=Q(Q(s+Q(t+Q(g+q)))*Q(.25));z=Q(h+Q(Q(g-h)*Q(.800000011920929)));N[b+168>>2]=z;g=Q(Q(l+Q(m+Q(p+r)))*Q(.25));p=Q(g+Q(Q(p-g)*Q(.800000011920929)));N[b+164>>2]=p;J[b+44>>2]=0;q=Q(h+Q(Q(q-h)*Q(.800000011920929)));N[b+40>>2]=q;r=Q(g+Q(Q(r-g)*Q(.800000011920929)));N[b+36>>2]=r;w=Q(f+Q(Q(w-f)*Q(.800000011920929)));N[b+32>>2]=w;J[b+28>>2]=0;t=Q(h+Q(Q(t-h)*Q(.800000011920929)));N[b+24>>2]=t;m=Q(g+Q(Q(m-g)*Q(.800000011920929)));N[b+20>>2]=m;v=Q(f+Q(Q(v-f)*Q(.800000011920929)));N[b+16>>2]=v;d=b+160|0;c=b+32|0;i=b+16|0;n=b+48|0;ia[J[J[j>>2]+28>>2]](j,d,c,i,n,Q(1));J[b+172>>2]=0;N[b+168>>2]=z;N[b+164>>2]=p;N[b+160>>2]=y;J[b+44>>2]=0;N[b+40>>2]=q;N[b+36>>2]=r;N[b+32>>2]=w;J[b+28>>2]=0;h=Q(h+Q(Q(s-h)*Q(.800000011920929)));N[b+24>>2]=h;g=Q(g+Q(Q(l-g)*Q(.800000011920929)));N[b+20>>2]=g;f=Q(f+Q(Q(u-f)*Q(.800000011920929)));N[b+16>>2]=f;ia[J[J[j>>2]+28>>2]](j,d,c,i,n,Q(1));J[b+172>>2]=0;N[b+168>>2]=q;N[b+164>>2]=r;N[b+160>>2]=w;J[b+44>>2]=0;N[b+40>>2]=t;N[b+36>>2]=m;N[b+32>>2]=v;J[b+28>>2]=0;N[b+24>>2]=h;N[b+20>>2]=g;N[b+16>>2]=f;ia[J[J[j>>2]+28>>2]](j,d,c,i,n,Q(1));J[b+172>>2]=0;N[b+168>>2]=t;N[b+164>>2]=m;N[b+160>>2]=v;J[b+44>>2]=0;N[b+40>>2]=z;N[b+36>>2]=p;N[b+32>>2]=y;J[b+28>>2]=0;N[b+24>>2]=h;N[b+20>>2]=g;N[b+16>>2]=f;ia[J[J[j>>2]+28>>2]](j,d,c,i,n,Q(1));i=J[k+772>>2]}e=e+1|0;if((i|0)>(e|0)){continue}break}}j:{if(!(o&64)){break j}if(J[k+792>>2]>0){i=0;while(1){e=J[k+800>>2]+P(i,96)|0;d=J[e+20>>2];l=N[d+52>>2];m=N[d+12>>2];p=N[d+8>>2];r=N[d+4>>2];s=N[d+56>>2];t=N[d+28>>2];q=N[d+20>>2];u=N[d+24>>2];v=N[d+60>>2];f=N[e+12>>2];w=N[d+44>>2];h=N[e+4>>2];y=N[d+36>>2];g=N[e+8>>2];z=N[d+40>>2];J[b+44>>2]=0;N[b+40>>2]=v+Q(Q(f*w)+Q(Q(h*y)+Q(g*z)));N[b+36>>2]=s+Q(Q(f*t)+Q(Q(h*q)+Q(g*u)));N[b+32>>2]=l+Q(Q(f*m)+Q(Q(h*r)+Q(g*p)));d=J[e>>2];J[b+24>>2]=0;J[b+28>>2]=0;J[b+16>>2]=1065353216;J[b+20>>2]=0;f=N[d+8>>2];h=N[d+12>>2];g=N[d+16>>2];J[b+60>>2]=0;N[b+56>>2]=g;N[b+52>>2]=h;N[b+48>>2]=f+Q(-.25);J[b+172>>2]=0;N[b+168>>2]=g+Q(0);N[b+164>>2]=h+Q(0);N[b+160>>2]=f+Q(.25);c=b+48|0;n=b+160|0;x=b+16|0;ia[J[J[j>>2]+8>>2]](j,c,n,x);f=N[d+12>>2];h=N[d+8>>2];g=N[d+16>>2];J[b+60>>2]=0;N[b+56>>2]=g;N[b+48>>2]=h;N[b+52>>2]=f+Q(-.25);J[b+172>>2]=0;N[b+168>>2]=g+Q(0);N[b+164>>2]=f+Q(.25);N[b+160>>2]=h+Q(0);ia[J[J[j>>2]+8>>2]](j,c,n,x);f=N[d+16>>2];h=N[d+8>>2];g=N[d+12>>2];J[b+60>>2]=0;N[b+52>>2]=g;N[b+48>>2]=h;N[b+56>>2]=f+Q(-.25);J[b+172>>2]=0;N[b+168>>2]=f+Q(.25);N[b+164>>2]=g+Q(0);N[b+160>>2]=h+Q(0);ia[J[J[j>>2]+8>>2]](j,c,n,x);J[b+24>>2]=0;J[b+28>>2]=0;J[b+16>>2]=0;J[b+20>>2]=1065353216;J[b+60>>2]=0;f=N[b+40>>2];N[b+56>>2]=f;h=N[b+36>>2];N[b+52>>2]=h;g=N[b+32>>2];N[b+48>>2]=g+Q(-.25);J[b+172>>2]=0;N[b+168>>2]=f+Q(0);N[b+164>>2]=h+Q(0);N[b+160>>2]=g+Q(.25);ia[J[J[j>>2]+8>>2]](j,c,n,x);J[b+60>>2]=0;f=N[b+40>>2];N[b+56>>2]=f;h=N[b+36>>2];N[b+52>>2]=h+Q(-.25);g=N[b+32>>2];N[b+48>>2]=g;J[b+172>>2]=0;N[b+168>>2]=f+Q(0);N[b+164>>2]=h+Q(.25);N[b+160>>2]=g+Q(0);ia[J[J[j>>2]+8>>2]](j,c,n,x);J[b+60>>2]=0;f=N[b+40>>2];N[b+56>>2]=f+Q(-.25);h=N[b+36>>2];N[b+52>>2]=h;g=N[b+32>>2];N[b+48>>2]=g;J[b+172>>2]=0;N[b+168>>2]=f+Q(.25);N[b+164>>2]=h+Q(0);N[b+160>>2]=g+Q(0);ia[J[J[j>>2]+8>>2]](j,c,n,x);d=J[e>>2];J[b+56>>2]=1065353216;J[b+60>>2]=0;J[b+48>>2]=1065353216;J[b+52>>2]=1065353216;ia[J[J[j>>2]+8>>2]](j,d+8|0,b+32|0,c);i=i+1|0;if((i|0) >2]){continue}break}}i=J[k+712>>2];if((i|0)<=0){break j}d=0;while(1){c=J[k+720>>2]+P(d,104)|0;if(!(!(H[J[c+4>>2]+16|0]&1)|!(N[c+88>>2]<=Q(0)))){J[b+40>>2]=0;J[b+44>>2]=0;J[b+32>>2]=1065353216;J[b+36>>2]=0;f=N[c+8>>2];h=N[c+12>>2];g=N[c+16>>2];J[b+60>>2]=0;N[b+56>>2]=g;N[b+52>>2]=h;N[b+48>>2]=f+Q(-.25);J[b+172>>2]=0;N[b+168>>2]=g+Q(0);N[b+164>>2]=h+Q(0);N[b+160>>2]=f+Q(.25);i=b+48|0;e=b+160|0;n=b+32|0;ia[J[J[j>>2]+8>>2]](j,i,e,n);f=N[c+12>>2];h=N[c+8>>2];g=N[c+16>>2];J[b+60>>2]=0;N[b+56>>2]=g;N[b+48>>2]=h;N[b+52>>2]=f+Q(-.25);J[b+172>>2]=0;N[b+168>>2]=g+Q(0);N[b+164>>2]=f+Q(.25);N[b+160>>2]=h+Q(0);ia[J[J[j>>2]+8>>2]](j,i,e,n);f=N[c+16>>2];h=N[c+8>>2];g=N[c+12>>2];J[b+60>>2]=0;N[b+52>>2]=g;N[b+48>>2]=h;N[b+56>>2]=f+Q(-.25);J[b+172>>2]=0;N[b+168>>2]=f+Q(.25);N[b+164>>2]=g+Q(0);N[b+160>>2]=h+Q(0);ia[J[J[j>>2]+8>>2]](j,i,e,n);i=J[k+712>>2]}d=d+1|0;if((i|0)>(d|0)){continue}break}}if(!(!(o&128)|J[k+692>>2]<=0)){c=0;while(1){d=J[k+700>>2]+P(c,60)|0;i=J[d+20>>2];J[b+56>>2]=J[d+16>>2];J[b+60>>2]=i;i=J[d+12>>2];J[b+48>>2]=J[d+8>>2];J[b+52>>2]=i;n=J[d+24>>2];if((n|0)>0){e=0;f=N[b+56>>2];h=N[b+52>>2];g=N[b+48>>2];while(1){x=d+(e<<2)|0;i=J[x+28>>2];m=N[i+12>>2];p=N[i+16>>2];l=N[x+44>>2];g=Q(Q(N[i+8>>2]*l)+g);N[b+48>>2]=g;f=Q(Q(l*p)+f);N[b+56>>2]=f;h=Q(Q(l*m)+h);N[b+52>>2]=h;e=e+1|0;if((n|0)!=(e|0)){continue}break}}ia[J[J[j>>2]+40>>2]](j,b+48|0,J[d+4>>2]);c=c+1|0;if((c|0) >2]){continue}break}}if(o&512){d=J[k+928>>2];J[b+56>>2]=1065353216;J[b+60>>2]=0;J[b+48>>2]=1065353216;J[b+52>>2]=0;J[b+168>>2]=1065353216;J[b+172>>2]=0;J[b+160>>2]=1065353216;J[b+164>>2]=1065353216;Ob(j,d,0,b+48|0,b+160|0,0,-1)}if(o&1024){d=J[k+988>>2];J[b+56>>2]=0;J[b+60>>2]=0;J[b+48>>2]=0;J[b+52>>2]=1065353216;J[b+168>>2]=0;J[b+172>>2]=0;J[b+160>>2]=1065353216;J[b+164>>2]=0;Ob(j,d,0,b+48|0,b+160|0,0,-1)}if(o&2048){d=J[k+1048>>2];J[b+56>>2]=1065353216;J[b+60>>2]=0;J[b+48>>2]=0;J[b+52>>2]=1065353216;J[b+168>>2]=0;J[b+172>>2]=0;J[b+160>>2]=1065353216;J[b+164>>2]=0;Ob(j,d,0,b+48|0,b+160|0,0,-1)}if(!(!(o&4096)|J[k+852>>2]<=0)){i=0;while(1){k:{l:{m:{d=J[J[k+860>>2]+(i<<2)>>2];switch(ia[J[J[d>>2]+20>>2]](d)|0){case 1:break l;case 0:break m;default:break k}}c=K[33296];if(!(c&1)){c=bb();e=J[c+4>>2];J[8308]=J[c>>2];J[8309]=e;e=J[c+12>>2];J[8310]=J[c+8>>2];J[8311]=e;e=J[c+20>>2];J[8312]=J[c+16>>2];J[8313]=e;e=J[c+28>>2];J[8314]=J[c+24>>2];J[8315]=e;e=J[c+36>>2];J[8316]=J[c+32>>2];J[8317]=e;e=J[c+44>>2];J[8318]=J[c+40>>2];J[8319]=e;e=J[c+56>>2];o=J[c+60>>2];n=J[c+48>>2];c=J[c+52>>2];H[33296]=1;J[8322]=e;J[8323]=o;J[8320]=n;J[8321]=c;c=1}e=J[d+12>>2];o=J[d+4>>2];e=e?e+4|0:o?o+60|0:33232;l=N[e+52>>2];m=N[e+24>>2];p=N[e+20>>2];r=N[e+16>>2];s=N[e+56>>2];t=N[e+40>>2];q=N[e+36>>2];u=N[e+32>>2];v=N[e+48>>2];w=N[e+8>>2];y=N[e>>2];z=N[e+4>>2];f=N[d+36>>2];h=N[d+32>>2];g=N[d+28>>2];J[b+44>>2]=0;N[b+32>>2]=v+Q(Q(f*w)+Q(Q(g*y)+Q(h*z)));N[b+40>>2]=s+Q(Q(f*t)+Q(Q(g*u)+Q(h*q)));N[b+36>>2]=l+Q(Q(f*m)+Q(Q(g*r)+Q(h*p)));if(!(c&1)){c=bb();e=J[c+4>>2];J[8308]=J[c>>2];J[8309]=e;e=J[c+12>>2];J[8310]=J[c+8>>2];J[8311]=e;e=J[c+20>>2];J[8312]=J[c+16>>2];J[8313]=e;e=J[c+28>>2];J[8314]=J[c+24>>2];J[8315]=e;e=J[c+36>>2];J[8316]=J[c+32>>2];J[8317]=e;e=J[c+44>>2];J[8318]=J[c+40>>2];J[8319]=e;e=J[c+56>>2];o=J[c+60>>2];n=J[c+48>>2];c=J[c+52>>2];H[33296]=1;J[8322]=e;J[8323]=o;J[8320]=n;J[8321]=c;c=1}e=J[d+24>>2];o=J[d+16>>2];e=e?e+4|0:o?o+60|0:33232;l=N[e+52>>2];m=N[e+24>>2];p=N[e+20>>2];r=N[e+16>>2];s=N[e+56>>2];t=N[e+40>>2];q=N[e+36>>2];u=N[e+32>>2];v=N[e+48>>2];w=N[e+8>>2];y=N[e>>2];z=N[e+4>>2];f=N[d+52>>2];h=N[d+44>>2];g=N[d+48>>2];J[b+28>>2]=0;N[b+16>>2]=v+Q(Q(f*w)+Q(Q(h*y)+Q(g*z)));N[b+24>>2]=s+Q(Q(f*t)+Q(Q(h*u)+Q(g*q)));N[b+20>>2]=l+Q(Q(f*m)+Q(Q(h*r)+Q(g*p)));if(!(c&1)){c=bb();e=J[c+4>>2];J[8308]=J[c>>2];J[8309]=e;e=J[c+12>>2];J[8310]=J[c+8>>2];J[8311]=e;e=J[c+20>>2];J[8312]=J[c+16>>2];J[8313]=e;e=J[c+28>>2];J[8314]=J[c+24>>2];J[8315]=e;e=J[c+36>>2];J[8316]=J[c+32>>2];J[8317]=e;e=J[c+44>>2];J[8318]=J[c+40>>2];J[8319]=e;e=J[c+56>>2];o=J[c+60>>2];n=J[c+48>>2];c=J[c+52>>2];H[33296]=1;J[8322]=e;J[8323]=o;J[8320]=n;J[8321]=c}c=J[d+12>>2];e=J[d+4>>2];J[b+56>>2]=0;J[b+60>>2]=0;J[b+48>>2]=1065353216;J[b+52>>2]=1065353216;ia[J[J[j>>2]+8>>2]](j,(c?c+4|0:e?e+60|0:33232)+48|0,b+32|0,b+48|0);if(!(H[33296]&1)){c=bb();e=J[c+4>>2];J[8308]=J[c>>2];J[8309]=e;e=J[c+12>>2];J[8310]=J[c+8>>2];J[8311]=e;e=J[c+20>>2];J[8312]=J[c+16>>2];J[8313]=e;e=J[c+28>>2];J[8314]=J[c+24>>2];J[8315]=e;e=J[c+36>>2];J[8316]=J[c+32>>2];J[8317]=e;e=J[c+44>>2];J[8318]=J[c+40>>2];J[8319]=e;e=J[c+56>>2];o=J[c+60>>2];n=J[c+48>>2];c=J[c+52>>2];H[33296]=1;J[8322]=e;J[8323]=o;J[8320]=n;J[8321]=c}c=J[d+24>>2];d=J[d+16>>2];J[b+56>>2]=1065353216;J[b+60>>2]=0;J[b+48>>2]=0;J[b+52>>2]=1065353216;c=(c?c+4|0:d?d+60|0:33232)+48|0;d=b+48|0;ia[J[J[j>>2]+8>>2]](j,c,b+16|0,d);J[b+8>>2]=0;J[b+12>>2]=0;J[b>>2]=1065353216;J[b+4>>2]=1065353216;J[b+60>>2]=0;f=N[b+40>>2];N[b+56>>2]=f;h=N[b+36>>2];N[b+52>>2]=h;g=N[b+32>>2];N[b+48>>2]=g+Q(-.25);J[b+172>>2]=0;N[b+168>>2]=f+Q(0);N[b+164>>2]=h+Q(0);N[b+160>>2]=g+Q(.25);c=b+160|0;ia[J[J[j>>2]+8>>2]](j,d,c,b);J[b+60>>2]=0;f=N[b+40>>2];N[b+56>>2]=f;h=N[b+36>>2];N[b+52>>2]=h+Q(-.25);g=N[b+32>>2];N[b+48>>2]=g;J[b+172>>2]=0;N[b+168>>2]=f+Q(0);N[b+164>>2]=h+Q(.25);N[b+160>>2]=g+Q(0);ia[J[J[j>>2]+8>>2]](j,d,c,b);J[b+60>>2]=0;f=N[b+40>>2];N[b+56>>2]=f+Q(-.25);h=N[b+36>>2];N[b+52>>2]=h;g=N[b+32>>2];N[b+48>>2]=g;J[b+172>>2]=0;N[b+168>>2]=f+Q(.25);N[b+164>>2]=h+Q(0);N[b+160>>2]=g+Q(0);ia[J[J[j>>2]+8>>2]](j,d,c,b);J[b+8>>2]=1065353216;J[b+12>>2]=0;J[b>>2]=0;J[b+4>>2]=1065353216;J[b+60>>2]=0;f=N[b+24>>2];N[b+56>>2]=f;h=N[b+20>>2];N[b+52>>2]=h;g=N[b+16>>2];N[b+48>>2]=g+Q(-.25);J[b+172>>2]=0;N[b+168>>2]=f+Q(0);N[b+164>>2]=h+Q(0);N[b+160>>2]=g+Q(.25);ia[J[J[j>>2]+8>>2]](j,d,c,b);J[b+60>>2]=0;f=N[b+24>>2];N[b+56>>2]=f;h=N[b+20>>2];N[b+52>>2]=h+Q(-.25);g=N[b+16>>2];N[b+48>>2]=g;J[b+172>>2]=0;N[b+168>>2]=f+Q(0);N[b+164>>2]=h+Q(.25);N[b+160>>2]=g+Q(0);ia[J[J[j>>2]+8>>2]](j,d,c,b);J[b+60>>2]=0;f=N[b+24>>2];N[b+56>>2]=f+Q(-.25);h=N[b+20>>2];N[b+52>>2]=h;g=N[b+16>>2];N[b+48>>2]=g;J[b+172>>2]=0;N[b+168>>2]=f+Q(.25);N[b+164>>2]=h+Q(0);N[b+160>>2]=g+Q(0);ia[J[J[j>>2]+8>>2]](j,d,c,b);break k}c=K[33296];if(!(c&1)){c=bb();e=J[c+4>>2];J[8308]=J[c>>2];J[8309]=e;e=J[c+12>>2];J[8310]=J[c+8>>2];J[8311]=e;e=J[c+20>>2];J[8312]=J[c+16>>2];J[8313]=e;e=J[c+28>>2];J[8314]=J[c+24>>2];J[8315]=e;e=J[c+36>>2];J[8316]=J[c+32>>2];J[8317]=e;e=J[c+44>>2];J[8318]=J[c+40>>2];J[8319]=e;e=J[c+56>>2];o=J[c+60>>2];n=J[c+48>>2];c=J[c+52>>2];H[33296]=1;J[8322]=e;J[8323]=o;J[8320]=n;J[8321]=c;c=1}e=J[d+12>>2];o=J[d+4>>2];e=e?e+4|0:o?o+60|0:33232;o=J[e+60>>2];J[b+56>>2]=J[e+56>>2];J[b+60>>2]=o;o=J[e+52>>2];J[b+48>>2]=J[e+48>>2];J[b+52>>2]=o;if(!(c&1)){c=bb();e=J[c+4>>2];J[8308]=J[c>>2];J[8309]=e;e=J[c+12>>2];J[8310]=J[c+8>>2];J[8311]=e;e=J[c+20>>2];J[8312]=J[c+16>>2];J[8313]=e;e=J[c+28>>2];J[8314]=J[c+24>>2];J[8315]=e;e=J[c+36>>2];J[8316]=J[c+32>>2];J[8317]=e;e=J[c+44>>2];J[8318]=J[c+40>>2];J[8319]=e;e=J[c+56>>2];o=J[c+60>>2];n=J[c+48>>2];c=J[c+52>>2];H[33296]=1;J[8322]=e;J[8323]=o;J[8320]=n;J[8321]=c;c=1}e=J[d+24>>2];o=J[d+16>>2];e=e?e+4|0:o?o+60|0:33232;o=J[e+60>>2];J[b+168>>2]=J[e+56>>2];J[b+172>>2]=o;o=J[e+52>>2];J[b+160>>2]=J[e+48>>2];J[b+164>>2]=o;if(!(c&1)){c=bb();e=J[c+4>>2];J[8308]=J[c>>2];J[8309]=e;e=J[c+12>>2];J[8310]=J[c+8>>2];J[8311]=e;e=J[c+20>>2];J[8312]=J[c+16>>2];J[8313]=e;e=J[c+28>>2];J[8314]=J[c+24>>2];J[8315]=e;e=J[c+36>>2];J[8316]=J[c+32>>2];J[8317]=e;e=J[c+44>>2];J[8318]=J[c+40>>2];J[8319]=e;e=J[c+56>>2];o=J[c+60>>2];n=J[c+48>>2];c=J[c+52>>2];H[33296]=1;J[8322]=e;J[8323]=o;J[8320]=n;J[8321]=c;c=1}e=J[d+12>>2];o=J[d+4>>2];e=e?e+4|0:o?o+60|0:33232;f=N[d+36>>2];h=N[d+28>>2];g=N[d+32>>2];l=Q(Q(N[e+8>>2]*f)+Q(Q(N[e>>2]*h)+Q(N[e+4>>2]*g)));m=Q(Q(N[e+40>>2]*f)+Q(Q(N[e+32>>2]*h)+Q(g*N[e+36>>2])));p=Q(Q(N[e+24>>2]*f)+Q(Q(N[e+16>>2]*h)+Q(g*N[e+20>>2])));if(!(c&1)){c=bb();e=J[c+4>>2];J[8308]=J[c>>2];J[8309]=e;e=J[c+12>>2];J[8310]=J[c+8>>2];J[8311]=e;e=J[c+20>>2];J[8312]=J[c+16>>2];J[8313]=e;e=J[c+28>>2];J[8314]=J[c+24>>2];J[8315]=e;e=J[c+36>>2];J[8316]=J[c+32>>2];J[8317]=e;e=J[c+44>>2];J[8318]=J[c+40>>2];J[8319]=e;e=J[c+56>>2];o=J[c+60>>2];n=J[c+48>>2];c=J[c+52>>2];H[33296]=1;J[8322]=e;J[8323]=o;J[8320]=n;J[8321]=c}c=J[d+24>>2];e=J[d+16>>2];c=c?c+4|0:e?e+60|0:33232;r=N[c+8>>2];s=N[c>>2];t=N[c+4>>2];q=N[c+24>>2];u=N[c+20>>2];v=N[c+16>>2];w=N[c+40>>2];y=N[c+36>>2];z=N[c+32>>2];f=N[d+52>>2];h=N[d+48>>2];g=N[d+44>>2];J[b+44>>2]=0;m=Q(m*Q(10));N[b+40>>2]=m+N[b+56>>2];p=Q(p*Q(10));N[b+36>>2]=p+N[b+52>>2];l=Q(l*Q(10));N[b+32>>2]=l+N[b+48>>2];J[b+24>>2]=0;J[b+28>>2]=0;J[b+16>>2]=1065353216;J[b+20>>2]=1065353216;e=b+48|0;d=b+32|0;c=b+16|0;ia[J[J[j>>2]+8>>2]](j,e,d,c);J[b+44>>2]=0;w=Q(Q(Q(w*f)+Q(Q(z*g)+Q(h*y)))*Q(10));N[b+40>>2]=w+N[b+56>>2];q=Q(Q(Q(q*f)+Q(Q(v*g)+Q(h*u)))*Q(10));N[b+36>>2]=q+N[b+52>>2];f=Q(Q(Q(r*f)+Q(Q(s*g)+Q(t*h)))*Q(10));N[b+32>>2]=f+N[b+48>>2];J[b+24>>2]=0;J[b+28>>2]=0;J[b+16>>2]=1065353216;J[b+20>>2]=1065353216;ia[J[J[j>>2]+8>>2]](j,e,d,c);J[b+44>>2]=0;N[b+40>>2]=m+N[b+168>>2];N[b+36>>2]=p+N[b+164>>2];N[b+32>>2]=l+N[b+160>>2];J[b+24>>2]=1065353216;J[b+28>>2]=0;J[b+16>>2]=0;J[b+20>>2]=1065353216;e=b+160|0;ia[J[J[j>>2]+8>>2]](j,e,d,c);J[b+44>>2]=0;N[b+40>>2]=w+N[b+168>>2];N[b+36>>2]=q+N[b+164>>2];N[b+32>>2]=f+N[b+160>>2];J[b+24>>2]=1065353216;J[b+28>>2]=0;J[b+16>>2]=0;J[b+20>>2]=1065353216;ia[J[J[j>>2]+8>>2]](j,e,d,c)}i=i+1|0;if((i|0) >2]){continue}break}}ga=b+176|0}d=J[a+72>>2];n:{if(!d){break n}if(!(ia[J[J[d>>2]+48>>2]](d)&2)){break n}if(K[a+348|0]){c=J[a+72>>2];d=ga-32|0;ga=d;i=J[k+928>>2];J[d+24>>2]=1065353216;J[d+28>>2]=0;J[d+16>>2]=1065353216;J[d+20>>2]=0;J[d+8>>2]=1065353216;J[d+12>>2]=0;J[d>>2]=1065353216;J[d+4>>2]=1065353216;Ob(c,i,0,d+16|0,d,0,-1);ga=d+32|0}if(K[a+349|0]){c=J[a+72>>2];d=ga-32|0;ga=d;i=J[k+988>>2];J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=1065353216;J[d+8>>2]=0;J[d+12>>2]=0;J[d>>2]=1065353216;J[d+4>>2]=0;Ob(c,i,0,d+16|0,d,0,-1);ga=d+32|0}if(!K[a+350|0]){break n}c=J[a+72>>2];d=ga-32|0;ga=d;i=J[k+1048>>2];J[d+24>>2]=1065353216;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=1065353216;J[d+8>>2]=0;J[d+12>>2]=0;J[d>>2]=1065353216;J[d+4>>2]=0;Ob(c,i,0,d+16|0,d,0,-1);ga=d+32|0}E=E+1|0;if((E|0) >2]){continue}break}}}function VG(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=Q(0),g=0,h=0,i=0,j=Q(0),k=0,l=Q(0),m=0,n=Q(0),o=Q(0),p=0,q=Q(0),r=Q(0),s=0,t=Q(0),u=Q(0),v=0,w=Q(0),x=0,y=Q(0),z=0,A=0,B=Q(0),C=Q(0),D=Q(0),E=Q(0),F=Q(0),G=Q(0),I=Q(0),L=Q(0),M=Q(0),O=Q(0),S=Q(0),U=0,V=0,W=Q(0),X=0,Z=Q(0),_=Q(0),$=Q(0),aa=Q(0),ba=Q(0),ca=Q(0),da=Q(0),ea=0,fa=Q(0),ha=Q(0),ja=Q(0),ka=Q(0),la=Q(0),ma=Q(0),na=Q(0),oa=Q(0),pa=0,qa=Q(0),ra=Q(0),sa=Q(0),ta=Q(0),ua=Q(0),va=Q(0),wa=0,xa=0,ya=0,za=0;g=ga-544|0;ga=g;k=J[a+20>>2];if(!k){h=J[a+4>>2];k=ia[J[J[h>>2]+12>>2]](h,J[b+8>>2],J[c+8>>2])|0;H[a+16|0]=1;J[a+20>>2]=k}J[e+4>>2]=k;U=J[b+4>>2];v=J[c+4>>2];a:{if(!(J[U+4>>2]!=10|J[v+4>>2]!=10)){u=N[k+752>>2];a=J[b+12>>2];h=J[U+52>>2];k=h<<2;d=a+k|0;F=N[d+32>>2];b=J[c+12>>2];$=N[b+56>>2];w=Q($-N[a+56>>2]);M=N[d>>2];W=N[b+48>>2];G=Q(W-N[a+48>>2]);C=N[d+16>>2];E=N[b+52>>2];I=Q(E-N[a+52>>2]);n=Q(Q(F*w)+Q(Q(M*G)+Q(C*I)));a=b;b=J[v+52>>2];c=b<<2;a=a+c|0;q=N[a+32>>2];t=N[a>>2];Z=N[a+16>>2];o=Q(-Q(Q(q*w)+Q(Q(t*G)+Q(Z*I))));a=v+28|0;j=N[a+c>>2];c=U+28|0;y=N[c+k>>2];a=a+((b+2|0)%3<<2)|0;b=c+((h+2|0)%3<<2)|0;L=Q(Q(F*q)+Q(Q(M*t)+Q(C*Z)));l=Q(Q(1)-Q(L*L));b:{if(l==Q(0)){break b}f=Q(-y);l=Q(Q(Q(o*L)+n)/l);if(f>l){break b}f=l;if(!(y >2];_=N[b>>2];l=Q(Q(f*L)+o);o=Q(-j);c:{d:{if(l j){l=o;break c}if(!(j>y)){l=o;f=j;break c}j=o;break d}if(!(j o){l=j;break c}if(!(o>y)){l=j;f=o;break c}}l=j;f=y}L=Q(q*l);j=Q(L+Q(w-Q(F*f)));n=Q(t*l);o=Q(n+Q(G-Q(M*f)));w=Q(Z*l);f=Q(w+Q(I-Q(C*f)));l=Q(Q(j*j)+Q(Q(o*o)+Q(f*f)));G=Q(Y(l));y=Q(Q(G-_)-r);if(!(y>u)){e:{if(l<=Q(1.4210854715202004e-14)){if(Q(R(F))>Q(.7071067690849304)){J[g>>2]=0;f=Q(Q(1)/Q(Y(Q(Q(C*C)+Q(F*F)))));j=Q(C*f);N[g+8>>2]=j;l=Q(f*Q(-F));N[g+4>>2]=l;f=Q(0);break e}J[g+8>>2]=0;f=Q(Q(1)/Q(Y(Q(Q(M*M)+Q(C*C)))));l=Q(M*f);N[g+4>>2]=l;f=Q(f*Q(-C));N[g>>2]=f;j=Q(0);break e}J[g+12>>2]=0;C=Q(Q(-1)/G);j=Q(j*C);N[g+8>>2]=j;l=Q(f*C);N[g+4>>2]=l;f=Q(o*C);N[g>>2]=f}J[g+420>>2]=0;N[g+416>>2]=Q(r*j)+Q(L+$);N[g+412>>2]=Q(r*l)+Q(w+E);N[g+408>>2]=Q(r*f)+Q(n+W)}if(u>y){ia[J[J[e>>2]+16>>2]](e,g,g+408|0,y)}a=J[e+4>>2];if(!J[a+748>>2]){break a}c=J[a+740>>2];d=J[J[e+8>>2]+8>>2];b=(c|0)==(d|0);k=a;a=J[J[e+12>>2]+8>>2];ab(k,(b?c:a)+4|0,(b?a:d)+4|0);break a}J[g+536>>2]=1566444395;V=Bg(g+328|0,U,v,J[a+8>>2],J[a+12>>2]);J[V+32>>2]=v;J[V+28>>2]=U;l=Q(Q(Q(ia[J[J[U>>2]+48>>2]](U))+Q(ia[J[J[v>>2]+48>>2]](v)))+N[J[a+20>>2]+752>>2]);N[g+536>>2]=l*l;h=J[b+12>>2];k=J[h+12>>2];J[g+416>>2]=J[h+8>>2];J[g+420>>2]=k;k=J[h+4>>2];J[g+408>>2]=J[h>>2];J[g+412>>2]=k;k=J[h+28>>2];J[g+432>>2]=J[h+24>>2];J[g+436>>2]=k;k=J[h+20>>2];J[g+424>>2]=J[h+16>>2];J[g+428>>2]=k;k=J[h+44>>2];J[g+448>>2]=J[h+40>>2];J[g+452>>2]=k;k=J[h+36>>2];J[g+440>>2]=J[h+32>>2];J[g+444>>2]=k;k=J[h+60>>2];J[g+464>>2]=J[h+56>>2];J[g+468>>2]=k;k=J[h+52>>2];J[g+456>>2]=J[h+48>>2];J[g+460>>2]=k;h=J[c+12>>2];k=J[h+12>>2];J[g+480>>2]=J[h+8>>2];J[g+484>>2]=k;k=J[h+4>>2];J[g+472>>2]=J[h>>2];J[g+476>>2]=k;p=J[h+20>>2];i=g+488|0;J[i>>2]=J[h+16>>2];J[i+4>>2]=p;k=J[h+28>>2];J[g+496>>2]=J[h+24>>2];J[g+500>>2]=k;s=J[h+36>>2];p=g+504|0;k=p;J[k>>2]=J[h+32>>2];J[k+4>>2]=s;k=J[h+44>>2];J[g+512>>2]=J[h+40>>2];J[g+516>>2]=k;x=J[h+52>>2];s=g+520|0;k=s;J[k>>2]=J[h+48>>2];J[k+4>>2]=x;k=J[h+60>>2];J[g+528>>2]=J[h+56>>2];J[g+532>>2]=k;f:{k=J[U+4>>2];if((k|0)>6){break f}h=J[v+4>>2];if((h|0)>6){break f}J[g+320>>2]=8896;l=Q(0);if(k){l=Q(ia[J[J[U>>2]+48>>2]](U));h=J[v+4>>2]}if(h){f=Q(ia[J[J[v>>2]+48>>2]](v))}H[g+36|0]=0;N[g+28>>2]=f;N[g+24>>2]=l;J[g+4>>2]=e;J[g>>2]=9128;if(!J[U+52>>2]){break f}if(J[v+52>>2]){aa=N[J[a+20>>2]+752>>2];g:{h:{if(K[d+24|0]){l=Q(-1.0000000150474662e30);x=J[U+52>>2];A=J[v+52>>2];p=J[b+12>>2];s=J[c+12>>2];h=0;V=0;i=ga-96|0;ga=i;J[7973]=J[7973]+1;f=N[x+72>>2];r=N[p+40>>2];j=N[x+64>>2];n=N[p+32>>2];q=N[x+68>>2];u=N[p+36>>2];t=N[A+72>>2];W=N[A+64>>2];D=N[A+68>>2];Z=Q(Q(Q(Q(f*r)+Q(Q(j*n)+Q(q*u)))+N[p+56>>2])-Q(Q(Q(t*N[s+40>>2])+Q(Q(W*N[s+32>>2])+Q(D*N[s+36>>2])))+N[s+56>>2]));w=N[p+24>>2];G=N[p+16>>2];I=N[p+20>>2];$=Q(Q(Q(Q(f*w)+Q(Q(j*G)+Q(q*I)))+N[p+52>>2])-Q(Q(Q(t*N[s+24>>2])+Q(Q(W*N[s+16>>2])+Q(D*N[s+20>>2])))+N[s+52>>2]));E=N[p+8>>2];_=N[p>>2];O=N[p+4>>2];W=Q(Q(Q(Q(f*E)+Q(Q(j*_)+Q(q*O)))+N[p+48>>2])-Q(Q(Q(t*N[s+8>>2])+Q(Q(W*N[s>>2])+Q(D*N[s+4>>2])))+N[s+48>>2]));j=Q(3.4028234663852886e38);i:{j:{k=J[x+28>>2];if((k|0)<=0){break j}while(1){d=J[x+36>>2]+P(z,36)|0;t=N[d+28>>2];D=N[d+24>>2];S=N[d+20>>2];J[i+12>>2]=0;f=Q(Q(r*t)+Q(Q(n*S)+Q(D*u)));N[i+8>>2]=f;q=Q(Q(w*t)+Q(Q(G*S)+Q(D*I)));N[i+4>>2]=q;t=Q(Q(E*t)+Q(Q(_*S)+Q(D*O)));N[i>>2]=t;if(Q(Q(Z*f)+Q(Q(W*t)+Q($*q))) >2]=f;q=Q(-q);N[i+4>>2]=q;t=Q(-t);N[i>>2]=t}J[7971]=J[7971]+1;k:{l:{if(K[27117]){D=Q(Q(Z*f)+Q(Q(W*t)+Q($*q)));S=N[x+88>>2];r=Q(Q(r*f)+Q(Q(E*t)+Q(q*w)));w=Q((r>2];E=Q(-r);B=r;r=Q(Q(n*f)+Q(Q(_*t)+Q(q*G)));B=Q((r>2];r=Q(w+Q(B+Q(r*(r>2];B=r>n?r:n;r=N[A+88>>2];u=Q(-r);n=r;r=Q(Q(N[s+40>>2]*f)+Q(Q(N[s+8>>2]*t)+Q(q*N[s+24>>2])));u=Q((r>2];w=Q(-r);n=r;r=Q(Q(N[s+32>>2]*f)+Q(Q(N[s>>2]*t)+Q(q*N[s+16>>2])));n=Q((r>2]*f)+Q(Q(N[s+4>>2]*t)+Q(q*N[s+20>>2])));r=N[A+84>>2];f=Q(u+Q(n+Q(f*(f>2];f=Q(B+(f>r?f:r));r=Q(D+f);f=Q(f-D);if((f>r?r:f)>j){break l}}J[7972]=J[7972]+1;Cc(x,p,i,i+92|0,i+88|0,i- -64|0,i+48|0);Cc(A,s,i,i+84|0,i+80|0,i+32|0,i+16|0);f=N[i+88>>2];r=N[i+84>>2];if(f>2];u=N[i+92>>2];if(n>2];J[g+240>>2]=J[i>>2];J[g+244>>2]=d;d=J[i+12>>2];J[g+248>>2]=J[i+8>>2];J[g+252>>2]=d;j=f}z=z+1|0;if((k|0)==(z|0)){break j}r=N[p+40>>2];u=N[p+36>>2];n=N[p+32>>2];w=N[p+24>>2];I=N[p+20>>2];G=N[p+16>>2];E=N[p+8>>2];O=N[p+4>>2];_=N[p>>2];continue}break}break i}m:{k=J[A+28>>2];if((k|0)>0){z=0;while(1){d=J[A+36>>2]+P(z,36)|0;r=N[d+28>>2];n=N[d+20>>2];u=N[d+24>>2];w=N[s+8>>2];G=N[s>>2];I=N[s+4>>2];E=N[s+24>>2];_=N[s+16>>2];O=N[s+20>>2];D=N[s+40>>2];S=N[s+32>>2];ba=N[s+36>>2];J[i+12>>2]=0;f=Q(Q(D*r)+Q(Q(S*n)+Q(u*ba)));N[i+8>>2]=f;q=Q(Q(E*r)+Q(Q(_*n)+Q(u*O)));N[i+4>>2]=q;t=Q(Q(w*r)+Q(Q(G*n)+Q(u*I)));N[i>>2]=t;if(Q(Q(Z*f)+Q(Q(W*t)+Q($*q))) >2]=f;q=Q(-q);N[i+4>>2]=q;t=Q(-t);N[i>>2]=t}J[7971]=J[7971]+1;n:{if(K[27117]){r=Q(Q(Z*f)+Q(Q(W*t)+Q($*q)));n=N[x+88>>2];u=Q(-n);B=n;n=Q(Q(N[p+40>>2]*f)+Q(Q(N[p+8>>2]*t)+Q(q*N[p+24>>2])));ca=Q((n>2];u=Q(-n);B=n;n=Q(Q(N[p+32>>2]*f)+Q(Q(N[p>>2]*t)+Q(q*N[p+16>>2])));B=Q((n>2]*f)+Q(Q(N[p+4>>2]*t)+Q(q*N[p+20>>2])));u=N[x+84>>2];n=Q(ca+Q(B+Q(n*(n>2];u=n>u?n:u;n=N[A+88>>2];ca=Q(-n);B=n;n=Q(Q(D*f)+Q(Q(w*t)+Q(q*E)));w=Q((n>2];E=Q(-n);B=n;n=Q(Q(S*f)+Q(Q(G*t)+Q(q*_)));B=Q((n>2];f=Q(w+Q(B+Q(f*(f>2];f=Q(u+(f>n?f:n));n=Q(r+f);f=Q(f-r);if((f>n?n:f)>j){break n}}J[7972]=J[7972]+1;Cc(x,p,i,i+92|0,i+88|0,i- -64|0,i+48|0);Cc(A,s,i,i+84|0,i+80|0,i+32|0,i+16|0);f=N[i+88>>2];r=N[i+84>>2];if(f>2];u=N[i+92>>2];if(n>2];J[g+240>>2]=J[i>>2];J[g+244>>2]=d;d=J[i+12>>2];J[g+248>>2]=J[i+8>>2];J[g+252>>2]=d;j=f}z=z+1|0;if((k|0)!=(z|0)){continue}break}}V=1;d=J[x+48>>2];o:{if((d|0)<=0){break o}z=J[A+48>>2];if((z|0)<=0){break o}k=-1;m=-1;while(1){if((z|0)>0){d=J[x+56>>2]+(h<<4)|0;f=N[d+8>>2];u=N[d>>2];w=N[d+4>>2];r=Q(Q(N[p+24>>2]*f)+Q(Q(N[p+16>>2]*u)+Q(w*N[p+20>>2])));qa=Q(-r);n=Q(Q(N[p+8>>2]*f)+Q(Q(N[p>>2]*u)+Q(w*N[p+4>>2])));ra=Q(-n);u=Q(Q(N[p+40>>2]*f)+Q(Q(N[p+32>>2]*u)+Q(w*N[p+36>>2])));sa=Q(-u);d=0;while(1){z=J[A+56>>2]+(d<<4)|0;I=N[z+8>>2];q=N[z>>2];t=N[z+4>>2];E=N[s+40>>2];_=N[s+32>>2];O=N[s+36>>2];D=N[s+24>>2];S=N[s+16>>2];ba=N[s+20>>2];ja=N[s+8>>2];fa=N[s>>2];ha=N[s+4>>2];J[i+12>>2]=0;w=Q(Q(D*I)+Q(Q(S*q)+Q(t*ba)));G=Q(Q(ja*I)+Q(Q(fa*q)+Q(t*ha)));f=Q(Q(n*w)+Q(G*qa));I=Q(Q(E*I)+Q(Q(_*q)+Q(t*O)));q=Q(Q(u*G)+Q(I*ra));t=Q(Q(r*I)+Q(w*sa));p:{if(!(+Q(R(f))>1e-6?1:+Q(R(t))>1e-6|+Q(R(q))>1e-6)){break p}da=Q(Q(1)/Q(Y(Q(Q(f*f)+Q(Q(t*t)+Q(q*q))))));f=Q(f*da);N[i+8>>2]=f;q=Q(q*da);N[i+4>>2]=q;t=Q(t*da);N[i>>2]=t;if(Q(Q(Z*f)+Q(Q(W*t)+Q($*q))) >2]=f;q=Q(-q);N[i+4>>2]=q;t=Q(-t);N[i>>2]=t}J[7971]=J[7971]+1;if(K[27117]){da=Q(Q(Z*f)+Q(Q(W*t)+Q($*q)));B=N[x+88>>2];ka=Q(-B);ca=B;B=Q(Q(N[p+40>>2]*f)+Q(Q(N[p+8>>2]*t)+Q(q*N[p+24>>2])));ka=Q((B>2];la=Q(-B);ca=B;B=Q(Q(N[p+32>>2]*f)+Q(Q(N[p>>2]*t)+Q(q*N[p+16>>2])));la=Q((B>2]*f)+Q(Q(N[p+4>>2]*t)+Q(q*N[p+20>>2])));ca=N[x+84>>2];B=Q(ka+Q(la+Q(B*(B>2];ca=B>ca?B:ca;B=N[A+88>>2];E=Q(Q(E*f)+Q(Q(ja*t)+Q(q*D)));D=Q((E>2];ja=Q(-E);B=E;E=Q(Q(_*f)+Q(Q(fa*t)+Q(q*S)));f=Q(Q(O*f)+Q(Q(ha*t)+Q(q*ba)));q=N[A+84>>2];f=Q(D+Q(Q((E>2];f=Q(ca+(f>q?f:q));q=Q(da+f);f=Q(f-da);if((f>q?q:f)>j){break p}}J[7972]=J[7972]+1;Cc(x,p,i,i+92|0,i+88|0,i- -64|0,i+48|0);Cc(A,s,i,i+84|0,i+80|0,i+32|0,i+16|0);f=N[i+88>>2];q=N[i+84>>2];if(f>2];E=N[i+92>>2];if(t>2];ta=N[(z?i+48|0:i- -64|0)>>2];j=N[i+24>>2];o=N[i+40>>2];y=N[i+20>>2];C=N[i+36>>2];F=N[i+72>>2];M=N[i+56>>2];L=N[i+68>>2];q=N[i+52>>2];k=J[i+4>>2];J[g+240>>2]=J[i>>2];J[g+244>>2]=k;k=J[i+12>>2];J[g+248>>2]=J[i+8>>2];J[g+252>>2]=k;ua=z?q:L;va=z?M:F;na=z?C:y;oa=z?o:j;o=G;y=w;C=I;F=n;M=r;L=u;m=h;k=d;j=f}d=d+1|0;z=J[A+48>>2];if((d|0)<(z|0)){continue}break}d=J[x+48>>2]}h=h+1|0;if((h|0)<(d|0)){continue}break}if((m|k)<0){break o}u=Q(oa-va);w=Q(ma-ta);G=Q(na-ua);n=Q(Q(L*u)+Q(Q(F*w)+Q(G*M)));f=Q(0);I=Q(-Q(Q(C*u)+Q(Q(o*w)+Q(G*y))));r=Q(Q(L*C)+Q(Q(F*o)+Q(y*M)));j=Q(Q(1)-Q(r*r));q:{if(j==Q(0)){break q}f=Q(-1.0000000150474662e30);j=Q(Q(Q(I*r)+n)/j);if(j Q(1.0000000150474662e30))){break q}f=Q(1.0000000150474662e30)}q=Q(Q(f*r)+I);r:{if(qQ(1.0000000150474662e30))){q=Q(-1.0000000150474662e30);f=j;break r}q=Q(-1.0000000150474662e30);break r}if(!(q>Q(1.0000000150474662e30))){break r}f=Q(-1.0000000150474662e30);q=Q(1.0000000150474662e30);j=Q(Q(r*Q(1.0000000150474662e30))+n);if(jQ(1.0000000150474662e30))){break r}f=Q(1.0000000150474662e30)}J[i+76>>2]=0;C=Q(C*q);j=Q(C+Q(u-Q(L*f)));L=Q(o*q);o=Q(L+Q(w-Q(F*f)));F=Q(y*q);f=Q(F+Q(G-Q(M*f)));y=Q(Q(j*j)+Q(Q(o*o)+Q(f*f)));if(!(y>Q(1.1920928955078125e-7))){break o}n=j;M=Q(Y(y));j=Q(Q(1)/M);y=Q(n*j);N[i+72>>2]=y;f=Q(f*j);N[i+68>>2]=f;j=Q(o*j);N[i+64>>2]=j;if(Q(Q(y*Z)+Q(Q(j*W)+Q($*f)))>2]=-y;N[i+68>>2]=-f;N[i+64>>2]=-j}J[i+60>>2]=0;N[i+56>>2]=oa+C;N[i+52>>2]=na+F;N[i+48>>2]=ma+L;ia[J[J[e>>2]+16>>2]](e,i- -64|0,i+48|0,Q(-M))}f=N[g+248>>2];j=N[g+240>>2];o=N[g+244>>2];if(!(Q(Q(Z*f)+Q(Q(W*j)+Q($*o)))>2]=0;N[g+248>>2]=-f;N[g+244>>2]=-o;N[g+240>>2]=-j;break i}V=0}ga=i+96|0;if(V){break h}break g}zb(V,g+408|0,g,J[d+20>>2],0);d=J[g+20>>2];J[g+248>>2]=J[g+16>>2];J[g+252>>2]=d;d=J[g+12>>2];J[g+240>>2]=J[g+8>>2];J[g+244>>2]=d;if(!K[g+36|0]){break g}l=N[g+32>>2];if(!(l>2];s=J[v+52>>2];xa=J[b+12>>2];k=J[c+12>>2];y=Q(l-aa);x=0;A=0;c=ga-48|0;ga=c;f=N[g+248>>2];l=N[g+240>>2];j=N[g+244>>2];N[c+44>>2]=N[g+252>>2];o=f;f=Q(Q(1)/Q(Y(Q(Q(f*f)+Q(Q(l*l)+Q(j*j))))));C=Q(o*f);N[c+40>>2]=C;F=Q(j*f);N[c+36>>2]=F;M=Q(l*f);N[c+32>>2]=M;b=J[s+36>>2];i=J[s+28>>2];s:{if((i|0)<=0){m=-1;break s}L=N[k+40>>2];r=N[k+36>>2];n=N[k+24>>2];u=N[k+20>>2];w=N[k+32>>2];G=N[k+16>>2];I=N[k+8>>2];q=N[k+4>>2];t=N[k>>2];d=0;f=Q(-3.4028234663852886e38);m=-1;while(1){h=b+P(d,36)|0;l=N[h+28>>2];j=N[h+20>>2];o=N[h+24>>2];l=Q(Q(Q(Q(L*l)+Q(Q(w*j)+Q(o*r)))*C)+Q(Q(Q(Q(I*l)+Q(Q(t*j)+Q(o*q)))*M)+Q(F*Q(Q(n*l)+Q(Q(G*j)+Q(o*u))))));h=l>f;f=h?l:f;m=h?d:m;d=d+1|0;if((i|0)!=(d|0)){continue}break}}J[c+20>>2]=0;J[c+12>>2]=0;J[c+16>>2]=0;H[c+24|0]=1;t:{pa=J[(b+P(m,36)|0)+4>>2];if((pa|0)<=0){break t}ya=b+P(m,36)|0;h=0;while(1){b=J[s+16>>2]+(J[J[ya+12>>2]+(A<<2)>>2]<<4)|0;f=N[b+8>>2];l=N[b>>2];j=N[b+4>>2];o=Q(Q(Q(f*N[k+40>>2])+Q(Q(l*N[k+32>>2])+Q(j*N[k+36>>2])))+N[k+56>>2]);C=Q(Q(Q(f*N[k+24>>2])+Q(Q(l*N[k+16>>2])+Q(j*N[k+20>>2])))+N[k+52>>2]);f=Q(Q(Q(f*N[k+8>>2])+Q(Q(l*N[k>>2])+Q(j*N[k+4>>2])))+N[k+48>>2]);u:{if((h|0)!=(x|0)){break u}z=h?h<<1:1;if((z|0)<=(h|0)){break u}if(z){J[8369]=J[8369]+1;b=ia[J[6782]](z<<4,16)|0}else{b=0}i=J[c+20>>2];v:{if((h|0)<=0){break v}U=0;d=0;if(h-1>>>0>=3){za=h&-4;V=0;while(1){p=d<<4;X=p+b|0;v=i+p|0;ea=J[v+4>>2];J[X>>2]=J[v>>2];J[X+4>>2]=ea;ea=J[v+12>>2];J[X+8>>2]=J[v+8>>2];J[X+12>>2]=ea;v=p|16;X=v+b|0;v=i+v|0;ea=J[v+12>>2];J[X+8>>2]=J[v+8>>2];J[X+12>>2]=ea;ea=J[v+4>>2];J[X>>2]=J[v>>2];J[X+4>>2]=ea;v=p|32;X=v+b|0;v=i+v|0;ea=J[v+12>>2];J[X+8>>2]=J[v+8>>2];J[X+12>>2]=ea;ea=J[v+4>>2];J[X>>2]=J[v>>2];J[X+4>>2]=ea;p=p|48;v=p+b|0;p=i+p|0;X=J[p+12>>2];J[v+8>>2]=J[p+8>>2];J[v+12>>2]=X;X=J[p+4>>2];J[v>>2]=J[p>>2];J[v+4>>2]=X;d=d+4|0;V=V+4|0;if((za|0)!=(V|0)){continue}break}}v=h&3;if(!v){break v}while(1){h=d<<4;p=h+b|0;h=h+i|0;V=J[h+4>>2];J[p>>2]=J[h>>2];J[p+4>>2]=V;V=J[h+12>>2];J[p+8>>2]=J[h+8>>2];J[p+12>>2]=V;d=d+1|0;U=U+1|0;if((v|0)!=(U|0)){continue}break}}if(!(i?!i|!K[c+24|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](i)}J[c+20>>2]=b;H[c+24|0]=1;J[c+16>>2]=z}b=J[c+20>>2]+(x<<4)|0;J[b+12>>2]=0;N[b+8>>2]=o;N[b+4>>2]=C;N[b>>2]=f;x=J[c+12>>2]+1|0;J[c+12>>2]=x;A=A+1|0;if((pa|0)==(A|0)){break t}h=J[c+16>>2];continue}}if((m|0)>=0){ll(c+32|0,wa,xa,c+8|0,y,aa,e)}b=J[c+20>>2];if(!(b?!b|!K[c+24|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](b)}ga=c+48|0}if(!K[a+16|0]){break a}a=J[e+4>>2];if(!J[a+748>>2]){break a}c=J[a+740>>2];d=J[J[e+8>>2]+8>>2];b=(c|0)==(d|0);k=a;a=J[J[e+12>>2]+8>>2];ab(k,(b?c:a)+4|0,(b?a:d)+4|0);break a}if(J[v+4>>2]!=1){break f}J[g+244>>2]=0;h=J[c+12>>2];o=N[h+52>>2];y=N[h+20>>2];C=N[h+24>>2];F=N[h+56>>2];M=N[h+36>>2];L=N[h+40>>2];f=N[v- -64>>2];l=N[v+56>>2];j=N[v+60>>2];r=N[h+16>>2];n=N[h+32>>2];u=N[h+48>>2];w=N[h+8>>2];G=N[h>>2];I=N[h+4>>2];J[8369]=J[8369]+1;h=ia[J[6782]](16,16)|0;J[g+252>>2]=h;H[g+256|0]=1;J[g+248>>2]=1;J[h+12>>2]=0;N[h>>2]=u+Q(Q(f*w)+Q(Q(l*G)+Q(j*I)));N[h+8>>2]=F+Q(Q(f*L)+Q(Q(l*n)+Q(j*M)));N[h+4>>2]=o+Q(Q(f*C)+Q(Q(l*r)+Q(j*y)));i=J[g+244>>2];h=i+1|0;J[g+244>>2]=h;f=N[v+80>>2];k=J[c+12>>2];l=N[v+72>>2];j=N[v+76>>2];o=Q(Q(Q(f*N[k+40>>2])+Q(Q(l*N[k+32>>2])+Q(j*N[k+36>>2])))+N[k+56>>2]);y=Q(Q(Q(f*N[k+24>>2])+Q(Q(l*N[k+16>>2])+Q(j*N[k+20>>2])))+N[k+52>>2]);f=Q(Q(Q(f*N[k+8>>2])+Q(Q(l*N[k>>2])+Q(j*N[k+4>>2])))+N[k+48>>2]);w:{if(J[g+248>>2]!=(h|0)){break w}p=h?h<<1:1;if((p|0)<=(h|0)){break w}if(p){J[8369]=J[8369]+1;m=ia[J[6782]](p<<4,16)|0}x:{if((i|0)<0){break x}h=i+1|0;A=h&1;y:{if(!i){k=0;break y}z=h&-2;k=0;h=0;while(1){s=k<<4;x=s+m|0;i=s+J[g+252>>2]|0;X=J[i+4>>2];J[x>>2]=J[i>>2];J[x+4>>2]=X;X=J[i+12>>2];J[x+8>>2]=J[i+8>>2];J[x+12>>2]=X;i=s|16;s=i+m|0;i=i+J[g+252>>2]|0;x=J[i+4>>2];J[s>>2]=J[i>>2];J[s+4>>2]=x;x=J[i+12>>2];J[s+8>>2]=J[i+8>>2];J[s+12>>2]=x;k=k+2|0;h=h+2|0;if((z|0)!=(h|0)){continue}break}}if(!A){break x}h=k<<4;k=h+m|0;h=h+J[g+252>>2]|0;i=J[h+4>>2];J[k>>2]=J[h>>2];J[k+4>>2]=i;i=J[h+12>>2];J[k+8>>2]=J[h+8>>2];J[k+12>>2]=i}h=J[g+252>>2];if(!(h?!h|!K[g+256|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](h)}J[g+252>>2]=m;H[g+256|0]=1;J[g+248>>2]=p;h=J[g+244>>2]}h=J[g+252>>2]+(h<<4)|0;J[h+12>>2]=0;N[h+8>>2]=o;N[h+4>>2]=y;N[h>>2]=f;k=J[g+244>>2];h=k+1|0;J[g+244>>2]=h;f=N[v+96>>2];c=J[c+12>>2];l=N[v+88>>2];j=N[v+92>>2];o=Q(Q(Q(f*N[c+8>>2])+Q(Q(l*N[c>>2])+Q(j*N[c+4>>2])))+N[c+48>>2]);y=Q(Q(Q(f*N[c+40>>2])+Q(Q(l*N[c+32>>2])+Q(j*N[c+36>>2])))+N[c+56>>2]);f=Q(Q(Q(f*N[c+24>>2])+Q(Q(l*N[c+16>>2])+Q(j*N[c+20>>2])))+N[c+52>>2]);z:{if(J[g+248>>2]!=(h|0)){break z}c=h?h<<1:1;if((c|0)<=(h|0)){break z}h=0;if(c){J[8369]=J[8369]+1;h=ia[J[6782]](c<<4,16)|0}A:{if((k|0)<0){break A}m=k+1|0;x=m&1;B:{if(!k){k=0;break B}A=m&-2;k=0;m=0;while(1){p=k<<4;s=p+h|0;i=p+J[g+252>>2]|0;z=J[i+4>>2];J[s>>2]=J[i>>2];J[s+4>>2]=z;z=J[i+12>>2];J[s+8>>2]=J[i+8>>2];J[s+12>>2]=z;i=p|16;p=i+h|0;i=i+J[g+252>>2]|0;s=J[i+4>>2];J[p>>2]=J[i>>2];J[p+4>>2]=s;s=J[i+12>>2];J[p+8>>2]=J[i+8>>2];J[p+12>>2]=s;k=k+2|0;m=m+2|0;if((A|0)!=(m|0)){continue}break}}if(!x){break A}k=k<<4;m=k+h|0;k=k+J[g+252>>2]|0;i=J[k+4>>2];J[m>>2]=J[k>>2];J[m+4>>2]=i;i=J[k+12>>2];J[m+8>>2]=J[k+8>>2];J[m+12>>2]=i}k=J[g+252>>2];if(!(k?!k|!K[g+256|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](k)}J[g+252>>2]=h;H[g+256|0]=1;J[g+248>>2]=c;h=J[g+244>>2]}c=J[g+252>>2]+(h<<4)|0;J[c+12>>2]=0;N[c+8>>2]=y;N[c+4>>2]=f;N[c>>2]=o;J[g+244>>2]=J[g+244>>2]+1;f=N[J[a+20>>2]+752>>2];zb(V,g+408|0,g+320|0,J[d+20>>2],0);l=N[V+12>>2];j=N[V+4>>2];o=N[V+8>>2];y=Q(Q(l*l)+Q(Q(j*j)+Q(o*o)));if(y>Q(1.1920928955078125e-7)){J[g+316>>2]=0;n=l;l=Q(Q(1)/y);N[g+312>>2]=n*l;N[g+308>>2]=o*l;N[g+304>>2]=j*l;l=N[V+56>>2];j=Q(ia[J[J[U>>2]+48>>2]](U));o=Q(ia[J[J[v>>2]+48>>2]](v));ll(g+304|0,J[U+52>>2],J[b+12>>2],g+240|0,Q(Q(Q(l-j)-o)-f),f,e)}C:{if(!K[a+16|0]){break C}a=J[e+4>>2];if(!J[a+748>>2]){break C}c=J[a+740>>2];d=J[J[e+8>>2]+8>>2];b=(c|0)==(d|0);k=a;a=J[J[e+12>>2]+8>>2];ab(k,(b?c:a)+4|0,(b?a:d)+4|0)}a=J[g+252>>2];if(!a|!K[g+256|0]){break a}if(a){J[8370]=J[8370]+1;ia[J[6783]](a)}break a}zb(V,g+408|0,e,J[d+20>>2],0);D:{if(!J[a+28>>2]|J[J[e+4>>2]+748>>2]>=J[a+32>>2]){break D}f=N[V+12>>2];l=N[V+4>>2];j=N[V+8>>2];o=Q(Q(f*f)+Q(Q(l*l)+Q(j*j)));if(!(o>Q(1.1920928955078125e-7))){break D}n=j;j=Q(Q(1)/o);y=Q(n*j);r=Q(l*j);n=Q(f*j);E:{if(Q(R(n))>Q(.7071067690849304)){l=Q(Q(1)/Q(Y(Q(Q(y*y)+Q(n*n)))));f=Q(y*l);l=Q(l*Q(-n));j=Q(0);break E}f=Q(Q(1)/Q(Y(Q(Q(r*r)+Q(y*y)))));l=Q(r*f);j=Q(f*Q(-y));f=Q(0)}x=g+456|0;A=g+440|0;z=g+424|0;o=Q(ia[J[J[U>>2]+16>>2]](U));C=Q(ia[J[J[v>>2]+16>>2]](v));F=N[6778];v=o>2];J[g+248>>2]=J[g+416>>2];J[g+252>>2]=h;h=J[g+412>>2];J[g+240>>2]=J[g+408>>2];J[g+244>>2]=h;k=A;m=x;o=Q(T(Q(F/o),Q(.39269909262657166)));h=z;break F}h=J[g+484>>2];J[g+248>>2]=J[g+480>>2];J[g+252>>2]=h;h=J[g+476>>2];J[g+240>>2]=J[g+472>>2];J[g+244>>2]=h;k=p;m=s;o=Q(T(Q(F/C),Q(.39269909262657166)));h=i}U=J[h+12>>2];J[g+264>>2]=J[h+8>>2];J[g+268>>2]=U;U=J[h+4>>2];J[g+256>>2]=J[h>>2];J[g+260>>2]=U;h=J[k+12>>2];J[g+280>>2]=J[k+8>>2];J[g+284>>2]=h;h=J[k+4>>2];J[g+272>>2]=J[k>>2];J[g+276>>2]=h;h=J[m+12>>2];J[g+296>>2]=J[m+8>>2];J[g+300>>2]=h;h=J[m+4>>2];J[g+288>>2]=J[m>>2];J[g+292>>2]=h;h=J[a+28>>2];if((h|0)<=0){break D}o=Q(o*Q(.5));F=Ga(o);C=Ha(o);o=Q(Q(f*f)+Q(Q(j*j)+Q(l*l)));if(!(o>Q(1.1920928955078125e-7))){break D}B=f;f=Q(F/Q(Y(o)));F=Q(B*f);M=Q(l*f);L=Q(j*f);ja=Q(Y(Q(Q(n*n)+Q(Q(r*r)+Q(y*y)))));k=0;while(1){o=Q(Q(Q(Q(6.2831854820251465)/Q(h|0))*Q(k|0))*Q(.5));j=Q(Ga(o)/ja);f=Q(n*j);l=Q(y*j);j=Q(r*j);o=Ha(o);G:{if(!v){h=J[b+12>>2];m=J[h+12>>2];J[g+416>>2]=J[h+8>>2];J[g+420>>2]=m;m=J[h+4>>2];J[g+408>>2]=J[h>>2];J[g+412>>2]=m;m=J[h+28>>2];J[z+8>>2]=J[h+24>>2];J[z+12>>2]=m;m=J[h+20>>2];J[z>>2]=J[h+16>>2];J[z+4>>2]=m;m=J[h+44>>2];J[A+8>>2]=J[h+40>>2];J[A+12>>2]=m;m=J[h+36>>2];J[A>>2]=J[h+32>>2];J[A+4>>2]=m;m=J[h+60>>2];J[x+8>>2]=J[h+56>>2];J[x+12>>2]=m;m=J[h+52>>2];J[x>>2]=J[h+48>>2];J[x+4>>2]=m;h=J[c+12>>2];G=N[h+36>>2];I=N[h+20>>2];q=N[h+40>>2];t=N[h+24>>2];Z=N[h+32>>2];$=N[h>>2];W=N[h+16>>2];E=N[h+4>>2];_=N[h+8>>2];J[g+516>>2]=0;J[g+500>>2]=0;J[g+484>>2]=0;O=Q(Q(j*F)+Q(Q(Q(o*M)-Q(C*l))-Q(f*L)));D=Q(Q(f*F)+Q(Q(l*M)+Q(Q(o*C)+Q(L*j))));S=Q(Q(f*M)+Q(Q(Q(o*L)-Q(C*j))-Q(l*F)));aa=Q(Q(l*L)+Q(Q(Q(o*F)-Q(C*f))-Q(j*M)));u=Q(Q(Q(O*f)+Q(Q(D*j)+Q(o*S)))-Q(aa*l));w=Q(Q(Q(Q(D*o)-Q(j*S))-Q(O*l))-Q(aa*f));ba=Q(Q(Q(S*l)+Q(Q(D*f)+Q(o*aa)))-Q(O*j));f=Q(Q(Q(aa*j)+Q(Q(D*l)+Q(o*O)))-Q(S*f));l=Q(Q(2)/Q(Q(w*w)+Q(Q(ba*ba)+Q(Q(u*u)+Q(f*f)))));D=Q(u*l);S=Q(u*D);j=Q(f*l);aa=Q(f*j);o=Q(Q(1)-Q(S+aa));l=Q(ba*l);fa=Q(u*l);ha=Q(w*j);O=Q(fa-ha);da=Q(f*l);D=Q(w*D);f=Q(da+D);N[g+512>>2]=Q(q*o)+Q(Q(_*O)+Q(t*f));N[g+508>>2]=Q(G*o)+Q(Q(E*O)+Q(f*I));N[g+504>>2]=Q(Z*o)+Q(Q($*O)+Q(f*W));f=Q(da-D);o=Q(u*j);u=Q(w*l);j=Q(o+u);w=Q(ba*l);l=Q(Q(1)-Q(S+w));N[g+496>>2]=Q(q*f)+Q(Q(_*j)+Q(t*l));N[g+492>>2]=Q(G*f)+Q(Q(E*j)+Q(l*I));N[g+488>>2]=Q(Z*f)+Q(Q($*j)+Q(l*W));f=Q(fa+ha);l=Q(Q(1)-Q(aa+w));j=Q(o-u);N[g+480>>2]=Q(q*f)+Q(Q(_*l)+Q(t*j));N[g+476>>2]=Q(G*f)+Q(Q(E*l)+Q(j*I));N[g+472>>2]=Q(Z*f)+Q(Q($*l)+Q(j*W));break G}h=J[b+12>>2];G=N[h+36>>2];I=N[h+20>>2];q=N[h+40>>2];t=N[h+24>>2];Z=N[h+32>>2];$=N[h>>2];W=N[h+16>>2];E=N[h+4>>2];_=N[h+8>>2];J[g+452>>2]=0;J[g+436>>2]=0;J[g+420>>2]=0;O=Q(Q(j*F)+Q(Q(Q(o*M)-Q(C*l))-Q(f*L)));D=Q(Q(f*F)+Q(Q(l*M)+Q(Q(o*C)+Q(L*j))));S=Q(Q(f*M)+Q(Q(Q(o*L)-Q(C*j))-Q(l*F)));aa=Q(Q(l*L)+Q(Q(Q(o*F)-Q(C*f))-Q(j*M)));u=Q(Q(Q(O*f)+Q(Q(D*j)+Q(o*S)))-Q(aa*l));w=Q(Q(Q(Q(D*o)-Q(j*S))-Q(O*l))-Q(aa*f));ba=Q(Q(Q(S*l)+Q(Q(D*f)+Q(o*aa)))-Q(O*j));f=Q(Q(Q(aa*j)+Q(Q(D*l)+Q(o*O)))-Q(S*f));l=Q(Q(2)/Q(Q(w*w)+Q(Q(ba*ba)+Q(Q(u*u)+Q(f*f)))));D=Q(u*l);S=Q(u*D);j=Q(f*l);aa=Q(f*j);o=Q(Q(1)-Q(S+aa));l=Q(ba*l);fa=Q(u*l);ha=Q(w*j);O=Q(fa-ha);da=Q(f*l);D=Q(w*D);f=Q(da+D);N[g+448>>2]=Q(q*o)+Q(Q(_*O)+Q(t*f));N[g+444>>2]=Q(G*o)+Q(Q(E*O)+Q(f*I));N[g+440>>2]=Q(Z*o)+Q(Q($*O)+Q(f*W));f=Q(da-D);o=Q(u*j);u=Q(w*l);j=Q(o+u);w=Q(ba*l);l=Q(Q(1)-Q(S+w));N[g+432>>2]=Q(q*f)+Q(Q(_*j)+Q(t*l));N[g+428>>2]=Q(G*f)+Q(Q(E*j)+Q(l*I));N[g+424>>2]=Q(Z*f)+Q(Q($*j)+Q(l*W));f=Q(fa+ha);l=Q(Q(1)-Q(aa+w));j=Q(o-u);N[g+416>>2]=Q(q*f)+Q(Q(_*l)+Q(t*j));N[g+412>>2]=Q(G*f)+Q(Q(E*l)+Q(j*I));N[g+408>>2]=Q(Z*f)+Q(Q($*l)+Q(j*W));h=J[c+12>>2];m=J[h+4>>2];J[g+472>>2]=J[h>>2];J[g+476>>2]=m;m=J[h+12>>2];J[g+480>>2]=J[h+8>>2];J[g+484>>2]=m;m=J[h+28>>2];J[i+8>>2]=J[h+24>>2];J[i+12>>2]=m;m=J[h+20>>2];J[i>>2]=J[h+16>>2];J[i+4>>2]=m;m=J[h+44>>2];J[p+8>>2]=J[h+40>>2];J[p+12>>2]=m;m=J[h+36>>2];J[p>>2]=J[h+32>>2];J[p+4>>2]=m;m=J[h+60>>2];J[s+8>>2]=J[h+56>>2];J[s+12>>2]=m;m=J[h+52>>2];J[s>>2]=J[h+48>>2];J[s+4>>2]=m}h=J[d+20>>2];J[g+32>>2]=e;J[g>>2]=9312;m=J[g+420>>2];J[g+44>>2]=J[g+416>>2];J[g+48>>2]=m;m=J[g+412>>2];J[g+36>>2]=J[g+408>>2];J[g+40>>2]=m;m=J[z+12>>2];J[g+60>>2]=J[z+8>>2];J[g+64>>2]=m;m=J[z+4>>2];J[g+52>>2]=J[z>>2];J[g+56>>2]=m;m=J[A+12>>2];J[g+76>>2]=J[A+8>>2];J[g+80>>2]=m;m=J[A+4>>2];J[g+68>>2]=J[A>>2];J[g+72>>2]=m;m=J[x+12>>2];J[g+92>>2]=J[x+8>>2];J[g+96>>2]=m;m=J[x+4>>2];J[g+84>>2]=J[x>>2];J[g+88>>2]=m;m=J[g+484>>2];J[g+108>>2]=J[g+480>>2];J[g+112>>2]=m;m=J[g+476>>2];J[g+100>>2]=J[g+472>>2];J[g+104>>2]=m;m=J[i+12>>2];J[g+124>>2]=J[i+8>>2];J[g+128>>2]=m;m=J[i+4>>2];J[g+116>>2]=J[i>>2];J[g+120>>2]=m;m=J[p+12>>2];J[g+140>>2]=J[p+8>>2];J[g+144>>2]=m;m=J[p+4>>2];J[g+132>>2]=J[p>>2];J[g+136>>2]=m;m=J[s+12>>2];J[g+156>>2]=J[s+8>>2];J[g+160>>2]=m;m=J[s+4>>2];J[g+148>>2]=J[s>>2];J[g+152>>2]=m;m=J[g+252>>2];J[g+172>>2]=J[g+248>>2];J[g+176>>2]=m;m=J[g+244>>2];J[g+164>>2]=J[g+240>>2];J[g+168>>2]=m;m=J[g+268>>2];J[g+188>>2]=J[g+264>>2];J[g+192>>2]=m;m=J[g+260>>2];J[g+180>>2]=J[g+256>>2];J[g+184>>2]=m;m=J[g+284>>2];J[g+204>>2]=J[g+280>>2];J[g+208>>2]=m;m=J[g+276>>2];J[g+196>>2]=J[g+272>>2];J[g+200>>2]=m;m=J[g+292>>2];J[g+212>>2]=J[g+288>>2];J[g+216>>2]=m;m=J[g+300>>2];J[g+220>>2]=J[g+296>>2];J[g+224>>2]=m;J[g+232>>2]=h;H[g+228|0]=v;zb(V,g+408|0,g,h,0);h=J[a+28>>2];k=k+1|0;if((h|0)>(k|0)){continue}break}}if(!K[a+16|0]){break a}a=J[e+4>>2];if(!J[a+748>>2]){break a}c=J[a+740>>2];d=J[J[e+8>>2]+8>>2];b=(c|0)==(d|0);k=a;a=J[J[e+12>>2]+8>>2];ab(k,(b?c:a)+4|0,(b?a:d)+4|0)}ga=g+544|0}function Vj(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=Q(0),m=Q(0),n=0,o=0,p=Q(0),q=0,r=Q(0),s=0,t=Q(0),u=0,v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=0,A=0,B=0,C=Q(0),D=Q(0),E=0,F=Q(0),G=Q(0),I=Q(0),L=Q(0),M=0,O=Q(0),S=Q(0),T=Q(0),U=0,V=Q(0),W=Q(0),X=Q(0),Z=0,_=0,$=Q(0),aa=Q(0),ba=0,ca=Q(0),da=Q(0),ea=Q(0),fa=Q(0),ha=Q(0),ja=Q(0);u=ga+-64|0;ga=u;J[u+52>>2]=0;_=1;H[u+56|0]=1;J[u+44>>2]=0;J[u+48>>2]=0;J[u+32>>2]=0;J[u+36>>2]=0;J[u+24>>2]=0;J[u+28>>2]=0;j=J[b+4>>2];d=j>>>0>8?j:8;if((d|0)>=0){J[8369]=J[8369]+1;q=ia[J[6782]](d<<4,16)|0;j=J[b+4>>2]}g=a;h=J[b+8>>2];n=J[b+12>>2];p=N[b+16>>2];a:{if(!j){break a}d=J[g+24>>2];if((d|0)<0){a=J[g+32>>2];if(J[g+28>>2]<0){if(!(a?!a|!K[g+36|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](a)}H[g+36|0]=1;J[g+28>>2]=0;J[g+32>>2]=0;a=0}k=a;a=d<<2;qa(k+a|0,0,0-a|0)}J[g+24>>2]=0;J[u+4>>2]=0;J[u+16>>2]=1065353216;J[u+8>>2]=1065353216;J[u+12>>2]=1065353216;m=Q(-3.4028234663852886e38);v=Q(3.4028234663852886e38);w=Q(3.4028234663852886e38);y=Q(3.4028234663852886e38);t=Q(-3.4028234663852886e38);l=Q(-3.4028234663852886e38);a=h;while(1){r=N[a+8>>2];m=m >2];t=r>t?r:t;w=r >2];l=l >>0<3|w Q(9.999999974752427e-7)?wQ(9.999999974752427e-7)?mQ(9.999999974752427e-7)?p>r?r:p:p;d:{if(p==Q(3.4028234663852886e38)){break d}y=Q(p*Q(.05000000074505806));l=m
>2]=r;N[u+12>>2]=m;N[u+8>>2]=w;l=Q(Q(1)/r);t=Q(v*l);y=x;x=Q(Q(1)/m);v=Q(y*x);y=C;C=Q(Q(1)/w);w=Q(y*C);while(1){r=Q(l*N[h+8>>2]);y=Q(x*N[h+4>>2]);m=Q(C*N[h>>2]);a=0;d=0;e:{f:{g:{if(!f){break g}while(1){h:{d=(a<<4)+q|0;D=N[d>>2];if(!(p>Q(R(Q(D-m))))){break h}G=N[d+4>>2];if(!(p>Q(R(Q(G-y))))){break h}L=N[d+8>>2];if(!(p>Q(R(Q(L-r))))){break h}F=Q(r-t);V=Q(F*F);F=Q(m-w);T=Q(F*F);F=Q(y-v);L=Q(L-t);D=Q(D-w);I=Q(D*D);D=Q(G-v);if(Q(V+Q(T+Q(F*F)))>Q(Q(L*L)+Q(I+Q(D*D)))){N[d>>2]=m;N[d+4>>2]=y;N[d+8>>2]=r}d=a;break g}a=a+1|0;if((f|0)!=(a|0)){continue}break}d=f;break f}if((d|0)!=(f|0)){break e}}a=(f<<4)+q|0;N[a+8>>2]=r;N[a+4>>2]=y;N[a>>2]=m;J[u+4>>2]=f+1}f=J[g+24>>2];i:{if((f|0)!=J[g+28>>2]){break i}i=f?f<<1:1;if((i|0)<=(f|0)){break i}j:{if(!i){e=0;break j}J[8369]=J[8369]+1;e=ia[J[6782]](i<<2,16)|0;f=J[g+24>>2]}k=J[g+32>>2];k:{l:{if((f|0)>0){s=0;a=0;if(f-1>>>0>=3){A=f&-4;B=0;while(1){o=a<<2;J[o+e>>2]=J[k+o>>2];M=o|4;J[M+e>>2]=J[k+M>>2];M=o|8;J[M+e>>2]=J[k+M>>2];o=o|12;J[o+e>>2]=J[k+o>>2];a=a+4|0;B=B+4|0;if((A|0)!=(B|0)){continue}break}}f=f&3;if(!f){break l}while(1){o=a<<2;J[o+e>>2]=J[k+o>>2];a=a+1|0;s=s+1|0;if((f|0)!=(s|0)){continue}break}break l}if(!k){break k}}if(k?K[g+36|0]:0){J[8370]=J[8370]+1;ia[J[6783]](k)}f=J[g+24>>2]}J[g+32>>2]=e;H[g+36|0]=1;J[g+28>>2]=i}h=h+n|0;J[J[g+32>>2]+(f<<2)>>2]=d;J[g+24>>2]=J[g+24>>2]+1;f=J[u+4>>2];U=U+1|0;if((j|0)!=(U|0)){continue}break}y=Q(-3.4028234663852886e38);r=Q(3.4028234663852886e38);m:{if(!f){v=Q(3.4028234663852886e38);w=Q(3.4028234663852886e38);m=Q(-3.4028234663852886e38);t=Q(-3.4028234663852886e38);break m}a=0;v=Q(3.4028234663852886e38);w=Q(3.4028234663852886e38);m=Q(-3.4028234663852886e38);t=Q(-3.4028234663852886e38);while(1){d=(a<<4)+q|0;l=N[d+8>>2];y=l>y?l:y;r=l>2];m=l>m?l:m;v=l >2];t=l>t?l:t;w=l >>0>2){break a}}x=Q(Q(y*Q(.5))+r);C=Q(Q(m*Q(.5))+v);D=Q(Q(l*Q(.5))+w);t=Q(.009999999776482582);w=Q(.009999999776482582);r=Q(.009999999776482582);v=l>=Q(9.999999974752427e-7)?l =Q(9.999999974752427e-7)?m=Q(9.999999974752427e-7)?v>y?y:v:v;n:{if(v==Q(3.4028234663852886e38)){break n}r=Q(v*Q(.05000000074505806));w=m >2]=m;N[q+96>>2]=y;N[q+80>>2]=y;N[q+64>>2]=m;N[q+48>>2]=m;N[q+32>>2]=y;N[q+16>>2]=y;N[q+8>>2]=r;N[q+4>>2]=w;N[q>>2]=m;N[q+120>>2]=p;N[q+116>>2]=v;N[q+104>>2]=p;N[q+100>>2]=v;N[q+88>>2]=p;N[q+84>>2]=w;N[q+72>>2]=p;N[q+68>>2]=w;N[q+56>>2]=r;N[q+52>>2]=v;N[q+40>>2]=r;N[q+36>>2]=v;N[q+24>>2]=r;N[q+20>>2]=w;J[u+4>>2]=8}o:{if(!j){break o}o=J[u+4>>2];p:{if(!o){break p}d=0;r=N[u+16>>2];y=N[u+12>>2];m=N[u+8>>2];if((o|0)!=1){f=o&-2;while(1){h=d<<4;a=h+q|0;N[a>>2]=m*N[a>>2];N[a+4>>2]=y*N[a+4>>2];N[a+8>>2]=r*N[a+8>>2];a=(h|16)+q|0;N[a>>2]=m*N[a>>2];N[a+4>>2]=y*N[a+4>>2];N[a+8>>2]=r*N[a+8>>2];d=d+2|0;z=z+2|0;if((f|0)!=(z|0)){continue}break}}if(!(o&1)){break p}a=(d<<4)+q|0;N[a>>2]=m*N[a>>2];N[a+4>>2]=y*N[a+4>>2];N[a+8>>2]=r*N[a+8>>2]}i=0;s=0;k=0;z=0;j=g;M=J[b+20>>2];d=0;n=ga+-64|0;ga=n;q:{if((o|0)<4){break q}m=N[q+8>>2];w=N[q+4>>2];t=N[q>>2];J[8369]=J[8369]+1;f=o<<2;a=ia[J[6782]](f,16)|0;J[n+44>>2]=0;J[8369]=J[8369]+1;h=ia[J[6782]](f,16)|0;J[n+52>>2]=h;H[n+56|0]=1;J[n+48>>2]=o;r=m;y=w;v=t;e=o;s=e;while(1){r:{if((d|0)!=(e|0)){f=h;e=d;break r}A=e?e<<1:1;if((A|0)<=(e|0)){f=h;break r}if(A){J[8369]=J[8369]+1;f=ia[J[6782]](A<<2,16)|0}else{f=0}s:{t:{if((e|0)>0){U=e&3;B=0;d=0;if(e-1>>>0>=3){ba=e&-4;e=0;while(1){g=d<<2;J[g+f>>2]=J[g+h>>2];Z=g|4;J[Z+f>>2]=J[h+Z>>2];Z=g|8;J[Z+f>>2]=J[h+Z>>2];g=g|12;J[g+f>>2]=J[g+h>>2];d=d+4|0;e=e+4|0;if((ba|0)!=(e|0)){continue}break}}if(!U){break t}while(1){g=d<<2;J[g+f>>2]=J[g+h>>2];d=d+1|0;B=B+1|0;if((U|0)!=(B|0)){continue}break}break t}if(!h){break s}}if(h){J[8370]=J[8370]+1;ia[J[6783]](h)}e=J[n+44>>2]}J[n+52>>2]=f;H[n+56|0]=1;J[n+48>>2]=A}J[(e<<2)+f>>2]=1;J[n+44>>2]=J[n+44>>2]+1;u:{if((i|0)!=(s|0)){g=a;break u}s=i?i<<1:1;if(s>>>0<=i>>>0){g=a;s=i;break u}J[8369]=J[8369]+1;g=ia[J[6782]](s<<2,16)|0;v:{if(i){B=0;d=0;if(i-1>>>0>=3){A=i&2147483644;e=0;while(1){h=d<<2;J[h+g>>2]=J[a+h>>2];U=h|4;J[U+g>>2]=J[a+U>>2];U=h|8;J[U+g>>2]=J[a+U>>2];h=h|12;J[h+g>>2]=J[a+h>>2];d=d+4|0;e=e+4|0;if((A|0)!=(e|0)){continue}break}}h=i&3;if(!h){break v}while(1){e=d<<2;J[e+g>>2]=J[a+e>>2];d=d+1|0;B=B+1|0;if((h|0)!=(B|0)){continue}break}break v}if(a){break v}s=1;break u}if(a){J[8370]=J[8370]+1;ia[J[6783]](a)}}J[(i<<2)+g>>2]=0;a=(i<<4)+q|0;l=N[a+8>>2];r=l>r?l:r;p=N[a+4>>2];y=p>y?p:y;x=N[a>>2];v=vx?x:t;i=i+1|0;if((o|0)!=(i|0)){e=J[n+48>>2];d=J[n+44>>2];h=f;a=g;continue}break}a=ga+-64|0;ga=a;J[a+24>>2]=1065353216;J[a+28>>2]=0;J[a+16>>2]=1008981770;J[a+20>>2]=1017370378;s=n+40|0;e=Nb(q,o,a+16|0,s);J[a+12>>2]=0;N[a+8>>2]=-N[a+24>>2];N[a+4>>2]=-N[a+20>>2];N[a>>2]=-N[a+16>>2];i=Nb(q,o,a,s);f=(e<<4)+q|0;x=N[f>>2];B=(i<<4)+q|0;C=N[B>>2];p=N[f+4>>2];D=N[B+4>>2];l=N[f+8>>2];G=N[B+8>>2];J[a+28>>2]=0;l=Q(l-G);N[a+24>>2]=l;p=Q(p-D);N[a+20>>2]=p;x=Q(x-C);N[a+16>>2]=x;w:{x:{if((e|0)!=(i|0)){if(l!=Q(0)|p!=Q(0)|x!=Q(0)){break x}}J[n+24>>2]=-1;J[n+28>>2]=-1;J[n+32>>2]=-1;J[n+36>>2]=-1;break w}J[a+60>>2]=0;J[a+44>>2]=0;C=Q(Q(p*Q(-.019999999552965164))-x);N[a+56>>2]=C;L=Q(x*Q(0));F=Q(l*Q(.019999999552965164));D=Q(L+F);N[a+52>>2]=D;O=Q(p*Q(-0));G=Q(l+O);N[a+48>>2]=G;d=a+48|0;h=a+32|0;I=Q(Y(Q(Q(C*C)+Q(Q(G*G)+Q(D*D)))));p=Q(p+Q(x*Q(-.019999999552965164)));x=Q(F+O);l=Q(L-l);C=Q(Y(Q(Q(p*p)+Q(Q(x*x)+Q(l*l)))));y:{if(I >2]=I*l;N[a+32>>2]=x*l;I=Q(p*l);break y}A=J[d+4>>2];J[h>>2]=J[d>>2];J[h+4>>2]=A;A=J[d+12>>2];J[h+8>>2]=J[d+8>>2];J[h+12>>2]=A;p=N[a+40>>2];x=N[a+32>>2];C=N[a+36>>2];l=Q(Q(1)/Q(Y(Q(Q(p*p)+Q(Q(x*x)+Q(C*C))))));N[a+36>>2]=C*l;N[a+32>>2]=x*l;I=Q(p*l)}N[a+40>>2]=I;h=Nb(q,o,h,s);if(!((e|0)!=(h|0)&(h|0)!=(i|0))){J[a+12>>2]=0;N[a+8>>2]=-N[a+40>>2];N[a+4>>2]=-N[a+36>>2];N[a>>2]=-N[a+32>>2];h=Nb(q,o,a,s)}if(!((e|0)!=(h|0)&(h|0)!=(i|0))){J[n+24>>2]=-1;J[n+28>>2]=-1;J[n+32>>2]=-1;J[n+36>>2]=-1;break w}A=(h<<4)+q|0;G=N[A+4>>2];x=N[A+8>>2];l=N[A>>2];L=N[f+4>>2];C=N[f+8>>2];p=N[f>>2];J[a+44>>2]=0;J[a+60>>2]=0;l=Q(l-p);N[a+32>>2]=l;p=N[a+24>>2];x=Q(x-C);N[a+40>>2]=x;C=N[a+16>>2];D=N[a+20>>2];G=Q(G-L);N[a+36>>2]=G;L=Q(Q(l*D)-Q(C*G));D=Q(Q(G*p)-Q(D*x));p=Q(Q(x*C)-Q(p*l));l=Q(Q(1)/Q(Y(Q(Q(L*L)+Q(Q(D*D)+Q(p*p))))));N[a+56>>2]=L*l;N[a+52>>2]=p*l;N[a+48>>2]=D*l;d=Nb(q,o,d,s);if(!(!((h|0)==(d|0)|(d|0)==(e|0))&(d|0)!=(i|0))){J[a+12>>2]=0;N[a+8>>2]=-N[a+56>>2];N[a+4>>2]=-N[a+52>>2];N[a>>2]=-N[a+48>>2];d=Nb(q,o,a,s)}if(!(!((d|0)==(h|0)|(d|0)==(e|0))&(d|0)!=(i|0))){J[n+24>>2]=-1;J[n+28>>2]=-1;J[n+32>>2]=-1;J[n+36>>2]=-1;break w}s=(d<<4)+q|0;C=N[s+8>>2];D=N[s>>2];G=N[s+4>>2];L=N[B+4>>2];F=N[A+4>>2];l=N[f+4>>2];O=N[B+8>>2];S=N[A>>2];W=N[A+8>>2];p=N[f+8>>2];X=N[B>>2];x=N[f>>2];J[n+28>>2]=i;J[n+24>>2]=e;T=Q(C-p);C=Q(X-x);F=Q(F-l);S=Q(S-x);L=Q(L-l);I=Q(D-x);x=Q(W-p);p=Q(O-p);f=Q(Q(T*Q(Q(C*F)-Q(S*L)))+Q(Q(I*Q(Q(L*x)-Q(F*p)))+Q(Q(G-l)*Q(Q(p*S)-Q(x*C))))) >2]=f?h:d;J[n+32>>2]=f?d:h}ga=a- -64|0;z:{a=J[n+24>>2];if((a|0)==-1){s=0;break z}d=J[n+36>>2];e=(d<<4)+q|0;L=N[e>>2];f=J[n+32>>2];i=(f<<4)+q|0;F=N[i>>2];h=J[n+28>>2];s=(h<<4)+q|0;O=N[s>>2];B=(a<<4)+q|0;S=N[B>>2];W=N[e+4>>2];X=N[i+4>>2];ca=N[s+4>>2];da=N[B+4>>2];ea=N[e+8>>2];fa=N[i+8>>2];ha=N[s+8>>2];ja=N[B+8>>2];e=ec(j,f,d,h);J[e+12>>2]=2;J[e+16>>2]=3;s=1;J[e+20>>2]=1;e=ec(j,d,f,a);J[e+12>>2]=3;J[e+16>>2]=2;J[e+20>>2]=0;e=ec(j,a,h,d);J[e+12>>2]=0;J[e+16>>2]=1;J[e+20>>2]=3;a=ec(j,h,a,f);J[a+12>>2]=1;J[a+16>>2]=0;J[a+20>>2]=2;J[(d<<2)+g>>2]=1;J[(J[n+32>>2]<<2)+g>>2]=1;J[(J[n+28>>2]<<2)+g>>2]=1;J[(J[n+24>>2]<<2)+g>>2]=1;a=J[j+4>>2];if((a|0)>0){f=0;while(1){l=Q(0);p=Q(1);x=Q(0);a=J[J[j+12>>2]+(f<<2)>>2];d=(J[a+4>>2]<<4)+q|0;C=N[d>>2];h=(J[a>>2]<<4)+q|0;G=Q(C-N[h>>2]);e=(J[a+8>>2]<<4)+q|0;D=N[d+4>>2];V=Q(N[e+4>>2]-D);$=Q(N[e>>2]-C);D=Q(D-N[h+4>>2]);C=Q(Q(G*V)-Q($*D));T=D;D=N[d+8>>2];aa=Q(N[e+8>>2]-D);I=V;V=Q(D-N[h+8>>2]);D=Q(Q(T*aa)-Q(I*V));G=Q(Q(V*$)-Q(aa*G));V=Q(Y(Q(Q(C*C)+Q(Q(D*D)+Q(G*G)))));if(V!=Q(0)){p=Q(Q(1)/V);x=Q(C*p);l=Q(G*p);p=Q(D*p)}J[n+20>>2]=0;N[n+16>>2]=x;N[n+12>>2]=l;N[n+8>>2]=p;d=Nb(q,o,n+8|0,n+40|0);J[a+28>>2]=d;h=a;d=(d<<4)+q|0;a=(J[a>>2]<<4)+q|0;N[h+32>>2]=Q(N[n+16>>2]*Q(N[d+8>>2]-N[a+8>>2]))+Q(Q(N[n+8>>2]*Q(N[d>>2]-N[a>>2]))+Q(Q(N[d+4>>2]-N[a+4>>2])*N[n+12>>2]));a=J[j+4>>2];f=f+1|0;if((a|0)>(f|0)){continue}break}}h=M?M-4|0:999999996;if((h|0)<=0){break z}C=Q(Q(Q(Q(ja+ha)+fa)+ea)*Q(.25));D=Q(Q(Q(Q(da+ca)+X)+W)*Q(.25));G=Q(Q(Q(Q(S+O)+F)+L)*Q(.25));r=Q(r-m);m=Q(r*r);r=Q(v-t);t=Q(r*r);r=Q(y-w);r=Q(Q(Y(Q(m+Q(t+Q(r*r)))))*Q(.0010000000474974513));y=Q(r*Q(.009999999776482582));L=Q(Q(r*r)*Q(.10000000149011612));while(1){s=J[j+12>>2];d=0;f=0;if((a|0)!=1){B=a&2147483646;i=0;while(1){A=f<<2;e=J[A+s>>2];if(!(!e|!(N[d+32>>2]>2])?d:0)){d=e}e=J[s+(A|4)>>2];if(!(!e|!(N[d+32>>2] >2])?d:0)){d=e}f=f+2|0;i=i+2|0;if((B|0)!=(i|0)){continue}break}}A:{if(!(a&1)){break A}a=J[s+(f<<2)>>2];if(!a|!(N[d+32>>2] >2])?d:0){break A}d=a}s=1;if(!(r >2])|!d){break z}e=J[d+28>>2];J[(e<<2)+g>>2]=1;f=J[j+4>>2];B:{if(!f){break B}d=(e<<4)+q|0;while(1){f=f-1|0;a=J[J[j+12>>2]+(f<<2)>>2];C:{if(!a){break C}l=Q(0);p=Q(1);x=Q(0);i=(J[a+4>>2]<<4)+q|0;m=N[i>>2];B=(J[a>>2]<<4)+q|0;v=N[B>>2];w=Q(m-v);A=(J[a+8>>2]<<4)+q|0;t=N[i+4>>2];F=Q(N[A+4>>2]-t);O=Q(N[A>>2]-m);S=N[B+4>>2];t=Q(t-S);m=Q(Q(w*F)-Q(O*t));T=t;t=N[i+8>>2];W=Q(N[A+8>>2]-t);I=F;F=N[B+8>>2];X=Q(t-F);t=Q(Q(T*W)-Q(I*X));w=Q(Q(X*O)-Q(W*w));O=Q(Y(Q(Q(m*m)+Q(Q(t*t)+Q(w*w)))));if(O!=Q(0)){I=m;m=Q(Q(1)/O);x=Q(I*m);p=Q(t*m);l=Q(w*m)}if(!(y >2]-F))+Q(Q(p*Q(N[d>>2]-v))+Q(l*Q(N[d+4>>2]-S)))))){break C}Wj(j,a,e)}if(f){continue}break}a=J[j+4>>2];d=a;if(!a){break B}while(1){D:{M=J[j+12>>2];d=d-1|0;f=J[M+(d<<2)>>2];E:{if(!f){break E}i=J[f+8>>2];A=J[f>>2];B=J[f+4>>2];if(!((A|0)==(e|0)|(B|0)==(e|0))&(e|0)!=(i|0)){break D}l=Q(0);p=Q(1);x=Q(0);B=(B<<4)+q|0;m=N[B>>2];A=(A<<4)+q|0;F=N[A>>2];w=Q(m-F);i=(i<<4)+q|0;t=N[B+4>>2];v=Q(N[i+4>>2]-t);O=Q(N[i>>2]-m);S=N[A+4>>2];t=Q(t-S);m=Q(Q(w*v)-Q(O*t));T=t;t=N[B+8>>2];W=Q(N[i+8>>2]-t);I=v;X=N[A+8>>2];v=Q(t-X);t=Q(Q(T*W)-Q(I*v));w=Q(Q(v*O)-Q(W*w));v=Q(Y(Q(Q(m*m)+Q(Q(t*t)+Q(w*w)))));if(v!=Q(0)){I=m;m=Q(Q(1)/v);x=Q(I*m);p=Q(t*m);l=Q(w*m)}if(!(y>2]<<2)>>2],e);a=J[j+4>>2];d=a}if(d){continue}}break}if(!a){break B}while(1){a=a-1|0;d=J[J[j+12>>2]+(a<<2)>>2];F:{if(!d){break F}if(J[d+28>>2]>=0){break B}l=Q(0);p=Q(1);x=Q(0);f=(J[d+4>>2]<<4)+q|0;m=N[f>>2];e=(J[d>>2]<<4)+q|0;w=Q(m-N[e>>2]);i=(J[d+8>>2]<<4)+q|0;t=N[f+4>>2];v=Q(N[i+4>>2]-t);F=Q(N[i>>2]-m);t=Q(t-N[e+4>>2]);m=Q(Q(w*v)-Q(F*t));T=t;t=N[f+8>>2];O=Q(N[i+8>>2]-t);I=v;v=Q(t-N[e+8>>2]);t=Q(Q(T*O)-Q(I*v));w=Q(Q(v*F)-Q(O*w));v=Q(Y(Q(Q(m*m)+Q(Q(t*t)+Q(w*w)))));if(v!=Q(0)){I=m;m=Q(Q(1)/v);x=Q(I*m);p=Q(t*m);l=Q(w*m)}J[n+20>>2]=0;N[n+16>>2]=x;N[n+12>>2]=l;N[n+8>>2]=p;f=Nb(q,o,n+8|0,n+40|0);J[d+28>>2]=f;if(J[(f<<2)+g>>2]){J[d+28>>2]=-1;break F}e=d;f=(f<<4)+q|0;d=(J[d>>2]<<4)+q|0;N[e+32>>2]=Q(N[n+16>>2]*Q(N[f+8>>2]-N[d+8>>2]))+Q(Q(N[n+8>>2]*Q(N[f>>2]-N[d>>2]))+Q(Q(N[f+4>>2]-N[d+4>>2])*N[n+12>>2]))}if(a){continue}break}}if((h|0)<2){break z}h=h-1|0;a=J[j+4>>2];continue}}a=J[n+52>>2];if(!(a?!a|!K[n+56|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](a)}if(!g){break q}if(g){J[8370]=J[8370]+1;ia[J[6783]](g)}}ga=n- -64|0;a=0;G:{if(!s){break G}a=J[j+4>>2];H:{if((a|0)<=0){h=0;break H}h=0;while(1){s=z<<2;n=J[s+J[j+12>>2]>>2];if(n){I:{J:{if((k|0)!=(E|0)){break J}d=k?k<<1:1;if((k|0)>=(d|0)){break J}if(d){J[8369]=J[8369]+1;a=ia[J[6782]](d<<2,16)|0}else{a=0}K:{if((k|0)>0){i=k&3;e=0;f=0;if(k-1>>>0>=3){B=k&-4;k=0;while(1){g=f<<2;J[g+a>>2]=J[g+h>>2];A=g|4;J[A+a>>2]=J[h+A>>2];A=g|8;J[A+a>>2]=J[h+A>>2];g=g|12;J[g+a>>2]=J[g+h>>2];f=f+4|0;k=k+4|0;if((B|0)!=(k|0)){continue}break}}if(!i){break K}while(1){g=f<<2;J[g+a>>2]=J[g+h>>2];f=f+1|0;e=e+1|0;if((i|0)!=(e|0)){continue}break}break K}if(!h){break I}}if(h){J[8370]=J[8370]+1;ia[J[6783]](h)}break I}d=k;a=h}J[(E<<2)+a>>2]=J[n>>2];n=J[s+J[j+12>>2]>>2];L:{M:{B=E+1|0;if((B|0)!=(d|0)){break M}g=d?d<<1:1;if((g|0)<=(d|0)){break M}if(g){J[8369]=J[8369]+1;f=ia[J[6782]](g<<2,16)|0}else{f=0}N:{if((d|0)<=0){break N}e=0;h=0;if(d-1>>>0>=3){A=d&-4;k=0;while(1){i=h<<2;J[i+f>>2]=J[a+i>>2];M=i|4;J[M+f>>2]=J[a+M>>2];M=i|8;J[M+f>>2]=J[a+M>>2];i=i|12;J[i+f>>2]=J[a+i>>2];h=h+4|0;k=k+4|0;if((A|0)!=(k|0)){continue}break}}d=d&3;if(!d){break N}while(1){k=h<<2;J[k+f>>2]=J[a+k>>2];h=h+1|0;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(a){J[8370]=J[8370]+1;ia[J[6783]](a)}break L}g=d;f=a}J[(B<<2)+f>>2]=J[n+4>>2];n=J[s+J[j+12>>2]>>2];O:{P:{B=E+2|0;if((B|0)!=(g|0)){break P}k=g?g<<1:1;if((k|0)<=(g|0)){break P}if(k){J[8369]=J[8369]+1;h=ia[J[6782]](k<<2,16)|0}else{h=0}Q:{if((g|0)<=0){break Q}e=0;a=0;if(g-1>>>0>=3){A=g&-4;d=0;while(1){i=a<<2;J[i+h>>2]=J[f+i>>2];M=i|4;J[M+h>>2]=J[f+M>>2];M=i|8;J[M+h>>2]=J[f+M>>2];i=i|12;J[i+h>>2]=J[f+i>>2];a=a+4|0;d=d+4|0;if((A|0)!=(d|0)){continue}break}}d=g&3;if(!d){break Q}while(1){g=a<<2;J[g+h>>2]=J[f+g>>2];a=a+1|0;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(f){J[8370]=J[8370]+1;ia[J[6783]](f)}break O}k=g;h=f}J[(B<<2)+h>>2]=J[n+8>>2];d=J[j+12>>2];a=J[d+s>>2];J[(J[a+24>>2]<<2)+d>>2]=0;if(a){J[8370]=J[8370]+1;ia[J[6783]](a)}E=E+3|0;a=J[j+4>>2]}z=z+1|0;if((z|0)<(a|0)){continue}break}}J[u+60>>2]=(E|0)/3;g=J[u+44>>2];if((g|0)<(E|0)){R:{if(J[u+48>>2]>=(E|0)){f=J[u+52>>2];break R}S:{if(!E){f=0;a=g;break S}J[8369]=J[8369]+1;f=ia[J[6782]](E<<2,16)|0;a=J[u+44>>2]}i=J[u+52>>2];T:{U:{e=a;if((a|0)>0){k=0;a=0;if(e-1>>>0>=3){n=e&-4;d=0;while(1){s=a<<2;J[s+f>>2]=J[i+s>>2];z=s|4;J[z+f>>2]=J[i+z>>2];z=s|8;J[z+f>>2]=J[i+z>>2];s=s|12;J[s+f>>2]=J[i+s>>2];a=a+4|0;d=d+4|0;if((n|0)!=(d|0)){continue}break}}d=e&3;if(!d){break U}while(1){e=a<<2;J[e+f>>2]=J[e+i>>2];a=a+1|0;k=k+1|0;if((d|0)!=(k|0)){continue}break}break U}if(i){break U}break T}if(i?K[u+56|0]:0){J[8370]=J[8370]+1;ia[J[6783]](i)}}J[u+52>>2]=f;H[u+56|0]=1;J[u+48>>2]=E}qa((g<<2)+f|0,0,E-g<<2)}J[u+44>>2]=E;V:{if((E|0)<=0){break V}g=E&3;d=J[u+52>>2];e=0;a=0;if(E-1>>>0>=3){k=E&-4;E=0;while(1){f=a<<2;J[f+d>>2]=J[f+h>>2];i=f|4;J[i+d>>2]=J[h+i>>2];i=f|8;J[i+d>>2]=J[h+i>>2];f=f|12;J[f+d>>2]=J[f+h>>2];a=a+4|0;E=E+4|0;if((k|0)!=(E|0)){continue}break}}if(!g){break V}while(1){f=a<<2;J[f+d>>2]=J[f+h>>2];a=a+1|0;e=e+1|0;if((g|0)!=(e|0)){continue}break}}d=J[j+4>>2];W:{if((d|0)>=0){break W}if(J[j+8>>2]<0){a=J[j+12>>2];if(!(a?!a|!K[j+16|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](a)}H[j+16|0]=1;J[j+8>>2]=0;J[j+12>>2]=0}f=0;a=d;g=0-a&3;if(g){while(1){J[J[j+12>>2]+(a<<2)>>2]=0;a=a+1|0;f=f+1|0;if((g|0)!=(f|0)){continue}break}}if(d>>>0>4294967292){break W}while(1){d=a<<2;J[d+J[j+12>>2]>>2]=0;J[(d+J[j+12>>2]|0)+4>>2]=0;J[(d+J[j+12>>2]|0)+8>>2]=0;J[(d+J[j+12>>2]|0)+12>>2]=0;a=a+4|0;if(a){continue}break}}J[j+4>>2]=0;if(h){J[8370]=J[8370]+1;ia[J[6783]](h)}a=1}if(!a){break o}J[u+36>>2]=q;i=J[u+60>>2];J[u+32>>2]=i;s=P(i,3);J[u+28>>2]=s;J[u+24>>2]=o;if((o|0)<=0){h=0}else{J[8369]=J[8369]+1;h=ia[J[6782]](o<<4,16)|0}f=J[u+52>>2];d=0;a=J[j+24>>2];X:{if((a|0)<=0){e=0;break X}J[8369]=J[8369]+1;a=a<<2;e=ia[J[6782]](a,16)|0;a=qa(e,0,a);if(J[j+24>>2]<=0){break X}g=J[j+32>>2];while(1){k=d<<2;J[k+a>>2]=J[g+k>>2];d=d+1|0;if((d|0)>2]){continue}break}}d=o<<2;Y:{Z:{_:{if((o|0)>0){J[8369]=J[8369]+1;a=ia[J[6782]](d,16)|0;d=qa(a,0,d);J[u+4>>2]=0;if((s|0)>0){break _}if(d){break Z}break Y}a=0;J[u+4>>2]=qa(0,0,d);if((s|0)<=0){break Y}}z=0;while(1){d=f+(z<<2)|0;g=J[d>>2];n=(g<<2)+a|0;k=J[n>>2];$:{if(k){J[d>>2]=k-1;break $}J[d>>2]=J[u+4>>2];d=J[u+4>>2];k=h+(d<<4)|0;o=(g<<4)+q|0;N[k>>2]=N[o>>2];N[k+4>>2]=N[o+4>>2];N[k+8>>2]=N[o+8>>2];k=J[j+24>>2];if((k|0)>0){o=J[j+32>>2];d=0;while(1){E=d<<2;if((g|0)==J[E+e>>2]){J[o+E>>2]=J[u+4>>2];k=J[j+24>>2]}d=d+1|0;if((k|0)>(d|0)){continue}break}d=J[u+4>>2]}d=d+1|0;J[u+4>>2]=d;J[n>>2]=d}z=z+1|0;if((s|0)!=(z|0)){continue}break}}if(a){J[8370]=J[8370]+1;ia[J[6783]](a)}}if(e){J[8370]=J[8370]+1;ia[J[6783]](e)}aa:{ba:{ca:{da:{if(H[b|0]&1){H[c|0]=0;g=J[u+4>>2];J[c+4>>2]=g;d=J[c+12>>2];if(!((g|0)<=(d|0)|(g|0)<=J[c+16>>2])){ea:{if(!g){z=0;break ea}J[8369]=J[8369]+1;z=ia[J[6782]](g<<4,16)|0;d=J[c+12>>2]}fa:{if((d|0)<=0){break fa}e=0;if((d|0)!=1){n=d&-2;a=0;while(1){o=e<<4;k=o+z|0;j=o+J[c+20>>2]|0;E=J[j+4>>2];J[k>>2]=J[j>>2];J[k+4>>2]=E;E=J[j+12>>2];J[k+8>>2]=J[j+8>>2];J[k+12>>2]=E;j=o|16;k=j+z|0;j=j+J[c+20>>2]|0;o=J[j+4>>2];J[k>>2]=J[j>>2];J[k+4>>2]=o;o=J[j+12>>2];J[k+8>>2]=J[j+8>>2];J[k+12>>2]=o;e=e+2|0;a=a+2|0;if((n|0)!=(a|0)){continue}break}}if(!(d&1)){break fa}d=e<<4;a=d+z|0;d=d+J[c+20>>2]|0;e=J[d+4>>2];J[a>>2]=J[d>>2];J[a+4>>2]=e;e=J[d+12>>2];J[a+8>>2]=J[d+8>>2];J[a+12>>2]=e}a=J[c+20>>2];if(!(a?!a|!K[c+24|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](a)}J[c+20>>2]=z;H[c+24|0]=1;J[c+16>>2]=g}J[c+32>>2]=s;J[c+28>>2]=i;J[c+12>>2]=g;k=J[c+40>>2];if((k|0)>=(s|0)){break ba}if((s|0)<=J[c+44>>2]){d=J[c+48>>2];break ca}ga:{if(!i){d=0;a=k;break ga}J[8369]=J[8369]+1;d=ia[J[6782]](P(i,12),16)|0;a=J[c+40>>2]}j=J[c+48>>2];g=a;if((a|0)>0){z=0;e=0;if(g-1>>>0>=3){n=g&-4;a=0;while(1){o=e<<2;J[o+d>>2]=J[j+o>>2];E=o|4;J[E+d>>2]=J[j+E>>2];E=o|8;J[E+d>>2]=J[j+E>>2];o=o|12;J[o+d>>2]=J[j+o>>2];e=e+4|0;a=a+4|0;if((n|0)!=(a|0)){continue}break}}a=g&3;if(!a){break da}while(1){g=e<<2;J[g+d>>2]=J[g+j>>2];e=e+1|0;z=z+1|0;if((a|0)!=(z|0)){continue}break}break da}if(j){break da}J[c+48>>2]=d;J[c+44>>2]=s;H[c+52|0]=1;break ca}H[c|0]=1;g=J[u+4>>2];J[c+4>>2]=g;d=J[c+12>>2];if(!((g|0)<=(d|0)|(g|0)<=J[c+16>>2])){ha:{if(!g){z=0;break ha}J[8369]=J[8369]+1;z=ia[J[6782]](g<<4,16)|0;d=J[c+12>>2]}ia:{if((d|0)<=0){break ia}e=0;if((d|0)!=1){s=d&-2;a=0;while(1){o=e<<4;k=o+z|0;j=o+J[c+20>>2]|0;n=J[j+4>>2];J[k>>2]=J[j>>2];J[k+4>>2]=n;n=J[j+12>>2];J[k+8>>2]=J[j+8>>2];J[k+12>>2]=n;j=o|16;k=j+z|0;j=j+J[c+20>>2]|0;o=J[j+4>>2];J[k>>2]=J[j>>2];J[k+4>>2]=o;o=J[j+12>>2];J[k+8>>2]=J[j+8>>2];J[k+12>>2]=o;e=e+2|0;a=a+2|0;if((s|0)!=(a|0)){continue}break}}if(!(d&1)){break ia}d=e<<4;a=d+z|0;d=d+J[c+20>>2]|0;e=J[d+4>>2];J[a>>2]=J[d>>2];J[a+4>>2]=e;e=J[d+12>>2];J[a+8>>2]=J[d+8>>2];J[a+12>>2]=e}a=J[c+20>>2];if(!(a?!a|!K[c+24|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](a)}J[c+20>>2]=z;H[c+24|0]=1;J[c+16>>2]=g}J[c+28>>2]=i;J[c+12>>2]=g;o=i<<2;J[c+32>>2]=o;g=J[c+40>>2];if((g|0)<(o|0)){ja:{if((o|0)<=J[c+44>>2]){d=J[c+48>>2];break ja}ka:{if(!o){d=0;a=g;break ka}J[8369]=J[8369]+1;d=ia[J[6782]](i<<4,16)|0;a=J[c+40>>2]}j=J[c+48>>2];la:{k=a;if((a|0)>0){z=0;e=0;if(k-1>>>0>=3){n=k&-4;a=0;while(1){s=e<<2;J[s+d>>2]=J[j+s>>2];E=s|4;J[E+d>>2]=J[j+E>>2];E=s|8;J[E+d>>2]=J[j+E>>2];s=s|12;J[s+d>>2]=J[j+s>>2];e=e+4|0;a=a+4|0;if((n|0)!=(a|0)){continue}break}}a=k&3;if(!a){break la}while(1){k=e<<2;J[k+d>>2]=J[j+k>>2];e=e+1|0;z=z+1|0;if((a|0)!=(z|0)){continue}break}break la}if(j){break la}J[c+48>>2]=d;J[c+44>>2]=o;H[c+52|0]=1;break ja}if(j?K[c+52|0]:0){J[8370]=J[8370]+1;ia[J[6783]](j)}J[c+48>>2]=d;H[c+52|0]=1;J[c+44>>2]=o}qa((g<<2)+d|0,0,o-g<<2)}J[c+40>>2]=o;sa(J[c+20>>2],h,J[u+4>>2]<<4);if(!i){break aa}e=J[c+48>>2];z=0;d=f;while(1){J[e>>2]=3;ma:{if(K[b|0]&2){J[e+4>>2]=J[d+8>>2];J[e+8>>2]=J[d+4>>2];a=d;break ma}J[e+4>>2]=J[d>>2];J[e+8>>2]=J[d+4>>2];a=d+8|0}J[e+12>>2]=J[a>>2];d=d+12|0;e=e+16|0;z=z+1|0;if((i|0)!=(z|0)){continue}break}break aa}if(j?K[c+52|0]:0){J[8370]=J[8370]+1;ia[J[6783]](j)}J[c+48>>2]=d;H[c+52|0]=1;J[c+44>>2]=s}a=k<<2;qa(a+d|0,0,P(i,12)-a|0)}J[c+40>>2]=s;sa(J[c+20>>2],h,J[u+4>>2]<<4);if(K[b|0]&2){if(!i){break aa}a=i&3;e=J[c+48>>2];na:{if(i-1>>>0<3){d=f;break na}b=i&-4;z=0;d=f;while(1){J[e>>2]=J[d+8>>2];J[e+4>>2]=J[d+4>>2];J[e+8>>2]=J[d>>2];J[e+12>>2]=J[d+20>>2];J[e+16>>2]=J[d+16>>2];J[e+20>>2]=J[d+12>>2];J[e+24>>2]=J[d+32>>2];J[e+28>>2]=J[d+28>>2];J[e+32>>2]=J[d+24>>2];J[e+36>>2]=J[d+44>>2];J[e+40>>2]=J[d+40>>2];J[e+44>>2]=J[d+36>>2];d=d+48|0;e=e+48|0;z=z+4|0;if((b|0)!=(z|0)){continue}break}}if(!a){break aa}z=0;while(1){J[e>>2]=J[d+8>>2];J[e+4>>2]=J[d+4>>2];J[e+8>>2]=J[d>>2];d=d+12|0;e=e+12|0;z=z+1|0;if((a|0)!=(z|0)){continue}break}break aa}sa(J[c+48>>2],f,P(i,12))}if(J[u+44>>2]){if(!(f?!f|!K[u+56|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](f)}J[u+52>>2]=0;H[u+56|0]=1;J[u+44>>2]=0;J[u+48>>2]=0}_=0;J[u+36>>2]=0;J[u+24>>2]=0;J[u+28>>2]=0;if(!h){break o}if(h){J[8370]=J[8370]+1;ia[J[6783]](h)}}if(q){J[8370]=J[8370]+1;ia[J[6783]](q)}a=J[u+52>>2];if(!(a?!a|!K[u+56|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](a)}ga=u- -64|0;return _}function Hm(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=0,o=Q(0),p=0,q=0,r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=0,x=Q(0),y=0,z=Q(0),A=Q(0),B=0,C=0,D=Q(0),E=Q(0),F=Q(0),G=0,H=Q(0),I=Q(0),K=Q(0),L=Q(0),M=Q(0),O=Q(0),S=Q(0),T=Q(0),U=Q(0),V=Q(0),W=0,X=0,Z=Q(0),_=Q(0),$=Q(0),aa=Q(0),ba=Q(0),ca=Q(0),da=Q(0),ea=Q(0),fa=0,ha=Q(0),ja=Q(0),ka=Q(0),la=Q(0),ma=Q(0),na=Q(0),oa=0,pa=0,qa=Q(0),ra=0,ta=0,ua=0,va=Q(0);d=ga-160|0;ga=d;N[d+112>>2]=N[b>>2];N[d+64>>2]=N[b+64>>2];N[d+116>>2]=N[b+4>>2];N[d+68>>2]=N[b+68>>2];N[d+120>>2]=N[b+8>>2];N[d+72>>2]=N[b+72>>2];N[d+128>>2]=N[b+16>>2];N[d+80>>2]=N[b+80>>2];N[d+132>>2]=N[b+20>>2];N[d+84>>2]=N[b+84>>2];N[d+136>>2]=N[b+24>>2];N[d+88>>2]=N[b+88>>2];N[d+144>>2]=N[b+32>>2];N[d+96>>2]=N[b+96>>2];N[d+148>>2]=N[b+36>>2];N[d+100>>2]=N[b+100>>2];N[d+152>>2]=N[b+40>>2];N[d+104>>2]=N[b+104>>2];e=J[a+4>>2];j=N[e+36>>2];i=N[e+32>>2];m=N[e+28>>2];g=Q(ia[J[J[e>>2]+48>>2]](e));h=Q(ia[J[J[e>>2]+48>>2]](e));l=Q(ia[J[J[e>>2]+48>>2]](e));J[d+36>>2]=0;i=Q(i+h);N[d+28>>2]=i+i;i=Q(m+g);N[d+24>>2]=i+i;j=Q(j+l);N[d+32>>2]=j+j;a=J[a+8>>2];j=N[a+36>>2];i=N[a+32>>2];m=N[a+28>>2];g=Q(ia[J[J[a>>2]+48>>2]](a));h=Q(ia[J[J[a>>2]+48>>2]](a));l=Q(ia[J[J[a>>2]+48>>2]](a));J[d+20>>2]=0;i=Q(i+h);N[d+12>>2]=i+i;i=Q(m+g);N[d+8>>2]=i+i;j=Q(j+l);N[d+16>>2]=j+j;W=c;e=0;f=ga-368|0;ga=f;a=d+112|0;I=N[a+36>>2];U=N[a+4>>2];F=N[a+20>>2];s=N[a+40>>2];ea=N[a+8>>2];L=N[a+24>>2];G=b+48|0;m=N[G+8>>2];b=b+112|0;g=N[b+8>>2];u=N[G>>2];r=N[b>>2];z=N[G+4>>2];D=N[b+4>>2];j=N[a+32>>2];qa=N[a>>2];i=N[a+16>>2];h=Q(N[d+24>>2]*Q(.5));N[f+356>>2]=h;l=Q(N[d+28>>2]*Q(.5));N[f+360>>2]=l;k=Q(N[d+32>>2]*Q(.5));N[f+364>>2]=k;x=Q(N[d+8>>2]*Q(.5));N[f+344>>2]=x;t=Q(N[d+12>>2]*Q(.5));N[f+348>>2]=t;o=Q(N[d+16>>2]*Q(.5));N[f+352>>2]=o;m=Q(g-m);g=Q(r-u);u=Q(D-z);r=Q(Q(j*m)+Q(Q(qa*g)+Q(i*u)));c=d- -64|0;Z=N[c+40>>2];_=N[c+8>>2];M=N[c+24>>2];z=Q(Q(j*Z)+Q(Q(qa*_)+Q(i*M)));ha=Q(R(z));V=N[c+36>>2];H=N[c+4>>2];$=N[c+20>>2];D=Q(Q(j*V)+Q(Q(qa*H)+Q(i*$)));ja=Q(R(D));aa=N[c+32>>2];ba=N[c>>2];ca=N[c+16>>2];A=Q(Q(j*aa)+Q(Q(qa*ba)+Q(i*ca)));va=Q(R(A));i=Q(Q(R(r))-Q(Q(o*ha)+Q(Q(t*ja)+Q(Q(x*va)+h))));a:{if(i>Q(0)){break a}K=Q(Q(I*Z)+Q(Q(U*_)+Q(F*M)));ka=Q(R(K));O=Q(Q(I*V)+Q(Q(U*H)+Q(F*$)));S=Q(R(O));T=Q(Q(I*aa)+Q(Q(U*ba)+Q(F*ca)));la=Q(R(T));j=Q(-3.4028234663852886e38);if(i>Q(-3.4028234663852886e38)){j=i;q=a;B=1;e=r Q(0)){break a}F=Q(Q(s*Z)+Q(Q(ea*_)+Q(L*M)));ma=Q(R(F));E=Q(Q(s*V)+Q(Q(ea*H)+Q(L*$)));na=Q(R(E));v=Q(Q(s*aa)+Q(Q(ea*ba)+Q(L*ca)));da=Q(R(v));if(i>j){q=a+4|0;j=i;B=2;e=IQ(0)){break a}if(i>j){q=a+8|0;j=i;B=3;e=sQ(0)){break a}if(i>j){j=i;q=c;B=4;e=LQ(0)){break a}if(i>j){q=c+4|0;j=i;B=5;e=LQ(0)){break a}if(i>j){q=c+8|0;j=i;B=6;e=mQ(1.1920928955078125e-7)){break a}L=Q(na+Q(9999999747378752e-21));Z=Q(S+Q(9999999747378752e-21));_=Q(va+Q(9999999747378752e-21));S=Q(-I);u=Q(0);la=Q(T*T);na=Q(Q(v*v)+Q(0));M=Q(Y(Q(la+na)));b:{if(!(M>Q(1.1920928955078125e-7))){g=Q(0);m=Q(0);break b}g=Q(0);i=Q(i/M);m=Q(0);if(!(Q(i*Q(1.0499999523162842))>j)){break b}e=VQ(1.1920928955078125e-7)){break a}M=Q(ma+Q(9999999747378752e-21));V=Q(ka+Q(9999999747378752e-21));ka=Q(O*O);ma=Q(Q(E*E)+Q(0));H=Q(Y(Q(ka+ma)));c:{if(!(H>Q(1.1920928955078125e-7))){break c}i=Q(i/H);if(!(Q(i*Q(1.0499999523162842))>j)){break c}e=daQ(1.1920928955078125e-7)){break a}da=Q(K*K);ha=Q(Q(F*F)+Q(0));H=Q(Y(Q(da+ha)));d:{if(!(H>Q(1.1920928955078125e-7))){break d}i=Q(i/H);if(!(Q(i*Q(1.0499999523162842))>j)){break d}e=SQ(1.1920928955078125e-7)){break a}H=Q(-s);ja=Q(A*A);s=Q(Y(Q(ja+na)));e:{if(!(s>Q(1.1920928955078125e-7))){break e}i=Q(i/s);if(!(Q(i*Q(1.0499999523162842))>j)){break e}e=SQ(1.1920928955078125e-7)){break a}S=Q(D*D);v=Q(Y(Q(S+ma)));f:{if(!(v>Q(1.1920928955078125e-7))){break f}i=Q(i/v);if(!(Q(i*Q(1.0499999523162842))>j)){break f}e=sQ(1.1920928955078125e-7)){break a}s=Q(z*z);E=Q(Y(Q(s+ha)));g:{if(!(E>Q(1.1920928955078125e-7))){break g}i=Q(i/E);if(!(Q(i*Q(1.0499999523162842))>j)){break g}e=vQ(1.1920928955078125e-7)){break a}F=Q(-r);r=Q(Y(Q(Q(la+ja)+Q(0))));h:{if(!(r>Q(1.1920928955078125e-7))){break h}i=Q(i/r);if(!(Q(i*Q(1.0499999523162842))>j)){break h}e=EQ(1.1920928955078125e-7)){break a}o=Q(Y(Q(Q(ka+S)+Q(0))));i:{if(!(o>Q(1.1920928955078125e-7))){break i}i=Q(i/o);if(!(Q(i*Q(1.0499999523162842))>j)){break i}e=rQ(1.1920928955078125e-7)){break a}j:{k:{l:{m:{o=Q(Y(Q(Q(da+s)+Q(0))));if(!(o>Q(1.1920928955078125e-7))){break m}i=Q(i/o);if(!(Q(i*Q(1.0499999523162842))>j)){break m}e=r>2]=o;r=Q(Q(N[a+24>>2]*g)+Q(Q(N[a+16>>2]*u)+Q(m*N[a+20>>2])));N[d+52>>2]=r;j=Q(Q(N[a+40>>2]*g)+Q(Q(N[a+32>>2]*u)+Q(m*N[a+36>>2])));break j}o=N[q>>2];N[d+48>>2]=o;r=N[q+16>>2];N[d+52>>2]=r;i=j;j=N[q+32>>2]}N[d+56>>2]=j;if(e){N[d+56>>2]=-j;N[d+52>>2]=-r;N[d+48>>2]=-o}N[d+44>>2]=-i;if(B>>>0>=7){J[f+120>>2]=J[G+8>>2];e=J[G+4>>2];J[f+112>>2]=J[G>>2];J[f+116>>2]=e;s=k;v=Q(-k);j=N[d+56>>2];k=N[a+40>>2];i=N[d+48>>2];u=N[a+8>>2];m=N[d+52>>2];o=N[a+24>>2];g=Q(Q(j*k)+Q(Q(i*u)+Q(m*o)))>Q(0)?s:v;s=Q(g*k);k=N[a+36>>2];r=N[a+4>>2];z=N[a+20>>2];l=Q(Q(j*k)+Q(Q(i*r)+Q(m*z)))>Q(0)?l:Q(-l);v=Q(l*k);k=N[a+32>>2];D=N[a>>2];A=N[a+16>>2];h=Q(Q(j*k)+Q(Q(i*D)+Q(m*A)))>Q(0)?h:Q(-h);N[f+120>>2]=s+Q(v+Q(Q(h*k)+N[f+120>>2]));N[f+112>>2]=Q(g*u)+Q(Q(l*r)+Q(Q(h*D)+N[f+112>>2]));N[f+116>>2]=Q(g*o)+Q(Q(l*z)+Q(Q(h*A)+N[f+116>>2]));J[f+216>>2]=J[b+8>>2];e=J[b+4>>2];J[f+208>>2]=J[b>>2];J[f+212>>2]=e;g=N[f+352>>2];h=N[c+40>>2];l=N[c+8>>2];k=N[c+24>>2];g=Q(Q(j*h)+Q(Q(i*l)+Q(m*k)))>Q(0)?Q(-g):g;z=Q(g*h);v=Q(-t);s=t;t=N[c+36>>2];u=N[c+4>>2];o=N[c+20>>2];h=Q(Q(j*t)+Q(Q(i*u)+Q(m*o)))>Q(0)?v:s;A=Q(-x);s=x;x=N[c+32>>2];v=i;i=N[c>>2];r=m;m=N[c+16>>2];j=Q(Q(j*x)+Q(Q(v*i)+Q(r*m)))>Q(0)?A:s;x=Q(z+Q(Q(h*t)+Q(Q(j*x)+N[f+216>>2])));N[f+216>>2]=x;i=Q(Q(g*l)+Q(Q(h*u)+Q(Q(j*i)+N[f+208>>2])));N[f+208>>2]=i;m=Q(Q(g*k)+Q(Q(h*o)+Q(Q(j*m)+N[f+212>>2])));N[f+212>>2]=m;b=B-7&255;a=((b>>>0)/3<<2)+a|0;N[f+288>>2]=N[a>>2];N[f+292>>2]=N[a+16>>2];N[f+296>>2]=N[a+32>>2];a=c+((b>>>0)%3<<2)|0;g=N[a>>2];N[f+80>>2]=g;h=N[a+16>>2];N[f+84>>2]=h;l=N[a+32>>2];N[f+88>>2]=l;a=f+208|0;b=f- -64|0;k=N[f+296>>2];t=N[f+88>>2];u=N[f+288>>2];o=N[f+80>>2];r=N[f+292>>2];z=N[f+84>>2];j=Q(Q(k*t)+Q(Q(u*o)+Q(r*z)));D=Q(Q(1)-Q(j*j));n:{if(D<=Q(9999999747378752e-20)){J[f+328>>2]=0;N[b>>2]=0;break n}s=t;t=Q(N[a+8>>2]-N[f+120>>2]);v=o;o=Q(N[a>>2]-N[f+112>>2]);A=Q(N[a+4>>2]-N[f+116>>2]);z=Q(-Q(Q(s*t)+Q(Q(v*o)+Q(A*z))));k=Q(Q(k*t)+Q(Q(u*o)+Q(A*r)));t=Q(Q(1)/D);N[f+328>>2]=Q(Q(j*z)+k)*t;N[b>>2]=Q(Q(j*k)+z)*t}j=N[f+64>>2];N[f+216>>2]=Q(l*j)+x;N[f+212>>2]=Q(h*j)+m;N[f+208>>2]=Q(g*j)+i;j=N[d+48>>2];i=N[d+52>>2];m=N[d+56>>2];J[f+44>>2]=0;N[f+40>>2]=-m;N[f+36>>2]=-i;N[f+32>>2]=-j;ia[J[J[W>>2]+16>>2]](W,f+32|0,a,Q(-N[d+44>>2]));J[d+40>>2]=B;break a}j=N[d+48>>2];o:{if(B>>>0<=3){m=N[d+52>>2];q=f+356|0;w=c;n=f+344|0;i=N[d+56>>2];break o}j=Q(-j);m=Q(-N[d+52>>2]);e=b;q=f+344|0;b=G;G=e;w=a;a=c;n=f+356|0;i=Q(-N[d+56>>2])}h=Q(Q(N[w+32>>2]*i)+Q(Q(N[w>>2]*j)+Q(m*N[w+16>>2])));N[f+328>>2]=h;l=Q(Q(N[w+36>>2]*i)+Q(Q(N[w+4>>2]*j)+Q(m*N[w+20>>2])));N[f+332>>2]=l;g=Q(Q(N[w+40>>2]*i)+Q(Q(N[w+8>>2]*j)+Q(m*N[w+24>>2])));N[f+336>>2]=g;g=Q(R(g));l=Q(R(l));h=Q(R(h));p:{if(l>h){e=g>2];g=N[c+(f+328|0)>>2] >2])+Q(N[b+8>>2]-N[G+8>>2]));t=Q(Q(g*N[c+16>>2])+Q(N[b+4>>2]-N[G+4>>2]));u=Q(Q(g*N[c>>2])+Q(N[b>>2]-N[G>>2]));ra=e?2:1;c=1;e=2;q:{r:{s:{ta=(B>>>0<4?-1:-4)+B|0;switch(ta|0){case 0:break q;case 1:break s;default:break r}}c=0;break q}e=1;c=0}c=c<<2;b=c+a|0;g=N[b+32>>2];h=N[b>>2];l=N[b+16>>2];b=e<<2;a=b+a|0;k=N[a+32>>2];o=N[a>>2];r=N[a+16>>2];z=Q(Q(x*k)+Q(Q(u*o)+Q(t*r)));a=X<<2;oa=a+w|0;A=N[oa+32>>2];K=N[oa>>2];O=N[oa+16>>2];D=Q(Q(k*A)+Q(Q(o*K)+Q(r*O)));T=N[a+n>>2];I=Q(D*T);F=Q(z+I);a=ra<<2;fa=a+w|0;E=N[fa+32>>2];v=N[fa>>2];s=N[fa+16>>2];o=Q(Q(k*E)+Q(Q(o*v)+Q(r*s)));U=N[a+n>>2];k=Q(o*U);N[f+316>>2]=F-k;r=Q(Q(x*g)+Q(Q(u*h)+Q(t*l)));A=Q(Q(g*A)+Q(Q(h*K)+Q(l*O)));O=Q(T*A);T=Q(r+O);K=Q(Q(g*E)+Q(Q(h*v)+Q(l*s)));g=Q(U*K);N[f+312>>2]=T-g;N[f+308>>2]=F+k;N[f+304>>2]=T+g;h=Q(z-I);N[f+300>>2]=h+k;l=Q(r-O);N[f+296>>2]=l+g;N[f+292>>2]=h-k;N[f+288>>2]=l-g;N[f+280>>2]=N[c+q>>2];N[f+284>>2]=N[b+q>>2];e=f+208|0;b=0;p=ga+-64|0;ga=p;g=N[f+280>>2];k=N[f+288>>2];h=Q(-k);if(g>h){N[e>>2]=k;N[e+4>>2]=N[f+292>>2];g=N[f+280>>2];k=N[f+288>>2];h=Q(-k);b=1;c=e+8|0}else{c=e}a=g>h;l=N[f+296>>2];h=Q(-l);if((a|0)!=(h>2];N[c+4>>2]=Q(Q(Q(N[f+300>>2]-h)/Q(l-k))*Q(Q(-g)-k))+h;N[c>>2]=-N[f+280>>2];g=N[f+280>>2];l=N[f+296>>2];h=Q(-l);c=c+8|0;b=b+1|0}if(g>h){N[c>>2]=l;N[c+4>>2]=N[f+300>>2];g=N[f+280>>2];l=N[f+296>>2];h=Q(-l);c=c+8|0;b=b+1|0}a=g>h;h=N[f+304>>2];k=Q(-h);t:{if((a|0)!=(k >2];N[c+4>>2]=Q(Q(Q(N[f+308>>2]-k)/Q(h-l))*Q(Q(-g)-l))+k;N[c>>2]=-N[f+280>>2];b=b+1|0;if(b&8){a=b;break t}g=N[f+280>>2];h=N[f+304>>2];k=Q(-h);c=c+8|0}if(g>k){N[c>>2]=h;N[c+4>>2]=N[f+308>>2];b=b+1|0;if(b&8){a=b;break t}g=N[f+280>>2];h=N[f+304>>2];k=Q(-h);c=c+8|0}a=g>k;l=N[f+312>>2];k=Q(-l);if((a|0)!=(k >2];N[c+4>>2]=Q(Q(Q(N[f+316>>2]-k)/Q(l-h))*Q(Q(-g)-h))+k;N[c>>2]=-N[f+280>>2];b=b+1|0;if(b&8){a=b;break t}g=N[f+280>>2];l=N[f+312>>2];k=Q(-l);c=c+8|0}if(g>k){N[c>>2]=l;N[c+4>>2]=N[f+316>>2];b=b+1|0;if(b&8){a=b;break t}g=N[f+280>>2];l=N[f+312>>2];k=Q(-l);c=c+8|0}u:{v:{h=N[f+288>>2];if((Q(-h) k|0)){k=N[f+316>>2];N[c+4>>2]=Q(Q(Q(N[f+292>>2]-k)/Q(h-l))*Q(Q(-g)-l))+k;N[c>>2]=-N[f+280>>2];a=8;b=b+1|0;if(b&8){break t}break v}if(b){break v}a=0;break u}g=N[f+280>>2];h=N[e>>2];w:{if(!(g>h)){c=p;a=0;break w}N[p>>2]=h;N[p+4>>2]=N[e+4>>2];c=p|8;g=N[f+280>>2];h=N[e>>2];a=1}n=e+8|0;y=b>>>0>1;l=N[e+(y<<3)>>2];if((l h|0)){k=N[e+4>>2];N[c+4>>2]=Q(Q(Q(N[(y?n:e)+4>>2]-k)/Q(l-h))*Q(g-h))+k;g=N[f+280>>2];N[c>>2]=g;c=c+8|0;a=a+1|0}x:{if((b|0)<2){break x}h=N[n>>2];if(h >2]=h;N[c+4>>2]=N[e+12>>2];c=c+8|0;g=N[f+280>>2];h=N[n>>2];a=a+1|0}n=e+16|0;y=b-3>>>0<4294967294;l=N[e+(y<<4)>>2];if((l h|0)){k=N[e+12>>2];N[c+4>>2]=Q(Q(Q(N[(y?n:e)+4>>2]-k)/Q(l-h))*Q(g-h))+k;N[c>>2]=N[f+280>>2];a=a+1|0;if(a&8){break u}g=N[f+280>>2];c=c+8|0}if((b|0)<3){break x}h=N[n>>2];if(h >2]=h;N[c+4>>2]=N[e+20>>2];a=a+1|0;if(a&8){break u}g=N[f+280>>2];h=N[n>>2];c=c+8|0}n=e+24|0;y=(b&254)==2;l=N[e+(y?0:24)>>2];if((l h|0)){k=N[e+20>>2];N[c+4>>2]=Q(Q(Q(N[(y?e:n)+4>>2]-k)/Q(l-h))*Q(g-h))+k;N[c>>2]=N[f+280>>2];a=a+1|0;if(a&8){break u}g=N[f+280>>2];c=c+8|0}if((b|0)<4){break x}h=N[n>>2];if(h >2]=h;N[c+4>>2]=N[e+28>>2];a=a+1|0;if(a&8){break u}g=N[f+280>>2];h=N[n>>2];c=c+8|0}n=e+32|0;y=b-5>>>0<4294967294;l=N[e+(y<<5)>>2];if((l h|0)){k=N[e+28>>2];N[c+4>>2]=Q(Q(Q(N[(y?n:e)+4>>2]-k)/Q(l-h))*Q(g-h))+k;N[c>>2]=N[f+280>>2];a=a+1|0;if(a&8){break u}g=N[f+280>>2];c=c+8|0}if((b|0)<5){break x}h=N[n>>2];if(h >2]=h;N[c+4>>2]=N[e+36>>2];a=a+1|0;if(a&8){break u}g=N[f+280>>2];h=N[n>>2];c=c+8|0}n=e+40|0;y=(b&254)==4;l=N[e+(y?0:40)>>2];if((l h|0)){k=N[e+36>>2];N[c+4>>2]=Q(Q(Q(N[(y?e:n)+4>>2]-k)/Q(l-h))*Q(g-h))+k;N[c>>2]=N[f+280>>2];a=a+1|0;if(a&8){break u}g=N[f+280>>2];c=c+8|0}if((b|0)<6){break x}h=N[n>>2];if(h >2]=h;N[c+4>>2]=N[e+44>>2];a=a+1|0;if(a&8){break u}g=N[f+280>>2];h=N[n>>2];c=c+8|0}n=e+48|0;y=b-7>>>0<4294967294;l=N[e+(y?48:0)>>2];if((l h|0)){k=N[e+44>>2];N[c+4>>2]=Q(Q(Q(N[(y?n:e)+4>>2]-k)/Q(l-h))*Q(g-h))+k;N[c>>2]=N[f+280>>2];a=a+1|0;if(a&8){break u}g=N[f+280>>2];c=c+8|0}if((b|0)<7){break x}h=N[n>>2];if(h >2]=h;N[c+4>>2]=N[e+52>>2];a=a+1|0;if(a&8){break u}g=N[f+280>>2];h=N[n>>2];c=c+8|0}n=e+56|0;y=(b&254)==6;l=N[e+(y?0:56)>>2];if((l h|0)){k=N[e+52>>2];N[c+4>>2]=Q(Q(Q(N[(y?e:n)+4>>2]-k)/Q(l-h))*Q(g-h))+k;N[c>>2]=N[f+280>>2];a=a+1|0;if(a&8){break u}g=N[f+280>>2];c=c+8|0}if((b|0)<8){break x}h=N[n>>2];if(h >2]=h;N[c+4>>2]=N[e+60>>2];a=a+1|0;if(a&8){break u}g=N[f+280>>2];h=N[n>>2];c=c+8|0}b=e+((b-9>>>0<4294967294)<<6)|0;l=N[b>>2];if((l h|0)){break x}k=N[e+60>>2];N[c+4>>2]=Q(Q(Q(N[b+4>>2]-k)/Q(l-h))*Q(g-h))+k;N[c>>2]=N[f+280>>2];a=a+1|0;if(a&8){break u}}if((a|0)<=0){a=0;break u}pa=p|4;n=0;c=p;b=e;while(1){g=N[f+284>>2];l=N[c+4>>2];h=Q(-l);if(g>h){N[b>>2]=N[c>>2];N[b+4>>2]=N[c+4>>2];n=n+1|0;if(n&8){a=n;break t}g=N[f+284>>2];l=N[c+4>>2];h=Q(-l);b=b+8|0}y=c+8|0;ua=a>>>0>1;k=N[(ua?c+12|0:pa)>>2];if((Q(-k) h|0)){h=N[c>>2];N[b>>2]=Q(Q(Q(N[(ua?y:p)>>2]-h)/Q(k-l))*Q(Q(-g)-l))+h;N[b+4>>2]=-N[f+284>>2];n=n+1|0;if(n&8){a=n;break t}b=b+8|0}ua=(a|0)>1;a=a-1|0;c=y;if(ua){continue}break}a=0;if((n|0)<=0){break u}b=p;c=e;while(1){g=N[f+284>>2];h=N[c+4>>2];if(g>h){N[b>>2]=N[c>>2];N[b+4>>2]=N[c+4>>2];a=a+1|0;if(a&8){break u}g=N[f+284>>2];h=N[c+4>>2];b=b+8|0}y=c+8|0;pa=n>>>0>1?y:e;l=N[pa+4>>2];if((l h|0)){k=N[c>>2];N[b>>2]=Q(Q(Q(N[pa>>2]-k)/Q(l-h))*Q(g-h))+k;N[b+4>>2]=N[f+284>>2];a=a+1|0;if(a&8){break u}b=b+8|0}pa=(n|0)>1;n=n-1|0;c=y;if(pa){continue}break}}if((e|0)==(p|0)){break t}sa(e,p,a<<3)}ga=p- -64|0;if((a|0)<=0){break a}b=a;g=Q(Q(1)/Q(Q(A*o)-Q(D*K)));l=Q(g*Q(-D));k=Q(g*Q(-K));o=Q(o*g);D=Q(A*g);A=N[(ta<<2)+q>>2];a=(ra<<2)+w|0;K=N[a+32>>2];c=(X<<2)+w|0;O=N[c+32>>2];T=N[a+16>>2];I=N[c+16>>2];F=N[fa>>2];E=N[oa>>2];a=0;c=0;while(1){e=(f+112|0)+P(a,12)|0;p=(f+208|0)+(c<<3)|0;v=N[p>>2];h=Q(v-r);s=N[p+4>>2];U=Q(s-z);g=Q(Q(l*h)+Q(D*U));h=Q(Q(o*h)+Q(k*U));U=Q(Q(g*F)+Q(Q(h*E)+u));N[e>>2]=U;ea=Q(Q(g*T)+Q(Q(h*I)+t));N[e+4>>2]=ea;g=Q(Q(g*K)+Q(Q(h*O)+x));N[e+8>>2]=g;g=Q(A-Q(Q(i*g)+Q(Q(j*U)+Q(m*ea))));N[(f+80|0)+(a<<2)>>2]=g;if(g>=Q(0)){e=(f+208|0)+(a<<3)|0;N[e+4>>2]=s;N[e>>2]=v;a=a+1|0}c=c+1|0;if((b|0)!=(c|0)){continue}break}if((a|0)<=0){break a}b=(a|0)<4?a:4;X=(b|0)>1?b:1;y:{if(X>>>0>=a>>>0){if(B>>>0>=4){c=0;while(1){b=(f+112|0)+P(c,12)|0;i=N[d+48>>2];j=N[(f+80|0)+(c<<2)>>2];N[f+32>>2]=Q(N[b>>2]+N[G>>2])-Q(i*j);m=N[d+52>>2];N[f+36>>2]=Q(N[b+4>>2]+N[G+4>>2])-Q(j*m);g=N[d+56>>2];N[f+40>>2]=Q(N[b+8>>2]+N[G+8>>2])-Q(j*g);J[f+76>>2]=0;N[f+72>>2]=-g;N[f+68>>2]=-m;N[f+64>>2]=-i;ia[J[J[W>>2]+16>>2]](W,f- -64|0,f+32|0,Q(-j));c=c+1|0;if((c|0)!=(a|0)){continue}break}break y}c=0;while(1){b=(f+112|0)+P(c,12)|0;N[f+32>>2]=N[b>>2]+N[G>>2];N[f+36>>2]=N[b+4>>2]+N[G+4>>2];N[f+40>>2]=N[b+8>>2]+N[G+8>>2];j=N[d+48>>2];i=N[d+52>>2];m=N[d+56>>2];J[f+76>>2]=0;N[f+72>>2]=-m;N[f+68>>2]=-i;N[f+64>>2]=-j;ia[J[J[W>>2]+16>>2]](W,f- -64|0,f+32|0,Q(-N[(f+80|0)+(c<<2)>>2]));c=c+1|0;if((c|0)!=(a|0)){continue}break}break y}b=0;z:{if(a>>>0<2){break z}b=a-1|0;q=b&3;e=0;m=N[f+80>>2];A:{if(a-2>>>0<3){c=1;b=0;break A}oa=b&-4;b=0;c=1;while(1){p=f+80|0;fa=c+3|0;j=N[p+(fa<<2)>>2];i=N[p+(c<<2)>>2];w=i>m;ra=c+1|0;g=N[p+(ra<<2)>>2];i=w?i:m;n=g>i;ta=c+2|0;m=N[p+(ta<<2)>>2];i=n?g:i;p=m>i;i=p?m:i;y=i >2];p=j>m;m=p?j:m;b=p?c:b;c=c+1|0;e=e+1|0;if((q|0)!=(e|0)){continue}break}}w=f+208|0;n=f+32|0;i=Q(0);q=0;g=Q(0);h=Q(0);p=ga+-64|0;ga=p;B:{C:{D:{E:{F:{G:{H:{c=a;e=c-1|0;switch(e|0){case 0:break D;case 1:break G;default:break H}}if((c|0)>1){break F}break E}g=Q(Q(N[w+4>>2]+N[w+12>>2])*Q(.5));j=Q(Q(N[w>>2]+N[w+8>>2])*Q(.5));break C}while(1){a=w+(q<<3)|0;m=N[a>>2];l=N[a+12>>2];k=N[a+4>>2];x=N[a+8>>2];j=Q(Q(m*l)-Q(k*x));i=Q(i+j);g=Q(Q(j*Q(l+k))+g);h=Q(Q(j*Q(m+x))+h);q=q+1|0;if((e|0)!=(q|0)){continue}break}}l=Q(0xde0b6b000000000);t=i;a=w+(c<<3)|0;i=N[a-8>>2];m=N[w+4>>2];k=N[a-4>>2];x=N[w>>2];j=Q(Q(i*m)-Q(k*x));t=Q(t+j);if(Q(R(t))>Q(1.1920928955078125e-7)){l=Q(Q(1)/Q(t*Q(3)))}e=0;if((c|0)<=0){break B}g=Q(Q(Q(j*Q(m+k))+g)*l);j=Q(Q(Q(j*Q(i+x))+h)*l);break C}g=N[w+4>>2];j=N[w>>2]}e=0;while(1){a=w+(e<<3)|0;N[(p+32|0)+(e<<2)>>2]=$a(Q(N[a+4>>2]-g),Q(N[a>>2]-j));e=e+1|0;if((c|0)!=(e|0)){continue}break}C=0;q=0;if(c-1>>>0>=7){w=c&-8;a=0;while(1){e=q<<2;J[e+p>>2]=1;J[p+(e|4)>>2]=1;J[p+(e|8)>>2]=1;J[p+(e|12)>>2]=1;J[p+(e|16)>>2]=1;J[p+(e|20)>>2]=1;J[p+(e|24)>>2]=1;J[p+(e|28)>>2]=1;q=q+8|0;a=a+8|0;if((w|0)!=(a|0)){continue}break}}a=c&7;if(!a){e=1;break B}while(1){e=1;J[p+(q<<2)>>2]=1;q=q+1|0;C=C+1|0;if((a|0)!=(C|0)){continue}break}}a=b<<2;q=a+p|0;J[q>>2]=0;J[n>>2]=b;I:{if((X|0)<2){break I}C=n+4|0;if(e){m=Q(Q(6.2831854820251465)/Q(X|0));g=N[a+(p+32|0)>>2];n=1;while(1){J[C>>2]=b;j=Q(Q(Q(n|0)*m)+g);h=j>Q(3.1415927410125732)?Q(j+Q(-6.2831854820251465)):j;i=Q(1e9);a=b;e=0;while(1){q=e<<2;J:{if(!J[q+p>>2]){break J}j=Q(R(Q(N[q+(p+32|0)>>2]-h)));j=j>Q(3.1415927410125732)?Q(Q(6.2831854820251465)-j):j;if(!(j>2]=e;a=e;i=j}e=e+1|0;if((c|0)!=(e|0)){continue}break}J[p+(a<<2)>>2]=0;C=C+4|0;n=n+1|0;if((X|0)!=(n|0)){continue}break}break I}c=X-1|0;a=c&7;if(X-2>>>0>=7){c=c&-8;e=0;while(1){J[C+28>>2]=b;J[C+24>>2]=b;J[C+20>>2]=b;J[C+16>>2]=b;J[C+12>>2]=b;J[C+8>>2]=b;J[C+4>>2]=b;J[C>>2]=b;C=C+32|0;e=e+8|0;if((c|0)!=(e|0)){continue}break}}if(a){e=0;while(1){J[C>>2]=b;C=C+4|0;e=e+1|0;if((a|0)!=(e|0)){continue}break}}J[q>>2]=0}ga=p- -64|0;e=B>>>0>3;a=0;while(1){b=J[(f+32|0)+(a<<2)>>2];c=(f+112|0)+P(b,12)|0;g=Q(N[c>>2]+N[G>>2]);N[f+64>>2]=g;h=Q(N[c+4>>2]+N[G+4>>2]);N[f+68>>2]=h;l=Q(N[c+8>>2]+N[G+8>>2]);N[f+72>>2]=l;K:{if(!e){j=N[d+48>>2];i=N[d+52>>2];m=N[d+56>>2];J[f+28>>2]=0;N[f+24>>2]=-m;N[f+20>>2]=-i;N[f+16>>2]=-j;ia[J[J[W>>2]+16>>2]](W,f+16|0,f- -64|0,Q(-N[(f+80|0)+(b<<2)>>2]));break K}i=N[d+48>>2];m=N[d+52>>2];j=N[d+56>>2];J[f+28>>2]=0;N[f+24>>2]=-j;N[f+20>>2]=-m;N[f+16>>2]=-i;J[f+12>>2]=0;t=j;j=N[(f+80|0)+(b<<2)>>2];N[f+8>>2]=l-Q(t*j);N[f+4>>2]=h-Q(m*j);N[f>>2]=g-Q(i*j);ia[J[J[W>>2]+16>>2]](W,f+16|0,f,Q(-j))}a=a+1|0;if((X|0)!=(a|0)){continue}break}}J[d+40>>2]=B}ga=f+368|0;ga=d+160|0}function QA(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=0,j=Q(0),k=Q(0),l=0,m=Q(0),n=0,o=0,p=0,q=0,r=0,s=Q(0),t=Q(0),u=0,v=Q(0),w=Q(0),x=0,y=0,z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=0,F=0,G=0,I=Q(0),L=Q(0),M=Q(0),O=0,S=Q(0),T=0,U=0,V=0,W=Q(0),X=Q(0),Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ha=Q(0),ja=Q(0),ka=Q(0),la=Q(0),ma=Q(0),na=Q(0);if((c|0)>0){while(1){_=0;r=ga-96|0;ga=r;Z=J[($<<2)+b>>2];o=J[Z+744>>2];p=J[Z+740>>2];F=yb(a,p,N[d+12>>2]);G=yb(a,o,N[d+12>>2]);n=J[a+16>>2];i=n+P(F,244)|0;a:{b:{if(N[i+128>>2]!=Q(0)|N[i+132>>2]!=Q(0)|N[(n+P(F,244)|0)+136>>2]!=Q(0)){break b}i=n+P(G,244)|0;if(N[i+128>>2]!=Q(0)|N[i+132>>2]!=Q(0)){break b}if(N[(n+P(G,244)|0)+136>>2]==Q(0)){break a}}if(J[Z+748>>2]<=0){break a}T=n+P(G,244)|0;U=n+P(F,244)|0;aa=1;while(1){q=P(_,184)+Z|0;if(N[q+84>>2]<=N[Z+756>>2]){y=q+4|0;n=J[a+28>>2];i=n;c:{if((i|0)!=J[a+32>>2]){break c}i=n;x=i?i<<1:1;if((x|0)<=(i|0)){break c}d:{if(!x){u=0;l=n;break d}J[8369]=J[8369]+1;u=ia[J[6782]](P(x,152),16)|0;l=J[a+28>>2]}e:{if((l|0)<=0){break e}i=0;if((l|0)!=1){V=l&-2;E=0;while(1){O=P(i,152);sa(O+u|0,O+J[a+36>>2]|0,152);O=P(i|1,152);sa(O+u|0,O+J[a+36>>2]|0,152);i=i+2|0;E=E+2|0;if((V|0)!=(E|0)){continue}break}}if(!(l&1)){break e}i=P(i,152);sa(i+u|0,i+J[a+36>>2]|0,152)}i=J[a+36>>2];if(!(i?!i|!K[a+40|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](i)}J[a+36>>2]=u;H[a+40|0]=1;J[a+32>>2]=x;i=J[a+28>>2]}J[a+28>>2]=i+1;ea=J[p+236>>2];fa=J[o+236>>2];i=J[a+36>>2]+P(n,152)|0;J[i+148>>2]=G;J[i+144>>2]=F;J[i+132>>2]=y;g=N[q+52>>2];f=N[q+56>>2];e=N[q+60>>2];h=N[p+52>>2];k=N[p+56>>2];m=N[p+60>>2];J[r+92>>2]=0;e=Q(e-m);N[r+88>>2]=e;f=Q(f-k);N[r+84>>2]=f;g=Q(g-h);N[r+80>>2]=g;m=N[q+36>>2];k=N[q+40>>2];h=N[q+44>>2];j=N[o+52>>2];t=N[o+56>>2];v=N[o+60>>2];J[r+76>>2]=0;h=Q(h-v);N[r+72>>2]=h;k=Q(k-t);N[r+68>>2]=k;m=Q(m-j);N[r+64>>2]=m;A=Q(0);D=Q(0);S=Q(0);ha=Q(0);if(J[U+240>>2]){j=Q(N[U+192>>2]+N[U+224>>2]);t=Q(N[U+196>>2]+N[U+228>>2]);ha=Q(Q(N[U+184>>2]+N[U+216>>2])+Q(Q(j*f)-Q(g*t)));v=Q(N[U+200>>2]+N[U+232>>2]);S=Q(Q(N[U+180>>2]+N[U+212>>2])+Q(Q(v*g)-Q(e*j)));D=Q(Q(N[U+176>>2]+N[U+208>>2])+Q(Q(t*e)-Q(f*v)))}ja=Q(0);ka=Q(0);if(J[T+240>>2]){e=Q(N[T+192>>2]+N[T+224>>2]);f=Q(N[T+196>>2]+N[T+228>>2]);ka=Q(Q(N[T+184>>2]+N[T+216>>2])+Q(Q(e*k)-Q(m*f)));g=Q(N[T+200>>2]+N[T+232>>2]);ja=Q(Q(N[T+180>>2]+N[T+212>>2])+Q(Q(g*m)-Q(h*e)));A=Q(Q(N[T+176>>2]+N[T+208>>2])+Q(Q(f*h)-Q(k*g)))}la=N[q+76>>2];V=q+68|0;ma=N[V>>2];na=N[q+72>>2];m=Q(0);E=J[a+16>>2];ba=E+P(G,244)|0;l=J[ba+240>>2];ca=E+P(F,244)|0;u=J[ca+240>>2];J[r+60>>2]=1065353216;e=N[r+80>>2];f=N[y+68>>2];g=N[y+64>>2];h=N[r+84>>2];j=Q(Q(e*f)-Q(g*h));k=N[r+88>>2];s=Q(k*g);g=N[y+72>>2];t=Q(s-Q(g*e));v=Q(Q(h*g)-Q(f*k));f=Q(0);e=Q(0);g=Q(0);if(u){g=Q(Q(Q(N[u+304>>2]*j)+Q(Q(N[u+296>>2]*v)+Q(t*N[u+300>>2])))*N[u+552>>2]);f=Q(Q(Q(N[u+272>>2]*j)+Q(Q(N[u+264>>2]*v)+Q(t*N[u+268>>2])))*N[u+544>>2]);e=Q(Q(Q(N[u+288>>2]*j)+Q(Q(N[u+280>>2]*v)+Q(t*N[u+284>>2])))*N[u+548>>2])}N[i+64>>2]=f;J[i+76>>2]=0;N[i+72>>2]=g;N[i+68>>2]=e;x=r- -64|0;h=N[x>>2];k=N[y+68>>2];w=N[y+64>>2];B=N[x+4>>2];s=Q(Q(h*k)-Q(w*B));C=N[x+8>>2];I=N[y+72>>2];w=Q(Q(C*w)-Q(I*h));B=Q(Q(B*I)-Q(k*C));h=Q(0);k=Q(0);if(l){m=Q(-B);k=Q(Q(Q(Q(N[l+296>>2]*m)-Q(N[l+300>>2]*w))-Q(N[l+304>>2]*s))*N[l+552>>2]);h=Q(Q(Q(Q(N[l+280>>2]*m)-Q(N[l+284>>2]*w))-Q(N[l+288>>2]*s))*N[l+548>>2]);m=Q(Q(Q(Q(N[l+264>>2]*m)-Q(N[l+268>>2]*w))-Q(N[l+272>>2]*s))*N[l+544>>2])}N[i+80>>2]=m;J[i+92>>2]=0;N[i+88>>2]=k;N[i+84>>2]=h;L=N[r+60>>2];if(u){I=N[r+84>>2];M=N[r+80>>2];C=Q(N[y+72>>2]*Q(Q(f*I)-Q(M*e)));z=e;e=N[r+88>>2];f=Q(N[u+344>>2]+Q(C+Q(Q(N[y+64>>2]*Q(Q(z*e)-Q(I*g)))+Q(Q(Q(g*M)-Q(e*f))*N[y+68>>2]))))}else{f=Q(0)}e=f;if(l){f=N[x>>2];g=N[x+4>>2];z=Q(N[y+72>>2]*Q(Q(h*f)-Q(m*g)));C=Q(k*g);g=N[x+8>>2];f=Q(N[l+344>>2]+Q(z+Q(Q(N[y+64>>2]*Q(C-Q(h*g)))+Q(Q(Q(m*g)-Q(k*f))*N[y+68>>2]))))}else{f=Q(0)}N[i+108>>2]=L/Q(e+f);f:{if(u){O=y- -64|0;da=J[O+4>>2];J[i+16>>2]=J[O>>2];J[i+20>>2]=da;da=J[O+12>>2];J[i+24>>2]=J[O+8>>2];J[i+28>>2]=da;J[i+12>>2]=0;N[i+8>>2]=j;N[i+4>>2]=t;N[i>>2]=v;break f}J[i>>2]=0;J[i+4>>2]=0;J[i+24>>2]=0;J[i+28>>2]=0;J[i+16>>2]=0;J[i+20>>2]=0;J[i+8>>2]=0;J[i+12>>2]=0}g:{if(l){e=N[y+64>>2];f=N[y+68>>2];g=N[y+72>>2];J[i+60>>2]=0;J[i+44>>2]=0;N[i+40>>2]=-s;N[i+36>>2]=-w;N[i+32>>2]=-B;N[i+56>>2]=-g;N[i+52>>2]=-f;N[i+48>>2]=-e;break g}J[i+32>>2]=0;J[i+36>>2]=0;J[i+56>>2]=0;J[i+60>>2]=0;J[i+48>>2]=0;J[i+52>>2]=0;J[i+40>>2]=0;J[i+44>>2]=0}m=Q(0);f=Q(0);e=Q(0);g=Q(0);if(u){e=N[u+328>>2];f=N[r+84>>2];h=N[r+80>>2];k=N[u+332>>2];g=Q(Q(Q(e*f)-Q(h*k))+N[u+320>>2]);j=N[u+336>>2];s=Q(j*h);h=N[r+88>>2];e=Q(Q(s-Q(h*e))+N[u+316>>2]);f=Q(Q(Q(k*h)-Q(f*j))+N[u+312>>2])}h=Q(0);k=Q(0);if(l){h=N[l+328>>2];m=N[x+4>>2];j=N[x>>2];t=N[l+332>>2];k=Q(Q(Q(h*m)-Q(j*t))+N[l+320>>2]);v=N[l+336>>2];s=Q(v*j);j=N[x+8>>2];h=Q(Q(s-Q(j*h))+N[l+316>>2]);m=Q(Q(Q(t*j)-Q(m*v))+N[l+312>>2])}I=N[d+56>>2];M=N[y+80>>2];j=N[y+72>>2];t=N[y+64>>2];v=N[y+68>>2];N[i+104>>2]=N[y+84>>2];m=Q(N[y+92>>2]*Q(-Q(Q(j*Q(g-k))+Q(Q(t*Q(f-m))+Q(v*Q(e-h))))));h:{if(K[d+64|0]&4){e=Q(N[y+120>>2]*N[d+60>>2]);N[i+100>>2]=e;if(!(!u|!J[ca+240>>2])){f=N[u+356>>2];g=N[i+24>>2];h=N[u+352>>2];k=N[i+20>>2];x=E+P(F,244)|0;N[x+64>>2]=Q(N[x+112>>2]*Q(e*Q(Q(N[i+16>>2]*N[x+128>>2])*N[u+348>>2])))+N[x+64>>2];N[x+68>>2]=Q(Q(e*Q(h*Q(k*N[x+132>>2])))*N[x+116>>2])+N[x+68>>2];N[x+72>>2]=Q(Q(e*Q(f*Q(g*N[x+136>>2])))*N[x+120>>2])+N[x+72>>2];f=N[i+72>>2];g=N[i+68>>2];N[x+80>>2]=Q(Q(e*N[x+96>>2])*N[i+64>>2])+N[x+80>>2];h=N[x+104>>2];N[x+84>>2]=Q(g*Q(e*N[x+100>>2]))+N[x+84>>2];N[x+88>>2]=Q(f*Q(e*h))+N[x+88>>2]}if(!l|!J[ba+240>>2]){break h}f=N[l+356>>2];g=N[i+56>>2];h=N[l+352>>2];k=N[i+52>>2];j=N[i+88>>2];t=N[i+84>>2];v=N[i+80>>2];u=E+P(G,244)|0;e=Q(-N[i+100>>2]);N[u+64>>2]=N[u+64>>2]-Q(N[u+112>>2]*Q(Q(Q(N[u+128>>2]*N[i+48>>2])*N[l+348>>2])*e));N[u+68>>2]=N[u+68>>2]-Q(Q(Q(h*Q(k*N[u+132>>2]))*e)*N[u+116>>2]);N[u+72>>2]=N[u+72>>2]-Q(Q(Q(f*Q(g*N[u+136>>2]))*e)*N[u+120>>2]);N[u+80>>2]=N[u+80>>2]-Q(v*Q(N[u+96>>2]*e));f=N[u+104>>2];N[u+84>>2]=N[u+84>>2]-Q(t*Q(N[u+100>>2]*e));N[u+88>>2]=N[u+88>>2]-Q(j*Q(f*e));break h}J[i+100>>2]=0}J[i+96>>2]=0;e=Q(0);g=Q(0);h=Q(0);k=Q(0);j=Q(0);t=Q(0);v=Q(0);if(J[ca+240>>2]){l=E+P(F,244)|0;v=N[l+224>>2];k=N[l+208>>2];j=N[l+232>>2];t=N[l+228>>2];h=N[l+212>>2];g=N[l+216>>2]}f=Q(0);s=Q(0);w=Q(0);B=Q(0);C=Q(0);if(J[ba+240>>2]){l=E+P(G,244)|0;C=N[l+224>>2];w=N[l+232>>2];B=N[l+228>>2];s=N[l+216>>2];f=N[l+212>>2];e=N[l+208>>2]}l=E+P(F,244)|0;j=Q(Q(Q(N[i+24>>2]*Q(g+N[l+184>>2]))+Q(Q(N[i+16>>2]*Q(k+N[l+176>>2]))+Q(Q(h+N[l+180>>2])*N[i+20>>2])))+Q(Q(N[i+8>>2]*Q(j+N[l+200>>2]))+Q(Q(N[i>>2]*Q(v+N[l+192>>2]))+Q(Q(t+N[l+196>>2])*N[i+4>>2]))));l=E+P(G,244)|0;f=Q((m<=Q(0)?Q(0):m)-Q(j+Q(Q(Q(N[i+56>>2]*Q(s+N[l+184>>2]))+Q(Q(N[i+48>>2]*Q(e+N[l+176>>2]))+Q(Q(f+N[l+180>>2])*N[i+52>>2])))+Q(Q(N[i+40>>2]*Q(w+N[l+200>>2]))+Q(Q(N[i+32>>2]*Q(C+N[l+192>>2]))+Q(Q(B+N[l+196>>2])*N[i+36>>2]))))));g=Q(M+I);l=!J[d+44>>2]|g>N[d+48>>2];e=Q(0);i:{if(g>Q(0)){f=Q(f-Q(g/N[d+12>>2]));break i}e=Q(Q(N[(l?32:36)+d>>2]*Q(-g))/N[d+12>>2])}J[i+124>>2]=1343554297;J[i+116>>2]=0;J[i+120>>2]=0;j=e;e=N[i+108>>2];g=Q(j*e);N[i+128>>2]=l?Q(0):g;N[i+112>>2]=Q(f*e)+(l?g:Q(-0));J[i+140>>2]=J[a+68>>2];e=Q(0);f=Q(0);g=Q(0);h=Q(0);if(ea&2){l=ea<<30>>31&p;h=N[l+336>>2];g=N[l+332>>2];f=N[l+328>>2]}k=Q(0);m=Q(0);if(fa&2){l=fa<<30>>31&o;m=N[l+336>>2];k=N[l+332>>2];e=N[l+328>>2]}J[r+52>>2]=0;h=Q(m-h);N[r+48>>2]=h;g=Q(k-g);N[r+44>>2]=g;e=Q(e-f);N[r+40>>2]=e;j:{if(!(N[q+92>>2]>Q(0))|!aa){break j}f=Q(Y(Q(Q(h*h)+Q(Q(e*e)+Q(g*g)))));if(f>N[d+80>>2]){j=h;h=Q(Q(1)/f);f=Q(j*h);N[r+48>>2]=f;g=Q(g*h);N[r+44>>2]=g;e=Q(e*h);N[r+40>>2]=e;if(K[p+180|0]&2){m=N[p+44>>2];j=N[p+12>>2];t=N[p+28>>2];h=Q(Q(Q(m*f)+Q(Q(j*e)+Q(g*t)))*N[p+172>>2]);v=N[p+36>>2];s=N[p+4>>2];w=N[p+20>>2];k=Q(Q(Q(v*f)+Q(Q(s*e)+Q(g*w)))*N[p+164>>2]);B=N[p+40>>2];C=N[p+8>>2];z=g;g=N[p+24>>2];e=Q(Q(Q(B*f)+Q(Q(C*e)+Q(z*g)))*N[p+168>>2]);f=Q(Q(m*h)+Q(Q(v*k)+Q(B*e)));N[r+48>>2]=f;g=Q(Q(t*h)+Q(Q(w*k)+Q(g*e)));N[r+44>>2]=g;e=Q(Q(j*h)+Q(Q(s*k)+Q(C*e)));N[r+40>>2]=e}if(K[o+180|0]&2){C=N[o+172>>2];h=N[o+44>>2];k=N[o+12>>2];m=N[o+28>>2];I=N[o+164>>2];j=N[o+36>>2];t=N[o+4>>2];v=N[o+20>>2];M=N[o+168>>2];s=N[o+40>>2];w=N[o+8>>2];B=N[o+24>>2];J[r+52>>2]=0;z=h;h=Q(C*Q(Q(h*f)+Q(Q(k*e)+Q(g*m))));L=j;j=Q(I*Q(Q(j*f)+Q(Q(t*e)+Q(v*g))));e=Q(M*Q(Q(s*f)+Q(Q(w*e)+Q(g*B))));f=Q(Q(z*h)+Q(Q(L*j)+Q(s*e)));N[r+48>>2]=f;g=Q(Q(m*h)+Q(Q(v*j)+Q(B*e)));N[r+44>>2]=g;e=Q(Q(k*h)+Q(Q(t*j)+Q(w*e)));N[r+40>>2]=e}aa=0;if(!(+Q(Y(Q(Q(f*f)+Q(Q(e*e)+Q(g*g)))))>.001)){break j}Ae(a,r+40|0,F,G,n,y);break j}Ae(a,V,F,G,n,y);e=N[q+76>>2];k:{if(Q(R(e))>Q(.7071067690849304)){f=N[q+72>>2];J[r+24>>2]=0;k=Q(Q(f*f)+Q(e*e));h=Q(Q(1)/Q(Y(k)));g=Q(f*h);N[r+32>>2]=g;f=Q(h*Q(-e));N[r+28>>2]=f;m=Q(k*h);N[r+8>>2]=m;e=N[V>>2];k=Q(g*Q(-e));N[r+12>>2]=k;h=Q(0);e=Q(f*e);break k}f=N[V>>2];g=N[q+72>>2];J[r+32>>2]=0;t=Q(Q(f*f)+Q(g*g));j=Q(Q(1)/Q(Y(t)));f=Q(f*j);N[r+28>>2]=f;h=Q(j*Q(-g));N[r+24>>2]=h;k=Q(e*h);N[r+12>>2]=k;m=Q(f*Q(-e));N[r+8>>2]=m;g=Q(0);e=Q(t*j)}N[r+16>>2]=e;if(K[p+180|0]&2){L=N[p+172>>2];j=N[p+44>>2];t=N[p+12>>2];v=N[p+28>>2];W=N[p+164>>2];s=N[p+36>>2];w=N[p+4>>2];B=N[p+20>>2];X=N[p+168>>2];C=N[p+40>>2];I=N[p+8>>2];M=N[p+24>>2];J[r+36>>2]=0;z=j;j=Q(L*Q(Q(j*g)+Q(Q(t*h)+Q(f*v))));L=s;s=Q(W*Q(Q(s*g)+Q(Q(w*h)+Q(B*f))));h=Q(X*Q(Q(C*g)+Q(Q(I*h)+Q(f*M))));g=Q(Q(z*j)+Q(Q(L*s)+Q(C*h)));N[r+32>>2]=g;f=Q(Q(v*j)+Q(Q(B*s)+Q(M*h)));N[r+28>>2]=f;h=Q(Q(t*j)+Q(Q(w*s)+Q(I*h)));N[r+24>>2]=h}if(K[o+180|0]&2){L=N[o+172>>2];j=N[o+44>>2];t=N[o+12>>2];v=N[o+28>>2];W=N[o+164>>2];s=N[o+36>>2];w=N[o+4>>2];B=N[o+20>>2];X=N[o+168>>2];C=N[o+40>>2];I=N[o+8>>2];M=N[o+24>>2];J[r+36>>2]=0;z=j;j=Q(L*Q(Q(j*g)+Q(Q(t*h)+Q(f*v))));L=s;s=Q(W*Q(Q(s*g)+Q(Q(w*h)+Q(B*f))));h=Q(X*Q(Q(C*g)+Q(Q(I*h)+Q(f*M))));g=Q(Q(z*j)+Q(Q(L*s)+Q(C*h)));N[r+32>>2]=g;f=Q(Q(v*j)+Q(Q(B*s)+Q(M*h)));N[r+28>>2]=f;h=Q(Q(t*j)+Q(Q(w*s)+Q(I*h)));N[r+24>>2]=h}if(K[p+180|0]&2){L=N[p+172>>2];j=N[p+44>>2];t=N[p+12>>2];v=N[p+28>>2];W=N[p+164>>2];s=N[p+36>>2];w=N[p+4>>2];B=N[p+20>>2];X=N[p+168>>2];C=N[p+40>>2];I=N[p+8>>2];M=N[p+24>>2];J[r+20>>2]=0;z=j;j=Q(L*Q(Q(j*e)+Q(Q(t*m)+Q(k*v))));L=s;s=Q(W*Q(Q(s*e)+Q(Q(w*m)+Q(B*k))));m=Q(X*Q(Q(C*e)+Q(Q(I*m)+Q(k*M))));e=Q(Q(z*j)+Q(Q(L*s)+Q(C*m)));N[r+16>>2]=e;k=Q(Q(v*j)+Q(Q(B*s)+Q(M*m)));N[r+12>>2]=k;m=Q(Q(t*j)+Q(Q(w*s)+Q(I*m)));N[r+8>>2]=m}if(K[o+180|0]&2){L=N[o+172>>2];j=N[o+44>>2];t=N[o+12>>2];v=N[o+28>>2];W=N[o+164>>2];s=N[o+36>>2];w=N[o+4>>2];B=N[o+20>>2];X=N[o+168>>2];C=N[o+40>>2];I=N[o+8>>2];M=N[o+24>>2];J[r+20>>2]=0;z=j;j=Q(L*Q(Q(j*e)+Q(Q(t*m)+Q(k*v))));L=s;s=Q(W*Q(Q(s*e)+Q(Q(w*m)+Q(B*k))));m=Q(X*Q(Q(C*e)+Q(Q(I*m)+Q(k*M))));e=Q(Q(z*j)+Q(Q(L*s)+Q(C*m)));N[r+16>>2]=e;k=Q(Q(v*j)+Q(Q(B*s)+Q(M*m)));N[r+12>>2]=k;m=Q(Q(t*j)+Q(Q(w*s)+Q(I*m)));N[r+8>>2]=m}if(+Q(Y(Q(Q(g*g)+Q(Q(h*h)+Q(f*f)))))>.001){Ae(a,r+24|0,F,G,n,y)}if(+Q(Y(Q(Q(e*e)+Q(Q(m*m)+Q(k*k)))))>.001){Ae(a,r+8|0,F,G,n,y)}aa=0}l:{if(!(K[q+120|0]?K[d+64|0]&32:0)){g=N[V>>2];e=N[q+72>>2];k=N[q+76>>2];J[q+168>>2]=0;h=Q(ha-ka);j=Q(D-A);m=Q(S-ja);f=Q(Q(la*h)+Q(Q(ma*j)+Q(m*na)));h=Q(h-Q(k*f));N[q+164>>2]=h;m=Q(m-Q(f*e));N[q+160>>2]=m;l=q+156|0;f=Q(j-Q(f*g));N[l>>2]=f;m:{if(K[d+64|0]&64){break m}j=Q(Q(h*h)+Q(Q(f*f)+Q(m*m)));if(!(j>Q(1.1920928955078125e-7))){break m}g=Q(Q(1)/Q(Y(j)));e=Q(f*g);N[l>>2]=e;f=Q(m*g);N[q+160>>2]=f;g=Q(h*g);N[q+164>>2]=g;if(H[p+180|0]&1){m=N[p+44>>2];j=N[p+12>>2];t=N[p+28>>2];h=Q(Q(Q(m*g)+Q(Q(j*e)+Q(f*t)))*N[p+172>>2]);v=N[p+36>>2];s=N[p+4>>2];w=N[p+20>>2];k=Q(Q(Q(v*g)+Q(Q(s*e)+Q(f*w)))*N[p+164>>2]);A=N[p+40>>2];D=N[p+8>>2];z=f;f=N[p+24>>2];g=Q(Q(Q(A*g)+Q(Q(D*e)+Q(z*f)))*N[p+168>>2]);e=Q(Q(j*h)+Q(Q(s*k)+Q(D*g)));N[l>>2]=e;f=Q(Q(t*h)+Q(Q(w*k)+Q(f*g)));N[q+160>>2]=f;g=Q(Q(m*h)+Q(Q(v*k)+Q(A*g)));N[q+164>>2]=g;J[q+168>>2]=0}if(H[o+180|0]&1){m=N[o+44>>2];j=N[o+12>>2];t=N[o+28>>2];h=Q(Q(Q(m*g)+Q(Q(j*e)+Q(f*t)))*N[o+172>>2]);v=N[o+36>>2];s=N[o+4>>2];w=N[o+20>>2];k=Q(Q(Q(v*g)+Q(Q(s*e)+Q(w*f)))*N[o+164>>2]);A=N[o+40>>2];L=Q(A*g);g=N[o+8>>2];z=f;f=N[o+24>>2];e=Q(Q(L+Q(Q(g*e)+Q(z*f)))*N[o+168>>2]);N[l>>2]=Q(j*h)+Q(Q(s*k)+Q(g*e));N[q+160>>2]=Q(t*h)+Q(Q(w*k)+Q(f*e));N[q+164>>2]=Q(m*h)+Q(Q(v*k)+Q(A*e));J[q+168>>2]=0}v=N[r+60>>2];Bc(a,l,F,G,n,y,r+80|0,r- -64|0,v,Q(0),Q(0));if(!(K[d+64|0]&16)){break l}e=N[q+160>>2];f=N[q+72>>2];g=N[V>>2];h=N[q+164>>2];k=N[l>>2];m=N[q+76>>2];J[q+184>>2]=0;j=Q(Q(k*f)-Q(g*e));t=Q(Q(e*m)-Q(f*h));f=Q(Q(h*g)-Q(m*k));g=Q(Q(1)/Q(Y(Q(Q(j*j)+Q(Q(t*t)+Q(f*f))))));e=Q(j*g);N[q+180>>2]=e;f=Q(f*g);N[q+176>>2]=f;l=q+172|0;g=Q(t*g);N[l>>2]=g;if(H[p+180|0]&1){m=N[p+44>>2];j=N[p+12>>2];t=N[p+28>>2];h=Q(Q(Q(m*e)+Q(Q(j*g)+Q(f*t)))*N[p+172>>2]);s=N[p+36>>2];w=N[p+4>>2];A=N[p+20>>2];k=Q(Q(Q(s*e)+Q(Q(w*g)+Q(f*A)))*N[p+164>>2]);D=N[p+40>>2];S=N[p+8>>2];z=f;f=N[p+24>>2];e=Q(Q(Q(D*e)+Q(Q(S*g)+Q(z*f)))*N[p+168>>2]);g=Q(Q(j*h)+Q(Q(w*k)+Q(S*e)));N[l>>2]=g;f=Q(Q(t*h)+Q(Q(A*k)+Q(f*e)));N[q+176>>2]=f;e=Q(Q(m*h)+Q(Q(s*k)+Q(D*e)));N[q+180>>2]=e;J[q+184>>2]=0}if(H[o+180|0]&1){m=N[o+44>>2];j=N[o+12>>2];t=N[o+28>>2];h=Q(Q(Q(m*e)+Q(Q(j*g)+Q(f*t)))*N[o+172>>2]);s=N[o+36>>2];w=N[o+4>>2];A=N[o+20>>2];k=Q(Q(Q(s*e)+Q(Q(w*g)+Q(A*f)))*N[o+164>>2]);D=N[o+40>>2];S=N[o+8>>2];z=f;f=N[o+24>>2];e=Q(Q(Q(D*e)+Q(Q(S*g)+Q(z*f)))*N[o+168>>2]);N[l>>2]=Q(j*h)+Q(Q(w*k)+Q(S*e));N[q+176>>2]=Q(t*h)+Q(Q(A*k)+Q(f*e));N[q+180>>2]=Q(m*h)+Q(Q(s*k)+Q(D*e));J[q+184>>2]=0}Bc(a,l,F,G,n,y,r+80|0,r- -64|0,v,Q(0),Q(0));break l}u=q+172|0;n:{if(Q(R(k))>Q(.7071067690849304)){J[l>>2]=0;m=Q(Q(e*e)+Q(k*k));f=Q(Q(1)/Q(Y(m)));h=Q(f*Q(-k));N[q+160>>2]=h;e=Q(e*f);N[q+164>>2]=e;k=Q(m*f);m=Q(g*h);g=Q(e*Q(-g));f=Q(0);break n}j=Q(Q(g*g)+Q(e*e));m=Q(Q(1)/Q(Y(j)));f=Q(m*Q(-e));N[l>>2]=f;h=Q(g*m);N[q+160>>2]=h;J[q+164>>2]=0;m=Q(j*m);g=Q(k*f);k=Q(h*Q(-k));e=Q(0)}N[u>>2]=k;N[q+180>>2]=m;N[q+176>>2]=g;if(H[p+180|0]&1){m=N[p+44>>2];j=N[p+12>>2];t=N[p+28>>2];g=Q(Q(Q(m*e)+Q(Q(j*f)+Q(h*t)))*N[p+172>>2]);v=N[p+36>>2];s=N[p+4>>2];w=N[p+20>>2];k=Q(Q(Q(v*e)+Q(Q(s*f)+Q(w*h)))*N[p+164>>2]);A=N[p+40>>2];D=N[p+8>>2];z=h;h=N[p+24>>2];e=Q(Q(Q(A*e)+Q(Q(D*f)+Q(z*h)))*N[p+168>>2]);f=Q(Q(j*g)+Q(Q(s*k)+Q(D*e)));N[l>>2]=f;h=Q(Q(t*g)+Q(Q(w*k)+Q(h*e)));N[q+160>>2]=h;e=Q(Q(m*g)+Q(Q(v*k)+Q(A*e)));N[q+164>>2]=e;J[q+168>>2]=0}if(H[o+180|0]&1){m=N[o+44>>2];j=N[o+12>>2];t=N[o+28>>2];g=Q(Q(Q(m*e)+Q(Q(j*f)+Q(h*t)))*N[o+172>>2]);v=N[o+36>>2];s=N[o+4>>2];w=N[o+20>>2];k=Q(Q(Q(v*e)+Q(Q(s*f)+Q(w*h)))*N[o+164>>2]);A=N[o+40>>2];D=N[o+8>>2];z=Q(D*f);f=N[o+24>>2];e=Q(Q(Q(A*e)+Q(z+Q(h*f)))*N[o+168>>2]);N[l>>2]=Q(j*g)+Q(Q(s*k)+Q(D*e));N[q+160>>2]=Q(t*g)+Q(Q(w*k)+Q(f*e));N[q+164>>2]=Q(m*g)+Q(Q(v*k)+Q(A*e));J[q+168>>2]=0}m=N[r+60>>2];Bc(a,l,F,G,n,y,r+80|0,r- -64|0,m,Q(0),Q(0));l=J[d+64>>2];if(l&16){if(H[p+180|0]&1){j=N[p+44>>2];g=N[q+180>>2];t=N[p+12>>2];h=N[u>>2];k=N[q+176>>2];v=N[p+28>>2];e=Q(Q(Q(j*g)+Q(Q(t*h)+Q(k*v)))*N[p+172>>2]);s=N[p+36>>2];w=N[p+4>>2];A=N[p+20>>2];f=Q(Q(Q(s*g)+Q(Q(w*h)+Q(A*k)))*N[p+164>>2]);D=N[p+40>>2];S=N[p+8>>2];z=Q(S*h);h=N[p+24>>2];g=Q(Q(Q(D*g)+Q(z+Q(k*h)))*N[p+168>>2]);N[u>>2]=Q(t*e)+Q(Q(w*f)+Q(S*g));N[q+176>>2]=Q(v*e)+Q(Q(A*f)+Q(h*g));N[q+180>>2]=Q(j*e)+Q(Q(s*f)+Q(D*g));J[q+184>>2]=0}if(H[o+180|0]&1){j=N[o+44>>2];g=N[q+180>>2];t=N[o+12>>2];h=N[u>>2];k=N[q+176>>2];v=N[o+28>>2];e=Q(Q(Q(j*g)+Q(Q(t*h)+Q(k*v)))*N[o+172>>2]);s=N[o+36>>2];w=N[o+4>>2];A=N[o+20>>2];f=Q(Q(Q(s*g)+Q(Q(w*h)+Q(A*k)))*N[o+164>>2]);D=N[o+40>>2];S=N[o+8>>2];z=Q(S*h);h=N[o+24>>2];g=Q(Q(Q(D*g)+Q(z+Q(k*h)))*N[o+168>>2]);N[u>>2]=Q(t*e)+Q(Q(w*f)+Q(S*g));N[q+176>>2]=Q(v*e)+Q(Q(A*f)+Q(h*g));N[q+180>>2]=Q(j*e)+Q(Q(s*f)+Q(D*g));J[q+184>>2]=0}Bc(a,u,F,G,n,y,r+80|0,r- -64|0,m,Q(0),Q(0));l=J[d+64>>2]}if((l&80)!=80){break l}H[q+120|0]=1;break l}e=N[r+60>>2];Bc(a,q+156|0,F,G,n,y,r+80|0,r- -64|0,e,N[q+136>>2],N[q+144>>2]);if(!(K[d+64|0]&16)){break l}Bc(a,q+172|0,F,G,n,y,r+80|0,r- -64|0,e,N[q+140>>2],N[q+148>>2])}u=J[a+76>>2];V=J[i+140>>2];O=J[d+64>>2];o:{if(O&4){x=J[a+16>>2];i=J[(x+P(G,244)|0)+240>>2];l=J[(x+P(F,244)|0)+240>>2];q=u+P(V,152)|0;e=Q(N[y+124>>2]*N[d+60>>2]);N[q+100>>2]=e;if(l){g=N[l+356>>2];h=N[q+24>>2];k=N[l+352>>2];m=N[q+20>>2];n=x+P(F,244)|0;f=N[l+344>>2];N[n+64>>2]=Q(Q(e*Q(Q(f*N[q+16>>2])*N[l+348>>2]))*N[n+112>>2])+N[n+64>>2];N[n+68>>2]=Q(Q(e*Q(k*Q(f*m)))*N[n+116>>2])+N[n+68>>2];N[n+72>>2]=Q(Q(e*Q(g*Q(f*h)))*N[n+120>>2])+N[n+72>>2];f=N[q+72>>2];g=N[q+68>>2];N[n+80>>2]=Q(Q(e*N[n+96>>2])*N[q+64>>2])+N[n+80>>2];h=N[n+104>>2];N[n+84>>2]=Q(g*Q(e*N[n+100>>2]))+N[n+84>>2];N[n+88>>2]=Q(f*Q(e*h))+N[n+88>>2]}if(i){E=u+P(V,152)|0;g=N[E+88>>2];h=N[E+84>>2];k=N[E+80>>2];m=N[i+356>>2];j=N[E+56>>2];t=N[i+352>>2];v=N[E+52>>2];n=x+P(G,244)|0;f=N[i+344>>2];e=N[q+100>>2];N[n+64>>2]=N[n+64>>2]+Q(Q(Q(Q(f*N[E+48>>2])*N[i+348>>2])*e)*N[n+112>>2]);N[n+68>>2]=N[n+68>>2]+Q(Q(e*Q(t*Q(f*v)))*N[n+116>>2]);N[n+72>>2]=N[n+72>>2]+Q(Q(e*Q(m*Q(f*j)))*N[n+120>>2]);N[n+80>>2]=N[n+80>>2]+Q(k*Q(e*N[n+96>>2]));f=N[n+104>>2];N[n+84>>2]=N[n+84>>2]+Q(h*Q(e*N[n+100>>2]));N[n+88>>2]=N[n+88>>2]+Q(g*Q(f*e))}if(!(O&16)){break o}E=V+1|0;q=u+P(E,152)|0;e=Q(N[y+128>>2]*N[d+60>>2]);N[q+100>>2]=e;if(l){g=N[q+24>>2];h=N[q+20>>2];n=x+P(F,244)|0;f=N[l+344>>2];N[n+64>>2]=Q(Q(e*Q(f*N[q+16>>2]))*N[n+112>>2])+N[n+64>>2];N[n+68>>2]=Q(Q(e*Q(f*h))*N[n+116>>2])+N[n+68>>2];N[n+72>>2]=Q(Q(e*Q(f*g))*N[n+120>>2])+N[n+72>>2];f=N[q+72>>2];g=N[q+68>>2];N[n+80>>2]=Q(Q(e*N[n+96>>2])*N[q+64>>2])+N[n+80>>2];h=N[n+104>>2];N[n+84>>2]=Q(g*Q(e*N[n+100>>2]))+N[n+84>>2];N[n+88>>2]=Q(f*Q(e*h))+N[n+88>>2]}if(!i){break o}l=u+P(E,152)|0;g=N[l+88>>2];h=N[l+84>>2];k=N[l+56>>2];m=N[l+52>>2];j=N[l+48>>2];f=N[i+344>>2];n=x+P(G,244)|0;e=N[q+100>>2];N[n+80>>2]=N[n+80>>2]+Q(N[l+80>>2]*Q(N[n+96>>2]*e));N[n+64>>2]=N[n+64>>2]+Q(Q(e*Q(f*j))*N[n+112>>2]);N[n+68>>2]=N[n+68>>2]+Q(Q(e*Q(f*m))*N[n+116>>2]);N[n+72>>2]=N[n+72>>2]+Q(Q(e*Q(f*k))*N[n+120>>2]);f=N[n+104>>2];N[n+84>>2]=N[n+84>>2]+Q(h*Q(e*N[n+100>>2]));N[n+88>>2]=N[n+88>>2]+Q(g*Q(f*e));break o}n=u+P(V,152)|0;J[n+100>>2]=0;if(!(O&16)){break o}J[n+252>>2]=0}}_=_+1|0;if((_|0) >2]){continue}break}}ga=r+96|0;$=$+1|0;if(($|0)!=(c|0)){continue}break}}}function rz(a,b,c){a=a|0;b=b|0;c=c|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=Q(0),y=Q(0);l=ga-96|0;ga=l;kh(a,b,c);H[l+52|0]=1;J[l+48>>2]=0;H[l+72|0]=1;J[l+40>>2]=0;J[l+44>>2]=0;J[l+68>>2]=0;H[l+92|0]=1;J[l+60>>2]=0;J[l+64>>2]=0;J[l+88>>2]=0;J[l+80>>2]=0;J[l+84>>2]=0;J[l+28>>2]=0;H[l+32|0]=1;J[l+20>>2]=0;J[l+24>>2]=0;d=J[a+872>>2];J[b+292>>2]=d;a:{if(!d){J[b+260>>2]=0;break a}j=a+868|0;d=ia[J[J[c>>2]+28>>2]](c,j)|0;J[b+260>>2]=d;if(!d){break a}i=J[b+292>>2];h=ia[J[J[c>>2]+16>>2]](c,4,i)|0;if((i|0)>0){f=J[h+8>>2];while(1){d=J[J[a+880>>2]+(g<<2)>>2];if(d){e=ia[J[J[c>>2]+28>>2]](c,d)|0}else{e=0}J[f>>2]=e;if(!(ia[J[J[c>>2]+24>>2]](c,d)|0)){k=ia[J[J[c>>2]+16>>2]](c,16,1)|0;e=J[k+8>>2];J[e+12>>2]=J[d+16>>2];N[e+4>>2]=N[d+8>>2];N[e>>2]=N[d+4>>2];N[e+8>>2]=N[d+12>>2];ia[J[J[c>>2]+20>>2]](c,k,3706,1414349395,d)}f=f+4|0;g=g+1|0;if((i|0)!=(g|0)){continue}break}}ia[J[J[c>>2]+20>>2]](c,h,3706,1497453121,j)}d=J[a+712>>2];J[b+296>>2]=d;b:{if(!d){J[b+264>>2]=0;break b}u=a+708|0;d=ia[J[J[c>>2]+28>>2]](c,u)|0;J[b+264>>2]=d;if(!d){break b}t=J[b+296>>2];w=ia[J[J[c>>2]+16>>2]](c,100,t)|0;d=J[w+8>>2];g=0;J[l+12>>2]=0;if((t|0)>0){while(1){h=J[a+720>>2];f=h+P(g,104)|0;N[d+52>>2]=N[f+56>>2];N[d+56>>2]=N[f+60>>2];N[d+60>>2]=N[f- -64>>2];N[d- -64>>2]=N[f+68>>2];N[d+88>>2]=N[f+92>>2];e=0;J[d+92>>2]=0-(H[f+100|0]&1);N[d+84>>2]=N[f+88>>2];f=J[f+4>>2];if(f){e=ia[J[J[c>>2]+28>>2]](c,f)|0;g=J[l+12>>2];h=J[a+720>>2]}J[d>>2]=e;e=P(g,104)+h|0;N[d+68>>2]=N[e+72>>2];N[d+72>>2]=N[e+76>>2];N[d+76>>2]=N[e+80>>2];N[d+80>>2]=N[e+84>>2];N[d+4>>2]=N[e+8>>2];N[d+8>>2]=N[e+12>>2];N[d+12>>2]=N[e+16>>2];N[d+16>>2]=N[e+20>>2];N[d+20>>2]=N[e+24>>2];N[d+24>>2]=N[e+28>>2];N[d+28>>2]=N[e+32>>2];N[d+32>>2]=N[e+36>>2];N[d+36>>2]=N[e+40>>2];N[d+40>>2]=N[e+44>>2];N[d+44>>2]=N[e+48>>2];N[d+48>>2]=N[e+52>>2];J[l>>2]=e;g=0;o=0;c:{d:{e:{f:{g:{h:{j=l+16|0;i=J[j+48>>2];e=J[l>>2];f=(e<<15^-1)+e|0;f=P(f>>10^f,9);f=f>>6^f;f=(f<<11^-1)+f|0;s=i-1&(f>>16^f);i:{if(s>>>0>=M[j+4>>2]){break i}h=J[J[j+12>>2]+(s<<2)>>2];if((h|0)==-1){break i}f=J[j+32>>2];k=J[j+72>>2];while(1){if((e|0)==J[k+(h<<3)>>2]){break h}h=J[f+(h<<2)>>2];if((h|0)!=-1){continue}break}}m=J[j+44>>2];e=m;if((i|0)!=(e|0)){break d}e=i;n=e?e<<1:1;if((e|0)>=(n|0)){break d}j:{if(!n){k=0;e=i;break j}J[8369]=J[8369]+1;k=ia[J[6782]](n<<2,16)|0;e=J[j+44>>2]}f=J[j+52>>2];if((e|0)<=0){break g}h=0;if(e-1>>>0>=3){p=e&-4;while(1){q=h<<2;J[q+k>>2]=J[f+q>>2];r=q|4;J[r+k>>2]=J[f+r>>2];r=q|8;J[r+k>>2]=J[f+r>>2];q=q|12;J[q+k>>2]=J[f+q>>2];h=h+4|0;g=g+4|0;if((p|0)!=(g|0)){continue}break}}e=e&3;if(!e){break f}while(1){g=h<<2;J[g+k>>2]=J[f+g>>2];h=h+1|0;o=o+1|0;if((e|0)!=(o|0)){continue}break}break f}J[J[j+52>>2]+(h<<2)>>2]=J[l+12>>2];break c}if(!f){break e}}if(f?K[j+56|0]:0){J[8370]=J[8370]+1;ia[J[6783]](f)}e=J[j+44>>2]}J[j+52>>2]=k;J[j+48>>2]=n;H[j+56|0]=1}J[J[j+52>>2]+(e<<2)>>2]=J[l+12>>2];J[j+44>>2]=J[j+44>>2]+1;f=J[j- -64>>2];k:{if((f|0)!=J[j+68>>2]){break k}n=f?f<<1:1;if((n|0)<=(f|0)){break k}l:{if(!n){k=0;break l}J[8369]=J[8369]+1;k=ia[J[6782]](n<<3,16)|0;f=J[j+64>>2]}m:{if((f|0)<=0){break m}e=0;h=0;if(f-1>>>0>=3){q=f&-4;o=0;while(1){g=h<<3;p=g+k|0;r=g+J[j+72>>2]|0;v=J[r+4>>2];J[p>>2]=J[r>>2];J[p+4>>2]=v;p=g|8;r=p+k|0;p=p+J[j+72>>2]|0;v=J[p+4>>2];J[r>>2]=J[p>>2];J[r+4>>2]=v;p=g|16;r=p+k|0;p=p+J[j+72>>2]|0;v=J[p+4>>2];J[r>>2]=J[p>>2];J[r+4>>2]=v;g=g|24;p=g+k|0;g=g+J[j+72>>2]|0;r=J[g+4>>2];J[p>>2]=J[g>>2];J[p+4>>2]=r;h=h+4|0;o=o+4|0;if((q|0)!=(o|0)){continue}break}}f=f&3;if(!f){break m}while(1){g=h<<3;o=g+k|0;g=g+J[j+72>>2]|0;q=J[g+4>>2];J[o>>2]=J[g>>2];J[o+4>>2]=q;h=h+1|0;e=e+1|0;if((f|0)!=(e|0)){continue}break}}e=J[j+72>>2];if(!(e?!e|!K[j+76|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](e)}J[j+72>>2]=k;H[j+76|0]=1;J[j+68>>2]=n;f=J[j+64>>2]}e=J[j+72>>2]+(f<<3)|0;f=J[l+4>>2];J[e>>2]=J[l>>2];J[e+4>>2]=f;J[j+64>>2]=J[j+64>>2]+1;if((i|0) >2]){Sm(j);e=J[l>>2];e=(e<<15^-1)+e|0;e=P(e>>10^e,9);e=e>>6^e;e=(e<<11^-1)+e|0;s=J[j+48>>2]-1&(e>>16^e)}e=J[j+12>>2]+(s<<2)|0;J[J[j+32>>2]+(m<<2)>>2]=J[e>>2];J[e>>2]=m}g=J[l+12>>2]+1|0;J[l+12>>2]=g;d=d+100|0;if((g|0)<(t|0)){continue}break}}ia[J[J[c>>2]+20>>2]](c,w,4018,1145979475,u)}d=J[a+732>>2];J[b+300>>2]=d;n:{if(!d){J[b+268>>2]=0;break n}d=ia[J[J[c>>2]+28>>2]](c,J[a+740>>2])|0;J[b+268>>2]=d;if(!d){break n}f=0;e=J[b+300>>2];i=ia[J[J[c>>2]+16>>2]](c,20,e)|0;o:{if((e|0)<=0){h=J[a+740>>2];break o}h=J[a+740>>2];d=J[i+8>>2];while(1){g=0;j=P(f,52);k=j+h|0;J[d+16>>2]=0-(H[k+20|0]&1);k=J[k+4>>2];if(k){g=ia[J[J[c>>2]+28>>2]](c,k)|0;h=J[a+740>>2]}J[d>>2]=g;g=h+j|0;j=J[g+8>>2];if(j){m=(j-J[a+720>>2]|0)/104|0}else{m=-1}J[d+4>>2]=m;j=J[g+12>>2];if(j){m=(j-J[a+720>>2]|0)/104|0}else{m=-1}J[d+8>>2]=m;N[d+12>>2]=N[g+16>>2];d=d+20|0;f=f+1|0;if((e|0)!=(f|0)){continue}break}}ia[J[J[c>>2]+20>>2]](c,i,3727,1497453121,h)}d=J[a+752>>2];J[b+304>>2]=d;p:{if(!d){J[b+272>>2]=0;break p}d=ia[J[J[c>>2]+28>>2]](c,J[a+760>>2])|0;J[b+272>>2]=d;if(!d){break p}g=0;j=J[b+304>>2];k=ia[J[J[c>>2]+16>>2]](c,36,j)|0;q:{if((j|0)<=0){e=J[a+760>>2];break q}e=J[a+760>>2];d=J[k+8>>2];while(1){f=P(g,44);i=J[(f+e|0)+4>>2];r:{if(!i){h=0;break r}h=ia[J[J[c>>2]+28>>2]](c,i)|0;e=J[a+760>>2]}J[d+16>>2]=h;f=e+f|0;N[d>>2]=N[f+20>>2];N[d+4>>2]=N[f+24>>2];N[d+8>>2]=N[f+28>>2];N[d+12>>2]=N[f+32>>2];i=J[a+720>>2];h=J[f+8>>2];if(h){m=(h-i|0)/104|0}else{m=-1}J[d+20>>2]=m;h=J[f+12>>2];if(h){m=(h-i|0)/104|0}else{m=-1}J[d+24>>2]=m;h=J[f+16>>2];if(h){i=(h-i|0)/104|0}else{i=-1}J[d+28>>2]=i;N[d+32>>2]=N[f+36>>2];d=d+36|0;g=g+1|0;if((j|0)!=(g|0)){continue}break}}ia[J[J[c>>2]+20>>2]](c,k,4109,1497453121,e)}d=J[a+772>>2];J[b+308>>2]=d;s:{if(!d){J[b+276>>2]=0;break s}d=ia[J[J[c>>2]+28>>2]](c,J[a+780>>2])|0;J[b+276>>2]=d;if(!d){break s}e=0;h=J[b+308>>2];j=ia[J[J[c>>2]+16>>2]](c,100,h)|0;t:{if((h|0)<=0){g=J[a+780>>2];break t}g=J[a+780>>2];d=J[j+8>>2];while(1){i=J[a+720>>2];o=P(e,104);f=o+g|0;N[d>>2]=N[f+32>>2];N[d+4>>2]=N[f+36>>2];N[d+8>>2]=N[f+40>>2];N[d+12>>2]=N[f+44>>2];k=J[g+8>>2];if(k){m=(k-i|0)/104|0}else{m=-1}J[d+68>>2]=m;N[d+16>>2]=N[f+48>>2];N[d+20>>2]=N[f+52>>2];N[d+24>>2]=N[f+56>>2];N[d+28>>2]=N[f+60>>2];k=J[g+116>>2];if(k){m=(k-i|0)/104|0}else{m=-1}J[d+72>>2]=m;N[d+32>>2]=N[f- -64>>2];N[d+36>>2]=N[f+68>>2];N[d+40>>2]=N[f+72>>2];N[d+44>>2]=N[f+76>>2];k=J[g+224>>2];if(k){m=(k-i|0)/104|0}else{m=-1}J[d+76>>2]=m;N[d+48>>2]=N[f+80>>2];N[d+52>>2]=N[f+84>>2];N[d+56>>2]=N[f+88>>2];N[d+60>>2]=N[f+92>>2];k=J[g+332>>2];if(k){i=(k-i|0)/104|0}else{i=-1}J[d+80>>2]=i;N[d+88>>2]=N[f+96>>2];N[d+92>>2]=N[f+100>>2];f=J[f+4>>2];u:{if(!f){f=0;break u}f=ia[J[J[c>>2]+28>>2]](c,f)|0;g=J[a+780>>2]}J[d+64>>2]=f;N[d+84>>2]=N[(g+o|0)+24>>2];d=d+100|0;e=e+1|0;if((h|0)!=(e|0)){continue}break}}ia[J[J[c>>2]+20>>2]](c,j,4151,1497453121,g)}d=J[a+792>>2];J[b+312>>2]=d;v:{if(!d){J[b+280>>2]=0;break v}d=ia[J[J[c>>2]+28>>2]](c,J[a+800>>2])|0;J[b+280>>2]=d;if(!d){break v}f=J[b+312>>2];i=ia[J[J[c>>2]+16>>2]](c,92,f)|0;if((f|0)>0){d=J[i+8>>2];g=0;while(1){e=J[a+800>>2]+P(g,96)|0;N[d>>2]=N[e+28>>2];N[d+4>>2]=N[e+32>>2];N[d+8>>2]=N[e+36>>2];N[d+12>>2]=N[e+40>>2];N[d+16>>2]=N[e+44>>2];N[d+20>>2]=N[e+48>>2];N[d+24>>2]=N[e+52>>2];N[d+28>>2]=N[e+56>>2];N[d+32>>2]=N[e+60>>2];N[d+36>>2]=N[e- -64>>2];N[d+40>>2]=N[e+68>>2];N[d+44>>2]=N[e+72>>2];N[d+48>>2]=N[e+76>>2];N[d+52>>2]=N[e+80>>2];N[d+56>>2]=N[e+84>>2];N[d+60>>2]=N[e+88>>2];N[d+88>>2]=N[e+92>>2];N[d+64>>2]=N[e+4>>2];N[d+68>>2]=N[e+8>>2];N[d+72>>2]=N[e+12>>2];N[d+76>>2]=N[e+16>>2];h=J[e>>2];if(h){m=(h-J[a+720>>2]|0)/104|0}else{m=-1}J[d+84>>2]=m;e=J[e+20>>2];if(e){e=ia[J[J[c>>2]+28>>2]](c,e)|0}else{e=0}J[d+80>>2]=e;d=d+92|0;g=g+1|0;if((f|0)!=(g|0)){continue}break}}ia[J[J[c>>2]+20>>2]](c,i,3645,1497453121,J[a+800>>2])}N[b+352>>2]=N[a+316>>2];N[b+328>>2]=N[a+292>>2];N[b+344>>2]=N[a+308>>2];J[b+324>>2]=J[a+288>>2];N[b+340>>2]=N[a+304>>2];N[b+336>>2]=N[a+300>>2];J[b+412>>2]=J[a+376>>2];J[b+416>>2]=J[a+380>>2];J[b+420>>2]=J[a+384>>2];J[b+408>>2]=J[a+372>>2];x=N[a+364>>2];N[b+332>>2]=N[a+296>>2];N[b+356>>2]=N[a+320>>2];J[b+424>>2]=J[a+388>>2];N[b+348>>2]=N[a+312>>2];N[b+360>>2]=N[a+324>>2];N[b+364>>2]=N[a+328>>2];N[b+368>>2]=N[a+332>>2];N[b+372>>2]=N[a+336>>2];y=N[a+368>>2];N[b+400>>2]=x;N[b+404>>2]=y;N[b+376>>2]=N[a+340>>2];N[b+380>>2]=N[a+344>>2];N[b+384>>2]=N[a+348>>2];N[b+388>>2]=N[a+352>>2];N[b+392>>2]=N[a+356>>2];N[b+396>>2]=N[a+360>>2];o=a+472|0;J[b+256>>2]=ia[J[J[c>>2]+28>>2]](c,o);s=ia[J[J[c>>2]+16>>2]](c,192,1)|0;d=J[s+8>>2];N[d+96>>2]=N[a+632>>2];N[d+100>>2]=N[a+636>>2];N[d+104>>2]=N[a+640>>2];N[d+108>>2]=N[a+644>>2];N[d+112>>2]=N[a+648>>2];N[d+116>>2]=N[a+652>>2];N[d+120>>2]=N[a+656>>2];N[d+124>>2]=N[a+660>>2];N[d+128>>2]=N[a+664>>2];N[d+132>>2]=N[a+668>>2];N[d+136>>2]=N[a+672>>2];N[d+140>>2]=N[a+676>>2];J[d+180>>2]=K[a+473|0];J[d+176>>2]=K[a+472|0];N[d+144>>2]=N[a+520>>2];N[d+148>>2]=N[a+524>>2];N[d+152>>2]=N[a+528>>2];N[d+156>>2]=N[a+532>>2];e=J[a+484>>2];J[d+168>>2]=e;w:{if(!e){J[d+160>>2]=0;break w}J[d+160>>2]=ia[J[J[c>>2]+28>>2]](c,J[a+492>>2]);i=J[d+168>>2];if(!i){break w}h=0;j=ia[J[J[c>>2]+16>>2]](c,16,i)|0;x:{if((i|0)<=0){e=J[a+492>>2];break x}e=J[a+492>>2];f=J[j+8>>2];if((i|0)!=1){n=i&-2;k=0;while(1){q=h<<4;g=q+e|0;N[f>>2]=N[g>>2];N[f+4>>2]=N[g+4>>2];N[f+8>>2]=N[g+8>>2];N[f+12>>2]=N[g+12>>2];g=(q|16)+e|0;N[f+16>>2]=N[g>>2];N[f+20>>2]=N[g+4>>2];N[f+24>>2]=N[g+8>>2];N[f+28>>2]=N[g+12>>2];f=f+32|0;h=h+2|0;k=k+2|0;if((n|0)!=(k|0)){continue}break}}if(!(i&1)){break x}i=(h<<4)+e|0;N[f>>2]=N[i>>2];N[f+4>>2]=N[i+4>>2];N[f+8>>2]=N[i+8>>2];N[f+12>>2]=N[i+12>>2]}ia[J[J[c>>2]+20>>2]](c,j,3626,1497453121,e)}N[d+184>>2]=N[a+476>>2];N[d>>2]=N[a+536>>2];N[d+4>>2]=N[a+540>>2];N[d+8>>2]=N[a+544>>2];N[d+12>>2]=N[a+548>>2];N[d+16>>2]=N[a+552>>2];N[d+20>>2]=N[a+556>>2];N[d+24>>2]=N[a+560>>2];N[d+28>>2]=N[a+564>>2];N[d+32>>2]=N[a+568>>2];N[d+36>>2]=N[a+572>>2];N[d+40>>2]=N[a+576>>2];N[d+44>>2]=N[a+580>>2];N[d+48>>2]=N[a+584>>2];N[d+52>>2]=N[a+588>>2];N[d+56>>2]=N[a+592>>2];N[d+60>>2]=N[a+596>>2];N[d- -64>>2]=N[a+600>>2];N[d+68>>2]=N[a+604>>2];N[d+72>>2]=N[a+608>>2];N[d+76>>2]=N[a+612>>2];N[d+80>>2]=N[a+616>>2];N[d+84>>2]=N[a+620>>2];N[d+88>>2]=N[a+624>>2];N[d+92>>2]=N[a+628>>2];e=J[a+504>>2];J[d+172>>2]=e;y:{if(!e){J[d+164>>2]=0;break y}J[d+164>>2]=ia[J[J[c>>2]+28>>2]](c,J[a+512>>2]);i=J[d+172>>2];if(!i){break y}f=0;j=ia[J[J[c>>2]+16>>2]](c,4,i)|0;z:{if((i|0)<=0){g=J[a+512>>2];break z}g=J[a+512>>2];d=J[j+8>>2];if(i-1>>>0>=3){k=i&-4;e=0;while(1){h=f<<2;N[d>>2]=N[h+g>>2];N[d+4>>2]=N[(h|4)+g>>2];N[d+8>>2]=N[(h|8)+g>>2];N[d+12>>2]=N[(h|12)+g>>2];d=d+16|0;f=f+4|0;e=e+4|0;if((k|0)!=(e|0)){continue}break}}e=i&3;if(!e){break z}h=0;while(1){N[d>>2]=N[(f<<2)+g>>2];d=d+4|0;f=f+1|0;h=h+1|0;if((e|0)!=(h|0)){continue}break}}ia[J[J[c>>2]+20>>2]](c,j,2448,1497453121,g)}ia[J[J[c>>2]+20>>2]](c,s,3744,1497453121,o);d=J[a+1112>>2];J[b+316>>2]=d;A:{if(!d){J[b+284>>2]=0;break A}J[b+284>>2]=ia[J[J[c>>2]+28>>2]](c,J[J[a+1120>>2]>>2]);j=J[b+316>>2];if(!j){break A}q=ia[J[J[c>>2]+16>>2]](c,348,j)|0;if((j|0)>0){e=J[q+8>>2];s=0;while(1){i=s<<2;d=J[i+J[a+1120>>2]>>2];N[e+320>>2]=N[d+360>>2];N[e+256>>2]=N[d+332>>2];N[e+260>>2]=N[d+336>>2];N[e+264>>2]=N[d+340>>2];N[e+268>>2]=N[d+344>>2];J[e+344>>2]=J[d+380>>2];J[e+340>>2]=K[d+377|0];N[e+160>>2]=N[d+228>>2];N[e+164>>2]=N[d+232>>2];N[e+168>>2]=N[d+236>>2];N[e+172>>2]=N[d+240>>2];J[e+336>>2]=K[d+376|0];N[e+208>>2]=N[d+276>>2];N[e+212>>2]=N[d+280>>2];N[e+216>>2]=N[d+284>>2];N[e+220>>2]=N[d+288>>2];N[e+224>>2]=N[d+292>>2];N[e+228>>2]=N[d+296>>2];N[e+232>>2]=N[d+300>>2];N[e+236>>2]=N[d+304>>2];N[e>>2]=N[d+60>>2];N[e+4>>2]=N[d- -64>>2];N[e+8>>2]=N[d+68>>2];N[e+12>>2]=N[d+72>>2];N[e+16>>2]=N[d+76>>2];N[e+20>>2]=N[d+80>>2];N[e+24>>2]=N[d+84>>2];N[e+28>>2]=N[d+88>>2];N[e+32>>2]=N[d+92>>2];N[e+36>>2]=N[d+96>>2];N[e+40>>2]=N[d+100>>2];N[e+44>>2]=N[d+104>>2];N[e+48>>2]=N[d+108>>2];N[e+52>>2]=N[d+112>>2];N[e+56>>2]=N[d+116>>2];N[e+60>>2]=N[d+120>>2];N[e+296>>2]=N[d+124>>2];N[e+300>>2]=N[d+128>>2];N[e+112>>2]=N[d+180>>2];N[e+116>>2]=N[d+184>>2];N[e+120>>2]=N[d+188>>2];N[e+124>>2]=N[d+192>>2];N[e+128>>2]=N[d+196>>2];N[e+132>>2]=N[d+200>>2];N[e+136>>2]=N[d+204>>2];N[e+140>>2]=N[d+208>>2];N[e+144>>2]=N[d+212>>2];N[e+148>>2]=N[d+216>>2];N[e+152>>2]=N[d+220>>2];N[e+156>>2]=N[d+224>>2];N[e+316>>2]=N[d+356>>2];N[e+64>>2]=N[d+132>>2];N[e+68>>2]=N[d+136>>2];N[e+72>>2]=N[d+140>>2];N[e+76>>2]=N[d+144>>2];N[e+80>>2]=N[d+148>>2];N[e+84>>2]=N[d+152>>2];N[e+88>>2]=N[d+156>>2];N[e+92>>2]=N[d+160>>2];N[e+96>>2]=N[d+164>>2];N[e+100>>2]=N[d+168>>2];N[e+104>>2]=N[d+172>>2];N[e+108>>2]=N[d+176>>2];N[e+240>>2]=N[d+316>>2];N[e+244>>2]=N[d+320>>2];N[e+248>>2]=N[d+324>>2];N[e+252>>2]=N[d+328>>2];N[e+324>>2]=N[d+364>>2];N[e+328>>2]=N[d+368>>2];N[e+312>>2]=N[d+352>>2];N[e+316>>2]=N[d+356>>2];N[e+320>>2]=N[d+360>>2];N[e+332>>2]=N[d+372>>2];f=J[d+44>>2];J[e+284>>2]=f;J[e+292>>2]=J[d+4>>2];J[e+288>>2]=J[d+24>>2];J[e+304>>2]=J[d+308>>2];N[e+176>>2]=N[d+244>>2];N[e+180>>2]=N[d+248>>2];N[e+184>>2]=N[d+252>>2];N[e+188>>2]=N[d+256>>2];N[e+192>>2]=N[d+260>>2];N[e+196>>2]=N[d+264>>2];N[e+200>>2]=N[d+268>>2];N[e+204>>2]=N[d+272>>2];J[e+308>>2]=J[d+312>>2];B:{if(!f){J[e+272>>2]=0;break B}d=ia[J[J[c>>2]+28>>2]](c,J[d+52>>2])|0;J[e+272>>2]=d;if(!d){break B}f=J[e+284>>2];t=ia[J[J[c>>2]+16>>2]](c,16,f)|0;C:{if((f|0)<=0){o=J[i+J[a+1120>>2]>>2];break C}o=J[i+J[a+1120>>2]>>2];h=J[o+52>>2];d=J[t+8>>2];g=0;if((f|0)!=1){m=f&-2;k=0;while(1){u=g<<4;n=u+h|0;N[d>>2]=N[n>>2];N[d+4>>2]=N[n+4>>2];N[d+8>>2]=N[n+8>>2];N[d+12>>2]=N[n+12>>2];n=h+(u|16)|0;N[d+16>>2]=N[n>>2];N[d+20>>2]=N[n+4>>2];N[d+24>>2]=N[n+8>>2];N[d+28>>2]=N[n+12>>2];d=d+32|0;g=g+2|0;k=k+2|0;if((m|0)!=(k|0)){continue}break}}if(!(f&1)){break C}f=h+(g<<4)|0;N[d>>2]=N[f>>2];N[d+4>>2]=N[f+4>>2];N[d+8>>2]=N[f+8>>2];N[d+12>>2]=N[f+12>>2]}ia[J[J[c>>2]+20>>2]](c,t,3626,1497453121,J[o+52>>2])}D:{if(!J[e+292>>2]){J[e+280>>2]=0;break D}d=ia[J[J[c>>2]+28>>2]](c,J[J[i+J[a+1120>>2]>>2]+12>>2])|0;J[e+280>>2]=d;if(!d){break D}f=J[e+292>>2];t=ia[J[J[c>>2]+16>>2]](c,4,f)|0;E:{if((f|0)<=0){o=J[i+J[a+1120>>2]>>2];break E}m=f&3;o=J[i+J[a+1120>>2]>>2];g=J[o+12>>2];d=J[t+8>>2];k=0;F:{if(f-1>>>0<3){f=0;break F}u=f&-4;f=0;h=0;while(1){n=f<<2;N[d>>2]=N[n+g>>2];N[d+4>>2]=N[g+(n|4)>>2];N[d+8>>2]=N[g+(n|8)>>2];N[d+12>>2]=N[g+(n|12)>>2];d=d+16|0;f=f+4|0;h=h+4|0;if((u|0)!=(h|0)){continue}break}}if(!m){break E}while(1){N[d>>2]=N[g+(f<<2)>>2];d=d+4|0;f=f+1|0;k=k+1|0;if((m|0)!=(k|0)){continue}break}}ia[J[J[c>>2]+20>>2]](c,t,2448,1497453121,J[o+12>>2])}G:{if(!J[e+288>>2]){J[e+276>>2]=0;break G}d=ia[J[J[c>>2]+28>>2]](c,J[i+J[a+1120>>2]>>2]+20|0)|0;J[e+276>>2]=d;if(!d){break G}g=J[e+292>>2];o=ia[J[J[c>>2]+16>>2]](c,4,g)|0;H:{if((g|0)<=0){f=J[i+J[a+1120>>2]>>2];break H}f=J[i+J[a+1120>>2]>>2];t=J[f+32>>2];k=J[o+8>>2];h=0;m=J[l+68>>2];n=J[l+88>>2];u=J[l+28>>2];while(1){i=J[t+(h<<2)>>2];d=(i<<15^-1)+i|0;d=P(d>>10^d,9);d=d>>6^d;d=(d<<11^-1)+d|0;d=J[u+((J[l+64>>2]-1&(d>>16^d))<<2)>>2];if(J[n+(d<<3)>>2]!=(i|0)){w=J[l+48>>2];while(1){d=J[w+(d<<2)>>2];if((i|0)!=J[n+(d<<3)>>2]){continue}break}}J[k>>2]=J[m+(d<<2)>>2];k=k+4|0;h=h+1|0;if((g|0)!=(h|0)){continue}break}}ia[J[J[c>>2]+20>>2]](c,o,2444,1497453121,f+20|0)}e=e+348|0;s=s+1|0;if((j|0)!=(s|0)){continue}break}}ia[J[J[c>>2]+20>>2]](c,q,3665,1497453121,J[J[a+1120>>2]>>2])}d=J[a+852>>2];J[b+320>>2]=d;I:{if(!d){J[b+288>>2]=0;break I}d=b;b=ia[J[J[c>>2]+28>>2]](c,J[a+860>>2])|0;J[d+288>>2]=b;if(!b){break I}i=J[a+852>>2];g=ia[J[J[c>>2]+16>>2]](c,104,i)|0;if((i|0)>0){d=J[g+8>>2];h=0;while(1){e=h<<2;b=J[e+J[a+860>>2]>>2];J[d+96>>2]=ia[J[J[b>>2]+20>>2]](b);f=e+J[a+860>>2]|0;b=J[f>>2];N[d+8>>2]=N[b+28>>2];N[d+12>>2]=N[b+32>>2];N[d+16>>2]=N[b+36>>2];N[d+20>>2]=N[b+40>>2];N[d+24>>2]=N[b+44>>2];N[d+28>>2]=N[b+48>>2];N[d+32>>2]=N[b+52>>2];N[d+36>>2]=N[b+56>>2];N[d+40>>2]=N[b+60>>2];N[d+44>>2]=N[b+64>>2];N[d+48>>2]=N[b+68>>2];b=K[b+152|0];J[d+56>>2]=0;J[d+60>>2]=0;J[d>>2]=0;J[d+4>>2]=0;J[d+52>>2]=b;b=d- -64|0;J[b>>2]=0;J[b+4>>2]=0;J[d+72>>2]=0;J[d+76>>2]=0;J[d+80>>2]=0;J[d+84>>2]=0;f=J[f>>2];b=J[f+4>>2];if(b){J[d+88>>2]=1;J[d>>2]=ia[J[J[c>>2]+28>>2]](c,b);f=J[e+J[a+860>>2]>>2]}b=J[f+12>>2];if(b){J[d+88>>2]=3;J[d>>2]=ia[J[J[c>>2]+28>>2]](c,b);f=J[e+J[a+860>>2]>>2]}b=J[f+8>>2];if(b){J[d+88>>2]=2;J[d>>2]=ia[J[J[c>>2]+28>>2]](c,b);f=J[e+J[a+860>>2]>>2]}b=J[f+16>>2];if(b){J[d+92>>2]=1;J[d+4>>2]=ia[J[J[c>>2]+28>>2]](c,b);f=J[e+J[a+860>>2]>>2]}b=J[f+24>>2];if(b){J[d+92>>2]=3;J[d+4>>2]=ia[J[J[c>>2]+28>>2]](c,b);f=J[e+J[a+860>>2]>>2]}b=J[f+20>>2];if(b){J[d+92>>2]=2;J[d+4>>2]=ia[J[J[c>>2]+28>>2]](c,b)}d=d+104|0;h=h+1|0;if((i|0)!=(h|0)){continue}break}}ia[J[J[c>>2]+20>>2]](c,g,3241,1497453121,J[a+860>>2])}a=J[l+88>>2];if(!(a?!a|!K[l+92|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](a)}J[l+88>>2]=0;H[l+92|0]=1;J[l+80>>2]=0;J[l+84>>2]=0;a=J[l+68>>2];if(!(a?!a|!K[l+72|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](a)}J[l+68>>2]=0;H[l+72|0]=1;J[l+60>>2]=0;J[l+64>>2]=0;a=J[l+48>>2];if(!(a?!a|!K[l+52|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](a)}J[l+48>>2]=0;H[l+52|0]=1;J[l+40>>2]=0;J[l+44>>2]=0;a=J[l+28>>2];if(!(a?!a|!K[l+32|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](a)}ga=l+96|0;return 3422}function Kk(a){a=a|0;var b=0,c=0,d=0,e=0,f=Q(0),g=Q(0),h=0,i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=0,o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=0,x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=0,F=0,G=0,H=Q(0),I=Q(0),L=Q(0),M=0,O=0;ya(3196);Um(a);a:{if(!(ia[J[J[a>>2]+20>>2]](a)|0)){break a}c=ia[J[J[a>>2]+20>>2]](a)|0;if(!(ia[J[J[c>>2]+48>>2]](c)&6144)){break a}M=ia[J[J[a>>2]+104>>2]](a)|0;if((M|0)<=0){break a}while(1){O=M-1|0;d=ia[J[J[a>>2]+108>>2]](a,O)|0;b=ga-224|0;ga=b;c=ia[J[J[a>>2]+20>>2]](a)|0;c=ia[J[J[c>>2]+48>>2]](c)|0;e=ia[J[J[a>>2]+20>>2]](a)|0;e=ia[J[J[e>>2]+48>>2]](e)|0;y=N[d+40>>2];b:{if(y<=Q(0)){break b}h=c&2048;n=e&4096;c:{switch(J[d+4>>2]-3|0){case 0:J[b+172>>2]=0;J[b+176>>2]=0;J[b+184>>2]=0;J[b+188>>2]=0;J[b+180>>2]=1065353216;J[b+192>>2]=0;J[b+196>>2]=0;J[b+200>>2]=1065353216;J[b+204>>2]=0;J[b+164>>2]=0;J[b+168>>2]=0;J[b+160>>2]=1065353216;c=J[d+28>>2];j=N[c+52>>2];k=N[c+8>>2];l=N[c+12>>2];m=N[c+56>>2];o=N[c+28>>2];p=N[c+20>>2];t=N[c+24>>2];q=N[c+60>>2];f=N[d+308>>2];r=N[c+44>>2];g=N[d+300>>2];s=N[c+36>>2];i=N[d+304>>2];u=N[c+40>>2];v=N[c+4>>2];J[b+220>>2]=0;N[b+216>>2]=q+Q(Q(f*r)+Q(Q(g*s)+Q(i*u)));N[b+212>>2]=m+Q(Q(f*o)+Q(Q(g*p)+Q(i*t)));N[b+208>>2]=j+Q(Q(f*l)+Q(Q(g*v)+Q(i*k)));c=ia[J[J[a>>2]+20>>2]](a)|0;ia[J[J[c>>2]+56>>2]](c,b+160|0,y);c=J[d+32>>2];j=N[c+52>>2];k=N[c+8>>2];l=N[c+12>>2];m=N[c+56>>2];o=N[c+28>>2];p=N[c+20>>2];t=N[c+24>>2];q=N[c+60>>2];f=N[d+324>>2];r=N[c+44>>2];g=N[d+316>>2];s=N[c+36>>2];i=N[d+320>>2];u=N[c+40>>2];v=N[c+4>>2];J[b+220>>2]=0;N[b+216>>2]=q+Q(Q(f*r)+Q(Q(g*s)+Q(i*u)));N[b+212>>2]=m+Q(Q(f*o)+Q(Q(g*p)+Q(i*t)));N[b+208>>2]=j+Q(Q(f*l)+Q(Q(g*v)+Q(i*k)));if(!h){break b}c=ia[J[J[a>>2]+20>>2]](a)|0;ia[J[J[c>>2]+56>>2]](c,b+160|0,y);break b;case 1:c=J[d+28>>2];H=N[c+52>>2];f=N[c+8>>2];g=N[c+12>>2];t=N[d+584>>2];q=N[d+552>>2];r=N[d+568>>2];I=N[c+56>>2];L=N[c+60>>2];s=N[d+608>>2];u=N[d+600>>2];v=N[d+604>>2];i=N[c+28>>2];j=N[c+20>>2];k=N[c+24>>2];x=N[d+588>>2];z=N[d+556>>2];A=N[d+572>>2];B=N[d+592>>2];l=N[c+44>>2];C=N[d+560>>2];m=N[c+36>>2];D=N[d+576>>2];o=N[c+40>>2];p=N[c+4>>2];J[b+220>>2]=0;J[b+204>>2]=0;J[b+188>>2]=0;N[b+200>>2]=Q(B*l)+Q(Q(C*m)+Q(D*o));N[b+196>>2]=Q(x*l)+Q(Q(z*m)+Q(A*o));N[b+184>>2]=Q(B*i)+Q(Q(C*j)+Q(D*k));N[b+180>>2]=Q(x*i)+Q(Q(z*j)+Q(A*k));N[b+216>>2]=L+Q(Q(s*l)+Q(Q(u*m)+Q(o*v)));N[b+212>>2]=I+Q(Q(s*i)+Q(Q(u*j)+Q(k*v)));J[b+172>>2]=0;N[b+192>>2]=Q(t*l)+Q(Q(q*m)+Q(r*o));N[b+176>>2]=Q(t*i)+Q(Q(q*j)+Q(r*k));N[b+168>>2]=Q(B*g)+Q(Q(C*p)+Q(f*D));N[b+164>>2]=Q(x*g)+Q(Q(z*p)+Q(f*A));N[b+160>>2]=Q(t*g)+Q(Q(q*p)+Q(r*f));N[b+208>>2]=H+Q(Q(s*g)+Q(Q(u*p)+Q(f*v)));d:{if(h){c=ia[J[J[a>>2]+20>>2]](a)|0;e=b+160|0;ia[J[J[c>>2]+56>>2]](c,e,y);c=J[d+32>>2];H=N[c+52>>2];I=N[c+56>>2];L=N[c+60>>2];t=N[d+672>>2];q=N[d+664>>2];r=N[d+668>>2];f=N[c+8>>2];g=N[c+12>>2];i=N[c+28>>2];j=N[c+20>>2];k=N[c+24>>2];s=N[d+648>>2];u=N[d+616>>2];v=N[d+632>>2];x=N[d+652>>2];z=N[d+620>>2];A=N[d+636>>2];B=N[d+656>>2];l=N[c+44>>2];C=N[d+624>>2];m=N[c+36>>2];D=N[d+640>>2];o=N[c+40>>2];p=N[c+4>>2];J[b+220>>2]=0;J[b+204>>2]=0;J[b+188>>2]=0;J[b+172>>2]=0;N[b+200>>2]=Q(B*l)+Q(Q(C*m)+Q(D*o));N[b+196>>2]=Q(x*l)+Q(Q(z*m)+Q(A*o));N[b+192>>2]=Q(s*l)+Q(Q(u*m)+Q(v*o));N[b+184>>2]=Q(B*i)+Q(Q(C*j)+Q(D*k));N[b+180>>2]=Q(x*i)+Q(Q(z*j)+Q(A*k));N[b+176>>2]=Q(s*i)+Q(Q(u*j)+Q(v*k));N[b+168>>2]=Q(B*g)+Q(Q(C*p)+Q(f*D));N[b+164>>2]=Q(x*g)+Q(Q(z*p)+Q(f*A));N[b+160>>2]=Q(s*g)+Q(Q(u*p)+Q(v*f));N[b+216>>2]=L+Q(Q(t*l)+Q(Q(q*m)+Q(o*r)));N[b+212>>2]=I+Q(Q(t*i)+Q(Q(q*j)+Q(k*r)));N[b+208>>2]=H+Q(Q(t*g)+Q(Q(q*p)+Q(f*r)));c=ia[J[J[a>>2]+20>>2]](a)|0;ia[J[J[c>>2]+56>>2]](c,e,y);break d}c=J[d+32>>2];H=N[c+52>>2];I=N[c+56>>2];L=N[c+60>>2];t=N[d+672>>2];q=N[d+664>>2];r=N[d+668>>2];f=N[c+8>>2];g=N[c+12>>2];i=N[c+28>>2];j=N[c+20>>2];k=N[c+24>>2];s=N[d+648>>2];u=N[d+616>>2];v=N[d+632>>2];x=N[d+652>>2];z=N[d+620>>2];A=N[d+636>>2];B=N[d+656>>2];l=N[c+44>>2];C=N[d+624>>2];m=N[c+36>>2];D=N[d+640>>2];o=N[c+40>>2];p=N[c+4>>2];J[b+220>>2]=0;J[b+204>>2]=0;J[b+188>>2]=0;J[b+172>>2]=0;N[b+200>>2]=Q(B*l)+Q(Q(C*m)+Q(D*o));N[b+196>>2]=Q(x*l)+Q(Q(z*m)+Q(A*o));N[b+192>>2]=Q(s*l)+Q(Q(u*m)+Q(v*o));N[b+184>>2]=Q(B*i)+Q(Q(C*j)+Q(D*k));N[b+180>>2]=Q(x*i)+Q(Q(z*j)+Q(A*k));N[b+176>>2]=Q(s*i)+Q(Q(u*j)+Q(v*k));N[b+168>>2]=Q(B*g)+Q(Q(C*p)+Q(f*D));N[b+164>>2]=Q(x*g)+Q(Q(z*p)+Q(f*A));N[b+160>>2]=Q(s*g)+Q(Q(u*p)+Q(v*f));N[b+216>>2]=L+Q(Q(t*l)+Q(Q(q*m)+Q(o*r)));N[b+212>>2]=I+Q(Q(t*i)+Q(Q(q*j)+Q(k*r)));N[b+208>>2]=H+Q(Q(t*g)+Q(Q(q*p)+Q(f*r)))}c=d+688|0;f=xe(c);g=ye(c);if(!n|f==g){break b}N[b+64>>2]=N[b+168>>2];N[b+68>>2]=N[b+184>>2];J[b+76>>2]=0;N[b+72>>2]=N[b+200>>2];N[b+144>>2]=N[b+160>>2];N[b+148>>2]=N[b+176>>2];J[b+156>>2]=0;N[b+152>>2]=N[b+192>>2];c=ia[J[J[a>>2]+20>>2]](a)|0;J[b+136>>2]=0;J[b+140>>2]=0;J[b+128>>2]=0;J[b+132>>2]=0;e=f>g;ia[J[J[c>>2]+60>>2]](c,b+208|0,b- -64|0,b+144|0,y,y,e?Q(0):f,e?Q(6.2831854820251465):g,b+128|0,!e,Q(10));break b;case 2:c=J[d+28>>2];H=N[c+52>>2];f=N[c+8>>2];g=N[c+12>>2];t=N[d+332>>2];F=d+300|0;q=N[F>>2];r=N[d+316>>2];I=N[c+56>>2];L=N[c+60>>2];s=N[d+356>>2];u=N[d+348>>2];v=N[d+352>>2];i=N[c+28>>2];j=N[c+20>>2];k=N[c+24>>2];x=N[d+336>>2];z=N[d+304>>2];A=N[d+320>>2];B=N[d+340>>2];l=N[c+44>>2];C=N[d+308>>2];m=N[c+36>>2];D=N[d+324>>2];o=N[c+40>>2];p=N[c+4>>2];J[b+220>>2]=0;J[b+204>>2]=0;J[b+188>>2]=0;N[b+200>>2]=Q(B*l)+Q(Q(C*m)+Q(D*o));N[b+196>>2]=Q(x*l)+Q(Q(z*m)+Q(A*o));N[b+184>>2]=Q(B*i)+Q(Q(C*j)+Q(D*k));N[b+180>>2]=Q(x*i)+Q(Q(z*j)+Q(A*k));N[b+216>>2]=L+Q(Q(s*l)+Q(Q(u*m)+Q(o*v)));N[b+212>>2]=I+Q(Q(s*i)+Q(Q(u*j)+Q(k*v)));J[b+172>>2]=0;N[b+192>>2]=Q(t*l)+Q(Q(q*m)+Q(r*o));N[b+176>>2]=Q(t*i)+Q(Q(q*j)+Q(r*k));N[b+168>>2]=Q(B*g)+Q(Q(C*p)+Q(f*D));N[b+164>>2]=Q(x*g)+Q(Q(z*p)+Q(f*A));N[b+160>>2]=Q(t*g)+Q(Q(q*p)+Q(r*f));N[b+208>>2]=H+Q(Q(s*g)+Q(Q(u*p)+Q(f*v)));e:{if(h){c=ia[J[J[a>>2]+20>>2]](a)|0;e=b+160|0;ia[J[J[c>>2]+56>>2]](c,e,y);c=J[d+32>>2];H=N[c+52>>2];I=N[c+56>>2];L=N[c+60>>2];t=N[d+420>>2];q=N[d+412>>2];r=N[d+416>>2];f=N[c+8>>2];g=N[c+12>>2];i=N[c+28>>2];j=N[c+20>>2];k=N[c+24>>2];s=N[d+396>>2];u=N[d+364>>2];v=N[d+380>>2];x=N[d+400>>2];z=N[d+368>>2];A=N[d+384>>2];B=N[d+404>>2];l=N[c+44>>2];C=N[d+372>>2];m=N[c+36>>2];D=N[d+388>>2];o=N[c+40>>2];p=N[c+4>>2];J[b+220>>2]=0;J[b+204>>2]=0;J[b+188>>2]=0;J[b+172>>2]=0;N[b+200>>2]=Q(B*l)+Q(Q(C*m)+Q(D*o));N[b+196>>2]=Q(x*l)+Q(Q(z*m)+Q(A*o));N[b+192>>2]=Q(s*l)+Q(Q(u*m)+Q(v*o));N[b+184>>2]=Q(B*i)+Q(Q(C*j)+Q(D*k));N[b+180>>2]=Q(x*i)+Q(Q(z*j)+Q(A*k));N[b+176>>2]=Q(s*i)+Q(Q(u*j)+Q(v*k));N[b+168>>2]=Q(B*g)+Q(Q(C*p)+Q(f*D));N[b+164>>2]=Q(x*g)+Q(Q(z*p)+Q(f*A));N[b+160>>2]=Q(s*g)+Q(Q(u*p)+Q(v*f));N[b+216>>2]=L+Q(Q(t*l)+Q(Q(q*m)+Q(o*r)));N[b+212>>2]=I+Q(Q(t*i)+Q(Q(q*j)+Q(k*r)));N[b+208>>2]=H+Q(Q(t*g)+Q(Q(q*p)+Q(f*r)));c=ia[J[J[a>>2]+20>>2]](a)|0;ia[J[J[c>>2]+56>>2]](c,e,y);break e}c=J[d+32>>2];H=N[c+52>>2];I=N[c+56>>2];L=N[c+60>>2];t=N[d+420>>2];q=N[d+412>>2];r=N[d+416>>2];f=N[c+8>>2];g=N[c+12>>2];i=N[c+28>>2];j=N[c+20>>2];k=N[c+24>>2];s=N[d+396>>2];u=N[d+364>>2];v=N[d+380>>2];x=N[d+400>>2];z=N[d+368>>2];A=N[d+384>>2];B=N[d+404>>2];l=N[c+44>>2];C=N[d+372>>2];m=N[c+36>>2];D=N[d+388>>2];o=N[c+40>>2];p=N[c+4>>2];J[b+220>>2]=0;J[b+204>>2]=0;J[b+188>>2]=0;J[b+172>>2]=0;N[b+200>>2]=Q(B*l)+Q(Q(C*m)+Q(D*o));N[b+196>>2]=Q(x*l)+Q(Q(z*m)+Q(A*o));N[b+192>>2]=Q(s*l)+Q(Q(u*m)+Q(v*o));N[b+184>>2]=Q(B*i)+Q(Q(C*j)+Q(D*k));N[b+180>>2]=Q(x*i)+Q(Q(z*j)+Q(A*k));N[b+176>>2]=Q(s*i)+Q(Q(u*j)+Q(v*k));N[b+168>>2]=Q(B*g)+Q(Q(C*p)+Q(f*D));N[b+164>>2]=Q(x*g)+Q(Q(z*p)+Q(f*A));N[b+160>>2]=Q(s*g)+Q(Q(u*p)+Q(v*f));N[b+216>>2]=L+Q(Q(t*l)+Q(Q(q*m)+Q(o*r)));N[b+212>>2]=I+Q(Q(t*i)+Q(Q(q*j)+Q(k*r)));N[b+208>>2]=H+Q(Q(t*g)+Q(Q(q*p)+Q(f*r)))}if(!n){break b}gl(b+144|0,d,Q(6.0868353843688965),y);J[b+156>>2]=0;f=N[b+152>>2];g=N[b+144>>2];i=N[b+148>>2];N[b+152>>2]=Q(Q(f*N[b+200>>2])+Q(Q(g*N[b+192>>2])+Q(i*N[b+196>>2])))+N[b+216>>2];N[b+148>>2]=Q(Q(f*N[b+184>>2])+Q(Q(g*N[b+176>>2])+Q(i*N[b+180>>2])))+N[b+212>>2];N[b+144>>2]=Q(Q(f*N[b+168>>2])+Q(Q(g*N[b+160>>2])+Q(i*N[b+164>>2])))+N[b+208>>2];c=b+208|0;e=0;while(1){h=b- -64|0;gl(h,d,Q(Q(Q(e|0)*Q(6.283185005187988))*Q(.03125)),y);J[b+76>>2]=0;f=N[b+72>>2];g=N[b+64>>2];i=N[b+68>>2];N[b+72>>2]=Q(Q(f*N[b+200>>2])+Q(Q(g*N[b+192>>2])+Q(i*N[b+196>>2])))+N[b+216>>2];N[b+68>>2]=Q(Q(f*N[b+184>>2])+Q(Q(g*N[b+176>>2])+Q(i*N[b+180>>2])))+N[b+212>>2];N[b+64>>2]=Q(Q(f*N[b+168>>2])+Q(Q(g*N[b+160>>2])+Q(i*N[b+164>>2])))+N[b+208>>2];w=ia[J[J[a>>2]+20>>2]](a)|0;J[b+136>>2]=0;J[b+140>>2]=0;J[b+128>>2]=0;J[b+132>>2]=0;ia[J[J[w>>2]+8>>2]](w,b+144|0,h,b+128|0);if(!(e&3)){w=ia[J[J[a>>2]+20>>2]](a)|0;J[b+136>>2]=0;J[b+140>>2]=0;J[b+128>>2]=0;J[b+132>>2]=0;ia[J[J[w>>2]+8>>2]](w,c,b- -64|0,b+128|0)}w=J[b+76>>2];J[b+152>>2]=J[b+72>>2];J[b+156>>2]=w;w=J[b+68>>2];J[b+144>>2]=J[b+64>>2];J[b+148>>2]=w;e=e+1|0;if((e|0)!=32){continue}break};f=N[d+512>>2];g=N[d+452>>2];e=J[d+32>>2];f:{if(N[e+344>>2]>Q(0)){Td(b- -64|0,e+4|0,d+364|0);break f}Td(b- -64|0,J[d+28>>2]+4|0,F)}e=J[b+76>>2];J[b+168>>2]=J[b+72>>2];J[b+172>>2]=e;e=J[b+92>>2];J[b+184>>2]=J[b+88>>2];J[b+188>>2]=e;e=J[b+108>>2];J[b+200>>2]=J[b+104>>2];J[b+204>>2]=e;e=J[b+68>>2];J[b+160>>2]=J[b+64>>2];J[b+164>>2]=e;e=J[b+84>>2];J[b+176>>2]=J[b+80>>2];J[b+180>>2]=e;e=J[b+100>>2];J[b+192>>2]=J[b+96>>2];J[b+196>>2]=e;e=J[b+124>>2];J[c+8>>2]=J[b+120>>2];J[c+12>>2]=e;e=J[b+116>>2];J[c>>2]=J[b+112>>2];J[c+4>>2]=e;e=J[c+12>>2];J[b+72>>2]=J[c+8>>2];J[b+76>>2]=e;e=J[c+4>>2];J[b+64>>2]=J[c>>2];J[b+68>>2]=e;N[b+128>>2]=N[b+160>>2];N[b+132>>2]=N[b+176>>2];J[b+140>>2]=0;N[b+136>>2]=N[b+192>>2];N[b+48>>2]=N[b+164>>2];N[b+52>>2]=N[b+180>>2];J[b+60>>2]=0;N[b+56>>2]=N[b+196>>2];c=ia[J[J[a>>2]+20>>2]](a)|0;J[b+40>>2]=0;J[b+44>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;ia[J[J[c>>2]+60>>2]](c,b- -64|0,b+128|0,b+48|0,y,y,Q(Q(-f)-g),Q(g-f),b+32|0,1,Q(10));break b;case 3:case 6:c=d+1072|0;e=J[c+4>>2];J[b+168>>2]=J[c>>2];J[b+172>>2]=e;F=d+1064|0;c=J[F+4>>2];J[b+160>>2]=J[F>>2];J[b+164>>2]=c;c=d+1088|0;e=J[c+4>>2];J[b+184>>2]=J[c>>2];J[b+188>>2]=e;c=d+1080|0;e=J[c+4>>2];J[b+176>>2]=J[c>>2];J[b+180>>2]=e;e=d+1104|0;w=J[e+4>>2];J[b+200>>2]=J[e>>2];J[b+204>>2]=w;e=d+1096|0;w=J[e+4>>2];J[b+192>>2]=J[e>>2];J[b+196>>2]=w;w=d+1120|0;E=J[w+4>>2];J[b+216>>2]=J[w>>2];J[b+220>>2]=E;w=d+1112|0;E=J[w+4>>2];J[b+208>>2]=J[w>>2];J[b+212>>2]=E;if(h){h=ia[J[J[a>>2]+20>>2]](a)|0;E=b+160|0;ia[J[J[h>>2]+56>>2]](h,E,y);h=d+1136|0;G=J[h+4>>2];J[b+168>>2]=J[h>>2];J[b+172>>2]=G;h=d+1128|0;G=J[h+4>>2];J[b+160>>2]=J[h>>2];J[b+164>>2]=G;h=d+1152|0;G=J[h+4>>2];J[b+184>>2]=J[h>>2];J[b+188>>2]=G;h=d+1144|0;G=J[h+4>>2];J[b+176>>2]=J[h>>2];J[b+180>>2]=G;h=d+1168|0;G=J[h+4>>2];J[b+200>>2]=J[h>>2];J[b+204>>2]=G;h=d+1160|0;G=J[h+4>>2];J[b+192>>2]=J[h>>2];J[b+196>>2]=G;h=d+1184|0;G=J[h+4>>2];J[b+216>>2]=J[h>>2];J[b+220>>2]=G;h=d+1176|0;G=J[h+4>>2];J[b+208>>2]=J[h>>2];J[b+212>>2]=G;h=ia[J[J[a>>2]+20>>2]](a)|0;ia[J[J[h>>2]+56>>2]](h,E,y)}if(!n){break b}h=J[F+12>>2];J[b+168>>2]=J[F+8>>2];J[b+172>>2]=h;h=J[F+4>>2];J[b+160>>2]=J[F>>2];J[b+164>>2]=h;h=J[c+12>>2];J[b+184>>2]=J[c+8>>2];J[b+188>>2]=h;h=J[c+4>>2];J[b+176>>2]=J[c>>2];J[b+180>>2]=h;h=J[e+12>>2];J[b+200>>2]=J[e+8>>2];J[b+204>>2]=h;h=J[e+4>>2];J[b+192>>2]=J[e>>2];J[b+196>>2]=h;h=J[w+12>>2];J[b+216>>2]=J[w+8>>2];J[b+220>>2]=h;h=J[w+4>>2];J[b+208>>2]=J[w>>2];J[b+212>>2]=h;N[b+64>>2]=N[b+168>>2];N[b+68>>2]=N[b+184>>2];J[b+76>>2]=0;N[b+72>>2]=N[b+200>>2];N[b+144>>2]=N[b+160>>2];N[b+148>>2]=N[b+176>>2];J[b+156>>2]=0;N[b+152>>2]=N[b+192>>2];f=N[d+1e3>>2];g=N[d+996>>2];i=N[d+936>>2];j=N[d+932>>2];n=ia[J[J[a>>2]+20>>2]](a)|0;J[b+136>>2]=0;J[b+140>>2]=0;J[b+128>>2]=0;J[b+132>>2]=0;h=d+1176|0;ia[J[J[n>>2]+64>>2]](n,h,b- -64|0,b+144|0,Q(y*Q(.8999999761581421)),j,i,g,f,b+128|0,Q(10),1);J[b+156>>2]=0;N[b+152>>2]=N[b+196>>2];N[b+148>>2]=N[b+180>>2];N[b+144>>2]=N[b+164>>2];j=N[d+1196>>2];f=N[b+144>>2];i=N[d+1200>>2];g=Ga(i);k=N[b+148>>2];l=Ha(i);N[b+132>>2]=Q(k*l)-Q(g*f);i=Ga(j);m=N[b+152>>2];j=Ha(j);N[b+136>>2]=Q(m*j)+Q(Q(f*Q(i*l))+Q(k*Q(i*g)));N[b+128>>2]=Q(Q(f*Q(j*l))+Q(k*Q(j*g)))-Q(i*m);n=d+1136|0;E=J[n+4>>2];J[b+168>>2]=J[n>>2];J[b+172>>2]=E;n=d+1128|0;E=J[n+4>>2];J[b+160>>2]=J[n>>2];J[b+164>>2]=E;n=d+1152|0;E=J[n+4>>2];J[b+184>>2]=J[n>>2];J[b+188>>2]=E;n=d+1144|0;E=J[n+4>>2];J[b+176>>2]=J[n>>2];J[b+180>>2]=E;n=d+1168|0;E=J[n+4>>2];J[b+200>>2]=J[n>>2];J[b+204>>2]=E;n=d+1160|0;E=J[n+4>>2];J[b+192>>2]=J[n>>2];J[b+196>>2]=E;n=J[h+4>>2];J[b+208>>2]=J[h>>2];J[b+212>>2]=n;n=d+1184|0;E=J[n+4>>2];J[b+216>>2]=J[n>>2];J[b+220>>2]=E;J[b+60>>2]=0;N[b+56>>2]=-N[b+192>>2];N[b+52>>2]=-N[b+176>>2];N[b+48>>2]=-N[b+160>>2];f=N[d+868>>2];g=N[d+872>>2];g:{if(f>g){n=ia[J[J[a>>2]+20>>2]](a)|0;J[b+40>>2]=0;J[b+44>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;ia[J[J[n>>2]+60>>2]](n,h,b+48|0,b+128|0,y,y,Q(-3.1415927410125732),Q(3.1415927410125732),b+32|0,0,Q(10));break g}if(!(f >2]+20>>2]](a)|0;J[b+40>>2]=0;J[b+44>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;ia[J[J[n>>2]+60>>2]](n,h,b+48|0,b+128|0,y,y,f,g,b+32|0,1,Q(10))}h=J[F+12>>2];J[b+168>>2]=J[F+8>>2];J[b+172>>2]=h;h=J[F+4>>2];J[b+160>>2]=J[F>>2];J[b+164>>2]=h;F=J[c+12>>2];J[b+184>>2]=J[c+8>>2];J[b+188>>2]=F;F=J[c+4>>2];J[b+176>>2]=J[c>>2];J[b+180>>2]=F;c=J[e+12>>2];J[b+200>>2]=J[e+8>>2];J[b+204>>2]=c;c=J[e+4>>2];J[b+192>>2]=J[e>>2];J[b+196>>2]=c;c=J[w+12>>2];J[b+216>>2]=J[w+8>>2];J[b+220>>2]=c;c=J[w+4>>2];J[b+208>>2]=J[w>>2];J[b+212>>2]=c;c=J[d+692>>2];J[b+40>>2]=J[d+688>>2];J[b+44>>2]=c;c=J[d+684>>2];J[b+32>>2]=J[d+680>>2];J[b+36>>2]=c;c=J[d+708>>2];J[b+24>>2]=J[d+704>>2];J[b+28>>2]=c;c=J[d+700>>2];J[b+16>>2]=J[d+696>>2];J[b+20>>2]=c;c=ia[J[J[a>>2]+20>>2]](a)|0;J[b+8>>2]=0;J[b+12>>2]=0;J[b>>2]=0;J[b+4>>2]=0;ia[J[J[c>>2]+72>>2]](c,b+32|0,b+16|0,b+160|0,b);break b;case 4:break c;default:break b}}c=J[d+836>>2];J[b+168>>2]=J[d+832>>2];J[b+172>>2]=c;c=d+824|0;e=J[c+4>>2];J[b+160>>2]=J[c>>2];J[b+164>>2]=e;e=J[d+852>>2];J[b+184>>2]=J[d+848>>2];J[b+188>>2]=e;e=J[d+844>>2];J[b+176>>2]=J[d+840>>2];J[b+180>>2]=e;e=J[d+868>>2];J[b+200>>2]=J[d+864>>2];J[b+204>>2]=e;e=J[d+860>>2];J[b+192>>2]=J[d+856>>2];J[b+196>>2]=e;e=J[d+884>>2];J[b+216>>2]=J[d+880>>2];J[b+220>>2]=e;e=J[d+876>>2];J[b+208>>2]=J[d+872>>2];J[b+212>>2]=e;h:{if(h){e=ia[J[J[a>>2]+20>>2]](a)|0;w=b+160|0;ia[J[J[e>>2]+56>>2]](e,w,y);e=J[d+900>>2];J[b+168>>2]=J[d+896>>2];J[b+172>>2]=e;e=J[d+892>>2];J[b+160>>2]=J[d+888>>2];J[b+164>>2]=e;e=J[d+916>>2];J[b+184>>2]=J[d+912>>2];J[b+188>>2]=e;e=J[d+908>>2];J[b+176>>2]=J[d+904>>2];J[b+180>>2]=e;e=J[d+932>>2];J[b+200>>2]=J[d+928>>2];J[b+204>>2]=e;e=J[d+924>>2];J[b+192>>2]=J[d+920>>2];J[b+196>>2]=e;e=J[d+948>>2];J[b+216>>2]=J[d+944>>2];J[b+220>>2]=e;e=J[d+940>>2];J[b+208>>2]=J[d+936>>2];J[b+212>>2]=e;e=ia[J[J[a>>2]+20>>2]](a)|0;ia[J[J[e>>2]+56>>2]](e,w,y);break h}e=J[d+900>>2];J[b+168>>2]=J[d+896>>2];J[b+172>>2]=e;e=J[d+892>>2];J[b+160>>2]=J[d+888>>2];J[b+164>>2]=e;e=J[d+916>>2];J[b+184>>2]=J[d+912>>2];J[b+188>>2]=e;e=J[d+908>>2];J[b+176>>2]=J[d+904>>2];J[b+180>>2]=e;e=J[d+932>>2];J[b+200>>2]=J[d+928>>2];J[b+204>>2]=e;e=J[d+924>>2];J[b+192>>2]=J[d+920>>2];J[b+196>>2]=e;e=J[d+948>>2];J[b+216>>2]=J[d+944>>2];J[b+220>>2]=e;e=J[d+940>>2];J[b+208>>2]=J[d+936>>2];J[b+212>>2]=e}if(!n){break b}c=K[d+180|0]?c:d+888|0;k=N[c+48>>2];q=N[c+8>>2];f=N[c>>2];l=N[c+4>>2];m=N[c+52>>2];r=N[c+24>>2];g=N[c+16>>2];o=N[c+20>>2];p=N[c+56>>2];s=N[c+40>>2];i=N[c+32>>2];t=N[c+36>>2];j=N[d+184>>2];J[b+76>>2]=0;s=Q(s*Q(0));u=Q(t*Q(0));N[b+72>>2]=p+Q(s+Q(Q(j*i)+u));r=Q(r*Q(0));v=Q(o*Q(0));N[b+68>>2]=m+Q(r+Q(Q(j*g)+v));q=Q(q*Q(0));x=Q(l*Q(0));N[b+64>>2]=k+Q(q+Q(Q(j*f)+x));j=N[d+188>>2];J[b+156>>2]=0;N[b+152>>2]=p+Q(s+Q(Q(j*i)+u));N[b+148>>2]=m+Q(r+Q(Q(j*g)+v));N[b+144>>2]=k+Q(q+Q(Q(j*f)+x));c=ia[J[J[a>>2]+20>>2]](a)|0;J[b+136>>2]=0;J[b+140>>2]=0;J[b+128>>2]=0;J[b+132>>2]=0;e=b+128|0;ia[J[J[c>>2]+8>>2]](c,b- -64|0,b+144|0,e);J[b+140>>2]=0;N[b+136>>2]=i;N[b+132>>2]=g;N[b+128>>2]=f;J[b+60>>2]=0;N[b+56>>2]=t;N[b+52>>2]=o;N[b+48>>2]=l;f=N[d+196>>2];g=N[d+192>>2];c=ia[J[J[a>>2]+20>>2]](a)|0;J[b+40>>2]=0;J[b+44>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;ia[J[J[c>>2]+60>>2]](c,d+936|0,e,b+48|0,y,y,g,f,b+32|0,1,Q(10))}ga=b+224|0;c=M>>>0>1;M=O;if(c){continue}break}}i:{if(!(ia[J[J[a>>2]+20>>2]](a)|0)){break i}c=ia[J[J[a>>2]+20>>2]](a)|0;if(!(ia[J[J[c>>2]+48>>2]](c)&16387)){break i}if(!(ia[J[J[a>>2]+20>>2]](a)|0)){break i}c=ia[J[J[a>>2]+20>>2]](a)|0;if(!(ia[J[J[c>>2]+48>>2]](c)|0)|J[a+280>>2]<=0){break i}M=0;while(1){c=J[J[a+288>>2]+(M<<2)>>2];ia[J[J[c>>2]+12>>2]](c,J[a+72>>2]);M=M+1|0;if((M|0) >2]){continue}break}}xa()}function Lg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=Q(0),m=Q(0),n=0,o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=0,t=0,u=Q(0),v=0,w=0,x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=0,D=Q(0),E=Q(0),F=Q(0),G=Q(0),I=Q(0),L=Q(0),M=Q(0),O=0,P=0,S=Q(0),T=Q(0),U=Q(0),V=Q(0),W=Q(0),X=0,Z=0,_=0,$=Q(0),aa=Q(0),ba=Q(0),ca=Q(0),da=Q(0),ea=Q(0),fa=0,ja=0,ka=Q(0),la=Q(0),ma=Q(0),na=Q(0),oa=Q(0),pa=Q(0),qa=Q(0),ra=Q(0),ta=Q(0),ua=Q(0),va=Q(0),wa=Q(0),xa=Q(0),ya=Q(0);f=ga-960|0;ga=f;a:{if((ia[J[J[d>>2]+80>>2]](d)|0)==2){g=J[d+152>>2];h=g-1|0;J[a+28>>2]=h;if(!g){break a}while(1){Lg(a,b,c,J[J[d+160>>2]+(h<<2)>>2],e);g=J[a+28>>2];h=g-1|0;J[a+28>>2]=h;if(g){continue}break}break a}if((ia[J[J[e>>2]+80>>2]](e)|0)==2){g=J[e+152>>2];h=g-1|0;J[a+36>>2]=h;if(!g){break a}while(1){Lg(a,b,c,d,J[J[e+160>>2]+(h<<2)>>2]);g=J[a+36>>2];h=g-1|0;J[a+36>>2]=h;if(g){continue}break}break a}h=J[b+12>>2];g=J[h+12>>2];J[f+904>>2]=J[h+8>>2];J[f+908>>2]=g;g=J[h+4>>2];J[f+896>>2]=J[h>>2];J[f+900>>2]=g;g=J[h+28>>2];J[f+920>>2]=J[h+24>>2];J[f+924>>2]=g;g=J[h+20>>2];J[f+912>>2]=J[h+16>>2];J[f+916>>2]=g;g=J[h+44>>2];J[f+936>>2]=J[h+40>>2];J[f+940>>2]=g;g=J[h+36>>2];J[f+928>>2]=J[h+32>>2];J[f+932>>2]=g;g=J[h+60>>2];J[f+952>>2]=J[h+56>>2];J[f+956>>2]=g;g=J[h+52>>2];J[f+944>>2]=J[h+48>>2];J[f+948>>2]=g;h=J[c+12>>2];g=J[h+12>>2];J[f+840>>2]=J[h+8>>2];J[f+844>>2]=g;g=J[h+4>>2];J[f+832>>2]=J[h>>2];J[f+836>>2]=g;g=J[h+28>>2];J[f+856>>2]=J[h+24>>2];J[f+860>>2]=g;g=J[h+20>>2];J[f+848>>2]=J[h+16>>2];J[f+852>>2]=g;g=J[h+44>>2];J[f+872>>2]=J[h+40>>2];J[f+876>>2]=g;g=J[h+36>>2];J[f+864>>2]=J[h+32>>2];J[f+868>>2]=g;g=J[h+60>>2];J[f+888>>2]=J[h+56>>2];J[f+892>>2]=g;g=J[h+52>>2];J[f+880>>2]=J[h+48>>2];J[f+884>>2]=g;J[f+812>>2]=0;J[8369]=J[8369]+1;J[f+820>>2]=ia[J[6782]](256,16);H[f+824|0]=1;J[f+816>>2]=32;i=f+896|0;k=f+832|0;v=f+808|0;C=ga+-64|0;ga=C;b:{if(!(!J[d+68>>2]|!J[e+68>>2])){j=ga-112|0;ga=j;g=d+68|0;h=e+68|0;if(!(!J[g>>2]|!J[h>>2])){S=N[i+52>>2];D=N[i+56>>2];E=N[k+52>>2];F=N[k+56>>2];$=N[i+20>>2];aa=N[i+36>>2];G=N[k+20>>2];I=N[k+36>>2];T=N[k+24>>2];ba=N[i+24>>2];m=N[k+40>>2];ca=N[i+40>>2];U=N[i+48>>2];y=N[k+48>>2];da=N[i+32>>2];ea=N[i+16>>2];z=N[i>>2];A=N[i+4>>2];W=N[k+32>>2];V=N[k+16>>2];L=N[k>>2];M=N[k+4>>2];l=N[k+8>>2];B=N[i+8>>2];J[j+60>>2]=0;J[j+44>>2]=0;J[j+28>>2]=0;x=Q(Q(m*ca)+Q(Q(l*B)+Q(ba*T)));N[j+56>>2]=x;u=Q(Q(I*ca)+Q(Q(M*B)+Q(ba*G)));N[j+52>>2]=u;q=Q(Q(W*ca)+Q(Q(L*B)+Q(ba*V)));N[j+48>>2]=q;o=Q(Q(m*aa)+Q(Q(l*A)+Q($*T)));N[j+40>>2]=o;p=Q(Q(I*aa)+Q(Q(M*A)+Q($*G)));N[j+36>>2]=p;r=Q(Q(W*aa)+Q(Q(L*A)+Q($*V)));N[j+32>>2]=r;m=Q(Q(m*da)+Q(Q(l*z)+Q(ea*T)));N[j+24>>2]=m;l=Q(Q(I*da)+Q(Q(M*z)+Q(ea*G)));N[j+20>>2]=l;N[j+104>>2]=Q(R(x))+Q(9.999999974752427e-7);N[j+100>>2]=Q(R(u))+Q(9.999999974752427e-7);N[j+96>>2]=Q(R(q))+Q(9.999999974752427e-7);N[j+88>>2]=Q(R(o))+Q(9.999999974752427e-7);N[j+84>>2]=Q(R(p))+Q(9.999999974752427e-7);N[j+80>>2]=Q(R(r))+Q(9.999999974752427e-7);N[j+72>>2]=Q(R(m))+Q(9.999999974752427e-7);N[j+68>>2]=Q(R(l))+Q(9.999999974752427e-7);J[j+12>>2]=0;l=Q(-U);N[j+8>>2]=Q(Q(Q(B*l)-Q(ba*S))-Q(ca*D))+Q(Q(F*ca)+Q(Q(y*B)+Q(ba*E)));N[j+4>>2]=Q(Q(Q(A*l)-Q($*S))-Q(aa*D))+Q(Q(F*aa)+Q(Q(y*A)+Q($*E)));N[j>>2]=Q(Q(Q(z*l)-Q(ea*S))-Q(da*D))+Q(Q(F*da)+Q(Q(y*z)+Q(ea*E)));l=Q(Q(W*da)+Q(Q(L*z)+Q(ea*V)));N[j+16>>2]=l;N[j+64>>2]=Q(R(l))+Q(9.999999974752427e-7);Ab(g,h,v,j,0,0,1)}ga=j+112|0;break b}O=ia[J[J[d>>2]+88>>2]](d)|0;if(!O){break b}P=C+16|0;t=C+48|0;while(1){O=O-1|0;ia[J[J[d>>2]+120>>2]](d,O,i,C+32|0,t);_=ia[J[J[e>>2]+88>>2]](e)|0;if(_){while(1){ia[J[J[e>>2]+120>>2]](e,O,k,C,P);_=_-1|0;c:{if(N[C+16>>2] >2]|N[C>>2]>N[C+48>>2]|(N[C+20>>2] >2]|N[C+4>>2]>N[C+52>>2])){break c}if(N[C+24>>2] >2]|N[C+8>>2]>N[C+56>>2]){break c}n=J[v+4>>2];d:{if((n|0)!=J[v+8>>2]){break d}fa=n?n<<1:1;if((fa|0)<=(n|0)){break d}e:{if(!fa){Z=0;break e}J[8369]=J[8369]+1;Z=ia[J[6782]](fa<<3,16)|0;n=J[v+4>>2]}s=J[v+12>>2];f:{g:{if((n|0)>0){ja=0;if((n|0)!=1){j=n&-2;w=0;while(1){X=ja<<3;h=X+Z|0;g=s+X|0;J[h>>2]=J[g>>2];J[h+4>>2]=J[g+4>>2];g=X|8;h=g+Z|0;g=g+s|0;J[h>>2]=J[g>>2];J[h+4>>2]=J[g+4>>2];ja=ja+2|0;w=w+2|0;if((j|0)!=(w|0)){continue}break}}if(n&1){g=ja<<3;h=g+Z|0;g=g+s|0;J[h>>2]=J[g>>2];J[h+4>>2]=J[g+4>>2]}if(K[v+16|0]){break g}break f}if(!s|!K[v+16|0]){break f}}if(s){J[8370]=J[8370]+1;ia[J[6783]](s)}n=J[v+4>>2]}J[v+12>>2]=Z;H[v+16|0]=1;J[v+8>>2]=fa}g=J[v+12>>2]+(n<<3)|0;J[g+4>>2]=_;J[g>>2]=O;J[v+4>>2]=n+1}if(_){continue}break}}if(O){continue}break}}ga=C- -64|0;h:{if(!J[f+812>>2]){break h}i:{if((ia[J[J[d>>2]+80>>2]](d)|0)!=1){break i}if((ia[J[J[e>>2]+80>>2]](e)|0)!=1){break i}_=J[f+820>>2];ja=J[f+812>>2];i=ga-432|0;ga=i;h=J[c+12>>2];ka=N[h+56>>2];la=N[h+52>>2];ma=N[h+40>>2];na=N[h+36>>2];oa=N[h+24>>2];pa=N[h+20>>2];g=J[b+12>>2];qa=N[g+56>>2];ra=N[g+52>>2];ta=N[g+40>>2];ua=N[g+36>>2];va=N[g+24>>2];wa=N[g+20>>2];xa=N[h+48>>2];ya=N[h+32>>2];$=N[h+16>>2];aa=N[h+8>>2];ba=N[h+4>>2];ca=N[h>>2];da=N[g+48>>2];ea=N[g+32>>2];z=N[g+16>>2];A=N[g+8>>2];B=N[g+4>>2];S=N[g>>2];J[i+424>>2]=1008981770;J[i+352>>2]=1008981770;ia[J[J[d>>2]+112>>2]](d);ia[J[J[e>>2]+112>>2]](e);if(ja){fa=i+16|0;while(1){h=J[_>>2];J[a+24>>2]=h;J[a+32>>2]=J[_+4>>2];g=ia[J[J[d>>2]+84>>2]](d)|0;ia[J[J[g>>2]+20>>2]](g,h,i+360|0);h=J[a+32>>2];g=ia[J[J[e>>2]+84>>2]](e)|0;ia[J[J[g>>2]+20>>2]](g,h,i+288|0);J[i+372>>2]=0;J[i+388>>2]=0;J[i+404>>2]=0;L=N[i+384>>2];M=N[i+376>>2];U=N[i+380>>2];W=Q(ra+Q(Q(L*va)+Q(Q(M*z)+Q(wa*U))));N[i+380>>2]=W;x=N[i+368>>2];u=N[i+360>>2];q=N[i+364>>2];D=Q(ra+Q(Q(x*va)+Q(Q(u*z)+Q(wa*q))));N[i+364>>2]=D;o=N[i+400>>2];m=N[i+392>>2];l=N[i+396>>2];V=Q(ra+Q(Q(o*va)+Q(Q(m*z)+Q(wa*l))));N[i+396>>2]=V;p=Q(qa+Q(Q(L*ta)+Q(Q(M*ea)+Q(ua*U))));N[i+384>>2]=p;r=Q(da+Q(Q(o*A)+Q(Q(m*S)+Q(B*l))));N[i+392>>2]=r;E=Q(qa+Q(Q(x*ta)+Q(Q(u*ea)+Q(ua*q))));N[i+368>>2]=E;m=Q(qa+Q(Q(o*ta)+Q(Q(m*ea)+Q(ua*l))));N[i+400>>2]=m;F=Q(da+Q(Q(x*A)+Q(Q(u*S)+Q(B*q))));N[i+360>>2]=F;l=Q(da+Q(Q(L*A)+Q(Q(M*S)+Q(B*U))));N[i+376>>2]=l;u=N[i+296>>2];q=N[i+288>>2];o=N[i+292>>2];J[i+300>>2]=0;G=Q(la+Q(Q(u*oa)+Q(Q(q*$)+Q(pa*o))));N[i+292>>2]=G;I=Q(ka+Q(Q(u*ma)+Q(Q(q*ya)+Q(na*o))));N[i+296>>2]=I;T=Q(xa+Q(Q(u*aa)+Q(Q(q*ca)+Q(ba*o))));N[i+288>>2]=T;u=N[i+312>>2];q=N[i+304>>2];o=N[i+308>>2];J[i+316>>2]=0;L=Q(la+Q(Q(u*oa)+Q(Q(q*$)+Q(pa*o))));N[i+308>>2]=L;M=Q(ka+Q(Q(u*ma)+Q(Q(q*ya)+Q(na*o))));N[i+312>>2]=M;U=Q(xa+Q(Q(u*aa)+Q(Q(q*ca)+Q(ba*o))));N[i+304>>2]=U;y=N[i+328>>2];q=N[i+320>>2];o=N[i+324>>2];J[i+332>>2]=0;x=Q(la+Q(Q(y*oa)+Q(Q(q*$)+Q(pa*o))));N[i+324>>2]=x;u=Q(xa+Q(Q(y*aa)+Q(Q(q*ca)+Q(ba*o))));N[i+320>>2]=u;q=Q(ka+Q(Q(y*ma)+Q(Q(q*ya)+Q(na*o))));N[i+328>>2]=q;o=Q(p-E);p=Q(r-F);r=Q(m-E);l=Q(l-F);y=Q(Q(o*p)-Q(r*l));m=Q(V-D);V=Q(l*m);l=Q(W-D);p=Q(V-Q(p*l));m=Q(Q(l*r)-Q(m*o));l=Q(Q(1)/Q(Y(Q(Q(p*p)+Q(Q(m*m)+Q(y*y))))));r=Q(y*l);N[i+412>>2]=r;m=Q(m*l);N[i+408>>2]=m;l=Q(p*l);N[i+416>>2]=l;N[i+420>>2]=Q(E*l)+Q(Q(F*m)+Q(D*r));o=Q(M-I);p=Q(u-T);r=Q(q-I);l=Q(U-T);q=Q(Q(o*p)-Q(r*l));m=Q(x-G);u=Q(l*m);l=Q(L-G);p=Q(u-Q(p*l));m=Q(Q(l*r)-Q(m*o));l=Q(Q(1)/Q(Y(Q(Q(p*p)+Q(Q(m*m)+Q(q*q))))));r=Q(q*l);N[i+340>>2]=r;m=Q(m*l);N[i+336>>2]=m;l=Q(p*l);N[i+344>>2]=l;N[i+348>>2]=Q(I*l)+Q(Q(T*m)+Q(G*r));ja=ja-1|0;p=N[i+416>>2];r=N[i+408>>2];m=N[i+412>>2];l=N[i+420>>2];o=Q(N[i+424>>2]+N[i+352>>2]);j:{if(!(!(Q(Q(Q(Q(N[i+296>>2]*p)+Q(Q(N[i+288>>2]*r)+Q(N[i+292>>2]*m)))-l)-o)>Q(0))|!(Q(Q(Q(Q(N[i+312>>2]*p)+Q(Q(N[i+304>>2]*r)+Q(m*N[i+308>>2])))-l)-o)>Q(0)))){g=0;if(Q(Q(Q(Q(N[i+328>>2]*p)+Q(Q(N[i+320>>2]*r)+Q(m*N[i+324>>2])))-l)-o)>Q(0)){break j}}p=N[i+344>>2];r=N[i+336>>2];m=N[i+340>>2];l=N[i+348>>2];g=!(Q(Q(Q(Q(N[i+368>>2]*p)+Q(Q(N[i+360>>2]*r)+Q(N[i+364>>2]*m)))-l)-o)>Q(0))|!(Q(Q(Q(Q(N[i+384>>2]*p)+Q(Q(N[i+376>>2]*r)+Q(m*N[i+380>>2])))-l)-o)>Q(0))|!(Q(Q(Q(Q(N[i+400>>2]*p)+Q(Q(N[i+392>>2]*r)+Q(m*N[i+396>>2])))-l)-o)>Q(0))}k:{if(!g){break k}v=i+8|0;n=0;s=0;k=ga-880|0;ga=k;h=i+288|0;m=N[h+64>>2];g=i+360|0;l=N[g+64>>2];j=J[g+60>>2];J[k+296>>2]=J[g+56>>2];J[k+300>>2]=j;j=J[g+52>>2];J[k+288>>2]=J[g+48>>2];J[k+292>>2]=j;t=Al(g,h,k+560|0);j=0;l:{if(!t){break l}j=0;if((t|0)<=0){break l}x=Q(l+m);q=N[k+300>>2];o=N[k+296>>2];p=N[k+292>>2];r=Q(-1e3);m=N[k+288>>2];m:{n:{while(1){o:{j=(k+560|0)+(n<<4)|0;l=Q(x-Q(Q(Q(N[j+8>>2]*o)+Q(Q(N[j>>2]*m)+Q(N[j+4>>2]*p)))-q));p:{if(!(l>=Q(0))){break p}if(l>r){break o}if(!(Q(l+Q(1.1920928955078125e-7))>=r)){break p}J[k+(s<<2)>>2]=n;s=s+1|0}n=n+1|0;if((t|0)!=(n|0)){continue}N[k+280>>2]=r;if((s|0)<=0){break m}break n}J[k>>2]=n;s=1;r=l;n=n+1|0;if((t|0)!=(n|0)){continue}break}J[k+284>>2]=1;N[k+280>>2]=r}n=0;if((s|0)!=1){X=s&-2;O=k+304|0;Z=0;while(1){P=k+560|0;w=P+(J[k+(n<<2)>>2]<<4)|0;j=J[w+12>>2];t=O+(n<<4)|0;J[t+8>>2]=J[w+8>>2];J[t+12>>2]=j;j=J[w+4>>2];J[t>>2]=J[w>>2];J[t+4>>2]=j;j=n|1;t=O+(j<<4)|0;P=P+(J[k+(j<<2)>>2]<<4)|0;j=J[P+12>>2];J[t+8>>2]=J[P+8>>2];J[t+12>>2]=j;j=J[P+4>>2];J[t>>2]=J[P>>2];J[t+4>>2]=j;n=n+2|0;Z=Z+2|0;if((X|0)!=(Z|0)){continue}break}}if(!(s&1)){break m}P=(k+560|0)+(J[k+(n<<2)>>2]<<4)|0;j=J[P+4>>2];t=(k+280|0)+(n<<4)|0;J[t+24>>2]=J[P>>2];J[t+28>>2]=j;j=J[P+12>>2];J[t+32>>2]=J[P+8>>2];J[t+36>>2]=j}j=0;if(!s){break l}N[k+292>>2]=-N[k+292>>2];N[k+296>>2]=-N[k+296>>2];N[k+288>>2]=-N[k+288>>2];j=J[h+60>>2];J[k+16>>2]=J[h+56>>2];J[k+20>>2]=j;j=J[h+52>>2];J[k+8>>2]=J[h+48>>2];J[k+12>>2]=j;h=Al(h,g,k+560|0);j=0;if(!h){break l}j=0;if((h|0)<=0){break l}u=N[k+20>>2];q=N[k+16>>2];o=N[k+12>>2];m=Q(-1e3);w=0;p=N[k+8>>2];n=0;q:{r:{while(1){s:{g=(k+560|0)+(n<<4)|0;l=Q(x-Q(Q(Q(N[g+8>>2]*q)+Q(Q(N[g>>2]*p)+Q(N[g+4>>2]*o)))-u));t:{if(!(l>=Q(0))){break t}if(l>m){break s}if(!(Q(l+Q(1.1920928955078125e-7))>=m)){break t}J[(k+816|0)+(w<<2)>>2]=n;w=w+1|0}n=n+1|0;if((h|0)!=(n|0)){continue}J[k+4>>2]=w;N[k>>2]=m;if((w|0)<=0){break q}break r}J[k+816>>2]=n;w=1;m=l;n=n+1|0;if((h|0)!=(n|0)){continue}break}J[k+4>>2]=1;N[k>>2]=m}n=0;if((w|0)!=1){P=w&-2;X=k+24|0;Z=0;while(1){j=k+560|0;t=k+816|0;O=j+(J[t+(n<<2)>>2]<<4)|0;g=J[O+12>>2];h=X+(n<<4)|0;J[h+8>>2]=J[O+8>>2];J[h+12>>2]=g;g=J[O+4>>2];J[h>>2]=J[O>>2];J[h+4>>2]=g;g=n|1;h=X+(g<<4)|0;j=j+(J[t+(g<<2)>>2]<<4)|0;g=J[j+12>>2];J[h+8>>2]=J[j+8>>2];J[h+12>>2]=g;g=J[j+4>>2];J[h>>2]=J[j>>2];J[h+4>>2]=g;n=n+2|0;Z=Z+2|0;if((P|0)!=(Z|0)){continue}break}}if(!(w&1)){break q}j=(k+560|0)+(J[(k+816|0)+(n<<2)>>2]<<4)|0;g=J[j+4>>2];h=k+(n<<4)|0;J[h+24>>2]=J[j>>2];J[h+28>>2]=g;g=J[j+12>>2];J[h+32>>2]=J[j+8>>2];J[h+36>>2]=g}j=0;if(!w){break l}u:{if(m >2]=m;g=J[k+12>>2];J[v+8>>2]=J[k+8>>2];J[v+12>>2]=g;g=J[k+20>>2];J[v+16>>2]=J[k+16>>2];J[v+20>>2]=g;J[v+4>>2]=w;sa(v+24|0,k+24|0,w<<4);break u}N[v>>2]=r;g=J[k+292>>2];J[v+8>>2]=J[k+288>>2];J[v+12>>2]=g;g=J[k+300>>2];J[v+16>>2]=J[k+296>>2];J[v+20>>2]=g;J[v+4>>2]=s;sa(v+24|0,k+304|0,s<<4)}j=1}ga=k+880|0;if(!j){break k}t=J[i+12>>2];if(!t){break k}while(1){l=N[i+8>>2];g=J[a+16>>2];ia[J[J[g>>2]+8>>2]](g,J[a+28>>2],J[a+24>>2]);g=J[a+16>>2];ia[J[J[g>>2]+12>>2]](g,J[a+36>>2],J[a+32>>2]);t=t-1|0;h=(i+(t<<4)|0)+32|0;j=J[a+12>>2];if(!j){g=J[a+4>>2];j=ia[J[J[g>>2]+12>>2]](g,J[b+8>>2],J[c+8>>2])|0;J[a+12>>2]=j}g=J[a+16>>2];J[g+4>>2]=j;ia[J[J[g>>2]+16>>2]](g,fa,h,Q(-l));if(t){continue}break}}_=_+8|0;if(ja){continue}break}}ia[J[J[d>>2]+116>>2]](d);ia[J[J[e>>2]+116>>2]](e);ga=i+432|0;break h}ia[J[J[d>>2]+112>>2]](d);ia[J[J[e>>2]+112>>2]](e);Bb(f+512|4);J[f+572>>2]=0;J[f+576>>2]=0;J[f+520>>2]=1;J[f+580>>2]=0;J[f+584>>2]=0;J[f+588>>2]=0;J[f+592>>2]=0;J[f+596>>2]=0;J[f+600>>2]=0;J[f+604>>2]=0;J[f+608>>2]=0;J[f+612>>2]=0;J[f+616>>2]=0;J[f+516>>2]=1976;Se(f+620|0);J[f+712>>2]=4;J[f+796>>2]=17412;J[f+788>>2]=17332;J[f+780>>2]=17260;J[f+620>>2]=4488;J[f+512>>2]=d;if(ia[J[J[d>>2]+96>>2]](d)|0){g=f+788|0}else{g=J[f+512>>2];g=ia[J[J[g>>2]+100>>2]](g)|0?f+796|0:f+780|0}J[f+804>>2]=g;J[g+4>>2]=f+512;Bb(f+216|4);J[f+276>>2]=0;J[f+280>>2]=0;J[f+224>>2]=1;J[f+284>>2]=0;J[f+288>>2]=0;J[f+292>>2]=0;J[f+296>>2]=0;J[f+300>>2]=0;J[f+304>>2]=0;J[f+308>>2]=0;J[f+312>>2]=0;J[f+316>>2]=0;J[f+320>>2]=0;J[f+220>>2]=1976;Se(f+324|0);J[f+416>>2]=4;J[f+500>>2]=17412;J[f+492>>2]=17332;J[f+484>>2]=17260;J[f+324>>2]=4488;J[f+216>>2]=e;if(ia[J[J[e>>2]+96>>2]](e)|0){g=f+492|0}else{g=J[f+216>>2];g=ia[J[J[g>>2]+100>>2]](g)|0?f+500|0:f+484|0}J[f+508>>2]=g;J[g+4>>2]=f+216;P=ia[J[J[d>>2]+92>>2]](d)|0;t=ia[J[J[e>>2]+92>>2]](e)|0;w=J[f+812>>2];if(w){while(1){w=w-1|0;g=J[f+820>>2]+(w<<3)|0;h=J[g>>2];J[a+24>>2]=h;J[a+32>>2]=J[g+4>>2];g=J[f+804>>2];X=ia[J[J[g>>2]>>2]](g,h)|0;g=J[f+508>>2];O=ia[J[J[g>>2]>>2]](g,J[a+32>>2])|0;h=J[b+12>>2];g=J[h+12>>2];J[f+160>>2]=J[h+8>>2];J[f+164>>2]=g;g=J[h+4>>2];J[f+152>>2]=J[h>>2];J[f+156>>2]=g;g=J[h+28>>2];J[f+176>>2]=J[h+24>>2];J[f+180>>2]=g;g=J[h+20>>2];J[f+168>>2]=J[h+16>>2];J[f+172>>2]=g;g=J[h+44>>2];J[f+192>>2]=J[h+40>>2];J[f+196>>2]=g;g=J[h+36>>2];J[f+184>>2]=J[h+32>>2];J[f+188>>2]=g;g=J[h+60>>2];J[f+208>>2]=J[h+56>>2];J[f+212>>2]=g;g=J[h+52>>2];J[f+200>>2]=J[h+48>>2];J[f+204>>2]=g;h=J[c+12>>2];g=J[h+12>>2];J[f+96>>2]=J[h+8>>2];J[f+100>>2]=g;g=J[h+4>>2];J[f+88>>2]=J[h>>2];J[f+92>>2]=g;g=J[h+28>>2];J[f+112>>2]=J[h+24>>2];J[f+116>>2]=g;g=J[h+20>>2];J[f+104>>2]=J[h+16>>2];J[f+108>>2]=g;g=J[h+44>>2];J[f+128>>2]=J[h+40>>2];J[f+132>>2]=g;g=J[h+36>>2];J[f+120>>2]=J[h+32>>2];J[f+124>>2]=g;g=J[h+60>>2];J[f+144>>2]=J[h+56>>2];J[f+148>>2]=g;g=J[h+52>>2];J[f+136>>2]=J[h+48>>2];J[f+140>>2]=g;if(P){ia[J[J[d>>2]+132>>2]](f+24|0,d,J[a+24>>2]);r=N[f+944>>2];m=N[f+948>>2];l=N[f+952>>2];T=N[f+80>>2];y=N[f+72>>2];W=N[f+76>>2];z=N[f+904>>2];A=N[f+896>>2];B=N[f+900>>2];S=N[f+920>>2];D=N[f+912>>2];E=N[f+916>>2];V=N[f+56>>2];L=N[f+24>>2];M=N[f+40>>2];U=N[f+60>>2];x=N[f+28>>2];u=N[f+44>>2];F=N[f+936>>2];q=N[f+64>>2];G=N[f+928>>2];o=N[f+32>>2];I=N[f+932>>2];p=N[f+48>>2];J[f+212>>2]=0;J[f+196>>2]=0;J[f+180>>2]=0;J[f+164>>2]=0;N[f+192>>2]=Q(q*F)+Q(Q(o*G)+Q(p*I));N[f+188>>2]=Q(U*F)+Q(Q(x*G)+Q(u*I));N[f+184>>2]=Q(V*F)+Q(Q(L*G)+Q(M*I));N[f+176>>2]=Q(q*S)+Q(Q(o*D)+Q(p*E));N[f+172>>2]=Q(U*S)+Q(Q(x*D)+Q(u*E));N[f+168>>2]=Q(V*S)+Q(Q(L*D)+Q(M*E));N[f+160>>2]=Q(q*z)+Q(Q(o*A)+Q(B*p));N[f+156>>2]=Q(U*z)+Q(Q(x*A)+Q(B*u));N[f+152>>2]=Q(V*z)+Q(Q(L*A)+Q(M*B));N[f+208>>2]=l+Q(Q(T*F)+Q(Q(y*G)+Q(I*W)));N[f+204>>2]=m+Q(Q(T*S)+Q(Q(y*D)+Q(E*W)));N[f+200>>2]=r+Q(Q(T*z)+Q(Q(y*A)+Q(B*W)))}if(t){ia[J[J[e>>2]+132>>2]](f+24|0,e,J[a+32>>2]);r=N[f+880>>2];m=N[f+884>>2];l=N[f+888>>2];T=N[f+80>>2];y=N[f+72>>2];W=N[f+76>>2];z=N[f+840>>2];A=N[f+832>>2];B=N[f+836>>2];S=N[f+856>>2];D=N[f+848>>2];E=N[f+852>>2];V=N[f+56>>2];L=N[f+24>>2];M=N[f+40>>2];U=N[f+60>>2];x=N[f+28>>2];u=N[f+44>>2];F=N[f+872>>2];q=N[f+64>>2];G=N[f+864>>2];o=N[f+32>>2];I=N[f+868>>2];p=N[f+48>>2];J[f+148>>2]=0;J[f+132>>2]=0;J[f+116>>2]=0;J[f+100>>2]=0;N[f+128>>2]=Q(q*F)+Q(Q(o*G)+Q(p*I));N[f+124>>2]=Q(U*F)+Q(Q(x*G)+Q(u*I));N[f+120>>2]=Q(V*F)+Q(Q(L*G)+Q(M*I));N[f+112>>2]=Q(q*S)+Q(Q(o*D)+Q(p*E));N[f+108>>2]=Q(U*S)+Q(Q(x*D)+Q(u*E));N[f+104>>2]=Q(V*S)+Q(Q(L*D)+Q(M*E));N[f+96>>2]=Q(q*z)+Q(Q(o*A)+Q(B*p));N[f+92>>2]=Q(U*z)+Q(Q(x*A)+Q(B*u));N[f+88>>2]=Q(V*z)+Q(Q(L*A)+Q(M*B));N[f+144>>2]=l+Q(Q(T*F)+Q(Q(y*G)+Q(I*W)));N[f+140>>2]=m+Q(Q(T*S)+Q(Q(y*D)+Q(E*W)));N[f+136>>2]=r+Q(Q(T*z)+Q(Q(y*A)+Q(B*W)))}j=J[a+28>>2];h=J[a+24>>2];g=J[b+8>>2];J[f+28>>2]=X;J[f+32>>2]=g;J[f+24>>2]=b;J[f+40>>2]=lI(h,j);J[f+44>>2]=ha;J[f+36>>2]=f+152;j=J[a+36>>2];h=J[a+32>>2];g=J[c+8>>2];J[f+4>>2]=O;J[f+8>>2]=g;J[f>>2]=c;J[f+16>>2]=lI(h,j);J[f+20>>2]=ha;J[f+12>>2]=f+88;s=ga-48|0;ga=s;g=J[a+16>>2];ia[J[J[g>>2]+8>>2]](g,J[a+28>>2],J[a+24>>2]);g=J[a+16>>2];ia[J[J[g>>2]+12>>2]](g,J[a+36>>2],J[a+32>>2]);j=J[a+28>>2];h=J[a+24>>2];g=J[f+36>>2];fa=J[f+32>>2];J[s+28>>2]=X;J[s+32>>2]=fa;J[s+36>>2]=g;J[s+24>>2]=f+24;J[s+40>>2]=lI(h,j);J[s+44>>2]=ha;j=J[a+36>>2];h=J[a+32>>2];g=J[f+12>>2];X=J[f+8>>2];J[s+4>>2]=O;J[s+8>>2]=X;J[s+12>>2]=g;J[s>>2]=f;J[s+16>>2]=lI(h,j);J[s+20>>2]=ha;h=J[a+8>>2];if(!h){h=J[a+12>>2];if(!h){g=J[a+4>>2];h=ia[J[J[g>>2]+12>>2]](g,fa,X)|0;J[a+12>>2]=h}J[J[a+16>>2]+4>>2]=h;g=J[a+4>>2];h=ia[J[J[g>>2]+8>>2]](g,s+24|0,s,h)|0;J[a+8>>2]=h}ia[J[J[h>>2]+8>>2]](h,s+24|0,s,J[a+20>>2],J[a+16>>2]);ga=s+48|0;if(w){continue}break}}ia[J[J[d>>2]+116>>2]](d);ia[J[J[e>>2]+116>>2]](e);Qa(f+324|0);Qa(f+216|4);Qa(f+620|0);Qa(f+512|4)}a=J[f+820>>2];if(!a|!K[f+824|0]){break a}if(a){J[8370]=J[8370]+1;ia[J[6783]](a)}}ga=f+960|0}function yB(a,b,c,d){a=a|0;b=b|0;c=c|0;d=Q(d);var e=Q(0),f=0,g=Q(0),h=0,i=Q(0),j=Q(0),k=Q(0),l=0,m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=0,y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=Q(0),F=Q(0),G=Q(0),H=Q(0),I=Q(0),L=Q(0),M=Q(0),O=Q(0),R=Q(0),S=Q(0),T=Q(0),U=Q(0),V=Q(0),W=Q(0),X=Q(0),Z=Q(0),_=0,$=Q(0),aa=Q(0),ba=Q(0),ca=Q(0),da=0,ea=0,fa=Q(0),ha=Q(0),ia=Q(0),ja=Q(0);f=ga-464|0;ga=f;a:{if(!K[a+527|0]){break a}h=J[a+32>>2];l=J[a+28>>2];if(!K[a+524|0]){n=Q(N[b+192>>2]+N[b+80>>2]);e=N[a+356>>2];g=N[a+348>>2];i=N[a+352>>2];j=N[l+56>>2];q=Q(Q(Q(e*N[l+28>>2])+Q(Q(g*N[l+20>>2])+Q(i*N[l+24>>2])))+j);k=Q(q-j);j=N[l+52>>2];u=Q(Q(Q(e*N[l+12>>2])+Q(Q(g*N[l+4>>2])+Q(i*N[l+8>>2])))+j);o=Q(u-j);v=Q(N[b+196>>2]+N[b+84>>2]);y=Q(N[c+192>>2]+N[c+80>>2]);j=N[a+420>>2];s=N[a+412>>2];m=N[a+416>>2];p=N[h+56>>2];z=Q(Q(Q(j*N[h+28>>2])+Q(Q(s*N[h+20>>2])+Q(m*N[h+24>>2])))+p);p=Q(z-p);t=N[h+52>>2];w=Q(Q(Q(j*N[h+12>>2])+Q(Q(s*N[h+4>>2])+Q(m*N[h+8>>2])))+t);t=Q(w-t);B=Q(N[c+196>>2]+N[c+84>>2]);C=Q(Q(Q(N[b+184>>2]+N[b+72>>2])+Q(Q(n*k)-Q(o*v)))-Q(Q(N[c+184>>2]+N[c+72>>2])+Q(Q(y*p)-Q(t*B))));E=Q(N[b+200>>2]+N[b+88>>2]);g=Q(Q(e*N[l+44>>2])+Q(Q(g*N[l+36>>2])+Q(i*N[l+40>>2])));e=N[l+60>>2];g=Q(g+e);r=Q(g-e);e=Q(N[c+200>>2]+N[c+88>>2]);i=N[h+60>>2];j=Q(Q(Q(j*N[h+44>>2])+Q(Q(s*N[h+36>>2])+Q(m*N[h+40>>2])))+i);s=Q(j-i);y=Q(Q(Q(N[b+180>>2]+N[b+68>>2])+Q(Q(E*o)-Q(r*n)))-Q(Q(N[c+180>>2]+N[c+68>>2])+Q(Q(e*t)-Q(s*y))));v=Q(Q(Q(N[b+176>>2]+N[b+64>>2])+Q(Q(v*r)-Q(k*E)))-Q(Q(N[c+176>>2]+N[c+64>>2])+Q(Q(B*s)-Q(p*e))));B=Q(g-j);z=Q(q-z);u=Q(u-w);w=Q(-p);E=Q(-t);O=Q(-s);R=Q(-k);Z=Q(-o);M=Q(-r);da=J[c+240>>2];ea=J[b+240>>2];while(1){x=P(_,84)+a|0;g=N[x+56>>2];i=N[x+48>>2];j=N[x+52>>2];e=Q(Q(1)/N[x+128>>2]);e=Q(Q(Q(Q(Q(Q(B*g)+Q(Q(u*i)+Q(z*j)))*Q(-.30000001192092896))/d)*e)-Q(e*Q(Q(g*C)+Q(Q(i*v)+Q(y*j)))));N[a+36>>2]=N[a+36>>2]+e;if(ea){W=N[l+304>>2];X=N[l+296>>2];F=N[l+300>>2];G=N[l+288>>2];H=N[l+280>>2];A=N[l+284>>2];n=N[l+272>>2];q=N[l+264>>2];D=N[l+268>>2];m=N[l+344>>2];N[b+64>>2]=Q(Q(Q(i*m)*e)*N[b+112>>2])+N[b+64>>2];N[b+68>>2]=Q(Q(Q(j*m)*e)*N[b+116>>2])+N[b+68>>2];N[b+72>>2]=Q(Q(Q(g*m)*e)*N[b+120>>2])+N[b+72>>2];m=Q(Q(o*j)+Q(i*R));I=Q(n*m);n=Q(Q(k*g)+Q(j*M));L=Q(q*n);q=Q(Q(r*i)+Q(g*Z));N[b+80>>2]=Q(Q(I+Q(L+Q(D*q)))*Q(e*N[b+96>>2]))+N[b+80>>2];D=N[b+104>>2];N[b+84>>2]=Q(Q(Q(G*m)+Q(Q(H*n)+Q(q*A)))*Q(e*N[b+100>>2]))+N[b+84>>2];N[b+88>>2]=Q(Q(Q(W*m)+Q(Q(X*n)+Q(q*F)))*Q(e*D))+N[b+88>>2]}if(da){n=N[h+304>>2];q=N[h+296>>2];W=N[h+300>>2];X=N[h+288>>2];F=N[h+280>>2];G=N[h+284>>2];H=N[h+272>>2];A=N[h+264>>2];D=N[h+268>>2];I=N[x+56>>2];L=N[x+52>>2];m=N[h+344>>2];e=Q(-e);N[c+64>>2]=Q(N[c+112>>2]*Q(Q(m*N[x+48>>2])*e))+N[c+64>>2];N[c+68>>2]=Q(Q(Q(m*L)*e)*N[c+116>>2])+N[c+68>>2];N[c+72>>2]=Q(Q(Q(m*I)*e)*N[c+120>>2])+N[c+72>>2];m=Q(Q(t*j)+Q(i*w));j=Q(Q(p*g)+Q(j*O));g=Q(Q(s*i)+Q(g*E));N[c+80>>2]=Q(Q(Q(H*m)+Q(Q(A*j)+Q(D*g)))*Q(N[c+96>>2]*e))+N[c+80>>2];i=N[c+104>>2];N[c+84>>2]=Q(Q(Q(X*m)+Q(Q(F*j)+Q(g*G)))*Q(N[c+100>>2]*e))+N[c+84>>2];N[c+88>>2]=Q(Q(Q(n*m)+Q(Q(q*j)+Q(g*W)))*Q(i*e))+N[c+88>>2]}_=_+1|0;if((_|0)!=3){continue}break}}b:{if(K[a+552|0]){x=J[l+16>>2];J[f+384>>2]=J[l+12>>2];J[f+388>>2]=x;x=J[l+8>>2];J[f+376>>2]=J[l+4>>2];J[f+380>>2]=x;x=J[l+32>>2];J[f+400>>2]=J[l+28>>2];J[f+404>>2]=x;x=J[l+24>>2];J[f+392>>2]=J[l+20>>2];J[f+396>>2]=x;x=J[l+48>>2];J[f+416>>2]=J[l+44>>2];J[f+420>>2]=x;x=J[l+40>>2];J[f+408>>2]=J[l+36>>2];J[f+412>>2]=x;x=J[l+64>>2];J[f+432>>2]=J[l+60>>2];J[f+436>>2]=x;x=J[l+56>>2];J[f+424>>2]=J[l+52>>2];J[f+428>>2]=x;l=J[h+16>>2];J[f+320>>2]=J[h+12>>2];J[f+324>>2]=l;l=J[h+8>>2];J[f+312>>2]=J[h+4>>2];J[f+316>>2]=l;l=J[h+32>>2];J[f+336>>2]=J[h+28>>2];J[f+340>>2]=l;l=J[h+24>>2];J[f+328>>2]=J[h+20>>2];J[f+332>>2]=l;l=J[h+48>>2];J[f+352>>2]=J[h+44>>2];J[f+356>>2]=l;l=J[h+40>>2];J[f+344>>2]=J[h+36>>2];J[f+348>>2]=l;l=J[h+64>>2];J[f+368>>2]=J[h+60>>2];J[f+372>>2]=l;l=J[h+56>>2];J[f+360>>2]=J[h+52>>2];J[f+364>>2]=l;e=N[b+84>>2];g=N[b+196>>2];i=N[b+88>>2];j=N[b+200>>2];k=N[b+80>>2];o=N[b+192>>2];J[f+308>>2]=0;N[f+304>>2]=j+i;N[f+300>>2]=g+e;N[f+296>>2]=o+k;e=N[c+84>>2];g=N[c+196>>2];i=N[c+88>>2];j=N[c+200>>2];k=N[c+80>>2];o=N[c+192>>2];J[f+292>>2]=0;N[f+288>>2]=j+i;N[f+284>>2]=g+e;N[f+280>>2]=o+k;J[f+228>>2]=0;J[f+232>>2]=0;J[f+240>>2]=0;J[f+244>>2]=0;J[f+236>>2]=1065353216;J[f+248>>2]=0;J[f+252>>2]=0;J[f+260>>2]=0;J[f+264>>2]=0;J[f+256>>2]=1065353216;J[f+268>>2]=0;J[f+272>>2]=0;J[f+276>>2]=0;J[f+220>>2]=0;J[f+224>>2]=0;J[f+216>>2]=1065353216;J[f+208>>2]=0;J[f+212>>2]=0;J[f+200>>2]=0;J[f+204>>2]=0;h=f+376|0;l=f+200|0;Rb(h,l,f+296|0,d,f+216|0);J[f+148>>2]=0;J[f+152>>2]=0;J[f+160>>2]=0;J[f+164>>2]=0;J[f+156>>2]=1065353216;J[f+168>>2]=0;J[f+172>>2]=0;J[f+180>>2]=0;J[f+184>>2]=0;J[f+176>>2]=1065353216;J[f+188>>2]=0;J[f+192>>2]=0;J[f+196>>2]=0;J[f+140>>2]=0;J[f+144>>2]=0;J[f+136>>2]=1065353216;x=f+312|0;Rb(x,l,f+280|0,d,f+136|0);j=N[a+308>>2];n=N[a+304>>2];o=N[a+324>>2];r=N[a+316>>2];s=N[a+320>>2];m=N[a+404>>2];q=N[a+400>>2];u=N[a+396>>2];v=N[a+372>>2];y=N[a+368>>2];z=N[a+340>>2];w=N[a+332>>2];B=N[a+336>>2];C=N[a+388>>2];E=N[a+384>>2];O=N[a+380>>2];g=N[a+568>>2];k=N[a+564>>2];i=N[a+560>>2];fa=N[a+420>>2];ha=N[a+412>>2];ia=N[a+416>>2];R=N[a+300>>2];W=N[a+356>>2];ja=N[a+348>>2];X=N[a+352>>2];Z=N[a+364>>2];e=N[a+556>>2];J[f+132>>2]=0;J[f+116>>2]=0;J[f+100>>2]=0;p=Q(Q(2)/Q(Q(g*g)+Q(Q(k*k)+Q(Q(e*e)+Q(i*i)))));F=Q(e*p);H=Q(e*F);t=Q(i*p);G=Q(i*t);M=Q(Q(1)-Q(H+G));p=Q(k*p);A=Q(e*p);D=Q(g*t);S=Q(A+D);I=Q(i*p);L=Q(g*F);i=Q(I-L);F=Q(Q(m*M)+Q(Q(u*S)+Q(q*i)));T=Q(A-D);A=Q(k*p);k=Q(Q(1)-Q(G+A));e=Q(e*t);g=Q(g*p);p=Q(e+g);G=Q(Q(m*T)+Q(Q(u*k)+Q(q*p)));t=Q(I+L);U=Q(e-g);V=Q(Q(1)-Q(H+A));H=Q(Q(m*t)+Q(Q(u*U)+Q(q*V)));e=Q(Q(z*F)+Q(Q(w*G)+Q(B*H)));A=N[f+176>>2];D=Q(Q(M*v)+Q(Q(S*Z)+Q(y*i)));I=Q(Q(T*v)+Q(Q(k*Z)+Q(y*p)));L=Q(Q(t*v)+Q(Q(U*Z)+Q(y*V)));g=Q(Q(z*D)+Q(Q(w*I)+Q(B*L)));$=N[f+168>>2];S=Q(Q(M*C)+Q(Q(S*O)+Q(E*i)));T=Q(Q(T*C)+Q(Q(k*O)+Q(E*p)));U=Q(Q(t*C)+Q(Q(U*O)+Q(E*V)));i=Q(Q(z*S)+Q(Q(w*T)+Q(B*U)));V=N[f+172>>2];N[f+112>>2]=Q(e*A)+Q(Q(g*$)+Q(i*V));k=Q(Q(o*F)+Q(Q(r*G)+Q(H*s)));p=Q(Q(o*D)+Q(Q(r*I)+Q(L*s)));t=Q(Q(o*S)+Q(Q(r*T)+Q(U*s)));N[f+108>>2]=Q(A*k)+Q(Q($*p)+Q(V*t));aa=N[f+160>>2];ba=N[f+152>>2];ca=N[f+156>>2];N[f+96>>2]=Q(e*aa)+Q(Q(g*ba)+Q(i*ca));N[f+92>>2]=Q(k*aa)+Q(Q(p*ba)+Q(t*ca));M=Q(0);q=Q(fa+Q(Q(m*Q(0))+Q(Q(u*Q(0))+Q(q*Q(0)))));m=Q(-ja);o=Q(Q(Q(j*m)-Q(o*X))-Q(z*W));r=Q(Q(Q(R*m)-Q(r*X))-Q(w*W));m=Q(Q(Q(n*m)-Q(s*X))-Q(B*W));s=Q(q+Q(Q(o*F)+Q(Q(r*G)+Q(H*m))));q=Q(Q(ha+Q(Q(v*Q(0))+Q(Q(Z*Q(0))+Q(y*Q(0)))))+Q(Q(o*D)+Q(Q(r*I)+Q(L*m))));m=Q(Q(ia+Q(Q(C*Q(0))+Q(Q(O*Q(0))+Q(E*Q(0)))))+Q(Q(o*S)+Q(Q(r*T)+Q(U*m))));E=Q(Q(Q(A*s)+Q(Q($*q)+Q(V*m)))+N[f+192>>2]);N[f+128>>2]=E;O=Q(Q(Q(s*aa)+Q(Q(q*ba)+Q(m*ca)))+N[f+188>>2]);N[f+124>>2]=O;J[f+84>>2]=0;r=Q(Q(j*F)+Q(Q(R*G)+Q(H*n)));o=Q(Q(j*D)+Q(Q(R*I)+Q(L*n)));j=Q(Q(j*S)+Q(Q(R*T)+Q(U*n)));N[f+104>>2]=Q(A*r)+Q(Q($*o)+Q(V*j));N[f+88>>2]=Q(r*aa)+Q(Q(o*ba)+Q(j*ca));n=N[f+144>>2];u=N[f+136>>2];v=N[f+140>>2];N[f+80>>2]=Q(e*n)+Q(Q(g*u)+Q(i*v));N[f+76>>2]=Q(k*n)+Q(Q(p*u)+Q(t*v));N[f+72>>2]=Q(r*n)+Q(Q(o*u)+Q(j*v));R=Q(Q(Q(s*n)+Q(Q(q*u)+Q(v*m)))+N[f+184>>2]);N[f+120>>2]=R;J[f+68>>2]=0;J[f+52>>2]=0;J[f+36>>2]=0;n=N[f+256>>2];u=N[f+248>>2];v=N[f+252>>2];N[f+48>>2]=Q(e*n)+Q(Q(r*u)+Q(k*v));N[f+44>>2]=Q(i*n)+Q(Q(j*u)+Q(t*v));y=N[f+240>>2];z=N[f+232>>2];w=N[f+236>>2];N[f+32>>2]=Q(e*y)+Q(Q(r*z)+Q(k*w));N[f+28>>2]=Q(i*y)+Q(Q(j*z)+Q(t*w));q=Q(-q);B=Q(Q(Q(g*q)-Q(i*m))-Q(e*s));C=Q(Q(Q(o*q)-Q(j*m))-Q(r*s));s=Q(Q(Q(p*q)-Q(t*m))-Q(k*s));m=Q(Q(Q(n*B)+Q(Q(u*C)+Q(v*s)))+N[f+272>>2]);N[f- -64>>2]=m;q=Q(Q(Q(B*y)+Q(Q(C*z)+Q(s*w)))+N[f+268>>2]);N[f+60>>2]=q;J[f+20>>2]=0;N[f+40>>2]=Q(g*n)+Q(Q(o*u)+Q(p*v));N[f+24>>2]=Q(g*y)+Q(Q(o*z)+Q(p*w));w=e;e=N[f+224>>2];A=r;r=N[f+216>>2];n=k;k=N[f+220>>2];N[f+16>>2]=Q(w*e)+Q(Q(A*r)+Q(n*k));N[f+12>>2]=Q(i*e)+Q(Q(j*r)+Q(t*k));N[f+8>>2]=Q(g*e)+Q(Q(o*r)+Q(p*k));g=Q(Q(Q(B*e)+Q(Q(C*r)+Q(s*k)))+N[f+264>>2]);N[f+56>>2]=g;e=Q(Q(1)/d);N[f+208>>2]=e*Q(E-N[f+432>>2]);J[f+212>>2]=0;N[f+200>>2]=e*Q(R-N[f+424>>2]);N[f+204>>2]=e*Q(O-N[f+428>>2]);_=h;h=f+448|0;l=f+444|0;hc(_,f+72|0,h,l);N[f+208>>2]=e*Q(m-N[f+368>>2]);J[f+212>>2]=0;N[f+204>>2]=e*Q(q-N[f+364>>2]);N[f+200>>2]=e*Q(g-N[f+360>>2]);p=N[f+452>>2];g=N[f+444>>2];m=N[f+456>>2];n=N[f+448>>2];hc(x,f+8|0,h,l);i=N[f+444>>2];t=Q(Q(e*Q(i*N[f+456>>2]))-N[f+288>>2]);r=Q(Q(e*Q(i*N[f+452>>2]))-N[f+284>>2]);s=Q(Q(e*Q(N[f+448>>2]*i))-N[f+280>>2]);i=Q(0);m=Q(Q(e*Q(g*m))-N[f+304>>2]);n=Q(Q(e*Q(n*g))-N[f+296>>2]);q=Q(Q(e*Q(g*p))-N[f+300>>2]);e=Q(Q(m*m)+Q(Q(n*n)+Q(q*q)));if(e>Q(1.1920928955078125e-7)){e=Q(Q(1)/Q(Y(e)));j=Q(m*e);h=J[a+28>>2];k=Q(n*e);o=Q(q*e);i=Q(Q(j*Q(Q(j*N[h+304>>2])+Q(Q(N[h+272>>2]*k)+Q(o*N[h+288>>2]))))+Q(Q(k*Q(Q(N[h+296>>2]*j)+Q(Q(k*N[h+264>>2])+Q(o*N[h+280>>2]))))+Q(o*Q(Q(N[h+300>>2]*j)+Q(Q(N[h+268>>2]*k)+Q(o*N[h+284>>2]))))))}u=Q(Q(t*t)+Q(Q(s*s)+Q(r*r)));if(u>Q(1.1920928955078125e-7)){g=Q(Q(1)/Q(Y(u)));p=Q(t*g);h=J[a+32>>2];e=Q(s*g);g=Q(r*g);M=Q(Q(p*Q(Q(p*N[h+304>>2])+Q(Q(N[h+272>>2]*e)+Q(g*N[h+288>>2]))))+Q(Q(e*Q(Q(N[h+296>>2]*p)+Q(Q(e*N[h+264>>2])+Q(g*N[h+280>>2]))))+Q(g*Q(Q(N[h+300>>2]*p)+Q(Q(N[h+268>>2]*e)+Q(g*N[h+284>>2]))))))}j=Q(Q(i*j)+Q(M*p));k=Q(Q(i*k)+Q(M*e));i=Q(Q(i*o)+Q(M*g));e=Q(Q(j*j)+Q(Q(k*k)+Q(i*i)));if(!(e>Q(1.1920928955078125e-7))){break b}g=j;j=Q(Q(1)/Q(Y(e)));e=Q(g*j);h=J[a+28>>2];g=Q(k*j);i=Q(i*j);o=Q(Q(e*Q(Q(e*N[h+304>>2])+Q(Q(N[h+272>>2]*g)+Q(i*N[h+288>>2]))))+Q(Q(g*Q(Q(N[h+296>>2]*e)+Q(Q(g*N[h+264>>2])+Q(i*N[h+280>>2]))))+Q(i*Q(Q(N[h+300>>2]*e)+Q(Q(N[h+268>>2]*g)+Q(i*N[h+284>>2]))))));l=J[a+32>>2];g=Q(Q(e*Q(Q(e*N[l+304>>2])+Q(Q(N[l+272>>2]*g)+Q(i*N[l+288>>2]))))+Q(Q(g*Q(Q(N[l+296>>2]*e)+Q(Q(g*N[l+264>>2])+Q(i*N[l+280>>2]))))+Q(i*Q(Q(N[l+300>>2]*e)+Q(Q(N[l+268>>2]*g)+Q(i*N[l+284>>2]))))));e=Q(o+g);j=Q(Q(1)/Q(e*e));e=Q(Q(Q(m*o)-Q(t*g))*j);i=Q(Q(Q(q*o)-Q(r*g))*j);g=Q(Q(Q(n*o)-Q(s*g))*j);m=N[a+572>>2];if(m>=Q(0)){t=N[a+584>>2];j=Q(e+t);r=N[a+576>>2];k=Q(g+r);s=N[a+580>>2];p=Q(i+s);n=Q(Y(Q(Q(j*j)+Q(Q(k*k)+Q(p*p)))));o=Q(m/(K[a+553|0]?o:Q(1)));if(n>o){g=Q(Q(1)/n);e=Q(Q(o*Q(j*g))-t);j=Q(t+e);i=Q(Q(o*Q(p*g))-s);p=Q(s+i);g=Q(Q(o*Q(k*g))-r);k=Q(r+g)}N[a+584>>2]=j;N[a+580>>2]=p;N[a+576>>2]=k}j=e;e=Q(Y(Q(Q(e*e)+Q(Q(g*g)+Q(i*i)))));k=Q(Q(1)/e);j=Q(j*k);i=Q(i*k);g=Q(g*k);if(J[b+240>>2]){o=N[h+304>>2];p=N[h+296>>2];t=N[h+300>>2];r=N[h+288>>2];s=N[h+280>>2];m=N[h+284>>2];n=N[h+272>>2];q=N[h+264>>2];u=N[h+268>>2];k=Q(e*Q(0));N[b+64>>2]=Q(k*N[b+112>>2])+N[b+64>>2];N[b+68>>2]=Q(k*N[b+116>>2])+N[b+68>>2];N[b+72>>2]=Q(k*N[b+120>>2])+N[b+72>>2];N[b+80>>2]=Q(Q(Q(n*j)+Q(Q(q*g)+Q(i*u)))*Q(e*N[b+96>>2]))+N[b+80>>2];k=N[b+104>>2];N[b+84>>2]=Q(Q(Q(r*j)+Q(Q(s*g)+Q(i*m)))*Q(e*N[b+100>>2]))+N[b+84>>2];N[b+88>>2]=Q(Q(Q(o*j)+Q(Q(p*g)+Q(i*t)))*Q(e*k))+N[b+88>>2]}if(!J[c+240>>2]){break b}o=N[l+304>>2];p=N[l+296>>2];t=N[l+300>>2];r=N[l+288>>2];s=N[l+280>>2];m=N[l+284>>2];n=N[l+272>>2];q=N[l+264>>2];u=N[l+268>>2];k=Q(e*Q(-0));N[c+64>>2]=Q(k*N[c+112>>2])+N[c+64>>2];N[c+68>>2]=Q(k*N[c+116>>2])+N[c+68>>2];N[c+72>>2]=Q(k*N[c+120>>2])+N[c+72>>2];e=Q(-e);N[c+80>>2]=Q(Q(Q(n*j)+Q(Q(q*g)+Q(i*u)))*Q(N[c+96>>2]*e))+N[c+80>>2];k=N[c+104>>2];N[c+84>>2]=Q(Q(Q(r*j)+Q(Q(s*g)+Q(i*m)))*Q(N[c+100>>2]*e))+N[c+84>>2];N[c+88>>2]=Q(Q(Q(o*j)+Q(Q(p*g)+Q(i*t)))*Q(k*e))+N[c+88>>2];break b}g=N[a+440>>2];if(!(g>Q(1.1920928955078125e-7))){break b}o=N[b+88>>2];e=Q(Q(N[c+200>>2]+N[c+88>>2])-Q(N[b+200>>2]+o));p=N[b+80>>2];j=Q(Q(N[c+192>>2]+N[c+80>>2])-Q(N[b+192>>2]+p));t=N[b+84>>2];k=Q(Q(N[c+196>>2]+N[c+84>>2])-Q(N[b+196>>2]+t));i=Q(Q(e*e)+Q(Q(j*j)+Q(k*k)));if(!(i>Q(1.1920928955078125e-7))){break b}w=e;A=g;i=Q(Q(1)/Q(Y(i)));e=Q(e*i);r=N[l+304>>2];s=N[l+272>>2];g=Q(j*i);i=Q(k*i);m=N[l+288>>2];n=N[l+296>>2];q=N[l+264>>2];u=N[l+280>>2];v=N[l+300>>2];y=N[l+268>>2];z=N[l+284>>2];e=Q(A*Q(Q(1)/Q(Q(Q(e*Q(Q(e*r)+Q(Q(s*g)+Q(i*m))))+Q(Q(g*Q(Q(n*e)+Q(Q(g*q)+Q(i*u))))+Q(i*Q(Q(v*e)+Q(Q(y*g)+Q(i*z))))))+Q(Q(e*Q(Q(e*N[h+304>>2])+Q(Q(N[h+272>>2]*g)+Q(i*N[h+288>>2]))))+Q(Q(g*Q(Q(N[h+296>>2]*e)+Q(Q(g*N[h+264>>2])+Q(i*N[h+280>>2]))))+Q(i*Q(Q(N[h+300>>2]*e)+Q(Q(N[h+268>>2]*g)+Q(i*N[h+284>>2])))))))));g=Q(w*e);j=Q(j*e);i=Q(k*e);e=Q(Y(Q(Q(g*g)+Q(Q(j*j)+Q(i*i)))));k=Q(Q(1)/e);g=Q(g*k);i=Q(i*k);j=Q(j*k);if(J[b+240>>2]){k=Q(e*Q(0));N[b+64>>2]=Q(k*N[b+112>>2])+N[b+64>>2];N[b+68>>2]=Q(k*N[b+116>>2])+N[b+68>>2];N[b+72>>2]=Q(k*N[b+120>>2])+N[b+72>>2];N[b+88>>2]=o+Q(Q(Q(r*g)+Q(Q(n*j)+Q(i*v)))*Q(e*N[b+104>>2]));N[b+84>>2]=t+Q(Q(Q(m*g)+Q(Q(u*j)+Q(i*z)))*Q(e*N[b+100>>2]));N[b+80>>2]=p+Q(Q(Q(s*g)+Q(Q(q*j)+Q(i*y)))*Q(e*N[b+96>>2]))}if(!J[c+240>>2]){break b}o=N[h+304>>2];p=N[h+296>>2];t=N[h+300>>2];r=N[h+288>>2];s=N[h+280>>2];m=N[h+284>>2];n=N[h+272>>2];q=N[h+264>>2];u=N[h+268>>2];k=Q(e*Q(-0));N[c+64>>2]=Q(k*N[c+112>>2])+N[c+64>>2];N[c+68>>2]=Q(k*N[c+116>>2])+N[c+68>>2];N[c+72>>2]=Q(k*N[c+120>>2])+N[c+72>>2];e=Q(-e);N[c+80>>2]=Q(Q(Q(n*g)+Q(Q(q*j)+Q(i*u)))*Q(N[c+96>>2]*e))+N[c+80>>2];k=N[c+104>>2];N[c+84>>2]=Q(Q(Q(r*g)+Q(Q(s*j)+Q(i*m)))*Q(N[c+100>>2]*e))+N[c+84>>2];N[c+88>>2]=Q(Q(Q(o*g)+Q(Q(p*j)+Q(i*t)))*Q(k*e))+N[c+88>>2]}k=Q(N[c+200>>2]+N[c+88>>2]);o=Q(N[c+196>>2]+N[c+84>>2]);p=Q(N[b+200>>2]+N[b+88>>2]);t=Q(N[b+196>>2]+N[b+84>>2]);r=Q(N[c+192>>2]+N[c+80>>2]);s=Q(N[b+192>>2]+N[b+80>>2]);c:{if(!K[a+526|0]){break c}g=N[a+528>>2];e=Q(Q(Q(g*N[a+504>>2])*N[a+432>>2])/d);i=N[a+516>>2];w=g;g=N[a+468>>2];j=N[a+460>>2];m=N[a+464>>2];n=Q(Q(Q(k-p)*g)+Q(Q(Q(r-s)*j)+Q(Q(o-t)*m)));e=Q(i+Q(N[a+492>>2]*(n>Q(0)?Q(Q(Q(w*n)*N[a+436>>2])+e):e)));e=e>Q(0)?e:Q(0);N[a+516>>2]=e;e=Q(e-i);g=Q(g*e);i=N[a+544>>2];j=Q(j*e);n=N[a+536>>2];q=N[a+540>>2];u=Q(m*e);e=Q(Q(g*i)+Q(Q(j*n)+Q(q*u)));g=Q(g-Q(i*e));m=Q(j-Q(n*e));i=Q(u-Q(q*e));e=Q(Y(Q(Q(g*g)+Q(Q(m*m)+Q(i*i)))));j=Q(Q(1)/e);g=Q(g*j);i=Q(i*j);j=Q(m*j);if(J[b+240>>2]){h=J[a+28>>2];n=N[h+304>>2];q=N[h+296>>2];u=N[h+300>>2];v=N[h+288>>2];y=N[h+280>>2];z=N[h+284>>2];w=N[h+272>>2];B=N[h+268>>2];C=N[h+264>>2];m=Q(e*Q(0));N[b+64>>2]=Q(m*N[b+112>>2])+N[b+64>>2];N[b+68>>2]=Q(m*N[b+116>>2])+N[b+68>>2];N[b+72>>2]=Q(m*N[b+120>>2])+N[b+72>>2];N[b+80>>2]=Q(Q(Q(w*g)+Q(Q(C*j)+Q(i*B)))*Q(e*N[b+96>>2]))+N[b+80>>2];m=N[b+104>>2];N[b+84>>2]=Q(Q(Q(v*g)+Q(Q(y*j)+Q(i*z)))*Q(e*N[b+100>>2]))+N[b+84>>2];N[b+88>>2]=Q(Q(Q(n*g)+Q(Q(q*j)+Q(i*u)))*Q(e*m))+N[b+88>>2]}if(!J[c+240>>2]){break c}h=J[a+32>>2];n=N[h+304>>2];q=N[h+296>>2];u=N[h+300>>2];v=N[h+288>>2];y=N[h+280>>2];z=N[h+284>>2];w=N[h+272>>2];B=N[h+268>>2];C=N[h+264>>2];m=Q(e*Q(-0));N[c+64>>2]=Q(m*N[c+112>>2])+N[c+64>>2];N[c+68>>2]=Q(m*N[c+116>>2])+N[c+68>>2];N[c+72>>2]=Q(m*N[c+120>>2])+N[c+72>>2];e=Q(-e);N[c+80>>2]=Q(Q(Q(w*g)+Q(Q(C*j)+Q(i*B)))*Q(N[c+96>>2]*e))+N[c+80>>2];m=N[c+104>>2];N[c+84>>2]=Q(Q(Q(v*g)+Q(Q(y*j)+Q(i*z)))*Q(N[c+100>>2]*e))+N[c+84>>2];N[c+88>>2]=Q(Q(Q(n*g)+Q(Q(q*j)+Q(i*u)))*Q(m*e))+N[c+88>>2]}if(!K[a+525|0]){break a}e=N[a+532>>2];d=Q(Q(Q(e*N[a+508>>2])*N[a+432>>2])/d);j=N[a+520>>2];w=e;e=N[a+484>>2];i=N[a+476>>2];g=N[a+480>>2];k=Q(Q(Q(k-p)*e)+Q(Q(Q(r-s)*i)+Q(Q(o-t)*g)));d=Q(j+Q(N[a+496>>2]*(k>Q(0)?Q(Q(Q(w*k)*N[a+436>>2])+d):d)));d=d>Q(0)?d:Q(0);N[a+520>>2]=d;d=Q(d-j);if(J[b+240>>2]){h=J[a+28>>2];k=N[h+304>>2];o=N[h+296>>2];p=N[h+300>>2];t=N[h+288>>2];r=N[h+280>>2];s=N[h+284>>2];m=N[h+272>>2];n=N[h+268>>2];q=N[h+264>>2];j=Q(d*Q(0));N[b+64>>2]=Q(j*N[b+112>>2])+N[b+64>>2];N[b+68>>2]=Q(j*N[b+116>>2])+N[b+68>>2];N[b+72>>2]=Q(j*N[b+120>>2])+N[b+72>>2];N[b+80>>2]=Q(Q(Q(m*e)+Q(Q(q*i)+Q(g*n)))*Q(d*N[b+96>>2]))+N[b+80>>2];j=N[b+104>>2];N[b+84>>2]=Q(Q(Q(t*e)+Q(Q(r*i)+Q(g*s)))*Q(d*N[b+100>>2]))+N[b+84>>2];N[b+88>>2]=Q(Q(Q(k*e)+Q(Q(o*i)+Q(g*p)))*Q(d*j))+N[b+88>>2];g=N[a+480>>2];i=N[a+476>>2];e=N[a+484>>2]}if(!J[c+240>>2]){break a}a=J[a+32>>2];k=N[a+304>>2];o=N[a+296>>2];p=N[a+300>>2];t=N[a+288>>2];r=N[a+280>>2];s=N[a+284>>2];m=N[a+272>>2];n=N[a+268>>2];q=N[a+264>>2];j=Q(d*Q(-0));N[c+64>>2]=Q(j*N[c+112>>2])+N[c+64>>2];N[c+68>>2]=Q(j*N[c+116>>2])+N[c+68>>2];N[c+72>>2]=Q(j*N[c+120>>2])+N[c+72>>2];d=Q(-d);N[c+80>>2]=Q(Q(Q(m*e)+Q(Q(q*i)+Q(g*n)))*Q(N[c+96>>2]*d))+N[c+80>>2];j=N[c+104>>2];N[c+84>>2]=Q(Q(Q(t*e)+Q(Q(r*i)+Q(g*s)))*Q(N[c+100>>2]*d))+N[c+84>>2];N[c+88>>2]=Q(Q(Q(k*e)+Q(Q(o*i)+Q(g*p)))*Q(j*d))+N[c+88>>2]}ga=f+464|0}function xy(a,b){a=a|0;b=Q(b);var c=0,d=0,e=0,f=Q(0),g=0,h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=0,n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=0,s=Q(0),t=Q(0),u=Q(0),v=0,w=Q(0),x=Q(0),y=0,z=Q(0),A=Q(0),B=Q(0),C=0,D=Q(0),E=Q(0),F=Q(0),G=Q(0),I=Q(0),L=Q(0),M=0,O=Q(0),S=0,T=0,U=Q(0),V=Q(0),W=Q(0),X=Q(0);d=J[a+24>>2];if((d|0)>0){while(1){a:{b:{e=J[J[a+32>>2]+(T<<2)>>2];switch(J[e+216>>2]-2|0){case 0:case 3:break a;default:break b}}d=0;r=ga-144|0;ga=r;c:{if(!K[e+924|0]){break c}H[e+924|0]=0;g=J[e+732>>2];if((g|0)>0){m=J[e+740>>2];while(1){c=m+P(d,52)|0;v=J[c+8>>2];y=J[c+12>>2];f=Q(N[v+16>>2]-N[y+16>>2]);i=Q(f*f);f=Q(N[v+8>>2]-N[y+8>>2]);j=Q(f*f);f=Q(N[v+12>>2]-N[y+12>>2]);f=Q(Y(Q(i+Q(j+Q(f*f)))));N[c+16>>2]=f;N[c+28>>2]=f*f;d=d+1|0;if((g|0)!=(d|0)){continue}break}d=0;while(1){c=m+P(d,52)|0;N[c+24>>2]=Q(N[J[c+8>>2]+88>>2]+N[J[c+12>>2]+88>>2])/N[J[c+4>>2]+4>>2];d=d+1|0;if((g|0)!=(d|0)){continue}break}}kg(e);Fd(e+988|0);if(!(K[e+388|0]&16)){break c}kk(e)}f=Q(N[e+368>>2]*b);N[e+452>>2]=f;N[e+460>>2]=f*Q(3);N[e+456>>2]=Q(1)/f;d=J[e+192>>2];f=Q(ia[J[J[d>>2]+48>>2]](d));N[e+464>>2]=f;N[e+468>>2]=f*Q(.25);g=J[e+712>>2];if((g|0)>0){f=N[e+452>>2];d=J[e+684>>2];i=Q(f*N[d+48>>2]);k=Q(f*N[d+44>>2]);f=Q(N[d+40>>2]*f);m=J[e+720>>2];d=0;while(1){c=m+P(d,104)|0;if(N[c+88>>2]>Q(0)){N[c+40>>2]=f+N[c+40>>2];N[c+44>>2]=k+N[c+44>>2];N[c+48>>2]=i+N[c+48>>2]}d=d+1|0;if((g|0)!=(d|0)){continue}break}}d=0;k=Q(0);ya(2710);g=J[e+712>>2];n=N[e+312>>2];f=N[e+308>>2];d:{if(f==Q(0)){i=Q(0);if(!(n>Q(0))){break d}}if((g|0)<=0){i=Q(0)}else{y=J[e+752>>2];if((y|0)>0){c=J[e+720>>2];i=N[c+8>>2];o=N[c+16>>2];p=N[c+12>>2];C=J[e+760>>2];while(1){u=k;c=C+P(d,44)|0;m=J[c+8>>2];v=J[c+12>>2];k=Q(N[v+8>>2]-i);c=J[c+16>>2];j=Q(N[c+12>>2]-p);h=Q(N[c+8>>2]-i);l=Q(N[v+12>>2]-p);t=Q(Q(N[m+16>>2]-o)*Q(Q(k*j)-Q(h*l)));q=l;l=Q(N[c+16>>2]-o);s=j;j=Q(N[v+16>>2]-o);k=Q(u+Q(t+Q(Q(Q(N[m+8>>2]-i)*Q(Q(q*l)-Q(s*j)))+Q(Q(N[m+12>>2]-p)*Q(Q(j*h)-Q(l*k))))));d=d+1|0;if((y|0)!=(d|0)){continue}break}}i=Q(k/Q(6))}k=Q(f*Q(Q(1)/Q(R(i))));i=Q(n*Q(N[e+476>>2]-i))}e:{if((g|0)<=0){break e}m=N[e+304>>2]>Q(0)|N[e+300>>2]>Q(0);v=e+1212|0;if(f!=Q(0)){c=0;while(1){d=J[e+720>>2]+P(c,104)|0;f:{if(!(N[d+88>>2]>Q(0))){break f}if(m){te(e,v,c)}o=N[d+72>>2];p=N[d+92>>2];f=Q(k*p);j=Q(Q(o*f)+N[d+56>>2]);N[d+56>>2]=j;h=N[d+76>>2];l=Q(Q(f*h)+N[d+60>>2]);N[d+60>>2]=l;t=N[d+80>>2];y=d- -64|0;f=Q(Q(f*t)+N[y>>2]);N[y>>2]=f;if(!(n>Q(0))){break f}u=o;o=Q(i*p);N[d+56>>2]=Q(u*o)+j;N[d+60>>2]=Q(o*h)+l;N[y>>2]=Q(o*t)+f}c=c+1|0;if((g|0)!=(c|0)){continue}break}break e}if(n>Q(0)){c=0;while(1){d=J[e+720>>2]+P(c,104)|0;if(N[d+88>>2]>Q(0)){if(m){te(e,v,c)}f=Q(i*N[d+92>>2]);N[d+56>>2]=Q(N[d+72>>2]*f)+N[d+56>>2];N[d+60>>2]=Q(f*N[d+76>>2])+N[d+60>>2];y=d- -64|0;N[y>>2]=Q(f*N[d+80>>2])+N[y>>2]}c=c+1|0;if((g|0)!=(c|0)){continue}break}break e}if(!m){break e}d=0;while(1){if(N[(J[e+720>>2]+P(d,104)|0)+88>>2]>Q(0)){te(e,v,d)}d=d+1|0;if((g|0)!=(d|0)){continue}break}}M=J[e+752>>2];if((M|0)>0){y=e+1212|0;d=0;while(1){z=N[e+304>>2];A=N[e+300>>2];g:{if(!(z>Q(0)|A>Q(0))){break g}S=J[e+288>>2];if((S|0)<4){break g}C=J[e+760>>2];v=C+P(d,44)|0;m=J[v+8>>2];h=N[m+48>>2];c=J[v+12>>2];g=J[v+16>>2];f=Q(Q(Q(Q(h+N[c+48>>2])+N[g+48>>2])*Q(.3333333432674408))-N[y+8>>2]);l=N[m+40>>2];o=Q(Q(Q(Q(l+N[c+40>>2])+N[g+40>>2])*Q(.3333333432674408))-N[y>>2]);t=N[m+44>>2];p=Q(Q(Q(Q(t+N[c+44>>2])+N[g+44>>2])*Q(.3333333432674408))-N[y+4>>2]);x=Q(Q(f*f)+Q(Q(o*o)+Q(p*p)));if(!(x>Q(1.1920928955078125e-7))){break g}j=N[e+452>>2];B=N[J[e+684>>2]>>2];E=Q(Y(x));n=Q(Q(1)/E);i=Q(f*n);k=Q(p*n);n=Q(o*n);q=N[v+20>>2];s=N[v+28>>2];w=N[v+24>>2];h:{switch(S-4|0){case 1:f=Q(Q(s*f)+Q(Q(q*o)+Q(p*w))) >2]*Q(.5));f=Q(q*Q(f*x));A=Q(f*Q(-i));F=Q(f*Q(-k));G=Q(f*Q(-n));o=Q(0);p=Q(0);f=Q(0);i:{if(!(q>Q(0))){break i}f=Q(0);if(!(q>2];if(q>Q(0)){s=Q(Q(i*q)*j);u=Q(s*s);s=Q(Q(n*q)*j);j=Q(Q(k*q)*j);j=Q(u+Q(Q(s*s)+Q(j*j)));j:{if(!(j>Q(0))){break j}h=Q(Q(h*h)+Q(Q(l*l)+Q(t*t)));if(!(h<=j)){break j}j=Q(Q(Q(Y(h))/Q(Y(j)))*Q(.800000011920929));i=Q(i*j);k=Q(k*j);n=Q(n*j)}N[m+56>>2]=f+Q(n+N[m+56>>2]);v=m- -64|0;N[v>>2]=p+Q(i+N[v>>2]);N[m+60>>2]=o+Q(k+N[m+60>>2])}j=N[c+88>>2];if(j>Q(0)){h=N[e+452>>2];l=Q(Q(i*j)*h);u=Q(l*l);l=Q(Q(n*j)*h);j=Q(Q(k*j)*h);j=Q(u+Q(Q(l*l)+Q(j*j)));k:{if(!(j>Q(0))){break k}h=N[c+48>>2];l=Q(h*h);h=N[c+40>>2];u=Q(h*h);h=N[c+44>>2];h=Q(l+Q(u+Q(h*h)));if(!(h<=j)){break k}j=Q(Q(Q(Y(h))/Q(Y(j)))*Q(.800000011920929));i=Q(i*j);k=Q(k*j);n=Q(n*j)}N[c+56>>2]=f+Q(n+N[c+56>>2]);m=c- -64|0;N[m>>2]=p+Q(i+N[m>>2]);N[c+60>>2]=o+Q(k+N[c+60>>2])}j=N[g+88>>2];if(!(j>Q(0))){break g}h=N[e+452>>2];l=Q(Q(i*j)*h);u=Q(l*l);l=Q(Q(n*j)*h);j=Q(Q(k*j)*h);j=Q(u+Q(Q(l*l)+Q(j*j)));l:{if(!(j>Q(0))){break l}h=N[g+48>>2];l=Q(h*h);h=N[g+40>>2];u=Q(h*h);h=N[g+44>>2];h=Q(l+Q(u+Q(h*h)));if(!(h<=j)){break l}j=Q(Q(Q(Y(h))/Q(Y(j)))*Q(.800000011920929));i=Q(i*j);k=Q(k*j);n=Q(n*j)}N[g+56>>2]=f+Q(n+N[g+56>>2]);c=g- -64|0;N[c>>2]=p+Q(i+N[c>>2]);N[g+60>>2]=o+Q(k+N[g+60>>2]);break g;case 0:case 2:break h;default:break g}}u=f;f=Q(Q(s*f)+Q(Q(q*o)+Q(p*w)))Q(0))){break g}f=Q(B*Q(x*Q(f*Q(-N[(C+P(d,44)|0)+36>>2]))));o=Q(A*f);p=Q(z*f);f=Q(Q(Q(i*o)+Q(Q(s*p)+Q(0)))*Q(.3333333432674408));i=Q(Q(Q(n*o)+Q(Q(q*p)+Q(0)))*Q(.3333333432674408));k=Q(Q(Q(k*o)+Q(Q(w*p)+Q(0)))*Q(.3333333432674408));p=Q(Q(1)/Q(Y(Q(Q(f*f)+Q(Q(i*i)+Q(k*k))))));n=Q(f*p);o=Q(k*p);p=Q(i*p);q=Q(j*N[m+88>>2]);s=Q(f*q);u=Q(s*s);s=Q(i*q);w=Q(s*s);s=Q(k*q);m:{if(Q(u+Q(w+Q(s*s)))>Q(Q(h*h)+Q(Q(l*l)+Q(t*t)))){q=Q(Q(1)/q);h=Q(Q(h*n)+Q(Q(l*p)+Q(o*t)));N[m+56>>2]=N[m+56>>2]-Q(q*Q(p*h));N[m+60>>2]=N[m+60>>2]-Q(q*Q(o*h));m=m- -64|0;N[m>>2]=N[m>>2]-Q(q*Q(n*h));break m}N[m+56>>2]=i+N[m+56>>2];N[m+60>>2]=k+N[m+60>>2];m=m- -64|0;N[m>>2]=f+N[m>>2]}h=Q(j*N[c+88>>2]);l=Q(f*h);u=Q(l*l);l=Q(i*h);q=Q(l*l);l=Q(k*h);u=Q(u+Q(q+Q(l*l)));l=N[c+48>>2];t=N[c+40>>2];q=N[c+44>>2];n:{if(!(u>Q(Q(l*l)+Q(Q(t*t)+Q(q*q))))){N[c+56>>2]=i+N[c+56>>2];N[c+60>>2]=k+N[c+60>>2];c=c- -64|0;N[c>>2]=f+N[c>>2];break n}h=Q(Q(1)/h);l=Q(Q(l*n)+Q(Q(t*p)+Q(o*q)));N[c+56>>2]=N[c+56>>2]-Q(h*Q(p*l));N[c+60>>2]=N[c+60>>2]-Q(h*Q(o*l));c=c- -64|0;N[c>>2]=N[c>>2]-Q(h*Q(n*l))}j=Q(j*N[g+88>>2]);h=Q(f*j);l=Q(h*h);h=Q(i*j);u=Q(h*h);h=Q(k*j);u=Q(l+Q(u+Q(h*h)));h=N[g+48>>2];l=N[g+40>>2];t=N[g+44>>2];if(!(u>Q(Q(h*h)+Q(Q(l*l)+Q(t*t))))){N[g+56>>2]=i+N[g+56>>2];N[g+60>>2]=k+N[g+60>>2];c=g- -64|0;N[c>>2]=f+N[c>>2];break g}f=Q(Q(1)/j);i=Q(Q(h*n)+Q(Q(l*p)+Q(o*t)));N[g+56>>2]=N[g+56>>2]-Q(f*Q(p*i));N[g+60>>2]=N[g+60>>2]-Q(f*Q(o*i));c=g- -64|0;N[c>>2]=N[c>>2]-Q(f*Q(n*i))}d=d+1|0;if((M|0)!=(d|0)){continue}break}}xa();m=J[e+712>>2];if((m|0)>0){d=0;while(1){c=J[e+720>>2]+P(d,104)|0;g=J[c+12>>2];J[c+24>>2]=J[c+8>>2];J[c+28>>2]=g;g=J[c+20>>2];J[c+32>>2]=J[c+16>>2];J[c+36>>2]=g;k=N[e+452>>2];f=Q(N[J[e+684>>2]+12>>2]/k);i=Q(-f);n=N[c+88>>2];o=Q(Q(N[c+56>>2]*n)*k);o=fo?i:o)+N[c+40>>2]);N[c+40>>2]=o;p=Q(k*Q(n*N[c+60>>2]));p=f p?i:p)+N[c+44>>2]);N[c+44>>2]=p;g=c- -64|0;k=Q(k*Q(n*N[g>>2]));f=f
>2]);N[c+48>>2]=i;f=N[e+452>>2];N[c+8>>2]=Q(o*f)+N[c+8>>2];N[c+12>>2]=Q(p*f)+N[c+12>>2];N[c+16>>2]=Q(i*f)+N[c+16>>2];J[g>>2]=0;J[g+4>>2]=0;J[c+56>>2]=0;J[c+60>>2]=0;d=d+1|0;if((m|0)!=(d|0)){continue}break}}lk(e);d=J[e+928>>2];o:{if(d){c=J[e+192>>2];f=Q(ia[J[J[c>>2]+48>>2]](c));i=N[d>>2];k=N[d+4>>2];n=N[d+8>>2];J[e+904>>2]=0;N[e+900>>2]=n-f;N[e+896>>2]=k-f;N[e+892>>2]=i-f;i=N[d+20>>2];k=N[d+24>>2];n=N[d+16>>2];J[e+920>>2]=0;N[e+916>>2]=f+k;N[e+912>>2]=f+i;d=e+908|0;N[d>>2]=f+n;c=J[e+188>>2];if(!c){break o}g=J[e+684>>2];m=J[g+32>>2];ia[J[J[m>>2]+16>>2]](m,c,e+892|0,d,J[g+36>>2]);break o}J[e+892>>2]=0;J[e+896>>2]=0;J[e+916>>2]=0;J[e+920>>2]=0;J[e+908>>2]=0;J[e+912>>2]=0;J[e+900>>2]=0;J[e+904>>2]=0}g=J[e+712>>2];if((g|0)>0){m=e+928|0;d=0;while(1){c=J[e+720>>2]+P(d,104)|0;i=N[c+12>>2];k=N[c+16>>2];n=N[c+8>>2];f=N[e+464>>2];J[r+140>>2]=0;N[r+128>>2]=f+n;J[r+124>>2]=0;N[r+112>>2]=n-f;N[r+136>>2]=f+k;N[r+132>>2]=f+i;N[r+120>>2]=k-f;N[r+116>>2]=i-f;v=J[c+96>>2];i=N[c+40>>2];k=N[c+44>>2];n=N[c+48>>2];f=N[e+460>>2];J[r+20>>2]=0;N[r+16>>2]=f*n;N[r+12>>2]=f*k;N[r+8>>2]=i*f;Cd(m,v,r+112|0,r+8|0,N[e+468>>2]);d=d+1|0;if((g|0)!=(d|0)){continue}break}}y=e+988|0;if(!(!J[e+988>>2]|J[e+752>>2]<=0)){m=0;while(1){v=J[e+760>>2]+P(m,44)|0;d=J[v+16>>2];x=N[d+40>>2];c=J[v+8>>2];B=N[c+40>>2];g=J[v+12>>2];z=N[g+40>>2];A=N[d+44>>2];u=N[c+44>>2];E=N[g+44>>2];F=N[d+48>>2];G=N[c+48>>2];O=N[g+48>>2];i=N[d+12>>2];k=N[c+12>>2];n=N[g+12>>2];o=N[d+16>>2];p=N[c+16>>2];j=N[g+16>>2];h=N[d+8>>2];l=N[c+8>>2];t=N[g+8>>2];f=N[e+464>>2];q=N[d+20>>2];s=N[g+20>>2];w=N[c+20>>2];D=s>w?s:w;N[r+140>>2]=q>D?q:D;D=l >2]=f+(h>D?h:D);s=s >2]=q t?t:l;N[r+112>>2]=(hp?j:p;N[r+136>>2]=f+(h >2]=f+(i>h?i:h);p=j >2]=(o
n?n:k;N[r+116>>2]=(i
>2];f=N[e+460>>2];J[r+20>>2]=0;N[r+16>>2]=f*Q(Q(F+Q(G+O))*Q(.3333333432674408));N[r+12>>2]=f*Q(Q(A+Q(u+E))*Q(.3333333432674408));N[r+8>>2]=f*Q(Q(x+Q(B+z))*Q(.3333333432674408));Cd(y,d,r+112|0,r+8|0,N[e+468>>2]);m=m+1|0;if((m|0) >2]){continue}break}}i=Q(0);c=0;f=Q(0);k=Q(0);n=Q(0);j=Q(0);d=ga-144|0;ga=d;p:{if(!K[e+473|0]){break p}g=J[e+712>>2];v=(g|0)<=0;if(!v){C=J[e+512>>2];M=J[e+720>>2];while(1){m=M+P(c,104)|0;o=N[C+(c<<2)>>2];n=Q(n+Q(N[m+8>>2]*o));i=Q(i+Q(o*N[m+16>>2]));k=Q(k+Q(o*N[m+12>>2]));c=c+1|0;if((g|0)!=(c|0)){continue}break}}J[e+532>>2]=0;N[e+528>>2]=i;N[e+524>>2]=k;N[e+520>>2]=n;J[d+132>>2]=0;J[d+136>>2]=0;J[d+116>>2]=0;J[d+120>>2]=0;J[d+140>>2]=0;J[d+124>>2]=0;J[d+128>>2]=0;J[d+108>>2]=0;J[d+112>>2]=0;J[d+136>>2]=884998144;J[d+116>>2]=880803840;J[d+100>>2]=0;J[d+104>>2]=0;J[d+96>>2]=872415232;if(!v){C=J[e+492>>2];M=J[e+720>>2];S=J[e+512>>2];o=N[d+120>>2];p=Q(1.1920928955078125e-7);h=Q(2.384185791015625e-7);l=Q(3.5762786865234375e-7);t=N[d+112>>2];q=N[d+104>>2];s=N[d+100>>2];m=0;while(1){v=M+P(m,104)|0;B=N[v+16>>2];z=N[v+12>>2];c=C+(m<<4)|0;A=N[c>>2];u=N[c+4>>2];w=N[S+(m<<2)>>2];x=Q(Q(N[v+8>>2]-n)*w);q=Q(Q(x*N[c+8>>2])+q);N[d+104>>2]=q;s=Q(Q(x*u)+s);N[d+100>>2]=s;p=Q(Q(x*A)+p);N[d+96>>2]=p;A=N[c>>2];u=N[c+4>>2];x=Q(w*Q(z-k));o=Q(Q(x*N[c+8>>2])+o);N[d+120>>2]=o;h=Q(Q(x*u)+h);N[d+116>>2]=h;t=Q(Q(x*A)+t);N[d+112>>2]=t;x=N[c>>2];z=N[c+4>>2];w=Q(w*Q(B-i));l=Q(Q(w*N[c+8>>2])+l);N[d+136>>2]=l;f=Q(Q(w*z)+f);N[d+132>>2]=f;j=Q(Q(w*x)+j);N[d+128>>2]=j;m=m+1|0;if((g|0)!=(m|0)){continue}break}}if(!K[33308]){f=N[5805];J[8326]=J[5806];N[8325]=f;H[33308]=1}Qj(d+96|0,d+48|0,d);c=J[d+60>>2];J[e+544>>2]=J[d+56>>2];J[e+548>>2]=c;c=J[d+52>>2];J[e+536>>2]=J[d+48>>2];J[e+540>>2]=c;c=J[d+76>>2];J[e+560>>2]=J[d+72>>2];J[e+564>>2]=c;c=J[d+68>>2];J[e+552>>2]=J[d+64>>2];J[e+556>>2]=c;c=J[d+84>>2];J[e+568>>2]=J[d+80>>2];J[e+572>>2]=c;c=J[d+92>>2];J[e+576>>2]=J[d+88>>2];J[e+580>>2]=c;f=N[e+640>>2];i=N[e+632>>2];k=N[e+636>>2];n=N[e+656>>2];o=N[e+648>>2];p=N[e+652>>2];j=N[e+672>>2];h=N[e+664>>2];l=N[e+668>>2];t=N[d+88>>2];q=N[d+84>>2];s=N[d+56>>2];w=N[d+120>>2];x=N[d+72>>2];B=N[d+68>>2];z=N[d+128>>2];A=N[d+96>>2];u=N[d+112>>2];E=N[d+132>>2];F=N[d+100>>2];G=N[d+116>>2];O=N[d+136>>2];D=N[d+80>>2];U=N[d+104>>2];V=N[d+48>>2];W=N[d+52>>2];X=N[d+64>>2];J[e+628>>2]=0;J[e+612>>2]=0;J[e+596>>2]=0;I=Q(Q(t*j)+Q(Q(D*h)+Q(q*l)));L=Q(Q(s*j)+Q(Q(V*h)+Q(W*l)));l=Q(Q(x*j)+Q(Q(X*h)+Q(B*l)));j=Q(Q(O*I)+Q(Q(U*L)+Q(w*l)));N[e+624>>2]=j;h=Q(Q(E*I)+Q(Q(F*L)+Q(l*G)));N[e+620>>2]=h;l=Q(Q(z*I)+Q(Q(A*L)+Q(u*l)));N[e+616>>2]=l;I=Q(Q(t*n)+Q(Q(D*o)+Q(q*p)));L=Q(Q(s*n)+Q(Q(V*o)+Q(W*p)));p=Q(Q(x*n)+Q(Q(X*o)+Q(B*p)));n=Q(Q(O*I)+Q(Q(U*L)+Q(w*p)));N[e+608>>2]=n;o=Q(Q(E*I)+Q(Q(F*L)+Q(p*G)));N[e+604>>2]=o;p=Q(Q(z*I)+Q(Q(A*L)+Q(p*u)));N[e+600>>2]=p;t=Q(Q(t*f)+Q(Q(D*i)+Q(q*k)));q=Q(Q(s*f)+Q(Q(V*i)+Q(W*k)));f=Q(Q(x*f)+Q(Q(X*i)+Q(B*k)));i=Q(Q(O*t)+Q(Q(U*q)+Q(w*f)));N[e+592>>2]=i;k=Q(Q(E*t)+Q(Q(F*q)+Q(f*G)));N[e+588>>2]=k;t=Q(Q(z*t)+Q(Q(A*q)+Q(f*u)));N[e+584>>2]=t;f=N[e+364>>2];if(!(f>Q(1))){break p}u=j;j=Q(Q(1)/Q(Q(i*Q(Q(p*h)-Q(l*o)))+Q(Q(t*Q(Q(o*j)-Q(h*n)))+Q(k*Q(Q(n*l)-Q(j*p))))));f=j >2]=u*f;N[e+620>>2]=h*f;N[e+616>>2]=l*f;N[e+608>>2]=n*f;N[e+604>>2]=o*f;N[e+600>>2]=p*f;N[e+592>>2]=i*f;N[e+588>>2]=k*f;N[e+584>>2]=t*f}ga=d+144|0;q:{if(!K[e+473|0]|!(N[e+320>>2]>Q(0))){break q}m=J[e+712>>2];if((m|0)<=0){break q}o=N[e+576>>2];p=N[e+572>>2];j=N[e+568>>2];h=N[e+560>>2];l=N[e+556>>2];t=N[e+552>>2];q=N[e+544>>2];s=N[e+540>>2];w=N[e+536>>2];d=0;while(1){c=J[e+720>>2]+P(d,104)|0;if(N[c+88>>2]>Q(0)){g=J[e+492>>2]+(d<<4)|0;f=N[g+8>>2];i=N[g>>2];k=N[g+4>>2];x=N[e+520>>2];B=N[e+524>>2];n=N[e+320>>2];z=N[e+528>>2];J[c+20>>2]=0;A=N[c+16>>2];N[c+16>>2]=A+Q(n*Q(Q(z+Q(Q(o*f)+Q(Q(j*i)+Q(p*k))))-A));z=N[c+12>>2];N[c+12>>2]=z+Q(n*Q(Q(B+Q(Q(h*f)+Q(Q(t*i)+Q(l*k))))-z));B=N[c+8>>2];N[c+8>>2]=B+Q(n*Q(Q(x+Q(Q(q*f)+Q(Q(w*i)+Q(s*k))))-B))}d=d+1|0;if((m|0)!=(d|0)){continue}break}}qa(r+8|0,0,104);d=J[e+812>>2];if((d|0)<0){if(J[e+816>>2]<0){c=J[e+820>>2];if(!(c?!c|!K[e+824|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](c)}H[e+824|0]=1;J[e+816>>2]=0;J[e+820>>2]=0}while(1){c=J[e+820>>2]+P(d,104)|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;g=J[r+48>>2];J[c+36>>2]=J[r+44>>2];J[c+40>>2]=g;g=J[r+40>>2];J[c+28>>2]=J[r+36>>2];J[c+32>>2]=g;g=J[r+64>>2];J[c+52>>2]=J[r+60>>2];J[c+56>>2]=g;g=J[r+56>>2];J[c+44>>2]=J[r+52>>2];J[c+48>>2]=g;g=J[r+80>>2];J[c+68>>2]=J[r+76>>2];J[c+72>>2]=g;g=J[r+72>>2];J[c+60>>2]=J[r+68>>2];J[c+64>>2]=g;g=J[r+88>>2];J[c+76>>2]=J[r+84>>2];J[c+80>>2]=g;g=J[r+96>>2];J[c+84>>2]=J[r+92>>2];J[c+88>>2]=g;g=J[r+104>>2];J[c+92>>2]=J[r+100>>2];J[c+96>>2]=g;J[c+100>>2]=J[r+108>>2];c=d;d=c+1|0;if(d>>>0>=c>>>0){continue}break}}J[e+812>>2]=0;c=J[e+832>>2];r:{if((c|0)>=0){break r}if(J[e+836>>2]<0){d=J[e+840>>2];if(!(d?!d|!K[e+844|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](d)}H[e+844|0]=1;J[e+836>>2]=0;J[e+840>>2]=0}m=0;d=c;v=0-c&3;if(v){while(1){g=J[e+840>>2]+P(d,56)|0;J[g>>2]=0;J[g+4>>2]=0;J[g+48>>2]=0;J[g+52>>2]=0;J[g+40>>2]=0;J[g+44>>2]=0;J[g+32>>2]=0;J[g+36>>2]=0;J[g+24>>2]=0;J[g+28>>2]=0;J[g+16>>2]=0;J[g+20>>2]=0;J[g+8>>2]=0;J[g+12>>2]=0;d=d+1|0;m=m+1|0;if((v|0)!=(m|0)){continue}break}}if(c>>>0>4294967292){break r}while(1){g=P(d,56);c=g+J[e+840>>2]|0;J[c>>2]=0;J[c+4>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;J[c+32>>2]=0;J[c+36>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=g+J[e+840>>2]|0;J[c+104>>2]=0;J[c+108>>2]=0;J[c+96>>2]=0;J[c+100>>2]=0;J[c+88>>2]=0;J[c+92>>2]=0;J[c+80>>2]=0;J[c+84>>2]=0;J[c+72>>2]=0;J[c+76>>2]=0;m=c- -64|0;J[m>>2]=0;J[m+4>>2]=0;J[c+56>>2]=0;J[c+60>>2]=0;c=g+J[e+840>>2]|0;J[c+160>>2]=0;J[c+164>>2]=0;J[c+152>>2]=0;J[c+156>>2]=0;J[c+144>>2]=0;J[c+148>>2]=0;J[c+136>>2]=0;J[c+140>>2]=0;J[c+128>>2]=0;J[c+132>>2]=0;J[c+120>>2]=0;J[c+124>>2]=0;J[c+112>>2]=0;J[c+116>>2]=0;c=g+J[e+840>>2]|0;J[c+216>>2]=0;J[c+220>>2]=0;J[c+208>>2]=0;J[c+212>>2]=0;J[c+200>>2]=0;J[c+204>>2]=0;J[c+192>>2]=0;J[c+196>>2]=0;J[c+184>>2]=0;J[c+188>>2]=0;J[c+176>>2]=0;J[c+180>>2]=0;J[c+168>>2]=0;J[c+172>>2]=0;d=d+4|0;if(d){continue}break}}J[e+832>>2]=0;Hc(e+928|0,1);Hc(y,1);Hc(e+1048|0,1);ga=r+144|0;d=J[a+24>>2]}T=T+1|0;if((T|0)<(d|0)){continue}break}}} +function OA(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;var j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=Q(0),r=0,s=0,t=Q(0),u=Q(0),v=0,w=0,x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=Q(0),F=Q(0),G=0,I=Q(0),L=Q(0),M=Q(0),O=Q(0),S=Q(0),T=Q(0),U=Q(0),V=Q(0),W=Q(0),X=Q(0),Z=Q(0),_=Q(0),$=Q(0),aa=Q(0),ba=0,ca=0,da=Q(0),ea=Q(0),fa=Q(0),ha=Q(0),ja=Q(0),ka=Q(0),la=Q(0),ma=0,na=Q(0),oa=Q(0),pa=Q(0),ra=Q(0);p=ga-256|0;ga=p;J[a+188>>2]=-1;ya(2822);J[a+184>>2]=0;a:{if((c|0)<=0){break a}if(c-1>>>0>=3){i=c&-4;while(1){l=k<<2;J[J[l+b>>2]+212>>2]=-1;J[J[(l|4)+b>>2]+212>>2]=-1;J[J[(l|8)+b>>2]+212>>2]=-1;J[J[(l|12)+b>>2]+212>>2]=-1;k=k+4|0;n=n+4|0;if((i|0)!=(n|0)){continue}break}}l=c&3;if(!l){break a}i=0;while(1){J[J[(k<<2)+b>>2]+212>>2]=-1;k=k+1|0;i=i+1|0;if((l|0)!=(i|0)){continue}break}}r=J[a+12>>2];if((r|0)<=(c|0)){r=c+1|0;if(r){J[8369]=J[8369]+1;i=ia[J[6782]](P(r,244),16)|0}else{i=0}j=J[a+8>>2];if((j|0)>0){n=0;while(1){l=P(n,244);m=l+i|0;s=l+J[a+16>>2]|0;l=J[s+4>>2];J[m>>2]=J[s>>2];J[m+4>>2]=l;l=J[s+12>>2];J[m+8>>2]=J[s+8>>2];J[m+12>>2]=l;l=J[s+28>>2];J[m+24>>2]=J[s+24>>2];J[m+28>>2]=l;l=J[s+20>>2];J[m+16>>2]=J[s+16>>2];J[m+20>>2]=l;l=J[s+44>>2];J[m+40>>2]=J[s+40>>2];J[m+44>>2]=l;l=J[s+36>>2];J[m+32>>2]=J[s+32>>2];J[m+36>>2]=l;l=J[s+52>>2];J[m+48>>2]=J[s+48>>2];J[m+52>>2]=l;l=J[s+60>>2];J[m+56>>2]=J[s+56>>2];J[m+60>>2]=l;sa(m- -64|0,s- -64|0,180);n=n+1|0;if((j|0)!=(n|0)){continue}break}}l=J[a+16>>2];if(!(l?!l|!K[a+20|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](l)}J[a+16>>2]=i;H[a+20|0]=1;J[a+12>>2]=r}qa(p+8|0,0,244);i=J[a+8>>2];if((i|0)<0){if((r|0)<0){l=J[a+16>>2];if(!(l?!l|!K[a+20|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](l)}H[a+20|0]=1;J[a+12>>2]=0;J[a+16>>2]=0}m=p+72|0;while(1){j=J[a+16>>2]+P(i,244)|0;J[j>>2]=0;J[j+4>>2]=0;J[j+8>>2]=0;J[j+12>>2]=0;l=J[p+36>>2];J[j+24>>2]=J[p+32>>2];J[j+28>>2]=l;l=J[p+28>>2];J[j+16>>2]=J[p+24>>2];J[j+20>>2]=l;l=J[p+44>>2];J[j+32>>2]=J[p+40>>2];J[j+36>>2]=l;l=J[p+52>>2];J[j+40>>2]=J[p+48>>2];J[j+44>>2]=l;l=J[p+60>>2];J[j+48>>2]=J[p+56>>2];J[j+52>>2]=l;l=J[p+68>>2];J[j+56>>2]=J[p+64>>2];J[j+60>>2]=l;sa(j- -64|0,m,180);l=i;i=l+1|0;if(l>>>0<=i>>>0){continue}break}}J[a+8>>2]=0;if((c|0)>0){i=0;while(1){l=(i<<2)+b|0;m=yb(a,J[l>>2],N[h+12>>2]);j=J[l>>2];if(!(!(K[j+236|0]&2)|!j|(!(K[j+504|0]&2)|N[j+344>>2]==Q(0)))){l=J[a+16>>2];z=N[h+76>>2];I=N[j+336>>2];W=N[j+44>>2];X=N[j+40>>2];Z=N[j+36>>2];L=N[j+332>>2];_=N[j+28>>2];$=N[j+12>>2];q=N[j+404>>2];aa=N[j+24>>2];D=N[j+8>>2];u=N[j+400>>2];E=N[j+20>>2];M=N[j+328>>2];x=N[j+4>>2];o=N[j+396>>2];J[p+20>>2]=0;A=Q(Q(1)/q);t=Q(_*A);B=Q(Q(1)/o);q=Q(E*B);C=Q(Q(1)/u);o=Q(aa*C);u=Q(Q(I*Q(Q(W*t)+Q(Q(Z*q)+Q(X*o))))+Q(Q(M*Q(Q($*t)+Q(Q(x*q)+Q(D*o))))+Q(L*Q(Q(_*t)+Q(Q(E*q)+Q(aa*o))))));t=Q(A*$);q=Q(B*x);o=Q(C*D);o=Q(Q(I*Q(Q(W*t)+Q(Q(Z*q)+Q(X*o))))+Q(Q(M*Q(Q($*t)+Q(Q(x*q)+Q(D*o))))+Q(L*Q(Q(_*t)+Q(Q(E*q)+Q(o*aa))))));y=Q(Q(M*u)-Q(L*o));N[p+16>>2]=y;F=Q(I*o);t=Q(A*W);q=Q(B*Z);o=Q(C*X);o=Q(Q(I*Q(Q(W*t)+Q(Q(Z*q)+Q(X*o))))+Q(Q(M*Q(Q($*t)+Q(Q(x*q)+Q(D*o))))+Q(L*Q(Q(_*t)+Q(Q(E*q)+Q(aa*o))))));q=Q(F-Q(M*o));N[p+12>>2]=q;u=Q(Q(L*o)-Q(u*I));N[p+8>>2]=u;o=Q(Q(y*y)+Q(Q(u*u)+Q(q*q)));if(o>Q(z*z)){o=Q(Q(Q(1)/Q(Y(o)))*z);N[p+16>>2]=y*o;N[p+12>>2]=q*o;N[p+8>>2]=u*o}B=N[j+304>>2];C=N[j+272>>2];t=N[j+288>>2];q=N[j+300>>2];u=N[j+268>>2];o=N[j+284>>2];l=l+P(m,244)|0;x=N[p+16>>2];z=N[p+8>>2];y=N[p+12>>2];A=N[h+12>>2];N[l+224>>2]=N[l+224>>2]-Q(Q(Q(N[j+296>>2]*x)+Q(Q(N[j+264>>2]*z)+Q(y*N[j+280>>2])))*A);N[l+228>>2]=N[l+228>>2]-Q(A*Q(Q(q*x)+Q(Q(u*z)+Q(y*o))));N[l+232>>2]=N[l+232>>2]-Q(A*Q(Q(B*x)+Q(Q(C*z)+Q(y*t))))}i=i+1|0;if((i|0)!=(c|0)){continue}break}}b:{if((g|0)<=0){break b}k=0;if((g|0)!=1){i=g&-2;b=0;while(1){c=k<<2;l=J[c+f>>2];ia[J[J[l>>2]+8>>2]](l);J[l+36>>2]=0;c=J[(c|4)+f>>2];ia[J[J[c>>2]+8>>2]](c);J[c+36>>2]=0;k=k+2|0;b=b+2|0;if((i|0)!=(b|0)){continue}break}}if(!(g&1)){break b}b=J[(k<<2)+f>>2];ia[J[J[b>>2]+8>>2]](b);J[b+36>>2]=0}b=J[a+168>>2];if(!((g|0)<=(b|0)|J[a+172>>2]>=(g|0))){c:{if(!g){i=0;break c}J[8369]=J[8369]+1;i=ia[J[6782]](g<<3,16)|0;b=J[a+168>>2]}d:{if((b|0)<=0){break d}n=0;k=0;if(b-1>>>0>=3){s=b&-4;c=0;while(1){G=k<<3;j=G+i|0;m=G+J[a+176>>2]|0;l=J[m+4>>2];J[j>>2]=J[m>>2];J[j+4>>2]=l;l=G|8;j=l+i|0;m=l+J[a+176>>2]|0;l=J[m+4>>2];J[j>>2]=J[m>>2];J[j+4>>2]=l;l=G|16;j=l+i|0;m=l+J[a+176>>2]|0;l=J[m+4>>2];J[j>>2]=J[m>>2];J[j+4>>2]=l;l=G|24;j=l+i|0;m=l+J[a+176>>2]|0;l=J[m+4>>2];J[j>>2]=J[m>>2];J[j+4>>2]=l;k=k+4|0;c=c+4|0;if((s|0)!=(c|0)){continue}break}}m=b&3;if(!m){break d}while(1){b=k<<3;l=b+i|0;c=b+J[a+176>>2]|0;b=J[c+4>>2];J[l>>2]=J[c>>2];J[l+4>>2]=b;k=k+1|0;n=n+1|0;if((m|0)!=(n|0)){continue}break}}b=J[a+176>>2];if(!(b?!b|!K[a+180|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](b)}J[a+176>>2]=i;H[a+180|0]=1;J[a+172>>2]=g}J[a+168>>2]=g;n=0;if((g|0)>0){i=0;while(1){m=J[a+176>>2];l=(i<<2)+f|0;b=J[l>>2];c=J[b+44>>2];if(c){J[c>>2]=0;J[c+4>>2]=0;J[c+56>>2]=0;J[c+60>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;J[c+32>>2]=0;J[c+36>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;b=J[l>>2]}c=m+(i<<3)|0;e:{if(K[b+20|0]){ia[J[J[b>>2]+16>>2]](b,c);b=J[c>>2];break e}J[c>>2]=0;J[c+4>>2]=0;b=0}n=b+n|0;i=i+1|0;if((i|0)!=(g|0)){continue}break}}b=J[a+48>>2];if(!((n|0)<=(b|0)|J[a+52>>2]>=(n|0))){f:{if(!n){i=0;break f}J[8369]=J[8369]+1;i=ia[J[6782]](P(n,152),16)|0;b=J[a+48>>2]}g:{if((b|0)<=0){break g}m=b&1;k=0;if((b|0)!=1){l=b&-2;b=0;while(1){c=P(k,152);sa(c+i|0,c+J[a+56>>2]|0,152);c=P(k|1,152);sa(c+i|0,c+J[a+56>>2]|0,152);k=k+2|0;b=b+2|0;if((l|0)!=(b|0)){continue}break}}if(!m){break g}b=P(k,152);sa(b+i|0,b+J[a+56>>2]|0,152)}b=J[a+56>>2];if(!(b?!b|!K[a+60|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](b)}J[a+56>>2]=i;H[a+60|0]=1;J[a+52>>2]=n}J[a+48>>2]=n;if((g|0)>0){i=J[a+176>>2];while(1){l=ca<<3;k=l+i|0;if(J[k>>2]){G=(ca<<2)+f|0;ba=J[G>>2];v=J[ba+32>>2];i=J[a+56>>2];w=J[ba+28>>2];s=yb(a,w,N[h+12>>2]);j=yb(a,v,N[h+12>>2]);c=J[ba+24>>2];b=J[h+20>>2];m=(c|0)>0?c:b;if((m|0)>J[a+184>>2]){J[a+184>>2]=m}i=i+P(ma,152)|0;c=J[a+16>>2];n=0;if(J[k>>2]>0){while(1){b=qa(i+P(n,152)|0,0,152);J[b+120>>2]=-8388609;J[b+124>>2]=2139095039;J[b+148>>2]=j;J[b+144>>2]=s;J[b+96>>2]=0;J[b+100>>2]=0;J[b+136>>2]=m;n=n+1|0;if((n|0)>2]){continue}break}b=J[h+20>>2]}m=P(s,244)+c|0;J[m+64>>2]=0;J[m+68>>2]=0;J[m+144>>2]=0;J[m+148>>2]=0;J[m+88>>2]=0;J[m+92>>2]=0;J[m+80>>2]=0;J[m+84>>2]=0;J[m+72>>2]=0;J[m+76>>2]=0;J[m+152>>2]=0;J[m+156>>2]=0;J[m+160>>2]=0;J[m+164>>2]=0;J[m+168>>2]=0;J[m+172>>2]=0;c=P(j,244)+c|0;J[c+88>>2]=0;J[c+92>>2]=0;J[c+80>>2]=0;J[c+84>>2]=0;J[c+72>>2]=0;J[c+76>>2]=0;J[c+64>>2]=0;J[c+68>>2]=0;J[c+144>>2]=0;J[c+148>>2]=0;J[c+152>>2]=0;J[c+156>>2]=0;J[c+160>>2]=0;J[c+164>>2]=0;J[c+168>>2]=0;J[c+172>>2]=0;N[p+8>>2]=Q(1)/N[h+12>>2];o=N[h+32>>2];J[p+36>>2]=i+112;J[p+32>>2]=38;J[p+28>>2]=i+32;J[p+24>>2]=i+48;J[p+20>>2]=i;J[p+16>>2]=i+16;N[p+12>>2]=o;N[i+116>>2]=N[h+40>>2];o=N[h+4>>2];J[p+56>>2]=b;J[p+48>>2]=i+124;J[p+44>>2]=i+120;J[p+40>>2]=i+116;N[p+60>>2]=o;b=J[G>>2];ia[J[J[b>>2]+20>>2]](b,p+8|0);if(J[k>>2]>0){r=0;while(1){o=N[J[G>>2]+16>>2];j=i+P(r,152)|0;if(o<=N[j+124>>2]){N[j+124>>2]=o}o=Q(-o);if(o>=N[j+120>>2]){N[j+120>>2]=o}J[j+132>>2]=ba;b=J[ba+28>>2];D=N[b+268>>2];E=N[b+272>>2];x=N[b+548>>2];z=N[b+288>>2];y=N[b+280>>2];A=N[b+284>>2];B=N[b+552>>2];C=N[b+304>>2];t=N[b+296>>2];q=N[b+300>>2];u=N[b+544>>2];o=N[b+264>>2];J[j+76>>2]=0;F=N[j+8>>2];O=N[j>>2];S=N[j+4>>2];N[j+72>>2]=B*Q(Q(C*F)+Q(Q(t*O)+Q(q*S)));N[j+68>>2]=x*Q(Q(z*F)+Q(Q(y*O)+Q(S*A)));N[j+64>>2]=u*Q(Q(E*F)+Q(Q(o*O)+Q(D*S)));b=J[ba+32>>2];D=N[b+268>>2];E=N[b+272>>2];x=N[b+548>>2];z=N[b+288>>2];y=N[b+280>>2];A=N[b+284>>2];B=N[b+552>>2];C=N[b+304>>2];t=N[b+296>>2];q=N[b+300>>2];u=N[b+544>>2];o=N[b+264>>2];J[j+92>>2]=0;T=N[j+40>>2];U=N[j+32>>2];V=N[j+36>>2];N[j+88>>2]=B*Q(Q(C*T)+Q(Q(t*U)+Q(q*V)));N[j+84>>2]=x*Q(Q(z*T)+Q(Q(y*U)+Q(V*A)));N[j+80>>2]=u*Q(Q(E*T)+Q(Q(o*U)+Q(D*V)));na=Q(0);o=N[w+344>>2];da=N[j+24>>2];ea=N[j+16>>2];fa=N[j+20>>2];q=Q(Q(Q(Q(o*da)*da)+Q(Q(Q(o*ea)*ea)+Q(fa*Q(o*fa))))+Q(Q(F*Q(Q(F*N[w+304>>2])+Q(Q(O*N[w+296>>2])+Q(S*N[w+300>>2]))))+Q(Q(O*Q(Q(F*N[w+272>>2])+Q(Q(O*N[w+264>>2])+Q(S*N[w+268>>2]))))+Q(S*Q(Q(F*N[w+288>>2])+Q(Q(O*N[w+280>>2])+Q(S*N[w+284>>2])))))));o=N[v+344>>2];ha=N[j+56>>2];ja=N[j+48>>2];ka=N[j+52>>2];o=Q(Q(q+Q(Q(Q(o*ha)*ha)+Q(Q(Q(o*ja)*ja)+Q(ka*Q(o*ka)))))+Q(Q(T*Q(Q(T*N[v+304>>2])+Q(Q(U*N[v+296>>2])+Q(V*N[v+300>>2]))))+Q(Q(U*Q(Q(T*N[v+272>>2])+Q(Q(U*N[v+264>>2])+Q(V*N[v+268>>2]))))+Q(V*Q(Q(T*N[v+288>>2])+Q(Q(U*N[v+280>>2])+Q(V*N[v+284>>2])))))));la=Q(R(o))>Q(1.1920928955078125e-7)?Q(Q(1)/o):Q(0);N[j+108>>2]=la;oa=Q(0);pa=Q(0);ra=Q(0);I=Q(0);L=Q(0);M=Q(0);if(J[m+240>>2]){L=N[m+228>>2];I=N[m+224>>2];pa=N[m+212>>2];ra=N[m+208>>2];oa=N[m+216>>2];M=N[m+232>>2]}W=Q(0);X=Q(0);Z=Q(0);_=Q(0);$=Q(0);if(J[c+240>>2]){_=N[c+228>>2];Z=N[c+224>>2];W=N[c+212>>2];X=N[c+208>>2];na=N[c+216>>2];$=N[c+232>>2]}aa=N[w+320>>2];D=N[w+312>>2];E=N[w+316>>2];x=N[w+336>>2];z=N[w+328>>2];y=N[w+332>>2];A=N[v+320>>2];B=N[v+312>>2];C=N[v+316>>2];t=N[v+336>>2];q=N[v+328>>2];u=N[v+332>>2];o=N[p+60>>2];J[j+100>>2]=0;N[j+112>>2]=Q(la*N[j+112>>2])+Q(la*Q(Q(0)-Q(o*Q(Q(Q(Q(da*Q(oa+aa))+Q(Q(ea*Q(ra+D))+Q(fa*Q(pa+E))))+Q(Q(F*Q(M+x))+Q(Q(O*Q(I+z))+Q(S*Q(L+y)))))+Q(Q(Q(ha*Q(na+A))+Q(Q(ja*Q(X+B))+Q(ka*Q(W+C))))+Q(Q(T*Q($+t))+Q(Q(U*Q(Z+q))+Q(V*Q(_+u)))))))));r=r+1|0;if((r|0) >2]){continue}break}}i=J[a+176>>2];b=J[l+i>>2]}else{b=0}ma=b+ma|0;ca=ca+1|0;if((ca|0)!=(g|0)){continue}break}}ia[J[J[a>>2]+28>>2]](a,d,e,h);m=J[a+68>>2];j=J[a+28>>2];n=J[a+128>>2];l=J[a+48>>2];if(!((n|0)>=(l|0)|(l|0)<=J[a+132>>2])){h:{if(!l){i=0;break h}J[8369]=J[8369]+1;i=ia[J[6782]](l<<2,16)|0;n=J[a+128>>2]}f=J[a+136>>2];i:{j:{if((n|0)>0){c=0;k=0;if(n-1>>>0>=3){d=n&-4;r=0;while(1){e=k<<2;J[e+i>>2]=J[e+f>>2];b=e|4;J[b+i>>2]=J[b+f>>2];b=e|8;J[b+i>>2]=J[b+f>>2];b=e|12;J[b+i>>2]=J[b+f>>2];k=k+4|0;r=r+4|0;if((d|0)!=(r|0)){continue}break}}d=n&3;if(d){while(1){b=k<<2;J[b+i>>2]=J[b+f>>2];k=k+1|0;c=c+1|0;if((d|0)!=(c|0)){continue}break}}if(K[a+140|0]){break j}break i}if(!f|!K[a+140|0]){break i}}if(f){J[8370]=J[8370]+1;ia[J[6783]](f)}}J[a+136>>2]=i;J[a+132>>2]=l;H[a+140|0]=1}J[a+128>>2]=l;k:{if(K[h+64|0]&16){n=J[a+108>>2];e=j<<1;if(!((n|0)>=(e|0)|(e|0)<=J[a+112>>2])){l:{if(!j){i=0;break l}J[8369]=J[8369]+1;i=ia[J[6782]](j<<3,16)|0;n=J[a+108>>2]}g=J[a+116>>2];m:{n:{if((n|0)>0){c=0;k=0;if(n-1>>>0>=3){d=n&-4;r=0;while(1){f=k<<2;J[f+i>>2]=J[f+g>>2];b=f|4;J[b+i>>2]=J[b+g>>2];b=f|8;J[b+i>>2]=J[b+g>>2];b=f|12;J[b+i>>2]=J[b+g>>2];k=k+4|0;r=r+4|0;if((d|0)!=(r|0)){continue}break}}d=n&3;if(d){while(1){b=k<<2;J[b+i>>2]=J[b+g>>2];k=k+1|0;c=c+1|0;if((d|0)!=(c|0)){continue}break}}if(K[a+120|0]){break n}break m}if(!g|!K[a+120|0]){break m}}if(g){J[8370]=J[8370]+1;ia[J[6783]](g)}}J[a+116>>2]=i;J[a+112>>2]=e;H[a+120|0]=1}J[a+108>>2]=e;break k}n=J[a+108>>2];if(!((j|0)<=(n|0)|(j|0)<=J[a+112>>2])){o:{if(!j){i=0;break o}J[8369]=J[8369]+1;i=ia[J[6782]](j<<2,16)|0;n=J[a+108>>2]}f=J[a+116>>2];p:{q:{if((n|0)>0){c=0;k=0;if(n-1>>>0>=3){d=n&-4;r=0;while(1){e=k<<2;J[e+i>>2]=J[e+f>>2];b=e|4;J[b+i>>2]=J[b+f>>2];b=e|8;J[b+i>>2]=J[b+f>>2];b=e|12;J[b+i>>2]=J[b+f>>2];k=k+4|0;r=r+4|0;if((d|0)!=(r|0)){continue}break}}d=n&3;if(d){while(1){b=k<<2;J[b+i>>2]=J[b+f>>2];k=k+1|0;c=c+1|0;if((d|0)!=(c|0)){continue}break}}if(K[a+120|0]){break q}break p}if(!f|!K[a+120|0]){break p}}if(f){J[8370]=J[8370]+1;ia[J[6783]](f)}}J[a+116>>2]=i;J[a+112>>2]=j;H[a+120|0]=1}J[a+108>>2]=j}n=J[a+148>>2];if(!((m|0)<=(n|0)|(m|0)<=J[a+152>>2])){r:{if(!m){i=0;break r}J[8369]=J[8369]+1;i=ia[J[6782]](m<<2,16)|0;n=J[a+148>>2]}f=J[a+156>>2];s:{t:{if((n|0)>0){c=0;k=0;if(n-1>>>0>=3){d=n&-4;r=0;while(1){e=k<<2;J[e+i>>2]=J[e+f>>2];b=e|4;J[b+i>>2]=J[b+f>>2];b=e|8;J[b+i>>2]=J[b+f>>2];b=e|12;J[b+i>>2]=J[b+f>>2];k=k+4|0;r=r+4|0;if((d|0)!=(r|0)){continue}break}}d=n&3;if(d){while(1){b=k<<2;J[b+i>>2]=J[b+f>>2];k=k+1|0;c=c+1|0;if((d|0)!=(c|0)){continue}break}}if(K[a+160|0]){break t}break s}if(!f|!K[a+160|0]){break s}}if(f){J[8370]=J[8370]+1;ia[J[6783]](f)}}J[a+156>>2]=i;J[a+152>>2]=m;H[a+160|0]=1}J[a+148>>2]=m;u:{if((l|0)<=0){break u}e=J[a+136>>2];b=0;k=0;if(l-1>>>0>=7){d=l&-8;n=0;while(1){J[e+(k<<2)>>2]=k;c=k|1;J[e+(c<<2)>>2]=c;c=k|2;J[e+(c<<2)>>2]=c;c=k|3;J[e+(c<<2)>>2]=c;c=k|4;J[e+(c<<2)>>2]=c;c=k|5;J[e+(c<<2)>>2]=c;c=k|6;J[e+(c<<2)>>2]=c;c=k|7;J[e+(c<<2)>>2]=c;k=k+8|0;n=n+8|0;if((d|0)!=(n|0)){continue}break}}c=l&7;if(!c){break u}while(1){J[e+(k<<2)>>2]=k;k=k+1|0;b=b+1|0;if((c|0)!=(b|0)){continue}break}}v:{if((j|0)<=0){break v}e=J[a+116>>2];b=0;k=0;if(j-1>>>0>=7){d=j&-8;n=0;while(1){J[e+(k<<2)>>2]=k;c=k|1;J[e+(c<<2)>>2]=c;c=k|2;J[e+(c<<2)>>2]=c;c=k|3;J[e+(c<<2)>>2]=c;c=k|4;J[e+(c<<2)>>2]=c;c=k|5;J[e+(c<<2)>>2]=c;c=k|6;J[e+(c<<2)>>2]=c;c=k|7;J[e+(c<<2)>>2]=c;k=k+8|0;n=n+8|0;if((d|0)!=(n|0)){continue}break}}c=j&7;if(!c){break v}while(1){J[e+(k<<2)>>2]=k;k=k+1|0;b=b+1|0;if((c|0)!=(b|0)){continue}break}}w:{if((m|0)<=0){break w}d=J[a+156>>2];b=0;k=0;if(m-1>>>0>=7){c=m&-8;n=0;while(1){J[d+(k<<2)>>2]=k;a=k|1;J[d+(a<<2)>>2]=a;a=k|2;J[d+(a<<2)>>2]=a;a=k|3;J[d+(a<<2)>>2]=a;a=k|4;J[d+(a<<2)>>2]=a;a=k|5;J[d+(a<<2)>>2]=a;a=k|6;J[d+(a<<2)>>2]=a;a=k|7;J[d+(a<<2)>>2]=a;k=k+8|0;n=n+8|0;if((c|0)!=(n|0)){continue}break}}a=m&7;if(!a){break w}while(1){J[d+(k<<2)>>2]=k;k=k+1|0;b=b+1|0;if((a|0)!=(b|0)){continue}break}}xa();ga=p+256|0;return Q(Q(0))}function eg(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=Q(0),n=0,o=0,p=0,q=0,r=0,s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=0,z=Q(0),A=Q(0),B=0,C=0,D=0,E=0;h=ga-144|0;ga=h;a:{if((c|0)<=0){b=J[a+12>>2];if(!(b?!b|!K[a+16|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](b)}J[a+12>>2]=0;H[a+16|0]=1;J[a+4>>2]=0;J[a+8>>2]=0;b=J[a+32>>2];if(!(b?!b|!K[a+36|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](b)}J[a+32>>2]=0;H[a+36|0]=1;J[a+24>>2]=0;J[a+28>>2]=0;b=J[a+52>>2];if(!(b?!b|!K[a+56|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](b)}J[a+52>>2]=0;H[a+56|0]=1;J[a+44>>2]=0;J[a+48>>2]=0;break a}H[h+112|0]=1;J[h+88>>2]=0;J[h+92>>2]=256;J[h+72>>2]=0;J[h+76>>2]=256;J[h+56>>2]=0;J[h+60>>2]=256;J[h+108>>2]=0;J[h+100>>2]=0;J[h+104>>2]=0;J[h+80>>2]=0;J[h+84>>2]=0;J[h+64>>2]=0;J[h+68>>2]=0;J[h+48>>2]=0;J[h+52>>2]=0;f=h+16|0;g=ga-48|0;ga=g;z=Q(-1.0000000150474662e30);A=Q(1.0000000150474662e30);k=c;b:{if((c|0)>0){c=b;m=Q(1.0000000150474662e30);s=Q(1.0000000150474662e30);t=Q(-1.0000000150474662e30);x=Q(-1.0000000150474662e30);while(1){u=N[c+8>>2];z=u>z?u:z;v=N[c+4>>2];t=t >2];x=x v?v:m;s=s>w?w:s;c=c+16|0;e=e+1|0;if((k|0)!=(e|0)){continue}break}break b}x=Q(-1.0000000150474662e30);t=Q(-1.0000000150474662e30);s=Q(1.0000000150474662e30);m=Q(1.0000000150474662e30)}u=Q(x-s);v=Q(t-m);d=u (d?v:u)?2:d;J[f+112>>2]=c;e=w>(d?u:v)?!d:2;if((c|0)==(e|0)){e=(c+1>>>0)%3|0}J[f+104>>2]=e;J[f+12>>2]=0;J[f+28>>2]=0;d=c+e|0;J[f+108>>2]=3-d;N[f+24>>2]=Q(z+A)*Q(.5);N[f+20>>2]=Q(t+m)*Q(.5);N[f+16>>2]=Q(x+s)*Q(.5);m=Q(w*Q(9788566967472434e-20));c=(c|0)==(((4-d&255)>>>0)%3|0);m=c?m:Q(-m);N[f+8>>2]=m;s=Q(v*Q(9788566967472434e-20));s=c?s:Q(-s);N[f+4>>2]=s;t=Q(u*Q(9788566967472434e-20));t=c?t:Q(-t);N[f>>2]=t;J[g+32>>2]=0;J[g+36>>2]=0;H[g+40|0]=1;c:{d:{if((k|0)>0){J[8369]=J[8369]+1;J[g+36>>2]=ia[J[6782]](k<<4,16);H[g+40|0]=1;J[g+32>>2]=k;J[g+28>>2]=k;if((k|0)<=0){break c}x=m!=Q(0)?Q(Q(1)/m):m;s=s!=Q(0)?Q(Q(1)/s):s;t=t!=Q(0)?Q(Q(1)/t):t;c=g+8|0;l=c+(J[f+104>>2]<<2)|0;r=c+(J[f+112>>2]<<2)|0;j=c+(J[f+108>>2]<<2)|0;z=N[f+24>>2];A=N[f+20>>2];u=N[f+16>>2];i=J[g+36>>2];e=0;while(1){m=N[b>>2];v=N[b+4>>2];w=N[b+8>>2];J[g+20>>2]=0;N[g+16>>2]=x*Q(w-z);N[g+12>>2]=s*Q(v-A);N[g+8>>2]=t*Q(m-u);c=i+(e<<4)|0;m=N[j>>2];e:{if(Q(R(m)) >2]=d;m=N[r>>2];f:{if(Q(R(m))>2]=d;m=N[l>>2];J[c+12>>2]=e;if(Q(R(m))>2]=d;b=b+16|0;e=e+1|0;if((k|0)!=(e|0)){continue}break}break d}J[g+28>>2]=k;break c}if((k|0)<2){break c}Rj(g+24|0,g+8|0,0,k-1|0)}J[f+44>>2]=k;J[f+40>>2]=0;J[f+36>>2]=J[f+32>>2];b=J[f+84>>2];g:{if((k|0)<=(b|0)){break g}if((k|0)>J[f+88>>2]){if(k){J[8369]=J[8369]+1;p=ia[J[6782]](k<<2,16)|0;e=J[f+84>>2]}else{e=b}h:{if((e|0)<=0){break h}l=0;c=0;if(e-1>>>0>=3){j=e&-4;d=0;while(1){r=c<<2;J[r+p>>2]=J[r+J[f+92>>2]>>2];i=r|4;J[i+p>>2]=J[i+J[f+92>>2]>>2];i=r|8;J[i+p>>2]=J[i+J[f+92>>2]>>2];r=r|12;J[r+p>>2]=J[r+J[f+92>>2]>>2];c=c+4|0;d=d+4|0;if((j|0)!=(d|0)){continue}break}}d=e&3;if(!d){break h}while(1){e=c<<2;J[e+p>>2]=J[e+J[f+92>>2]>>2];c=c+1|0;l=l+1|0;if((d|0)!=(l|0)){continue}break}}c=J[f+92>>2];if(!(c?!c|!K[f+96|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](c)}J[f+92>>2]=p;H[f+96|0]=1;J[f+88>>2]=k}d=k+(b^-1)|0;e=k-b&3;if(e){c=0;while(1){J[J[f+92>>2]+(b<<2)>>2]=0;b=b+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}}if(d>>>0<3){break g}while(1){c=b<<2;J[c+J[f+92>>2]>>2]=0;J[(c+J[f+92>>2]|0)+4>>2]=0;J[(c+J[f+92>>2]|0)+8>>2]=0;J[(c+J[f+92>>2]|0)+12>>2]=0;b=b+4|0;if((k|0)!=(b|0)){continue}break}}J[f+84>>2]=k;if((k|0)>0){p=0;while(1){d=J[f+40>>2];i:{if(d){break i}b=J[f+36>>2];j:{if(b){J[f+36>>2]=J[b+8>>2];break j}J[8369]=J[8369]+1;b=ia[J[6782]](12,16)|0;c=J[f+44>>2];J[b+8>>2]=0;J[b+4>>2]=c;J[8369]=J[8369]+1;J[b>>2]=ia[J[6782]](P(c,112),16);J[b+8>>2]=J[f+32>>2];J[f+32>>2]=b}d=J[b>>2];r=J[b+4>>2];if((r|0)<=0){break i}i=0;l=0;c=d;if(r-1>>>0>=3){q=r&-4;e=0;b=d;j=0;while(1){c=b+448|0;l=e+4|0;J[b+336>>2]=(r|0)>(l|0)?c:0;J[b+224>>2]=(r|0)>(e|3)?b+336|0:0;J[b+112>>2]=(r|0)>(e|2)?b+224|0:0;J[b>>2]=(r|0)>(e|1)?b+112|0:0;e=l;b=c;j=j+4|0;if((q|0)!=(j|0)){continue}break}}b=r&3;if(!b){break i}while(1){e=c;c=c+112|0;l=l+1|0;J[e>>2]=(r|0)>(l|0)?c:0;i=i+1|0;if((b|0)!=(i|0)){continue}break}}J[f+40>>2]=J[d>>2];J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;J[d>>2]=0;J[d+4>>2]=0;J[d+104>>2]=-1;b=J[g+36>>2]+(p<<4)|0;c=J[b+4>>2];J[d+88>>2]=J[b>>2];J[d+92>>2]=c;c=J[b+12>>2];J[d+96>>2]=J[b+8>>2];J[d+100>>2]=c;J[J[f+92>>2]+(p<<2)>>2]=d;p=p+1|0;if((k|0)!=(p|0)){continue}break}}b=J[g+36>>2];if(!(b?!b|!K[g+40|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](b)}J[g+36>>2]=0;H[g+40|0]=1;J[g+28>>2]=0;J[g+32>>2]=0;J[f+100>>2]=-3;J[f+56>>2]=0;J[f+60>>2]=P(k,6);J[f+116>>2]=0;J[f+120>>2]=0;J[f+52>>2]=J[f+48>>2];J[g+16>>2]=0;J[g+20>>2]=0;J[g+8>>2]=0;J[g+12>>2]=0;fg(f,0,k,g+8|0);J[f+124>>2]=J[g+8>>2];b=J[g+36>>2];if(!(b?!b|!K[g+40|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](b)}ga=g+48|0;if((J[a+4>>2]&J[a+8>>2])<0){b=J[a+12>>2];if(!(b?!b|!K[a+16|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](b)}H[a+16|0]=1;J[a+8>>2]=0;J[a+12>>2]=0}J[a+4>>2]=0;d=J[a+24>>2];k:{if((d|0)>=0){break k}if(J[a+28>>2]<0){b=J[a+32>>2];if(!(b?!b|!K[a+36|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](b)}H[a+36|0]=1;J[a+28>>2]=0;J[a+32>>2]=0}b=0;c=d;l=0-c&3;if(l){while(1){e=J[a+32>>2]+P(c,12)|0;J[e>>2]=0;J[e+4>>2]=0;J[e+8>>2]=0;c=c+1|0;b=b+1|0;if((l|0)!=(b|0)){continue}break}}if(d>>>0>4294967292){break k}while(1){b=P(c,12);d=b+J[a+32>>2]|0;J[d>>2]=0;J[d+4>>2]=0;J[d+8>>2]=0;d=b+J[a+32>>2]|0;J[d+20>>2]=0;J[d+12>>2]=0;J[d+16>>2]=0;d=b+J[a+32>>2]|0;J[d+32>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;b=b+J[a+32>>2]|0;J[b+44>>2]=0;J[b+36>>2]=0;J[b+40>>2]=0;c=c+4|0;if(c){continue}break}}J[a+24>>2]=0;c=J[a+44>>2];if((c|0)<0){b=J[a+52>>2];if(J[a+48>>2]<0){if(!(b?!b|!K[a+56|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](b)}H[a+56|0]=1;J[a+48>>2]=0;J[a+52>>2]=0;b=0}d=b;b=c<<2;qa(d+b|0,0,0-b|0)}J[a+44>>2]=0;b=J[h+140>>2];l:{if(J[b+104>>2]>=0){break l}J[b+104>>2]=0;J[8369]=J[8369]+1;f=ia[J[6782]](4,16)|0;J[f>>2]=b;c=0;k=1;l=1;while(1){r=c;d=ga-16|0;ga=d;m:{n:{o:{p:{q=J[(c<<2)+f>>2];b=q;q:{if(J[b+100>>2]>=0){N[d+(J[h+124>>2]<<2)>>2]=J[b+88>>2];break q}m=dc(b+24|0);c=b+72|0;s=dc(c);e=J[b+100>>2];N[d+(J[h+124>>2]<<2)>>2]=m/s;if((e|0)<0){break p}}N[d+(J[h+128>>2]<<2)>>2]=J[b+92>>2];break o}m=dc(b+40|0);s=dc(c);c=J[b+100>>2];N[d+(J[h+128>>2]<<2)>>2]=m/s;if((c|0)<0){break n}}m=Q(J[b+96>>2]);break m}m=Q(dc(b+56|0)/dc(b+72|0))}N[d+(J[h+120>>2]<<2)>>2]=m;m=N[h+36>>2];s=N[h+40>>2];t=N[h+32>>2];x=N[h+16>>2];z=N[h+20>>2];A=N[h+24>>2];u=N[d>>2];v=N[d+4>>2];w=N[d+8>>2];J[h+12>>2]=0;N[h+8>>2]=s+Q(w*A);N[h+4>>2]=m+Q(v*z);N[h>>2]=t+Q(u*x);ga=d+16|0;b=J[a+4>>2];r:{if((b|0)!=J[a+8>>2]){break r}e=b?b<<1:1;if((e|0)<=(b|0)){break r}s:{if(!e){d=0;break s}J[8369]=J[8369]+1;d=ia[J[6782]](e<<4,16)|0;b=J[a+4>>2]}t:{if((b|0)<=0){break t}c=0;if((b|0)!=1){n=b&-2;p=0;while(1){j=c<<4;i=j+d|0;g=j+J[a+12>>2]|0;o=J[g+4>>2];J[i>>2]=J[g>>2];J[i+4>>2]=o;o=J[g+12>>2];J[i+8>>2]=J[g+8>>2];J[i+12>>2]=o;g=j|16;j=g+d|0;g=g+J[a+12>>2]|0;i=J[g+4>>2];J[j>>2]=J[g>>2];J[j+4>>2]=i;i=J[g+12>>2];J[j+8>>2]=J[g+8>>2];J[j+12>>2]=i;c=c+2|0;p=p+2|0;if((n|0)!=(p|0)){continue}break}}if(!(b&1)){break t}c=c<<4;b=c+d|0;c=c+J[a+12>>2]|0;g=J[c+4>>2];J[b>>2]=J[c>>2];J[b+4>>2]=g;g=J[c+12>>2];J[b+8>>2]=J[c+8>>2];J[b+12>>2]=g}b=J[a+12>>2];if(!(b?!b|!K[a+16|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](b)}J[a+12>>2]=d;H[a+16|0]=1;J[a+8>>2]=e;b=J[a+4>>2]}c=J[h+4>>2];b=J[a+12>>2]+(b<<4)|0;J[b>>2]=J[h>>2];J[b+4>>2]=c;c=J[h+12>>2];J[b+8>>2]=J[h+8>>2];J[b+12>>2]=c;J[a+4>>2]=J[a+4>>2]+1;p=-1;g=-1;D=J[q+8>>2];c=D;if(c){while(1){if(J[c+20>>2]<0){d=J[a+24>>2];b=d;u:{if((b|0)!=J[a+28>>2]){break u}b=d;q=b?b<<1:1;if((b|0)>=(q|0)){break u}v:{if(!q){i=0;b=d;break v}J[8369]=J[8369]+1;i=ia[J[6782]](P(q,12),16)|0;b=J[a+24>>2]}j=b;w:{if((j|0)<=0){break w}b=0;if((j|0)!=1){B=j&-2;e=0;while(1){o=P(b,12);n=o+J[a+32>>2]|0;y=J[n+4>>2];o=i+o|0;J[o>>2]=J[n>>2];J[o+4>>2]=y;J[o+8>>2]=J[n+8>>2];o=P(b|1,12);n=o+J[a+32>>2]|0;y=J[n+4>>2];o=i+o|0;J[o>>2]=J[n>>2];J[o+4>>2]=y;J[o+8>>2]=J[n+8>>2];b=b+2|0;e=e+2|0;if((B|0)!=(e|0)){continue}break}}if(!(j&1)){break w}e=P(b,12);b=e+J[a+32>>2]|0;j=J[b+4>>2];e=e+i|0;J[e>>2]=J[b>>2];J[e+4>>2]=j;J[e+8>>2]=J[b+8>>2]}b=J[a+32>>2];if(!(b?!b|!K[a+36|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](b)}J[a+32>>2]=i;H[a+36|0]=1;J[a+28>>2]=q;b=J[a+24>>2]}b=J[a+32>>2]+P(b,12)|0;J[b>>2]=0;J[b+4>>2]=0;J[b+8>>2]=0;e=J[a+24>>2]+1|0;J[a+24>>2]=e;x:{if(J[a+28>>2]!=(e|0)){break x}j=e?e<<1:1;if((j|0)<=(e|0)){break x}y:{if(!j){i=0;break y}J[8369]=J[8369]+1;i=ia[J[6782]](P(j,12),16)|0;e=J[a+24>>2]}z:{if((e|0)<=0){break z}o=e&1;b=0;if((e|0)!=1){B=e&-2;e=0;while(1){n=P(b,12);q=n+J[a+32>>2]|0;y=J[q+4>>2];n=i+n|0;J[n>>2]=J[q>>2];J[n+4>>2]=y;J[n+8>>2]=J[q+8>>2];n=P(b|1,12);q=n+J[a+32>>2]|0;y=J[q+4>>2];n=i+n|0;J[n>>2]=J[q>>2];J[n+4>>2]=y;J[n+8>>2]=J[q+8>>2];b=b+2|0;e=e+2|0;if((B|0)!=(e|0)){continue}break}}if(!o){break z}e=P(b,12);b=e+J[a+32>>2]|0;q=J[b+4>>2];e=e+i|0;J[e>>2]=J[b>>2];J[e+4>>2]=q;J[e+8>>2]=J[b+8>>2]}b=J[a+32>>2];if(!(b?!b|!K[a+36|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](b)}J[a+32>>2]=i;H[a+36|0]=1;J[a+28>>2]=j;e=J[a+24>>2]}b=J[a+32>>2]+P(e,12)|0;J[b>>2]=0;J[b+4>>2]=0;J[b+8>>2]=0;J[a+24>>2]=J[a+24>>2]+1;i=J[a+32>>2];J[c+20>>2]=d;y=d+1|0;J[J[c+8>>2]+20>>2]=y;q=i+P(d,12)|0;J[q+16>>2]=-1;J[q+4>>2]=1;n=J[c+12>>2];d=J[n+104>>2];A:{if((d|0)>=0){b=k;k=d;break A}J[n+104>>2]=k;B:{C:{if((k|0)!=(l|0)){break C}e=l?l<<1:1;if((l|0)>=(e|0)){break C}if(e){J[8369]=J[8369]+1;d=ia[J[6782]](e<<2,16)|0}else{d=0}D:{if((l|0)>0){o=l&3;B=0;b=0;if(l-1>>>0>=3){E=l&-4;l=0;while(1){j=b<<2;J[j+d>>2]=J[f+j>>2];C=j|4;J[C+d>>2]=J[f+C>>2];C=j|8;J[C+d>>2]=J[f+C>>2];j=j|12;J[j+d>>2]=J[f+j>>2];b=b+4|0;l=l+4|0;if((E|0)!=(l|0)){continue}break}}if(!o){break D}while(1){l=b<<2;J[l+d>>2]=J[f+l>>2];b=b+1|0;B=B+1|0;if((o|0)!=(B|0)){continue}break}break D}if(!f){break B}}if(f){J[8370]=J[8370]+1;ia[J[6783]](f)}break B}d=f;e=l}J[(k<<2)+d>>2]=n;b=k+1|0;f=d;l=e}J[q+8>>2]=k;J[(i+P(y,12)|0)+8>>2]=r;k=b}b=J[c+20>>2];d=b;if((p|0)>=0){J[J[a+32>>2]+P(b,12)>>2]=p-b;d=g}p=b;g=d;c=J[c>>2];if((D|0)!=(c|0)){continue}break}J[J[a+32>>2]+P(g,12)>>2]=p-g}c=r+1|0;if((k|0)>(c|0)){continue}break}l=0;while(1){q=J[J[(l<<2)+f>>2]+8>>2];b=q;if(b){while(1){c=J[b+20>>2];if((c|0)>=0){i=J[a+44>>2];E:{if((i|0)!=J[a+48>>2]){break E}p=i?i<<1:1;if((p|0)<=(i|0)){break E}F:{if(!p){d=0;break F}J[8369]=J[8369]+1;d=ia[J[6782]](p<<2,16)|0;i=J[a+44>>2]}k=J[a+52>>2];G:{H:{if((i|0)>0){e=0;c=0;if(i-1>>>0>=3){n=i&-4;j=0;while(1){g=c<<2;J[g+d>>2]=J[g+k>>2];o=g|4;J[o+d>>2]=J[k+o>>2];o=g|8;J[o+d>>2]=J[k+o>>2];g=g|12;J[g+d>>2]=J[g+k>>2];c=c+4|0;j=j+4|0;if((n|0)!=(j|0)){continue}break}}g=i&3;if(!g){break H}while(1){j=c<<2;J[j+d>>2]=J[k+j>>2];c=c+1|0;e=e+1|0;if((g|0)!=(e|0)){continue}break}break H}if(!k){break G}}if(k?K[a+56|0]:0){J[8370]=J[8370]+1;ia[J[6783]](k)}i=J[a+44>>2]}J[a+52>>2]=d;H[a+56|0]=1;J[a+48>>2]=p;c=J[b+20>>2]}J[J[a+52>>2]+(i<<2)>>2]=c;J[a+44>>2]=J[a+44>>2]+1;c=b;while(1){J[c+20>>2]=-1;c=J[J[c+8>>2]+4>>2];if((c|0)!=(b|0)){continue}break}}b=J[b>>2];if((q|0)!=(b|0)){continue}break}}b=(l|0)==(r|0);l=l+1|0;if(!b){continue}break}if(!f){break l}if(f){J[8370]=J[8370]+1;ia[J[6783]](f)}}a=J[h+108>>2];if(!(a?!a|!K[h+112|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](a)}J[h+108>>2]=0;H[h+112|0]=1;J[h+100>>2]=0;J[h+104>>2]=0;while(1){a=J[h+80>>2];if(a){J[h+80>>2]=J[a+8>>2];b=J[a>>2];if(b){J[8370]=J[8370]+1;ia[J[6783]](b)}if(a){J[8370]=J[8370]+1;ia[J[6783]](a)}continue}break}while(1){a=J[h+64>>2];if(a){J[h+64>>2]=J[a+8>>2];b=J[a>>2];if(b){J[8370]=J[8370]+1;ia[J[6783]](b)}if(a){J[8370]=J[8370]+1;ia[J[6783]](a)}continue}break}while(1){a=J[h+48>>2];if(!a){break a}J[h+48>>2]=J[a+8>>2];b=J[a>>2];if(b){J[8370]=J[8370]+1;ia[J[6783]](b)}if(a){J[8370]=J[8370]+1;ia[J[6783]](a)}continue}}ga=h+144|0}function fg(a,b,c,d){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,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,K=0;u=ga-16|0;ga=u;a:{b:{c:{d:{e:{f:{f=c-b|0;switch(f|0){case 1:break d;case 2:break e;case 0:break f;default:break b}}J[d>>2]=0;J[d+4>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;break a}c=J[J[a+92>>2]+(b<<2)>>2];f=J[c+204>>2];b=c+112|0;k=J[c+88>>2];o=J[c+200>>2];i=(k|0)!=(o|0);g=J[c+92>>2];g:{if(!(i|(g|0)!=(f|0))){if(J[c+96>>2]==J[c+208>>2]){break c}f=J[c+96>>2]>J[c+208>>2];k=f?b:c;J[k+4>>2]=k;J[k>>2]=k;J[d+4>>2]=k;J[d>>2]=k;b=f?c:b;f=k;c=f;break g}J[c+4>>2]=b;J[c>>2]=b;J[c+116>>2]=c;J[c+112>>2]=c;n=(g-f|0)<0;j=n&(k|0)==(o|0);k=(k|0)<(o|0);o=j|k;J[d+4>>2]=o?b:c;J[d>>2]=o?c:b;if(n){k=c;f=b;break g}g=k&(i&(f|0)==(g|0));f=g?b:c;k=g?c:b}J[d+12>>2]=f;J[d+8>>2]=k;a=gg(a,c,b);J[a+4>>2]=a;J[a>>2]=a;J[c+8>>2]=a;a=J[a+8>>2];J[a+4>>2]=a;J[a>>2]=a;J[b+8>>2]=a;break a}c=J[J[a+92>>2]+(b<<2)>>2]}J[c+8>>2]=0;J[c+4>>2]=c;J[c>>2]=c;J[d+12>>2]=c;J[d+8>>2]=c;J[d+4>>2]=c;J[d>>2]=c;break a}f=((f|0)/2|0)+b|0;k=f;h:{if((c|0)<=(f|0)){break h}o=J[a+92>>2];g=J[(o+(f<<2)|0)-4>>2];i=J[g+88>>2];n=J[g+96>>2];j=J[g+92>>2];k=f;while(1){g=J[o+(k<<2)>>2];if((i|0)!=J[g+88>>2]|(j|0)!=J[g+92>>2]|(n|0)!=J[g+96>>2]){break h}k=k+1|0;if((k|0)<(c|0)){continue}break}k=c}fg(a,b,f,d);J[u+8>>2]=0;J[u+12>>2]=0;J[u>>2]=0;J[u+4>>2]=0;fg(a,k,c,u);r=a;k=0;h=ga-128|0;ga=h;i:{if(!J[u+4>>2]){break i}if(!J[d+4>>2]){a=J[u+4>>2];J[d>>2]=J[u>>2];J[d+4>>2]=a;a=J[u+12>>2];J[d+8>>2]=J[u+8>>2];J[d+12>>2]=a;break i}J[r+100>>2]=J[r+100>>2]-1;J[h+124>>2]=0;J[h+120>>2]=0;t=d;a=J[d+12>>2];d=J[u+8>>2];j:{k:{l:{if(J[a+88>>2]!=J[d+88>>2]|J[a+92>>2]!=J[d+92>>2]){break l}b=J[d+4>>2];if((b|0)==(d|0)){J[h+124>>2]=a;b=J[d+8>>2];a=0;if(!b){break k}J[h+120>>2]=J[b+12>>2];a=0;break j}c=J[d>>2];J[b>>2]=c;J[c+4>>2]=b;if(J[u>>2]==(d|0)){a=c;f=J[a+88>>2];g=J[b+88>>2];i=a;m:{if((f|0)<(g|0)){break m}if((f|0)==(g|0)){i=c;if(J[a+92>>2]>2]){break m}}i=b}J[u>>2]=i}if(J[u+4>>2]!=(d|0)){break l}a=J[c+88>>2];d=J[b+88>>2];J[u+4>>2]=(a|0)>(d|0)|(a|0)==(d|0)&J[c+92>>2]>J[b+92>>2]?c:b}i=J[u>>2];n=J[t>>2];j=J[u+4>>2];p=J[t+4>>2];g=J[p+88>>2];b=J[j+88>>2]-g|0;n:{if((b|0)>0){a=j;c=p;while(1){d=a;f=J[a+92>>2];g=b;while(1){o:{b=J[c+92>>2];o=f-b|0;a=J[c+4>>2];if((a|0)==(c|0)){break o}e=J[a+92>>2]-b|0;if((e|0)>0){break o}b=J[a+88>>2];l=J[c+88>>2];if((b|0)!=(l|0)){l=b-l|0;if((l|0)>=0|(P(e,g)|0)>(P(o,l)|0)){break o}}g=J[d+88>>2]-b|0;c=a;continue}break}a=J[d+4>>2];if((d|0)==(a|0)){break n}e=J[a+88>>2];b=e-J[c+88>>2]|0;if((b|0)<=0){break n}f=J[a+92>>2]-f|0;if((f|0)>=0){break n}l=J[d+88>>2];if((l|0)==(e|0)){continue}e=e-l|0;if((e|0)>=0){break n}if((P(f,g)|0)<(P(e,o)|0)){continue}break}break n}if((b|0)<0){d=j;a=p;p:while(1){o=J[d+92>>2];f=J[d>>2];while(1){g=b;c=a;m=J[a+92>>2];e=o-m|0;q:{if((d|0)==(f|0)){break q}b=J[f+92>>2]-o|0;if((b|0)<0){break q}a=J[f+88>>2];l=J[d+88>>2];if((a|0)!=(l|0)){l=a-l|0;if((l|0)>=0|(P(b,g)|0)>(P(e,l)|0)){break q}}b=a-J[c+88>>2]|0;d=f;a=c;continue p}a=J[c>>2];if((c|0)==(a|0)){break n}l=J[a+88>>2];b=J[d+88>>2]-l|0;if((b|0)>=0){break n}m=J[a+92>>2]-m|0;if((m|0)<=0){break n}q=J[c+88>>2];if((q|0)==(l|0)){continue}l=l-q|0;if((l|0)>=0){break n}if((P(g,m)|0)<(P(e,l)|0)){continue}break}break}break n}b=J[p+92>>2];a=p;while(1){r:{c=a;a=J[a+4>>2];if((p|0)==(a|0)|(g|0)!=J[a+88>>2]){break r}d=b;b=J[a+92>>2];if((d|0)>=(b|0)){continue}}break}b=J[j+92>>2];a=j;while(1){d=a;a=J[a>>2];if((j|0)==(a|0)|(g|0)!=J[a+88>>2]){break n}f=b;b=J[a+92>>2];if((f|0)<=(b|0)){continue}break}}e=J[n+88>>2];g=e-J[i+88>>2]|0;s:{if((g|0)>0){b=i;a=n;while(1){f=b;e=J[b+92>>2];o=g;while(1){t:{g=J[a+92>>2];l=e-g|0;b=J[a>>2];if((b|0)==(a|0)){break t}m=J[b+92>>2]-g|0;if((m|0)>0){break t}q=J[a+88>>2];g=J[b+88>>2];if((q|0)!=(g|0)){q=q-g|0;if((q|0)>=0|(P(m,o)|0)>(P(l,q)|0)){break t}}o=g-J[f+88>>2]|0;a=b;continue}break}b=J[f>>2];if((f|0)==(b|0)){break s}m=J[b+88>>2];g=J[a+88>>2]-m|0;if((g|0)<=0){break s}e=J[b+92>>2]-e|0;if((e|0)>=0){break s}q=J[f+88>>2];if((q|0)==(m|0)){continue}m=q-m|0;if((m|0)>=0){break s}if((P(e,o)|0)<(P(m,l)|0)){continue}break}break s}if((g|0)<0){f=i;b=n;u:while(1){l=J[f+92>>2];o=J[f+4>>2];while(1){e=g;a=b;z=J[a+92>>2];m=l-z|0;v:{if((f|0)==(o|0)){break v}g=J[o+92>>2]-l|0;if((g|0)<0){break v}q=J[f+88>>2];b=J[o+88>>2];if((q|0)!=(b|0)){q=q-b|0;if((q|0)>=0|(P(e,g)|0)>(P(m,q)|0)){break v}}g=J[a+88>>2]-b|0;f=o;b=a;continue u}b=J[a+4>>2];if((b|0)==(a|0)){break s}q=J[b+88>>2];g=q-J[f+88>>2]|0;if((g|0)>=0){break s}z=J[b+92>>2]-z|0;if((z|0)<=0){break s}C=J[a+88>>2];if((C|0)==(q|0)){continue}q=C-q|0;if((q|0)>=0){break s}if((P(e,z)|0)<(P(m,q)|0)){continue}break}break}break s}g=J[n+92>>2];b=n;while(1){a=b;b=J[a>>2];if(!((n|0)==(b|0)|(e|0)!=J[b+88>>2])){f=g;g=J[b+92>>2];if((f|0)>=(g|0)){continue}}break}g=J[i+92>>2];b=i;while(1){f=b;b=J[b+4>>2];if((i|0)==(b|0)|(e|0)!=J[b+88>>2]){break s}o=g;g=J[b+92>>2];if((o|0)<=(g|0)){continue}break}}J[a+4>>2]=f;J[f>>2]=a;J[c>>2]=d;J[d+4>>2]=c;if(J[i+88>>2] >2]){J[t>>2]=i}if(J[j+88>>2]>=J[p+88>>2]){J[t+4>>2]=j}J[t+12>>2]=J[u+12>>2];J[h+124>>2]=c;a=1}J[h+120>>2]=d}l=J[h+120>>2];w:{if(a){q=J[h+124>>2];i=J[q+96>>2];n=J[l+96>>2];j=J[q+92>>2];p=J[l+92>>2];b=J[q+8>>2];t=J[q+88>>2];m=J[l+88>>2];J[h+80>>2]=0;a=n-i|0;c=a;e=a>>31;a=p-j|0;d=a;f=a>>31;z=jI(c,e,a,f);C=ha;a=m-t|0;g=0-a|0;o=g>>31;a=jI(g,o,a,a>>31);B=ha;A=jI(d,f,d,f);D=a-A|0;B=B-(ha+(a>>>0>>0)|0)|0;a=jI(g,o,c,e);A=0-a|0;H=0-(ha+((a|0)!=0)|0)|0;if(b){a=b;while(1){e=J[a+12>>2];v=J[e+92>>2];c=v-j|0;s=c>>31;w=jI(c,s,g,o);x=ha;E=w;w=J[e+88>>2];y=w-t|0;I=y>>31;K=jI(d,f,y,I);x:{if((E|0)!=(0-K|0)|(0-(ha+((K|0)!=0)|0)|0)!=(x|0)){break x}c=jI(z,C,c,s);x=ha;y=jI(A,H,y,I);s=y+c|0;c=ha+x|0;c=s>>>0 >>0?c+1|0:c;E=s;x=J[e+96>>2];e=x-i|0;s=jI(D,B,e,e>>31);e=E+s|0;c=ha+c|0;c=e>>>0 >>0?c+1|0:c;if(!e&(c|0)<=0|(c|0)<0){break x}y:{if(!k){break y}c=J[k+4>>2];if(J[k>>2]==(a|0)){if((a|0)!=(c|0)){break x}c=J[k+12>>2];e=J[J[a+8>>2]+12>>2];y=J[e+96>>2];s=J[c+96>>2]-y|0;I=J[e+92>>2];E=P(s,I-v|0);v=x-y|0;x=E+P(v,J[c+92>>2]-I|0)|0;x=jI(x,x>>31,d,f);y=ha;e=J[e+88>>2];c=P(v,e-J[c+88>>2]|0)+P(s,w-e|0)|0;s=jI(c,c>>31,g,o);e=s+x|0;c=ha+y|0;c=e>>>0>>0?c+1|0:c;if(!e&(c|0)<=0|(c|0)<0){break y}break x}if((a|0)!=(c|0)){break x}}k=a}a=J[a>>2];if((b|0)!=(a|0)){continue}break}J[h+80>>2]=k}b=J[l+8>>2];e=0;J[h+56>>2]=0;if(b){a=b;while(1){i=J[a+12>>2];t=J[i+92>>2];c=t-p|0;j=c>>31;s=jI(c,j,g,o);v=ha;E=s;s=J[i+88>>2];w=s-m|0;x=w>>31;y=jI(d,f,w,x);z:{if((E|0)!=(0-y|0)|(0-(ha+((y|0)!=0)|0)|0)!=(v|0)){break z}c=jI(z,C,c,j);v=ha;w=jI(A,H,w,x);j=w+c|0;c=ha+v|0;c=j>>>0>>0?c+1|0:c;w=j;v=J[i+96>>2];i=v-n|0;j=jI(D,B,i,i>>31);i=w+j|0;c=ha+c|0;c=j>>>0>i>>>0?c+1|0:c;if(!i&(c|0)<=0|(c|0)<0){break z}A:{if(!e){break A}if(J[e>>2]!=(a|0)){break z}if(J[e+4>>2]!=(a|0)){break A}c=J[e+12>>2];i=J[J[a+8>>2]+12>>2];w=J[i+96>>2];j=J[c+96>>2]-w|0;x=J[i+92>>2];E=P(j,x-t|0);t=v-w|0;v=E+P(t,J[c+92>>2]-x|0)|0;v=jI(v,v>>31,d,f);w=ha;i=J[i+88>>2];c=P(t,i-J[c+88>>2]|0)+P(j,s-i|0)|0;j=jI(c,c>>31,g,o);i=j+v|0;c=ha+w|0;c=j>>>0>i>>>0?c+1|0:c;if(!i&(c|0)<=0|(c|0)<0){break z}}e=a}a=J[a>>2];if((b|0)!=(a|0)){continue}break}J[h+56>>2]=e}B:{if(!(e|k)){break B}Tj(r,q,l,h+80|0,h+56|0);a=J[h+80>>2];if(a){q=J[a+12>>2];J[h+124>>2]=q}a=J[h+56>>2];if(!a){break B}l=J[a+12>>2];J[h+120>>2]=l}C=J[l+92>>2];z=J[l+88>>2];i=J[l+96>>2]+1|0;break w}C=J[l+92>>2];q=J[h+124>>2];z=J[l+88>>2]+1|0;i=J[l+96>>2]}a=q;c=l;n=0;g=0;o=0;j=1;f=0;b=0;t=0;while(1){k=J[c+96>>2];e=J[a+96>>2];m=J[a+92>>2];d=J[c+92>>2];D=J[a+88>>2];p=J[c+88>>2];J[h+116>>2]=-1;d=d-m|0;J[h+108>>2]=d;k=k-e|0;J[h+112>>2]=k;p=p-D|0;J[h+104>>2]=p;B=C-m|0;e=i-e|0;A=P(B,k)-P(e,d)|0;m=A>>31;J[h+80>>2]=A;J[h+84>>2]=m;s=P(e,p);e=z-D|0;H=s-P(e,k)|0;D=H>>31;J[h+88>>2]=H;J[h+92>>2]=D;e=P(d,e)-P(p,B)|0;B=e>>31;s=e;J[h+96>>2]=e;J[h+100>>2]=B;v=p>>31;e=jI(H,D,p,v);w=ha;x=d>>31;y=jI(A,m,d,x);J[h+72>>2]=e-y;J[h+76>>2]=w-(ha+(e>>>0 >>0)|0);e=m;m=k>>31;e=jI(A,e,k,m);A=ha;p=jI(s,B,p,v);J[h+64>>2]=e-p;J[h+68>>2]=A-(ha+(e>>>0 >>0)|0);d=jI(d,x,s,B);p=ha;k=jI(H,D,k,m);J[h+56>>2]=d-k;J[h+60>>2]=p-(ha+(d>>>0
>>0)|0);J[h+48>>2]=0;J[h+40>>2]=0;J[h+44>>2]=0;J[h+32>>2]=0;J[h+36>>2]=0;d=h+104|0;k=h+80|0;p=h+56|0;m=Sj(r,0,a,d,k,p,h+32|0);J[h+24>>2]=0;J[h+16>>2]=0;J[h+20>>2]=0;J[h+8>>2]=0;J[h+12>>2]=0;p=Sj(r,1,c,d,k,p,h+8|0);if(!(p|m)){b=gg(r,a,c);J[b+4>>2]=b;J[b>>2]=b;J[a+8>>2]=b;a=J[b+8>>2];J[a+4>>2]=a;J[a>>2]=a;J[c+8>>2]=a;break i}e=m?-1:1;if(!(!m|!p)){e=yc(h+32|0,h+8|0)}C:{D:{E:{if(j&1){break E}if((e|0)>=0){if(J[h+16>>2]|J[h+20>>2]|J[h+24>>2]>=0){break E}j=n;c=g;k=f;d=b;break D}if(J[h+40>>2]|J[h+44>>2]|J[h+48>>2]>=0){break E}J[h+4>>2]=m;k=f;d=b;break C}k=gg(r,a,c);d=k;if(f){J[f+4>>2]=k;d=b}J[k>>2]=f;j=J[k+8>>2];c=j;if(n){J[n>>2]=j;c=g}J[j+4>>2]=n}J[h+4>>2]=m;J[h>>2]=p;f=p;if(!e){Tj(r,J[h+124>>2],J[h+120>>2],h+4|0,h);f=J[h>>2]}if(!(!f|(e|0)<0)){F:{G:{if(F){a=J[F>>2];if((p|0)!=(a|0)){while(1){n=J[a+8>>2];b=0;i=0;g=J[a>>2];if((g|0)!=(a|0)){J[g+4>>2]=J[a+4>>2];J[J[a+4>>2]>>2]=g;i=g}J[J[n+12>>2]+8>>2]=i;i=J[n>>2];if((i|0)!=(n|0)){J[i+4>>2]=J[n+4>>2];J[J[n+4>>2]>>2]=i;b=i}J[J[a+12>>2]+8>>2]=b;J[a+16>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;J[a>>2]=0;J[a+4>>2]=0;J[a>>2]=J[r+56>>2];J[r+56>>2]=a;J[n+16>>2]=0;J[n+8>>2]=0;J[n+12>>2]=0;J[n>>2]=0;J[n+4>>2]=0;J[n>>2]=J[r+56>>2];J[r+56>>2]=n;J[r+116>>2]=J[r+116>>2]-1;a=g;if((p|0)!=(a|0)){continue}break}}if(j){break G}break F}if(!j){o=p;break F}F=J[p+4>>2];o=c}J[F>>2]=c;J[c+4>>2]=F;J[j>>2]=p;J[p+4>>2]=j;f=J[h>>2];c=0}g=c;a=J[h+120>>2];i=J[a+96>>2];C=J[a+92>>2];z=J[a+88>>2];J[h+120>>2]=J[f+12>>2];F=J[f+8>>2];n=0;break C}n=j;g=c}H:{I:{if((e|0)<=0){e=J[h+4>>2];if(e){break I}}a=J[h+124>>2];break H}J:{K:{if(G){a=J[G+4>>2];if((m|0)!=(a|0)){while(1){j=J[a+8>>2];i=J[a+4>>2];b=0;c=0;f=J[a>>2];if((f|0)!=(a|0)){J[f+4>>2]=i;J[J[a+4>>2]>>2]=f;c=f}J[J[j+12>>2]+8>>2]=c;c=J[j>>2];if((c|0)!=(j|0)){J[c+4>>2]=J[j+4>>2];J[J[j+4>>2]>>2]=c;b=c}J[J[a+12>>2]+8>>2]=b;J[a+16>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;J[a>>2]=0;J[a+4>>2]=0;J[a>>2]=J[r+56>>2];J[r+56>>2]=a;J[j+16>>2]=0;J[j+8>>2]=0;J[j+12>>2]=0;J[j>>2]=0;J[j+4>>2]=0;J[j>>2]=J[r+56>>2];J[r+56>>2]=j;J[r+116>>2]=J[r+116>>2]-1;a=i;if((m|0)!=(a|0)){continue}break}}if(!k){break J}J[d>>2]=G;a=G+4|0;break K}if(!k){t=m;break J}a=J[m>>2];J[d>>2]=a;t=d;a=a+4|0}J[a>>2]=d;J[m>>2]=k;J[k+4>>2]=m;d=0;e=J[h+4>>2]}a=J[h+124>>2];i=J[a+96>>2];C=J[a+92>>2];z=J[a+88>>2];a=J[e+12>>2];J[h+124>>2]=a;G=J[e+8>>2];k=0}c=J[h+120>>2];if((a|0)!=(q|0)|(l|0)!=(c|0)){j=0;f=k;b=d;continue}else{L:{if(!G){J[d>>2]=k;J[k+4>>2]=d;J[J[h+124>>2]+8>>2]=k;break L}a=J[G+4>>2];if((t|0)!=(a|0)){while(1){j=J[a+8>>2];f=J[a+4>>2];b=0;c=J[a>>2];if((c|0)!=(a|0)){J[c+4>>2]=f;J[J[a+4>>2]>>2]=c;b=c}J[J[j+12>>2]+8>>2]=b;i=J[j>>2];M:{if((j|0)==(i|0)){i=0;break M}J[i+4>>2]=J[j+4>>2];J[J[j+4>>2]>>2]=i}J[J[a+12>>2]+8>>2]=i;J[a+16>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;J[a>>2]=0;J[a+4>>2]=0;J[a>>2]=J[r+56>>2];J[r+56>>2]=a;J[j+16>>2]=0;J[j+8>>2]=0;J[j+12>>2]=0;J[j>>2]=0;J[j+4>>2]=0;J[j>>2]=J[r+56>>2];J[r+56>>2]=j;J[r+116>>2]=J[r+116>>2]-1;a=f;if((t|0)!=(a|0)){continue}break}}if(!k){break L}J[d>>2]=G;J[G+4>>2]=d;J[t>>2]=k;J[k+4>>2]=t}if(!F){J[n>>2]=g;J[g+4>>2]=n;J[J[h+120>>2]+8>>2]=n;break i}a=J[F>>2];if((o|0)!=(a|0)){while(1){c=J[a+8>>2];i=0;b=J[a>>2];if((b|0)!=(a|0)){J[b+4>>2]=J[a+4>>2];J[J[a+4>>2]>>2]=b;i=b}J[J[c+12>>2]+8>>2]=i;i=J[c>>2];N:{if((c|0)==(i|0)){i=0;break N}J[i+4>>2]=J[c+4>>2];J[J[c+4>>2]>>2]=i}J[J[a+12>>2]+8>>2]=i;J[a+16>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;J[a>>2]=0;J[a+4>>2]=0;J[a>>2]=J[r+56>>2];J[r+56>>2]=a;J[c+16>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;J[c>>2]=0;J[c+4>>2]=0;J[c>>2]=J[r+56>>2];J[r+56>>2]=c;J[r+116>>2]=J[r+116>>2]-1;a=b;if((o|0)!=(a|0)){continue}break}}if(!n){break i}J[F>>2]=g;J[g+4>>2]=F;J[n>>2]=o;J[o+4>>2]=n}break}}ga=h+128|0}ga=u+16|0}function Yg(a,b,c){var d=0,e=0,f=Q(0),g=0,h=0,i=0,j=0,k=Q(0),l=0,m=0,n=Q(0),o=Q(0),p=0,q=Q(0),r=0,s=Q(0),t=Q(0),u=0,v=Q(0),w=0,x=Q(0),y=Q(0),z=0,A=Q(0),B=0,C=0,D=0,E=Q(0),F=0,G=Q(0),M=Q(0);l=ga-32|0;ga=l;z=J[a+56>>2];a:{if((c-b|0)==1){b:{if(K[a+60|0]){b=J[a+116>>2]+(b<<4)|0;e=J[b+4>>2];c=J[a+136>>2]+(z<<4)|0;J[c>>2]=J[b>>2];J[c+4>>2]=e;break b}b=J[a+76>>2]+(b<<6)|0;e=J[b+4>>2];c=J[a+96>>2]+(z<<6)|0;J[c>>2]=J[b>>2];J[c+4>>2]=e;e=J[b+60>>2];J[c+56>>2]=J[b+56>>2];J[c+60>>2]=e;e=J[b+52>>2];J[c+48>>2]=J[b+48>>2];J[c+52>>2]=e;e=J[b+44>>2];J[c+40>>2]=J[b+40>>2];J[c+44>>2]=e;e=J[b+36>>2];J[c+32>>2]=J[b+32>>2];J[c+36>>2]=e;e=J[b+28>>2];J[c+24>>2]=J[b+24>>2];J[c+28>>2]=e;e=J[b+20>>2];J[c+16>>2]=J[b+16>>2];J[c+20>>2]=e}e=J[b+12>>2];J[c+8>>2]=J[b+8>>2];J[c+12>>2]=e;J[a+56>>2]=J[a+56>>2]+1;break a}p=c;e=b;g=c-e|0;c:{d:{e:{if((c|0)<=(e|0)){E=Q(g|0);break e}f:{if(!K[a+60|0]){d=J[a+76>>2];c=b;while(1){h=d+(c<<6)|0;y=Q(y+Q(Q(N[h+16>>2]+N[h>>2])*Q(.5)));s=Q(s+Q(Q(N[h+24>>2]+N[h+8>>2])*Q(.5)));t=Q(t+Q(Q(N[h+20>>2]+N[h+4>>2])*Q(.5)));c=c+1|0;if((p|0)!=(c|0)){continue}break}break f}v=N[a+12>>2];o=N[a+8>>2];q=N[a+44>>2];k=N[a+40>>2];d=J[a+116>>2];n=N[a+4>>2];f=N[a+36>>2];c=b;while(1){h=d+(c<<4)|0;y=Q(y+Q(Q(Q(Q(Q(L[h+6>>1])/f)+n)+Q(Q(Q(L[h>>1])/f)+n))*Q(.5)));s=Q(s+Q(Q(Q(Q(Q(L[h+10>>1])/q)+v)+Q(Q(Q(L[h+4>>1])/q)+v))*Q(.5)));t=Q(t+Q(Q(Q(Q(Q(L[h+8>>1])/k)+o)+Q(Q(Q(L[h+2>>1])/k)+o))*Q(.5)));c=c+1|0;if((p|0)!=(c|0)){continue}break}}E=Q(g|0);if((e|0)<(p|0)){break d}}s=Q(0);t=Q(0);break c}f=Q(Q(1)/E);G=Q(f*s);M=Q(f*t);y=Q(f*y);t=Q(0);if(!K[a+60|0]){c=J[a+76>>2];s=Q(0);while(1){d=c+(e<<6)|0;f=Q(Q(Q(N[d+16>>2]+N[d>>2])*Q(.5))-y);x=Q(x+Q(f*f));f=Q(Q(Q(N[d+24>>2]+N[d+8>>2])*Q(.5))-G);t=Q(t+Q(f*f));f=Q(Q(Q(N[d+20>>2]+N[d+4>>2])*Q(.5))-M);s=Q(s+Q(f*f));e=e+1|0;if((p|0)!=(e|0)){continue}break}break c}A=N[a+12>>2];v=N[a+8>>2];o=N[a+44>>2];q=N[a+40>>2];c=J[a+116>>2];k=N[a+4>>2];n=N[a+36>>2];s=Q(0);while(1){d=c+(e<<4)|0;f=Q(Q(Q(Q(Q(Q(L[d+6>>1])/n)+k)+Q(Q(Q(L[d>>1])/n)+k))*Q(.5))-y);x=Q(x+Q(f*f));f=Q(Q(Q(Q(Q(Q(L[d+10>>1])/o)+A)+Q(Q(Q(L[d+4>>1])/o)+A))*Q(.5))-G);t=Q(t+Q(f*f));f=Q(Q(Q(Q(Q(Q(L[d+8>>1])/q)+v)+Q(Q(Q(L[d+2>>1])/q)+v))*Q(.5))-M);s=Q(s+Q(f*f));e=e+1|0;if((p|0)!=(e|0)){continue}break}}k=Q(Q(1)/Q(E+Q(-1)));n=Q(k*x);f=Q(k*s);c=n (c?f:n)?2:c;s=Q(0);t=Q(0);x=Q(0);i=ga-96|0;J[i+28>>2]=0;w=p-b|0;d=(b|0)>=(p|0);g:{if(d){break g}if(!K[a+60|0]){e=J[a+76>>2];c=b;while(1){h=e+(c<<6)|0;x=Q(Q(Q(N[h+16>>2]+N[h>>2])*Q(.5))+x);s=Q(Q(Q(N[h+24>>2]+N[h+8>>2])*Q(.5))+s);t=Q(Q(Q(N[h+20>>2]+N[h+4>>2])*Q(.5))+t);c=c+1|0;if((p|0)!=(c|0)){continue}break}break g}v=N[a+12>>2];o=N[a+8>>2];q=N[a+44>>2];k=N[a+40>>2];e=J[a+116>>2];n=N[a+4>>2];f=N[a+36>>2];c=b;while(1){h=e+(c<<4)|0;x=Q(Q(Q(Q(Q(Q(L[h+6>>1])/f)+n)+Q(Q(Q(L[h>>1])/f)+n))*Q(.5))+x);s=Q(Q(Q(Q(Q(Q(L[h+10>>1])/q)+v)+Q(Q(Q(L[h+4>>1])/q)+v))*Q(.5))+s);t=Q(Q(Q(Q(Q(Q(L[h+8>>1])/k)+o)+Q(Q(Q(L[h+2>>1])/k)+o))*Q(.5))+t);c=c+1|0;if((p|0)!=(c|0)){continue}break}}f=Q(Q(1)/Q(w|0));N[i+24>>2]=f*s;N[i+20>>2]=f*t;N[i+16>>2]=f*x;e=b;if(!d){c=g<<2;A=N[c+(i+16|0)>>2];m=c+i|0;c=b;e=c;while(1){d=K[a+60|0];h:{if(d){g=J[a+116>>2]+(c<<4)|0;v=N[a+44>>2];o=N[a+12>>2];s=Q(Q(Q(L[g+4>>1])/v)+o);q=N[a+40>>2];k=N[a+8>>2];t=Q(Q(Q(L[g+2>>1])/q)+k);n=N[a+36>>2];f=N[a+4>>2];x=Q(Q(Q(L[g>>1])/n)+f);y=Q(Q(Q(L[g+10>>1])/v)+o);E=Q(Q(Q(L[g+8>>1])/q)+k);f=Q(Q(Q(L[g+6>>1])/n)+f);break h}g=J[a+76>>2]+(c<<6)|0;s=N[g+8>>2];t=N[g+4>>2];x=N[g>>2];y=N[g+24>>2];E=N[g+20>>2];f=N[g+16>>2]}J[i+12>>2]=0;N[i+8>>2]=Q(y+s)*Q(.5);N[i+4>>2]=Q(E+t)*Q(.5);N[i>>2]=Q(f+x)*Q(.5);if(A >2]){i:{if(d){g=J[a+116>>2];u=g+(c<<4)|0;h=u;d=J[h+12>>2];J[i+40>>2]=J[h+8>>2];J[i+44>>2]=d;d=J[h+4>>2];J[i+32>>2]=J[h>>2];J[i+36>>2]=d;h=g;g=e<<4;h=h+g|0;d=J[h+4>>2];J[u>>2]=J[h>>2];J[u+4>>2]=d;d=J[h+12>>2];J[u+8>>2]=J[h+8>>2];J[u+12>>2]=d;d=J[i+36>>2];g=g+J[a+116>>2]|0;J[g>>2]=J[i+32>>2];J[g+4>>2]=d;d=J[i+44>>2];J[g+8>>2]=J[i+40>>2];J[g+12>>2]=d;break i}h=J[a+76>>2];j=h+(c<<6)|0;d=J[j+60>>2];J[i+88>>2]=J[j+56>>2];J[i+92>>2]=d;d=J[j+52>>2];J[i+80>>2]=J[j+48>>2];J[i+84>>2]=d;d=J[j+44>>2];J[i+72>>2]=J[j+40>>2];J[i+76>>2]=d;d=J[j+36>>2];u=i- -64|0;g=u;J[g>>2]=J[j+32>>2];J[g+4>>2]=d;d=J[j+28>>2];J[i+56>>2]=J[j+24>>2];J[i+60>>2]=d;d=J[j+20>>2];J[i+48>>2]=J[j+16>>2];J[i+52>>2]=d;d=J[j+12>>2];J[i+40>>2]=J[j+8>>2];J[i+44>>2]=d;d=J[j+4>>2];J[i+32>>2]=J[j>>2];J[i+36>>2]=d;g=e<<6;h=g+h|0;d=J[h+4>>2];J[j>>2]=J[h>>2];J[j+4>>2]=d;d=J[h+12>>2];J[j+8>>2]=J[h+8>>2];J[j+12>>2]=d;d=J[h+20>>2];J[j+16>>2]=J[h+16>>2];J[j+20>>2]=d;d=J[h+28>>2];J[j+24>>2]=J[h+24>>2];J[j+28>>2]=d;d=J[h+36>>2];J[j+32>>2]=J[h+32>>2];J[j+36>>2]=d;d=J[h+44>>2];J[j+40>>2]=J[h+40>>2];J[j+44>>2]=d;d=J[h+52>>2];J[j+48>>2]=J[h+48>>2];J[j+52>>2]=d;d=J[h+60>>2];J[j+56>>2]=J[h+56>>2];J[j+60>>2]=d;d=J[i+36>>2];g=g+J[a+76>>2]|0;J[g>>2]=J[i+32>>2];J[g+4>>2]=d;d=J[i+44>>2];J[g+8>>2]=J[i+40>>2];J[g+12>>2]=d;d=J[i+52>>2];J[g+16>>2]=J[i+48>>2];J[g+20>>2]=d;d=J[i+60>>2];J[g+24>>2]=J[i+56>>2];J[g+28>>2]=d;d=J[u+4>>2];J[g+32>>2]=J[u>>2];J[g+36>>2]=d;d=J[i+76>>2];J[g+40>>2]=J[i+72>>2];J[g+44>>2]=d;d=J[i+84>>2];J[g+48>>2]=J[i+80>>2];J[g+52>>2]=d;d=J[i+92>>2];J[g+56>>2]=J[i+88>>2];J[g+60>>2]=d}e=e+1|0}c=c+1|0;if((p|0)!=(c|0)){continue}break}}c=(w>>1)+b|0;g=c;c=(w|0)/3|0;i=(b+c|0)>=(e|0)?g:(p+(c^-1)|0)<=(e|0)?g:e;F=J[a+56>>2];j:{if(K[a+60|0]){v=N[a+40>>2];o=N[a+8>>2];q=N[a+24>>2];k=N[a+44>>2];n=N[a+12>>2];f=N[a+28>>2];c=J[a+136>>2]+(F<<4)|0;A=Q(Q(N[a+20>>2]-N[a+4>>2])*N[a+36>>2]);k:{if(A =Q(0)){e=~~A>>>0;break k}e=0}I[c>>1]=e&65534;f=Q(Q(f-n)*k);l:{if(f=Q(0)){e=~~f>>>0;break l}e=0}I[c+4>>1]=e&65534;f=Q(Q(q-o)*v);m:{if(f=Q(0)){e=~~f>>>0;break m}e=0}I[c+2>>1]=e&65534;break j}c=J[a+24>>2];e=J[a+96>>2]+(F<<6)|0;J[e>>2]=J[a+20>>2];J[e+4>>2]=c;c=J[a+32>>2];J[e+8>>2]=J[a+28>>2];J[e+12>>2]=c}c=J[a+56>>2];n:{if(K[a+60|0]){k=N[a+40>>2];o=N[a+8>>2];n=N[a+44>>2];q=N[a+12>>2];c=J[a+136>>2]+(c<<4)|0;f=N[a+4>>2];f=Q(Q(Q(f-f)*N[a+36>>2])+Q(1));o:{if(f=Q(0)){e=~~f>>>0;break o}e=0}I[c+6>>1]=e|1;f=Q(Q(Q(q-q)*n)+Q(1));p:{if(f=Q(0)){e=~~f>>>0;break p}e=0}I[c+10>>1]=e|1;f=Q(Q(Q(o-o)*k)+Q(1));q:{if(f=Q(0)){e=~~f>>>0;break q}e=0}I[c+8>>1]=e|1;break n}e=J[a+96>>2]+(c<<6)|0;c=J[a+8>>2];J[e+16>>2]=J[a+4>>2];J[e+20>>2]=c;c=J[a+16>>2];J[e+24>>2]=J[a+12>>2];J[e+28>>2]=c}if((b|0)<(p|0)){c=b;while(1){r=J[a+56>>2];r:{if(K[a+60|0]){h=J[a+116>>2]+(c<<4)|0;g=L[h+4>>1];d=L[h+2>>1];e=L[h>>1];v=N[a+44>>2];o=N[a+40>>2];q=N[a+36>>2];J[l+28>>2]=0;k=N[a+4>>2];N[l+16>>2]=Q(Q(e>>>0)/q)+k;n=N[a+8>>2];N[l+20>>2]=Q(Q(d>>>0)/o)+n;f=N[a+12>>2];N[l+24>>2]=Q(Q(g>>>0)/v)+f;g=L[h+6>>1];d=L[h+8>>1];e=L[h+10>>1];J[l+12>>2]=0;N[l+8>>2]=f+Q(Q(e>>>0)/v);N[l+4>>2]=n+Q(Q(d>>>0)/o);N[l>>2]=k+Q(Q(g>>>0)/q);break r}d=J[a+76>>2]+(c<<6)|0;e=J[d+12>>2];J[l+24>>2]=J[d+8>>2];J[l+28>>2]=e;e=J[d+4>>2];J[l+16>>2]=J[d>>2];J[l+20>>2]=e;e=J[d+28>>2];J[l+8>>2]=J[d+24>>2];J[l+12>>2]=e;e=J[d+20>>2];J[l>>2]=J[d+16>>2];J[l+4>>2]=e}s:{if(K[a+60|0]){q=N[a+12>>2];k=N[a+44>>2];f=Q(Q(N[l+24>>2]-q)*k);t:{if(f=Q(0)){m=~~f>>>0;break t}m=0}n=N[a+8>>2];f=N[a+40>>2];o=Q(Q(N[l+20>>2]-n)*f);u:{if(o=Q(0)){h=~~o>>>0;break u}h=0}k=Q(Q(k*Q(N[l+8>>2]-q))+Q(1));v:{if(k=Q(0)){g=~~k>>>0;break v}g=0}f=Q(Q(f*Q(N[l+4>>2]-n))+Q(1));w:{if(f=Q(0)){d=~~f>>>0;break w}d=0}n=N[a+4>>2];f=N[a+36>>2];k=Q(Q(N[l+16>>2]-n)*f);x:{if(k=Q(0)){e=~~k>>>0;break x}e=0}w=e&65534;B=J[a+136>>2];j=B+(r<<4)|0;u=w>>>0>=L[j>>1];f=Q(Q(f*Q(N[l>>2]-n))+Q(1));y:{if(f=Q(0)){e=~~f>>>0;break y}e=0}if(!u){I[j>>1]=w}e=e|1;u=B+(r<<4)|0;if(e>>>0>L[u+6>>1]){I[u+6>>1]=e}e=h&65534;if(e>>>0>1]){I[u+2>>1]=e}e=d|1;h=B+(r<<4)|0;if(e>>>0>L[h+8>>1]){I[h+8>>1]=e}e=m&65534;if(e>>>0 >1]){I[h+4>>1]=e}e=g|1;d=B+(r<<4)|0;if(e>>>0<=L[d+10>>1]){break s}I[d+10>>1]=e;break s}f=N[l+16>>2];d=J[a+96>>2];e=d+(r<<6)|0;if(f >2]){N[e>>2]=f}f=N[l+20>>2];if(f >2]){N[e+4>>2]=f}f=N[l+24>>2];e=d+(r<<6)|0;if(f >2]){N[e+8>>2]=f}f=N[l+28>>2];if(f >2]){N[e+12>>2]=f}f=N[l>>2];e=d+(r<<6)|0;if(f>N[e+16>>2]){N[e+16>>2]=f}f=N[l+4>>2];if(f>N[e+20>>2]){N[e+20>>2]=f}f=N[l+8>>2];e=d+(r<<6)|0;if(f>N[e+24>>2]){N[e+24>>2]=f}f=N[l+12>>2];if(!(f>N[e+28>>2])){break s}N[e+28>>2]=f}c=c+1|0;if((p|0)!=(c|0)){continue}break}}r=J[a+56>>2]+1|0;J[a+56>>2]=r;Yg(a,b,i);B=J[a+56>>2];Yg(a,i,p);c=K[a+60|0];i=J[a+56>>2]-z|0;if(!(!c|(i|0)<129)){z=0;p=0;j=J[a+136>>2];b=J[(j+(B<<4)|0)+12>>2];u=(b|0)>=0?1:0-b|0;b=J[(j+(r<<4)|0)+12>>2];h=(b|0)>=0?1:0-b|0;if(h>>>0<=128){c=J[a+152>>2];b=c;z:{if((c|0)!=J[a+156>>2]){break z}b=c;w=c?c<<1:1;if((c|0)>=(w|0)){break z}if(w){J[8369]=J[8369]+1;z=ia[J[6782]](w<<5,16)|0;b=J[a+152>>2]}else{b=c}A:{if((b|0)<=0){break A}if((b|0)!=1){g=b&-2;while(1){m=C<<5;d=m+z|0;D=m+J[a+160>>2]|0;e=J[D+4>>2];J[d>>2]=J[D>>2];J[d+4>>2]=e;e=J[D+28>>2];J[d+24>>2]=J[D+24>>2];J[d+28>>2]=e;e=J[D+20>>2];J[d+16>>2]=J[D+16>>2];J[d+20>>2]=e;e=J[D+12>>2];J[d+8>>2]=J[D+8>>2];J[d+12>>2]=e;e=m|32;d=e+z|0;m=e+J[a+160>>2]|0;e=J[m+4>>2];J[d>>2]=J[m>>2];J[d+4>>2]=e;e=J[m+12>>2];J[d+8>>2]=J[m+8>>2];J[d+12>>2]=e;e=J[m+20>>2];J[d+16>>2]=J[m+16>>2];J[d+20>>2]=e;e=J[m+28>>2];J[d+24>>2]=J[m+24>>2];J[d+28>>2]=e;C=C+2|0;p=p+2|0;if((g|0)!=(p|0)){continue}break}}if(!(b&1)){break A}b=C<<5;e=b+z|0;d=b+J[a+160>>2]|0;b=J[d+4>>2];J[e>>2]=J[d>>2];J[e+4>>2]=b;b=J[d+28>>2];J[e+24>>2]=J[d+24>>2];J[e+28>>2]=b;b=J[d+20>>2];J[e+16>>2]=J[d+16>>2];J[e+20>>2]=b;b=J[d+12>>2];J[e+8>>2]=J[d+8>>2];J[e+12>>2]=b}b=J[a+160>>2];if(!(b?!b|!K[a+164|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](b)}J[a+160>>2]=z;H[a+164|0]=1;J[a+156>>2]=w;b=J[a+152>>2]}J[a+152>>2]=b+1;c=J[a+160>>2]+(c<<5)|0;b=j+(r<<4)|0;I[c>>1]=L[b>>1];I[c+2>>1]=L[b+2>>1];I[c+4>>1]=L[b+4>>1];I[c+6>>1]=L[b+6>>1];I[c+8>>1]=L[b+8>>1];b=L[b+10>>1];J[c+16>>2]=h;J[c+12>>2]=r;I[c+10>>1]=b}if((u|0)<=128){e=J[a+152>>2];b=e;B:{if((e|0)!=J[a+156>>2]){break B}b=e;w=e?e<<1:1;if((e|0)>=(w|0)){break B}C:{if(!w){b=0;c=e;break C}J[8369]=J[8369]+1;b=ia[J[6782]](w<<5,16)|0;c=J[a+152>>2]}D:{if((c|0)<=0){break D}C=0;if((c|0)!=1){h=c&-2;p=0;while(1){m=C<<5;g=m+b|0;r=m+J[a+160>>2]|0;d=J[r+4>>2];J[g>>2]=J[r>>2];J[g+4>>2]=d;d=J[r+28>>2];J[g+24>>2]=J[r+24>>2];J[g+28>>2]=d;d=J[r+20>>2];J[g+16>>2]=J[r+16>>2];J[g+20>>2]=d;d=J[r+12>>2];J[g+8>>2]=J[r+8>>2];J[g+12>>2]=d;d=m|32;g=d+b|0;m=d+J[a+160>>2]|0;d=J[m+4>>2];J[g>>2]=J[m>>2];J[g+4>>2]=d;d=J[m+12>>2];J[g+8>>2]=J[m+8>>2];J[g+12>>2]=d;d=J[m+20>>2];J[g+16>>2]=J[m+16>>2];J[g+20>>2]=d;d=J[m+28>>2];J[g+24>>2]=J[m+24>>2];J[g+28>>2]=d;C=C+2|0;p=p+2|0;if((h|0)!=(p|0)){continue}break}}if(!(c&1)){break D}c=C<<5;d=c+b|0;g=c+J[a+160>>2]|0;c=J[g+4>>2];J[d>>2]=J[g>>2];J[d+4>>2]=c;c=J[g+28>>2];J[d+24>>2]=J[g+24>>2];J[d+28>>2]=c;c=J[g+20>>2];J[d+16>>2]=J[g+16>>2];J[d+20>>2]=c;c=J[g+12>>2];J[d+8>>2]=J[g+8>>2];J[d+12>>2]=c}c=J[a+160>>2];if(!(c?!c|!K[a+164|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](c)}J[a+160>>2]=b;H[a+164|0]=1;J[a+156>>2]=w;b=J[a+152>>2]}J[a+152>>2]=b+1;c=J[a+160>>2]+(e<<5)|0;b=j+(B<<4)|0;I[c>>1]=L[b>>1];I[c+2>>1]=L[b+2>>1];I[c+4>>1]=L[b+4>>1];I[c+6>>1]=L[b+6>>1];I[c+8>>1]=L[b+8>>1];b=L[b+10>>1];J[c+16>>2]=u;J[c+12>>2]=B;I[c+10>>1]=b}J[a+168>>2]=J[a+152>>2];c=K[a+60|0]}if(c&255){J[(J[a+136>>2]+(F<<4)|0)+12>>2]=0-i;break a}J[(J[a+96>>2]+(F<<6)|0)+32>>2]=i}ga=l+32|0}function ud(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=Q(0),l=Q(0),m=Q(0),n=0,o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=0,z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=0,F=0,G=Q(0),I=Q(0),L=Q(0),M=Q(0),S=0,T=Q(0),U=Q(0),V=0,W=0,X=0,Y=0,Z=0,_=0;i=ga-512|0;ga=i;a:{if((ia[J[J[d>>2]+80>>2]](d)|0)==2){g=(f?36:28)+a|0;j=J[d+152>>2];h=j-1|0;J[g>>2]=h;if(!j){break a}while(1){ud(a,b,c,J[J[d+160>>2]+(h<<2)>>2],e,f);j=J[g>>2];h=j-1|0;J[g>>2]=h;if(j){continue}break}break a}h=(ia[J[J[d>>2]+80>>2]](d)|0)!=1;g=J[e+4>>2];if(!(h|(g|0)!=28)){g=ga-144|0;ga=g;h=J[b+12>>2];j=J[h+12>>2];J[g+88>>2]=J[h+8>>2];J[g+92>>2]=j;j=J[h+4>>2];J[g+80>>2]=J[h>>2];J[g+84>>2]=j;j=J[h+28>>2];J[g+104>>2]=J[h+24>>2];J[g+108>>2]=j;j=J[h+20>>2];J[g+96>>2]=J[h+16>>2];J[g+100>>2]=j;j=J[h+44>>2];J[g+120>>2]=J[h+40>>2];J[g+124>>2]=j;j=J[h+36>>2];J[g+112>>2]=J[h+32>>2];J[g+116>>2]=j;j=J[h+60>>2];J[g+136>>2]=J[h+56>>2];J[g+140>>2]=j;j=J[h+52>>2];J[g+128>>2]=J[h+48>>2];J[g+132>>2]=j;h=J[c+12>>2];o=N[h+52>>2];p=N[h+56>>2];q=N[h+20>>2];r=N[h+24>>2];s=N[h+8>>2];t=N[h>>2];v=N[h+4>>2];w=N[h+48>>2];x=N[h+16>>2];k=N[e+56>>2];l=N[e+48>>2];m=N[e+52>>2];u=Q(Q(N[h+40>>2]*k)+Q(Q(N[h+32>>2]*l)+Q(N[h+36>>2]*m)));N[g+72>>2]=u;q=Q(Q(r*k)+Q(Q(x*l)+Q(q*m)));N[g+68>>2]=q;r=Q(Q(s*k)+Q(Q(t*l)+Q(v*m)));N[g+64>>2]=r;l=Q(Q(Q(p*k)+Q(Q(w*l)+Q(o*m)))+N[e+64>>2]);N[g+76>>2]=l;ia[J[J[d>>2]+8>>2]](d,g+80|0,g+32|0,g+48|0);k=Q(ia[J[J[e>>2]+48>>2]](e));m=Q(k+N[g+52>>2]);N[g+52>>2]=m;o=Q(k+N[g+56>>2]);N[g+56>>2]=o;s=Q(N[g+36>>2]-k);N[g+36>>2]=s;p=Q(k+N[g+48>>2]);N[g+48>>2]=p;t=Q(N[g+32>>2]-k);N[g+32>>2]=t;k=Q(N[g+40>>2]-k);N[g+40>>2]=k;k=Q(Q(k+o)*Q(.5));t=Q(Q(t+p)*Q(.5));s=Q(Q(s+m)*Q(.5));v=Q(Q(u*k)+Q(Q(r*t)+Q(s*q)));k=Q(Q(Q(o-k)*Q(R(u)))+Q(Q(Q(p-t)*Q(R(r)))+Q(Q(m-s)*Q(R(q)))));if(!(l>Q(Q(v+k)+Q(9.999999974752427e-7))|!(Q(l+Q(9.999999974752427e-7))>=Q(v-k)))){ia[J[J[d>>2]+112>>2]](d);k=Q(ia[J[J[d>>2]+48>>2]](d));l=Q(ia[J[J[e>>2]+48>>2]](e));h=J[d+184>>2];if(h){r=Q(k+l);while(1){h=h-1|0;e=J[d+180>>2]+P(h,J[d+192>>2])|0;b:{if(J[d+188>>2]==1){l=Q(O[e+8>>3]*+N[d+160>>2]);m=Q(O[e>>3]*+N[d+156>>2]);k=Q(O[e+16>>3]*+N[d+164>>2]);break b}m=Q(N[e>>2]*N[d+156>>2]);N[g+16>>2]=m;l=Q(N[e+4>>2]*N[d+160>>2]);N[g+20>>2]=l;k=Q(N[e+8>>2]*N[d+164>>2])}J[g+28>>2]=0;o=Q(Q(Q(k*N[g+104>>2])+Q(Q(m*N[g+96>>2])+Q(l*N[g+100>>2])))+N[g+132>>2]);N[g+20>>2]=o;u=N[g+68>>2];p=Q(Q(Q(k*N[g+88>>2])+Q(Q(m*N[g+80>>2])+Q(l*N[g+84>>2])))+N[g+128>>2]);N[g+16>>2]=p;q=N[g+64>>2];k=Q(Q(Q(k*N[g+120>>2])+Q(Q(m*N[g+112>>2])+Q(l*N[g+116>>2])))+N[g+136>>2]);N[g+24>>2]=k;l=N[g+72>>2];k=Q(Q(Q(Q(k*l)+Q(Q(p*q)+Q(o*u)))-N[g+76>>2])-r);c:{if(!(k >2]=0;N[g+8>>2]=-l;N[g+4>>2]=-u;N[g>>2]=-q;e=J[a+16>>2];ia[J[J[e>>2]+8>>2]](e,J[a+28>>2],J[a+24>>2]);e=J[a+16>>2];ia[J[J[e>>2]+12>>2]](e,J[a+36>>2],J[a+32>>2]);e=J[a+12>>2];if(!e){e=J[a+4>>2];e=ia[J[J[e>>2]+12>>2]](e,J[c+8>>2],J[b+8>>2])|0;J[a+12>>2]=e}j=J[a+16>>2];J[j+4>>2]=e;ia[J[J[j>>2]+16>>2]](j,g,g+16|0,k);break c}e=J[a+16>>2];ia[J[J[e>>2]+8>>2]](e,J[a+28>>2],J[a+24>>2]);e=J[a+16>>2];ia[J[J[e>>2]+12>>2]](e,J[a+36>>2],J[a+32>>2]);e=J[a+12>>2];if(!e){e=J[a+4>>2];e=ia[J[J[e>>2]+12>>2]](e,J[b+8>>2],J[c+8>>2])|0;J[a+12>>2]=e}j=J[a+16>>2];J[j+4>>2]=e;ia[J[J[j>>2]+16>>2]](j,g- -64|0,g+16|0,k)}if(h){continue}break}}ia[J[J[d>>2]+116>>2]](d)}ga=g+144|0;break a}if((g|0)==31){g=ga-96|0;ga=g;y=J[e+16>>2];if(y){h=J[c+12>>2];T=N[h+56>>2];U=N[h+52>>2];k=N[h+40>>2];l=N[h+36>>2];m=N[h+24>>2];u=N[h+20>>2];G=N[h+48>>2];q=N[h+32>>2];r=N[h+16>>2];o=N[h+8>>2];p=N[h+4>>2];s=N[h>>2];n=J[a+16>>2];while(1){y=y-1|0;h=J[e+24>>2]+P(y,80)|0;F=J[h+64>>2];t=N[h+56>>2];v=N[h+48>>2];w=N[h+52>>2];x=N[h+32>>2];z=N[h>>2];A=N[h+16>>2];B=N[h+36>>2];C=N[h+4>>2];D=N[h+20>>2];I=N[h+40>>2];L=N[h+8>>2];M=N[h+24>>2];J[g+92>>2]=0;J[g+76>>2]=0;J[g+60>>2]=0;J[g+44>>2]=0;N[g+72>>2]=Q(I*k)+Q(Q(L*q)+Q(l*M));N[g+68>>2]=Q(B*k)+Q(Q(C*q)+Q(l*D));N[g+64>>2]=Q(x*k)+Q(Q(z*q)+Q(l*A));N[g+56>>2]=Q(I*m)+Q(Q(L*r)+Q(u*M));N[g+52>>2]=Q(B*m)+Q(Q(C*r)+Q(u*D));N[g+48>>2]=Q(x*m)+Q(Q(z*r)+Q(u*A));N[g+40>>2]=Q(I*o)+Q(Q(L*s)+Q(p*M));N[g+36>>2]=Q(B*o)+Q(Q(C*s)+Q(p*D));N[g+32>>2]=Q(x*o)+Q(Q(z*s)+Q(p*A));N[g+88>>2]=T+Q(Q(t*k)+Q(Q(v*q)+Q(l*w)));N[g+84>>2]=U+Q(Q(t*m)+Q(Q(v*r)+Q(u*w)));N[g+80>>2]=G+Q(Q(t*o)+Q(Q(v*s)+Q(p*w)));h=J[c+8>>2];J[g+28>>2]=y;J[g+24>>2]=-1;J[g+16>>2]=h;J[g+12>>2]=F;J[g+8>>2]=c;J[g+20>>2]=g+32;j=J[n+8>>2];if((h|0)==J[j+8>>2]){n=n+8|0}else{j=J[n+12>>2];n=n+12|0}h=g+8|0;J[n>>2]=h;ud(a,b,h,d,F,f);n=J[a+16>>2];J[n+(J[J[n+8>>2]+8>>2]==J[g+16>>2]?8:12)>>2]=j;if(y){continue}break}}ga=g+96|0;break a}if(g-21>>>0<=8){g=ga-128|0;ga=g;H[g+116|0]=f;J[g+112>>2]=d;J[g+100>>2]=a;J[g+96>>2]=17488;J[g+104>>2]=b;J[g+108>>2]=c;N[g+120>>2]=ia[J[J[e>>2]+48>>2]](e);a=J[c+12>>2];t=N[a+52>>2];v=N[a+56>>2];b=J[b+12>>2];w=N[b+52>>2];x=N[b+56>>2];k=N[a+20>>2];l=N[a+36>>2];z=N[b+20>>2];A=N[b+36>>2];B=N[b+24>>2];m=N[a+24>>2];C=N[b+40>>2];u=N[a+40>>2];D=N[b+32>>2];q=N[a+32>>2];I=N[b>>2];r=N[a>>2];L=N[b+16>>2];o=N[a+16>>2];G=N[a+48>>2];M=N[b+48>>2];p=N[a+4>>2];T=N[b+4>>2];U=N[b+8>>2];s=N[a+8>>2];J[g+92>>2]=0;J[g+76>>2]=0;J[g+60>>2]=0;N[g+72>>2]=Q(C*u)+Q(Q(U*s)+Q(m*B));N[g+68>>2]=Q(A*u)+Q(Q(T*s)+Q(m*z));N[g+56>>2]=Q(C*l)+Q(Q(U*p)+Q(k*B));N[g+52>>2]=Q(A*l)+Q(Q(T*p)+Q(k*z));G=Q(-G);N[g+88>>2]=Q(Q(Q(s*G)-Q(m*t))-Q(u*v))+Q(Q(x*u)+Q(Q(M*s)+Q(m*w)));N[g+84>>2]=Q(Q(Q(p*G)-Q(k*t))-Q(l*v))+Q(Q(x*l)+Q(Q(M*p)+Q(k*w)));J[g+44>>2]=0;N[g+32>>2]=Q(D*q)+Q(Q(I*r)+Q(o*L));N[g+64>>2]=Q(D*u)+Q(Q(I*s)+Q(m*L));N[g+48>>2]=Q(D*l)+Q(Q(I*p)+Q(k*L));N[g+40>>2]=Q(C*q)+Q(Q(U*r)+Q(o*B));N[g+36>>2]=Q(A*q)+Q(Q(T*r)+Q(o*z));N[g+80>>2]=Q(Q(Q(r*G)-Q(o*t))-Q(q*v))+Q(Q(x*q)+Q(Q(M*r)+Q(o*w)));a=g+16|0;ia[J[J[d>>2]+8>>2]](d,g+32|0,a,g);ia[J[J[e>>2]+64>>2]](e,g+96|0,a,g);ga=g+128|0;break a}g=J[b+12>>2];h=J[g+12>>2];J[i+456>>2]=J[g+8>>2];J[i+460>>2]=h;h=J[g+4>>2];J[i+448>>2]=J[g>>2];J[i+452>>2]=h;h=J[g+28>>2];J[i+472>>2]=J[g+24>>2];J[i+476>>2]=h;h=J[g+20>>2];J[i+464>>2]=J[g+16>>2];J[i+468>>2]=h;h=J[g+44>>2];J[i+488>>2]=J[g+40>>2];J[i+492>>2]=h;h=J[g+36>>2];J[i+480>>2]=J[g+32>>2];J[i+484>>2]=h;h=J[g+60>>2];J[i+504>>2]=J[g+56>>2];J[i+508>>2]=h;h=J[g+52>>2];J[i+496>>2]=J[g+48>>2];J[i+500>>2]=h;g=J[c+12>>2];h=J[g+12>>2];J[i+392>>2]=J[g+8>>2];J[i+396>>2]=h;h=J[g+4>>2];J[i+384>>2]=J[g>>2];J[i+388>>2]=h;h=J[g+28>>2];J[i+408>>2]=J[g+24>>2];J[i+412>>2]=h;h=J[g+20>>2];J[i+400>>2]=J[g+16>>2];J[i+404>>2]=h;h=J[g+44>>2];J[i+424>>2]=J[g+40>>2];J[i+428>>2]=h;h=J[g+36>>2];J[i+416>>2]=J[g+32>>2];J[i+420>>2]=h;h=J[g+60>>2];J[i+440>>2]=J[g+56>>2];J[i+444>>2]=h;h=J[g+52>>2];J[i+432>>2]=J[g+48>>2];J[i+436>>2]=h;J[i+372>>2]=0;H[i+376|0]=1;J[i+364>>2]=0;J[i+368>>2]=0;h=i+448|0;j=i+384|0;n=i+360|0;g=ga-96|0;ga=g;d:{if(J[d+68>>2]){k=N[h+20>>2];l=N[h+36>>2];t=N[h+52>>2];m=N[h+24>>2];v=N[h+56>>2];u=N[h+40>>2];q=N[h+32>>2];r=N[h>>2];o=N[h+16>>2];p=N[h+4>>2];s=N[h+8>>2];w=N[h+48>>2];J[g+60>>2]=0;w=Q(-w);x=N[j+56>>2];z=N[j+48>>2];A=N[j+52>>2];N[g+56>>2]=Q(Q(Q(s*w)-Q(m*t))-Q(u*v))+Q(Q(u*x)+Q(Q(s*z)+Q(m*A)));N[g+52>>2]=Q(Q(Q(p*w)-Q(k*t))-Q(l*v))+Q(Q(l*x)+Q(Q(p*z)+Q(k*A)));N[g+48>>2]=Q(Q(Q(r*w)-Q(o*t))-Q(q*v))+Q(Q(q*x)+Q(Q(r*z)+Q(o*A)));t=N[j+20>>2];v=N[j+36>>2];w=N[j+24>>2];x=N[j+40>>2];z=N[j+32>>2];A=N[j>>2];B=N[j+16>>2];C=N[j+4>>2];D=N[j+8>>2];J[g+44>>2]=0;J[g+28>>2]=0;N[g+40>>2]=Q(x*u)+Q(Q(D*s)+Q(m*w));N[g+36>>2]=Q(v*u)+Q(Q(C*s)+Q(m*t));N[g+24>>2]=Q(x*l)+Q(Q(D*p)+Q(k*w));N[g+20>>2]=Q(v*l)+Q(Q(C*p)+Q(k*t));J[g+12>>2]=0;N[g+32>>2]=Q(z*u)+Q(Q(A*s)+Q(m*B));N[g+16>>2]=Q(z*l)+Q(Q(A*p)+Q(k*B));N[g+8>>2]=Q(x*q)+Q(Q(D*r)+Q(o*w));N[g+4>>2]=Q(v*q)+Q(Q(C*r)+Q(o*t));N[g>>2]=Q(z*q)+Q(Q(A*r)+Q(o*B));h=g- -64|0;ia[J[J[e>>2]+8>>2]](e,g,h,g+80|0);Il(d+68|0,h,n);break d}ia[J[J[e>>2]+8>>2]](e,j,g- -64|0,g+80|0);S=ia[J[J[d>>2]+88>>2]](d)|0;if(!S){break d}Z=g+16|0;while(1){S=S-1|0;ia[J[J[d>>2]+120>>2]](d,S,h,g,Z);e:{if(N[g+80>>2]>2]|N[g+64>>2]>N[g+16>>2]|(N[g+84>>2] >2]|N[g+68>>2]>N[g+20>>2])){break e}if(N[g+88>>2] >2]|N[g+72>>2]>N[g+24>>2]){break e}e=J[n+4>>2];f:{if((e|0)!=J[n+8>>2]){break f}W=e?e<<1:1;if((W|0)<=(e|0)){break f}g:{if(!W){F=0;break g}J[8369]=J[8369]+1;F=ia[J[6782]](W<<2,16)|0;e=J[n+4>>2]}y=J[n+12>>2];h:{i:{if((e|0)>0){X=0;j=0;if(e-1>>>0>=3){_=e&-4;Y=0;while(1){E=j<<2;J[E+F>>2]=J[y+E>>2];V=E|4;J[V+F>>2]=J[y+V>>2];V=E|8;J[V+F>>2]=J[y+V>>2];E=E|12;J[E+F>>2]=J[y+E>>2];j=j+4|0;Y=Y+4|0;if((_|0)!=(Y|0)){continue}break}}e=e&3;if(!e){break i}while(1){E=j<<2;J[E+F>>2]=J[y+E>>2];j=j+1|0;X=X+1|0;if((e|0)!=(X|0)){continue}break}break i}if(!y){break h}}if(y?K[n+16|0]:0){J[8370]=J[8370]+1;ia[J[6783]](y)}e=J[n+4>>2]}J[n+12>>2]=F;H[n+16|0]=1;J[n+8>>2]=W}J[J[n+12>>2]+(e<<2)>>2]=S;J[n+4>>2]=J[n+4>>2]+1}if(S){continue}break}}ga=g+96|0;if(J[i+364>>2]){ia[J[J[d>>2]+112>>2]](d);Bb(i- -64|4);J[i+124>>2]=0;J[i+128>>2]=0;J[i+72>>2]=1;J[i+132>>2]=0;J[i+136>>2]=0;J[i+140>>2]=0;J[i+144>>2]=0;J[i+148>>2]=0;J[i+152>>2]=0;J[i+156>>2]=0;J[i+160>>2]=0;J[i+164>>2]=0;J[i+168>>2]=0;J[i+68>>2]=1976;Se(i+172|0);J[i+264>>2]=4;J[i+348>>2]=17412;J[i+340>>2]=17332;J[i+332>>2]=17260;J[i+172>>2]=4488;J[i+64>>2]=d;if(ia[J[J[d>>2]+96>>2]](d)|0){e=i+340|0}else{e=J[i+64>>2];e=ia[J[J[e>>2]+100>>2]](e)|0?i+348|0:i+332|0}J[i+356>>2]=e;J[e+4>>2]=i- -64;g=ia[J[J[d>>2]+92>>2]](d)|0;e=J[i+364>>2];j:{if(!e){break j}e=e-1|0;if(f){while(1){f=e;e=J[J[i+372>>2]+(e<<2)>>2];J[a+32>>2]=e;h=J[i+356>>2];h=ia[J[J[h>>2]>>2]](h,e)|0;if(g){ia[J[J[d>>2]+132>>2]](i,d,e)}j=J[a+28>>2];n=J[a+24>>2];y=J[b+12>>2];e=J[b+8>>2];J[i+4>>2]=h;J[i+8>>2]=e;J[i+12>>2]=y;J[i>>2]=b;J[i+16>>2]=lI(n,j);J[i+20>>2]=ha;j=J[a+16>>2];h=J[j+8>>2];J[((e|0)==J[h+8>>2]?8:12)+j>>2]=i;Mg(a,c,i);J[J[a+16>>2]+8>>2]=h;e=f-1|0;if(f){continue}break j}}if(g){while(1){f=J[J[i+372>>2]+(e<<2)>>2];J[a+24>>2]=f;g=J[i+356>>2];g=ia[J[J[g>>2]>>2]](g,f)|0;ia[J[J[d>>2]+132>>2]](i,d,f);h=J[a+28>>2];j=J[a+24>>2];n=J[b+12>>2];f=J[b+8>>2];J[i+4>>2]=g;J[i+8>>2]=f;J[i+12>>2]=n;J[i>>2]=b;J[i+16>>2]=lI(j,h);J[i+20>>2]=ha;h=J[a+16>>2];g=J[h+8>>2];J[((f|0)==J[g+8>>2]?8:12)+h>>2]=i;Mg(a,i,c);J[J[a+16>>2]+8>>2]=g;f=e;e=e-1|0;if(f){continue}break j}}while(1){f=J[J[i+372>>2]+(e<<2)>>2];J[a+24>>2]=f;g=J[i+356>>2];g=ia[J[J[g>>2]>>2]](g,f)|0;h=J[a+28>>2];j=J[a+24>>2];n=J[b+12>>2];f=J[b+8>>2];J[i>>2]=b;J[i+4>>2]=g;J[i+8>>2]=f;J[i+12>>2]=n;J[i+16>>2]=lI(j,h);J[i+20>>2]=ha;h=J[a+16>>2];g=J[h+8>>2];J[((f|0)==J[g+8>>2]?8:12)+h>>2]=i;Mg(a,i,c);J[J[a+16>>2]+8>>2]=g;f=e;e=e-1|0;if(f){continue}break}}ia[J[J[d>>2]+116>>2]](d);Qa(i+172|0);Qa(i- -64|4)}a=J[i+372>>2];if(!a|!K[i+376|0]){break a}if(a){J[8370]=J[8370]+1;ia[J[6783]](a)}}ga=i+512|0}function bg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;l=ga-16|0;ga=l;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{if(a>>>0<=244){e=J[8387];g=a>>>0<11?16:a+11&-8;c=g>>>3|0;b=e>>>c|0;if(b&3){d=c+((b^-1)&1)|0;b=d<<3;f=J[b+33596>>2];a=f+8|0;c=J[f+8>>2];b=b+33588|0;l:{if((c|0)==(b|0)){J[8387]=kI(d)&e;break l}J[c+12>>2]=b;J[b+8>>2]=c}b=d<<3;J[f+4>>2]=b|3;b=b+f|0;J[b+4>>2]=J[b+4>>2]|1;break a}k=J[8389];if(k>>>0>=g>>>0){break k}if(b){a=2< >>12&16;c=a;b=b>>>a|0;a=b>>>5&8;c=c|a;b=b>>>a|0;a=b>>>2&4;c=c|a;b=b>>>a|0;a=b>>>1&2;c=c|a;b=b>>>a|0;a=b>>>1&1;c=(c|a)+(b>>>a|0)|0;a=c<<3;j=J[a+33596>>2];b=J[j+8>>2];a=a+33588|0;m:{if((b|0)==(a|0)){e=kI(c)&e;J[8387]=e;break m}J[b+12>>2]=a;J[a+8>>2]=b}a=j+8|0;J[j+4>>2]=g|3;d=g+j|0;b=c<<3;f=b-g|0;J[d+4>>2]=f|1;J[b+j>>2]=f;if(k){b=k>>>3|0;c=(b<<3)+33588|0;j=J[8392];b=1<>2]}J[c+8>>2]=j;J[b+12>>2]=j;J[j+12>>2]=c;J[j+8>>2]=b}J[8392]=d;J[8389]=f;break a}h=J[8388];if(!h){break k}b=(0-h&h)-1|0;a=b>>>12&16;c=a;b=b>>>a|0;a=b>>>5&8;c=c|a;b=b>>>a|0;a=b>>>2&4;c=c|a;b=b>>>a|0;a=b>>>1&2;c=c|a;b=b>>>a|0;a=b>>>1&1;b=J[((c|a)+(b>>>a|0)<<2)+33852>>2];d=(J[b+4>>2]&-8)-g|0;c=b;while(1){o:{a=J[c+16>>2];if(!a){a=J[c+20>>2];if(!a){break o}}c=(J[a+4>>2]&-8)-g|0;f=c>>>0 >>0;d=f?c:d;b=f?a:b;c=a;continue}break}i=J[b+24>>2];f=J[b+12>>2];if((f|0)!=(b|0)){a=J[b+8>>2];J[a+12>>2]=f;J[f+8>>2]=a;break b}c=b+20|0;a=J[c>>2];if(!a){a=J[b+16>>2];if(!a){break j}c=b+16|0}while(1){j=c;f=a;c=a+20|0;a=J[c>>2];if(a){continue}c=f+16|0;a=J[f+16>>2];if(a){continue}break}J[j>>2]=0;break b}g=-1;if(a>>>0>4294967231){break k}a=a+11|0;g=a&-8;i=J[8388];if(!i){break k}d=0-g|0;e=0;p:{if(g>>>0<256){break p}e=31;if(g>>>0>16777215){break p}a=a>>>8|0;j=a+1048320>>>16&8;a=a< >>16&4;a=a< >>16&2;a=(a<>>15|0)-(b|(c|j))|0;e=(a<<1|g>>>a+21&1)+28|0}c=J[(e<<2)+33852>>2];q:{r:{s:{if(!c){a=0;break s}a=0;b=g<<((e|0)==31?0:25-(e>>>1|0)|0);while(1){t:{h=J[c+4>>2]&-8;j=h-g|0;if(j>>>0>=d>>>0){break t}d=j;f=c;if((g|0)!=(h|0)){break t}d=0;a=c;break r}j=J[c+20>>2];c=J[((b>>>29&4)+c|0)+16>>2];a=j?(j|0)==(c|0)?a:j:a;b=b<<1;if(c){continue}break}}if(!(a|f)){f=0;a=2< >>12&16;c=a;b=b>>>a|0;a=b>>>5&8;c=c|a;b=b>>>a|0;a=b>>>2&4;c=c|a;b=b>>>a|0;a=b>>>1&2;c=c|a;b=b>>>a|0;a=b>>>1&1;a=J[((c|a)+(b>>>a|0)<<2)+33852>>2]}if(!a){break q}}while(1){b=(J[a+4>>2]&-8)-g|0;c=b>>>0 >>0;d=c?b:d;f=c?a:f;b=J[a+16>>2];if(b){a=b}else{a=J[a+20>>2]}if(a){continue}break}}if(!f|J[8389]-g>>>0<=d>>>0){break k}e=J[f+24>>2];b=J[f+12>>2];if((f|0)!=(b|0)){a=J[f+8>>2];J[a+12>>2]=b;J[b+8>>2]=a;break c}c=f+20|0;a=J[c>>2];if(!a){a=J[f+16>>2];if(!a){break i}c=f+16|0}while(1){j=c;b=a;c=a+20|0;a=J[c>>2];if(a){continue}c=b+16|0;a=J[b+16>>2];if(a){continue}break}J[j>>2]=0;break c}c=J[8389];if(c>>>0>=g>>>0){d=J[8392];b=c-g|0;u:{if(b>>>0>=16){J[8389]=b;a=d+g|0;J[8392]=a;J[a+4>>2]=b|1;J[c+d>>2]=b;J[d+4>>2]=g|3;break u}J[8392]=0;J[8389]=0;J[d+4>>2]=c|3;a=c+d|0;J[a+4>>2]=J[a+4>>2]|1}a=d+8|0;break a}i=J[8390];if(i>>>0>g>>>0){b=i-g|0;J[8390]=b;c=J[8393];a=c+g|0;J[8393]=a;J[a+4>>2]=b|1;J[c+4>>2]=g|3;a=c+8|0;break a}a=0;h=g+47|0;if(J[8505]){c=J[8507]}else{J[8508]=-1;J[8509]=-1;J[8506]=4096;J[8507]=4096;J[8505]=l+12&-16^1431655768;J[8510]=0;J[8498]=0;c=4096}j=h+c|0;f=0-c|0;c=j&f;if(c>>>0<=g>>>0){break a}d=J[8497];if(d){b=J[8495];e=b+c|0;if(e>>>0>d>>>0|b>>>0>=e>>>0){break a}}if(K[33992]&4){break f}v:{w:{d=J[8393];if(d){a=33996;while(1){b=J[a>>2];if(b>>>0<=d>>>0&d>>>0>2]>>>0){break w}a=J[a+8>>2];if(a){continue}break}}b=cc(0);if((b|0)==-1){break g}e=c;d=J[8506];a=d-1|0;if(a&b){e=(c-b|0)+(a+b&0-d)|0}if(e>>>0<=g>>>0|e>>>0>2147483646){break g}d=J[8497];if(d){a=J[8495];f=a+e|0;if(d>>>0 >>0|a>>>0>=f>>>0){break g}}a=cc(e);if((b|0)!=(a|0)){break v}break e}e=f&j-i;if(e>>>0>2147483646){break g}b=cc(e);if((b|0)==(J[a>>2]+J[a+4>>2]|0)){break h}a=b}if(!((a|0)==-1|g+48>>>0<=e>>>0)){b=J[8507];b=b+(h-e|0)&0-b;if(b>>>0>2147483646){b=a;break e}if((cc(b)|0)!=-1){e=b+e|0;b=a;break e}cc(0-e|0);break g}b=a;if((a|0)!=-1){break e}break g}f=0;break b}b=0;break c}if((b|0)!=-1){break e}}J[8498]=J[8498]|4}if(c>>>0>2147483646){break d}b=cc(c);a=cc(0);if((b|0)==-1|(a|0)==-1|a>>>0<=b>>>0){break d}e=a-b|0;if(e>>>0<=g+40>>>0){break d}}a=J[8495]+e|0;J[8495]=a;if(a>>>0>M[8496]){J[8496]=a}x:{y:{z:{h=J[8393];if(h){a=33996;while(1){d=J[a>>2];c=J[a+4>>2];if((d+c|0)==(b|0)){break z}a=J[a+8>>2];if(a){continue}break}break y}a=J[8391];if(!(a>>>0<=b>>>0?a:0)){J[8391]=b}a=0;J[8500]=e;J[8499]=b;J[8395]=-1;J[8396]=J[8505];J[8502]=0;while(1){d=a<<3;c=d+33588|0;J[d+33596>>2]=c;J[d+33600>>2]=c;a=a+1|0;if((a|0)!=32){continue}break}d=e-40|0;a=b+8&7?-8-b&7:0;c=d-a|0;J[8390]=c;a=a+b|0;J[8393]=a;J[a+4>>2]=c|1;J[(b+d|0)+4>>2]=40;J[8394]=J[8509];break x}if(K[a+12|0]&8|d>>>0>h>>>0|b>>>0<=h>>>0){break y}J[a+4>>2]=c+e;a=h+8&7?-8-h&7:0;c=a+h|0;J[8393]=c;b=J[8390]+e|0;a=b-a|0;J[8390]=a;J[c+4>>2]=a|1;J[(b+h|0)+4>>2]=40;J[8394]=J[8509];break x}if(M[8391]>b>>>0){J[8391]=b}c=b+e|0;a=33996;A:{B:{C:{D:{E:{F:{while(1){if((c|0)!=J[a>>2]){a=J[a+8>>2];if(a){continue}break F}break}if(!(K[a+12|0]&8)){break E}}a=33996;while(1){c=J[a>>2];if(c>>>0<=h>>>0){f=c+J[a+4>>2]|0;if(f>>>0>h>>>0){break D}}a=J[a+8>>2];continue}}J[a>>2]=b;J[a+4>>2]=J[a+4>>2]+e;j=(b+8&7?-8-b&7:0)+b|0;J[j+4>>2]=g|3;e=c+(c+8&7?-8-c&7:0)|0;i=g+j|0;g=e-i|0;if((e|0)==(h|0)){J[8393]=i;a=J[8390]+g|0;J[8390]=a;J[i+4>>2]=a|1;break B}if(J[8392]==(e|0)){J[8392]=i;a=J[8389]+g|0;J[8389]=a;J[i+4>>2]=a|1;J[a+i>>2]=a;break B}a=J[e+4>>2];if((a&3)==1){f=a&-8;G:{if(a>>>0<=255){c=J[e+8>>2];a=a>>>3|0;b=J[e+12>>2];if((b|0)==(c|0)){J[8387]=J[8387]&kI(a);break G}J[c+12>>2]=b;J[b+8>>2]=c;break G}h=J[e+24>>2];b=J[e+12>>2];H:{if((e|0)!=(b|0)){a=J[e+8>>2];J[a+12>>2]=b;J[b+8>>2]=a;break H}I:{a=e+20|0;d=J[a>>2];if(d){break I}a=e+16|0;d=J[a>>2];if(d){break I}b=0;break H}while(1){c=a;b=d;a=b+20|0;d=J[a>>2];if(d){continue}a=b+16|0;d=J[b+16>>2];if(d){continue}break}J[c>>2]=0}if(!h){break G}c=J[e+28>>2];a=(c<<2)+33852|0;J:{if(J[a>>2]==(e|0)){J[a>>2]=b;if(b){break J}J[8388]=J[8388]&kI(c);break G}J[h+(J[h+16>>2]==(e|0)?16:20)>>2]=b;if(!b){break G}}J[b+24>>2]=h;a=J[e+16>>2];if(a){J[b+16>>2]=a;J[a+24>>2]=b}a=J[e+20>>2];if(!a){break G}J[b+20>>2]=a;J[a+24>>2]=b}g=f+g|0;e=e+f|0}J[e+4>>2]=J[e+4>>2]&-2;J[i+4>>2]=g|1;J[g+i>>2]=g;if(g>>>0<=255){a=g>>>3|0;b=(a<<3)+33588|0;c=J[8387];a=1<>2]}J[b+8>>2]=i;J[a+12>>2]=i;J[i+12>>2]=b;J[i+8>>2]=a;break B}a=31;if(g>>>0<=16777215){a=g>>>8|0;d=a+1048320>>>16&8;a=a< >>16&4;a=a< >>16&2;a=(a<>>15|0)-(b|(c|d))|0;a=(a<<1|g>>>a+21&1)+28|0}J[i+28>>2]=a;J[i+16>>2]=0;J[i+20>>2]=0;d=(a<<2)+33852|0;c=J[8388];b=1<>2]=i;J[i+24>>2]=d;break L}a=g<<((a|0)==31?0:25-(a>>>1|0)|0);b=J[d>>2];while(1){c=b;if((J[b+4>>2]&-8)==(g|0)){break C}b=a>>>29|0;a=a<<1;d=c+(b&4)|0;b=J[d+16>>2];if(b){continue}break}J[d+16>>2]=i;J[i+24>>2]=c}J[i+12>>2]=i;J[i+8>>2]=i;break B}d=e-40|0;a=b+8&7?-8-b&7:0;c=d-a|0;J[8390]=c;a=a+b|0;J[8393]=a;J[a+4>>2]=c|1;J[(b+d|0)+4>>2]=40;J[8394]=J[8509];a=(f+(f-39&7?39-f&7:0)|0)-47|0;c=a>>>0 >>0?h:a;J[c+4>>2]=27;a=J[8502];J[c+16>>2]=J[8501];J[c+20>>2]=a;a=J[8500];J[c+8>>2]=J[8499];J[c+12>>2]=a;J[8501]=c+8;J[8500]=e;J[8499]=b;J[8502]=0;a=c+24|0;while(1){J[a+4>>2]=7;b=a+8|0;a=a+4|0;if(b>>>0 >>0){continue}break}if((c|0)==(h|0)){break x}J[c+4>>2]=J[c+4>>2]&-2;f=c-h|0;J[h+4>>2]=f|1;J[c>>2]=f;if(f>>>0<=255){a=f>>>3|0;b=(a<<3)+33588|0;c=J[8387];a=1<>2]}J[b+8>>2]=h;J[a+12>>2]=h;J[h+12>>2]=b;J[h+8>>2]=a;break x}a=31;J[h+16>>2]=0;J[h+20>>2]=0;if(f>>>0<=16777215){a=f>>>8|0;d=a+1048320>>>16&8;a=a< >>16&4;a=a< >>16&2;a=(a<>>15|0)-(b|(c|d))|0;a=(a<<1|f>>>a+21&1)+28|0}J[h+28>>2]=a;d=(a<<2)+33852|0;c=J[8388];b=1<>2]=h;J[h+24>>2]=d;break N}a=f<<((a|0)==31?0:25-(a>>>1|0)|0);b=J[d>>2];while(1){c=b;if((f|0)==(J[b+4>>2]&-8)){break A}b=a>>>29|0;a=a<<1;d=c+(b&4)|0;b=J[d+16>>2];if(b){continue}break}J[d+16>>2]=h;J[h+24>>2]=c}J[h+12>>2]=h;J[h+8>>2]=h;break x}a=J[c+8>>2];J[a+12>>2]=i;J[c+8>>2]=i;J[i+24>>2]=0;J[i+12>>2]=c;J[i+8>>2]=a}a=j+8|0;break a}a=J[c+8>>2];J[a+12>>2]=h;J[c+8>>2]=h;J[h+24>>2]=0;J[h+12>>2]=c;J[h+8>>2]=a}a=J[8390];if(a>>>0<=g>>>0){break d}b=a-g|0;J[8390]=b;c=J[8393];a=c+g|0;J[8393]=a;J[a+4>>2]=b|1;J[c+4>>2]=g|3;a=c+8|0;break a}J[8386]=48;a=0;break a}O:{if(!e){break O}c=J[f+28>>2];a=(c<<2)+33852|0;P:{if(J[a>>2]==(f|0)){J[a>>2]=b;if(b){break P}i=kI(c)&i;J[8388]=i;break O}J[e+(J[e+16>>2]==(f|0)?16:20)>>2]=b;if(!b){break O}}J[b+24>>2]=e;a=J[f+16>>2];if(a){J[b+16>>2]=a;J[a+24>>2]=b}a=J[f+20>>2];if(!a){break O}J[b+20>>2]=a;J[a+24>>2]=b}Q:{if(d>>>0<=15){a=d+g|0;J[f+4>>2]=a|3;a=a+f|0;J[a+4>>2]=J[a+4>>2]|1;break Q}J[f+4>>2]=g|3;e=f+g|0;J[e+4>>2]=d|1;J[e+d>>2]=d;if(d>>>0<=255){a=d>>>3|0;b=(a<<3)+33588|0;c=J[8387];a=1<>2]}J[b+8>>2]=e;J[a+12>>2]=e;J[e+12>>2]=b;J[e+8>>2]=a;break Q}a=31;if(d>>>0<=16777215){a=d>>>8|0;j=a+1048320>>>16&8;a=a< >>16&4;a=a< >>16&2;a=(a<>>15|0)-(b|(c|j))|0;a=(a<<1|d>>>a+21&1)+28|0}J[e+28>>2]=a;J[e+16>>2]=0;J[e+20>>2]=0;b=(a<<2)+33852|0;S:{c=1<>2]=e;break T}a=d<<((a|0)==31?0:25-(a>>>1|0)|0);c=J[b>>2];while(1){b=c;if((J[b+4>>2]&-8)==(d|0)){break S}c=a>>>29|0;a=a<<1;j=(c&4)+b|0;c=J[j+16>>2];if(c){continue}break}J[j+16>>2]=e}J[e+24>>2]=b;J[e+12>>2]=e;J[e+8>>2]=e;break Q}a=J[b+8>>2];J[a+12>>2]=e;J[b+8>>2]=e;J[e+24>>2]=0;J[e+12>>2]=b;J[e+8>>2]=a}a=f+8|0;break a}U:{if(!i){break U}c=J[b+28>>2];a=(c<<2)+33852|0;V:{if(J[a>>2]==(b|0)){J[a>>2]=f;if(f){break V}J[8388]=kI(c)&h;break U}J[i+(J[i+16>>2]==(b|0)?16:20)>>2]=f;if(!f){break U}}J[f+24>>2]=i;a=J[b+16>>2];if(a){J[f+16>>2]=a;J[a+24>>2]=f}a=J[b+20>>2];if(!a){break U}J[f+20>>2]=a;J[a+24>>2]=f}W:{if(d>>>0<=15){a=d+g|0;J[b+4>>2]=a|3;a=a+b|0;J[a+4>>2]=J[a+4>>2]|1;break W}J[b+4>>2]=g|3;f=b+g|0;J[f+4>>2]=d|1;J[d+f>>2]=d;if(k){a=k>>>3|0;c=(a<<3)+33588|0;j=J[8392];a=1<>2]}J[c+8>>2]=j;J[a+12>>2]=j;J[j+12>>2]=c;J[j+8>>2]=a}J[8392]=f;J[8389]=d}a=b+8|0}ga=l+16|0;return a|0}function zg(a,b,c,d,e){var f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=0,m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=Q(0),F=Q(0),G=Q(0),I=Q(0),L=Q(0),M=Q(0),O=Q(0),P=Q(0),S=Q(0),V=Q(0),W=Q(0),X=Q(0),Z=Q(0),_=Q(0),$=Q(0),aa=Q(0),ba=Q(0),ca=Q(0),da=Q(0),ea=Q(0),fa=Q(0),ha=Q(0),ia=Q(0),ja=Q(0),ka=Q(0),la=Q(0),ma=Q(0),na=Q(0),oa=Q(0),pa=Q(0),qa=0,ra=Q(0),sa=Q(0),ta=Q(0),ua=Q(0),va=Q(0),wa=Q(0),xa=Q(0),ya=Q(0),za=Q(0),Aa=Q(0),Ba=Q(0),Ca=Q(0),Da=Q(0),Ea=Q(0),Fa=Q(0),Ia=Q(0),Ja=Q(0),Ka=Q(0),La=Q(0),Ma=Q(0),Oa=Q(0);l=ga-80|0;ga=l;H[a+525|0]=0;H[a+526|0]=0;J[a+500>>2]=0;J[a+504>>2]=0;a:{if(!(K[a+527|0]|!K[a+552|0])){Ia=N[c+52>>2];Ja=N[c+56>>2];q=N[a+412>>2];M=N[a+416>>2];S=N[a+420>>2];Ka=N[b+52>>2];La=N[b+56>>2];V=N[a+348>>2];W=N[a+352>>2];y=N[a+356>>2];i=N[c+20>>2];n=N[c+24>>2];o=N[b+20>>2];u=N[b+24>>2];v=N[a+308>>2];D=N[a+324>>2];E=N[a+340>>2];P=N[a+316>>2];F=N[a+332>>2];X=N[a+304>>2];p=N[b+36>>2];Z=N[a+320>>2];k=N[b+40>>2];_=N[a+336>>2];$=N[a+372>>2];aa=N[a+388>>2];ba=N[a+404>>2];ka=N[a+368>>2];la=N[a+384>>2];ma=N[a+400>>2];h=N[a+568>>2];j=N[a+564>>2];g=N[a+560>>2];G=N[c+36>>2];na=N[a+380>>2];I=N[c+40>>2];oa=N[a+396>>2];Ma=N[c+48>>2];L=N[c+8>>2];x=N[c+4>>2];r=N[c>>2];Oa=N[b+48>>2];t=N[b+8>>2];z=N[b>>2];A=N[b+4>>2];C=N[c+16>>2];m=N[b+16>>2];pa=N[a+300>>2];w=N[b+32>>2];f=N[a+556>>2];s=N[c+32>>2];wa=N[a+364>>2];J[l+76>>2]=0;J[l+60>>2]=0;J[l+44>>2]=0;ra=Q(Q(E*k)+Q(Q(v*w)+Q(D*p)));B=Q(Q(2)/Q(Q(h*h)+Q(Q(j*j)+Q(Q(f*f)+Q(g*g)))));ca=Q(f*B);da=Q(f*ca);O=Q(g*B);ea=Q(g*O);xa=Q(Q(1)-Q(da+ea));sa=Q(Q(ba*I)+Q(Q($*s)+Q(aa*G)));B=Q(j*B);fa=Q(f*B);ha=Q(h*O);ya=Q(fa+ha);ta=Q(Q(oa*I)+Q(Q(wa*s)+Q(na*G)));ia=Q(g*B);ja=Q(h*ca);za=Q(ia-ja);g=Q(Q(ma*I)+Q(Q(ka*s)+Q(la*G)));ca=Q(Q(xa*sa)+Q(Q(ya*ta)+Q(za*g)));ua=Q(Q(F*k)+Q(Q(pa*w)+Q(P*p)));Aa=Q(fa-ha);j=Q(j*B);Ba=Q(Q(1)-Q(ea+j));O=Q(f*O);B=Q(h*B);Ca=Q(O+B);f=Q(Q(Aa*sa)+Q(Q(Ba*ta)+Q(Ca*g)));h=Q(Q(_*k)+Q(Q(X*w)+Q(Z*p)));Da=Q(ia+ja);Ea=Q(O-B);Fa=Q(Q(1)-Q(da+j));j=Q(Q(Da*sa)+Q(Q(Ea*ta)+Q(Fa*g)));N[l+56>>2]=Q(ra*ca)+Q(Q(ua*f)+Q(h*j));B=Q(Q(E*u)+Q(Q(v*m)+Q(D*o)));O=Q(Q(F*u)+Q(Q(pa*m)+Q(P*o)));da=Q(Q(_*u)+Q(Q(X*m)+Q(Z*o)));N[l+52>>2]=Q(B*ca)+Q(Q(O*f)+Q(da*j));ea=Q(Q(ba*n)+Q(Q($*C)+Q(aa*i)));fa=Q(Q(oa*n)+Q(Q(wa*C)+Q(na*i)));ha=Q(Q(ma*n)+Q(Q(ka*C)+Q(la*i)));ia=Q(Q(xa*ea)+Q(Q(ya*fa)+Q(za*ha)));ja=Q(Q(Aa*ea)+Q(Q(Ba*fa)+Q(Ca*ha)));va=Q(Q(Da*ea)+Q(Q(Ea*fa)+Q(Fa*ha)));N[l+40>>2]=Q(ra*ia)+Q(Q(ua*ja)+Q(h*va));N[l+36>>2]=Q(B*ia)+Q(Q(O*ja)+Q(da*va));v=Q(Q(E*t)+Q(Q(v*z)+Q(A*D)));D=Q(-Q(Oa+Q(Q(y*t)+Q(Q(V*z)+Q(A*W)))));m=Q(Ka+Q(Q(y*u)+Q(Q(V*m)+Q(o*W))));p=Q(La+Q(Q(y*k)+Q(Q(V*w)+Q(p*W))));k=Q(Q(Q(v*D)-Q(B*m))-Q(ra*p));o=Q(Q(F*t)+Q(Q(pa*z)+Q(P*A)));w=Q(Q(Q(o*D)-Q(O*m))-Q(ua*p));u=Q(Q(_*t)+Q(Q(X*z)+Q(A*Z)));t=Q(Q(Q(u*D)-Q(da*m))-Q(h*p));N[l+72>>2]=Q(Q(k*ca)+Q(Q(w*f)+Q(t*j)))+Q(Q(Q(sa*Q(0))+Q(Q(ta*Q(0))+Q(g*Q(0))))+Q(Ja+Q(Q(S*I)+Q(Q(q*s)+Q(G*M)))));N[l+68>>2]=Q(Q(k*ia)+Q(Q(w*ja)+Q(t*va)))+Q(Q(Q(ea*Q(0))+Q(Q(fa*Q(0))+Q(ha*Q(0))))+Q(Ia+Q(Q(S*n)+Q(Q(q*C)+Q(i*M)))));J[l+28>>2]=0;N[l+48>>2]=Q(v*ca)+Q(Q(o*f)+Q(u*j));N[l+32>>2]=Q(v*ia)+Q(Q(o*ja)+Q(u*va));f=Q(Q(ba*L)+Q(Q($*r)+Q(x*aa)));g=Q(Q(oa*L)+Q(Q(wa*r)+Q(na*x)));i=Q(Q(ma*L)+Q(Q(ka*r)+Q(x*la)));n=Q(Q(xa*f)+Q(Q(ya*g)+Q(za*i)));p=Q(Q(Aa*f)+Q(Q(Ba*g)+Q(Ca*i)));m=h;h=Q(Q(Da*f)+Q(Q(Ea*g)+Q(Fa*i)));N[l+24>>2]=Q(ra*n)+Q(Q(ua*p)+Q(m*h));N[l+20>>2]=Q(B*n)+Q(Q(O*p)+Q(da*h));N[l+16>>2]=Q(v*n)+Q(Q(o*p)+Q(u*h));N[l+64>>2]=Q(Q(k*n)+Q(Q(w*p)+Q(t*h)))+Q(Q(Q(f*Q(0))+Q(Q(g*Q(0))+Q(i*Q(0))))+Q(Ma+Q(Q(S*L)+Q(Q(q*r)+Q(x*M)))));Na(l+16|0,l);f=N[l+8>>2];h=N[l>>2];g=N[l+4>>2];i=Q(Q(f*f)+Q(Q(h*h)+Q(g*g)));if(Q(R(i)) >2]=0;m=f;f=Q(Q(1)/Q(Y(i)));N[a+468>>2]=m*f;N[a+464>>2]=g*f;N[a+460>>2]=h*f;f=qb(Q(T(Q(U(N[l+12>>2],Q(-1))),Q(1))));f=Q(f+f);N[a+504>>2]=f;if(Q(R(f))>2];h=N[l+8>>2];p=N[l+4>>2];k=N[l+20>>2];j=N[l+12>>2];x=N[l+28>>2];r=N[l+16>>2];t=N[l>>2];Na(c,qa);Na(a+364|0,l);g=Q(-0);C=Q(1);z=N[l+16>>2];A=N[l+4>>2];m=N[l+28>>2];w=N[l+8>>2];s=N[l+12>>2];i=N[l+24>>2];q=N[l+20>>2];M=N[l>>2];o=Q(Q(Q(z*A)+Q(Q(m*w)+Q(s*i)))-Q(q*M));G=Q(Q(Q(r*p)+Q(Q(x*h)+Q(j*f)))-Q(k*t));u=Q(Q(Q(i*M)+Q(Q(m*A)+Q(s*q)))-Q(z*w));I=Q(Q(Q(f*t)+Q(Q(x*p)+Q(j*k)))-Q(r*h));n=Q(Q(Q(Q(m*s)-Q(M*z))-Q(q*A))-Q(i*w));L=Q(Q(Q(Q(x*j)-Q(t*r))-Q(k*p))-Q(f*h));x=Q(Q(Q(k*h)+Q(Q(x*t)+Q(r*j)))-Q(f*p));p=Q(Q(Q(q*w)+Q(Q(m*M)+Q(z*s)))-Q(i*A));t=Q(Q(o*G)+Q(Q(u*I)+Q(Q(n*L)+Q(x*p))));h=Q(t*Q(0));z=Q(Q(u*x)+Q(Q(Q(n*G)-Q(L*o))-Q(p*I)));A=Q(Q(o*I)+Q(Q(Q(n*x)-Q(L*p))-Q(u*G)));k=Q(A*Q(0));f=Q(Q(h+z)-k);r=Q(Q(p*G)+Q(Q(Q(n*I)-Q(L*u))-Q(o*x)));h=Q(Q(h+k)-r);j=Q(z*Q(-0));k=Q(j+Q(Q(r*Q(-0))-A));j=Q(j+Q(t+Q(r*Q(0))));m=Q(Q(f*A)+Q(Q(Q(t*h)-Q(k*z))-Q(j*r)));q=m;s=Q(m*m);m=Q(Q(h*r)+Q(Q(Q(t*j)-Q(k*A))-Q(f*z)));f=Q(Q(j*z)+Q(Q(Q(t*f)-Q(k*r))-Q(h*A)));h=Q(Q(1)/Q(Y(Q(s+Q(Q(m*m)+Q(f*f))))));k=Q(q*h);j=Q(m*h);f=Q(f*h);h=Q(Q(k*Q(0))+Q(j+Q(f*Q(0))));if(!(h>2];y=N[a+456>>2];qa=h>=y;j=N[a+448>>2];b:{if(!(!qa|!(y<=j))){g=qb(Q(T(Q(U(M,Q(-1))),Q(1))));s=Q(g+g);f=Q(0);c:{if(!(s>Q(1.1920928955078125e-7))){break c}g=Q(Q(1)/Q(Y(Q(Q(m*m)+Q(Q(w*w)+Q(C*C))))));k=Q(m*g);i=Q(w*g);g=Q(C*g);f=h;if(!(Q(R(g))>Q(1.1920928955078125e-7))){break c}f=Q(Q(k*k)/Q(g*g));f=Q(Y(Q(Q(f+Q(1))/Q(Q(Q(1)/Q(j*j))+Q(f/Q(h*h))))))}q=N[a+428>>2];y=Q(f*q);if(!(y>2]=y;N[a+528>>2]=!(f>s)|!(qQ(1.1920928955078125e-7)){f=Q(R(Q(g*Q(Q(j/h)*Q(Q(-k)/g)))));f=k>2]=0;J[a+540>>2]=0;J[a+472>>2]=0;J[a+544>>2]=0;J[a+548>>2]=0;j=Q(Q(p*k)+Q(Q(n*Q(-g))-Q(o*i)));s=Q(Q(o*g)+Q(Q(n*Q(-i))-Q(u*k)));q=Q(Q(o*k)+Q(Q(p*i)+Q(u*g)));g=Q(Q(u*i)+Q(Q(n*Q(-k))-Q(p*g)));f=Q(Q(j*p)+Q(Q(s*V)+Q(Q(q*S)+Q(n*g))));N[a+468>>2]=f;h=Q(Q(s*o)+Q(Q(g*W)+Q(Q(q*V)+Q(n*j))));N[a+464>>2]=h;g=Q(Q(g*u)+Q(Q(j*S)+Q(Q(q*W)+Q(n*s))));N[a+460>>2]=g;N[a+492>>2]=Q(1)/Q(Q(Q(f*Q(Q(f*N[d+40>>2])+Q(Q(N[d+8>>2]*g)+Q(h*N[d+24>>2]))))+Q(Q(g*Q(Q(N[d+32>>2]*f)+Q(Q(g*N[d>>2])+Q(N[d+16>>2]*h))))+Q(h*Q(Q(N[d+36>>2]*f)+Q(Q(N[d+4>>2]*g)+Q(h*N[d+20>>2]))))))+Q(Q(f*Q(Q(f*N[e+40>>2])+Q(Q(N[e+8>>2]*g)+Q(h*N[e+24>>2]))))+Q(Q(g*Q(Q(N[e+32>>2]*f)+Q(Q(g*N[e>>2])+Q(h*N[e+16>>2]))))+Q(h*Q(Q(N[e+36>>2]*f)+Q(Q(N[e+4>>2]*g)+Q(h*N[e+20>>2])))))));break b}f=N[a+396>>2];g=N[a+364>>2];i=N[a+380>>2];k=Q(Q(N[c+40>>2]*f)+Q(Q(N[c+32>>2]*g)+Q(i*N[c+36>>2])));v=N[b+40>>2];q=N[a+340>>2];D=N[b+32>>2];E=N[a+308>>2];P=N[b+36>>2];F=N[a+324>>2];ka=Q(Q(v*q)+Q(Q(D*E)+Q(P*F)));s=Q(Q(N[c+8>>2]*f)+Q(Q(N[c>>2]*g)+Q(i*N[c+4>>2])));X=N[b+8>>2];Z=N[b>>2];_=N[b+4>>2];la=Q(Q(X*q)+Q(Q(Z*E)+Q(_*F)));$=N[b+24>>2];aa=N[b+16>>2];B=Q(aa*E);E=N[b+20>>2];ma=Q(Q($*q)+Q(B+Q(E*F)));q=Q(Q(N[c+24>>2]*f)+Q(Q(N[c+16>>2]*g)+Q(i*N[c+20>>2])));g=Q(Q(k*ka)+Q(Q(s*la)+Q(ma*q)));f=N[a+336>>2];i=N[a+304>>2];F=N[a+320>>2];na=Q(Q(v*f)+Q(Q(D*i)+Q(P*F)));oa=Q(Q(X*f)+Q(Q(Z*i)+Q(_*F)));pa=Q(Q($*f)+Q(Q(aa*i)+Q(E*F)));f=Q(Q(k*na)+Q(Q(s*oa)+Q(pa*q)));i=N[a+332>>2];F=N[a+300>>2];ba=N[a+316>>2];v=Q(Q(v*i)+Q(Q(D*F)+Q(ba*P)));D=Q(Q($*i)+Q(Q(aa*F)+Q(ba*E)));E=Q(Q(X*i)+Q(Q(Z*F)+Q(ba*_)));b=h>2]=0;N[a+468>>2]=-Q(Q(s*D)-Q(E*q));N[a+464>>2]=-Q(Q(k*E)-Q(v*s));N[a+460>>2]=-Q(Q(q*v)-Q(D*k));break b}i=Q(Q(k*v)+Q(Q(s*E)+Q(D*q)));P=Q(R(i));d:{if(b){if(P =y)){break d}h=$a(g,i);if(h>j){f=Q(0);g=Ga(j);i=Ha(j);break d}f=Q(0);if(!(hh){g=Q(0);f=Ga(h);break e}g=Q(0);if(!(j>2]=0;h=Q(Q(g*ka)+Q(Q(i*v)+Q(na*f)));j=Q(Q(g*la)+Q(Q(i*E)+Q(oa*f)));g=Q(Q(g*ma)+Q(Q(i*D)+Q(pa*f)));f=Q(Q(1)/Q(Y(Q(Q(h*h)+Q(Q(j*j)+Q(g*g))))));i=Q(g*f);j=Q(j*f);g=Q(Q(s*i)-Q(j*q));h=Q(h*f);f=Q(Q(q*h)-Q(i*k));h=Q(Q(k*j)-Q(h*s));i=Q(Y(Q(Q(g*g)+Q(Q(f*f)+Q(h*h)))));N[a+504>>2]=i;i=Q(Q(1)/i);N[a+468>>2]=i*Q(-g);N[a+464>>2]=i*Q(-h);N[a+460>>2]=i*Q(-f)}k=N[a+452>>2];if(k>=Q(0)){j=Q(Q(m*z)+Q(Q(C*r)+Q(Q(M*t)+Q(A*w))));f=Q(Q(C*A)+Q(Q(Q(M*z)-Q(t*m))-Q(w*r)));g=Q(Q(m*r)+Q(Q(Q(M*A)-Q(t*w))-Q(C*z)));h=Q(Q(w*z)+Q(Q(Q(M*r)-Q(t*C))-Q(m*A)));i=Q(Q(1)/Q(Y(Q(Q(j*j)+Q(Q(f*f)+Q(Q(g*g)+Q(h*h)))))));f=Q(f*i);h=Q(h*i);g=Q(g*i);j=Q(j*i);i=qb(Q(T(Q(U(j,Q(-1))),Q(1))));i=Q(i+i);if(i>Q(3.1415927410125732)){i=qb(Q(T(Q(U(Q(-j),Q(-1))),Q(1))));i=Q(i+i);h=Q(-h);g=Q(-g);f=Q(-f)}N[a+512>>2]=i;if(i>Q(1.1920928955078125e-7)){j=Q(Q(1)/Q(Y(Q(Q(f*f)+Q(Q(g*g)+Q(h*h))))));f=Q(f*j);g=Q(g*j);h=Q(h*j)}r=N[a+428>>2];j=Q(k*r);if(j>2]=t;m=Q(1);f:{if(!(i>2]=m;J[a+488>>2]=0;k=Q(Q(p*f)+Q(Q(n*Q(-h))-Q(o*g)));m=Q(k*p);j=Q(Q(o*h)+Q(Q(n*Q(-g))-Q(u*f)));r=Q(Q(o*f)+Q(Q(p*g)+Q(u*h)));p=Q(Q(u*g)+Q(Q(n*Q(-f))-Q(p*h)));i=Q(m+Q(Q(j*V)+Q(Q(r*S)+Q(n*p))));N[a+484>>2]=i;o=Q(Q(j*o)+Q(Q(p*W)+Q(Q(r*V)+Q(n*k))));N[a+480>>2]=o;n=Q(Q(p*u)+Q(Q(k*S)+Q(Q(r*W)+Q(n*j))));N[a+476>>2]=n;N[a+496>>2]=Q(1)/Q(Q(Q(i*Q(Q(i*N[d+40>>2])+Q(Q(N[d+8>>2]*n)+Q(o*N[d+24>>2]))))+Q(Q(n*Q(Q(N[d+32>>2]*i)+Q(Q(n*N[d>>2])+Q(N[d+16>>2]*o))))+Q(o*Q(Q(N[d+36>>2]*i)+Q(Q(N[d+4>>2]*n)+Q(o*N[d+20>>2]))))))+Q(Q(i*Q(Q(i*N[e+40>>2])+Q(Q(N[e+8>>2]*n)+Q(o*N[e+24>>2]))))+Q(Q(n*Q(Q(N[e+32>>2]*i)+Q(Q(n*N[e>>2])+Q(o*N[e+16>>2]))))+Q(o*Q(Q(N[e+36>>2]*i)+Q(Q(N[e+4>>2]*n)+Q(o*N[e+20>>2])))))))}if(!K[a+526|0]){break a}J[a+548>>2]=0;i=Q(Q(x*f)+Q(Q(L*Q(-h))-Q(G*g)));n=Q(Q(I*g)+Q(Q(L*Q(-f))-Q(x*h)));o=Q(Q(G*f)+Q(Q(x*g)+Q(I*h)));f=Q(Q(G*h)+Q(Q(L*Q(-g))-Q(I*f)));N[a+544>>2]=Q(i*x)+Q(Q(Q(L*n)-Q(o*G))-Q(f*I));N[a+540>>2]=Q(f*G)+Q(Q(Q(L*i)-Q(o*I))-Q(n*x));N[a+536>>2]=Q(n*I)+Q(Q(Q(L*f)-Q(o*x))-Q(i*G));break a}J[a+512>>2]=0}ga=l+80|0}function pl(a){var b=0,c=0,d=0,e=Q(0),f=Q(0),g=0,h=Q(0),i=Q(0),j=Q(0),k=0,l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=0,r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=0,A=0,B=0,C=0,D=Q(0),E=Q(0),F=Q(0),G=Q(0),I=Q(0),L=Q(0),M=Q(0),O=Q(0),P=0,R=Q(0),S=Q(0),T=Q(0),U=Q(0),V=Q(0),W=0,X=0,Y=Q(0),Z=Q(0),_=0;k=ga-16|0;ga=k;a:{if(!K[a+356|0]){c=K[a+312|0];break a}H[a+356|0]=0;H[a+352|0]=0;J[a+344>>2]=0;J[a+348>>2]=0;J[a+336>>2]=0;J[a+340>>2]=0;d=K[a+332|0]&-16;H[a+332|0]=d;b=a+316|0;b:{c:{switch(J[a>>2]-1|0){case 0:c=J[a+168>>2];J[a+260>>2]=J[a+164>>2];J[a+264>>2]=c;c=J[a+88>>2];J[a+244>>2]=J[a+84>>2];J[a+248>>2]=c;c=J[a+176>>2];J[a+268>>2]=J[a+172>>2];J[a+272>>2]=c;c=J[a+96>>2];J[a+252>>2]=J[a+92>>2];J[a+256>>2]=c;H[a+352|0]=0;J[a+288>>2]=0;N[a+280>>2]=N[a+248>>2]-N[a+264>>2];N[a+276>>2]=N[a+244>>2]-N[a+260>>2];N[a+284>>2]=N[a+252>>2]-N[a+268>>2];J[a+344>>2]=0;J[a+348>>2]=0;J[a+336>>2]=1065353216;J[a+340>>2]=0;c=1;break b;case 1:g=1;j=N[a+8>>2];e=Q(N[a+24>>2]-j);i=N[a+12>>2];h=Q(N[a+28>>2]-i);l=Q(h*Q(Q(0)-i));m=N[a+4>>2];i=Q(N[a+20>>2]-m);j=Q(l+Q(Q(i*Q(Q(0)-m))+Q(Q(Q(0)-j)*e)));c=1;d:{if(!(j>Q(0))){break d}f=Q(Q(h*h)+Q(Q(i*i)+Q(e*e)));if(!(f>j)){f=Q(1);c=2;break d}f=Q(j/f);c=3}J[a+344>>2]=0;J[a+348>>2]=0;N[a+340>>2]=f;j=Q(Q(1)-f);N[a+336>>2]=j;H[a+332|0]=d|c;J[a+256>>2]=0;e=N[a+92>>2];m=Q(e+Q(f*Q(N[a+108>>2]-e)));N[a+252>>2]=m;e=N[a+88>>2];o=Q(e+Q(f*Q(N[a+104>>2]-e)));N[a+248>>2]=o;e=N[a+84>>2];p=Q(e+Q(f*Q(N[a+100>>2]-e)));N[a+244>>2]=p;l=N[a+180>>2];r=N[a+184>>2];e=N[a+168>>2];s=N[a+188>>2];h=N[a+172>>2];i=N[a+164>>2];J[a+288>>2]=0;h=Q(h+Q(f*Q(s-h)));N[a+284>>2]=m-h;e=Q(e+Q(f*Q(r-e)));N[a+280>>2]=o-e;i=Q(i+Q(f*Q(l-i)));N[a+276>>2]=p-i;J[a+272>>2]=0;N[a+268>>2]=h;N[a+264>>2]=e;N[a+260>>2]=i;if(!(c&2)){J[a>>2]=1;g=0}if(!(c&1)){J[a>>2]=g;c=(g<<4)+a|0;b=J[c+16>>2];J[a+12>>2]=J[c+12>>2];J[a+16>>2]=b;b=J[c+8>>2];J[a+4>>2]=J[c+4>>2];J[a+8>>2]=b;b=J[c+96>>2];J[a+92>>2]=J[c+92>>2];J[a+96>>2]=b;b=J[c+88>>2];J[a+84>>2]=J[c+84>>2];J[a+88>>2]=b;b=J[c+176>>2];J[a+172>>2]=J[c+172>>2];J[a+176>>2]=b;b=J[c+168>>2];J[a+164>>2]=J[c+164>>2];J[a+168>>2]=b}c=j>=Q(0)&f>=Q(0);break b;case 2:J[k+8>>2]=0;J[k+12>>2]=0;J[k>>2]=0;J[k+4>>2]=0;rd(k,a+4|0,a+20|0,a+36|0,b);J[a+256>>2]=0;h=N[a+336>>2];f=N[a+340>>2];e=N[a+344>>2];i=Q(Q(Q(h*N[a+92>>2])+Q(f*N[a+108>>2]))+Q(e*N[a+124>>2]));N[a+252>>2]=i;j=Q(Q(Q(h*N[a+88>>2])+Q(f*N[a+104>>2]))+Q(e*N[a+120>>2]));N[a+248>>2]=j;m=Q(Q(Q(h*N[a+84>>2])+Q(f*N[a+100>>2]))+Q(e*N[a+116>>2]));N[a+244>>2]=m;o=N[a+180>>2];p=N[a+196>>2];l=N[a+168>>2];r=N[a+184>>2];s=N[a+200>>2];u=N[a+172>>2];v=N[a+188>>2];w=N[a+204>>2];x=N[a+164>>2];J[a+288>>2]=0;n=i;i=Q(Q(Q(h*u)+Q(f*v))+Q(e*w));N[a+284>>2]=n-i;n=j;j=Q(Q(Q(h*l)+Q(f*r))+Q(e*s));N[a+280>>2]=n-j;h=Q(Q(Q(h*x)+Q(f*o))+Q(e*p));N[a+276>>2]=m-h;J[a+272>>2]=0;N[a+268>>2]=i;N[a+264>>2]=j;N[a+260>>2]=h;e:{f:{g:{h:{i:{b=J[a>>2];j:{if((b|0)>=4){g=K[a+332|0];if(g&8){c=b;break j}c=b-1|0;J[a>>2]=c;b=(c<<4)+a|0;d=J[b+16>>2];J[a+60>>2]=J[b+12>>2];J[a+64>>2]=d;d=J[b+8>>2];J[a+52>>2]=J[b+4>>2];J[a+56>>2]=d;d=J[b+88>>2];J[a+132>>2]=J[b+84>>2];J[a+136>>2]=d;d=J[b+96>>2];J[a+140>>2]=J[b+92>>2];J[a+144>>2]=d;d=J[b+176>>2];J[a+220>>2]=J[b+172>>2];J[a+224>>2]=d;d=J[b+168>>2];J[a+212>>2]=J[b+164>>2];J[a+216>>2]=d;break j}c=3;if((b|0)!=3){break i}g=K[a+332|0]}if(g&4){break h}c=c-1|0;J[a>>2]=c;b=(c<<4)+a|0;d=J[b+16>>2];J[a+44>>2]=J[b+12>>2];J[a+48>>2]=d;d=J[b+8>>2];J[a+36>>2]=J[b+4>>2];J[a+40>>2]=d;d=J[b+96>>2];J[a+124>>2]=J[b+92>>2];J[a+128>>2]=d;d=J[b+88>>2];J[a+116>>2]=J[b+84>>2];J[a+120>>2]=d;d=J[b+176>>2];J[a+204>>2]=J[b+172>>2];J[a+208>>2]=d;d=J[b+168>>2];J[a+196>>2]=J[b+164>>2];J[a+200>>2]=d;break h}c=2;if((b|0)<2){break g}g=K[a+332|0]}if(g&2){break f}c=c-1|0;J[a>>2]=c;b=(c<<4)+a|0;d=J[b+16>>2];J[a+28>>2]=J[b+12>>2];J[a+32>>2]=d;d=J[b+8>>2];J[a+20>>2]=J[b+4>>2];J[a+24>>2]=d;d=J[b+96>>2];J[a+108>>2]=J[b+92>>2];J[a+112>>2]=d;d=J[b+88>>2];J[a+100>>2]=J[b+84>>2];J[a+104>>2]=d;d=J[b+176>>2];J[a+188>>2]=J[b+172>>2];J[a+192>>2]=d;d=J[b+168>>2];J[a+180>>2]=J[b+164>>2];J[a+184>>2]=d;break f}c=1;if((b|0)!=1){break e}g=K[a+332|0]}if(g&1){break e}c=c-1|0;J[a>>2]=c;c=(c<<4)+a|0;b=J[c+16>>2];J[a+12>>2]=J[c+12>>2];J[a+16>>2]=b;b=J[c+8>>2];J[a+4>>2]=J[c+4>>2];J[a+8>>2]=b;b=J[c+96>>2];J[a+92>>2]=J[c+92>>2];J[a+96>>2]=b;b=J[c+88>>2];J[a+84>>2]=J[c+84>>2];J[a+88>>2]=b;b=J[c+176>>2];J[a+172>>2]=J[c+172>>2];J[a+176>>2]=b;b=J[c+168>>2];J[a+164>>2]=J[c+164>>2];J[a+168>>2]=b}c=0;if(!(e>=Q(0))|(!(N[a+336>>2]>=Q(0))|!(f>=Q(0)))){break b}c=N[a+348>>2]>=Q(0);break b;case 3:break c;default:break b}}J[k+8>>2]=0;J[k+12>>2]=0;J[k>>2]=0;J[k+4>>2]=0;g=ga-48|0;ga=g;H[g+24|0]=0;d=J[k+12>>2];J[b+8>>2]=J[k+8>>2];J[b+12>>2]=d;d=J[k+4>>2];J[b>>2]=J[k>>2];J[b+4>>2]=d;H[b+16|0]=K[b+16|0]|15;S=N[k+8>>2];d=a+4|0;f=N[d+8>>2];R=Q(S-f);A=a+36|0;n=N[A+8>>2];e=Q(n-f);B=a+52|0;t=N[B>>2];h=N[d>>2];i=Q(t-h);C=a+20|0;j=N[C+4>>2];m=N[d+4>>2];o=Q(j-m);p=N[C>>2];l=Q(p-h);F=N[B+4>>2];r=Q(F-m);D=Q(Q(i*o)-Q(l*r));G=N[A>>2];s=Q(G-h);u=N[C+8>>2];v=Q(u-f);T=N[B+8>>2];w=Q(T-f);E=Q(Q(r*v)-Q(o*w));I=N[A+4>>2];x=Q(I-m);L=Q(Q(w*l)-Q(v*i));y=Q(Q(e*D)+Q(Q(s*E)+Q(x*L)));M=Q(R*D);U=N[k>>2];D=Q(U-h);O=Q(D*E);V=N[k+4>>2];E=Q(V-m);W=Q(y*y) >2];e=Q(h-N[k+8>>2]);f=Q(e*e);i=N[g+8>>2];e=Q(i-N[k>>2]);l=Q(e*e);j=N[g+12>>2];e=Q(j-N[k+4>>2]);e=Q(f+Q(l+Q(e*e)));f=Q(3.4028234663852886e38);if(!(e>2]=N[g+20>>2];N[b+8>>2]=h;N[b+4>>2]=j;N[b>>2]=i;q=K[g+24|0];H[b+16|0]=q&1|K[b+16|0]&240|q&2|q&4;f=N[g+36>>2];q=J[g+32>>2];P=J[g+28>>2];J[b+32>>2]=0;N[b+28>>2]=f;J[b+20>>2]=P;J[b+24>>2]=q;f=e}m:{if(!z){break m}rd(k,d,A,B,g+8|0);h=N[g+16>>2];e=Q(h-N[k+8>>2]);l=Q(e*e);i=N[g+8>>2];e=Q(i-N[k>>2]);n=Q(e*e);j=N[g+12>>2];e=Q(j-N[k+4>>2]);e=Q(l+Q(n+Q(e*e)));if(!(e>2]=N[g+20>>2];N[b+8>>2]=h;N[b+4>>2]=j;N[b>>2]=i;z=K[g+24|0];q=z<<1;H[b+16|0]=q&8|(q&4|(z&1|K[b+16|0]&240));q=J[g+36>>2];z=J[g+32>>2];f=N[g+28>>2];J[b+24>>2]=0;J[b+28>>2]=z;J[b+32>>2]=q;N[b+20>>2]=f;f=e}n:{if(!W){break n}rd(k,d,B,C,g+8|0);h=N[g+16>>2];e=Q(h-N[k+8>>2]);l=Q(e*e);i=N[g+8>>2];e=Q(i-N[k>>2]);n=Q(e*e);j=N[g+12>>2];e=Q(j-N[k+4>>2]);e=Q(l+Q(n+Q(e*e)));if(!(e >2]=N[g+20>>2];N[b+8>>2]=h;N[b+4>>2]=j;N[b>>2]=i;d=K[g+24|0];H[b+16|0]=d&1|K[b+16|0]&240|d>>>1&2|d<<2&8;f=N[g+36>>2];h=N[g+28>>2];N[b+32>>2]=N[g+32>>2];J[b+28>>2]=0;N[b+24>>2]=f;N[b+20>>2]=h;f=e}_=1;if(!X){break k}rd(k,C,B,A,g+8|0);j=f;f=N[g+16>>2];e=Q(f-N[k+8>>2]);l=Q(e*e);e=N[g+8>>2];h=Q(e-N[k>>2]);n=Q(h*h);h=N[g+12>>2];i=Q(h-N[k+4>>2]);if(!(j>Q(l+Q(n+Q(i*i))))){break k}N[b+12>>2]=N[g+20>>2];N[b+8>>2]=f;N[b+4>>2]=h;N[b>>2]=e;d=K[g+24|0];H[b+16|0]=d&4|K[b+16|0]&240|d<<1&2|d<<2&8;f=N[g+36>>2];e=N[g+28>>2];N[b+32>>2]=N[g+32>>2];N[b+28>>2]=f;N[b+24>>2]=e;J[b+20>>2]=0}ga=g+48|0;if(_){J[a+256>>2]=0;e=N[a+336>>2];h=N[a+340>>2];i=N[a+344>>2];f=N[a+348>>2];j=Q(Q(Q(Q(e*N[a+92>>2])+Q(h*N[a+108>>2]))+Q(i*N[a+124>>2]))+Q(f*N[a+140>>2]));N[a+252>>2]=j;m=Q(Q(Q(Q(e*N[a+88>>2])+Q(h*N[a+104>>2]))+Q(i*N[a+120>>2]))+Q(f*N[a+136>>2]));N[a+248>>2]=m;o=Q(Q(Q(Q(e*N[a+84>>2])+Q(h*N[a+100>>2]))+Q(i*N[a+116>>2]))+Q(f*N[a+132>>2]));N[a+244>>2]=o;J[a+288>>2]=0;J[a+272>>2]=0;p=Q(Q(Q(Q(e*N[a+164>>2])+Q(h*N[a+180>>2]))+Q(i*N[a+196>>2]))+Q(f*N[a+212>>2]));N[a+260>>2]=p;l=Q(Q(Q(Q(e*N[a+168>>2])+Q(h*N[a+184>>2]))+Q(i*N[a+200>>2]))+Q(f*N[a+216>>2]));N[a+264>>2]=l;e=Q(Q(Q(Q(e*N[a+172>>2])+Q(h*N[a+188>>2]))+Q(i*N[a+204>>2]))+Q(f*N[a+220>>2]));N[a+268>>2]=e;N[a+276>>2]=o-p;N[a+280>>2]=m-l;N[a+284>>2]=j-e;o:{p:{q:{r:{s:{b=J[a>>2];t:{if((b|0)>=4){g=K[a+332|0];if(g&8){c=b;break t}c=b-1|0;J[a>>2]=c;b=(c<<4)+a|0;d=J[b+16>>2];J[a+60>>2]=J[b+12>>2];J[a+64>>2]=d;d=J[b+8>>2];J[a+52>>2]=J[b+4>>2];J[a+56>>2]=d;d=J[b+96>>2];J[a+140>>2]=J[b+92>>2];J[a+144>>2]=d;d=J[b+88>>2];J[a+132>>2]=J[b+84>>2];J[a+136>>2]=d;d=J[b+176>>2];J[a+220>>2]=J[b+172>>2];J[a+224>>2]=d;d=J[b+168>>2];J[a+212>>2]=J[b+164>>2];J[a+216>>2]=d;break t}c=3;if((b|0)!=3){break s}g=K[a+332|0]}if(g&4){break r}c=c-1|0;J[a>>2]=c;b=(c<<4)+a|0;d=J[b+16>>2];J[a+44>>2]=J[b+12>>2];J[a+48>>2]=d;d=J[b+8>>2];J[a+36>>2]=J[b+4>>2];J[a+40>>2]=d;d=J[b+96>>2];J[a+124>>2]=J[b+92>>2];J[a+128>>2]=d;d=J[b+88>>2];J[a+116>>2]=J[b+84>>2];J[a+120>>2]=d;d=J[b+176>>2];J[a+204>>2]=J[b+172>>2];J[a+208>>2]=d;d=J[b+168>>2];J[a+196>>2]=J[b+164>>2];J[a+200>>2]=d;break r}c=2;if((b|0)<2){break q}g=K[a+332|0]}if(g&2){break p}c=c-1|0;J[a>>2]=c;b=(c<<4)+a|0;d=J[b+16>>2];J[a+28>>2]=J[b+12>>2];J[a+32>>2]=d;d=J[b+8>>2];J[a+20>>2]=J[b+4>>2];J[a+24>>2]=d;d=J[b+96>>2];J[a+108>>2]=J[b+92>>2];J[a+112>>2]=d;d=J[b+88>>2];J[a+100>>2]=J[b+84>>2];J[a+104>>2]=d;d=J[b+176>>2];J[a+188>>2]=J[b+172>>2];J[a+192>>2]=d;d=J[b+168>>2];J[a+180>>2]=J[b+164>>2];J[a+184>>2]=d;break p}c=1;if((b|0)!=1){break o}g=K[a+332|0]}if(g&1){break o}c=c-1|0;J[a>>2]=c;c=(c<<4)+a|0;b=J[c+16>>2];J[a+12>>2]=J[c+12>>2];J[a+16>>2]=b;b=J[c+8>>2];J[a+4>>2]=J[c+4>>2];J[a+8>>2]=b;b=J[c+96>>2];J[a+92>>2]=J[c+92>>2];J[a+96>>2]=b;b=J[c+88>>2];J[a+84>>2]=J[c+84>>2];J[a+88>>2]=b;b=J[c+176>>2];J[a+172>>2]=J[c+172>>2];J[a+176>>2]=b;b=J[c+168>>2];J[a+164>>2]=J[c+164>>2];J[a+168>>2]=b}c=N[a+336>>2]>=Q(0)&N[a+340>>2]>=Q(0)&N[a+344>>2]>=Q(0)&f>=Q(0);break b}if(K[a+352|0]){break b}J[a+276>>2]=0;J[a+280>>2]=0;c=1;H[a+312|0]=1;J[a+284>>2]=0;J[a+288>>2]=0;break a}H[a+312|0]=c}ga=k+16|0;return(c&255)!=0}function Iz(a,b){a=a|0;b=Q(b);var c=0,d=0,e=0,f=Q(0),g=0,h=0,i=0,j=0,k=0,l=Q(0),m=Q(0),n=0,o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=0,u=Q(0),v=0,w=Q(0),x=0,y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=Q(0),F=0,G=Q(0),I=Q(0),L=Q(0),M=Q(0),O=Q(0);i=ga-96|0;ga=i;c=J[a+136>>2];a:{if(!c){break a}if(!((c|0)<=J[a+8>>2]|(c|0)<=J[a+12>>2])){J[8369]=J[8369]+1;h=ia[J[6782]](c<<4,16)|0;j=J[a+8>>2];b:{if((j|0)<=0){break b}if((j|0)!=1){t=j&-2;while(1){n=d<<4;k=n+h|0;g=n+J[a+16>>2]|0;v=J[g+4>>2];J[k>>2]=J[g>>2];J[k+4>>2]=v;v=J[g+12>>2];J[k+8>>2]=J[g+8>>2];J[k+12>>2]=v;g=n|16;n=g+h|0;g=g+J[a+16>>2]|0;k=J[g+4>>2];J[n>>2]=J[g>>2];J[n+4>>2]=k;k=J[g+12>>2];J[n+8>>2]=J[g+8>>2];J[n+12>>2]=k;d=d+2|0;e=e+2|0;if((t|0)!=(e|0)){continue}break}}if(!(j&1)){break b}e=d<<4;d=e+h|0;e=e+J[a+16>>2]|0;j=J[e+4>>2];J[d>>2]=J[e>>2];J[d+4>>2]=j;j=J[e+12>>2];J[d+8>>2]=J[e+8>>2];J[d+12>>2]=j}d=J[a+16>>2];if(!(d?!d|!K[a+20|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](d)}J[a+16>>2]=h;H[a+20|0]=1;J[a+12>>2]=c}J[a+8>>2]=c;if(!((c|0)<=J[a+28>>2]|(c|0)<=J[a+32>>2])){J[8369]=J[8369]+1;h=ia[J[6782]](c<<4,16)|0;j=J[a+28>>2];c:{if((j|0)<=0){break c}d=0;if((j|0)!=1){t=j&-2;e=0;while(1){n=d<<4;k=n+h|0;g=n+J[a+36>>2]|0;v=J[g+4>>2];J[k>>2]=J[g>>2];J[k+4>>2]=v;v=J[g+12>>2];J[k+8>>2]=J[g+8>>2];J[k+12>>2]=v;g=n|16;n=g+h|0;g=g+J[a+36>>2]|0;k=J[g+4>>2];J[n>>2]=J[g>>2];J[n+4>>2]=k;k=J[g+12>>2];J[n+8>>2]=J[g+8>>2];J[n+12>>2]=k;d=d+2|0;e=e+2|0;if((t|0)!=(e|0)){continue}break}}if(!(j&1)){break c}e=d<<4;d=e+h|0;e=e+J[a+36>>2]|0;j=J[e+4>>2];J[d>>2]=J[e>>2];J[d+4>>2]=j;j=J[e+12>>2];J[d+8>>2]=J[e+8>>2];J[d+12>>2]=j}d=J[a+36>>2];if(!(d?!d|!K[a+40|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](d)}J[a+36>>2]=h;H[a+40|0]=1;J[a+32>>2]=c}J[a+28>>2]=c;v=J[a+48>>2];if((v|0)<(c|0)){d:{if((c|0)<=J[a+52>>2]){n=c<<2;e=J[a+56>>2];break d}J[8369]=J[8369]+1;n=c<<2;e=ia[J[6782]](n,16)|0;g=J[a+56>>2];e:{t=J[a+48>>2];if((t|0)>0){j=0;d=0;if(t-1>>>0>=3){F=t&-4;h=0;while(1){k=d<<2;N[k+e>>2]=N[g+k>>2];x=k|4;N[x+e>>2]=N[g+x>>2];x=k|8;N[x+e>>2]=N[g+x>>2];k=k|12;N[k+e>>2]=N[g+k>>2];d=d+4|0;h=h+4|0;if((F|0)!=(h|0)){continue}break}}h=t&3;if(!h){break e}while(1){k=d<<2;N[k+e>>2]=N[g+k>>2];d=d+1|0;j=j+1|0;if((h|0)!=(j|0)){continue}break}break e}if(g){break e}J[a+56>>2]=e;J[a+52>>2]=c;H[a+60|0]=1;break d}if(g?K[a+60|0]:0){J[8370]=J[8370]+1;ia[J[6783]](g)}J[a+56>>2]=e;H[a+60|0]=1;J[a+52>>2]=c}d=v<<2;qa(d+e|0,0,n-d|0)}J[a+48>>2]=c;v=J[a+68>>2];if((v|0)<(c|0)){f:{if((c|0)<=J[a+72>>2]){n=c<<2;e=J[a+76>>2];break f}J[8369]=J[8369]+1;n=c<<2;e=ia[J[6782]](n,16)|0;g=J[a+76>>2];g:{t=J[a+68>>2];if((t|0)>0){j=0;d=0;if(t-1>>>0>=3){F=t&-4;h=0;while(1){k=d<<2;N[k+e>>2]=N[g+k>>2];x=k|4;N[x+e>>2]=N[g+x>>2];x=k|8;N[x+e>>2]=N[g+x>>2];k=k|12;N[k+e>>2]=N[g+k>>2];d=d+4|0;h=h+4|0;if((F|0)!=(h|0)){continue}break}}h=t&3;if(!h){break g}while(1){k=d<<2;N[k+e>>2]=N[g+k>>2];d=d+1|0;j=j+1|0;if((h|0)!=(j|0)){continue}break}break g}if(g){break g}J[a+76>>2]=e;J[a+72>>2]=c;H[a+80|0]=1;break f}if(g?K[a+80|0]:0){J[8370]=J[8370]+1;ia[J[6783]](g)}J[a+76>>2]=e;H[a+80|0]=1;J[a+72>>2]=c}d=v<<2;qa(d+e|0,0,n-d|0)}J[a+68>>2]=c;j=J[a+136>>2];if((j|0)<=0){break a}c=J[a+56>>2];g=J[a+76>>2];e=0;d=0;if(j-1>>>0>=3){k=j&-4;h=0;while(1){n=d<<2;J[n+g>>2]=0;J[c+n>>2]=0;t=n|4;J[t+g>>2]=0;J[c+t>>2]=0;t=n|8;J[t+g>>2]=0;J[c+t>>2]=0;n=n|12;J[n+g>>2]=0;J[c+n>>2]=0;d=d+4|0;h=h+4|0;if((k|0)!=(h|0)){continue}break}}h=j&3;if(h){while(1){n=d<<2;J[n+g>>2]=0;J[c+n>>2]=0;d=d+1|0;e=e+1|0;if((h|0)!=(e|0)){continue}break}}if((j|0)<=0){break a}g=i- -64|0;e=0;while(1){h=J[a+144>>2]+P(e,284)|0;d=J[h+88>>2];if(d){c=J[h+104>>2];J[i+56>>2]=J[h+100>>2];J[i+60>>2]=c;c=J[h+96>>2];J[i+48>>2]=J[h+92>>2];J[i+52>>2]=c;c=J[h+120>>2];J[g+8>>2]=J[h+116>>2];J[g+12>>2]=c;c=J[h+112>>2];J[g>>2]=J[h+108>>2];J[g+4>>2]=c;c=J[h+136>>2];J[i+88>>2]=J[h+132>>2];J[i+92>>2]=c;c=J[h+128>>2];J[i+80>>2]=J[h+124>>2];J[i+84>>2]=c;c=(i+48|0)+(J[a+120>>2]<<2)|0;f=N[c>>2];l=N[c+16>>2];m=N[c+32>>2];j=e<<4;c=j+J[a+36>>2]|0;J[c+12>>2]=0;N[c+8>>2]=m;N[c+4>>2]=l;N[c>>2]=f;c=j+J[a+36>>2]|0;l=N[c+8>>2];m=N[h+8>>2];p=N[c>>2];o=N[h>>2];q=N[c+4>>2];s=N[h+4>>2];f=Q(Q(l*m)+Q(Q(p*o)+Q(q*s)));l=Q(l-Q(m*f));m=Q(p-Q(o*f));p=Q(q-Q(s*f));f=Q(Q(1)/Q(Y(Q(Q(l*l)+Q(Q(m*m)+Q(p*p))))));l=Q(l*f);N[c+8>>2]=l;p=Q(p*f);N[c+4>>2]=p;f=Q(m*f);N[c>>2]=f;m=N[h+8>>2];o=N[h>>2];q=N[h+4>>2];c=j+J[a+16>>2]|0;J[c+12>>2]=0;N[c+8>>2]=Q(o*p)-Q(f*q);N[c+4>>2]=Q(m*f)-Q(l*o);N[c>>2]=Q(q*l)-Q(p*m);c=j+J[a+16>>2]|0;f=N[c+8>>2];o=f;m=Q(f*f);f=N[c>>2];l=N[c+4>>2];m=Q(Q(1)/Q(Y(Q(m+Q(Q(f*f)+Q(l*l))))));N[c+8>>2]=o*m;N[c+4>>2]=l*m;N[c>>2]=f*m;c=J[a+116>>2];h=h+16|0;n=e<<2;k=n+J[a+76>>2]|0;j=j+J[a+36>>2]|0;f=N[j+8>>2];l=N[j>>2];m=N[j+4>>2];if(Q(Q(f*f)+Q(Q(l*l)+Q(m*m)))>Q(1.100000023841858)){f=Q(0)}else{r=N[h>>2];p=Q(r-N[c+52>>2]);s=N[h+4>>2];o=Q(s-N[c+56>>2]);w=Q(Q(p*m)-Q(l*o));u=N[h+8>>2];q=Q(u-N[c+60>>2]);A=Q(Q(o*f)-Q(m*q));y=Q(Q(q*l)-Q(f*p));C=Q(Q(N[c+44>>2]*w)+Q(Q(N[c+12>>2]*A)+Q(y*N[c+28>>2])));s=Q(s-N[d+56>>2]);r=Q(r-N[d+52>>2]);z=Q(Q(l*s)-Q(r*m));u=Q(u-N[d+60>>2]);D=Q(Q(m*u)-Q(s*f));G=Q(Q(f*r)-Q(u*l));I=Q(Q(N[d+44>>2]*z)+Q(Q(N[d+12>>2]*D)+Q(G*N[d+28>>2])));B=f;f=N[c+328>>2];E=N[c+332>>2];L=N[d+328>>2];M=N[d+332>>2];O=Q(B*Q(Q(Q(Q(f*o)-Q(p*E))+N[c+320>>2])-Q(Q(Q(L*s)-Q(r*M))+N[d+320>>2])));B=l;l=N[c+336>>2];E=Q(Q(Q(E*q)-Q(o*l))+N[c+312>>2]);o=N[d+336>>2];l=Q(Q(O+Q(Q(B*Q(E-Q(Q(Q(M*u)-Q(s*o))+N[d+312>>2])))+Q(m*Q(Q(Q(Q(l*p)-Q(q*f))+N[c+316>>2])-Q(Q(Q(o*r)-Q(u*L))+N[d+316>>2])))))*Q(-.20000000298023224));f=Q(Q(N[c+36>>2]*w)+Q(Q(N[c+4>>2]*A)+Q(y*N[c+20>>2])));o=Q(Q(f*N[c+396>>2])*f);f=Q(Q(N[c+40>>2]*w)+Q(Q(N[c+8>>2]*A)+Q(y*N[c+24>>2])));o=Q(N[d+344>>2]+Q(N[c+344>>2]+Q(Q(Q(C*N[c+404>>2])*C)+Q(o+Q(f*Q(f*N[c+400>>2]))))));f=Q(Q(N[d+36>>2]*z)+Q(Q(N[d+4>>2]*D)+Q(G*N[d+20>>2])));m=Q(Q(f*N[d+396>>2])*f);f=Q(Q(N[d+40>>2]*z)+Q(Q(N[d+8>>2]*D)+Q(G*N[d+24>>2])));f=Q(l*Q(Q(1)/Q(o+Q(Q(Q(I*N[d+404>>2])*I)+Q(m+Q(f*Q(f*N[d+400>>2])))))))}N[k>>2]=f;d=n+J[a+76>>2]|0;N[d>>2]=N[6781]*N[d>>2];j=J[a+136>>2]}e=e+1|0;if((j|0)>(e|0)){continue}break}if((j|0)<=0){break a}e=J[a+144>>2];h=0;d=0;while(1){h:{i:{j:{n=P(d,284);j=n+e|0;c=J[j+88>>2];if(c){f=N[j+252>>2];if(f==Q(0)){break j}f=Q(f*b);break i}J[J[a+56>>2]+(d<<2)>>2]=0;J[(e+n|0)+280>>2]=1065353216;break h}e=J[a+116>>2];g=J[a+16>>2]+(d<<4)|0;f=N[j+256>>2];J[i+52>>2]=c;J[i+48>>2]=e;k=J[j+20>>2];J[i+56>>2]=J[j+16>>2];J[i+60>>2]=k;k=J[j+28>>2];J[i+64>>2]=J[j+24>>2];J[i+68>>2]=k;k=J[g+4>>2];J[i+72>>2]=J[g>>2];J[i+76>>2]=k;k=J[g+12>>2];J[i+80>>2]=J[g+8>>2];J[i+84>>2]=k;N[i+92>>2]=f==Q(0)?Q(0):f;A=N[j+16>>2];p=Q(A-N[e+52>>2]);f=N[g+4>>2];l=N[g>>2];y=N[j+20>>2];o=Q(y-N[e+56>>2]);s=Q(Q(p*f)-Q(l*o));m=N[g+8>>2];C=N[j+24>>2];q=Q(C-N[e+60>>2]);r=Q(Q(o*m)-Q(f*q));u=Q(Q(q*l)-Q(m*p));w=Q(Q(N[e+296>>2]*s)+Q(Q(N[e+264>>2]*r)+Q(u*N[e+280>>2])));z=Q(Q(N[e+300>>2]*s)+Q(Q(N[e+268>>2]*r)+Q(u*N[e+284>>2])));D=Q(m*Q(Q(w*o)-Q(p*z)));B=o;o=Q(Q(N[e+304>>2]*s)+Q(Q(N[e+272>>2]*r)+Q(u*N[e+288>>2])));z=Q(N[e+344>>2]+Q(D+Q(Q(l*Q(Q(z*q)-Q(B*o)))+Q(f*Q(Q(o*p)-Q(q*w))))));B=m;p=Q(A-N[c+52>>2]);o=Q(y-N[c+56>>2]);s=Q(Q(p*f)-Q(l*o));q=Q(C-N[c+60>>2]);r=Q(Q(o*m)-Q(f*q));m=Q(Q(q*l)-Q(m*p));u=Q(Q(N[c+296>>2]*s)+Q(Q(N[c+264>>2]*r)+Q(m*N[c+280>>2])));w=Q(Q(N[c+300>>2]*s)+Q(Q(N[c+268>>2]*r)+Q(m*N[c+284>>2])));y=l;l=Q(Q(N[c+304>>2]*s)+Q(Q(N[c+272>>2]*r)+Q(m*N[c+288>>2])));N[i+88>>2]=Q(1)/Q(z+Q(N[c+344>>2]+Q(Q(B*Q(Q(u*o)-Q(p*w)))+Q(Q(y*Q(Q(w*q)-Q(o*l)))+Q(f*Q(Q(l*p)-Q(q*u)))))));f=N[i+92>>2];l=Q(-f);e=J[i+48>>2];m=N[e+328>>2];p=N[i+60>>2];o=Q(p-N[e+56>>2]);q=N[i+56>>2];s=Q(q-N[e+52>>2]);r=N[e+332>>2];c=J[i+52>>2];u=N[c+328>>2];p=Q(p-N[c+56>>2]);q=Q(q-N[c+52>>2]);w=N[c+332>>2];C=Q(N[i+80>>2]*Q(Q(Q(Q(m*o)-Q(s*r))+N[e+320>>2])-Q(Q(Q(u*p)-Q(q*w))+N[c+320>>2])));B=r;r=N[i+64>>2];A=Q(r-N[e+60>>2]);y=o;o=N[e+336>>2];r=Q(r-N[c+60>>2]);z=p;p=N[c+336>>2];m=Q(N[i+88>>2]*Q(-Q(C+Q(Q(N[i+72>>2]*Q(Q(Q(Q(B*A)-Q(y*o))+N[e+312>>2])-Q(Q(Q(w*r)-Q(z*p))+N[c+312>>2])))+Q(Q(Q(Q(Q(o*s)-Q(A*m))+N[e+316>>2])-Q(Q(Q(p*q)-Q(r*u))+N[c+316>>2]))*N[i+76>>2])))));f=f >2]}g=d<<2;k=g+J[a+56>>2]|0;J[k>>2]=0;c=e+n|0;J[c+280>>2]=1065353216;l=N[j+228>>2];m=N[j+276>>2];N[k>>2]=f;f=Q(f*Q(.5));o=Q(f*f);f=N[g+J[a+76>>2]>>2];f=Q(o+Q(f*f));l=Q(l*Q(m*b));if(!(f>Q(l*l))){break h}N[c+280>>2]=Q(l/Q(Y(f)))*N[c+280>>2];h=1}d=d+1|0;c=J[a+136>>2];if((d|0)<(c|0)){continue}break}d=0;if((c|0)>0&h){h=J[a+56>>2];j=J[a+144>>2];g=J[a+76>>2];while(1){n=d<<2;e=n+g|0;k:{if(N[e>>2]==Q(0)){break k}k=j+P(d,284)|0;b=N[k+280>>2];if(!(b >2]=b*N[n>>2];N[e>>2]=N[k+280>>2]*N[e>>2]}d=d+1|0;if((c|0)!=(d|0)){continue}break}}if((c|0)<=0){break a}d=0;while(1){j=P(d,284);e=j+J[a+144>>2]|0;b=N[e+16>>2];c=J[a+116>>2];f=N[c+52>>2];l=N[e+20>>2];m=N[c+56>>2];p=N[e+24>>2];o=N[c+60>>2];J[i+60>>2]=0;N[i+56>>2]=p-o;N[i+52>>2]=l-m;N[i+48>>2]=b-f;g=d<<2;b=N[g+J[a+56>>2]>>2];if(b!=Q(0)){h=J[a+16>>2]+(d<<4)|0;f=N[h>>2];l=N[h+4>>2];m=N[h+8>>2];J[i+44>>2]=0;N[i+40>>2]=b*m;N[i+36>>2]=b*l;N[i+32>>2]=f*b;ub(c,i+32|0,i+48|0)}g=g+J[a+76>>2]|0;if(N[g>>2]!=Q(0)){c=J[(j+J[a+144>>2]|0)+88>>2];b=N[c+52>>2];f=N[c+56>>2];l=N[c+60>>2];m=N[e+16>>2];p=N[e+20>>2];o=N[e+24>>2];J[i+44>>2]=0;N[i+40>>2]=o-l;N[i+36>>2]=p-f;N[i+32>>2]=m-b;h=J[a+36>>2]+(d<<4)|0;f=N[h>>2];l=N[h+4>>2];m=N[h+8>>2];b=N[g>>2];J[i+28>>2]=0;N[i+24>>2]=b*m;N[i+20>>2]=b*l;N[i+16>>2]=f*b;j=J[a+116>>2];h=j+(J[a+124>>2]<<2)|0;f=N[h+36>>2];l=N[i+56>>2];m=N[h+4>>2];p=N[i+48>>2];o=N[h+20>>2];q=N[i+52>>2];b=Q(Q(Q(f*l)+Q(Q(m*p)+Q(o*q)))*Q(Q(1)-N[e+244>>2]));N[i+56>>2]=l-Q(f*b);N[i+52>>2]=q-Q(o*b);N[i+48>>2]=p-Q(m*b);ub(j,i+16|0,i+48|0);J[i+12>>2]=0;N[i+8>>2]=-N[i+24>>2];N[i+4>>2]=-N[i+20>>2];N[i>>2]=-N[i+16>>2];ub(c,i,i+32|0)}d=d+1|0;if((d|0)>2]){continue}break}}ga=i+96|0}function Ul(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=Q(0),n=Q(0),o=0,p=0,q=Q(0),r=Q(0),s=Q(0),t=0,u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=0,z=0,A=Q(0),B=0,C=Q(0),D=0,E=0,F=0,G=0,O=Q(0),S=Q(0),T=Q(0),U=Q(0),V=Q(0),W=Q(0),X=Q(0),Z=Q(0),_=Q(0);g=ga-96|0;ga=g;H[g+52|0]=1;J[g+48>>2]=0;H[g+72|0]=1;J[g+40>>2]=0;J[g+44>>2]=0;J[g+68>>2]=0;H[g+92|0]=1;J[g+60>>2]=0;J[g+64>>2]=0;J[g+88>>2]=0;J[g+80>>2]=0;J[g+84>>2]=0;J[g+28>>2]=0;H[g+32|0]=1;J[g+20>>2]=0;J[g+24>>2]=0;J[a+72>>2]=0;J[a+76>>2]=0;J[a+64>>2]=0;J[a+68>>2]=0;f=J[a+28>>2];a:{if((f|0)<=0){break a}while(1){d=J[a+36>>2];E=P(y,36);F=J[(d+E|0)+4>>2];if((F|0)>0){z=0;while(1){b=J[(d+E|0)+12>>2];d=J[b+(z<<2)>>2];z=z+1|0;G=(F|0)==(z|0);e=J[b+((G?0:z)<<2)>>2];I[g+10>>1]=e;I[g+8>>1]=d;i=0;b=d<<16>>16;f=e<<16>>16;if((b|0)<(f|0)){I[g+10>>1]=d;I[g+8>>1]=e;f=d;b=e}e=f<<16;c=b<<16>>16;d=e+c&J[g+64>>2]-1;b:{if(d>>>0>=M[g+20>>2]){break b}d=J[J[g+28>>2]+(d<<2)>>2];if((d|0)==-1){break b}k=J[g+48>>2];o=J[g+88>>2];while(1){d=d<<2;j=d+o|0;if(!(L[j>>1]==(b&65535)&L[j+2>>1]==(f&65535))){d=J[d+k>>2];if((d|0)!=-1){continue}break b}break}i=d+J[g+68>>2]|0}d=J[a+16>>2];b=d+(e>>16<<4)|0;d=d+(c<<4)|0;m=Q(N[b+8>>2]-N[d+8>>2]);q=Q(N[b>>2]-N[d>>2]);n=Q(N[b+4>>2]-N[d+4>>2]);s=Q(Q(1)/Q(Y(Q(Q(m*m)+Q(Q(q*q)+Q(n*n))))));m=Q(m*s);n=Q(n*s);q=Q(q*s);b=J[a+48>>2];c:{if((b|0)>0){e=J[a+56>>2];d=0;while(1){f=e+(d<<4)|0;s=N[f+8>>2];u=N[f>>2];v=N[f+4>>2];if(!(+Q(R(Q(s-m)))>1e-6?1:+Q(R(Q(u-q)))>1e-6|+Q(R(Q(v-n)))>1e-6)|!(+Q(R(Q(m+s)))>1e-6?1:+Q(R(Q(q+u)))>1e-6|+Q(R(Q(n+v)))>1e-6)){break c}d=d+1|0;if((b|0)!=(d|0)){continue}break}}d:{if(J[a+52>>2]!=(b|0)){break d}e=b?b<<1:1;if((e|0)<=(b|0)){break d}e:{if(!e){f=0;break e}J[8369]=J[8369]+1;f=ia[J[6782]](e<<4,16)|0;b=J[a+48>>2]}f:{if((b|0)<=0){break f}j=b&1;d=0;if((b|0)!=1){l=b&-2;b=0;while(1){k=d<<4;o=k+f|0;c=k+J[a+56>>2]|0;t=J[c+4>>2];J[o>>2]=J[c>>2];J[o+4>>2]=t;t=J[c+12>>2];J[o+8>>2]=J[c+8>>2];J[o+12>>2]=t;c=k|16;k=c+f|0;c=c+J[a+56>>2]|0;o=J[c+4>>2];J[k>>2]=J[c>>2];J[k+4>>2]=o;o=J[c+12>>2];J[k+8>>2]=J[c+8>>2];J[k+12>>2]=o;d=d+2|0;b=b+2|0;if((l|0)!=(b|0)){continue}break}}if(!j){break f}d=d<<4;b=d+f|0;d=d+J[a+56>>2]|0;c=J[d+4>>2];J[b>>2]=J[d>>2];J[b+4>>2]=c;c=J[d+12>>2];J[b+8>>2]=J[d+8>>2];J[b+12>>2]=c}b=J[a+56>>2];if(!(b?!b|!K[a+60|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](b)}J[a+56>>2]=f;H[a+60|0]=1;J[a+52>>2]=e;b=J[a+48>>2]}b=J[a+56>>2]+(b<<4)|0;J[b+12>>2]=0;N[b+8>>2]=m;N[b+4>>2]=n;N[b>>2]=q;J[a+48>>2]=J[a+48>>2]+1}g:{if(i){I[i+2>>1]=y;break g}I[g>>1]=y;I[g+2>>1]=65535;h:{i:{e=I[g+8>>1];f=L[g+10>>1];c=g+16|0;d=J[c+48>>2];o=e+(f<<16)&d-1;j:{if(o>>>0>=M[c+4>>2]){break j}b=J[J[c+12>>2]+(o<<2)>>2];if((b|0)==-1){break j}i=J[c+32>>2];k=J[c+72>>2];e=e&65535;while(1){j=b<<2;l=j+k|0;if((e|0)==L[l>>1]&(f|0)==L[l+2>>1]){break i}b=J[i+j>>2];if((b|0)!=-1){continue}break}}D=J[c+44>>2];b=D;k:{if((d|0)!=(b|0)){break k}b=d;i=b?b<<1:1;if((b|0)>=(i|0)){break k}l:{if(!i){f=0;e=d;break l}J[8369]=J[8369]+1;f=ia[J[6782]](i<<2,16)|0;e=J[c+44>>2]}m:{if((e|0)<=0){break m}k=0;b=0;if(e-1>>>0>=3){t=e&-4;j=0;while(1){l=b<<2;h=l+f|0;p=l+J[c+52>>2]|0;p=L[p>>1]|L[p+2>>1]<<16;I[h>>1]=p;I[h+2>>1]=p>>>16;h=l|4;p=h+f|0;h=h+J[c+52>>2]|0;h=L[h>>1]|L[h+2>>1]<<16;I[p>>1]=h;I[p+2>>1]=h>>>16;h=l|8;p=h+f|0;h=h+J[c+52>>2]|0;h=L[h>>1]|L[h+2>>1]<<16;I[p>>1]=h;I[p+2>>1]=h>>>16;l=l|12;h=l+f|0;l=l+J[c+52>>2]|0;l=L[l>>1]|L[l+2>>1]<<16;I[h>>1]=l;I[h+2>>1]=l>>>16;b=b+4|0;j=j+4|0;if((t|0)!=(j|0)){continue}break}}e=e&3;if(!e){break m}while(1){j=b<<2;l=j+f|0;j=j+J[c+52>>2]|0;j=L[j>>1]|L[j+2>>1]<<16;I[l>>1]=j;I[l+2>>1]=j>>>16;b=b+1|0;k=k+1|0;if((e|0)!=(k|0)){continue}break}}b=J[c+52>>2];if(!(b?!b|!K[c+56|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](b)}J[c+52>>2]=f;H[c+56|0]=1;J[c+48>>2]=i;b=J[c+44>>2]}b=J[c+52>>2]+(b<<2)|0;f=L[g>>1]|L[g+2>>1]<<16;I[b>>1]=f;I[b+2>>1]=f>>>16;J[c+44>>2]=J[c+44>>2]+1;i=J[c- -64>>2];n:{if((i|0)!=J[c+68>>2]){break n}l=i?i<<1:1;if((l|0)<=(i|0)){break n}o:{if(!l){f=0;break o}J[8369]=J[8369]+1;f=ia[J[6782]](l<<2,16)|0;i=J[c+64>>2]}p:{if((i|0)<=0){break p}k=0;b=0;if(i-1>>>0>=3){t=i&-4;j=0;while(1){e=b<<2;h=e+f|0;p=e+J[c+72>>2]|0;p=L[p>>1]|L[p+2>>1]<<16;I[h>>1]=p;I[h+2>>1]=p>>>16;h=e|4;p=h+f|0;h=h+J[c+72>>2]|0;h=L[h>>1]|L[h+2>>1]<<16;I[p>>1]=h;I[p+2>>1]=h>>>16;h=e|8;p=h+f|0;h=h+J[c+72>>2]|0;h=L[h>>1]|L[h+2>>1]<<16;I[p>>1]=h;I[p+2>>1]=h>>>16;e=e|12;h=e+f|0;e=e+J[c+72>>2]|0;e=L[e>>1]|L[e+2>>1]<<16;I[h>>1]=e;I[h+2>>1]=e>>>16;b=b+4|0;j=j+4|0;if((t|0)!=(j|0)){continue}break}}e=i&3;if(!e){break p}while(1){i=b<<2;j=i+f|0;i=i+J[c+72>>2]|0;i=L[i>>1]|L[i+2>>1]<<16;I[j>>1]=i;I[j+2>>1]=i>>>16;b=b+1|0;k=k+1|0;if((e|0)!=(k|0)){continue}break}}b=J[c+72>>2];if(!(b?!b|!K[c+76|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](b)}J[c+72>>2]=f;H[c+76|0]=1;J[c+68>>2]=l;i=J[c+64>>2]}b=J[c+72>>2]+(i<<2)|0;f=L[g+8>>1]|L[g+10>>1]<<16;I[b>>1]=f;I[b+2>>1]=f>>>16;J[c+64>>2]=J[c+64>>2]+1;if((d|0) >2]){e=0;i=0;l=0;o=0;k=J[c+48>>2];d=J[c+4>>2];q:{if((k|0)<=(d|0)){break q}r:{if((k|0)<=J[c+8>>2]){e=J[c+12>>2];break r}if(k){J[8369]=J[8369]+1;e=ia[J[6782]](k<<2,16)|0;b=J[c+4>>2]}else{b=d}f=J[c+12>>2];s:{t:{if((b|0)>0){if(b-1>>>0>=3){t=b&-4;while(1){j=i<<2;J[j+e>>2]=J[f+j>>2];h=j|4;J[h+e>>2]=J[f+h>>2];h=j|8;J[h+e>>2]=J[f+h>>2];j=j|12;J[j+e>>2]=J[f+j>>2];i=i+4|0;l=l+4|0;if((t|0)!=(l|0)){continue}break}}b=b&3;if(!b){break t}while(1){j=i<<2;J[j+e>>2]=J[f+j>>2];i=i+1|0;o=o+1|0;if((b|0)!=(o|0)){continue}break}break t}if(f){break t}break s}if(f?K[c+16|0]:0){J[8370]=J[8370]+1;ia[J[6783]](f)}}J[c+12>>2]=e;H[c+16|0]=1;J[c+8>>2]=k}qa((d<<2)+e|0,0,k-d<<2);J[c+4>>2]=k;h=k<<2;f=J[c+24>>2];if((f|0)<(k|0)){u:{if((k|0)<=J[c+28>>2]){e=J[c+32>>2];break u}v:{if(!k){e=0;b=f;break v}J[8369]=J[8369]+1;e=ia[J[6782]](h,16)|0;b=J[c+24>>2]}j=J[c+32>>2];w:{if((b|0)>0){o=0;i=0;if(b-1>>>0>=3){p=b&-4;l=0;while(1){t=i<<2;J[t+e>>2]=J[j+t>>2];B=t|4;J[B+e>>2]=J[j+B>>2];B=t|8;J[B+e>>2]=J[j+B>>2];t=t|12;J[t+e>>2]=J[j+t>>2];i=i+4|0;l=l+4|0;if((p|0)!=(l|0)){continue}break}}b=b&3;if(!b){break w}while(1){l=i<<2;J[l+e>>2]=J[j+l>>2];i=i+1|0;o=o+1|0;if((b|0)!=(o|0)){continue}break}break w}if(j){break w}J[c+32>>2]=e;J[c+28>>2]=k;H[c+36|0]=1;break u}if(j?K[c+36|0]:0){J[8370]=J[8370]+1;ia[J[6783]](j)}J[c+32>>2]=e;H[c+36|0]=1;J[c+28>>2]=k}qa((f<<2)+e|0,0,k-f<<2)}J[c+24>>2]=k;if((k|0)>0){qa(J[c+12>>2],255,h);qa(J[c+32>>2],255,h)}if((d|0)<=0){break q}f=J[c+32>>2];e=J[c+72>>2];k=J[c+12>>2];i=0;while(1){o=i<<2;b=o+e|0;b=k+(((L[b+2>>1]<<16)+I[b>>1]&J[c+48>>2]-1)<<2)|0;J[f+o>>2]=J[b>>2];J[b>>2]=i;i=i+1|0;if((d|0)!=(i|0)){continue}break}}o=I[g+8>>1]+(L[g+10>>1]<<16)&J[c+48>>2]-1}b=J[c+12>>2]+(o<<2)|0;J[J[c+32>>2]+(D<<2)>>2]=J[b>>2];J[b>>2]=D;break h}b=J[c+52>>2]+(b<<2)|0;d=L[g>>1]|L[g+2>>1]<<16;I[b>>1]=d;I[b+2>>1]=d>>>16}}if(!G){d=J[a+36>>2];continue}break}f=J[a+28>>2]}y=y+1|0;if((y|0)<(f|0)){continue}break}i=0;if((f|0)<=0){break a}i=(f|0)>0;b=J[a+16>>2];l=J[a+36>>2];y=0;while(1){d=l+P(y,36)|0;c=J[d+4>>2];if((c|0)>=3){z=c-1|0;k=J[d+12>>2];e=b+(J[k>>2]<<4)|0;n=N[a+72>>2];q=N[a+68>>2];s=N[a+64>>2];d=1;while(1){o=b+(J[k+(d<<2)>>2]<<4)|0;m=N[o+8>>2];d=d+1|0;j=b+(J[k+((d|0)%(c|0)<<2)>>2]<<4)|0;v=N[j+8>>2];u=N[e>>2];O=N[o>>2];S=Q(u-O);r=N[e+4>>2];T=N[j+4>>2];C=Q(r-T);U=N[j>>2];V=Q(u-U);W=N[o+4>>2];x=Q(r-W);A=Q(Q(S*C)-Q(V*x));_=x;x=N[e+8>>2];X=Q(x-v);Z=Q(x-m);C=Q(Q(_*X)-Q(C*Z));x=Q(Q(Q(x+m)+v)*Q(.3333333432674408));m=Q(Q(Z*V)-Q(X*S));m=Q(Q(Y(Q(Q(A*A)+Q(Q(C*C)+Q(m*m)))))*Q(.5));n=Q(n+Q(x*m));N[a+72>>2]=n;q=Q(q+Q(Q(Q(T+Q(r+W))*Q(.3333333432674408))*m));N[a+68>>2]=q;s=Q(s+Q(Q(Q(U+Q(u+O))*Q(.3333333432674408))*m));N[a+64>>2]=s;w=Q(w+m);if((d|0)!=(z|0)){continue}break}}y=y+1|0;if((y|0)!=(f|0)){continue}break}}J[a+96>>2]=2139095039;m=Q(Q(1)/w);q=Q(m*N[a+64>>2]);N[a+64>>2]=q;s=Q(m*N[a+68>>2]);N[a+68>>2]=s;w=Q(m*N[a+72>>2]);N[a+72>>2]=w;u=Q(3.4028234663852886e38);m=Q(3.4028234663852886e38);if(i){e=J[a+36>>2];b=0;while(1){d=e+P(b,36)|0;n=Q(R(Q(N[d+32>>2]+Q(Q(w*N[d+28>>2])+Q(Q(q*N[d+20>>2])+Q(N[d+24>>2]*s))))));if(n >2]=n;m=n}b=b+1|0;if((f|0)!=(b|0)){continue}break}}f=J[a+8>>2];x:{if((f|0)<=0){v=Q(-3.4028234663852886e38);n=Q(3.4028234663852886e38);q=Q(-3.4028234663852886e38);s=Q(-3.4028234663852886e38);w=Q(3.4028234663852886e38);break x}e=J[a+16>>2];s=Q(-3.4028234663852886e38);d=0;w=Q(3.4028234663852886e38);q=Q(-3.4028234663852886e38);v=Q(-3.4028234663852886e38);n=Q(3.4028234663852886e38);while(1){b=e+(d<<4)|0;r=N[b+8>>2];s=s r?r:n;r=N[b+4>>2];q=q >2];v=r>v?r:v;w=r >2]=0;x=Q(s-n);N[a+124>>2]=x;r=Q(q-u);N[a+120>>2]=r;A=Q(v-w);N[a+116>>2]=A;J[a+112>>2]=0;N[a+108>>2]=n+s;N[a+104>>2]=u+q;N[a+100>>2]=v+w;b=r>A;f=x>(b?r:A)?2:b;b=f<<2;n=N[b+(a+116|0)>>2];m=Q(m/Q(1.7320507764816284));N[a+84>>2]=m;N[a+88>>2]=m;N[a+80>>2]=m;b=b+(a+80|0)|0;n=Q(n*Q(.5));N[b>>2]=n;n=Q(Q(n-m)*Q(.0009765625));y:{z:{while(1){if(Vl(a)){break z}N[b>>2]=N[b>>2]-n;d=d+1|0;if((d|0)!=1024){continue}break}N[a+84>>2]=m;N[a+88>>2]=m;N[a+80>>2]=m;break y}d=a+80|0;b=1< >2]-m)*Q(.0009765625));b=0;while(1){A:{n=N[d>>2];q=N[f>>2];N[f>>2]=m+q;N[d>>2]=m+N[d>>2];if(!Vl(a)){break A}b=b+1|0;if((b|0)!=1024){continue}break y}break}N[f>>2]=q;N[d>>2]=n}a=J[g+88>>2];if(!(a?!a|!K[g+92|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](a)}J[g+88>>2]=0;H[g+92|0]=1;J[g+80>>2]=0;J[g+84>>2]=0;a=J[g+68>>2];if(!(a?!a|!K[g+72|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](a)}J[g+68>>2]=0;H[g+72|0]=1;J[g+60>>2]=0;J[g+64>>2]=0;a=J[g+48>>2];if(!(a?!a|!K[g+52|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](a)}J[g+48>>2]=0;H[g+52|0]=1;J[g+40>>2]=0;J[g+44>>2]=0;a=J[g+28>>2];if(!(a?!a|!K[g+32|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](a)}ga=g+96|0}function aB(a,b){a=a|0;b=b|0;var c=0,d=Q(0),e=0,f=0,g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=0,m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=0,s=Q(0),t=Q(0),u=Q(0),v=0,w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=0,C=Q(0),D=Q(0),E=Q(0),F=0,G=Q(0),I=Q(0),L=Q(0),M=Q(0),O=0,R=Q(0),S=Q(0),T=Q(0),U=Q(0),V=0,W=Q(0),X=Q(0),Z=Q(0),_=Q(0),$=0,aa=0,ba=Q(0),ca=Q(0),da=Q(0),ea=Q(0),fa=Q(0),ga=Q(0),ha=Q(0),ia=Q(0),ja=Q(0),ka=Q(0),la=0,ma=0;e=J[a+32>>2];$=e+328|0;c=J[a+28>>2];aa=c+328|0;e=e+4|0;c=c+4|0;if(K[a+739|0]){R=N[J[a+32>>2]+344>>2];T=N[J[a+28>>2]+344>>2];d=Q(R+T);i=d>Q(0)?Q(R/d):Q(.5);o=Q(Q(1)-i);d=N[a+672>>2];j=N[e+40>>2];t=N[a+664>>2];s=N[e+32>>2];p=N[e+36>>2];g=N[a+668>>2];m=N[e+56>>2];ga=Q(Q(Q(d*j)+Q(Q(t*s)+Q(p*g)))+m);y=Q(ga-m);M=y;m=N[a+592>>2];k=N[c+40>>2];n=N[a+560>>2];x=N[c+32>>2];h=N[a+576>>2];A=N[c+36>>2];U=Q(Q(m*k)+Q(Q(n*x)+Q(h*A)));q=N[a+656>>2];E=Q(q*j);j=N[a+624>>2];u=Q(j*s);s=N[a+640>>2];W=Q(E+Q(u+Q(s*p)));p=Q(Q(U*i)+Q(W*o));E=p;S=Q(p*p);u=N[c+8>>2];z=N[c>>2];C=N[c+4>>2];ba=Q(Q(m*u)+Q(Q(n*z)+Q(C*h)));w=N[e+8>>2];I=N[e>>2];X=N[e+4>>2];ca=Q(Q(q*w)+Q(Q(j*I)+Q(X*s)));p=Q(Q(ba*i)+Q(ca*o));D=N[c+24>>2];L=N[c+16>>2];G=N[c+20>>2];ea=Q(Q(m*D)+Q(Q(n*L)+Q(h*G)));Z=N[e+24>>2];h=j;j=N[e+16>>2];m=s;s=N[e+20>>2];fa=Q(Q(q*Z)+Q(Q(h*j)+Q(m*s)));h=Q(Q(ea*i)+Q(fa*o));q=Q(Q(1)/Q(Y(Q(S+Q(Q(p*p)+Q(h*h))))));m=Q(E*q);E=Q(y*m);n=N[e+48>>2];X=Q(n+Q(Q(d*w)+Q(Q(t*I)+Q(X*g))));y=Q(X-n);n=Q(p*q);j=Q(Q(d*Z)+Q(Q(t*j)+Q(s*g)));d=N[e+52>>2];Z=Q(j+d);j=Q(Z-d);t=Q(h*q);d=Q(E+Q(Q(y*n)+Q(j*t)));s=Q(m*d);I=Q(M-s);g=N[a+608>>2];h=N[a+600>>2];q=N[a+604>>2];p=N[c+56>>2];ha=Q(Q(Q(g*k)+Q(Q(h*x)+Q(A*q)))+p);p=Q(ha-p);w=N[c+48>>2];ia=Q(w+Q(Q(g*u)+Q(Q(h*z)+Q(C*q))));w=Q(ia-w);h=Q(Q(g*D)+Q(Q(h*L)+Q(G*q)));g=N[c+52>>2];ja=Q(h+g);h=Q(ja-g);g=Q(Q(m*p)+Q(Q(w*n)+Q(h*t)));E=Q(m*g);S=Q(E-s);q=Q(I-Q(o*S));s=j;j=Q(t*d);da=Q(s-j);_=Q(t*g);M=Q(_-j);j=Q(da-Q(o*M));d=Q(n*d);ka=Q(y-d);g=Q(n*g);d=Q(g-d);s=Q(ka-Q(o*d));E=Q(p-E);p=Q(E+Q(i*S));S=Q(h-_);y=Q(S+Q(i*M));g=Q(w-g);w=Q(g+Q(i*d));e=R Q(1.1920928955078125e-7)){k=Q(Q(1)/Q(Y(g)));g=Q(d*k);d=Q(I*k);h=Q(h*k);break a}g=N[a+588>>2];d=Q(g*u);u=N[a+556>>2];h=Q(u*z);z=N[a+572>>2];h=Q(d+Q(h+Q(C*z)));d=Q(Q(g*D)+Q(Q(u*L)+Q(z*G)));g=Q(Q(g*k)+Q(Q(u*x)+Q(z*A)))}r=J[b+24>>2];l=c|e;f=J[b+12>>2];N[f+8>>2]=Q(w*d)-Q(h*y);N[f+4>>2]=Q(p*h)-Q(g*w);N[f>>2]=Q(y*g)-Q(d*p);c=J[b+20>>2];N[c+8>>2]=-Q(Q(s*d)-Q(h*j));N[c+4>>2]=-Q(Q(q*h)-Q(g*s));N[c>>2]=-Q(Q(j*g)-Q(d*q));k=Q(Q(m*h)-Q(g*n));x=Q(Q(t*g)-Q(d*m));u=Q(Q(s*k)-Q(x*j));A=Q(Q(n*d)-Q(h*t));z=Q(Q(q*x)-Q(A*s));C=Q(Q(j*A)-Q(k*q));D=Q(Q(w*k)-Q(x*y));L=Q(Q(p*x)-Q(A*w));G=Q(Q(y*A)-Q(k*p));I=Q(-j);E=Q(-s);S=Q(-q);da=Q(-y);_=Q(-w);M=Q(-p);B=K[a+716|0];if(!(!(T>2]=D;N[e+4>>2]=L;N[e>>2]=G;N[c+v>>2]=-C;O=r+1|0;N[c+(O<<2)>>2]=-z;V=r+2|0;N[c+(V<<2)>>2]=-u;s=Q(Q(s*t)+Q(n*I));q=Q(Q(q*n)+Q(m*E));j=Q(Q(j*m)+Q(t*S));w=Q(Q(w*t)+Q(n*da));p=Q(Q(p*n)+Q(m*_));y=Q(Q(y*m)+Q(t*M));if(l){w=Q(i*w);p=Q(i*p);y=Q(i*y);s=Q(o*s);j=Q(o*j);q=Q(o*q)}i=Q(-t);o=Q(-n);R=Q(-m);l=r<<1;v=l<<2;e=v+f|0;N[e+8>>2]=w;N[e+4>>2]=p;N[e>>2]=y;N[c+v>>2]=-j;la=l|1;N[c+(la<<2)>>2]=-q;ma=l+2|0;N[c+(ma<<2)>>2]=-s;b:{if(K[a+736|0]){q=Q(-A);j=Q(-k);s=Q(-x);p=Q(-g);y=Q(-d);w=Q(-h);e=J[b+28>>2];break b}u=N[b+4>>2];z=N[b>>2];e=J[b+8>>2];N[e+8>>2]=g;N[e+4>>2]=d;N[e>>2]=h;v=r<<2;F=v+e|0;N[F+8>>2]=A;N[F+4>>2]=k;N[F>>2]=x;l=l<<2;e=l+e|0;N[e+8>>2]=m;N[e+4>>2]=t;N[e>>2]=n;e=J[b+16>>2];p=Q(-g);N[e+8>>2]=p;y=Q(-d);N[e+4>>2]=y;w=Q(-h);N[e>>2]=w;s=Q(-x);N[e+v>>2]=s;j=Q(-k);N[e+(O<<2)>>2]=j;q=Q(-A);N[e+(V<<2)>>2]=q;N[e+l>>2]=o;N[e+(la<<2)>>2]=i;N[e+(ma<<2)>>2]=R;e=J[b+28>>2];u=Q(z*u);z=Q(ga-ha);C=Q(X-ia);D=Q(Z-ja);N[e>>2]=u*Q(Q(g*z)+Q(Q(h*C)+Q(D*d)));N[e+v>>2]=u*Q(Q(A*z)+Q(Q(x*C)+Q(D*k)));N[e+l>>2]=u*Q(Q(m*z)+Q(Q(n*C)+Q(D*t)))}l=P(r,12);N[l+f>>2]=h;v=l+8|0;N[v+f>>2]=g;F=l+4|0;N[F+f>>2]=d;r=r<<4;N[r+f>>2]=x;O=r|4;N[O+f>>2]=k;V=r|8;N[V+f>>2]=A;N[c+l>>2]=w;N[c+v>>2]=p;N[c+F>>2]=y;N[c+r>>2]=s;N[c+O>>2]=j;N[c+V>>2]=q;q=Q(N[b>>2]*N[b+4>>2]);j=Q(Q(ba*fa)-Q(ca*ea));p=Q(j*g);g=Q(Q(ea*W)-Q(fa*U));s=Q(g*h);h=Q(Q(U*ca)-Q(W*ba));N[e+l>>2]=q*Q(p+Q(s+Q(h*d)));N[e+r>>2]=q*Q(Q(j*A)+Q(Q(g*x)+Q(h*k)));c:{d:{if(B){l=!K[a+737|0];d=Q(N[a+708>>2]*N[a+732>>2]);e=d>Q(0)?1:2;break d}if(!K[a+737|0]){break c}l=0;d=Q(0);e=0}r=P(J[b+24>>2],5);v=r<<2;N[v+f>>2]=n;F=v+8|0;N[F+f>>2]=m;O=f;f=v+4|0;N[O+f>>2]=t;N[c+F>>2]=R;N[c+f>>2]=i;N[c+v>>2]=o;c=a+688|0;i=xe(c);o=ye(c);c=J[b+28>>2];J[v+c>>2]=0;f=J[a+748>>2];g=N[(f&2?a+760|0:b+4|0)>>2];if(!(l|(B|0)!=0&i==o)){if(f&4){N[J[b+32>>2]+(r<<2)>>2]=N[a+752>>2]}h=od(N[a+728>>2],i,o,N[a+680>>2],Q(g*N[b>>2]));c=J[b+28>>2];f=r<<2;l=c+f|0;N[l>>2]=Q(Q(h*N[a+680>>2])*N[a+732>>2])+N[l>>2];N[f+J[b+36>>2]>>2]=-N[a+684>>2];N[f+J[b+40>>2]>>2]=N[a+684>>2]}if(!B){break c}f=r<<2;c=f+c|0;N[c>>2]=Q(Q(g*N[b>>2])*d)+N[c>>2];if(H[a+748|0]&1){N[f+J[b+32>>2]>>2]=N[a+756>>2]}e:{if(i==o){J[J[b+36>>2]+(r<<2)>>2]=-8388609;d=Q(3.4028234663852886e38);break e}f=J[b+36>>2]+(r<<2)|0;if((e|0)==1){J[f>>2]=0;e=1;d=Q(3.4028234663852886e38);break e}J[f>>2]=-8388609;d=Q(0)}N[J[b+40>>2]+(r<<2)>>2]=d;i=N[a+704>>2];f:{if(!(i>Q(0))){break f}d=Q(Q(Q(N[aa+8>>2]*m)+Q(Q(N[aa>>2]*n)+Q(N[aa+4>>2]*t)))-Q(Q(N[$+8>>2]*m)+Q(Q(N[$>>2]*n)+Q(t*N[$+4>>2]))));g:{if((e|0)==1){if(!(dN[c>>2]){break g}break f}if(!(d>Q(0))){break f}d=Q(d*Q(-i));if(!(d>2])){break f}}N[c>>2]=d}N[c>>2]=N[a+700>>2]*N[c>>2]}return}g=N[a+656>>2];z=N[e+40>>2];ea=Q(g*z);h=N[a+624>>2];C=N[e+32>>2];k=N[a+640>>2];D=N[e+36>>2];fa=Q(Q(h*C)+Q(k*D));L=N[e+24>>2];I=Q(g*L);G=N[e+16>>2];T=N[e+20>>2];ga=Q(Q(h*G)+Q(k*T));x=N[a+592>>2];d=N[c+40>>2];X=Q(x*d);A=N[a+560>>2];i=N[c+32>>2];q=N[a+576>>2];o=N[c+36>>2];Z=Q(Q(A*i)+Q(q*o));j=N[a+588>>2];ha=Q(j*d);s=N[a+556>>2];p=N[a+572>>2];ia=Q(Q(s*i)+Q(p*o));y=N[a+584>>2];ja=Q(y*d);w=N[a+552>>2];R=N[a+568>>2];E=Q(Q(w*i)+Q(R*o));m=N[c+24>>2];S=Q(x*m);n=N[c+16>>2];t=N[c+20>>2];da=Q(Q(A*n)+Q(q*t));u=N[a+672>>2];M=Q(u*z);z=N[a+664>>2];U=Q(z*C);C=N[a+668>>2];D=Q(Q(M+Q(U+Q(D*C)))+N[e+56>>2]);L=Q(Q(Q(u*L)+Q(Q(z*G)+Q(T*C)))+N[e+52>>2]);G=N[a+608>>2];T=N[a+600>>2];U=N[a+604>>2];W=N[c+56>>2];ba=Q(Q(Q(G*d)+Q(Q(T*i)+Q(o*U)))+W);d=N[c+52>>2];ca=Q(Q(Q(G*m)+Q(Q(T*n)+Q(t*U)))+d);M=h;h=N[e>>2];_=N[e+4>>2];M=Q(Q(M*h)+Q(_*k));k=N[e+8>>2];ka=Q(g*k);i=N[c>>2];o=N[c+4>>2];A=Q(Q(A*i)+Q(o*q));g=N[c+8>>2];q=Q(x*g);h=Q(N[e+48>>2]+Q(Q(u*k)+Q(Q(z*h)+Q(_*C))));k=N[c+48>>2];x=Q(k+Q(Q(G*g)+Q(Q(T*i)+Q(o*U))));r=J[b+24>>2];B=K[a+736|0];if(!B){f=J[b+8>>2];J[f>>2]=1065353216;l=(r<<2)+4|0;J[l+f>>2]=1065353216;v=(r<<3)+8|0;J[v+f>>2]=1065353216;f=J[b+16>>2];J[f>>2]=-1082130432;J[f+l>>2]=-1082130432;J[f+v>>2]=-1082130432;W=N[c+56>>2];k=N[c+48>>2];d=N[c+52>>2]}c=J[b+12>>2];J[c+12>>2]=0;u=Q(ba-W);N[c+4>>2]=u;J[c>>2]=0;d=Q(ca-d);N[c+8>>2]=-d;l=r<<2;f=l+c|0;J[f+12>>2]=0;k=Q(x-k);N[f+8>>2]=k;J[f+4>>2]=0;N[f>>2]=-u;v=r<<3;f=v+c|0;J[f+8>>2]=0;J[f+12>>2]=0;N[f+4>>2]=-k;N[f>>2]=d;d=N[e+48>>2];k=N[e+56>>2];u=N[e+52>>2];f=J[b+20>>2];J[f+12>>2]=0;J[f>>2]=0;u=Q(L-u);N[f+8>>2]=u;k=Q(D-k);N[f+4>>2]=-k;e=f+l|0;J[e+12>>2]=0;d=Q(h-d);N[e+8>>2]=-d;J[e+4>>2]=0;N[e>>2]=k;e=f+v|0;J[e+8>>2]=0;J[e+12>>2]=0;N[e+4>>2]=d;N[e>>2]=-u;d=Q(N[b>>2]*N[b+4>>2]);e=J[b+28>>2];if(!B){N[e>>2]=d*Q(h-x);N[e+l>>2]=d*Q(L-ca);N[e+(r<<3)>>2]=d*Q(D-ba)}l=P(r,12);h=Q(Q(y*g)+Q(Q(w*i)+Q(R*o)));N[l+c>>2]=h;v=l+8|0;k=Q(ja+E);N[v+c>>2]=k;F=l+4|0;x=Q(Q(y*m)+Q(Q(w*n)+Q(R*t)));N[F+c>>2]=x;B=r<<4;g=Q(Q(j*g)+Q(Q(s*i)+Q(o*p)));N[B+c>>2]=g;O=B|4;n=Q(Q(j*m)+Q(Q(s*n)+Q(p*t)));N[O+c>>2]=n;V=B|8;t=Q(ha+ia);N[V+c>>2]=t;N[f+l>>2]=-h;N[f+v>>2]=-k;N[f+F>>2]=-x;N[f+B>>2]=-g;N[f+O>>2]=-n;N[f+V>>2]=-t;i=Q(q+A);m=Q(I+ga);A=Q(ka+M);o=Q(S+da);q=Q(Q(i*m)-Q(A*o));p=Q(q*k);k=Q(ea+fa);j=m;m=Q(X+Z);j=Q(Q(o*k)-Q(j*m));s=Q(j*h);h=Q(Q(m*A)-Q(k*i));N[e+l>>2]=Q(p+Q(s+Q(x*h)))*d;N[e+B>>2]=Q(Q(q*t)+Q(Q(j*g)+Q(n*h)))*d;v=K[a+716|0];h:{i:{if(v){l=!K[a+737|0];t=Q(N[a+708>>2]*N[a+732>>2]);e=t>Q(0)?1:2;break i}if(!K[a+737|0]){break h}l=0;t=Q(0);e=0}r=P(r,5);B=r<<2;N[B+c>>2]=i;F=B+8|0;N[F+c>>2]=m;O=c;c=B+4|0;N[O+c>>2]=o;N[f+F>>2]=-m;N[c+f>>2]=-o;N[f+B>>2]=-i;c=a+688|0;d=xe(c);n=ye(c);c=J[b+28>>2];J[B+c>>2]=0;f=J[a+748>>2];g=N[(f&2?a+760|0:b+4|0)>>2];if(!(l|(v|0)!=0&d==n)){if(f&4){N[J[b+32>>2]+(r<<2)>>2]=N[a+752>>2]}h=od(N[a+728>>2],d,n,N[a+680>>2],Q(g*N[b>>2]));c=J[b+28>>2];f=r<<2;l=c+f|0;N[l>>2]=Q(Q(h*N[a+680>>2])*N[a+732>>2])+N[l>>2];N[f+J[b+36>>2]>>2]=-N[a+684>>2];N[f+J[b+40>>2]>>2]=N[a+684>>2]}if(!v){break h}f=r<<2;c=f+c|0;N[c>>2]=Q(Q(g*N[b>>2])*t)+N[c>>2];if(H[a+748|0]&1){N[f+J[b+32>>2]>>2]=N[a+756>>2]}j:{if(d==n){J[J[b+36>>2]+(r<<2)>>2]=-8388609;d=Q(3.4028234663852886e38);break j}f=J[b+36>>2]+(r<<2)|0;if((e|0)==1){J[f>>2]=0;e=1;d=Q(3.4028234663852886e38);break j}J[f>>2]=-8388609;d=Q(0)}N[J[b+40>>2]+(r<<2)>>2]=d;n=N[a+704>>2];k:{if(!(n>Q(0))){break k}d=Q(Q(Q(N[aa+8>>2]*m)+Q(Q(N[aa>>2]*i)+Q(o*N[aa+4>>2])))-Q(Q(N[$+8>>2]*m)+Q(Q(N[$>>2]*i)+Q(o*N[$+4>>2]))));l:{if((e|0)==1){if(!(d N[c>>2]){break l}break k}if(!(d>Q(0))){break k}d=Q(d*Q(-n));if(!(d>2])){break k}}N[c>>2]=d}N[c>>2]=N[a+700>>2]*N[c>>2]}}function mz(a,b){a=a|0;b=b|0;var c=0,d=Q(0),e=0,f=Q(0),g=0,h=Q(0),i=0,j=Q(0),k=0,l=0,m=0,n=Q(0),o=Q(0),p=Q(0),q=0,r=Q(0),s=Q(0),t=0,u=Q(0),v=Q(0),w=0,x=0,y=0,z=Q(0),A=Q(0),B=0,C=Q(0),D=Q(0),E=Q(0),F=0,G=0,I=0,L=0,M=0,O=0,S=0,T=Q(0),U=Q(0),V=0,W=Q(0),X=Q(0),Z=Q(0),_=Q(0);e=ga-176|0;ga=e;i=J[b+36>>2];a:{if(H[i+100|0]&1){break a}W=N[i+88>>2]>Q(0)?N[a+16>>2]:N[a+20>>2];x=ga-32|0;ga=x;F=J[a+8>>2];l=J[F+4>>2];g=J[J[a+4>>2]+684>>2];k=J[F+12>>2];n=N[k+20>>2];p=N[k+36>>2];h=N[k+24>>2];u=N[k+52>>2];d=N[k+40>>2];f=N[k+56>>2];r=N[k+32>>2];j=N[k>>2];s=N[k+16>>2];v=N[k+4>>2];z=N[k+8>>2];o=N[k+48>>2];C=N[i+8>>2];A=N[i+12>>2];E=N[i+16>>2];J[x+12>>2]=0;D=d;d=Q(E-f);f=Q(C-o);o=h;h=Q(A-u);N[x+8>>2]=Q(D*d)+Q(Q(z*f)+Q(o*h));N[x+4>>2]=Q(p*d)+Q(Q(v*f)+Q(h*n));N[x>>2]=Q(r*d)+Q(Q(j*f)+Q(h*s));d=Q(Q(1)/N[g+76>>2]);f=Q(Q(d*N[x>>2])/Q(3));b=f >2])/Q(3));m=h>>5&134215680^b<<16;o=h;h=Q(Q(1)-h);d:{if(Q(R(h))>>11)|0;d=Q(Q(d*N[x+8>>2])/Q(3));y=d>2];b=b^B>>>5&134215680^b<<16;o=d;d=Q(Q(1)-d);f:{if(Q(R(d))>>11)|0;b=b^y>>>5&134215680^b<<16;b=b+(l&65535)+(b>>>11)|0;b=b^l>>>5&134215680^b<<16;b=(b>>>11|0)+b|0;b=b<<3^b;b=(b>>>5|0)+b|0;b=b<<4^b;b=(b>>>17|0)+b|0;b=b<<25^b;G=(b>>>6|0)+b|0;I=J[g+60>>2];L=((G>>>0)%(I>>>0)<<2)+m|0;b=J[L>>2];J[g+96>>2]=J[g+96>>2]+1;d=Q(Q(d-Q(t|0))*Q(3));h:{if(Q(R(d))>2];k:{if(b){while(1){c=c+1|0;J[g+92>>2]=c;if(!(J[b+272>>2]!=(G|0)|(q|0)!=J[b+256>>2]|((B|0)!=J[b+260>>2]|(y|0)!=J[b+264>>2]))&(l|0)==J[b+276>>2]){break k}b=J[b+280>>2];if(b){continue}break}}J[g+92>>2]=c+1;b=J[g+84>>2];J[g+84>>2]=b+1;if((b|0)>=J[g+88>>2]){w=0;J[8355]=J[8355]+1;l:{if((I|0)<=0){break l}while(1){c=(w<<2)+m|0;b=J[c>>2];J[c>>2]=0;if(b){while(1){c=J[b+280>>2];ta(b);b=c;if(c){continue}break}}w=w+1|0;if((I|0)==(w|0)){break l}m=J[g+68>>2];continue}}J[g+92>>2]=1;J[g+96>>2]=1;J[g+84>>2]=0;J[g+76>>2]=1048576e3;J[g+80>>2]=0}b=ua(284);m=qa(b,0,272);J[m+280>>2]=J[L>>2];J[L>>2]=m;J[m+272>>2]=G;J[m+276>>2]=l;J[m+264>>2]=y;J[m+260>>2]=B;J[m+256>>2]=q;B=0;r=Q(0);c=ga-144|0;ga=c;d=N[g+76>>2];n=Q(Q(Q(J[m+256>>2])*Q(3))*d);s=Q(d*Q(Q(J[m+264>>2])*Q(3)));v=Q(d*Q(Q(J[m+260>>2])*Q(3)));l=c+80|4;while(1){p=Q(Q(d*Q(B|0))+s);w=0;while(1){J[c+20>>2]=0;N[c+16>>2]=p;N[c+8>>2]=Q(d*Q(0))+n;j=Q(Q(d*Q(w|0))+v);N[c+12>>2]=j;q=J[m+276>>2];J[c+80>>2]=1065353216;J[l+8>>2]=0;J[l+12>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[c+100>>2]=1065353216;J[c+112>>2]=0;J[c+116>>2]=0;J[c+104>>2]=0;J[c+108>>2]=0;J[c+120>>2]=1065353216;J[c+140>>2]=0;J[c+132>>2]=0;J[c+136>>2]=0;J[c+124>>2]=0;J[c+128>>2]=0;m:{if(J[q+4>>2]>19){d=Q(0);break m}d=Ke(c+8|0,q,c+80|0,c+24|0);q=J[m+276>>2]}y=(m+(w<<4)|0)+(B<<2)|0;N[y>>2]=d;d=N[g+76>>2];J[c+20>>2]=0;N[c+16>>2]=p;N[c+12>>2]=j;N[c+8>>2]=d+n;J[c+80>>2]=1065353216;J[l+8>>2]=0;J[l+12>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[c+100>>2]=1065353216;J[c+112>>2]=0;J[c+116>>2]=0;J[c+104>>2]=0;J[c+108>>2]=0;J[c+120>>2]=1065353216;J[c+140>>2]=0;J[c+132>>2]=0;J[c+136>>2]=0;J[c+124>>2]=0;J[c+128>>2]=0;if(J[q+4>>2]<=19){r=Ke(c+8|0,q,c+80|0,c+24|0);q=J[m+276>>2]}N[y- -64>>2]=r;d=N[g+76>>2];J[c+20>>2]=0;N[c+16>>2]=p;N[c+12>>2]=j;N[c+8>>2]=Q(d+d)+n;J[c+80>>2]=1065353216;J[l+8>>2]=0;J[l+12>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[c+100>>2]=1065353216;J[c+112>>2]=0;J[c+116>>2]=0;J[c+104>>2]=0;J[c+108>>2]=0;J[c+120>>2]=1065353216;J[c+140>>2]=0;J[c+132>>2]=0;J[c+136>>2]=0;J[c+124>>2]=0;J[c+128>>2]=0;r=Q(0);n:{if(J[q+4>>2]>19){d=Q(0);break n}d=Ke(c+8|0,q,c+80|0,c+24|0);q=J[m+276>>2]}N[y+128>>2]=d;d=N[g+76>>2];J[c+20>>2]=0;N[c+16>>2]=p;N[c+12>>2]=j;N[c+8>>2]=Q(d*Q(3))+n;J[c+80>>2]=1065353216;J[l+8>>2]=0;J[l+12>>2]=0;J[l>>2]=0;J[l+4>>2]=0;J[c+100>>2]=1065353216;J[c+112>>2]=0;J[c+116>>2]=0;J[c+104>>2]=0;J[c+108>>2]=0;J[c+120>>2]=1065353216;J[c+140>>2]=0;J[c+132>>2]=0;J[c+136>>2]=0;J[c+124>>2]=0;J[c+128>>2]=0;if(J[q+4>>2]<=19){d=Ke(c+8|0,q,c+80|0,c+24|0)}else{d=Q(0)}N[y+192>>2]=d;w=w+1|0;if((w|0)!=4){d=N[g+76>>2];continue}break}B=B+1|0;if((B|0)!=4){d=N[g+76>>2];continue}break}ga=c+144|0}J[b+268>>2]=J[g+80>>2];g=(t<<6)+b|0;m=g- -64|0;l=S<<4;q=l+16|0;w=m+q|0;b=O<<2;c=b+4|0;j=N[w+c>>2];s=N[b+w>>2];q=g+q|0;d=N[q+c>>2];n=N[b+q>>2];p=Q(d-n);D=Q(Q(Q(Q(j-s)-p)*f)+p);m=l+m|0;v=N[m+c>>2];z=N[b+m>>2];t=c;c=g+l|0;p=N[t+c>>2];r=N[b+c>>2];o=Q(p-r);o=Q(Q(Q(Q(v-z)-o)*f)+o);o=Q(Q(Q(D-o)*h)+o);D=o;X=Q(o*o);E=Q(j-d);o=Q(v-p);T=Q(s-n);C=Q(z-r);A=Q(Q(Q(T-C)*h)+C);A=Q(Q(Q(Q(Q(Q(E-o)*h)+o)-A)*u)+A);v=Q(j-v);j=Q(d-p);v=Q(Q(Q(v-j)*f)+j);j=Q(n-r);j=Q(Q(Q(Q(s-z)-j)*f)+j);j=Q(Q(Q(v-j)*u)+j);s=Q(Q(1)/Q(Y(Q(X+Q(Q(A*A)+Q(j*j))))));N[x+24>>2]=D*s;N[x+20>>2]=j*s;N[x+16>>2]=A*s;s=Q(d+Q(E*f));d=Q(p+Q(o*f));o=Q(Q(Q(s-d)*h)+d);d=Q(r+Q(C*f));d=Q(Q(Q(Q(n+Q(T*f))-d)*h)+d);d=Q(Q(Q(Q(o-d)*u)+d)-W);b=d>2]=J[F+8>>2];r=N[k+8>>2];j=N[k>>2];s=N[k+4>>2];u=N[k+24>>2];v=N[k+16>>2];z=N[k+20>>2];p=N[k+40>>2];o=N[k+32>>2];C=N[k+36>>2];f=N[x+24>>2];h=N[x+16>>2];n=N[x+20>>2];J[e+88>>2]=0;p=Q(Q(p*f)+Q(Q(o*h)+Q(n*C)));N[e+84>>2]=p;u=Q(Q(u*f)+Q(Q(v*h)+Q(n*z)));N[e+80>>2]=u;f=Q(Q(r*f)+Q(Q(j*h)+Q(s*n)));N[e+76>>2]=f;N[e+92>>2]=-Q(Q(p*Q(N[i+16>>2]-Q(d*p)))+Q(Q(f*Q(N[i+8>>2]-Q(d*f)))+Q(u*Q(N[i+12>>2]-Q(d*u)))))}ga=x+32|0;if(!b){break a}d=N[i+88>>2];b=J[a+12>>2];o:{if(!b){if(!(Q(d+Q(0))>Q(0))){break a}c=J[J[a+8>>2]+8>>2]+4|0;break o}U=N[b+344>>2];if(!(Q(d+U)>Q(0))){break a}c=b+4|0}if(!(H[33412]&1)){J[8341]=0;J[8342]=0;H[33412]=1;J[8351]=0;J[8352]=0;J[8349]=0;J[8350]=0;J[8347]=0;J[8348]=0;J[8345]=0;J[8346]=0;J[8343]=0;J[8344]=0}f=N[c+52>>2];h=N[i+12>>2];r=N[c+56>>2];n=N[i+16>>2];u=N[c+48>>2];p=N[i+8>>2];J[e+68>>2]=0;u=Q(p-u);N[e+56>>2]=u;r=Q(n-r);N[e+64>>2]=r;j=Q(h-f);N[e+60>>2]=j;g=b?b+264|0:33364;p:{if(!b){c=J[a+4>>2];f=N[c+452>>2];s=Q(0);break p}s=N[b+328>>2];v=N[b+332>>2];c=J[a+4>>2];f=N[c+452>>2];Z=Q(Q(Q(Q(s*j)-Q(u*v))+N[b+320>>2])*f);z=N[b+336>>2];_=Q(Q(Q(Q(z*u)-Q(r*s))+N[b+316>>2])*f);s=Q(Q(Q(Q(v*r)-Q(j*z))+N[b+312>>2])*f)}v=N[c+316>>2];z=N[i+32>>2];o=N[i+28>>2];C=N[J[J[a+8>>2]+8>>2]+224>>2];A=N[i+24>>2];J[e+96>>2]=i;u=N[e+84>>2];r=N[e+80>>2];j=N[e+76>>2];hk(e+8|0,f,d,U,g,e+56|0);b=J[e+20>>2];J[e+108>>2]=J[e+16>>2];J[e+112>>2]=b;b=J[e+28>>2];J[e+116>>2]=J[e+24>>2];J[e+120>>2]=b;b=J[e+36>>2];J[e+124>>2]=J[e+32>>2];J[e+128>>2]=b;b=J[e+44>>2];J[e+132>>2]=J[e+40>>2];J[e+136>>2]=b;b=J[e+52>>2];J[e+140>>2]=J[e+48>>2];J[e+144>>2]=b;b=e- -64|0;c=J[b+4>>2];J[e+156>>2]=J[b>>2];J[e+160>>2]=c;b=J[e+12>>2];J[e+100>>2]=J[e+8>>2];J[e+104>>2]=b;b=J[e+60>>2];J[e+148>>2]=J[e+56>>2];J[e+152>>2]=b;g=J[a+4>>2];N[e+164>>2]=d*N[g+452>>2];n=Q(Q(n-z)-Z);p=Q(Q(p-A)-s);h=Q(Q(h-o)-_);d=Q(Q(n*u)+Q(Q(j*p)+Q(r*h)));f=Q(v*C);n=Q(n-Q(u*d));o=Q(n*n);n=Q(p-Q(j*d));h=Q(h-Q(r*d));N[e+168>>2]=Q(o+Q(Q(n*n)+Q(h*h)))>2]=N[g+(J[J[J[a+8>>2]+8>>2]+204>>2]&3?328:324)>>2];k=J[g+812>>2];q:{if((k|0)!=J[g+816>>2]){break q}l=k?k<<1:1;if((l|0)<=(k|0)){break q}if(l){J[8369]=J[8369]+1;V=ia[J[6782]](P(l,104),16)|0;k=J[g+812>>2]}if((k|0)>0){while(1){c=P(M,104);b=c+V|0;c=c+J[g+820>>2]|0;i=J[c+4>>2];J[b>>2]=J[c>>2];J[b+4>>2]=i;J[b+24>>2]=J[c+24>>2];i=J[c+20>>2];J[b+16>>2]=J[c+16>>2];J[b+20>>2]=i;i=J[c+12>>2];J[b+8>>2]=J[c+8>>2];J[b+12>>2]=i;i=J[c+40>>2];J[b+36>>2]=J[c+36>>2];J[b+40>>2]=i;i=J[c+32>>2];J[b+28>>2]=J[c+28>>2];J[b+32>>2]=i;i=J[c+56>>2];J[b+52>>2]=J[c+52>>2];J[b+56>>2]=i;i=J[c+48>>2];J[b+44>>2]=J[c+44>>2];J[b+48>>2]=i;i=J[c+64>>2];J[b+60>>2]=J[c+60>>2];J[b+64>>2]=i;i=J[c+72>>2];J[b+68>>2]=J[c+68>>2];J[b+72>>2]=i;i=J[c+80>>2];J[b+76>>2]=J[c+76>>2];J[b+80>>2]=i;i=J[c+88>>2];J[b+84>>2]=J[c+84>>2];J[b+88>>2]=i;i=J[c+96>>2];J[b+92>>2]=J[c+92>>2];J[b+96>>2]=i;J[b+100>>2]=J[c+100>>2];M=M+1|0;if((M|0)!=(k|0)){continue}break}}b=J[g+820>>2];if(!(b?!b|!K[g+824|0]:1)){J[8370]=J[8370]+1;ia[J[6783]](b)}J[g+820>>2]=V;H[g+824|0]=1;J[g+816>>2]=l;k=J[g+812>>2]}c=J[e+76>>2];b=J[g+820>>2]+P(k,104)|0;J[b>>2]=J[e+72>>2];J[b+4>>2]=c;J[b+24>>2]=J[e+96>>2];c=J[e+92>>2];J[b+16>>2]=J[e+88>>2];J[b+20>>2]=c;c=J[e+84>>2];J[b+8>>2]=J[e+80>>2];J[b+12>>2]=c;c=J[e+112>>2];J[b+36>>2]=J[e+108>>2];J[b+40>>2]=c;c=J[e+104>>2];J[b+28>>2]=J[e+100>>2];J[b+32>>2]=c;c=J[e+128>>2];J[b+52>>2]=J[e+124>>2];J[b+56>>2]=c;c=J[e+120>>2];J[b+44>>2]=J[e+116>>2];J[b+48>>2]=c;c=J[e+144>>2];J[b+68>>2]=J[e+140>>2];J[b+72>>2]=c;c=J[e+136>>2];J[b+60>>2]=J[e+132>>2];J[b+64>>2]=c;c=J[e+152>>2];J[b+76>>2]=J[e+148>>2];J[b+80>>2]=c;c=J[e+160>>2];J[b+84>>2]=J[e+156>>2];J[b+88>>2]=c;c=J[e+168>>2];J[b+92>>2]=J[e+164>>2];J[b+96>>2]=c;J[b+100>>2]=J[e+172>>2];J[g+812>>2]=J[g+812>>2]+1;a=J[a+12>>2];if(!a){break a}kb(a,0)}ga=e+176|0}function Tj(a,b,c,d,e){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,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,K=0,L=0,M=0,N=0,O=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0;m=ga-48|0;ga=m;A=J[e>>2];h=b;s=J[d>>2];if(s){h=J[s+12>>2]}w=J[h+96>>2];x=J[h+92>>2];z=J[h+88>>2];l=J[b+96>>2];I=J[c+96>>2]-l|0;i=J[(s?s:A)+12>>2];j=J[b+92>>2];n=J[i+92>>2]-j|0;h=c;K=J[c+92>>2]-j|0;f=J[i+96>>2]-l|0;c=P(I,n)-P(K,f)|0;S=c;O=c>>31;g=I>>31;c=jI(c,O,I,g);o=ha;k=J[b+88>>2];i=J[i+88>>2]-k|0;L=J[h+88>>2]-k|0;b=P(i,K)-P(n,L)|0;T=b;Q=b>>31;n=L>>31;b=jI(b,Q,L,n);B=c-b|0;C=o-(ha+(b>>>0>c>>>0)|0)|0;c=jI(B,C,x,x>>31);o=ha;t=K>>31;b=jI(T,Q,K,t);v=ha;p=c;c=P(f,L)-P(i,I)|0;U=c;R=c>>31;c=jI(c,R,I,g);D=b-c|0;E=v-(ha+(b>>>0